/* AromaCraft Hub design system: one palette, one type scale, shared components.
   Structure (grids, spacing per view) lives in layout.css; this file owns the look. */

/* ---------- Tokens ---------- */
:root{
 --bg:#f4f5f7;--surface:#fff;--surface-2:#f7f8fa;--surface-3:#eef0f4;--hover:#f1f3f6;
 --line:#e3e6eb;--line-strong:#cdd2da;
 --text:#151a23;--text-2:#465063;--text-3:#5f6878;
 --accent:#2453c9;--accent-strong:#1c43a8;--accent-soft:#e9effc;--on-accent:#fff;
 --brand:#7a4a2b;
 --good:#146c43;--good-soft:#e6f4ec;--warn:#875300;--warn-soft:#fdf2da;--bad:#b3261e;--bad-soft:#fcebea;--info:#2453c9;--info-soft:#e9effc;
 --focus:0 0 0 3px rgba(36,83,201,.28);
 --radius:10px;--radius-sm:7px;--shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);--shadow-lg:0 12px 32px rgba(16,24,40,.18);
 --font:Inter,"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
 --chart-1:#2453c9;--chart-2:#d27b2c;--chart-3:#2e9a6b;--chart-4:#8a5cc7;--chart-grid:#e6e9ee;
 color-scheme:light;
 /* Names the structural sheet still references. */
 --subtle:var(--text-3);--muted:var(--text-3);--raised:var(--surface-2);--canvas:var(--bg);--ink:var(--text);--border:var(--line);--hub-line:var(--line);--hub-ink:var(--text);--hub-muted:var(--text-3);--action:var(--accent);
}
:root[data-theme=dark]{
 --bg:#0f1115;--surface:#171a20;--surface-2:#1c2027;--surface-3:#232831;--hover:#20252d;
 --line:#2a3039;--line-strong:#3a414d;
 --text:#eceef2;--text-2:#c3c8d1;--text-3:#9aa2af;
 --accent:#7ea2ff;--accent-strong:#a3bdff;--accent-soft:#1b2540;--on-accent:#0d1430;
 --brand:#d9a57c;
 --good:#5fd09a;--good-soft:#13271d;--warn:#f0bf5a;--warn-soft:#2a2210;--bad:#ff8a80;--bad-soft:#2d1615;--info:#7ea2ff;--info-soft:#1b2540;
 --focus:0 0 0 3px rgba(126,162,255,.35);--shadow:0 1px 2px rgba(0,0,0,.4);--shadow-lg:0 16px 40px rgba(0,0,0,.55);
 --chart-1:#7ea2ff;--chart-2:#f0a35c;--chart-3:#5fd09a;--chart-4:#c09bff;--chart-grid:#2a3039;
 color-scheme:dark;
}
:root[data-theme=dark] .when-light,:root:not([data-theme=dark]) .when-dark{display:none}

/* ---------- Base & type ---------- */
html{background:var(--bg)}
body{background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
h1,h2,h3,h4{color:var(--text);font-family:var(--font);margin:0;letter-spacing:-.01em}
h1{font-size:26px;line-height:1.25;font-weight:650}
h2{font-size:19px;line-height:1.3;font-weight:620}
h3{font-size:16px;line-height:1.35;font-weight:620}
h4{font-size:15px;font-weight:620}
p{color:var(--text-2)}
a{color:var(--accent)}a:hover{color:var(--accent-strong)}
small,.small{font-size:13px}
b,strong{font-weight:620}
code,pre,.code{font:13px/1.5 ui-monospace,"Cascadia Mono",Consolas,monospace}
pre{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;overflow:auto;color:var(--text-2)}
hr{border:0;border-top:1px solid var(--line)}
::selection{background:var(--accent-soft)}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}
.amount,.count,td.amount,.dash-metric strong,.metric-value,table{font-variant-numeric:tabular-nums}
.muted,.inline-note,.field-hint,small.muted{color:var(--text-3)}
.eyebrow{font-size:12px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Shell ---------- */
.sidebar{background:var(--surface)}

.brand{padding:4px 10px 18px;text-decoration:none}
.brand-wordmark{font:700 22px/1 Georgia,"Times New Roman",serif;color:var(--text);letter-spacing:-.02em}
.brand-period{color:var(--brand)}
.nav-caption{font-size:11.5px;font-weight:650;letter-spacing:.08em;color:var(--text-3);margin:6px 10px 8px}
#navigation{gap:2px}
#navigation a{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;color:var(--text-2);font-size:14.5px;font-weight:520;text-decoration:none}
#navigation a svg{width:19px;height:19px;flex:none;color:var(--text-3)}
#navigation a:hover{background:var(--hover);color:var(--text)}
#navigation a.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:620}
#navigation a.active svg{color:var(--accent)}
.nav-divider{height:1px;background:var(--line);margin:10px 8px}
.sidebar-bottom{border-top:1px solid var(--line);padding-top:12px;margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:2px}
.sidebar-action{background:none;border:0;text-align:left;padding:8px 10px;border-radius:8px;color:var(--text-2);font-size:14px}
.sidebar-action:hover{background:var(--hover);color:var(--text)}
header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;height:60px;padding:0 32px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.breadcrumb{color:var(--text-3);font-size:14px}.breadcrumb span{margin:0 6px;color:var(--line-strong)}.breadcrumb b{color:var(--text);font-weight:620}
.mode-switch{margin-left:auto;display:inline-flex;gap:2px;padding:3px;background:var(--surface-3);border-radius:9px;flex-direction:row}
.mode-switch a{padding:6px 14px;border-radius:7px;color:var(--text-2);font-size:14px;font-weight:560;text-decoration:none;white-space:nowrap}
.mode-switch a:hover{color:var(--text)}
.mode-switch a.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.header-right{display:flex;gap:8px}
main{padding:24px 32px 40px;max-width:1600px}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 0 18px}
.page-heading .eyebrow{display:none}
.page-heading p{margin:4px 0 0;font-size:14.5px;color:var(--text-3)}
.page-heading p:empty{display:none}
.heading-actions{display:flex;gap:8px}
footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);color:var(--text-3);font-size:13px}
footer span:empty{display:none}
.initial-placeholder{height:240px;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.2s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}

/* ---------- Toolbar / date range ---------- */
.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 12px;margin-bottom:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.date-range{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:14px}
.date-range label{display:flex;align-items:center;gap:6px}
.timezone{color:var(--text-3);font-size:13px;margin-left:auto}

/* ---------- Buttons ---------- */
button{font:inherit;color:inherit}
.button,button.button,a.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 15px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-size:14.5px;font-weight:560;line-height:1;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s}
.button:hover{background:var(--hover);border-color:var(--text-3)}
.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
.button.danger,.danger-solid{background:var(--bad);border-color:var(--bad);color:#fff}
.button.danger:hover,.danger-solid:hover{filter:brightness(.92)}
.button:disabled,.button[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.text-button{background:none;border:0;padding:4px 2px;color:var(--accent);font-weight:560;font-size:14.5px;text-decoration:none;cursor:pointer}
.text-button:hover{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px}
.icon-button{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text-2)}
.icon-button:hover{background:var(--hover);color:var(--text)}
.back-link{color:var(--text-2);font-size:14px;text-decoration:none}

/* ---------- Form controls ---------- */
input,select,textarea{font:inherit;color:var(--text)}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{min-height:38px;padding:7px 11px;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;font-size:14.5px;color:var(--text);transition:border-color .12s,box-shadow .12s;max-width:100%}
textarea{min-height:90px;line-height:1.5}
input:hover,select:hover,textarea:hover{border-color:var(--text-3)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}
input::placeholder,textarea::placeholder{color:var(--text-3);opacity:.85}
input[type=checkbox],input[type=radio]{width:17px;height:17px;accent-color:var(--accent);vertical-align:middle}
:root[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.85)}
.field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:560;color:var(--text-2)}
.field input,.field select,.field textarea{font-weight:400;width:100%}
.field-hint{font-size:13px;font-weight:400}
.check-field,.switch-field{display:flex;align-items:center;gap:9px;font-size:14.5px;color:var(--text);font-weight:450}
.form-grid{gap:14px}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
label{color:var(--text-2)}

/* ---------- Surfaces ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.card h2{font-size:18px}
.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.card p{color:var(--text-2)}
.notice,.hero-note{background:var(--info-soft);border:1px solid color-mix(in srgb,var(--info) 25%,transparent);color:var(--text);border-radius:var(--radius);padding:12px 14px}
.notice-icon{color:var(--info)}
.error-box{background:var(--bad-soft);border:1px solid color-mix(in srgb,var(--bad) 30%,transparent);color:var(--text);border-radius:var(--radius);padding:12px 14px}
.error-text{color:var(--bad)}
.doc-warning,.ps-warning,.cost-callout{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);color:var(--text);border-radius:var(--radius);padding:12px 14px}
.empty,.doc-empty,.ps-empty,.chart-empty,.dash-chart-empty,.flow-empty,.print-none{color:var(--text-3);text-align:center}
.empty{background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:28px 16px}
.empty h2,.empty h3{color:var(--text);font-size:16px}
.empty-line{color:var(--text-3);padding:14px 0}
.empty-icon{color:var(--text-3)}
.details,details{border-radius:var(--radius)}
details>summary{cursor:pointer;color:var(--text-2);font-weight:560;font-size:14.5px;list-style:none;display:flex;align-items:center;gap:8px}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:rotate(-45deg);transition:transform .15s;flex:none}
details[open]>summary::before{transform:rotate(45deg)}
main>.details{display:none}

/* ---------- Badges, chips, tabs ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:600;line-height:1.6;white-space:nowrap;background:var(--surface-3);color:var(--text-2);border:1px solid transparent}
.badge.completed,.badge.connected,.badge.fresh,.badge.ready,.badge.approved,.badge.confirmed,.badge.done,.badge.declared,.badge.paid,.badge.print-confirmed,.badge.print-printed{background:var(--good-soft);color:var(--good)}
.badge.waiting,.badge.pending,.badge.partial,.badge.preliminary,.badge.stale,.badge.queued,.badge.insufficient_sample,.badge.insufficient_data,.badge.not_tested,.badge.needs_review,.badge.candidate,.badge.suggested,.badge.review,.badge.planned,.badge.draft,.badge.interrupted,.badge.print-queued,.badge.print-preparing,.badge.print-leased,.badge.print-spooling,.badge.print-waiting_label{background:var(--warn-soft);color:var(--warn)}
.badge.error,.badge.failed,.badge.expired,.badge.permission_denied,.badge.failed_validation,.badge.rejected,.badge.print-error,.badge.print-uncertain{background:var(--bad-soft);color:var(--bad)}
.badge.running{background:var(--info-soft);color:var(--info)}
.carrier{display:inline-block;padding:1px 8px;border-radius:6px;font-size:12.5px;font-weight:700;letter-spacing:.02em;background:var(--surface-3);color:var(--text-2)}
.carrier.inpost{background:#ffcd00;color:#1a1a1a}.carrier.dpd{background:#dc0032;color:#fff}
.count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--text-2);font-size:12.5px;font-weight:650}
.carrier-tabs,.section-tabs,.doc-tabs,.ps-tabs,.shop-settings-tabs,.dashboard-presets,.dashboard-cost-tabs,.history-presets,.ps-presets{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--surface-3);border-radius:9px;border:0}
.carrier-tabs button,.section-tabs button,.section-tabs a,.doc-tabs button,.doc-tabs a,.ps-tabs button,.shop-settings-tabs button,.shop-settings-tabs a,.dashboard-presets button,.dashboard-cost-tabs button,.history-presets button,.ps-presets button{background:none;border:0;padding:6px 13px;border-radius:7px;color:var(--text-2);font-size:14px;font-weight:560;text-decoration:none;white-space:nowrap}
.carrier-tabs button:hover,.section-tabs :is(a,button):hover,.doc-tabs :is(a,button):hover,.ps-tabs button:hover,.shop-settings-tabs :is(a,button):hover,.dashboard-presets button:hover,.dashboard-cost-tabs button:hover,.history-presets button:hover,.ps-presets button:hover{color:var(--text)}
:is(.carrier-tabs,.section-tabs,.doc-tabs,.ps-tabs,.shop-settings-tabs,.dashboard-cost-tabs,.history-presets,.ps-presets) :is(.active,[aria-selected=true],[aria-pressed=true],[aria-current=page]),.dashboard-presets [aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.order-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-size:13.5px}
button.order-filter-chip:hover{border-color:var(--bad);color:var(--bad)}
.pagination,.customer-pagination,.ps-pagination{display:flex;align-items:center;gap:8px;justify-content:flex-end;color:var(--text-3);font-size:14px}

/* ---------- Tables ---------- */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.card>.table-wrap,.order-card>.table-wrap{border:0;border-radius:0;background:none}
.order-card{padding:0;overflow:hidden}
table{border-collapse:collapse;width:100%}
.data-table{font-size:14px;color:var(--text)}
.data-table th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--text-3);font-size:12.5px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.data-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.data-table tbody tr:last-child td{border-bottom:0}
.data-table tbody tr:hover td{background:var(--hover)}
.data-table td small,.data-table td .muted{display:block;color:var(--text-3);font-size:13px;line-height:1.45}
.data-table td.amount,.data-table th.amount{text-align:right;white-space:nowrap;font-weight:620}

/* ---------- Toast & modal ---------- */
#toast{position:fixed;right:24px;bottom:24px;z-index:60;max-width:420px;padding:12px 16px;border-radius:var(--radius);background:var(--text);color:var(--surface);box-shadow:var(--shadow-lg);font-size:14.5px;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;pointer-events:none}
#toast.visible{opacity:1;transform:none}
dialog#modal{border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);padding:26px;width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px)}
dialog#modal::backdrop{background:rgba(15,18,24,.45)}
.dialog-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:8px;border:0;background:none;color:var(--text-3);font-size:22px}
.dialog-close:hover{background:var(--hover);color:var(--text)}
#modal-content h2{margin-bottom:8px}

/* ---------- Login ---------- */
.login-page{min-height:100vh;display:grid;place-items:center;background:var(--bg);margin:0}
.login-card{width:min(400px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:34px}
.login-symbol{font:700 26px/1 Georgia,serif;color:var(--text);margin-bottom:22px}
.login-card h1{font-size:22px;margin:6px 0 6px}
.login-intro{color:var(--text-3);margin:0 0 22px}
.login-card form{display:flex;flex-direction:column;gap:14px}
.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:560}
.login-card button{min-height:42px;border-radius:9px;border:0;background:var(--accent);color:var(--on-accent);font-weight:620;font-size:15px}
#login-error{color:var(--bad);margin:0;min-height:1em;font-size:14px}
.login-foot{color:var(--text-3);font-size:13px;margin:20px 0 0}

/* ---------- Loading between views ---------- */
#content[aria-busy=true]{opacity:.45;pointer-events:none;transition:opacity .15s .12s}

/* ---------- Buttons rendered without a class inside views ---------- */
:is(#content,#modal-content) :not(.carrier-tabs,.section-tabs,.doc-tabs,.ps-tabs,.shop-settings-tabs,.dashboard-presets,.dashboard-cost-tabs,.history-presets,.ps-presets)>button:not([class]),.dashboard-alert-done,[data-dashboard-alert-refresh]{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-size:14px;font-weight:560;white-space:nowrap}
:is(#content,#modal-content) :not(.carrier-tabs,.section-tabs,.doc-tabs,.ps-tabs,.shop-settings-tabs,.dashboard-presets,.dashboard-cost-tabs,.history-presets,.ps-presets)>button:not([class]):hover,.dashboard-alert-done:hover{background:var(--hover);border-color:var(--text-3)}
#content button:disabled,#modal-content button:disabled{opacity:.5;cursor:not-allowed}

/* ---------- Section headings inside views ---------- */
.section-heading,.ps-section-heading,.flow-list-heading,.saved-groups-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px}
.section-heading h2,.ps-section-heading h2{font-size:18px}
.section-intro,.settings-intro p{color:var(--text-3)}

/* ---------- KPI cards ---------- */
.dash-metric,.hub-stat,.customer-summary .card,.ps-kpis>*,.doc-stats>*,.metrics>.metric,.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);text-decoration:none}
.dash-metric>span,.hub-stat>span,.customer-summary .card>span,.metric-top{font-size:13.5px;font-weight:560;color:var(--text-3)}
.dash-metric>strong,.hub-stat strong,.customer-summary .card>strong,.metric-value{display:block;font-size:28px;font-weight:650;letter-spacing:-.02em;line-height:1.15;color:var(--text);font-variant-numeric:tabular-nums}
.dash-metric>small,.hub-stat small,.customer-summary .card>small,.metric-meta,.metric-comparison,.dash-metric-comparison{font-size:13px;color:var(--text-3);line-height:1.45}
.dash-metric-accent,.hub-stat.accent{border-top:3px solid var(--accent)}
.dash-metric-accent>strong,.hub-stat.accent strong{color:var(--accent)}
.secondary-stats .hub-stat strong,.dashboard-secondary .dash-metric>strong{font-size:22px}
.dash-help{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--line-strong);color:var(--text-3);font-size:12px;font-weight:700;background:var(--surface)}
.dash-missing{color:var(--text-3)}
.customer-summary .card:hover{border-color:var(--line-strong)}

/* ---------- Dashboard ---------- */
.dashboard-alerts{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:var(--radius);box-shadow:var(--shadow);margin:0 0 20px;overflow:hidden;padding:0}
.dashboard-alert-heading{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line)}
.dashboard-alert-heading h2{font-size:16px;display:flex;align-items:center;gap:8px;margin:0}
.dashboard-alert-heading h2 span{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:13px;font-weight:700}
.dashboard-alert-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--warn-soft);color:var(--warn);font-weight:800;font-size:14px;border:0}
.dashboard-alert-heading button{margin-left:auto}
.dashboard-alert-bulk{display:flex;align-items:center;gap:14px;padding:7px 16px;background:var(--surface-2);font-size:13.5px;color:var(--text-2)}
.dashboard-alert-bulk label{display:flex;align-items:center;gap:7px;color:var(--text-2)}
.dashboard-alert-bulk .dashboard-alert-done{margin-left:auto;min-height:30px}
.dashboard-alert-list{max-height:300px;overflow:auto}
.dashboard-alert-row{display:grid;grid-template-columns:auto minmax(150px,220px) 1fr auto;align-items:center;gap:14px;padding:8px 16px;border-top:1px solid var(--line);background:none;border-radius:0;margin:0}
.dashboard-alert-row:first-child{border-top:0}
.dashboard-alert-row:hover{background:var(--hover)}
.dashboard-alert-row ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}
.dashboard-alert-row li{font-size:14px;color:var(--text-2)}
.dashboard-alert-row li strong{color:var(--text);font-weight:600}
.dashboard-alert-order{background:none;border:0;padding:0;text-align:left;color:var(--accent);font-weight:650;font-size:14px}
.dashboard-alert-order small{display:block;color:var(--text-3);font-weight:450;font-size:12.5px}
.dashboard-alert-row .dashboard-alert-done{min-height:30px;font-size:13.5px}
.dashboard-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 12px}
.dash-period{font-size:16px;font-weight:650;color:var(--text)}
.dashboard-top p{margin:2px 0 0;color:var(--text-3);font-size:14px}
.dashboard-range{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-bottom:14px}
.dashboard-range-fields label{font-size:13px;color:var(--text-3)}
.dashboard-today{display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:10px 4px;margin-bottom:14px;color:var(--text-2);font-size:14px;border-bottom:1px solid var(--line)}
.dashboard-today b,.dashboard-today strong{color:var(--text)}
.dashboard-today small{margin-left:auto;color:var(--text-3)}
.dash-live-dot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.dashboard-chart-card,.dash-chart{color:var(--text-2)}
.dash-grid line,.dash-grid{stroke:var(--chart-grid)}
.dash-axis,.dash-axis text,.chart-labels{fill:var(--text-3);color:var(--text-3);font-size:12px}
.dash-line{fill:none;stroke-width:2.2}
.dash-line.dash-sales{stroke:var(--chart-1)}
.dash-line.dash-cost{stroke:var(--chart-2)}
.dash-bar.dash-sales,.dash-dot.dash-sales{fill:var(--chart-1)}
.dash-bar.dash-cost,.dash-dot.dash-cost{fill:var(--chart-2)}
.dash-point{fill:var(--surface);stroke:var(--chart-1);stroke-width:2}
.dash-hover-line{stroke:var(--line-strong)}
.dash-hit{fill:transparent}
.dash-chart-tooltip{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-lg);padding:8px 10px;font-size:13px}
.dash-chart-empty{padding:30px 0}
.chart .line{fill:none;stroke:var(--chart-1);stroke-width:2.2}
.chart .area{fill:var(--accent-soft)}
.chart .gridline{stroke:var(--chart-grid)}
.chart text{fill:var(--text-3);font-size:12px}
.legend{color:var(--text-3);font-size:13px}
.revenue-chart rect,.revenue-chart .bar{fill:var(--chart-1)}

/* ---------- Orders & packing ---------- */
.store-context{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-2);font-size:14px;margin:0 0 12px}
.store-context>div{display:flex;align-items:center;gap:12px;color:var(--text-3)}
.order-active-filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:12px 0}
.order-filter-heading{display:flex;align-items:center;justify-content:space-between;color:var(--text-2);font-size:13.5px}
.order-filter-heading b span{margin-left:4px}
.order-filter-heading small{color:var(--text-3)}
.order-filter-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
#store-filters,.packing-filters,.customer-filters,.doc-filters,.ps-filters,.history-filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:0 0 14px}
#store-filters .packing-filters{border:0;padding:0;margin:0}
.order-search-help{display:flex;align-items:center;justify-content:space-between;gap:14px}
.order-search-help p{font-size:13px;color:var(--text-3);margin:6px 0}
.store-filter-details{margin-top:6px}
.store-filter-details>summary{font-size:14px}
.selection-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 0;color:var(--text-2);font-size:14px}
.selection-bar b{color:var(--text)}
.selection-bar[data-empty=true] .button{min-height:0;padding:2px 0;border:0;background:none;color:var(--accent);font-weight:560;box-shadow:none}
.selection-bar[data-empty=true] .button:hover{text-decoration:underline;text-underline-offset:3px}
.selection-bar:not([data-empty=true]){position:sticky;top:60px;z-index:6;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);padding:8px 12px;box-shadow:var(--shadow)}
.order-table td:nth-child(2){min-width:200px;max-width:270px}
.data-table td small.order-delivery{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.data-table td{overflow-wrap:normal;word-break:normal;hyphens:manual}
.order-table td:nth-child(7){min-width:150px}
.packing-filters .button{justify-self:start;min-width:120px}
.th-sort{font-size:12.5px;text-transform:none;letter-spacing:0;padding:0}
.data-table td small.order-created{color:var(--text-3);font-size:12.5px;margin-bottom:2px}
.order-number{background:none;border:0;padding:0;color:var(--accent);font-weight:650;font-size:14px;text-align:left;cursor:pointer}
.order-number:hover{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px}
.data-table td small.order-customer{color:var(--text);font-size:13.5px;margin-top:2px}
.order-contact{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
.order-created{white-space:nowrap;color:var(--text-2)}
.order-products{min-width:230px}
.order-products>div{margin-bottom:4px}
.order-products b{font-weight:650}
.customer-order-history{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:3px}
.data-table .customer-order-history small{display:inline}
.customer-order-history .text-button{font-size:13px;padding:0}
small.paid,.data-table td small.paid{color:var(--good)}
.order-print-status{margin:5px 0 2px}
.packed-row td{opacity:.55}
.group-row td{background:var(--surface-3)!important;font-weight:620;color:var(--text)}
.group-row td span{margin-left:8px}
.pack-check{display:flex;align-items:center;gap:6px;white-space:nowrap}
.shipping-delivered{color:var(--good)!important}
.shipping-returned{color:var(--bad)!important}
.order-card{margin-top:4px}
.group-card,.shipment-card,.batch-card,.station-row,.flow-card,.decision-card,.material-card,.asset-tile,.doc-check-card,.welcome-card,.print-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.doc-check-card{padding:14px}
.welcome-card{padding:20px}
.connection-dot,.state-dot{width:9px;height:9px;border-radius:50%;background:var(--line-strong);display:inline-block}
.connection-dot.on,.state-dot.on,.print-connection.ok .connection-dot{background:var(--good)}
.print-connection{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px;color:var(--text-2)}
.print-connection b{color:var(--text)}

/* ---------- Settings ---------- */
.settings-state{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.settings-state small{display:block;color:var(--text-3);font-size:13px}
.settings-state strong{color:var(--text-2);font-size:14px}
.settings-fact{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--text-2)}
.settings-fact strong,.settings-fact b{color:var(--text)}
body[data-mode=store] nav.shop-settings-tabs{border-bottom:1px solid var(--line);background:none;padding:0;border-radius:0;gap:0}
body[data-mode=store] nav.shop-settings-tabs a{font-size:14px;color:var(--text-3);padding:11px 14px;border-radius:0;box-shadow:none;background:none}
body[data-mode=store] nav.shop-settings-tabs a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent);background:none;box-shadow:none;font-weight:620}
.hub-stats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}

/* ---------- One shell geometry for both modes ---------- */
:is(body,body[data-mode=store]) .sidebar{width:232px;padding:20px 12px 14px;border-right:1px solid var(--line)}
:is(body,body[data-mode=store]) .shell{margin-left:232px}
:is(body,body[data-mode=store]) .shell>header{height:60px;padding:0 32px;gap:16px}
:is(body,body[data-mode=store]) .shell main{padding:24px 32px 40px;max-width:1600px;margin:0}
:is(body,body[data-mode=store]) .page-heading{margin:4px 0 18px;align-items:flex-end}
:is(body,body[data-mode=store]) .page-heading h1{margin:0}
:is(body,body[data-mode=store]) .nav-caption{margin:6px 10px 8px}
:is(body,body[data-mode=store]) .sidebar-bottom{margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
@media (min-width:1700px){:is(body,body[data-mode=store]) .shell main{padding:28px 40px 44px}}
@media (max-width:900px){
 :is(body,body[data-mode=store]) .sidebar{position:sticky;top:0;inset:auto;z-index:30;width:auto;height:auto;flex-direction:row;align-items:center;gap:8px;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}
 :is(body,body[data-mode=store]) .sidebar .brand{padding:0 8px 0 0}
 .nav-caption,:is(body,body[data-mode=store]) .sidebar-bottom{display:none}
 #navigation{flex-direction:row;flex-wrap:nowrap}
 #navigation a{white-space:nowrap;padding:7px 10px}
 #navigation .nav-divider{display:none}
 :is(body,body[data-mode=store]) .shell{margin-left:0}
 :is(body,body[data-mode=store]) .shell>header{position:static;padding:0 16px;height:auto;min-height:52px;flex-wrap:wrap}
 :is(body,body[data-mode=store]) .shell main{padding:16px}
 .hub-stats,.dashboard-secondary,.dashboard-primary{grid-template-columns:1fr 1fr!important}
}

/* ---------- Products, automations, misc ---------- */
.ps-kpis strong,.ps-kpis b{display:block;font-size:26px;font-weight:650;letter-spacing:-.02em;color:var(--text)}
.ps-kpis span,.ps-kpis small{color:var(--text-3);font-size:13px}
:is(.carrier-tabs,.section-tabs,.doc-tabs,.ps-tabs,.shop-settings-tabs,.dashboard-cost-tabs,.history-presets,.ps-presets) a{background:none;border:0;padding:6px 13px;border-radius:7px;color:var(--text-2);font-size:14px;font-weight:560;text-decoration:none;white-space:nowrap}
.flow-templates{flex-wrap:wrap;overflow:visible}
.flow-templates button{white-space:normal;text-align:left}
.process-strip,.workflow-steps{color:var(--text-2)}
.step-number{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-3);color:var(--text-2);font-size:12.5px;font-weight:700}
.source-logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface-3);color:var(--text-2);font-weight:700}
.connection-title{display:flex;align-items:center;gap:10px}
.copy-field,.code{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.order-table .data-table :is(td,th){padding-left:9px;padding-right:9px}
.order-table td:nth-child(2){min-width:180px}
.order-products{min-width:190px}
.order-table td:nth-child(7){min-width:132px}
@media (max-width:900px){:is(body,body[data-mode=store]) .page-heading{flex-direction:column;align-items:flex-start}}
