/* Shared palette tokens; charcoal/light is also the no-script fallback. */
:root {
  --bg: #f3f4f6;
  --panel: #ffffff;
  --primary-soft: #eceef1;
  --text: #242831;
  --muted: #5d6470;
  --border: #d0d4dc;
  --primary: #444b58;
  --on-primary: #ffffff;
  --rail: #252933;
  --rail-active: #454c59;
  --rail-text: #d5d9e2;
  --chart-1: #444b58;
  --chart-2: #5c626e;
  --chart-3: #757a83;
  --chart-4: #8d9199;
  --chart-5: #a5a9af;
  --chart-6: #bec0c5;
  color-scheme:light; --brand:var(--primary); --success:var(--primary); --danger:#a23633; --warning-bg:#fff6e5; --warning-text:#80571c; --warning-border:#d9bd88; --danger-bg:#fff0ed; --danger-text:#9a352c; --danger-border:#d9a39a; --overlay:#111827b8; --focus:#995500;
}
:root[data-palette="navy"] {
  --bg: #f3f5f9;
  --panel: #ffffff;
  --primary-soft: #eaf0f8;
  --text: #1d2c42;
  --muted: #5a6a81;
  --border: #cfd9e6;
  --primary: #284f84;
  --on-primary: #ffffff;
  --rail: #182c49;
  --rail-active: #324e76;
  --rail-text: #d9e4f6;
  --chart-1: #284f84;
  --chart-2: #446694;
  --chart-3: #607da4;
  --chart-4: #7c94b4;
  --chart-5: #98abc4;
  --chart-6: #b4c1d4;
}
:root[data-palette="navy"][data-theme="dark"] {
  --bg: #101723;
  --panel: #192437;
  --primary-soft: #243650;
  --text: #e8eef9;
  --muted: #b3c1d8;
  --border: #3d526f;
  --primary: #9dbff3;
  --on-primary: #14233b;
  --rail: #111e33;
  --rail-active: #304968;
  --rail-text: #c4d4ed;
  --chart-1: #9dbff3;
  --chart-2: #8cabdb;
  --chart-3: #7b97c2;
  --chart-4: #6a83aa;
  --chart-5: #586e91;
  --chart-6: #475a79;
}
:root[data-palette="charcoal"] {
  --bg: #f3f4f6;
  --panel: #ffffff;
  --primary-soft: #eceef1;
  --text: #242831;
  --muted: #5d6470;
  --border: #d0d4dc;
  --primary: #444b58;
  --on-primary: #ffffff;
  --rail: #252933;
  --rail-active: #454c59;
  --rail-text: #d5d9e2;
  --chart-1: #444b58;
  --chart-2: #5c626e;
  --chart-3: #757a83;
  --chart-4: #8d9199;
  --chart-5: #a5a9af;
  --chart-6: #bec0c5;
}
:root[data-palette="charcoal"][data-theme="dark"] {
  --bg: #131417;
  --panel: #1e2025;
  --primary-soft: #2c2f36;
  --text: #eceef2;
  --muted: #bcc0ca;
  --border: #4c515d;
  --primary: #c7cbd4;
  --on-primary: #20242c;
  --rail: #17191e;
  --rail-active: #3a3f49;
  --rail-text: #d6d8df;
  --chart-1: #c7cbd4;
  --chart-2: #b1b5bd;
  --chart-3: #9b9fa7;
  --chart-4: #858890;
  --chart-5: #6f7279;
  --chart-6: #595c62;
}
:root[data-palette="burgundy"] {
  --bg: #f8f4f5;
  --panel: #ffffff;
  --primary-soft: #f5e9ee;
  --text: #35252c;
  --muted: #775b66;
  --border: #e3cfd6;
  --primary: #842d48;
  --on-primary: #ffffff;
  --rail: #4e1c2e;
  --rail-active: #77364f;
  --rail-text: #f1d5df;
  --chart-1: #842d48;
  --chart-2: #944860;
  --chart-3: #a46478;
  --chart-4: #b47f8f;
  --chart-5: #c49aa7;
  --chart-6: #d4b6bf;
}
:root[data-palette="burgundy"][data-theme="dark"] {
  --bg: #211318;
  --panel: #302027;
  --primary-soft: #442a35;
  --text: #f6e9ee;
  --muted: #d0b4c0;
  --border: #775362;
  --primary: #e7a8bf;
  --on-primary: #381522;
  --rail: #321b25;
  --rail-active: #653346;
  --rail-text: #efd0dc;
  --chart-1: #e7a8bf;
  --chart-2: #cf96ab;
  --chart-3: #b78597;
  --chart-4: #a07384;
  --chart-5: #886170;
  --chart-6: #70505c;
}
:root[data-palette="purple"] {
  --bg: #f6f4fa;
  --panel: #ffffff;
  --primary-soft: #eee8f7;
  --text: #30283f;
  --muted: #6a5e7f;
  --border: #dcd1e8;
  --primary: #694698;
  --on-primary: #ffffff;
  --rail: #352444;
  --rail-active: #55406d;
  --rail-text: #e2d5ee;
  --chart-1: #694698;
  --chart-2: #7d5ea5;
  --chart-3: #9076b3;
  --chart-4: #a48ec0;
  --chart-5: #b7a6ce;
  --chart-6: #cbbedb;
}
:root[data-palette="purple"][data-theme="dark"] {
  --bg: #1b1525;
  --panel: #292133;
  --primary-soft: #3b2e4b;
  --text: #f0eaf7;
  --muted: #c5b8d8;
  --border: #69567f;
  --primary: #c9adeb;
  --on-primary: #2e1b45;
  --rail: #241a31;
  --rail-active: #4d3866;
  --rail-text: #e0d0f1;
  --chart-1: #c9adeb;
  --chart-2: #b49bd3;
  --chart-3: #9f89bb;
  --chart-4: #8b76a3;
  --chart-5: #76648b;
  --chart-6: #615273;
}
:root[data-palette="copper"] {
  --bg: #faf6f1;
  --panel: #ffffff;
  --primary-soft: #f5eade;
  --text: #392b23;
  --muted: #796452;
  --border: #e4d5c7;
  --primary: #985329;
  --on-primary: #ffffff;
  --rail: #3d2c23;
  --rail-active: #674835;
  --rail-text: #f0dccc;
  --chart-1: #985329;
  --chart-2: #a56945;
  --chart-3: #b38061;
  --chart-4: #c0967c;
  --chart-5: #ceac98;
  --chart-6: #dbc3b4;
}
:root[data-palette="copper"][data-theme="dark"] {
  --bg: #211811;
  --panel: #30261e;
  --primary-soft: #443327;
  --text: #f6ede5;
  --muted: #d1bcab;
  --border: #7a604b;
  --primary: #e6b184;
  --on-primary: #382111;
  --rail: #2c2018;
  --rail-active: #5d402d;
  --rail-text: #eed6c2;
  --chart-1: #e6b184;
  --chart-2: #ce9f77;
  --chart-3: #b78d69;
  --chart-4: #9f7b5c;
  --chart-5: #87694f;
  --chart-6: #705742;
}
:root[data-palette="royal"] {
  --bg: #f2f5fc;
  --panel: #ffffff;
  --primary-soft: #e7edff;
  --text: #202f4d;
  --muted: #53678a;
  --border: #ccd7ee;
  --primary: #2857bd;
  --on-primary: #ffffff;
  --rail: #172c58;
  --rail-active: #2b4b8c;
  --rail-text: #d2e0ff;
  --chart-1: #2857bd;
  --chart-2: #446dc6;
  --chart-3: #6083ce;
  --chart-4: #7c99d7;
  --chart-5: #98aedf;
  --chart-6: #b4c4e8;
}
:root[data-palette="royal"][data-theme="dark"] {
  --bg: #10182a;
  --panel: #19253e;
  --primary-soft: #25385c;
  --text: #e7efff;
  --muted: #b0c1e2;
  --border: #435d8d;
  --primary: #94b8ff;
  --on-primary: #15284d;
  --rail: #122142;
  --rail-active: #2c4780;
  --rail-text: #c9daff;
  --chart-1: #94b8ff;
  --chart-2: #84a5e6;
  --chart-3: #7492cd;
  --chart-4: #647fb4;
  --chart-5: #546c9b;
  --chart-6: #445882;
}
:root[data-theme="dark"] { color-scheme:dark; --danger:#ffb4a7; --warning-bg:#392f1f; --warning-text:#f1d29b; --warning-border:#806b43; --danger-bg:#402724; --danger-text:#ffc1b6; --danger-border:#99665d; --focus:#ffd38c; }

.theme-settings { position:relative; margin-left:auto; flex:none; z-index:200; }
.appearance-menu>summary { display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 14px;list-style:none;border:1px solid var(--border);border-radius:9px;background:var(--primary-soft);color:var(--text);font-size:15px;font-weight:650;cursor:pointer; }
.appearance-menu>summary::-webkit-details-marker { display:none; }
.appearance-menu>summary>svg { width:20px;height:20px;flex:none; }
.appearance-menu__chevron { width:15px!important;transition:transform .1s; }
.appearance-menu[open] .appearance-menu__chevron { transform:rotate(180deg); }
.appearance-menu:not([open])>.appearance-menu__panel { display:none; }
.appearance-menu__panel { position:absolute;top:calc(100% + 10px);right:0;width:310px;max-width:calc(100vw - 38px);max-height:calc(100vh - 115px);max-height:calc(100dvh - 115px);overflow-y:auto;overscroll-behavior:contain;display:grid;gap:17px;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 38px #11182730; }
.appearance-menu__panel h2 { font-size:17px;letter-spacing:-.25px;margin:0; }
.appearance-menu__panel .helper { font-size:12px;line-height:1.6;margin:0; }
.theme-control { display:grid; gap:5px; }
.theme-control>span { font-size:12px; color:var(--muted); }
.theme-settings select { width:100%; min-height:44px; font-size:16px; padding:9px 10px; }
.appearance-settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:620px; }
.appearance-settings-grid label { display:grid; gap:8px; }
.visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
body { background:var(--bg); color:var(--text); }
.utility { background:var(--panel); border-color:var(--border); }
.workspace-label,.eyebrow,.local-note,.page-foot,.subtitle,.helper { color:var(--muted); }
.panel,.kpi-grid article,.shopping-list,.shopping-list--alert,.shopping-list--clear { background:var(--panel);color:var(--text);border-color:var(--border); }
.kpi-grid article>span,.kpi-grid small,.catalog-totals,.activity-row small,.shopping-list__item span { color:var(--muted); }
.kpi-grid article:first-child { background:var(--primary);color:var(--on-primary);border-color:var(--primary); }
.kpi-grid article:first-child>span,.kpi-grid article:first-child small { color:var(--on-primary); }
.kpi-grid article:nth-child(2) strong { color:var(--warning-text); }
label,.catalog-totals strong { color:var(--text); }
input,select,textarea { background:var(--panel);color:var(--text);border-color:var(--muted); }
input::placeholder,textarea::placeholder { color:var(--muted);opacity:1; }
input:disabled { background:var(--primary-soft);color:var(--muted); }
button,.button,button.success,button.request-success { background:var(--primary);color:var(--on-primary); }
button.ghost,.button.ghost { background:var(--panel);color:var(--text);border-color:var(--border); }
button.secondary,.button.secondary { background:var(--primary-soft);color:var(--primary);border-color:var(--border); }
button.danger { background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border); }
.rail { background:var(--rail); }
.brand,.brand strong { color:#fff; }
.brand-symbol { background:#fff;color:var(--rail); }
.brand small,.nav-caption,.rail-nav a,.rail-foot small { color:var(--rail-text); }
.rail-nav a[aria-current],.rail-nav a:hover { background:var(--rail-active);color:#fff; }
.rail-foot { border-color:var(--rail-active); }
.rail-foot strong { color:#fff; }
.rail .status-dot { background:var(--rail-text); }
.nav-close.ghost { background:var(--rail-active);color:#fff;border-color:var(--rail-text); }
.nav-backdrop:not([hidden]) { background:var(--overlay); }
.mobile-nav { background:var(--panel);border-color:var(--border); }
.mobile-nav a,.mobile-nav button { background:transparent;color:var(--muted); }
.mobile-nav [aria-current] { background:var(--primary-soft);color:var(--primary); }
.station-status { background:var(--panel);border-color:var(--border);border-left-color:var(--primary); }
.station-status--open { background:var(--warning-bg);border-color:var(--warning-border); }
.station-status__toggle { background:transparent;color:var(--text); }
.station-status__header>span,.station-status__header:after,.status-key { color:var(--muted); }
.station-status--open .station-status__header>span { color:var(--warning-text); }
.station-status__request { background:var(--panel);border-color:var(--border); }
.status-key.clear i,.local-note .status-dot { background:var(--primary); }
.section-bottom,.shopping-list__item,.activity-row { border-color:var(--border); }
.small-badge { background:var(--warning-bg);color:var(--warning-text); }
.activity-icon { background:var(--primary-soft);color:var(--primary); }
.delta.negative { color:var(--warning-text); }
th { background:var(--primary-soft);color:var(--muted); }
td { color:var(--text);border-color:var(--border); }
.catalog-table tr { background:var(--panel);border-color:var(--border); }
.catalog-table td:nth-child(2),.catalog-table td:nth-child(4):before,.catalog-table td:nth-child(5):before { color:var(--muted); }
.catalog-table td:last-child { border-color:var(--border); }
.catalog-table td:last-child button { background:var(--primary-soft);color:var(--primary);border-color:var(--border); }
.catalog-table td:last-child button.danger { background:transparent;color:var(--danger-text);border-color:transparent; }
.qr-thumb-button { background:transparent; }
.qr-thumb,.qr-preview-modal__image { background:#fff; }
.stock-text { color:var(--primary); }
.stock-text.low { color:var(--warning-text); }
.stock-text.out { color:var(--danger-text); }
.filter-pills button[aria-pressed=true] { background:var(--primary);color:var(--on-primary);border-color:var(--primary); }
.restock-item-summary,.restock-followup,.stats-row,.modify-summary,.scan-request-tools,.tip { background:var(--primary-soft);color:var(--text);border-color:var(--border); }
#restock-result:not(:empty) { background:var(--primary-soft);color:var(--text);border-color:var(--primary); }
.flow-steps { color:var(--muted); }
.flow-steps b { border-color:var(--muted); }
.txn { background:var(--panel);border-color:var(--border); }
.issue-station-listing { background:var(--panel)!important;border-color:var(--border)!important; }
.issue-station-listing--open { border-left-color:var(--warning-border)!important; }
.issue-station-listing__toggle { background:var(--primary-soft)!important;color:var(--text); }
.issue-request-card,.request-history-card,.issue-entry { background:var(--primary-soft);border-color:var(--border); }
.request-history-card { border-left-color:var(--primary); }
.request-history-card--pending,.request-history-card--partial,.issue-request-card--partial,.issue-entry--partial { background:var(--warning-bg);border-color:var(--warning-border); }
.request-history-card--complete { background:var(--primary-soft);border-color:var(--border);border-left-color:var(--primary); }
.request-history-card--canceled { background:var(--bg);border-color:var(--muted); }
.request-history-card__modification { border-color:var(--warning-border); }
.legend-chip--complete { background:var(--primary-soft);border-color:var(--primary); }
.legend-chip--pending,.legend-chip--partial { background:var(--warning-bg);border-color:var(--warning-border); }
.legend-chip--canceled { background:var(--bg);border-color:var(--muted); }
.issue-entry--unable { background:var(--danger-bg);border-color:var(--danger-border); }
.issue-entry--already-issued { background:var(--primary-soft);border-color:var(--primary); }
.issued-line { color:var(--muted); }
.station-request-guide,.sample-label { background:var(--primary-soft);color:var(--text);border-color:var(--border); }
.scanner-modal { background:var(--overlay); }
.scanner-modal__card,.scanner-modal__actions { background:var(--panel);color:var(--text);border-color:var(--border); }
.issue-entry__counts>div { background:var(--panel); }
.manual-item-list { border-color:var(--border); }
.manual-item-list__option { background:var(--primary-soft);color:var(--text); }
.manual-item-list__option--active { background:var(--primary-soft);border-color:var(--primary); }
.report-note { background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border); }
.trend-svg { background:var(--panel);border-color:var(--border); }
.trend-svg text { fill:var(--text)!important; }
.trend-svg line { stroke:var(--border); }
.trend-svg polyline { stroke:var(--primary); }
.trend-svg polygon { fill:var(--primary);fill-opacity:.22; }
.trend-svg circle[fill="#0b5fff"] { fill:var(--primary); }
.trend-svg circle[stroke]:nth-of-type(6n+1) { stroke:var(--chart-1); }
.trend-svg circle[stroke]:nth-of-type(6n+2) { stroke:var(--chart-2); }
.trend-svg circle[stroke]:nth-of-type(6n+3) { stroke:var(--chart-3); }
.trend-svg circle[stroke]:nth-of-type(6n+4) { stroke:var(--chart-4); }
.trend-svg circle[stroke]:nth-of-type(6n+5) { stroke:var(--chart-5); }
.trend-svg circle[stroke]:nth-of-type(6n) { stroke:var(--chart-6); }
.error-stack { background:var(--bg);color:var(--text);border-color:var(--border); }
.howto-hero-card { background:var(--primary-soft);border-color:var(--border); }
.howto-steps-grid article,.howto-toc a { background:var(--panel);color:var(--text);border-color:var(--border); }
.howto-steps-grid strong { color:var(--primary); }
.howto-steps-grid span,.howto-faq dd { color:var(--muted); }
.skip-link { background:var(--panel);color:var(--primary); }
:focus-visible { outline-color:var(--focus)!important; }
@media(max-width:640px) {
 .utility { flex-wrap:wrap; }
 .utility>.theme-settings { width:auto;margin-left:auto;display:block; }
 .appearance-menu>summary { font-size:14px;gap:7px;padding:10px 12px; }
 .theme-settings select { width:100%;font-size:16px; }
 .appearance-settings-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .appearance-menu__chevron { transition:none; } }

/* Request status colors are semantic and do not follow the selected color palette. */
:root {
 --request-pending-bg:#ffdce3;--request-pending-text:#851d38;--request-pending-border:#c33f60;
 --request-partial-bg:#fff0aa;--request-partial-text:#654b00;--request-partial-border:#aa8200;
 --request-complete-bg:#cff0d8;--request-complete-text:#1b572e;--request-complete-border:#39884e;
 --request-canceled-bg:#e5e7eb;--request-canceled-text:#424b58;--request-canceled-border:#78818d;
}
:root[data-theme="dark"] {
 --request-pending-bg:#4d2231;--request-pending-text:#ffdce7;--request-pending-border:#e36c90;
 --request-partial-bg:#493b13;--request-partial-text:#ffe8a3;--request-partial-border:#d1ac3d;
 --request-complete-bg:#173e28;--request-complete-text:#c9f4d6;--request-complete-border:#6bb882;
 --request-canceled-bg:#30343b;--request-canceled-text:#e1e5ec;--request-canceled-border:#929ba8;
}
.request-history-card--pending,.legend-chip--pending { --request-status-bg:var(--request-pending-bg);--request-status-text:var(--request-pending-text);--request-status-border:var(--request-pending-border); }
.request-history-card--partial,.legend-chip--partial { --request-status-bg:var(--request-partial-bg);--request-status-text:var(--request-partial-text);--request-status-border:var(--request-partial-border); }
.request-history-card--complete,.legend-chip--complete { --request-status-bg:var(--request-complete-bg);--request-status-text:var(--request-complete-text);--request-status-border:var(--request-complete-border); }
.request-history-card--canceled,.legend-chip--canceled { --request-status-bg:var(--request-canceled-bg);--request-status-text:var(--request-canceled-text);--request-status-border:var(--request-canceled-border); }
.request-history-card,.legend-chip { background:var(--request-status-bg);border-color:var(--request-status-border); }
.request-history-card,.request-history-card .helper,.request-history-card .issued-line { color:var(--request-status-text); }
.station-status--open { background:var(--request-pending-bg);border-color:var(--request-pending-border);color:var(--request-pending-text); }
.station-status--clear { background:var(--request-complete-bg);border-color:var(--request-complete-border);color:var(--request-complete-text); }
.station-status--open .station-status__toggle,.station-status--open .station-status__header>span,.station-status--open .station-status__header:after { color:var(--request-pending-text); }
.station-status--clear .station-status__toggle,.station-status--clear .station-status__header>span,.station-status--clear .station-status__header:after { color:var(--request-complete-text); }
.status-key i { background:var(--request-pending-border); }
.status-key.clear i { background:var(--request-complete-border); }
.issue-station-listing--open { border-color:var(--request-pending-border)!important; }
.issue-station-listing--open .issue-station-listing__toggle { background:var(--request-pending-bg)!important;color:var(--request-pending-text); }
.issue-station-listing--clear { border-color:var(--request-complete-border)!important; }
.issue-station-listing--clear .issue-station-listing__toggle { background:var(--request-complete-bg)!important;color:var(--request-complete-text); }
.issue-request-card { background:var(--request-pending-bg);border-color:var(--request-pending-border);color:var(--request-pending-text); }
.issue-request-card--partial,.issue-entry--partial { background:var(--request-partial-bg);border-color:var(--request-partial-border);color:var(--request-partial-text); }
.issue-request-card .helper { color:inherit; }
@media print { .request-history-card { background:#fff!important;color:#172e30!important;border-color:#777!important; }.request-history-card .helper { color:#364452!important; } }
@media print {
 .theme-settings,.appearance-settings { display:none!important; }
 :root[data-palette][data-theme] { color-scheme:light!important; --bg:#fff;--panel:#fff;--primary-soft:#f0f2f5;--text:#172e30;--muted:#52606c;--border:#d7dce1;--primary:#263a56;--on-primary:#fff;--warning-bg:#fff;--warning-text:#654313;--danger-bg:#fff;--danger-text:#902b22; }
 body,.panel,td,th { background:#fff!important;color:#172e30!important; }
 .trend-svg text { fill:#172e30!important; }
}
