:root{
  --bg:#0A0A0B; --bg2:#0F0F11; --card:#16161A; --card2:#1B1B20;
  --line:#26262C; --line2:#33333B;
  --ink:#F4F4F2; --muted:#8A8A93; --muted2:#5E5E67;
  --yellow:#EAB308; --yellow2:#FACC15; --yellowdim:#3a3210;
  --green:#4ADE80; --greenbg:#0f2417; --red:#F87171; --redbg:#2a1414; --blue:#7DA6FF; --purple:#B98BFF;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;line-height:1.5;font-size:15px;
  background-image:radial-gradient(1200px 500px at 80% -10%, rgba(234,179,8,0.07), transparent 60%);}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px 90px}

header{padding:30px 0 20px;border-bottom:1px solid var(--line);margin-bottom:20px;
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px}
.logo{width:34px;height:34px;border-radius:8px;background:var(--yellow);
  display:flex;align-items:center;justify-content:center;font-weight:800;color:#111;font-size:19px;
  box-shadow:0 0 24px rgba(234,179,8,0.35)}
.brand h1{margin:0;font-size:15px;letter-spacing:.02em;font-weight:700}
.brand p{margin:1px 0 0;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.16em}
.title{margin:14px 0 4px;font-size:30px;font-weight:800;letter-spacing:-.02em}
.title .hl{color:var(--yellow2)}
.sub{color:var(--muted);font-size:14.5px;max-width:680px}
.pill{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--yellow2);
  border:1px solid var(--yellowdim);background:rgba(234,179,8,0.06);padding:5px 11px;border-radius:999px;font-weight:600}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.upbtn{background:var(--yellow);color:#111;border:none;font-weight:700;font-size:13px;
  padding:9px 15px;border-radius:9px;cursor:pointer;box-shadow:0 0 20px rgba(234,179,8,.22);transition:.12s;white-space:nowrap}
.upbtn:hover{background:var(--yellow2)}
body.dragging{outline:2px dashed var(--yellow);outline-offset:-8px}
body.dragging::after{content:"Drop DCR PDFs to ingest";position:fixed;top:14px;left:50%;transform:translateX(-50%);
  background:var(--yellow);color:#111;font-weight:700;font-size:12px;padding:6px 14px;border-radius:999px;z-index:50}
input[type=file]{display:none}

.queue{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.qitem{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:10px 14px;font-size:13.5px}
.qname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.badge{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;padding:3px 9px;border-radius:6px}
.b-proc{color:var(--yellow2);background:rgba(234,179,8,.1)}
.b-err{color:var(--red);background:var(--redbg)}
.spin{width:13px;height:13px;border:2px solid var(--line2);border-top-color:var(--yellow2);border-radius:50%;animation:sp .7s linear infinite;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
.retry{background:none;border:1px solid var(--line2);color:var(--muted);font-size:11px;padding:3px 9px;border-radius:6px;cursor:pointer}
.retry:hover{border-color:var(--yellow);color:var(--yellow2)}

.tabs{margin-top:26px;display:flex;gap:4px;border-bottom:1px solid var(--line)}
.tab{padding:11px 18px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;transition:.12s;display:flex;align-items:center;gap:8px}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--yellow2);border-bottom-color:var(--yellow)}
.tab .n{font-family:var(--mono);font-size:11px;background:var(--card2);border:1px solid var(--line);padding:1px 7px;border-radius:999px;color:var(--muted)}
.tab.active .n{color:var(--yellow2);border-color:var(--yellowdim)}

.kpis{margin-top:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{background:linear-gradient(160deg,var(--card2),var(--card));border:1px solid var(--line);
  border-radius:14px;padding:15px 16px;position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--yellow)}
.kpi .lab{font-size:10.5px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}
.kpi .val{font-family:var(--mono);font-size:22px;font-weight:700;margin-top:6px;letter-spacing:-.02em}
.kpi .val.y{color:var(--yellow2)}
.kpi .note{font-size:11px;color:var(--muted2);margin-top:3px}

.toolbar{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px;gap:12px;flex-wrap:wrap}
.toolbar h2{margin:0;font-size:15px;font-weight:700}
.toolbar h2 span{color:var(--muted);font-weight:500}
.tbtns{display:flex;gap:8px}
.btn{background:var(--card);border:1px solid var(--line2);color:var(--ink);font-size:12.5px;padding:7px 13px;border-radius:8px;cursor:pointer;font-weight:600;transition:.12s}
.btn:hover{border-color:var(--yellow);color:var(--yellow2)}
.btn.ghost{color:var(--muted);font-weight:500}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:14px}
.panel-h{padding:12px 18px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);border-bottom:1px solid var(--line);font-weight:700;display:flex;justify-content:space-between;align-items:center}
.panel-h .hint{text-transform:none;letter-spacing:0;font-weight:500;color:var(--muted2);font-size:11px}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;padding:9px 18px;border-bottom:1px solid var(--line)}
th:first-child{text-align:left}
td{padding:9px 18px;text-align:right;font-family:var(--mono);font-size:12.5px;border-bottom:1px solid #1e1e23}
td:first-child{text-align:left;font-family:var(--sans)}
tr:last-child td{border-bottom:none}
tr.zero td{color:var(--muted2)}
tr.tot td{font-weight:700;color:var(--ink);border-top:1px solid var(--line2);background:var(--bg2)}
tr.tot td.y{color:var(--yellow2)}
td .y{color:var(--yellow2)} td .g{color:var(--green)} td .r{color:var(--red)} .mut{color:var(--muted)}

.brow{display:grid;grid-template-columns:180px 1fr auto;gap:12px;align-items:center;padding:9px 18px;border-bottom:1px solid #1e1e23}
.brow:last-child{border-bottom:none}
.blab{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.blab small{color:var(--muted2);font-size:11px}
.btrack{height:8px;background:var(--line2);border-radius:5px;overflow:hidden}
.btrack>i{display:block;height:100%;background:var(--yellow);border-radius:5px}
.bval{font-family:var(--mono);font-size:12.5px;min-width:140px;text-align:right}
.bval b{color:var(--yellow2)}

.cards{display:flex;flex-direction:column;gap:12px}
.dcr{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.dcr.err{border-color:#4a2020}
.dcr-head{padding:15px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;cursor:pointer}
.dcr-head:hover{background:var(--card2)}
.dcr-t{font-size:15.5px;font-weight:700;letter-spacing:-.01em}
.dcr-f{font-size:13px;color:var(--muted);margin-top:2px}
.chips{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 8px;background:var(--bg2)}
.chip b{color:var(--ink);font-weight:600}
.chip.warn{border-color:var(--yellowdim);color:var(--yellow2)}
.chip.err{border-color:#4a2020;color:var(--red)}
.chip.ok{border-color:#123a20;color:var(--green)}
.chip.dup{border-color:#3a2a10;color:var(--yellow2)}
.dcr-mini{display:flex;gap:16px;text-align:right;flex:none}
.mini .l{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted2)}
.mini .v{font-family:var(--mono);font-size:15px;font-weight:700;margin-top:3px}
.mini .v.y{color:var(--yellow2)}
.caret{color:var(--muted2);font-size:13px;transition:.15s;margin-left:4px}
.dcr.open .caret{transform:rotate(90deg);color:var(--yellow2)}
.dcr-body{display:none;border-top:1px solid var(--line)}
.dcr.open .dcr-body{display:block}
.subhead{padding:10px 18px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted2)}
.warnbox{padding:10px 18px 14px;font-size:12.5px;color:var(--yellow2);display:flex;flex-direction:column;gap:4px}
.warnbox div{display:flex;gap:8px;align-items:flex-start}
.warnbox div::before{content:"!";flex:none;width:15px;height:15px;border-radius:50%;background:var(--yellowdim);
  color:var(--yellow2);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}

.callout{background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--yellow);border-radius:10px;padding:12px 16px;font-size:13px;color:var(--muted);margin-bottom:14px}
.callout b{color:var(--ink)} .callout .y{color:var(--yellow2)}
.empty{margin-top:40px;text-align:center;color:var(--muted2);font-size:13px}

.datestrip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 8px;margin-top:18px}
.datechip{flex:none;background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:10px 14px;cursor:pointer;min-width:120px;transition:.12s}
.datechip:hover{border-color:var(--yellow)}
.datechip.sel{border-color:var(--yellow);background:#141005}
.datechip .dd{font-size:11px;color:var(--muted);letter-spacing:.04em}
.datechip .amt{font-family:var(--mono);font-size:15px;font-weight:700;margin-top:5px}
.datechip.sel .amt{color:var(--yellow2)}
.chartwrap{padding:14px 10px 6px}
footer{margin-top:50px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted2);font-size:11.5px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.note-inline{color:var(--yellow2)}

/* subnav (National / Territory) */
.subnav{display:inline-flex;gap:2px;background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:3px;margin:18px 0 4px}
.sbtn{background:none;border:none;color:var(--muted);font-size:13px;font-weight:600;padding:7px 18px;border-radius:8px;cursor:pointer;transition:.12s}
.sbtn:hover{color:var(--ink)} .sbtn.on{background:var(--yellow);color:#111}

/* territory chips */
.tchips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin-top:6px}
.tchip{flex:none;background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:8px 13px;cursor:pointer;transition:.12s;font-size:13px}
.tchip:hover{border-color:var(--yellow)} .tchip.sel{border-color:var(--yellow);background:#141005;color:var(--yellow2)}
.tchip b{font-family:var(--mono);font-size:11px;color:var(--muted);margin-left:6px} .tchip.sel b{color:var(--yellow2)}

tr.clik{cursor:pointer} tr.clik:hover td{background:var(--card2)}
.arrow{color:var(--muted2)!important;text-align:center!important;font-family:var(--mono)}
.mono{font-family:var(--mono);font-size:12px}
.sub2{font-size:11px;color:var(--muted2);margin-top:2px}

/* notifications */
.notif{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:10px}
.notif.err{border-left:3px solid var(--red)} .notif.warn{border-left:3px solid var(--yellow)}
.notif.ok{border-left:3px solid var(--green)} .notif.info{border-left:3px solid var(--blue)}
.notif.resolved{opacity:.45}
.ndot{width:22px;height:22px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-top:1px}
.notif.err .ndot{background:var(--redbg);color:var(--red)} .notif.warn .ndot{background:rgba(234,179,8,.12);color:var(--yellow2)}
.notif.ok .ndot{background:var(--greenbg);color:var(--green)} .notif.info .ndot{background:rgba(125,166,255,.12);color:var(--blue)}
.nbody{flex:1;min-width:0} .ntitle{font-size:14px;font-weight:700} .ndetail{font-size:12.5px;color:var(--muted);margin-top:2px}
.nmeta{font-size:11px;color:var(--muted2);margin-top:7px;display:flex;gap:12px;flex-wrap:wrap}
.nact{display:flex;gap:6px;flex:none;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end;max-width:210px}
.nbtn{background:var(--card2);border:1px solid var(--line2);color:var(--ink);font-size:11.5px;padding:5px 11px;border-radius:7px;cursor:pointer;font-weight:600;white-space:nowrap}
.nbtn:hover{border-color:var(--yellow);color:var(--yellow2)} .nbtn.pri{background:var(--yellow);color:#111;border:none}
.nbtn.pri:hover{background:var(--yellow2);color:#111}
.filterchips{display:flex;gap:8px;margin:18px 0 6px;flex-wrap:wrap}
.fchip{background:var(--card);border:1px solid var(--line2);color:var(--muted);font-size:12.5px;padding:6px 13px;border-radius:999px;cursor:pointer;font-weight:600}
.fchip.on{border-color:var(--yellow);color:var(--yellow2);background:#141005} .fchip b{font-family:var(--mono);font-size:11px;margin-left:5px}
.tab .dot{min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}

/* mapping */
.pill-un{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--yellow2);background:rgba(234,179,8,.1);border:1px solid var(--yellowdim);padding:2px 8px;border-radius:6px;font-weight:700}
.mapsearch{background:var(--card2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:7px 12px;font-size:12.5px;outline:none;min-width:200px}
.mapsearch:focus{border-color:var(--yellow)}
.mapform{background:var(--card);border:1px solid var(--yellowdim);border-radius:14px;padding:18px;margin:16px 0;position:relative}
.mapform h3{margin:0 0 14px;font-size:15px;font-weight:700}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.field input,.field select{background:var(--bg2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:9px 11px;font-size:13.5px;font-family:var(--sans);outline:none}
.field input:focus,.field select:focus{border-color:var(--yellow)}
.formact{display:flex;gap:8px;margin-top:16px;align-items:center}
.btn.pri2{background:var(--yellow);color:#111;border:none} .btn.pri2:hover{background:var(--yellow2);color:#111}
.searchresults{position:absolute;z-index:5;background:var(--card2);border:1px solid var(--line2);border-radius:8px;margin-top:4px;max-height:220px;overflow-y:auto;width:100%;max-width:420px}
.searchresults div{padding:8px 12px;font-size:12.5px;cursor:pointer;border-bottom:1px solid var(--line)}
.searchresults div:last-child{border-bottom:none}
.searchresults div:hover{background:var(--card)}
.searchresults .sname{color:var(--ink);font-weight:600}
.searchresults .smeta{color:var(--muted2);font-size:11px;margin-top:1px}
.linkmode{display:inline-flex;gap:2px;background:var(--bg2);border:1px solid var(--line2);border-radius:8px;padding:2px;margin-bottom:14px}
.lbtn{background:none;border:none;color:var(--muted);font-size:12px;font-weight:700;padding:6px 14px;border-radius:6px;cursor:pointer}
.lbtn.on{background:var(--yellow);color:#111}

@media(max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.dcr-head{flex-direction:column}.dcr-mini{align-self:stretch;justify-content:space-between}.brow{grid-template-columns:120px 1fr auto}.title{font-size:24px}.nact{max-width:none}.fgrid{grid-template-columns:1fr}}
