:root{--bg:#f6f7f9;--card:#fff;--ink:#0f172a;--mute:#64748b;--line:#e8ebf0;--line2:#d5dae2;--accent:#0F3D91;--accent-2:#F5B82E;
--ok:#047857;--okbg:#d1fae5;--err:#b91c1c;--errbg:#fee2e2;--warn:#b45309;--warnbg:#fef3c7;--info:#1d4ed8;--infobg:#dbeafe;--vio:#6d28d9;--viobg:#ede9fe;
--r:12px;--side:236px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
code,pre{font-family:ui-monospace,Consolas,monospace;font-size:12.5px}pre{background:#f1f5f9;padding:10px;border-radius:8px;overflow:auto}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}
.side{background:#fff;border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;padding:2px 10px 18px;font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--ink)}
.brand:hover{text-decoration:none}
.logo{width:30px;height:30px;border-radius:9px;background:var(--accent);color:var(--accent-2);display:grid;place-items:center;font-weight:800;font-size:15px}
.side .grp{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;padding:14px 10px 6px}
.side a.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:#334155;font-weight:500}
.side a.nav svg{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.side a.nav:hover{background:#f1f5f9;text-decoration:none}
.side a.nav.on{background:#eef3fc;color:var(--accent);font-weight:600}.side a.nav.on svg{opacity:1}
.side .foot{margin-top:auto;border-top:1px solid var(--line);padding:12px 8px 0;display:flex;align-items:center;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;background:#e2e8f0;display:grid;place-items:center;font-weight:700;color:#475569;flex:none}
.side .foot .who{flex:1;min-width:0;line-height:1.25}.side .foot .who b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .foot .who span{font-size:12px;color:var(--mute)}
.side .foot form{margin:0}.iconbtn{background:none;border:0;padding:6px;border-radius:8px;cursor:pointer;color:var(--mute);display:grid;place-items:center}
.iconbtn:hover{background:#f1f5f9;color:var(--ink)}.iconbtn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.content{padding:26px 32px 48px;max-width:1280px;width:100%}
.mobbar{display:none}
.noshell .content{max-width:760px;margin:0 auto}
.noshell.app{display:block}

/* ---------- page head ---------- */
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.ph h1{margin:0;font-size:24px;letter-spacing:-.02em}.ph p{margin:2px 0 0;color:var(--mute)}
h1{font-size:24px;letter-spacing:-.02em;margin:0 0 16px}h2{font-size:15px;margin:26px 0 10px;letter-spacing:-.01em}h3{font-size:14px}

/* ---------- cards / grids ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px}
.card.flush{padding:0;overflow:hidden}
.card>h3.t,.ct{margin:0 0 2px;font-size:14px;font-weight:600}.cs{margin:0 0 14px;color:var(--mute);font-size:12.5px}
.chead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.grid{display:grid;gap:16px}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;margin-bottom:16px}.split .card{margin:0}
.split.even{grid-template-columns:1fr 1fr}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:14px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:15px 16px;display:block;color:inherit}
a.kpi:hover{border-color:var(--line2);text-decoration:none}
.kpi .l{color:var(--mute);font-size:12.5px;font-weight:500}.kpi .v{font-size:27px;font-weight:700;letter-spacing:-.02em;margin:3px 0 1px;line-height:1.15}
.kpi .s{font-size:12px;color:var(--mute)}.kpi .v small{font-size:13px;font-weight:600;color:var(--mute);margin-left:3px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:block;color:inherit}.stat b{display:block;font-size:24px;letter-spacing:-.02em}.stat span{color:var(--mute);font-size:12.5px}
a.stat:hover{border-color:var(--line2);text-decoration:none}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.card table{border:0;border-radius:0}.card.flush table{border:0}
th,td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
tr:last-child td{border-bottom:0}
th{background:#fafbfc;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);white-space:nowrap}
tbody tr:hover td,table tr:hover td{background:#fbfcfe}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}
.tw{overflow-x:auto;border-radius:var(--r)}

/* ---------- forms / buttons ---------- */
input,select,textarea{font:inherit;color:inherit;padding:8px 11px;border:1px solid var(--line2);border-radius:9px;background:#fff;max-width:100%;transition:border-color .12s,box-shadow .12s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,61,145,.12)}
textarea{width:100%}label{display:block;font-weight:600;font-size:12px;margin:10px 0 4px;color:#475569}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);padding:0;vertical-align:middle}
.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:9px;padding:8px 15px;font:inherit;font-weight:600;cursor:pointer;line-height:1.3}
.btn:hover{filter:brightness(1.1);text-decoration:none}
.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btn.alt{background:#fff;color:var(--ink);border-color:var(--line2)}.btn.alt:hover{background:#f8fafc;filter:none}
.btn.gold{background:var(--accent-2);color:#1a1a2e;border-color:var(--accent-2)}.btn.red{background:var(--err);border-color:var(--err)}
.btn.sm{padding:4px 10px;font-size:12px;border-radius:8px}.btn.big{padding:12px 20px;font-size:15px}.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.row>div{flex:1;min-width:130px}
.flash{padding:10px 14px;border-radius:10px;margin-bottom:14px;font-weight:500;border:1px solid transparent}
.flash.ok{background:var(--okbg);color:var(--ok);border-color:#a7f3d0}.flash.err{background:var(--errbg);color:var(--err);border-color:#fecaca}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600;background:#eef1f5;color:#475569;white-space:nowrap}
.pill.new,.pill.held{background:var(--warnbg);color:var(--warn)}.pill.batched,.pill.packed{background:var(--infobg);color:var(--info)}
.pill.assigned,.pill.out{background:var(--viobg);color:var(--vio)}.pill.delivered{background:var(--okbg);color:var(--ok)}
.pill.failed,.pill.cancelled{background:var(--errbg);color:var(--err)}.pill.returned{background:#f3e8ff;color:#7e22ce}
.mute{color:var(--mute)}.warn{color:var(--warn);font-weight:600}.err{color:var(--err)}.ok{color:var(--ok)}
.login{max-width:360px;margin:11vh auto}.login h1{text-align:center}
.scan{font-size:19px;padding:12px;width:100%}

/* ---------- dashboard bits ---------- */
.chart{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--line);stroke-width:1}
.chart .axis,.donut .axis{font-size:10.5px;fill:#94a3b8}.donut{width:168px;height:168px;flex:none}.donut-n{font-size:28px;font-weight:700;fill:var(--ink)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px;font-size:12.5px;color:var(--mute)}
.dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:0}
.donutwrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.dl{flex:1;min-width:150px}
.dl div{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px dashed var(--line)}.dl div:last-child{border:0}
.bar{height:6px;background:#eef1f5;border-radius:99px;overflow:hidden;min-width:70px}.bar i{display:block;height:100%;background:var(--ok);border-radius:99px}
.feed{list-style:none;margin:0;padding:0}.feed li{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line)}.feed li:last-child{border:0}
.feed .d{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:7px;flex:none}.feed small{color:var(--mute);display:block;font-size:12px}
.attn{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);color:inherit}.attn:last-child{border:0}
a.attn:hover{text-decoration:none}a.attn:hover span.t{color:var(--accent)}.attn b{font-size:16px}.attn .zero{color:#94a3b8}.attn .hot{color:var(--err)}
.empty{color:var(--mute);padding:14px 0}

/* ---------- courier / docs ---------- */
.cbox{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:14px;margin-bottom:12px}
.cbox h3{margin:0 0 4px;font-size:15px}.cbox .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.cbox form{margin:0}
.doc{background:#fff;color:#000;max-width:820px;margin:0 auto 18px;padding:18px;border:1px solid var(--line);border-radius:var(--r)}
.awb{border:1.5px solid #000;max-width:760px;margin:0 auto 22px;background:#fff;color:#000;page-break-inside:avoid;break-inside:avoid}
.awb .h{display:flex;align-items:center;gap:12px;padding:8px 10px;border-bottom:1px solid #000}
.awb .badge{background:#555;color:#fff;font-weight:700;padding:2px 7px;border-radius:4px}
.awb .num{font-size:22px;font-weight:700}.awb .bc{margin-left:auto;max-width:260px}.awb .bc svg{width:100%;height:46px}
.awb .boxinfo{border:1px solid #000;border-radius:5px;padding:2px 8px;font-size:12px}
.awb table{border:0;border-radius:0}.awb th{background:#888;color:#fff;text-align:center;border:1px solid #000;font-size:12px}.awb td{border:1px solid #000;padding:6px 8px}
.awb .info{display:flex;border-top:1px solid #000}.awb .info>div{padding:8px 10px}.awb .info .l{flex:1.3;border-right:1px solid #000}
.awb .tot td{padding:4px 8px}.awb .grand td{background:#eee;font-weight:700}

/* ---------- responsive ---------- */
@media(max-width:980px){
 .app{display:block}
 .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px 10px 4px;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:2px;align-items:center}
 .side .brand{padding:0 10px 0 4px}.side .grp,.side .foot .who{display:none}.side a.nav{white-space:nowrap;padding:8px 12px}
 .side .foot{margin:0 0 0 auto;border:0;padding:0}
 .content{padding:18px 14px 40px}.split,.split.even{grid-template-columns:1fr}
}
@media(max-width:700px){table{font-size:13px}th,td{padding:8px 9px}.hide-m{display:none}.kpi .v{font-size:23px}}

/* ---------- print ---------- */
@media print{.side,.noprint,.flash{display:none!important}.app{display:block}body{background:#fff}.content{max-width:none;padding:0;margin:0}
 .awb,.doc{border-color:#000;margin-bottom:10mm;border-radius:0}}

/* ---------- finance tabs / forms ---------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-6px 0 22px;overflow-x:auto}
.tab{padding:9px 14px;color:var(--mute);font-weight:600;border-bottom:2px solid transparent;white-space:nowrap;margin-bottom:-1px}
.tab:hover{color:var(--ink);text-decoration:none}.tab.on{color:var(--accent);border-color:var(--accent)}
.neg{color:var(--err)}.pos{color:var(--ok)}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:9px;overflow:hidden;background:#fff}
.seg a{padding:6px 14px;font-weight:600;color:var(--mute)}.seg a.on{background:var(--accent);color:#fff}.seg a:hover{text-decoration:none}
.sum{display:flex;gap:28px;flex-wrap:wrap}.sum b{display:block;font-size:22px;letter-spacing:-.02em}.sum span{color:var(--mute);font-size:12.5px}
.inv{max-width:820px;margin:0 auto;background:#fff;color:#000;border:1px solid var(--line);border-radius:var(--r);padding:34px}
.inv h1{font-size:30px;margin:0;letter-spacing:.04em}.inv table{border:0;border-radius:0}.inv th{background:#f3f4f6;color:#333}
.inv .tot{margin-left:auto;width:290px}.inv .tot td{border:0;padding:4px 8px}.inv .tot tr:last-child td{border-top:2px solid #000;font-weight:700;font-size:16px}
.badge2{display:inline-block;padding:3px 10px;border:2px solid;border-radius:6px;font-weight:700;letter-spacing:.06em;transform:rotate(-4deg)}
.badge2.paid{color:var(--ok)}.badge2.void{color:var(--err)}
@media print{.tabs{display:none}.inv{border:0;padding:0}}


/* ---------- grouped sidebar (expandable) ---------- */
.side{overflow:hidden}
.sidehead{display:flex;align-items:center;justify-content:space-between}
.menubtn{display:none}
.sidenav{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;padding-bottom:4px}
.side button.nav{width:100%;background:none;border:0;font:inherit;cursor:pointer;text-align:left}
.side .gh .chev{margin-left:auto;width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s;opacity:.7}
.ngrp.open>.gh .chev{transform:rotate(180deg)}
.ngrp.hasactive>.gh{color:var(--accent);font-weight:600}
.ngrp.open>.gh{background:#f1f5f9}
.side .sub{display:none;margin:2px 0 6px 18px;padding-left:10px;border-left:1px solid var(--line)}
.ngrp.open>.sub{display:block}
.side .sub a{display:block;padding:7px 10px;border-radius:8px;color:#475569;font-weight:500;font-size:13.5px}
.side .sub a:hover{background:#f1f5f9;text-decoration:none}
.side .sub a.on{background:#eef3fc;color:var(--accent);font-weight:600}
@media(max-width:980px){
 .side{position:static;height:auto;overflow:visible;border-right:0;border-bottom:1px solid var(--line);padding:8px 12px;display:block}
 .menubtn{display:grid}
 .side .brand{padding:0}
 .sidenav{display:none;padding-top:8px;max-height:75vh}
 .sidenav.show{display:flex}
 .side .foot{margin-top:10px}
}
@media print{.side{display:none!important}}

/* group header buttons share the look of link items */
.side button.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:#334155;font-weight:500}
.side button.nav:hover{background:#f1f5f9}
.side .nav>svg:not(.chev){width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.8}

/* product pictures */
.thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#f1f5f9;display:inline-block;vertical-align:middle}
.thumb.ph0{display:inline-grid;place-items:center;color:#94a3b8}

.pitem{display:flex;gap:10px;align-items:center;margin:4px 0}
.pitem .thumb{width:56px;height:56px}
.awb .awbimg{width:38px;height:38px;border:1px solid #bbb;border-radius:4px;flex:none}


/* =====================================================================
   THEME v2 - navy sidebar + soft blue-grey canvas + orange accent
   ===================================================================== */
:root{--navy:#183a63;--navy-2:#1f4a7c;--orange:#f7a21b;--bg:#e8edf4;--accent:#183a63;--accent-2:#f7a21b;--line:#e6eaf0;--r:6px;
--shadow:0 8px 22px rgba(24,58,99,.09),0 1px 3px rgba(24,58,99,.06)}
body{background:linear-gradient(180deg,#eef2f8 0%,#e3e9f1 100%);background-attachment:fixed}
.card,.stat,.kpi,.cbox,.doc,table{border-radius:var(--r)}
.card,.stat,.kpi,.cbox{box-shadow:var(--shadow);border-color:transparent}
.card.flush,table{box-shadow:var(--shadow)}
table{border-color:transparent}

/* sidebar */
.app{grid-template-columns:240px minmax(0,1fr)}
.app.collapsed{grid-template-columns:0 minmax(0,1fr)}
.app.collapsed .side{display:none}
.side{background:linear-gradient(180deg,#1b406c 0%,#143459 100%);border-right:0;color:#e6eef9;padding:20px 12px;box-shadow:4px 0 18px rgba(24,58,99,.18)}
.side .brand{color:#fff;padding:0 8px 6px;justify-content:center}
.side .brand .logo{background:var(--orange);color:#13294a}
.profile{text-align:center;padding:10px 6px 18px}
.avatar-lg{width:84px;height:84px;margin:0 auto 12px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 6px 16px rgba(0,0,0,.28)}
.avatar-lg svg{width:46px;height:46px;stroke:#183a63;fill:#183a63;fill-opacity:.12;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pname{font-weight:700;letter-spacing:.04em;color:#fff;font-size:17px}
.pmail{font-size:12.5px;color:#a9bfdc;margin-top:2px}
.side a.nav,.side button.nav{color:#dbe6f5;font-weight:500;padding:10px 12px}
.side a.nav svg,.side button.nav>svg:not(.chev){opacity:.9}
.side a.nav:hover,.side button.nav:hover{background:rgba(255,255,255,.09);color:#fff}
.side a.nav.on{background:rgba(255,255,255,.16);color:#fff}
.ngrp.open>.gh{background:rgba(255,255,255,.09)}
.ngrp.hasactive>.gh{color:#fff;font-weight:600}
.side .sub{border-left:1px solid rgba(255,255,255,.18)}
.side .sub a{color:#b9cde8}
.side .sub a:hover{background:rgba(255,255,255,.09);color:#fff}
.side .sub a.on{background:rgba(247,162,27,.18);color:#ffcf7a}
.logoutrow{margin:auto 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}
.logoutrow button.lo{color:#f4c7a0}
.logoutrow button.lo:hover{background:rgba(255,255,255,.09);color:#fff}
.side .foot{display:none}

/* top bar */
.content{padding-top:18px}
.topbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px}
.topttl{font-size:22px;font-weight:500;color:#2a3b52;letter-spacing:-.01em}
.topr{display:flex;align-items:center;gap:16px}
.topdate{color:#6b7c93;font-size:13px}
.hamb{background:none;border:0;cursor:pointer;color:#506178;padding:6px;border-radius:6px;display:grid;place-items:center}
.hamb:hover{background:rgba(24,58,99,.08)}
.hamb svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}

/* buttons / pills use the orange accent */
.btn{background:var(--navy);border-color:var(--navy)}
.btn.gold{background:var(--orange);border-color:var(--orange);color:#1f2d44}
.tab.on{color:var(--navy);border-color:var(--orange)}
.pill-btn{display:inline-block;background:var(--orange);color:#fff;font-weight:600;font-size:12.5px;padding:5px 16px;border-radius:99px;box-shadow:0 3px 8px rgba(247,162,27,.35)}
.pill-btn:hover{text-decoration:none;filter:brightness(1.05)}

/* ---------- dashboard ---------- */
.dash{display:flex;flex-direction:column;gap:18px}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:16px}
.kcard{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px 14px;color:var(--ink);display:block;min-height:118px}
a.kcard:hover{text-decoration:none;transform:translateY(-1px);transition:.12s}
.kcard .kl{font-size:13.5px;color:#5d6e86;display:flex;align-items:center;justify-content:space-between;gap:8px}
.kcard .kv{font-size:36px;font-weight:500;letter-spacing:-.02em;margin:8px 0 2px;line-height:1.1;color:#1f2d44}
.kcard .kv small{font-size:17px;color:#7b8ba1;margin-left:3px}
.kcard .ks{font-size:12px;color:#8695a9}
.kicon{display:grid;place-items:center}
.kicon svg{width:18px;height:18px;stroke:var(--orange);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kcard.dark{background:linear-gradient(160deg,#1e4778,#13315a);color:#fff}
.kcard.dark .kl{color:#d5e3f6}.kcard.dark .kv{color:#fff}.kcard.dark .ks{color:#a9c0de}
.kbadge{background:#fff;color:#183a63;font-weight:700;font-size:11px;border-radius:99px;padding:2px 9px}
.row2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px}
.pcard{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:18px 20px}
.pcard.flush{padding:0;overflow:hidden}
.pcard .pt{font-size:15px;font-weight:600;color:#2a3b52}
.pcard .ps{font-size:12.5px;color:#8695a9;margin:1px 0 12px}
.phead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.plegend{display:flex;gap:16px;font-size:12.5px;color:#5d6e86;flex-wrap:wrap}
.plegend i{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.ringwrap{display:grid;place-items:center;margin:6px 0 10px}
.ringwrap .donut{width:190px;height:190px}
.ring-n{font-size:36px;font-weight:500;fill:#1f2d44}
ul.mini{list-style:none;margin:0 0 14px;padding:0}
ul.mini li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eef1f5;color:#5d6e86}
ul.mini li:last-child{border:0}ul.mini b{color:#1f2d44}
.cashgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;margin-top:6px}
.cashgrid div{display:flex;flex-direction:column}
.cashgrid span{font-size:12.5px;color:#7b8ba1}
.cashgrid b{font-size:24px;font-weight:500;color:#1f2d44;margin:3px 0 1px}
.cashgrid b.o{color:#e08a00}.cashgrid b.n{color:#1f4a7c}.cashgrid b.g{color:#0f8a5f}.cashgrid b.r{color:#c0392b}
.cashgrid em{font-style:normal;font-size:12px;color:#98a6b8}
.caltbl{width:100%;border:0;box-shadow:none;background:none;border-collapse:separate;border-spacing:3px}
.caltbl th,.caltbl td{padding:0;border:0;background:none;text-align:center;font-size:12px;text-transform:none;letter-spacing:0;color:#8695a9;font-weight:600}
.caltbl td{height:30px}
.cd{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:3px;font-weight:500;color:#44566e}
.cd.has{background:#183a63;color:#fff}
.cd.today{background:var(--orange);color:#fff;box-shadow:0 2px 6px rgba(247,162,27,.45)}
.chart .axis{fill:#8a98ab}.chart .grid{stroke:#eef1f5}
.attn{border-color:#eef1f5}
.tw table{box-shadow:none}
@media(max-width:980px){.row2{grid-template-columns:1fr}.app,.app.collapsed{grid-template-columns:1fr}.hamb{display:none}.topbar{margin-bottom:12px}
 .side{box-shadow:none;padding:10px 12px}.profile{display:none}.sidenav.show~*{display:block}.logoutrow{margin-top:8px}}

.brandimg{width:112px;height:112px;border-radius:50%;display:block;margin:0 auto;box-shadow:0 6px 16px rgba(0,0,0,.28)}
.side .brand{display:block}
.loginlogo{display:block;max-width:230px;width:70%;margin:0 auto 6px}
.login h1{text-align:center;font-size:18px;color:#5d6e86;margin:0 0 14px}
@media(max-width:980px){.brandimg{width:52px;height:52px;margin:0}}

/* v2.1 - compact sidebar, no scrollbar */
@media(min-width:981px){
.side{padding:14px 10px 10px}
.brandimg{width:84px;height:84px}
.sidehead{justify-content:center}
.profile{padding:6px 4px 10px}
.profile .avatar-lg{display:none}
.pname{font-size:15px}
.side a.nav,.side button.nav{padding:7px 12px}
.side .sub a{padding:5px 12px}
.sidenav{scrollbar-width:none;-ms-overflow-style:none}
.sidenav::-webkit-scrollbar{display:none}
.logoutrow{padding-top:6px}
}
@media(min-width:981px){.brandimg{width:72px;height:72px}.pmail{display:none}.side .sub a{padding:4px 12px;font-size:13px}}
@media(min-width:981px) and (max-height:700px){.profile{display:none}.sidehead{padding-bottom:6px}}
.app.collapsed{grid-template-columns:minmax(0,1fr)}
.topdate{white-space:nowrap}

.cambox{position:fixed;inset:0;background:rgba(15,30,55,.72);display:grid;place-items:center;z-index:50;padding:12px}
.cambox[hidden]{display:none}
.camcard{background:#fff;border-radius:10px;padding:14px;width:min(560px,100%);box-shadow:0 20px 50px rgba(0,0,0,.4)}
.camhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
#camView{width:100%;min-height:220px;background:#111;border-radius:8px;overflow:hidden}
