/* Amoebas Delivery Hub — brand tokens from amoebas-smart-enterprise-preview.html
   Palette: Midnight #102A3B · Navy #173D55 · Steel #496D82 · Signal #2D82B5 · Signal-deep #236B97
            Sky #A9CEE2 · Mist #E6F0F5 · Cloud #F4F8FA · Paper #FAFCFD · Ink #1E303B
   Usage rule: 50–55% white/cloud surfaces, 20–25% navy, 15–20% text/borders, ≤5% Signal Blue. */
:root {
  --midnight:#102A3B; --navy:#173D55; --steel:#496D82; --signal:#2D82B5; --signal-deep:#236B97;
  --sky:#A9CEE2; --mist:#E6F0F5; --cloud:#F4F8FA;
  --bg:var(--paper,#FAFCFD); --surface:#FFFFFF; --surface-2:#F4F8FA; --surface-3:#E6F0F5;
  --text:#1E303B; --text-dim:#617580; --border:#D5E1E7;
  --accent:#2D82B5; --accent-deep:#236B97;
  --ok:#1E7A46; --warn:#9A6A15; --bad:#B23B3B;
  --focus:#2D82B5; --radius:6px;
  --shadow:0 12px 32px rgba(23,61,85,.075);
}
[data-theme="dark"] {
  --bg:#0B1D29; --surface:#102A3B; --surface-2:#173D55; --surface-3:#1C4258;
  --text:#DCEAF2; --text-dim:#8FA9B9; --border:#28465C;
  --accent:#5BA5CE; --accent-deep:#2D82B5; --sky:#7FB8D6;
  --ok:#57C283; --warn:#E5B454; --bad:#E58A8A;
  --shadow:0 12px 32px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI","Microsoft JhengHei",sans-serif;
  background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5}
.shell{display:flex;min-height:100vh}
.sidenav{width:222px;flex-shrink:0;background:var(--midnight);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
[data-theme="dark"] .sidenav{background:#0D2334}
.brand{display:flex;gap:10px;align-items:center;padding:16px;border-bottom:1px solid rgba(213,225,231,.14);white-space:nowrap}
.brand img{border-radius:5px}
.brand span{color:#fff;font-size:14px;font-weight:800;letter-spacing:-.03em}
.brand .dim{color:#A9CEE2;font-weight:600}
#nav{display:flex;flex-direction:column;padding:8px;gap:1px}
#nav button{background:none;border:none;color:#B9CDD9;text-align:left;padding:8px 12px;border-radius:var(--radius);cursor:pointer;font:600 13px/1.4 inherit;min-height:38px;letter-spacing:.01em}
#nav button.active{color:#fff;background:var(--signal);border-left:3px solid var(--sky)}
#nav button:hover{color:#fff;background:rgba(45,130,181,.25)}
.sidenav-footer{margin-top:auto;padding:12px 16px;border-top:1px solid rgba(213,225,231,.14);font-size:12px}
.sidenav-footer a{color:#A9CEE2;text-decoration:none;font-weight:650}
.content{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}
.topbar{display:flex;gap:10px;align-items:center;padding:8px 16px;background:rgba(250,252,253,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
[data-theme="dark"] .topbar{background:rgba(16,42,59,.94)}
#menu-toggle{display:none;background:none;border:none;color:var(--text);font-size:18px;cursor:pointer;min-width:44px;min-height:44px}
.search{flex:1;max-width:420px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;color:var(--text);font:inherit;min-height:38px}
.search:focus{border-color:var(--signal);outline:2px solid rgba(45,130,181,.25)}
.topbar-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.topbar-actions select,.icon-btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;min-height:36px;font:600 12px inherit;cursor:pointer}
.icon-btn{position:relative}
.icon-btn:hover{background:var(--surface-3)}
.pill{position:absolute;top:-4px;right:-4px;background:var(--bad);color:#fff;font-size:10px;border-radius:999px;padding:1px 6px}
.notif-tray{position:fixed;top:54px;right:16px;width:380px;max-width:95vw;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:50;max-height:60vh;overflow-y:auto}
.notif-tray .n{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}
.main{flex:1;padding:22px;max-width:1280px;width:100%;margin:0 auto}
.footer{padding:10px 16px;color:var(--text-dim);font-size:12px;border-top:1px solid var(--border);background:var(--surface)}
.footer a{color:var(--accent)}
h1{font-size:21px;margin:0 0 16px;color:var(--navy);letter-spacing:-.04em;font-weight:800}
[data-theme="dark"] h1{color:#EAF3F8}
h2{font-size:16px;margin:22px 0 10px;color:var(--navy);letter-spacing:-.03em}
h3{font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin:0 0 8px;font-weight:800}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.card:hover{box-shadow:var(--shadow)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.widget{cursor:pointer}
.widget .value{font-size:27px;font-weight:800;color:var(--navy);letter-spacing:-.04em}
[data-theme="dark"] .widget .value{color:#EAF3F8}
.widget .hint{color:var(--text-dim);font-size:12px}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:13px;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
th{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:800}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700}
.badge.green,.badge.on_track,.badge.complete,.badge.approved,.badge.allocated,.badge.ok{background:#E2F3E9;color:var(--ok)}
.badge.amber,.badge.at_risk,.badge.pending,.badge.requested,.badge.submitted,.badge.triage,.badge.warn{background:#F7EDD8;color:var(--warn)}
.badge.red,.badge.blocked,.badge.rejected,.badge.overallocated,.badge.critical{background:#F8E1E1;color:var(--bad)}
.badge.draft,.badge.returned,.badge.info{background:var(--surface-3);color:var(--steel)}
[data-theme="dark"] .badge.green,[data-theme="dark"] .badge.on_track,[data-theme="dark"] .badge.complete,[data-theme="dark"] .badge.approved,[data-theme="dark"] .badge.allocated,[data-theme="dark"] .badge.ok{background:rgba(87,194,131,.16)}
[data-theme="dark"] .badge.amber,[data-theme="dark"] .badge.at_risk,[data-theme="dark"] .badge.pending,[data-theme="dark"] .badge.requested,[data-theme="dark"] .badge.submitted,[data-theme="dark"] .badge.triage,[data-theme="dark"] .badge.warn{background:rgba(229,180,84,.16)}
[data-theme="dark"] .badge.red,[data-theme="dark"] .badge.blocked,[data-theme="dark"] .badge.rejected,[data-theme="dark"] .badge.overallocated,[data-theme="dark"] .badge.critical{background:rgba(229,138,138,.16)}
[data-theme="dark"] .badge.draft,[data-theme="dark"] .badge.returned,[data-theme="dark"] .badge.info{background:rgba(169,206,226,.14);color:var(--sky)}
.btn{background:var(--surface);color:var(--navy);border:1px solid var(--border);border-radius:var(--radius);padding:7px 14px;font:700 13px inherit;cursor:pointer;min-height:38px;transition:.15s ease}
.btn:hover{background:var(--mist);transform:translateY(-1px)}
.btn.primary{background:var(--signal);border-color:var(--signal);color:#fff}
.btn.primary:hover{background:var(--signal-deep);border-color:var(--signal-deep)}
.btn.small{padding:4px 10px;font-size:12px;min-height:30px}
.btn.danger{border-color:var(--bad);color:var(--bad);background:transparent}
.btn:focus-visible{outline:3px solid rgba(45,130,181,.25);outline-offset:2px}
form.simple{display:grid;gap:10px;max-width:600px}
label.f{display:grid;gap:4px;font-size:12px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}
label.f span{font-size:11px}
input,select,textarea{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font:inherit;min-height:38px;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--signal);outline:2px solid rgba(45,130,181,.25)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pct{font-weight:800}.pct.green{color:var(--ok)}.pct.amber{color:var(--warn)}.pct.red{color:var(--bad)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;font-size:13px}
.kv dt{color:var(--text-dim)}.kv dd{margin:0;font-weight:700}
.drawer{position:fixed;right:0;top:0;bottom:0;width:480px;max-width:95vw;background:var(--surface);border-left:1px solid var(--border);z-index:100;box-shadow:var(--shadow);display:flex;flex-direction:column}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}
.drawer-head h3{margin:0;font-size:15px;text-transform:none;letter-spacing:0;color:var(--navy)}
.drawer-body{padding:16px 18px;overflow-y:auto;flex:1}
.planner-grid{overflow-x:auto}
.cap-cell{display:inline-block;min-width:64px;padding:4px 8px;border-radius:var(--radius);font-size:12px;font-weight:700}
.cap-cell.ok{background:#E2F3E9;color:var(--ok)}
.cap-cell.partial{background:#F7EDD8;color:var(--warn)}
.cap-cell.over{background:#F8E1E1;color:var(--bad)}
[data-theme="dark"] .cap-cell.ok{background:rgba(87,194,131,.16)}
[data-theme="dark"] .cap-cell.partial{background:rgba(229,180,84,.16)}
[data-theme="dark"] .cap-cell.over{background:rgba(229,138,138,.16)}
a{color:var(--accent)}
.drawer-overlay{position:fixed;inset:0;background:rgba(16,42,59,.35);z-index:99}
.login-wrap{display:grid;place-items:center;min-height:70vh}
.login-card{width:380px;max-width:92vw;display:grid;gap:10px}
a:hover{color:var(--signal-deep)}
:focus-visible{outline:3px solid rgba(45,130,181,.25);outline-offset:2px}
@media (max-width:860px){
 .sidenav{position:fixed;z-index:200;left:0;top:0;bottom:0;display:none}
 .sidenav.open{display:flex}
 #menu-toggle{display:block}
 .search{max-width:none}
 main{padding:12px}
 th,td{padding:6px 8px;font-size:12px}
}
