/* SVHP Communications Terminal — Slice 1. All rules scoped to #panel-svhpcad (and body-level
   flags for fullscreen). Traffic-operations workstation language: navy / steel / slate, square
   controls, dense rows, strong route/response hierarchy. Not an NCPD or RCSO reskin. */
#panel-svhpcad{
  --sv-bg:#0b1522;--sv-panel:#101d2e;--sv-panel2:#15263b;--sv-border:#2a4260;--sv-border2:#3b5a80;
  --sv-text:#dbe7f5;--sv-muted:#7f97b3;--sv-accent:#f2b705;--sv-go:#2e9e5b;--sv-bad:#e5484d;--sv-c3:#e5484d;--sv-c2:#e0a100;--sv-sel:#1d3a5c;
  background:var(--sv-bg);color:var(--sv-text);font-family:Consolas,'Courier New',monospace;font-size:12px;padding:0
}
#panel-svhpcad[data-sv-theme="light"]{
  --sv-bg:#e9eef4;--sv-panel:#f7f9fb;--sv-panel2:#dde5ee;--sv-border:#b6c4d4;--sv-border2:#8ea3ba;
  --sv-text:#142133;--sv-muted:#51647a;--sv-accent:#9a6b00;--sv-go:#1f7a45;--sv-bad:#b3262b;--sv-c3:#b3262b;--sv-c2:#8a6200;--sv-sel:#c9dcf0
}
#panel-svhpcad.active{display:flex;flex-direction:column;overflow:hidden}
#panel-svhpcad *,#panel-svhpcad *::before,#panel-svhpcad *::after{box-sizing:border-box}
#panel-svhpcad .hidden{display:none!important}
#panel-svhpcad button,#panel-svhpcad input,#panel-svhpcad select{font-family:inherit;font-size:inherit;color:inherit}
#panel-svhpcad .btn{background:var(--sv-panel2);border:1px solid var(--sv-border2);border-radius:0;padding:3px 10px;cursor:pointer;color:var(--sv-text)}
#panel-svhpcad .btn.sm{padding:2px 7px;font-size:11px}
#panel-svhpcad .btn.go{background:var(--sv-go);border-color:var(--sv-go);color:#fff}
#panel-svhpcad .btn:disabled{opacity:.4;cursor:not-allowed}
#panel-svhpcad input,#panel-svhpcad select{background:var(--sv-panel);border:1px solid var(--sv-border2);border-radius:0;padding:3px 6px;min-width:0}
.sv-toolbar{display:flex;align-items:center;gap:12px;background:var(--sv-panel2);border-bottom:2px solid var(--sv-border2);padding:5px 10px;flex:0 0 auto}
.sv-toolbar .brand{font-weight:700;letter-spacing:.08em;color:var(--sv-accent)}
.sv-toolbar .fill{flex:1}
.sv-toolbar a{color:inherit;text-decoration:none}
.sv-flash{min-height:16px;padding:2px 10px;font-size:11px;flex:0 0 auto}
.sv-flash.ok{color:var(--sv-go)}.sv-flash.err{color:var(--sv-bad)}
#sv-workspace{flex:1;display:flex;min-height:0;overflow:hidden}
#sv-view-dispatch{flex:1;display:grid;grid-template-columns:minmax(300px,34fr) minmax(0,44fr) minmax(240px,22fr);min-height:0;overflow:hidden}
.sv-col{display:flex;flex-direction:column;min-height:0;min-width:0;border-right:2px solid var(--sv-border);background:var(--sv-panel)}
.sv-col:last-child{border-right:0}
.sv-sec{background:var(--sv-panel2);border-bottom:1px solid var(--sv-border);padding:3px 8px;font-weight:700;letter-spacing:.06em;color:var(--sv-muted);margin-top:6px}
.sv-col>.sv-sec:first-child{margin-top:0}
.sv-sec small{font-weight:400;letter-spacing:0;text-transform:none}
.sv-tabs{display:flex;border-bottom:1px solid var(--sv-border)}
.sv-tabs button{flex:1;background:transparent;border:0;border-right:1px solid var(--sv-border);padding:4px;cursor:pointer;color:var(--sv-muted)}
.sv-tabs button.active{background:var(--sv-sel);color:var(--sv-text);font-weight:700}
.sv-scroll{flex:1;overflow:auto;min-height:0}
.sv-row{display:grid;grid-template-columns:34px 88px minmax(80px,1.3fr) 74px minmax(80px,1.2fr) 70px 30px 42px;gap:6px;padding:3px 8px;border-bottom:1px solid var(--sv-border);cursor:pointer;align-items:center;white-space:nowrap}
.sv-row>span{overflow:hidden;text-overflow:ellipsis}
.sv-row:hover{background:var(--sv-panel2)}
.sv-row.sel{background:var(--sv-sel);box-shadow:inset 3px 0 0 var(--sv-accent)}
.sv-resp{font-weight:700}
.resp-C3 .sv-resp,.sv-chip.resp-C3{color:var(--sv-c3)}
.resp-C2 .sv-resp,.sv-chip.resp-C2{color:var(--sv-c2)}
.sv-age,.sv-un,.sv-beat{color:var(--sv-muted)}
.sv-empty{padding:14px;color:var(--sv-muted);text-align:center}.sv-empty.sm{padding:6px;text-align:left}
.sv-sel-head{padding:8px 10px;border-bottom:2px solid var(--sv-border)}
.sv-sel-id{font-size:16px;font-weight:700;color:var(--sv-accent)}
.sv-sel-type{font-size:14px;font-weight:700;margin:2px 0 6px}
.sv-chip{display:inline-block;border:1px solid var(--sv-border2);padding:1px 6px;margin:0 4px 3px 0;font-size:11px}
.sv-roadway-strip{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:6px 10px;background:var(--sv-panel2);border-bottom:1px solid var(--sv-border)}
.sv-roadway-strip i{display:block;font-style:normal;color:var(--sv-muted);font-size:10px}
.sv-roadway-strip .sv-nb{grid-column:1/-1;color:var(--sv-muted)}
#sv-selected{overflow:auto;flex:1;min-height:0}
.sv-unitline,.sv-nbline,.sv-unit{display:flex;justify-content:space-between;gap:8px;padding:3px 10px;border-bottom:1px solid var(--sv-border)}
.sv-nbline{color:var(--sv-muted);font-size:11px;flex-wrap:wrap}
.sv-narr{padding:6px 10px;white-space:pre-wrap}
.sv-unit em{font-style:normal;color:var(--sv-muted)}
.sv-nbbox{padding:10px;color:var(--sv-muted);border-bottom:1px solid var(--sv-border)}
#sv-dock{flex:0 0 auto;background:var(--sv-panel2);border-top:2px solid var(--sv-border2);padding:4px 8px}
#sv-dock .tabbar{display:flex;gap:2px;flex-wrap:wrap;margin-bottom:4px}
#sv-dock .tabbar button{border-radius:0;padding:4px 14px;border:1px solid var(--sv-border2);background:var(--sv-panel);cursor:pointer}
#sv-dock .tabbar button.active{background:var(--sv-sel);font-weight:700;box-shadow:inset 0 -3px 0 var(--sv-accent)}
#sv-dock .tabbar button:disabled{opacity:.45;cursor:not-allowed}
#sv-dock .cmd{width:100%;opacity:.55}
.sv-tbl{width:100%;border-collapse:collapse}
.sv-tbl th{text-align:left;color:var(--sv-muted);font-weight:400;padding:2px 8px;border-bottom:1px solid var(--sv-border)}
.sv-tbl td{padding:2px 8px;border-bottom:1px solid var(--sv-border)}
.sv-form{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-top:1px solid var(--sv-border);align-items:center}
.sv-form>b{flex:1 0 100%}
.sv-form input,.sv-form select{flex:1 1 140px}
.sv-form input[type=checkbox]{flex:0 0 auto}
.sv-preview{flex:1 0 100%;padding:6px;border:1px dashed var(--sv-border2);color:var(--sv-muted)}
.sv-preview b{color:var(--sv-text)}.sv-preview .bad{color:var(--sv-bad)}
.sv-note{padding:6px 10px;color:var(--sv-accent)}
/* Narrow screens (1366x768, browser zoom): NEVER drop the right column — Radio / Event Control carries
   officer-emergency and wrong-way state. Shrink the columns instead and let the index scroll sideways. */
@media (max-width:1250px){#sv-view-dispatch{grid-template-columns:minmax(240px,32fr) minmax(0,38fr) minmax(220px,30fr)}}
@media (max-width:1000px){#sv-view-dispatch{grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(220px,auto);overflow:auto}.sv-col{border-right:0;border-bottom:2px solid var(--sv-border)}}
#sv-inc-list{overflow-x:auto}
.sv-row{min-width:540px}
#sv-dock .cmd{min-width:0}
#sv-dock .tabbar button{white-space:nowrap}
/* Right-column section boundaries: stronger header + separator so panes scan faster (no layout change). */
.sv-rsub,.sv-grp{border-top:2px solid var(--sv-border2);color:var(--sv-text);font-weight:700}
.sv-rsub small,.sv-grp span{color:var(--sv-muted);font-weight:400}
.sv-col>.sv-sec{border-bottom:2px solid var(--sv-border2);color:var(--sv-text)}
.sv-idle-hint{padding:6px 10px;color:var(--sv-muted);font-size:11px;border-bottom:1px solid var(--sv-border)}
/* Fullscreen: hide the shared sidebar/topbar/command strip exactly as the RCSO Terminal does. */
#page-cad.sv-fullscreen .nc-sidebar,
#page-cad.sv-fullscreen .nc-topbar,
#page-cad.sv-fullscreen .nc-cmdstrip{display:none!important}

.sv-rowhead{cursor:default!important;color:var(--sv-muted);font-size:10px;letter-spacing:.05em;background:var(--sv-panel2)}
.sv-rowhead:hover{background:var(--sv-panel2)!important}
.sv-radiostrip{display:flex;gap:14px;font-size:11px;color:var(--sv-muted)}
.sv-radiostrip b{color:var(--sv-text);font-weight:700}.sv-radiostrip b.nw{color:var(--sv-muted);font-weight:400}
.sv-kvgrid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--sv-border)}
.sv-kv{display:flex;flex-direction:column;padding:4px 10px;border-bottom:1px solid var(--sv-border);min-width:0}
.sv-kv i{font-style:normal;color:var(--sv-muted);font-size:10px}
.sv-kv span{overflow:hidden;text-overflow:ellipsis}
.sv-nbtag{color:var(--sv-muted);font-size:11px}
.sv-chip.c4{color:var(--sv-go);border-color:var(--sv-go);font-size:10px}
.sv-unitline{align-items:center}
.sv-unitline b{min-width:70px}.sv-unitline small{color:var(--sv-muted)}
.sv-unitline .sv-state{margin-left:auto;color:var(--sv-accent);font-weight:700}
.sv-unitline .sv-acts{display:flex;gap:4px}
.sv-actions{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--sv-border);align-items:center;flex-wrap:wrap}
.sv-actions select{flex:1 1 180px}
.sv-grp{background:var(--sv-panel2);color:var(--sv-muted);padding:2px 10px;font-size:10px;letter-spacing:.05em;display:flex;justify-content:space-between;border-bottom:1px solid var(--sv-border)}
.sv-unit.none{color:var(--sv-muted)}
.sv-unit{display:grid;grid-template-columns:78px 1fr auto;gap:6px}
.sv-overlay{position:absolute;inset:34px 0 0 0;background:rgba(0,0,0,.55);z-index:20;display:flex;align-items:flex-start;justify-content:center;padding-top:30px}
.sv-overlay.hidden{display:none!important}
#panel-svhpcad{position:relative}
.sv-newform{width:min(760px,94%);background:var(--sv-panel);border:2px solid var(--sv-border2)}

.sv-radiostrip b.hot,.sv-rev.hot b{color:var(--sv-bad)}
.sv-radio{flex:0 0 auto;max-height:58%;overflow:auto;border-bottom:2px solid var(--sv-border)}
.sv-rsub{background:var(--sv-panel2);color:var(--sv-muted);padding:2px 8px;font-size:10px;letter-spacing:.05em;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--sv-border)}
.sv-rsub small{letter-spacing:0}
.sv-rrow{display:flex;gap:4px;padding:4px 8px;align-items:center;flex-wrap:wrap}
.sv-rrow input,.sv-rrow select{flex:1 1 90px}
.sv-rev{display:flex;gap:6px;padding:3px 8px;border-bottom:1px solid var(--sv-border);align-items:center}
.sv-rev span{flex:1;overflow:hidden;text-overflow:ellipsis;color:var(--sv-muted)}
.sv-rbc{padding:4px 8px;border-bottom:1px solid var(--sv-border)}
.sv-rbc.st-NEGATIVE_RESPONSE{box-shadow:inset 3px 0 0 var(--sv-bad)}
.sv-rbc.st-ACKNOWLEDGED{box-shadow:inset 3px 0 0 var(--sv-go)}
.sv-bstate{color:var(--sv-accent);font-size:10px}.sv-bmsg{color:var(--sv-muted);font-size:11px}

/* Hit area: action buttons in the Selected Incident pane were tiny next to the space available. */
.sv-unitline .btn,.sv-actions .btn{padding:6px 14px;min-height:30px;font-size:12px;font-weight:700}
.sv-actions select{min-height:30px}
.sv-unitline{padding:5px 10px}
/* Labelled overlay forms (TYPE / TARGET / CHANNEL clearly separated) */
.sv-form.lbl label{display:flex;flex-direction:column;gap:2px;flex:1 1 150px;color:var(--sv-muted);font-size:10px;letter-spacing:.05em}
.sv-form.lbl label.full{flex:1 1 100%}
.sv-form.lbl label select,.sv-form.lbl label input,.sv-form.lbl label textarea{color:var(--sv-text);font-size:12px;letter-spacing:0}
.sv-form.lbl>.btn{margin-top:4px}
#panel-svhpcad textarea{background:var(--sv-panel);border:1px solid var(--sv-border2);border-radius:0;padding:4px 6px;font-family:inherit;font-size:12px;color:var(--sv-text);resize:vertical;min-width:0}
/* Overlay never clips at 100% / 125% zoom: scroll inside it instead. */
.sv-overlay{overflow:auto;align-items:flex-start}
.sv-newform{max-height:calc(100% - 30px);overflow:auto;margin-bottom:20px}
.sv-form .btn:disabled{opacity:.4;cursor:not-allowed}

/* Phase 3A — numbering display + classification bar */
.sv-fullno{opacity:.65;font-size:.62em;margin-left:8px;letter-spacing:.04em;font-weight:400}
.sv-lblsel{display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.05em;opacity:.9}
.sv-classbar{align-items:center;gap:10px}.sv-classbar label{display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.05em}

/* Phase 3 mini-pass — chronology */
.sv-chrono-list{max-height:180px;overflow:auto;font-size:11px;line-height:1.5;border:1px solid var(--sv-border);padding:4px 6px;margin-bottom:6px}
.sv-chrono-row .t{opacity:.6;margin-right:6px}.sv-chrono-row .a{font-weight:700;margin-right:6px}

/* Communications / information views (build -70): ALERTS, QUERY, BOLO, MESSAGES */
.sv-comms{flex:1;overflow:auto;padding:10px}
.sv-comms .sv-bar{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap;margin-bottom:8px}
.sv-comms .sv-bar label{display:flex;flex-direction:column;gap:2px;color:var(--sv-muted)}
.sv-hit{background:var(--sv-bad);color:#fff;font-weight:700;padding:3px 8px;margin:2px 0}
.sv-msgrow{padding:2px 8px;border-bottom:1px solid var(--sv-border)}.sv-msgrow .t{color:var(--sv-muted);margin-right:6px}
.sv-alertrow{display:flex;gap:8px;align-items:center;padding:3px 8px;border-bottom:1px solid var(--sv-border)}.sv-alertrow.hot b{color:var(--sv-bad)}
.sv-alertrow .k{min-width:130px;font-weight:700}
.sv-pre{white-space:pre-wrap;font-family:inherit;padding:4px 8px;margin:0}

/* Traffic Management (build -71) */
.sv-trrow{display:grid;grid-template-columns:78px 1fr auto;gap:8px;align-items:center;padding:3px 8px;border-bottom:1px solid var(--sv-border)}
.sv-trrow .k{font-weight:700}.sv-trrow.hot .k{color:var(--sv-bad)}
.sv-trrow .m{color:var(--sv-muted)}
.sv-trrow .acts{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.sv-trform{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-end;margin-bottom:6px}
.sv-trform label{display:flex;flex-direction:column;gap:2px;color:var(--sv-muted)}
.sv-trform .wide{flex:1 1 220px}
