  #viewBoard{flex:1 1 auto;display:grid;grid-template-columns:0.95fr 1.3fr 1.05fr;gap:1px;background:var(--line);min-height:0}
  section.col{background:var(--bg);display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .panel{display:flex;flex-direction:column;min-height:0;border-bottom:1px solid var(--line)}
  .panel:last-child{border-bottom:none}
  .phead{display:flex;align-items:center;gap:10px;padding:10px 15px 8px;border-bottom:1px solid var(--line-soft);flex:0 0 auto}
  .phead h2{margin:0;font-size:11.5px;letter-spacing:.7px;text-transform:uppercase;color:var(--ink-dim);font-weight:700}
  .phead .spacer{flex:1}
  .count{font-family:var(--mono);font-size:11.5px;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:1px 8px;border-radius:6px}
  .scroll{overflow-y:auto;padding:10px 12px;flex:1 1 auto;min-height:0}
  .scroll::-webkit-scrollbar{width:8px}.scroll::-webkit-scrollbar-thumb{background:#222b39;border-radius:8px;border:2px solid var(--bg)}
  .empty{color:var(--ink-faint);text-align:center;padding:24px 10px;font-size:12px}
  .qcard{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px 12px;margin-bottom:8px;border-radius:11px;background:var(--panel);border:1px solid var(--line);position:relative;overflow:hidden}
  .qcard.anim,.dispo.anim,.adv.anim{animation:slidein .35s ease} /* only cards NEW this render slide in — the per-second innerHTML rebuilds must not replay it */
  .qcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ring)}
  .qcard.fetching::before{background:var(--brand)} .qcard.urgent::before{background:var(--miss)}
  .qdot{width:10px;height:10px;border-radius:50%;background:var(--ring);animation:pulseG 1.3s infinite;margin-left:3px}
  .qcard.fetching .qdot{background:var(--brand)} .qcard.urgent .qdot{background:var(--miss)}
  .qmid .phone{font-family:var(--mono);font-size:14px;font-weight:600}
  .qmid .meta{display:flex;gap:7px;margin-top:3px}
  .badge{font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:5px;border:1px solid var(--line);color:var(--ink-dim);background:var(--panel-2);white-space:nowrap}
  .badge.route{color:#CFE0FF;border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.1)}
  .qstate{font-size:10px;color:var(--ink-faint);margin-top:4px}
  .qstate b{color:var(--ring);font-weight:600} .qcard.fetching .qstate b{color:var(--brand)}
  .qright{text-align:right} .qtimer{font-family:var(--mono);font-size:18px;font-weight:600;line-height:1}
  .qcard.urgent .qtimer{color:var(--miss)}
  .qright .wl{font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-faint);margin-top:2px}
  .missed-rail{flex:0 0 auto;border-top:1px solid var(--line-soft);padding:9px 14px;background:var(--panel-2)}
  .missed-rail .mh{display:flex;align-items:center;gap:8px;margin-bottom:7px}
  .missed-rail .mh h3{margin:0;font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--miss);font-weight:700}
  .missed-rail .mh .n{font-family:var(--mono);color:var(--miss);font-weight:700}
  .missed-list{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}
  .mchip{flex:0 0 auto;font-family:var(--mono);font-size:10.5px;color:#F3B4B4;background:rgba(239,68,68,.09);border:1px solid rgba(239,68,68,.28);padding:4px 8px;border-radius:7px}
  .mchip small{color:var(--ink-faint);font-family:var(--sans);margin-left:5px}
  .dept{margin-bottom:9px;border:1px solid var(--line);border-radius:11px;background:var(--panel);overflow:hidden}
  .dept-head{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel-2);border-bottom:1px solid var(--line-soft)}
  .dept-head .name{font-weight:700;font-size:12.5px}
  .dept-head .pr{font-family:var(--mono);font-size:10px;padding:1px 6px;border-radius:5px;margin-left:2px}
  .pr.ok{color:var(--pass);background:rgba(34,197,94,.1)} .pr.bad{color:var(--fail);background:rgba(239,68,68,.12)}
  .dept-head .spacer{flex:1}
  .tally{display:flex;gap:5px}
  .tally span{font-family:var(--mono);font-size:10.5px;padding:2px 7px;border-radius:6px;border:1px solid var(--line);color:var(--ink-dim)}
  .tally .t-av{color:var(--avail);border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.08)}
  .tally .t-oc{color:var(--oncall);border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.08)}
  .tally .t-aw{color:var(--away);border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.08)}
  .reps{display:grid;grid-template-columns:repeat(auto-fill,minmax(198px,1fr));gap:7px;padding:9px 10px}
  .rep{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:8px 10px;border-radius:9px;background:var(--panel-2);border:1px solid var(--line-soft);border-left:3px solid var(--off)}
  .rep.available{border-left-color:var(--avail)} .rep.oncall{border-left-color:var(--oncall)} .rep.ringing{border-left-color:var(--ring)}
  .rep.dispo{border-left-color:var(--dispo)} .rep.away{border-left-color:var(--away)} .rep.offline{border-left-color:var(--off);opacity:.6}
  .rep .av{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:10.5px;font-weight:700;color:#0A0D13;background:#3A4557}
  .rep.available .av{background:var(--avail)} .rep.oncall .av{background:var(--oncall);color:#fff}
  .rep.ringing .av{background:var(--ring);animation:pulseG 1.3s infinite} .rep.dispo .av{background:var(--dispo);color:#fff} .rep.away .av{background:var(--away)}
  .rep .info{min-width:0}
  .rep .rn{font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rep .rs{font-size:9.5px;margin-top:1px;display:flex;align-items:center;gap:6px}
  .rep .stt{text-transform:capitalize}
  .rep.available .stt{color:var(--avail)} .rep.oncall .stt{color:var(--oncall)} .rep.ringing .stt{color:var(--ring)}
  .rep.dispo .stt{color:var(--dispo)} .rep.away .stt{color:var(--away)} .rep.offline .stt{color:var(--ink-faint)}
  .rep .rt{font-family:var(--mono);color:var(--ink-faint)}
  .rep .stat{display:flex;gap:7px;margin-top:4px;font-size:9px;font-family:var(--mono);flex-wrap:wrap}
  .rep .stat span{color:var(--ink-faint)}
  .rep .stat .a b{color:var(--avail)} .rep .stat .m b{color:var(--miss)} .rep .stat .d b{color:var(--brand)}
  .rep .stat .pf b{color:var(--pass)} .rep .stat .pf.low b{color:var(--fail)}
  .actbar{margin-top:5px;height:3px;border-radius:3px;background:#232c3a;overflow:hidden}
  .actbar i{display:block;height:100%;background:var(--avail)}
  .actbar.mid i{background:var(--away)} .actbar.low i{background:var(--fail)}
  .dispo{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 11px;margin-bottom:6px;border-radius:9px;background:var(--panel);border:1px solid var(--line-soft)}
  .dispo.fail{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.06);cursor:pointer}
  .dispo.fail:hover{background:rgba(239,68,68,.11)}
  .dispo .sc{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:13px;color:#0A0D13;background:var(--pass)}
  .dispo.fail .sc{background:var(--fail);color:#fff}
  .dispo .who .n{font-size:12px;font-weight:600}
  .dispo .who .sub{font-size:10px;color:var(--ink-faint);margin-top:2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  .obadge{font-size:9.5px;font-weight:600;padding:1px 6px;border-radius:5px;border:1px solid var(--line);color:var(--ink-dim)}
  .obadge.enrolled{color:#8BE9B2;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.09)}
  .flagb{font-size:9px;font-weight:700;padding:1px 6px;border-radius:5px;color:#fff;background:var(--fail)}
  .dispo .tm{font-family:var(--mono);font-size:10px;color:var(--ink-faint);text-align:right;white-space:nowrap}
  .wire{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:9px 11px;margin-bottom:7px;border-radius:10px;background:var(--panel);border:1px solid var(--line-soft);border-left:3px solid var(--pass)}
  .wire.warn{border-left-color:var(--warn)} .wire.fail{border-left-color:var(--fail)}
  .wire .wd{width:9px;height:9px;border-radius:50%;background:var(--pass);margin-top:4px}
  .wire.warn .wd{background:var(--warn)} .wire.fail .wd{background:var(--fail);animation:pulseR 1.4s infinite}
  .wire .wtop{display:flex;align-items:baseline;gap:8px}.wire .wlab{font-size:11.5px;font-weight:600}
  .wire .wstat{margin-left:auto;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.5px;padding:1px 6px;border-radius:5px;text-transform:uppercase}
  .wire .wstat.pass{color:var(--pass);background:rgba(34,197,94,.1)}.wire .wstat.warn{color:var(--warn);background:rgba(245,158,11,.12)}.wire .wstat.fail{color:var(--fail);background:rgba(239,68,68,.14)}
  .wire .wread{font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);margin-top:3px}
  .wire .wadv{font-size:10.5px;color:var(--ink-faint);margin-top:4px;display:flex;gap:6px}.wire .wadv .hz{color:var(--haley);font-weight:700;flex:0 0 auto}
  .adv{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:10px 11px;margin-bottom:7px;border-radius:10px;background:var(--panel);border:1px solid var(--line-soft)}
  .adv.fail{border-color:rgba(239,68,68,.35)} .adv.warn{border-color:rgba(245,158,11,.3)} .adv.acked{opacity:.45}
  .adv .hm{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:800;color:#160f2e;background:var(--haley);flex:0 0 auto}
  .adv .body{min-width:0}
  .adv .sev{display:inline-block;font-size:8.5px;font-weight:800;letter-spacing:.6px;padding:1px 6px;border-radius:4px;text-transform:uppercase;vertical-align:middle}
  .adv .sev.fail{color:#fff;background:var(--fail)} .adv .sev.warn{color:#241a04;background:var(--warn)} .adv .sev.info{color:#0A0D13;background:var(--haley)}
  .adv .subj{font-size:11.5px;font-weight:700;margin-left:6px}
  .adv .txt{font-size:11px;color:var(--ink-dim);margin-top:4px}
  .adv .act{font-size:11px;color:#CBBEFB;margin-top:5px;display:flex;gap:6px} .adv .act .arw{color:var(--haley);flex:0 0 auto}
  .adv .foot{display:flex;align-items:center;gap:10px;margin-top:6px}
  .adv .tm{font-family:var(--mono);font-size:9.5px;color:var(--ink-faint)}
  .adv .ack{margin-left:auto;font-size:10px;color:var(--haley);cursor:pointer;border:1px solid rgba(167,139,250,.3);padding:2px 8px;border-radius:6px;user-select:none}
  .adv .ack:hover{background:rgba(167,139,250,.12)} .adv.acked .ack{color:var(--ink-faint);border-color:var(--line)}
  footer.legend{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:7px 18px;border-top:1px solid var(--line);background:var(--panel-2);font-size:10px;color:var(--ink-faint);flex-wrap:wrap}
  .lg{display:inline-flex;align-items:center;gap:6px} .lg i{width:9px;height:9px;border-radius:3px;display:inline-block}
  .legend .src{margin-left:auto;font-family:var(--mono)}
