@@ -158,16 +158,16 @@
/* The clay hue is kept and lifted: #85432f is too dark to read as an action on
a dark ground. Hover now lightens instead of darkening. */
--color-action : #d4 785a ;
--color-action : #d78064 ;
--color-action-soft : #3a2620 ;
--color-action-hover : #e59273 ;
--color-focus : #d4 785a ;
--color-focus : #d78064 ;
--color-action-on-dark : #8f4a33 ;
--color-ink : #f2f0ea ;
--color-ink-strong : #e2dfd6 ;
--color-ink-secondary : #b3afa4 ;
--color-ink-tertiary : #928e84 ;
--color-ink-tertiary : #9c988e ;
--color-sidebar : rgba ( 31 , 30 , 29 , .86 ) ;
--color-sidebar-solid : #1f1e1d ;
@@ -206,7 +206,7 @@
a lit sheet in a dark room. */
--report-paper : #262624 ;
--report-rule : #3c3b37 ;
--report-accent : #d4 785a ;
--report-accent : #d78064 ;
/* Hairlines that were dark-on-light have to become light-on-dark. */
--ring-hairline : oklch ( 1 0 0 / .14 ) ;
@@ -229,16 +229,16 @@
/* The clay hue is kept and lifted: #85432f is too dark to read as an action on
a dark ground. Hover now lightens instead of darkening. */
--color-action : #d4 785a ;
--color-action : #d78064 ;
--color-action-soft : #3a2620 ;
--color-action-hover : #e59273 ;
--color-focus : #d4 785a ;
--color-focus : #d78064 ;
--color-action-on-dark : #8f4a33 ;
--color-ink : #f2f0ea ;
--color-ink-strong : #e2dfd6 ;
--color-ink-secondary : #b3afa4 ;
--color-ink-tertiary : #928e84 ;
--color-ink-tertiary : #9c988e ;
--color-sidebar : rgba ( 31 , 30 , 29 , .86 ) ;
--color-sidebar-solid : #1f1e1d ;
@@ -277,7 +277,7 @@
a lit sheet in a dark room. */
--report-paper : #262624 ;
--report-rule : #3c3b37 ;
--report-accent : #d4 785a ;
--report-accent : #d78064 ;
/* Hairlines that were dark-on-light have to become light-on-dark. */
--ring-hairline : oklch ( 1 0 0 / .14 ) ;
@@ -730,6 +730,7 @@ button:disabled { cursor: default; opacity: .45; }
. sidebar-empty { margin : 0 ; padding : 0 0 var ( - - space -2 ) ; color : var ( - - color - ink - tertiary ) ; font-size : var ( - - type - caption ) ; line-height : 1.35 ; }
. chart-nav-list { display : flex ; flex-wrap : wrap ; gap : var ( - - space -2 ) ; padding : 0 0 var ( - - space -2 ) ; }
. chart-nav-chip {
position : relative ;
min-height : 32 px ;
max-width : 100 % ;
padding : 0 var ( - - space -3 ) ;
@@ -742,6 +743,12 @@ button:disabled { cursor: default; opacity: .45; }
font-weight : 400 ;
line-height : 1.35 ;
}
/* Visual chip stays 32px; wrap gap is 8px, so a 44px overlay would overlap. */
. chart-nav-chip :: after {
position : absolute ;
inset : -4 px ;
content : "" ;
}
. chart-nav-chip : hover { background : var ( - - sidebar - accent ) ; color : var ( - - sidebar - accent - foreground ) ; }
. sidebar-label : focus-visible { outline : 3 px solid color-mix ( in srgb , var ( - - sidebar - ring ) 56 % , transparent ) ; outline-offset : 2 px ; border-radius : var ( - - radius - sm ) ; }
. session-nav-toggle { min-height : 44 px ; min-width : 44 px ; display : inline-flex ; align-items : center ; justify-content : center ; padding : 0 ; border : 0 ; border-radius : var ( - - radius - md ) ; background : transparent ; color : var ( - - color - ink - tertiary ) ; cursor : pointer ; font-size : var ( - - type - caption ) ; transition : background-color 120 ms ease-out , color 120 ms ease-out ; }
@@ -1251,6 +1258,7 @@ button:disabled { cursor: default; opacity: .45; }
. conversation-follow-up : hover { background : var ( - - color - canvas - muted ) ; }
. conversation-follow-up : disabled { cursor : not-allowed ; opacity : .56 ; }
. message-actions button {
position : relative ;
display : inline-flex ;
width : 26 px ;
height : 26 px ;
@@ -1266,6 +1274,18 @@ button:disabled { cursor: default; opacity: .45; }
opacity : .7 ;
transition : background-color 120 ms ease-out , color 120 ms ease-out , opacity 120 ms ease-out , transform 120 ms ease-out ;
}
/* Visual icon stays 26px. Neighbours sit 27px centre-to-centre (26px + 1px gap)
and follow-ups start after an 8px bottom margin, so a 44× 44 overlay would
steal clicks. This is the largest non-overlapping hit: 27× 34. */
. message-actions button :: after {
position : absolute ;
top : 50 % ;
left : 50 % ;
width : 27 px ;
height : 34 px ;
content : "" ;
transform : translate ( -50 % , -50 % ) ;
}
. message-actions button : hover : not ( : disabled ) {
background : color-mix ( in srgb , var ( - - color - canvas - muted ) 72 % , transparent ) ;
color : var ( - - color - ink - secondary ) ;
@@ -1502,6 +1522,23 @@ button:disabled { cursor: default; opacity: .45; }
. composer . composer-stop { background : var ( - - color - action ) ; }
. composer . composer-stop : not ( : disabled ) : hover { background : var ( - - color - action - hover ) ; }
. composer-footer { width : min ( 760 px , 100 % ) ; min-height : 44 px ; display : flex ; align-items : center ; margin : var ( - - space -1 ) auto 0 ; }
. character-remaining {
margin-left : auto ;
flex-shrink : 0 ;
color : var ( - - color - ink - tertiary ) ;
font-size : var ( - - type - caption ) ;
font-weight : 500 ;
font-variant-numeric : tabular-nums ;
line-height : 1.4 ;
white-space : nowrap ;
}
. character-remaining [ data-limit ] { color : var ( - - color - danger ) ; }
. character-remaining-row {
display : flex ;
justify-content : space-between ;
align-items : baseline ;
gap : var ( - - space -2 ) ;
}
. model-selector-trigger { width : fit-content ; min-width : 0 ; max-width : min ( 100 % , 360 px ) ; min-height : 44 px ; display : inline-flex ; grid-column : 1 ; align-items : center ; justify-self : start ; gap : var ( - - space -2 ) ; border : 0 ; padding : 0 var ( - - space -2 ) ; border-radius : var ( - - radius - md ) ; background : transparent ; color : var ( - - color - ink - secondary ) ; cursor : pointer ; transition : background-color 120 ms ease-out , color 120 ms ease-out ; }
. model-selector-trigger > b { min-width : 0 ; overflow : visible ; overflow-wrap : anywhere ; text-align : left ; white-space : normal ; font-size : var ( - - type - caption ) ; font-weight : 500 ; line-height : 1.35 ; }
. model-selector-trigger svg { width : 16 px ; height : 16 px ; flex : 0 0 auto ; color : var ( - - color - ink - tertiary ) ; transition : transform 120 ms ease-out ; }
@@ -1654,7 +1691,13 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
. auth-mode-tabs button , . auth-links button { min-width : 0 ; min-height : 40 px ; border : 0 ; background : transparent ; cursor : pointer ; color : var ( - - color - ink - secondary ) ; font : inherit ; font-size : 13 px ; }
. auth-mode-tabs button [ aria-pressed = "true" ] { border-radius : calc ( var ( - - radius - md ) - 2 px ) ; background : var ( - - color - canvas ) ; color : var ( - - color - ink ) ; box-shadow : var ( - - shadow - soft ) ; }
. auth-links { display : flex ; flex-wrap : wrap ; justify-content : space-between ; gap : var ( - - space -2 ) ; }
. auth-links button { min-height : 32 px ; padding : 0 ; color : var ( - - color - action ) ; }
. auth-links button { position : relative ; min-height : 32 px ; padding : 0 ; color : var ( - - color - action ) ; }
/* Visual link stays 32px; wrap gap is 8px, so a 44px overlay would overlap. */
. auth-links button :: after {
position : absolute ;
inset : -4 px ;
content : "" ;
}
. admin-page { background : var ( - - color - canvas - soft ) ; }
. admin-app-shell { height : 100 dvh ; min-height : 0 ; overflow-y : auto ; }
@@ -2447,7 +2490,7 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
font-size : var ( - - type - caption ) ;
line-height : 1.5 ;
}
. birth-time-window-details . birth-time-skip-button { grid-column : 1 / -1 ; justify-self : start ; min-height : 40 px ; padding-inline : 13 px ; border-color : transparent ; background : transparent ; color : var ( - - color - action ) ; font-size : var ( - - type - caption ) ; }
. birth-time-window-details . birth-time-skip-button { grid-column : 1 / -1 ; justify-self : start ; min-height : 44 px ; padding-inline : 13 px ; border-color : transparent ; background : transparent ; color : var ( - - color - action ) ; font-size : var ( - - type - caption ) ; }
. birth-time-window-details . birth-time-skip-button : hover { background : color-mix ( in srgb , var ( - - color - action - soft ) 72 % , transparent ) ; }
. birth-time-detail-grid > label { gap : 7 px ; }
. birth-time-detail-grid > label > span { color : var ( - - color - ink - secondary ) ; font-size : var ( - - type - caption ) ; font-weight : 700 ; }
@@ -2504,7 +2547,7 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
. select-content { width : var ( - - anchor - width ) ; min-width : 190 px ; max-width : min ( 360 px , calc ( 100 vw - 32 px ) ) ; height : auto !important ; max-height : min ( 360 px , calc ( 100 vh - 32 px ) ) ; overflow : hidden ; border : 1 px solid var ( - - color - border ) ; border-radius : var ( - - radius - md ) ; background : var ( - - color - canvas ) ; padding : 5 px ; box-shadow : var ( - - shadow - elevated ) ; transform-origin : var ( - - transform - origin ) ; animation : select-content-in 140 ms var ( - - ease-out ) both ; }
. select-list { display : grid ; gap : 2 px ; max-height : min ( 320 px , 50 vh ) !important ; overflow-y : auto !important ; outline : none ; scrollbar-width : none ; -ms- overflow-style : none ; }
. select-list :: -webkit-scrollbar { width : 0 ; height : 0 ; display : none ; }
. select-item { min-height : 40 px ; position : relative ; display : flex ; align-items : center ; justify-content : space-between ; gap : var ( - - space -3 ) ; padding : 9 px 10 px ; border-radius : var ( - - radius - sm ) ; color : var ( - - color - ink ) ; font-size : var ( - - type - body - sm ) ; line-height : 1.35 ; cursor : pointer ; outline : none ; user-select : none ; }
. select-item { min-height : 44 px ; position : relative ; display : flex ; align-items : center ; justify-content : space-between ; gap : var ( - - space -3 ) ; padding : 9 px 10 px ; border-radius : var ( - - radius - sm ) ; color : var ( - - color - ink ) ; font-size : var ( - - type - body - sm ) ; line-height : 1.35 ; cursor : pointer ; outline : none ; user-select : none ; }
. select-item : hover , . select-item [ data-highlighted ] { background : var ( - - color - action - soft ) ; color : var ( - - color - action - hover ) ; }
. select-item [ data-selected ] { color : var ( - - color - action - hover ) ; font-weight : 650 ; }
. select-item [ data-disabled ] { cursor : not-allowed ; opacity : .45 ; }
@@ -3052,7 +3095,7 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
. report-center-section { max-width : 1080 px ; margin : 0 auto ; }
. report-center-section-heading { display : flex ; align-items : center ; justify-content : space-between ; gap : 24 px ; margin-bottom : 14 px ; }
. report-center-section-heading h2 { margin : 0 ; font-family : var ( - - font - body ) ; font-size : 20 px ; font-weight : 650 ; letter-spacing : -.015 em ; }
. report-center-section-heading button { min-height : 40 px ; display : inline-flex ; align-items : center ; gap : 7 px ; padding : 0 8 px ; border : 0 ; background : transparent ; color : var ( - - color - ink - secondary ) ; cursor : pointer ; }
. report-center-section-heading button { min-height : 44 px ; display : inline-flex ; align-items : center ; gap : 7 px ; padding : 0 8 px ; border : 0 ; background : transparent ; color : var ( - - color - ink - secondary ) ; cursor : pointer ; }
. report-center-section-heading button : hover { color : var ( - - color - action ) ; }
. report-center-list { border-top : 1 px solid var ( - - color - border - strong ) ; }
. report-center-card { min-height : 126 px ; display : grid ; grid-template-columns : minmax ( 0 , 1 fr ) auto ; align-items : center ; gap : 24 px ; padding : 22 px 0 ; border-bottom : 1 px solid var ( - - color - border ) ; }