/*
 * KVC CAD System v4 - stylesheet
 * Extracted from index.html for caching + smaller HTML payload.
 * Wicked Development
 */
:root{
  --bg:#1a1c1f;--surf:#1e2124;--panel:#212529;--card:#262a2e;--card2:#2a2f34;
  --b0:#2e333a;--b1:#343a42;--b2:#3d4450;--b3:#4a5260;
  --text:#c8cdd4;--t1:#9ba3ae;--t2:#6b7480;--t3:#454d58;--t4:#2d343e;
  --accent:#4a7fa5;--adim:rgba(74,127,165,.12);--aline:rgba(74,127,165,.25);
  --sa:#5a8a5a;--sb:#8a6a2a;--se:#5a6a8a;--ss:#7a5a8a;
  --warn:#8a5a2a;--wbg:rgba(138,90,42,.15);--wln:rgba(138,90,42,.3);
  --crit:#7a3030;--cbg:rgba(122,48,48,.15);--cln:rgba(122,48,48,.3);
  --ok:#3a6a4a;--obg:rgba(58,106,74,.15);--oln:rgba(58,106,74,.3);
  --purp:#6a4a8a;--pbg:rgba(106,74,138,.15);--pln:rgba(106,74,138,.3);
  --sans:'Roboto Condensed',sans-serif;--mono:'JetBrains Mono',monospace;
  --sw:204px;--th:44px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;}
body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:13px;-webkit-font-smoothing:antialiased;}
::-webkit-scrollbar{width:4px;height:4px;}::-webkit-scrollbar-thumb{background:var(--b2);border-radius:2px;}
*{scrollbar-width:thin;scrollbar-color:var(--b2) transparent;}
.ico{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}

/* ── LOGIN ── */
#login{position:fixed;inset:0;z-index:3000;background:#0f1113;display:flex;align-items:center;justify-content:center;}
#login.hidden{display:none;}
.lb{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;}
.lb-logo{width:48px;height:48px;border-radius:50%;background:rgba(74,127,165,.12);border:1px solid rgba(74,127,165,.3);display:flex;align-items:center;justify-content:center;color:#4a7fa5;margin-bottom:4px;}
.lb-logo img{width:100%;height:100%;object-fit:contain;border-radius:50%;}
.lb-title{font-size:22px;font-weight:700;color:#d0d8e0;letter-spacing:.5px;}
.lb-sub{font-size:11px;color:rgba(155,163,174,.5);font-family:var(--mono);}
.lb-btn{margin-top:8px;display:flex;align-items:center;gap:10px;padding:11px 22px;border-radius:3px;border:none;background:#5865f2;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;}
.lb-btn:hover{background:#4752c4;}

/* ── DENIED ── */
#denied{position:fixed;inset:0;z-index:3000;background:#141618;display:none;align-items:center;justify-content:center;}
#denied.show{display:flex;}
.db{background:var(--card);border:1px solid var(--cln);border-radius:3px;width:360px;max-width:94vw;padding:24px 20px;text-align:center;}
.di{width:44px;height:44px;border-radius:50%;background:var(--cbg);border:1px solid var(--cln);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;color:#9a4a4a;}
.dt{font-size:14px;font-weight:600;color:#9a4a4a;margin-bottom:6px;}
.dm{font-size:11px;color:var(--t1);line-height:1.7;margin-bottom:16px;}

/* ── TOPBAR ── */
#tb{position:fixed;top:0;left:0;right:0;height:var(--th);background:var(--panel);border-bottom:1px solid var(--b1);display:flex;align-items:center;z-index:500;}
.tb-brand{width:var(--sw);height:100%;display:flex;align-items:center;gap:9px;padding:0 12px;border-right:1px solid var(--b1);flex-shrink:0;}
.tb-bdg{width:28px;height:28px;border-radius:2px;background:var(--card);border:1px solid var(--b2);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;overflow:hidden;}
.tb-bdg img{width:100%;height:100%;object-fit:contain;}
.tb-sn{font-size:11px;font-weight:600;color:var(--text);letter-spacing:.3px;}
.tb-ss{font-size:8px;color:var(--t2);font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;}
.tb-clk{padding:0 14px;display:flex;align-items:center;gap:8px;border-right:1px solid var(--b1);height:100%;}
.tb-time{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--text);letter-spacing:1.5px;}
.tb-dt{font-family:var(--mono);font-size:9px;color:var(--t2);letter-spacing:.5px;}
.tb-stat{display:flex;align-items:center;gap:7px;padding:0 12px;height:100%;border-right:1px solid var(--b1);}
.tsl{font-size:8px;color:var(--t2);font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;}
.tsv{font-size:13px;font-weight:600;font-family:var(--mono);color:var(--text);}
.tb-r{margin-left:auto;display:flex;align-items:center;gap:6px;padding:0 10px;}
.tb-off{display:flex;align-items:center;gap:7px;padding:4px 9px;background:var(--surf);border:1px solid var(--b1);border-radius:2px;}
.tb-av{width:22px;height:22px;border-radius:50%;background:var(--b2);color:var(--t1);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;font-family:var(--mono);flex-shrink:0;overflow:hidden;}
.tb-av img,.tb-av-img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.tb-on{font-size:10px;font-weight:600;color:var(--text);font-family:var(--mono);letter-spacing:.3px;}
.tb-or{font-size:8px;color:var(--t2);font-family:var(--mono);letter-spacing:.5px;}

/* ── BUTTONS ── */
.btn{padding:5px 11px;border-radius:2px;border:1px solid var(--b2);background:var(--card2);color:var(--t1);font-family:var(--sans);font-size:11px;font-weight:500;cursor:pointer;transition:.12s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.btn:hover{background:var(--b1);color:var(--text);border-color:var(--b3);}
.btn.prim{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn.prim:hover{background:#3d6d8f;}
.btn.danger{background:var(--cbg);border-color:var(--cln);color:#9a6060;}
.btn.danger:hover{background:rgba(122,48,48,.25);}
.btn.ok{background:var(--obg);border-color:var(--oln);color:#6a9a7a;}
.btn.ok:hover{background:rgba(58,106,74,.25);}
.btn.warn{background:var(--wbg);border-color:var(--wln);color:#9a7a4a;}
.btn.warn:hover{background:rgba(138,90,42,.25);}
.btn.purp{background:var(--pbg);border-color:var(--pln);color:#9a7aba;}
.btn.purp:hover{background:rgba(106,74,138,.25);}
.btn.sm{padding:3px 8px;font-size:10px;}
.btn.xs{padding:2px 6px;font-size:9px;font-family:var(--mono);}

/* ── SIDEBAR ── */
#sb{position:fixed;top:var(--th);left:0;bottom:0;width:var(--sw);background:var(--panel);border-right:1px solid var(--b1);display:flex;flex-direction:column;z-index:400;overflow:hidden;}
.sbg{font-size:8px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--t3);padding:10px 11px 3px;font-family:var(--mono);}
.sbi{display:flex;align-items:center;gap:8px;padding:7px 11px;cursor:pointer;transition:.1s;border-left:2px solid transparent;color:var(--t1);font-size:12px;font-weight:400;user-select:none;}
.sbi:hover{background:rgba(255,255,255,.025);color:var(--text);}
.sbi.active{background:var(--adim);border-left-color:var(--accent);color:var(--text);font-weight:500;}
.sbi .si{color:var(--t2);flex-shrink:0;}
.sbi.active .si,.sbi:hover .si{color:inherit;}
.sbadge{margin-left:auto;font-size:8px;font-weight:600;padding:1px 5px;border-radius:2px;font-family:var(--mono);background:var(--b1);color:var(--t1);}
.sbadge.alert{background:var(--cbg);color:#9a6060;border:1px solid var(--cln);}
.sbdiv{height:1px;background:var(--b0);margin:5px 11px;}
.sb-bot{margin-top:auto;border-top:1px solid var(--b0);}
.sb-od{padding:7px 11px;background:var(--obg);border-top:1px solid var(--oln);display:none;}
.sb-od.show{display:block;}
.sb-od-l{font-size:8px;color:var(--t2);font-family:var(--mono);letter-spacing:.8px;text-transform:uppercase;margin-bottom:2px;}
.sb-od-c{font-family:var(--mono);font-size:11px;font-weight:600;color:#6a9a7a;}
.sb-usr{display:flex;align-items:center;gap:8px;padding:9px 11px;}
.sb-av{width:26px;height:26px;border-radius:50%;background:var(--b2);color:var(--t1);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;font-family:var(--mono);flex-shrink:0;overflow:hidden;}
.sb-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;}

/* ── MAIN ── */
#main{position:fixed;top:var(--th);left:var(--sw);right:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;}
#content{flex:1;overflow-y:auto;background:var(--bg);}
.page{display:none;padding:14px;}
.page.active{display:block;}
.ph{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--b0);flex-wrap:wrap;gap:8px;}
.ph-t{font-size:14px;font-weight:600;color:var(--text);letter-spacing:.2px;display:flex;align-items:center;gap:7px;}
.ph-s{font-size:9px;color:var(--t2);font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;margin-top:2px;}
.ph-a{display:flex;gap:5px;align-items:center;}

/* ── TOAST ── */
#toast{position:fixed;bottom:14px;right:14px;padding:7px 12px;border-radius:2px;border:1px solid transparent;font-size:10px;font-weight:500;font-family:var(--mono);letter-spacing:.3px;opacity:0;transform:translateY(5px);transition:.2s;pointer-events:none;z-index:9999;}
#toast.show{opacity:1;transform:translateY(0);}
#toast.ok{background:var(--obg);border-color:var(--oln);color:#6a9a7a;}
#toast.err{background:var(--cbg);border-color:var(--cln);color:#9a5050;}
#toast.info{background:var(--adim);border-color:var(--aline);color:var(--accent);}
#toast.warn{background:var(--wbg);border-color:var(--wln);color:#9a7040;}

/* ── MODAL ── */
.mov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(2px);z-index:700;align-items:center;justify-content:center;}
.mov.open{display:flex;}
.mbox{background:var(--card);border:1px solid var(--b2);border-radius:3px;width:500px;max-width:96vw;max-height:90vh;overflow-y:auto;box-shadow:0 16px 48px rgba(0,0,0,.6);}
.mbox.wide{width:700px;}
.mbox.narrow{width:340px;}
.mhd{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--b1);position:sticky;top:0;background:var(--card);z-index:1;}
.mhd h2{font-size:12px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;}
.mx{background:none;border:none;color:var(--t2);cursor:pointer;padding:3px;border-radius:2px;display:flex;align-items:center;transition:.1s;}
.mx:hover{background:var(--cbg);color:#9a5050;}
.mbody{padding:14px;}
.mft{padding:10px 14px;border-top:1px solid var(--b1);display:flex;gap:6px;justify-content:flex-end;}
.fg{margin-bottom:9px;}
.fg label{display:block;font-size:8px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);margin-bottom:3px;}
.fg input,.fg select,.fg textarea{background:var(--surf);border:1px solid var(--b1);border-radius:2px;color:var(--text);font-family:var(--mono);font-size:11px;padding:6px 8px;width:100%;transition:.12s;outline:none;}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--accent);}
.fg select option{background:var(--card);}
.fg textarea{resize:vertical;min-height:64px;line-height:1.6;}
.fgr{display:grid;gap:9px;}
.fgr.c2{grid-template-columns:1fr 1fr;}
.fgr.c3{grid-template-columns:1fr 1fr 1fr;}

/* ── TABLES ── */
.ct{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px;}
.ct th{text-align:left;padding:5px 8px;font-size:8px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2);border-bottom:1px solid var(--b1);background:var(--panel);white-space:nowrap;}
.ct td{padding:6px 8px;border-bottom:1px solid var(--b0);color:var(--t1);vertical-align:middle;}
.ct tr:hover td{background:rgba(255,255,255,.015);color:var(--text);}
.ct tr.rp1>td:first-child{border-left:2px solid #7a3030;}
.ct tr.rp2>td:first-child{border-left:2px solid #7a5a1a;}
.tds{color:var(--text);font-weight:500;}
.tdm{font-family:var(--mono);font-size:10px;}
.tdd{color:var(--t2);font-size:10px;}

/* ── TAGS ── */
.tag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:2px;font-size:9px;font-weight:600;font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;border:1px solid transparent;}
.tg{background:var(--b0);color:var(--t1);border-color:var(--b1);}
.tp1{background:var(--cbg);color:#9a5050;border-color:var(--cln);}
.tp2{background:var(--wbg);color:#9a7040;border-color:var(--wln);}
.tp3{background:var(--adim);color:var(--accent);border-color:var(--aline);}
.tp4{background:var(--b0);color:var(--t2);border-color:var(--b1);}
.tac{background:var(--obg);color:#6a9a7a;border-color:var(--oln);}
.tcl{background:var(--b0);color:var(--t2);border-color:var(--b1);}
.tav{background:var(--obg);color:#6a9a7a;border-color:var(--oln);}
.tbu{background:var(--wbg);color:#9a7040;border-color:var(--wln);}
.ten{background:var(--adim);color:var(--accent);border-color:var(--aline);}
.tof{background:var(--b0);color:var(--t2);border-color:var(--b1);}
.twa{background:var(--cbg);color:#9a5050;border-color:var(--cln);animation:dp 2s ease-in-out infinite;}
.tfl{background:var(--wbg);color:#9a7040;border-color:var(--wln);}
.tvl{background:var(--obg);color:#6a9a7a;border-color:var(--oln);}
.tsp{background:var(--cbg);color:#9a5050;border-color:var(--cln);}
.tst{background:var(--cbg);color:#9a5050;border-color:var(--cln);animation:dp 2s ease-in-out infinite;}
.tbo{background:var(--wbg);color:#9a7040;border-color:var(--wln);animation:dp 2s ease-in-out infinite;}
.tup{background:var(--wbg);color:#9a7040;border-color:var(--wln);}
.tpd{background:var(--obg);color:#6a9a7a;border-color:var(--oln);}
.tdi{background:var(--b0);color:var(--t2);border-color:var(--b1);}
.tpu{background:var(--pbg);color:#9a7aba;border-color:var(--pln);}
@keyframes dp{0%,100%{opacity:1}50%{opacity:.5}}

/* ── CARDS ── */
.kcard{background:var(--card);border:1px solid var(--b1);border-radius:2px;padding:12px;margin-bottom:10px;}
.kch{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid var(--b0);font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);}

/* ── DASH ── */
.dg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px;}
.stile{background:var(--card);border:1px solid var(--b1);border-radius:2px;padding:11px 13px;cursor:pointer;transition:.12s;border-left:2px solid var(--b2);}
.stile:hover{background:var(--card2);}
.stc{border-left-color:var(--accent);}
.stu{border-left-color:var(--sa);}
.stp{border-left-color:#7a3030;}
.sta{border-left-color:var(--sa);}
.stl{font-size:8px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);}
.stv{font-size:22px;font-weight:700;font-family:var(--mono);color:var(--text);margin-top:3px;line-height:1;}
.sts{font-size:9px;color:var(--t2);margin-top:3px;}
.stp .stv{color:#9a5050;}

/* ── DISPATCH PANEL ── */
.disp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;height:calc(100vh - var(--th) - 120px);}
.disp-panel{background:var(--card);border:1px solid var(--b1);border-radius:2px;display:flex;flex-direction:column;overflow:hidden;}
.disp-panel-hd{padding:8px 11px;border-bottom:1px solid var(--b1);font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.disp-panel-body{flex:1;overflow-y:auto;padding:6px;}
.call-card{background:var(--surf);border:1px solid var(--b1);border-radius:2px;padding:9px 10px;margin-bottom:5px;cursor:pointer;transition:.1s;border-left:2px solid var(--b2);}
.call-card:hover{background:var(--card2);}
.call-card.p1{border-left-color:#7a3030;}
.call-card.p2{border-left-color:var(--sb);}
.call-card.p3{border-left-color:var(--accent);}
.call-card.selected{border-color:var(--accent);background:var(--adim);}
.cc-top{display:flex;align-items:center;gap:7px;margin-bottom:4px;}
.cc-num{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text);}
.cc-nat{font-size:12px;color:var(--text);flex:1;}
.cc-loc{font-size:10px;color:var(--t2);font-family:var(--mono);margin-bottom:4px;}
.cc-bot{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.unit-tile{background:var(--surf);border:1px solid var(--b1);border-radius:2px;padding:8px 10px;margin-bottom:5px;cursor:pointer;transition:.1s;border-left:2px solid var(--b2);}
.unit-tile:hover{background:var(--card2);}
.unit-tile.uta{border-left-color:var(--sa);}
.unit-tile.utb{border-left-color:var(--sb);}
.unit-tile.ute{border-left-color:var(--se);}
.unit-tile.uts{border-left-color:var(--ss);}
.ut-cs{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);}
.ut-nm{font-size:11px;color:var(--t1);}
.ut-ft{display:flex;align-items:center;justify-content:space-between;margin-top:5px;}
.drag-zone{min-height:60px;border:1px dashed var(--b2);border-radius:2px;padding:8px;margin-top:6px;transition:.1s;}
.drag-zone.dragover{border-color:var(--accent);background:var(--adim);}

/* ── UNITS ── */
.ug{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:7px;}
.utile{background:var(--card);border:1px solid var(--b1);border-radius:2px;padding:10px 11px;position:relative;overflow:hidden;}
.utile::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--b2);}
.uta::before{background:var(--sa);}
.utb::before{background:var(--sb);}
.ute::before{background:var(--se);}
.uts::before{background:var(--ss);}
.ucs{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text);}
.unm{font-size:11px;color:var(--t1);margin-top:2px;}
.udt{font-size:9px;color:var(--t2);font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;margin-top:1px;}
.uft{display:flex;align-items:center;justify-content:space-between;margin-top:7px;}

/* ── LOOKUP ── */
.ltabs{display:flex;border-bottom:1px solid var(--b1);margin-bottom:12px;}
.ltb{padding:6px 14px;cursor:pointer;font-size:10px;font-family:var(--mono);font-weight:500;color:var(--t2);border-bottom:2px solid transparent;transition:.1s;display:flex;align-items:center;gap:5px;}
.ltb:hover{color:var(--text);}
.ltb.active{color:var(--text);border-bottom-color:var(--accent);}
.lpane{display:none;}
.lpane.active{display:block;}
.sbar{display:flex;gap:6px;margin-bottom:12px;}
.sinput{flex:1;background:var(--surf);border:1px solid var(--b1);border-radius:2px;color:var(--text);font-family:var(--mono);font-size:12px;padding:7px 10px;transition:.12s;outline:none;}
.sinput:focus{border-color:var(--accent);}

/* ── RECORD CARDS ── */
.rc{background:var(--card);border:1px solid var(--b1);border-radius:2px;overflow:hidden;margin-bottom:6px;}
.rch{background:var(--panel);border-bottom:1px solid var(--b1);padding:12px 14px;display:flex;align-items:center;gap:12px;}
.rph{width:56px;height:56px;border-radius:2px;object-fit:cover;flex-shrink:0;}
.rphp{width:56px;height:56px;border-radius:2px;background:var(--b1);border:1px solid var(--b2);display:flex;align-items:center;justify-content:center;color:var(--t2);flex-shrink:0;}
.rnm{font-size:15px;font-weight:600;color:var(--text);}
.rss{font-size:10px;color:var(--t2);font-family:var(--mono);margin-top:2px;}
.rtg{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}
.rbody{padding:12px 14px;}
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:12px;}
.rfl{font-size:8px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);}
.rfv{font-size:11px;color:var(--text);font-family:var(--mono);margin-top:2px;}
.rsec{margin-bottom:12px;}
.rsh{font-size:8px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-family:var(--mono);padding-bottom:5px;border-bottom:1px solid var(--b1);margin-bottom:7px;}
.uchips{display:flex;gap:3px;flex-wrap:wrap;}
.uchip{padding:1px 5px;border-radius:2px;background:var(--adim);border:1px solid var(--aline);font-size:9px;font-family:var(--mono);color:var(--accent);}

/* ── FORMS ── */
.flist{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:12px;}
.ftile{background:var(--card);border:1px solid var(--b1);border-radius:2px;padding:13px;cursor:pointer;transition:.12s;border-top:2px solid var(--b2);}
.ftile:hover{background:var(--card2);transform:translateY(-1px);}
.ftl{border-top-color:var(--accent);}
.fta{border-top-color:#7a3030;}
.fti{border-top-color:var(--b3);}
.ftw{border-top-color:var(--sb);}
.ftt{font-size:8px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);margin-bottom:7px;}
.ftn{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;}
.ftd{font-size:11px;color:var(--t1);line-height:1.6;}
.fta2{margin-top:10px;font-size:9px;font-weight:600;font-family:var(--mono);color:var(--accent);letter-spacing:.5px;text-transform:uppercase;}
.fpanel{display:none;}
.fpanel.active{display:block;}
.fph{display:flex;align-items:center;gap:7px;margin-bottom:12px;padding:8px 4px 10px;border-bottom:1px solid var(--b1);flex-wrap:wrap;position:sticky;top:0;z-index:5;background:var(--bg);box-shadow:0 4px 10px -6px rgba(0,0,0,.6);}
.fptitle{font-size:13px;font-weight:600;color:var(--text);}
.fpnum{font-size:9px;color:var(--t2);font-family:var(--mono);}
.dtag{font-size:8px;font-weight:600;padding:2px 6px;border-radius:2px;font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;}
.fsec{background:var(--card);border:1px solid var(--b1);border-radius:2px;margin-bottom:6px;overflow:hidden;}
.fsh{padding:6px 11px;background:var(--panel);border-bottom:1px solid var(--b1);}
.fsh h3{font-size:8px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-family:var(--mono);}
.fb{padding:10px 11px;display:grid;grid-template-columns:repeat(12,1fr);gap:7px;}
.f{display:flex;flex-direction:column;gap:3px;}
.f label{font-size:8px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);}
.f label .req{color:#9a5050;}
.f input,.f select,.f textarea{background:var(--surf);border:1px solid var(--b1);border-radius:2px;color:var(--text);font-family:var(--mono);font-size:11px;padding:5px 7px;width:100%;transition:.12s;}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--accent);}
.f input.err,.f select.err{border-color:#7a3030;}
.f select option{background:var(--card);}
.f textarea{resize:vertical;min-height:72px;line-height:1.6;}
.rr{display:flex;gap:12px;align-items:center;padding:4px 0;flex-wrap:wrap;}
.rr label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--t1);cursor:pointer;}
.rr input[type=radio]{width:12px;height:12px;accent-color:var(--accent);}
.c1{grid-column:span 1;}.c2{grid-column:span 2;}.c3{grid-column:span 3;}.c4{grid-column:span 4;}
.c5{grid-column:span 5;}.c6{grid-column:span 6;}.c7{grid-column:span 7;}.c8{grid-column:span 8;}
.c9{grid-column:span 9;}.c10{grid-column:span 10;}.c12{grid-column:span 12;}
.finerow{display:flex;align-items:center;justify-content:space-between;background:var(--wbg);border:1px solid var(--wln);border-radius:2px;padding:5px 9px;}
.finel{font-size:8px;letter-spacing:1.2px;color:var(--t1);text-transform:uppercase;font-family:var(--mono);}
.finev{font-size:13px;font-weight:700;color:#9a7040;font-family:var(--mono);}

/* ── NOTEPAD ── */
.notepad-wrap{display:flex;gap:10px;height:calc(100vh - var(--th) - 100px);}
.notes-sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:5px;}
.note-item{background:var(--card);border:1px solid var(--b1);border-radius:2px;padding:9px 10px;cursor:pointer;transition:.1s;}
.note-item:hover{background:var(--card2);}
.note-item.active{border-color:var(--accent);background:var(--adim);}
.note-title{font-size:11px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.note-date{font-size:9px;color:var(--t2);font-family:var(--mono);margin-top:2px;}
.notepad-main{flex:1;display:flex;flex-direction:column;}
.notepad-paper{
  flex:1;background:#f5f3ee;
  border-radius:3px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 4px 20px rgba(0,0,0,.4);position:relative;
}
.notepad-rings{
  background:linear-gradient(135deg,#2a3a5a 0%,#1a2a4a 100%);
  height:28px;display:flex;align-items:center;padding:0 12px;gap:12px;flex-shrink:0;
}
.ring{width:12px;height:12px;border-radius:50%;background:#b8c8e8;border:2px solid #8a9aba;box-shadow:inset 0 1px 2px rgba(0,0,0,.3);}
.notepad-lines{flex:1;position:relative;overflow:hidden;}
.notepad-textarea{
  position:absolute;inset:0;width:100%;height:100%;
  background:transparent;border:none;outline:none;resize:none;
  font-family:'Caveat','Patrick Hand',cursive,'Comic Sans MS';
  font-size:16px;color:#1a2a4a;padding:14px 18px;
  line-height:32px;z-index:2;
}
.notepad-ruled{
  position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(transparent,transparent 31px,#c8d8f0 31px,#c8d8f0 32px);
  background-position:0 14px;z-index:1;
}
.notepad-margin{position:absolute;left:50px;top:0;bottom:0;width:1px;background:#e8a0a0;pointer-events:none;z-index:3;}
.note-toolbar{display:flex;align-items:center;gap:6px;padding:8px 0;border-bottom:1px solid var(--b1);margin-bottom:8px;}
.note-title-input{flex:1;background:var(--surf);border:1px solid var(--b1);border-radius:2px;color:var(--text);font-family:var(--mono);font-size:11px;padding:4px 8px;outline:none;}
.note-title-input:focus{border-color:var(--accent);}

/* ── BOLOS ── */
.bolo-card{background:var(--card);border:1px solid var(--wln);border-radius:2px;padding:10px 12px;margin-bottom:6px;border-left:3px solid var(--sb);}
.bolo-card.person{border-left-color:#7a3030;}
.bolo-card.vehicle{border-left-color:var(--sb);}
.bolo-card.general{border-left-color:var(--se);}
.bolo-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.bolo-subject{font-size:13px;font-weight:600;color:var(--text);}
.bolo-reason{font-size:11px;color:var(--t1);margin-top:3px;line-height:1.5;}
.bolo-meta{font-size:9px;color:var(--t2);font-family:var(--mono);margin-top:6px;display:flex;gap:10px;flex-wrap:wrap;}

/* ── FLAGS ── */
.flag-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--card);border:1px solid var(--b1);border-radius:2px;margin-bottom:4px;}
.flag-left{display:flex;align-items:center;gap:9px;}
.flag-type{font-size:10px;font-weight:600;color:var(--text);}
.flag-sub{font-size:9px;color:var(--t2);font-family:var(--mono);}

/* ── REPORT CARDS (Past Reports) ── */
.rep-card{background:var(--card);border:1px solid var(--b1);border-radius:2px;margin-bottom:7px;overflow:hidden;transition:.12s;}
.rep-card:hover{border-color:var(--b2);}
.rep-card-hd{display:flex;align-items:center;gap:0;cursor:pointer;}
.rep-bar{width:4px;align-self:stretch;flex-shrink:0;}
.rep-bar.citation{background:#4a7fa5;}
.rep-bar.arrest{background:#7a3030;}
.rep-bar.incident{background:#4a5260;}
.rep-bar.warrant{background:#8a6a2a;}
.rep-bar.useforce{background:#6a4a8a;}
.rep-bar.ems{background:#3a6a4a;}
.rep-meta{flex:1;padding:10px 12px;display:flex;align-items:center;gap:10px;min-width:0;}
.rep-type-badge{font-size:9px;font-weight:700;font-family:var(--mono);letter-spacing:.8px;text-transform:uppercase;padding:2px 7px;border-radius:2px;flex-shrink:0;}
.rep-type-badge.citation{background:rgba(74,127,165,.15);color:#4a7fa5;border:1px solid rgba(74,127,165,.3);}
.rep-type-badge.arrest{background:rgba(122,48,48,.15);color:#b06060;border:1px solid rgba(122,48,48,.3);}
.rep-type-badge.incident{background:rgba(74,82,96,.2);color:#8a96a8;border:1px solid rgba(74,82,96,.4);}
.rep-type-badge.warrant{background:rgba(138,106,42,.15);color:#c8902a;border:1px solid rgba(138,106,42,.3);}
.rep-type-badge.useforce{background:rgba(106,74,138,.15);color:#9a7aba;border:1px solid rgba(106,74,138,.3);}
.rep-type-badge.ems{background:rgba(58,106,74,.15);color:#6a9a7a;border:1px solid rgba(58,106,74,.3);}
.rep-subject{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rep-officer{font-size:10px;color:var(--t2);}
.rep-date{font-size:9px;color:var(--t3);font-family:var(--mono);margin-left:auto;flex-shrink:0;}
.rep-expand-btn{background:none;border:none;color:var(--t2);cursor:pointer;padding:10px 12px;display:flex;align-items:center;transition:.1s;flex-shrink:0;}
.rep-expand-btn:hover{color:var(--text);}
.rep-detail{display:none;border-top:1px solid var(--b1);padding:10px 12px 12px 16px;}
.rep-detail.open{display:block;}
.rep-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:10px;}
.rep-dl{font-size:8px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);font-family:var(--mono);}
.rep-dv{font-size:11px;color:var(--t1);margin-top:1px;word-break:break-word;}
.rep-nar{background:var(--surf);border:1px solid var(--b0);border-radius:2px;padding:8px 10px;font-size:10px;color:var(--t1);line-height:1.7;margin-top:6px;white-space:pre-wrap;font-family:var(--mono);}
.rep-subtitle{font-size:8px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-family:var(--mono);margin:8px 0 5px;}
.rep-status{font-size:8px;font-weight:700;font-family:var(--mono);letter-spacing:.8px;text-transform:uppercase;padding:2px 7px;border-radius:2px;flex-shrink:0;white-space:nowrap;}
/* Fine paid/unpaid pill - green PAID, red UNPAID. Shown anywhere a citation
   or arrest fine appears (report cards, detail, record table, NCIC view). */
.fine-badge{display:inline-block;font-size:8px;font-weight:700;font-family:var(--mono);letter-spacing:.8px;text-transform:uppercase;padding:2px 7px;border-radius:2px;flex-shrink:0;white-space:nowrap;}
.fine-badge.paid{background:var(--obg);color:#6a9a7a;border:1px solid var(--oln);}
.fine-badge.unpaid{background:var(--cbg);color:#c26a6a;border:1px solid var(--cln);}
.rep-status-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:2px;margin-bottom:8px;}
.rep-status-banner-l{font-size:8px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;font-family:var(--mono);opacity:.85;}
.rep-status-banner-v{font-size:11px;font-weight:700;font-family:var(--mono);letter-spacing:.5px;}
/* ── NCIC TERMINAL VIEW ── */
.ncic-wrap{background:#0d0f11;border:1px solid var(--b1);border-radius:2px;padding:14px 16px;font-family:var(--mono);color:#c8cdd4;font-size:11px;line-height:1.75;}
.ncic-sec{margin-bottom:16px;}
.ncic-sec:last-child{margin-bottom:0;}
.ncic-hd{color:#6a9a7a;font-weight:700;font-size:11px;letter-spacing:2px;text-transform:uppercase;margin-bottom:7px;}
.ncic-field{font-size:11px;color:#aeb6c0;padding:1px 0;}
.ncic-lbl{color:#8a94a0;font-weight:700;text-transform:uppercase;letter-spacing:.5px;}
.ncic-val{color:#c8cdd4;}
.ncic-name{color:#4a9fd5;font-weight:600;}
.ncic-view{color:#4a9fd5;cursor:pointer;font-weight:700;letter-spacing:.5px;}
.ncic-view:hover{color:#7ac0ee;text-decoration:underline;}
.ncic-dim{color:#5a636e;}
.ncic-tablewrap{overflow-x:auto;border:1px solid var(--b1);border-radius:2px;}
.ncic-table{width:100%;border-collapse:collapse;font-size:10px;white-space:nowrap;}
.ncic-table th{text-align:left;padding:5px 9px;background:#14171a;color:#8a94a0;font-weight:700;text-transform:uppercase;letter-spacing:.7px;font-size:9px;border-bottom:1px solid var(--b1);}
.ncic-table td{padding:5px 9px;border-bottom:1px solid var(--b0);color:#aeb6c0;vertical-align:top;}
.ncic-table tr:last-child td{border-bottom:none;}
.ncic-table tr:hover td{background:rgba(255,255,255,.02);}
.ncic-table .ncic-charges{white-space:normal;min-width:180px;max-width:280px;color:#c8cdd4;}
.ncic-empty td{color:#5a636e;text-align:center;padding:12px;font-style:italic;letter-spacing:1px;}
.ncic-flagcell{white-space:normal;max-width:200px;}
.ncic-flag{display:inline-block;background:rgba(122,48,48,.2);color:#c87a7a;border:1px solid rgba(122,48,48,.4);border-radius:2px;padding:1px 5px;margin:1px 2px 1px 0;font-size:8px;font-weight:700;letter-spacing:.5px;}
.ncic-status{display:inline-block;padding:1px 7px;border-radius:2px;border:1px solid;font-size:9px;font-weight:700;letter-spacing:.5px;white-space:nowrap;}
.ncic-more{color:#4a9fd5;cursor:pointer;font-size:10px;font-weight:700;letter-spacing:1px;padding:7px 2px 0;user-select:none;}
.ncic-more:hover{color:#7ac0ee;text-decoration:underline;}
.ib-link{color:var(--accent);cursor:pointer;text-decoration:none;}
.ib-link:hover{color:#6aa3cf;text-decoration:underline;}
.log-entry{display:flex;gap:10px;padding:5px 8px;border-bottom:1px solid var(--b0);font-family:var(--mono);font-size:10px;transition:.1s;}
.log-entry:hover{background:rgba(255,255,255,.02);}
.log-time{color:var(--t2);flex-shrink:0;width:55px;}
.log-level{flex-shrink:0;width:50px;}
.log-msg{color:var(--t1);flex:1;line-height:1.5;}
.log-level.INFO{color:var(--accent);}
.log-level.WARN{color:#9a7040;}
.log-level.CRIT{color:#9a5050;}
.log-level.OK{color:#6a9a7a;}
.log-level.CALL{color:#9a7aba;}
.log-filters{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap;}
.log-filter{padding:2px 8px;border-radius:2px;border:1px solid var(--b1);background:var(--card);color:var(--t2);font-size:9px;font-family:var(--mono);cursor:pointer;transition:.1s;}
.log-filter.on{background:var(--adim);border-color:var(--aline);color:var(--text);}
.log-stream{background:var(--surf);border:1px solid var(--b1);border-radius:2px;height:calc(100vh - var(--th) - 180px);overflow-y:auto;}
.log-search{background:var(--surf);border:1px solid var(--b1);border-radius:2px;color:var(--text);font-family:var(--mono);font-size:11px;padding:5px 8px;width:240px;outline:none;margin-left:auto;}
.log-search:focus{border-color:var(--accent);}

/* ── PROFILE / SETTINGS ── */
.pcard{background:var(--card);border:1px solid var(--b1);border-radius:2px;padding:14px;margin-bottom:8px;max-width:500px;}
.pcard h3{font-size:11px;font-weight:600;color:var(--text);margin-bottom:3px;display:flex;align-items:center;gap:6px;}
.pcard p{font-size:11px;color:var(--t1);margin-bottom:10px;line-height:1.6;}
.pdisc{display:flex;align-items:center;gap:10px;padding:9px 10px;background:var(--surf);border:1px solid var(--b1);border-radius:2px;margin-bottom:10px;}
.pav{width:38px;height:38px;border-radius:50%;background:var(--b2);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--t1);font-family:var(--mono);flex-shrink:0;overflow:hidden;}
.pav img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.mf{margin-bottom:7px;}
.mf label{display:block;font-size:8px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--t2);font-family:var(--mono);margin-bottom:3px;}
.mf input,.mf select{background:var(--surf);border:1px solid var(--b1);border-radius:2px;color:var(--text);font-family:var(--mono);font-size:11px;padding:5px 7px;width:100%;transition:.12s;outline:none;}
.mf input:focus,.mf select:focus{border-color:var(--accent);}
.rtag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:2px;font-size:8px;font-weight:600;font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;background:var(--adim);color:var(--accent);border:1px solid var(--aline);margin-right:4px;margin-top:3px;}

/* ── LOGO UPLOAD ── */
/* ── MISC ── */
.spin{display:inline-block;width:10px;height:10px;border:1px solid var(--b2);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite;margin-right:5px;vertical-align:middle;}
@keyframes sp{to{transform:rotate(360deg)}}
@keyframes panicpulse{0%,100%{box-shadow:0 0 0 0 rgba(200,40,40,.6)}50%{box-shadow:0 0 10px 4px rgba(200,40,40,.3)}}
.empty td,.erow{text-align:center;padding:20px;color:var(--t2);font-family:var(--mono);font-size:10px;}
.ldrow td{text-align:center;padding:16px;color:var(--t2);font-family:var(--mono);font-size:10px;}
.fset{display:flex;gap:2px;}
.ftb{padding:3px 9px;border-radius:2px;border:1px solid var(--b1);background:var(--card);color:var(--t2);font-size:9px;font-family:var(--mono);font-weight:600;letter-spacing:.5px;cursor:pointer;transition:.1s;}
.ftb.on{background:var(--adim);border-color:var(--aline);color:var(--text);}
.ftb:hover:not(.on){background:var(--card2);color:var(--t1);}
.nex{background:var(--surf);border-left:2px solid var(--b2);padding:7px 10px;display:none;font-size:10px;color:var(--t1);font-family:var(--mono);line-height:1.6;}
.nex.open{display:block;}
/* ── ROLE SELECT ── */
#roleselect{position:fixed;inset:0;z-index:2800;background:#0d1013;display:none;align-items:center;justify-content:center;padding:20px;}
#roleselect.show{display:flex;}
.rs-wrap{display:flex;flex-direction:column;align-items:center;gap:22px;max-width:900px;width:100%;}
.rs-brand{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;}
.rs-logo{width:70px;height:70px;border-radius:50%;background:rgba(74,127,165,.1);border:1px solid rgba(74,127,165,.3);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.rs-logo img{width:100%;height:100%;object-fit:contain;}
.rs-title{font-size:24px;font-weight:700;color:#d6dde5;letter-spacing:.5px;}
.rs-sub{font-size:11px;color:rgba(155,163,174,.6);font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;}
.rs-prompt{font-size:12px;color:var(--t1);font-family:var(--mono);letter-spacing:.5px;}
.rs-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%;}
.rs-card{background:var(--card);border:1px solid var(--b2);border-radius:5px;padding:26px 18px;cursor:pointer;transition:.15s;text-align:center;border-top:3px solid var(--b3);}
.rs-card:hover{background:var(--card2);transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.4);}
.rs-card.civ{border-top-color:#4a7fa5;}
.rs-card.leo{border-top-color:#5a8a5a;}
.rs-card.fire{border-top-color:#a85a3a;}
.rs-card-ico{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surf);border:1px solid var(--b2);}
.rs-card.civ .rs-card-ico{color:#4a7fa5;}
.rs-card.leo .rs-card-ico{color:#6a9a6a;}
.rs-card.fire .rs-card-ico{color:#c87a5a;}
.rs-card-name{font-size:17px;font-weight:700;color:var(--text);margin-bottom:6px;letter-spacing:.3px;}
.rs-card-desc{font-size:11px;color:var(--t1);line-height:1.6;}

/* ── CAD BOARD (Dashboard) ── */
#pg-dash.cad-dash{padding:0;}
.cad-toolbar{display:flex;align-items:stretch;background:#0d0f11;border-bottom:1px solid #000;overflow-x:auto;}
.cad-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:76px;padding:6px 12px;border-right:1px solid #16191c;background:linear-gradient(#2b2f34,#1b1e21);color:#c4cad1;font-size:10px;font-weight:600;cursor:pointer;white-space:nowrap;transition:.1s;user-select:none;letter-spacing:.3px;}
.cad-tool:hover{background:linear-gradient(#34393f,#23272b);color:#fff;}
.cad-tool.cad-disabled{opacity:.38;pointer-events:none;cursor:default;}
.cad-tool .ci{width:22px;height:22px;display:flex;align-items:center;justify-content:center;color:#7fb0d8;}
.cad-tool.brand{min-width:58px;background:linear-gradient(#1b1e21,#101315);padding:4px 8px;}
.cad-tool.brand img{width:34px;height:34px;object-fit:contain;}
.cad-tool.brand .ci{width:34px;height:34px;color:#7fb0d8;}
.cad-tool.status .st-dot{width:11px;height:11px;border-radius:50%;box-shadow:0 0 6px currentColor;}
.cad-tool.status .st-txt{font-size:10px;font-weight:700;}
.cad-tool.dept{background:linear-gradient(#243b52,#182838);color:#e6eef5;}
.cad-tool.dept .ci{color:#9fc4e4;}
.cad-subtabs{display:flex;align-items:center;background:#121417;border-bottom:1px solid #000;overflow-x:auto;}
.cad-subtab-label{background:#000;color:#c8cdd4;font-size:11px;font-weight:600;padding:7px 16px;letter-spacing:.3px;flex-shrink:0;}
.cad-navbtns{display:flex;align-items:center;gap:2px;padding:0 8px;border-right:1px solid #1f2226;flex-shrink:0;}
.cad-navbtns button{background:none;border:none;color:#6b7480;cursor:pointer;padding:5px;display:flex;align-items:center;}
.cad-navbtns button:hover{color:#c8cdd4;}
.cad-navbtns .cnt{font-family:var(--mono);font-size:10px;color:#7fb0d8;padding:0 4px;}
.cad-subtab{display:flex;align-items:center;gap:6px;padding:7px 14px;color:#aeb6c0;font-size:11px;font-weight:500;cursor:pointer;border-right:1px solid #1f2226;transition:.1s;white-space:nowrap;flex-shrink:0;}
.cad-subtab .ci{width:14px;height:14px;color:#7fb0d8;}
.cad-subtab:hover{background:#1f2327;color:#fff;}
/* Four-quadrant dispatch board: ACTIVE CALLS | ACTIVE UNITS (top row),
   EMERGENCY CALLS | ACTIVE GROUPS (bottom row). */
/* Dispatch Panel: four-quadrant board (ACTIVE CALLS | ACTIVE UNITS top,
   EMERGENCY CALLS | ACTIVE GROUPS bottom). */
.cad-panels{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(300px,calc(50vh - 40px));background:#0a0c0e;padding:6px 6px 12px;gap:6px;}
.cad-panel{border:1px solid #000;background:#0f1113;border-radius:2px;overflow:hidden;display:flex;flex-direction:column;min-height:0;}
@media(max-width:900px){.cad-panels{grid-template-columns:1fr;}}
/* Dashboard: original stacked board (ACTIVE CALLS, ACTIVE UNITS, ACTIVE GROUPS). */
.cad-panels-stack{display:flex;flex-direction:column;background:#0a0c0e;padding:6px 6px 12px;gap:6px;}
.cad-panels-stack .p-calls{min-height:250px;}
.cad-panels-stack .p-units{min-height:300px;}
.cad-panels-stack .p-groups{min-height:150px;}
.cad-panel-hd{display:flex;align-items:center;gap:9px;background:linear-gradient(#2f6fb0,#245a94);color:#fff;padding:6px 11px;font-size:12px;font-weight:700;cursor:pointer;user-select:none;border-top:1px solid #4a90cf;letter-spacing:.3px;flex-shrink:0;}
.cad-panel-hd .ci{width:15px;height:15px;color:#dbeaf7;display:flex;align-items:center;justify-content:center;}
.cad-panel-hd .cad-chev{margin-left:auto;transition:transform .15s;color:#cfe2f2;display:flex;}
.cad-panel.collapsed .cad-chev{transform:rotate(-90deg);}
.cad-panel.collapsed .cad-panel-body{display:none;}
.cad-drag{display:inline-flex;align-items:center;justify-content:center;color:#cfe2f2;cursor:grab;opacity:.7;margin-right:2px;flex-shrink:0;}
.cad-drag:hover{opacity:1;}
.cad-drag:active{cursor:grabbing;}
.cad-panel.cad-dragging{opacity:.45;}
.cad-panel.cad-dropover{outline:2px dashed #4a90cf;outline-offset:-2px;}
.cad-unit-drag{cursor:grab;}
.cad-unit-drag:active{cursor:grabbing;}
.cad-table tr.cad-calldrop td{background:rgba(74,144,207,.28)!important;box-shadow:inset 0 0 0 1px #4a90cf;}
kbd.hk{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:3px 7px;background:var(--surf);border:1px solid var(--b2);border-bottom-width:2px;border-radius:3px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text);}
.cad-badge{background:rgba(255,255,255,.16);color:#fff;font-size:10px;font-weight:700;font-family:var(--mono);padding:1px 7px;border-radius:9px;letter-spacing:.5px;}
.cad-onscene{color:#c6ff7a;font-size:10px;font-weight:700;font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;}
.cad-panel-body{flex:1;overflow:auto;background:#0c0e10;}
.cad-tablewrap{overflow-x:auto;}
.cad-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px;}
.cad-table th{background:#191c1f;color:#8a94a0;text-transform:uppercase;font-size:9px;letter-spacing:.7px;padding:6px 9px;text-align:left;border-right:1px solid #0a0c0e;border-bottom:1px solid #000;font-weight:700;white-space:nowrap;position:sticky;top:0;z-index:1;}
.cad-table td{padding:6px 9px;border-right:1px solid #16191c;border-bottom:1px solid #14171a;color:#c2c8cf;white-space:nowrap;}
.cad-table tbody tr:hover td{background:#16191c;}
.cad-table .cad-empty td{text-align:center;color:#5a636e;font-style:italic;padding:16px;letter-spacing:1px;}
.cad-table .cad-cb{width:26px;text-align:center;}
.cad-row-onscene td{background:#5f931f !important;color:#f2ffe0 !important;font-weight:600;}
.cad-row-onscene:hover td{background:#6ba525 !important;}
.cad-row-avail td{border-left:2px solid var(--sa);}
.cad-row-busy td{border-left:2px solid var(--sb);}
.cad-st{display:inline-block;padding:1px 8px;border-radius:2px;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.cad-uchip{display:inline-block;background:rgba(74,127,165,.18);border:1px solid rgba(74,127,165,.35);color:#8fbde0;border-radius:2px;padding:0 5px;margin:0 2px 0 0;font-size:9px;}
/* Active call rows highlight green (matches reference layout). */
.cad-row-activecall td{background:rgba(74,138,42,.32) !important;color:#e6ffd6 !important;}
.cad-row-activecall:hover td{background:rgba(90,158,52,.42) !important;}
.cad-table tbody tr{cursor:default;}
.cad-table tbody tr.cad-clickrow{cursor:pointer;}
.cad-recbadge{display:inline-block;margin-left:5px;background:rgba(138,110,42,.25);border:1px solid rgba(138,110,42,.5);color:#e6c890;border-radius:2px;padding:0 4px;font-size:8px;}
/* Header action buttons on a panel (create group, etc.). */
.cad-hd-btn{margin-left:auto;display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:10px;font-weight:700;font-family:var(--mono);letter-spacing:.4px;padding:2px 8px;border-radius:3px;cursor:pointer;}
.cad-hd-btn:hover{background:rgba(255,255,255,.26);}
.cad-hd-btn + .cad-chev{margin-left:9px;}
/* Right-click context menu for call rows. */
.ctxmenu{position:fixed;z-index:9500;min-width:150px;background:#14171b;border:1px solid #2a2f36;border-radius:4px;box-shadow:0 10px 34px rgba(0,0,0,.7);padding:4px;font-family:var(--mono);font-size:11px;}
.ctxmenu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;color:#c8cfd7;border-radius:3px;cursor:pointer;user-select:none;}
.ctxmenu-item:hover{background:#232830;color:#fff;}
.ctxmenu-item.danger{color:#d98a8a;}
.ctxmenu-item.danger:hover{background:rgba(122,48,48,.35);color:#f2b0b0;}
.ctxmenu-item.disabled{color:#4a525b;cursor:not-allowed;opacity:.6;}
.ctxmenu-item.disabled:hover{background:none;color:#4a525b;}
.ctxmenu-sep{height:1px;background:#242a31;margin:4px 2px;}
.ctxmenu-hd{padding:5px 10px 6px;color:#7f8994;font-size:9px;letter-spacing:.6px;text-transform:uppercase;border-bottom:1px solid #242a31;margin-bottom:3px;}
/* Style the bare selects/inputs inside the JS-built Manage Group and Call
   Detail modal bodies so they match the app instead of native OS dropdowns. */
#groupmanage-body select,#groupmanage-body input,
#calldetail-body select,#calldetail-body input{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background:var(--surf);border:1px solid var(--b1);border-radius:2px;color:var(--text);
  font-family:var(--mono);font-size:11px;padding:6px 26px 6px 8px;width:100%;transition:.12s;outline:none;box-sizing:border-box;}
#groupmanage-body input{padding-right:8px;}
#groupmanage-body select,#calldetail-body select{
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237f8994' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 8px center;cursor:pointer;}
#groupmanage-body select:focus,#groupmanage-body input:focus,
#calldetail-body select:focus,#calldetail-body input:focus{border-color:var(--accent);}
#groupmanage-body select option,#calldetail-body select option{background:var(--card);color:var(--text);}

@media(max-width:700px){#sb{display:none;}#main{left:0;}.dg{grid-template-columns:1fr 1fr;}.c2,.c3,.c4,.c5,.c6,.c7,.c8,.c9,.c10{grid-column:span 12;}.rs-cards{grid-template-columns:1fr;}}
