/* Semantic accents are local signals, not a replacement for labels or icons.
   Blue remains the primary action, focus, resource and navigation color. */
:root{
 --signal-warm:#ffba8b;--signal-warm-bg:#39251f;
 --signal-warning:#ffdb86;--signal-warning-bg:#342b18;
 --signal-danger:#ffaba8;--signal-danger-bg:#3a202b;
 --signal-success:#93e4c1;--signal-success-bg:#15332e;
 --signal-reward:#f0c978;
}
/* Temperature describes the setting. The request below separately says whether
   that setting suits this customer, with a check or an exclamation mark. */
.deck #warm[aria-pressed=true],.deck #seat-warm[aria-pressed=true]{color:#ffe4d2;background:var(--signal-warm-bg);border-color:var(--signal-warm);box-shadow:inset 0 0 0 1px #ffba8b28}
.deck #warm[aria-pressed=true]:hover,.deck #seat-warm[aria-pressed=true]:hover{background:#503127}
.deck #warm[aria-pressed=false]{color:#b9e4ff}
.deck button.attention:not(.fire){border-color:var(--signal-warning);box-shadow:inset 0 0 0 1px var(--signal-warning)}
.deck #dry.attention,.deck #rinse.alert{background:var(--signal-warning-bg);color:var(--signal-warning);border-color:var(--signal-warning);box-shadow:inset 0 0 0 1px #ffdb8630}
.deck #dry.attention:hover,.deck #rinse.alert:hover{background:#493a20}
.customer-request-bar.needs-adjustment #customer-request-summary,.control-preference.needs-adjustment,.preference-status.needs-adjustment{color:var(--signal-warning)}
.customer-request-bar.is-matched #customer-request-summary,.preference-status{color:var(--signal-success)}
.preference-status::before{background:currentColor;mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='m2.5 7 3 3 6-6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.preference-status.needs-adjustment::before{background-image:none;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1 13 12H1Z' fill='none' stroke='black' stroke-width='1.2' stroke-linejoin='round'/%3E%3Cpath d='M7 4.5v3' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='7' cy='10' r='.8'/%3E%3C/svg%3E")}
/* State-specific foregrounds and opaque surfaces keep alerts readable over
   every skin tone, splatter level and scene lighting. No pulsing or flashing. */
.round-cue[data-tone=warm]{--signal:var(--signal-warm);--signal-bg:var(--signal-warm-bg)}
.round-cue[data-tone=warning]{--signal:var(--signal-warning);--signal-bg:var(--signal-warning-bg)}
.round-cue[data-tone=danger]{--signal:var(--signal-danger);--signal-bg:var(--signal-danger-bg)}
.round-cue[data-tone=success]{--signal:var(--signal-success);--signal-bg:var(--signal-success-bg)}
.round-cue:is([data-tone=warm],[data-tone=warning],[data-tone=danger],[data-tone=success]){background:var(--signal-bg);border-color:var(--signal);border-left-width:3px}
.round-cue:is([data-tone=warm],[data-tone=warning],[data-tone=danger],[data-tone=success]) b{color:var(--signal)}
.round-cue:is([data-tone=warm],[data-tone=warning],[data-tone=danger],[data-tone=success]) span{color:#f1eaf0}
.round-cue[data-tone=warning] b::before{content:'! ' / ''}
.round-cue[data-tone=danger] b::before{content:'× ' / ''}
.round-cue[data-tone=success] b::before{content:'✓ ' / ''}
.patience.warning{color:var(--signal-warning);background:var(--signal-warning-bg);border-color:var(--signal-warning)}
.patience.warning::before{content:'! ' / ''}
#camera[data-tone=warning]{color:var(--signal-warning);background:var(--signal-warning-bg);border-color:var(--signal-warning)}
#clean-text[data-complete=true]{color:var(--signal-success)}
#clean-meter[data-complete=true]>i{background:var(--signal-success)}
/* Rewards are quieter than gameplay blockers. */
.career-open.has-milestone::after{background:var(--signal-reward)}
.career-notice{border-color:var(--signal-reward);color:#ffe7b8;background:#30291cf5}
@media(forced-colors:active){
 .deck #warm[aria-pressed=true],.deck #seat-warm[aria-pressed=true]{background:Highlight;color:HighlightText;border-color:Highlight;box-shadow:none}
 .deck button.attention:not(.fire),.deck #dry.attention,.deck #rinse.alert{background:Canvas;color:CanvasText;border:2px dashed ButtonText;box-shadow:none}
 .round-cue[data-tone],.patience.warning,#camera[data-tone=warning]{background:Canvas;color:CanvasText;border-color:CanvasText}
 .round-cue[data-tone] b,.round-cue[data-tone] span,.preference-status,.preference-status.needs-adjustment,.control-preference.needs-adjustment,#clean-text[data-complete=true]{color:CanvasText}
 .preference-status::before{forced-color-adjust:none;background:CanvasText}
 #clean-meter[data-complete=true]>i{background:Highlight}
 .career-notice{background:Canvas;color:CanvasText;border-color:CanvasText}
}
