/* Semantic states: identical meaning and measured opaque surfaces in every skin. */
:root{--state-assigned-bg:#123b66;--state-assigned-ink:#e0f1ff;--state-complete-bg:#174b32;--state-complete-ink:#d4ffe7;--state-problem-bg:#672525;--state-problem-ink:#ffe3de;--state-cancelled-bg:#48253e;--state-cancelled-ink:#ffe0ef;--state-unavailable-bg:#7b263b;--state-unavailable-ink:#ffe2e9}
html:is([data-theme="light"],[data-theme="atlas"],[data-theme="steel"],[data-theme="sand"],[data-theme="petrol"],[data-theme="titanium"]){--state-assigned-bg:#d7ebff;--state-assigned-ink:#123b66;--state-complete-bg:#d4f6df;--state-complete-ink:#174b32;--state-problem-bg:#ffded8;--state-problem-ink:#672525;--state-cancelled-bg:#f3dce9;--state-cancelled-ink:#48253e;--state-unavailable-bg:#ffdce6;--state-unavailable-ink:#7b263b}
html[data-theme="petrol"]{--accent:#70300d}
html[data-theme="titanium"]{--accent:#1a4c7a}
:is(.flowDanger,[data-flow-state="problem"]){background:var(--state-problem-bg)!important;color:var(--state-problem-ink)!important;border:2px solid currentColor!important}
:is(.flowSuccess,[data-flow-state="complete"]){background:var(--state-complete-bg)!important;color:var(--state-complete-ink)!important;border-color:currentColor!important}
:is(.flowInfo,[data-flow-state="assigned"]){background:var(--state-assigned-bg)!important;color:var(--state-assigned-ink)!important;border-color:currentColor!important}
[data-flow-state="cancelled"]{background:var(--state-cancelled-bg)!important;color:var(--state-cancelled-ink)!important;border:2px dashed currentColor!important}
:is([data-flow-state="unavailable"],#weekBoard .planUnavailable){background:var(--state-unavailable-bg)!important;color:var(--state-unavailable-ink)!important;border:2px dashed currentColor!important}
:is(.flowDanger,.flowSuccess,.flowInfo,[data-flow-state]) :is(b,strong,span,small,p,h2,h3){color:inherit!important}
.note{overflow-wrap:anywhere}.note :is(button,a){color:var(--ink)!important;background:var(--panel)!important;border:1px solid var(--line)!important;opacity:1}
.planStateLegend{display:flex;gap:8px;flex-wrap:wrap;font-size:.85rem}.planStateLegend span{padding:6px 10px;border:1px solid;border-radius:4px}
[data-flow-state="unknown"]{background:var(--panel)!important;color:var(--ink)!important;border:2px dotted currentColor!important}
.planScope{max-width:100%;position:relative;z-index:1}.planScope button{min-height:44px}.weekShell{max-width:100%;min-width:0;overscroll-behavior-x:contain}
html.flowModalOpen{overflow:hidden;overscroll-behavior:none}
dialog[open]{overscroll-behavior:contain;touch-action:pan-y;max-height:calc(100dvh - 24px);max-width:calc(100vw - 24px)}
.maintenanceDialog[open]{overflow-y:auto;overflow-x:hidden;max-height:calc(100dvh - 24px);padding-top:0}
.maintenanceDialog>header{position:sticky;top:0;background:var(--panel);color:var(--ink);padding:14px 0;z-index:2;border-bottom:1px solid var(--line)}
.maintenanceDialog :is(.reminderList,.ops-form){min-height:0;overflow-wrap:anywhere}
.flowFeedback{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:100;width:max-content;max-width:calc(100vw - 24px);padding:14px 18px;border:2px solid var(--state-complete-ink);border-radius:8px;background:var(--state-complete-bg);color:var(--state-complete-ink);box-shadow:0 5px 30px #0008}
.flowFeedback[data-error="true"]{background:var(--state-problem-bg);color:var(--state-problem-ink);border-color:currentColor}
@media(forced-colors:active){:is(.flowDanger,.flowSuccess,.flowInfo,[data-flow-state],.flowFeedback){background:Canvas!important;color:CanvasText!important;border-color:CanvasText!important}}
.maintenanceDialog[data-mode="reminders"]{width:760px;max-width:calc(100vw - 24px);max-height:min(72dvh,620px);padding:0 16px 14px}
.maintenanceDialog[data-mode="reminders"]>header{padding:10px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.maintenanceDialog[data-mode="reminders"] h2{font-size:1.15rem;margin:0}.maintenanceDialog h2 small{font-size:.85rem}
.reminderSummary{font-size:.85rem;margin:10px 0;color:var(--muted)}
.maintenanceDialog .reminderList{display:block;padding:0;gap:0}
.reminderRow{display:grid;grid-template-columns:minmax(0,1fr) 115px auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink);background:var(--panel)}
.reminderRow span{display:block;font-size:.82rem;margin-top:3px;color:var(--muted)}.reminderRow details{font-size:.85rem;margin-top:4px}.reminderRow details summary{cursor:pointer}
.reminderDue{font-variant-numeric:tabular-nums;font-weight:600}.reminderOverdue .reminderDue{color:var(--state-problem-ink);background:var(--state-problem-bg);padding:6px;border-radius:4px}
.reminderRow button{min-height:44px;margin:0}.resolutionCard{cursor:pointer}.resolutionCard:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.resolutionHint{display:block;margin-top:7px;text-decoration:underline;color:inherit!important}
.resolutionDialog{width:620px}.resolutionDialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;background:var(--panel);z-index:1}.resolutionDialog button{min-height:44px}
@media(max-width:600px){.maintenanceDialog[data-mode="reminders"]{max-height:calc(100dvh - 24px);padding:0 12px 12px}.reminderRow{grid-template-columns:minmax(0,1fr) auto;gap:8px}.reminderRow>button{grid-column:1/-1;justify-self:start}.reminderDue{max-width:115px}}
