/* tcv2 / 20 dispatch: Dispatch Settings (v2 + legacy), dispatch board / dashboard / supervisor / riders / map / history / reports /
   broadcast / roles / zones / shifts / WA templates / logs / presets, and the ride-hailing admin pages.
   Design only. Language: docs/design-canvas/admin-system/board-5.html + tc-city-ops.css, tokens from tc-admin-theme.css (--tc2-*).
   Every rule starts with body.tcv2; page <style> blocks come later so we out-specify them (body.tcv2 + class) and use !important
   only against an existing !important. Do not rename any class: the pages' JS and PHP depend on them. */
@media screen{

/* ── A. Dispatch Settings v2 (. */
body.tcv2 .dsv2{--g:var(--tc2-brand);--g2:var(--tc2-brand-2);--ink:var(--tc2-ink);--mut:var(--tc2-mut);--line:var(--tc2-line);--bg:var(--tc2-bg);--card:var(--tc2-surface);--red:var(--tc2-danger);--redbg:var(--tc2-danger-bg);--amber:var(--tc2-warn);--amberbg:var(--tc2-warn-bg);--okbg:var(--tc2-mint-soft);--ok:var(--tc2-ok);--sky:var(--tc2-info);--skybg:var(--tc2-info-bg)}
body.tcv2 .dsv2 :focus-visible{outline:3px solid var(--tc2-focus);outline-offset:2px}
body.tcv2 .dsv2-head{margin-bottom:12px}
body.tcv2 .dsv2-head h4{font-size:var(--tc2-fs-h);font-weight:800;line-height:1.2;color:var(--tc2-ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.tcv2 .dsv2-head h4 i.fas{color:var(--tc2-brand)!important}
body.tcv2 .dsv2-head small{color:var(--tc2-text-2);font-size:var(--tc2-fs-sm);font-weight:700}
body.tcv2 .dsv2-head small a{color:var(--tc2-text-2)}
body.tcv2 .dsv2-env{font-size:10.5px;font-weight:800;letter-spacing:.06em;border-radius:var(--tc2-r-pill);padding:3px 10px;text-transform:uppercase}
body.tcv2 .dsv2-env.sandbox{background:#FEF9C3;color:#854D0E}
body.tcv2 .dsv2-env.production{background:var(--tc2-danger-bg);color:var(--tc2-danger);box-shadow:inset 0 0 0 1.5px var(--tc2-danger-bd)}
body.tcv2 .dsv2-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1.5px solid var(--tc2-line);background:var(--tc2-neutral-btn);color:var(--tc2-neutral-fg);border-radius:var(--tc2-r-btn);padding:8px 14px;font-size:12.5px;font-weight:800;line-height:normal;white-space:nowrap;box-shadow:none}
body.tcv2 .dsv2-btn:hover{background:var(--tc2-neutral-btn-h);color:var(--tc2-neutral-fg);text-decoration:none}
body.tcv2 .dsv2-btn.pri{background:var(--tc2-brand);border-color:var(--tc2-brand);color:#fff}
body.tcv2 .dsv2-btn.pri:hover{background:var(--tc2-brand-hover);border-color:var(--tc2-brand-hover);color:#fff}
body.tcv2 .dsv2-btn.dng{background:var(--tc2-danger);border-color:var(--tc2-danger-dark);color:#fff}
body.tcv2 .dsv2-btn.dng:hover{background:#991B1B;color:#fff}
body.tcv2 .dsv2-btn[disabled]{opacity:.45;cursor:not-allowed}
body.tcv2 .dsv2-top{gap:12px;margin-bottom:12px}
body.tcv2 .dsv2-top>span{font-size:var(--tc2-fs-sm)!important;font-weight:700;color:var(--tc2-text-2)!important}
body.tcv2 .dsv2-search input{border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);padding:9px 12px 9px 36px;font-size:13px;font-weight:700;min-height:42px;color:var(--tc2-ink);background:var(--tc2-surface)}
body.tcv2 .dsv2-search input::placeholder{color:var(--tc2-mut);opacity:1;font-weight:600}
body.tcv2 .dsv2-search input:focus{border-color:var(--tc2-brand)}
body.tcv2 .dsv2-search .ico{color:var(--tc2-mut)}
body.tcv2 .dsv2-results{border:2px solid var(--tc2-outline);border-radius:14px;box-shadow:var(--tc2-shadow-menu);padding:6px}
body.tcv2 .dsv2-results button{border:0;border-radius:var(--tc2-r-sm);padding:8px 10px}
body.tcv2 .dsv2-results button:hover,body.tcv2 .dsv2-results button.on{background:var(--tc2-mint-soft)}
body.tcv2 .dsv2-results .p{font-size:11px;font-weight:700;color:var(--tc2-mut)}
body.tcv2 .dsv2-results .t{font-size:12.5px;font-weight:800;color:var(--tc2-ink)}
body.tcv2 .dsv2-tabs{gap:2px;border-bottom:1px solid var(--tc2-line);padding-bottom:0;margin-bottom:14px;background:var(--tc2-surface);border-radius:var(--tc2-r-card) var(--tc2-r-card) 0 0;padding:0 12px}
body.tcv2 .dsv2-tab{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;padding:12px 14px;font-size:13px;font-weight:800;color:var(--tc2-mut);display:flex;align-items:center;gap:7px;margin-bottom:-1px}
body.tcv2 .dsv2-tab:hover{color:var(--tc2-ink)}
body.tcv2 .dsv2-tab[aria-selected=true]{background:transparent;color:var(--tc2-brand);border-bottom-color:var(--tc2-brand)}
body.tcv2 .dsv2-tab.money{border-color:transparent;color:var(--tc2-danger)}
body.tcv2 .dsv2-tab.money[aria-selected=true]{background:transparent;border-bottom-color:var(--tc2-danger);color:var(--tc2-danger)}
body.tcv2 .dsv2-tab .dot{position:static;width:8px;height:8px;border:0;background:var(--tc2-warn-solid)}
body.tcv2 .dsv2-tab.dirty .dot{display:inline-block}
body.tcv2 .dsv2-tab .bad{margin-left:0;background:var(--tc2-danger);border-radius:var(--tc2-r-pill);font-size:10px;font-weight:800;padding:1px 6px}
body.tcv2 .dsv2-banner{border-radius:var(--tc2-r-ctl);padding:10px 14px;font-size:12.5px;font-weight:700;line-height:1.45;border-width:1.5px}
body.tcv2 .dsv2-banner.warn{background:var(--tc2-warn-bg);border-color:var(--tc2-warn-bd);color:var(--tc2-warn)}
body.tcv2 .dsv2-banner.info{background:var(--tc2-info-bg);border-color:var(--tc2-info-bd);color:var(--tc2-info)}
body.tcv2 .dsv2-banner.bad{background:var(--tc2-danger-bg);border-color:var(--tc2-danger-bd);color:var(--tc2-danger)}
body.tcv2 .dsv2-banner.ok{background:var(--tc2-mint-soft);border-color:var(--tc2-ok-bd);color:var(--tc2-ok)}
body.tcv2 .dsv2-banner a{color:inherit;text-decoration:underline}
body.tcv2 .dsv2-banner .dsv2-btn:not(.dng):not(.pri){background:var(--tc2-surface)}
body.tcv2 .dsv2-tabtools{font-size:var(--tc2-fs-sm);font-weight:700;color:var(--tc2-mut)}
body.tcv2 .dsv2-tabtools label{font-weight:800;color:var(--tc2-text-2)}
body.tcv2 .dsv2-tabtools input[type=checkbox]{width:18px;height:18px;accent-color:var(--tc2-brand);border-radius:6px;margin:0}
body.tcv2 .dsv2-status{gap:8px}
body.tcv2 .dsv2-chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--tc2-r-pill);padding:4px 11px;font-size:11.5px;font-weight:700;border:1px solid var(--tc2-line);background:var(--tc2-surface);color:var(--tc2-neutral-fg)}
body.tcv2 .dsv2-chip b{font-weight:800}
body.tcv2 .dsv2-chip.ok{background:var(--tc2-mint-soft);border-color:var(--tc2-ok-bd);color:var(--tc2-ok)}
body.tcv2 .dsv2-chip.warn{background:#FFFBEB;border-color:var(--tc2-warn-bd);color:var(--tc2-warn)}
body.tcv2 .dsv2-chip.bad{background:var(--tc2-danger-bg);border-color:var(--tc2-danger-bd);color:var(--tc2-danger)}
body.tcv2 .dsv2-card{background:var(--tc2-surface);border:1px solid var(--tc2-line);border-radius:var(--tc2-r-card);box-shadow:none;margin-bottom:16px;overflow:hidden}
body.tcv2 .dsv2-card>h5{padding:12px 18px;font-size:14px;font-weight:800;line-height:normal;color:#fff;background:var(--tc2-header-grad)}
body.tcv2 .dsv2-card.danger>h5{background:linear-gradient(135deg,var(--tc2-danger-dark),var(--tc2-danger))}
body.tcv2 .dsv2-card>.sub{padding:10px 18px 2px;font-size:var(--tc2-fs-sm);font-weight:600;color:var(--tc2-mut);line-height:1.45}
body.tcv2 .dsv2-unm{font-size:var(--tc2-fs-sm);font-weight:600;color:var(--tc2-text-2)}
body.tcv2 .dsv2-unm code{background:#F3F4F6;border-radius:6px;padding:1px 6px;font-weight:800;color:var(--tc2-ink)}
body.tcv2 .dsv2-row{padding:14px 18px;border-bottom:1px solid var(--tc2-line-soft);border-left:4px solid transparent}
body.tcv2 .dsv2-row.dirty{border-left-color:var(--tc2-warn-solid);background:#FFFBEB}
body.tcv2 .dsv2-row.hl{background:var(--tc2-ok-bg)}
body.tcv2 .dsv2-label{font-size:14px;font-weight:800;color:var(--tc2-ink)}
body.tcv2 .dsv2-label label{margin:0;font-size:14px;font-weight:800}
body.tcv2 .dsv2-label .nd{border:2px solid var(--tc2-mut)}
body.tcv2 .dsv2-help{font-size:var(--tc2-fs-sm);font-weight:600;color:var(--tc2-mut);line-height:1.5;margin-top:3px}
body.tcv2 .dsv2-meta{font-size:11px;font-weight:700;color:var(--tc2-mut);gap:6px 12px;margin-top:7px}
body.tcv2 .dsv2-meta button,body.tcv2 .dsv2-meta a{font-size:11px;font-weight:800;color:var(--tc2-brand);text-decoration:underline}
body.tcv2 .dsv2-tag{border-radius:var(--tc2-r-pill);padding:1px 8px;font-size:10.5px;font-weight:800;border-width:1px}
body.tcv2 .dsv2-tag.C{background:var(--tc2-warn-bg);border-color:var(--tc2-warn-bd);color:var(--tc2-warn)}
body.tcv2 .dsv2-tag.N{background:var(--tc2-danger-bg);border-color:var(--tc2-danger-bd);color:var(--tc2-danger)}
body.tcv2 .dsv2-tag.rec{background:var(--tc2-info-bg);border-color:var(--tc2-info-bd);color:var(--tc2-info)}
body.tcv2 .dsv2-tag.adv{background:#F3F4F6;border-color:var(--tc2-line);color:var(--tc2-text-2)}
body.tcv2 .dsv2-err{color:var(--tc2-danger);font-size:var(--tc2-fs-sm);font-weight:700;margin-top:5px}
body.tcv2 .dsv2-conf{background:var(--tc2-warn-bg);border:1.5px solid var(--tc2-warn-bd);border-radius:var(--tc2-r-ctl);padding:8px 12px;font-size:var(--tc2-fs-sm);font-weight:700;color:var(--tc2-warn)}
body.tcv2 .dsv2-in{border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);padding:8px 12px;font-size:13px;font-weight:700;min-height:40px;line-height:1.4;color:var(--tc2-ink);background:var(--tc2-surface)}
body.tcv2 .dsv2-in::placeholder{color:var(--tc2-mut);font-weight:600;opacity:1}
body.tcv2 .dsv2-in:focus{border-color:var(--tc2-brand);outline:3px solid var(--tc2-focus);outline-offset:1px}
body.tcv2 .dsv2-in:disabled{background:#F3F4F6;border-color:#D1D5DB;color:var(--tc2-mut)}
body.tcv2 .dsv2-in.num{width:100px;min-height:36px;padding:6px 10px}
body.tcv2 .dsv2-unit{font-size:var(--tc2-fs-sm);font-weight:700;color:var(--tc2-mut)}
body.tcv2 .dsv2-val{font-size:15px;font-weight:800;color:var(--tc2-ink)}
body.tcv2 .dsv2-range::-webkit-slider-runnable-track{height:8px;border-radius:6px;background:var(--band,var(--tc2-line))}
body.tcv2 .dsv2-range::-moz-range-track{height:8px;border-radius:6px;background:var(--band,var(--tc2-line))}
body.tcv2 .dsv2-range::-webkit-slider-thumb{background:var(--tc2-brand);border:3px solid #fff;box-shadow:0 0 0 1.5px var(--tc2-outline)}
body.tcv2 .dsv2-range::-moz-range-thumb{background:var(--tc2-brand);border:3px solid #fff;box-shadow:0 0 0 1.5px var(--tc2-outline)}
body.tcv2 .dsv2-range:disabled::-webkit-slider-thumb{background:var(--tc2-mut2)}
body.tcv2 .dsv2-scale{font-size:10.5px;font-weight:700;color:var(--tc2-mut)}
body.tcv2 .dsv2-step{border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);overflow:hidden;background:var(--tc2-surface)}
body.tcv2 .dsv2-step button{width:36px;height:36px;border:0;background:#F3F4F6;color:var(--tc2-neutral-fg);font-size:16px;font-weight:800}
body.tcv2 .dsv2-step button:first-child,body.tcv2 .dsv2-step button:last-child{border-radius:0}
body.tcv2 .dsv2-step button:hover:not(:disabled){background:var(--tc2-mint)}
body.tcv2 .dsv2-step input{height:36px;border:0;font-size:13px;font-weight:800;color:var(--tc2-ink);background:var(--tc2-surface)}
body.tcv2 .dsv2-sw .tr{background:#D1D5DB}
body.tcv2 .dsv2-sw .tr:after{box-shadow:0 1px 3px rgba(0,0,0,.25)}
body.tcv2 .dsv2-sw input:checked+.tr{background:var(--tc2-brand)}
body.tcv2 .dsv2-sw input:focus-visible+.tr{outline:3px solid var(--tc2-focus);outline-offset:2px}
body.tcv2 .dsv2-sw .tx{font-size:12.5px;font-weight:800;color:var(--tc2-text-2)}
body.tcv2 .dsv2-seg{border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);background:var(--tc2-surface)}
body.tcv2 .dsv2-seg button{border-right:1.5px solid var(--tc2-line);padding:8px 14px;font-size:12.5px;font-weight:800;color:var(--tc2-text-2);background:var(--tc2-surface)}
body.tcv2 .dsv2-seg button:hover:not(:disabled):not([aria-checked=true]){background:var(--tc2-mint-soft)}
body.tcv2 .dsv2-seg button[aria-checked=true]{background:var(--tc2-brand);color:#fff}
body.tcv2 .dsv2-pill{display:inline-flex;align-items:center;border-radius:var(--tc2-r-pill);padding:4px 11px;font-size:11.5px;font-weight:800;background:#F3F4F6;color:var(--tc2-text-2)}
body.tcv2 .dsv2-pill.set{background:var(--tc2-mint-soft);color:var(--tc2-ok);box-shadow:inset 0 0 0 1.5px var(--tc2-ok-bd)}
body.tcv2 .dsv2-test{border-top:1px dashed #CBD5E1;background:var(--tc2-surface-2);padding:14px 18px}
body.tcv2 .dsv2-test h6{font-size:13px;font-weight:800;color:var(--tc2-brand)}
body.tcv2 .dsv2-test .help{font-size:var(--tc2-fs-sm);font-weight:600;color:var(--tc2-mut)}
body.tcv2 .dsv2-test .chk{font-size:12.5px;font-weight:700;color:var(--tc2-text-2)}
body.tcv2 .dsv2-test .chk input{width:18px;height:18px;accent-color:var(--tc2-brand);margin:0}
body.tcv2 .dsv2-test .note{font-size:var(--tc2-fs-sm);font-weight:700;color:var(--tc2-warn);background:var(--tc2-warn-bg);border:1.5px solid var(--tc2-warn-bd);border-radius:var(--tc2-r-ctl);padding:8px 12px}
body.tcv2 .dsv2-test .res{border:1.5px solid;border-radius:var(--tc2-r-ctl);padding:10px 14px;font-size:12.5px;font-weight:700}
body.tcv2 .dsv2-test .res.ok{background:var(--tc2-mint-soft);border-color:var(--tc2-ok-bd);color:var(--tc2-ok)}
body.tcv2 .dsv2-test .res.bad{background:var(--tc2-danger-bg);border-color:var(--tc2-danger-bd);color:var(--tc2-danger)}
body.tcv2 .dsv2-test .res .at{font-size:11px;font-weight:700}
body.tcv2 .dsv2-test .res li{font-size:12px;font-weight:600;color:var(--tc2-neutral-fg)}
body.tcv2 .dsv2-test .res li.ok b{color:var(--tc2-ok)}
body.tcv2 .dsv2-test .res li.bad b{color:var(--tc2-danger)}
body.tcv2 .dsv2-test .res li.warn b{color:var(--tc2-warn)}
body.tcv2 .dsv2-bar{background:var(--tc2-surface);border-top:3px solid var(--tc2-warn-solid);box-shadow:0 -6px 24px rgba(0,0,0,.12);padding:11px 20px}
body.tcv2 .dsv2-bar .msg{font-size:13px;font-weight:800;color:var(--tc2-ink)}
body.tcv2 .dsv2-modal{background:var(--tc2-dim)}
body.tcv2 .dsv2-dlg{background:var(--tc2-surface);border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-dialog);box-shadow:var(--tc2-shadow-pop);overflow:auto}
body.tcv2 .dsv2-dlg>header{padding:16px 20px;font-size:18px;font-weight:800;color:var(--tc2-ink);border-bottom:2px solid var(--tc2-outline)}
body.tcv2 .dsv2-dlg>section{padding:16px 20px}
body.tcv2 .dsv2-dlg>footer{padding:14px 20px;border-top:2px solid var(--tc2-outline);background:var(--tc2-surface-2)}
body.tcv2 .dsv2-diff{font-size:12.5px}
body.tcv2 .dsv2-diff th{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--tc2-mut);background:var(--tc2-surface-2);padding:8px 10px;border-bottom:1px solid var(--tc2-line)}
body.tcv2 .dsv2-diff td{padding:9px 10px;font-weight:600;border-bottom:1px solid var(--tc2-line-soft);color:var(--tc2-ink)}
body.tcv2 .dsv2-diff .dn{color:var(--tc2-danger);font-weight:800}
body.tcv2 .dsv2-diff s{color:var(--tc2-mut)}
body.tcv2 .dsv2-dlg .dsv2-banner.bad .dsv2-in{border-color:var(--tc2-danger);letter-spacing:.14em;font-weight:800;background:var(--tc2-surface)}
body.tcv2 .dsv2-flash div{border-radius:14px;padding:11px 14px;font-size:12.5px;font-weight:800;box-shadow:0 10px 28px rgba(0,0,0,.18)}
body.tcv2 .dsv2-flash .ok{background:var(--tc2-ok);color:#fff}
body.tcv2 .dsv2-flash .er{background:var(--tc2-danger);color:#fff}
body.tcv2 .dsv2-empty{font-size:13px;font-weight:700;color:var(--tc2-mut)}
@media (max-width:767px){body.tcv2 .dsv2-search{flex:1 1 100%;max-width:none}body.tcv2 .dsv2-tabs{padding:0 6px}body.tcv2 .dsv2-tab{padding:11px 10px}body.tcv2 .dsv2-bar{padding:10px 12px}}

body.tcv2 .dsv2 select:not(.dsv2-in){border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);min-height:38px;padding:6px 10px;font-size:13px;font-weight:800;color:var(--tc2-ink);background-color:var(--tc2-surface)}

/* ── B. Private-style dispatch pages: shared components ───────────── */
body.tcv2 :is(.sv-card,.wt-card,.rp-card,.zn-card,.dh-card,.el-card,.np-card,.bc-card,.rl-card,.sh-card,.wl-card,.ds-card){border:1px solid var(--tc2-line);border-radius:var(--tc2-r-card);box-shadow:none}
body.tcv2 :is(.sv-pill,.rm-stat,.dh-kpi,.dh-stat,.wl-stat,.rm-card,.rm-d-order,.dh-tstep){border:1px solid var(--tc2-line);border-radius:14px;box-shadow:none}
body.tcv2 :is(.rm-card,.dh-kpi){transition:border-color .12s}
body.tcv2 :is(.rm-card,.dh-kpi):hover{transform:none;box-shadow:none;border-color:var(--tc2-brand)}
body.tcv2 .dh-kpi.urgent{border-left:4px solid var(--tc2-danger)}
body.tcv2 .dh-kpi.ok{border-left:4px solid var(--tc2-ok)}
body.tcv2 .dh-kpi.blue{border-left:4px solid var(--tc2-info)}
body.tcv2 .dh-kpi.amber{border-left:4px solid var(--tc2-warn-solid)}
body.tcv2 .dh-kpi.urgent .dh-kpi-val{color:var(--tc2-danger)}
body.tcv2 :is(.dh-kpi-lbl,.rm-stat-l,.dh-stat .l,.wl-stat .l,.rm2-stat-lbl){font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--tc2-mut)}
body.tcv2 :is(.dh-kpi-val,.sv-pill-n,.rm-stat-n,.dh-stat .n,.wl-stat .n,.sv-qbox-n){font-weight:800;letter-spacing:-.3px}
body.tcv2 :is(.dh-kpi-sub,.sv-card-sub){font-size:11.5px;font-weight:700;color:var(--tc2-mut)}
body.tcv2 :is(.wt-hdr,.zn-hdr,.sh-hdr,.rl-hdr,.el-hdr,.wl-hdr,.np-card-hdr,.ds-card-hdr){background:var(--tc2-header-grad);color:#fff;padding:12px 18px;line-height:normal}
body.tcv2 :is(.sv-card-hdr,.dh-card-hdr,.rp-hdr,.bc-hdr){background:var(--tc2-surface);border-bottom:1px solid var(--tc2-line);padding:12px 18px}
body.tcv2 :is(.wt-hdr-ttl,.zn-ttl,.sh-ttl,.rl-hdr-ttl,.np-card-ttl,.wl-hdr-ttl,.sv-card-ttl,.dh-card-ttl,.rp-ttl,.bc-ttl){font-size:14px;font-weight:800;line-height:normal}
body.tcv2 :is(.sv-card-ttl,.dh-card-ttl,.rp-ttl,.bc-ttl){color:var(--tc2-ink)}
body.tcv2 :is(.wt-hdr,.zn-hdr,.sh-hdr,.rl-hdr,.el-hdr,.wl-hdr,.np-card-hdr) :is(small,span.r){font-size:11.5px;font-weight:700}
body.tcv2 :is(.rp-table,.zn-table,.sh-table,.wt-table,.dh-tbl){font-size:12.5px}
body.tcv2 :is(.rp-table,.zn-table,.sh-table,.wt-table,.dh-tbl) th{font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--tc2-mut);background:var(--tc2-surface-2);border-bottom:1px solid var(--tc2-line);padding:9px 12px}
body.tcv2 :is(.rp-table,.zn-table,.sh-table,.wt-table,.dh-tbl) td{font-weight:600;color:var(--tc2-ink);padding:10px 12px;border-bottom:1px solid var(--tc2-line-soft)}
body.tcv2 :is(.rp-table,.zn-table,.sh-table,.wt-table) tr:hover td{background:var(--tc2-hover)}
body.tcv2 :is(.rl-th,.wl-th,.dh-th){font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--tc2-mut);background:var(--tc2-surface-2);border-bottom:1px solid var(--tc2-line);padding:9px 12px}
body.tcv2 :is(.rl-td,.wl-cell,.dh-cell){font-size:12.5px;font-weight:600;color:var(--tc2-ink)}
body.tcv2 :is(.rl-td){padding:10px 12px;border-bottom:1px solid var(--tc2-line-soft)}
body.tcv2 :is(.dh-row,.wl-row,.sv-drow,.np-preset-row,.bc-hist-row){border-bottom:1px solid var(--tc2-line-soft)}
body.tcv2 :is(.dh-row,.wl-row,.np-preset-row):hover{background:var(--tc2-hover)}
body.tcv2 .wl-row.expanded{background:var(--tc2-mint-soft)}
body.tcv2 :is(.dh-detail,.wl-detail){background:var(--tc2-surface-2);border-top:1px solid var(--tc2-line-soft)}
body.tcv2 :is(.dh-kv .k,.wl-label,.dh-tstep .ts-lbl,.dh-log-time){color:var(--tc2-mut)}
body.tcv2 :is(.dh-kv .v,.dh-tstep .ts-time){color:var(--tc2-ink);font-weight:700}
body.tcv2 :is(.dh-btn,.rl-btn,.wt-btn,.wl-btn,.zn-btn,.sh-btn,.bc-btn,.np-btn,.rm2-btn,.sv-mbtn,.zn-save,.sh-save,.np-save-btn,.ds-save-btn){border-radius:var(--tc2-r-btn);font-size:12.5px;font-weight:800;line-height:normal;box-shadow:none;transition:background .12s,border-color .12s}
body.tcv2 :is(.dh-btn-pri,.rl-btn-pri,.wt-btn-pri,.wl-btn-pri,.zn-btn-add,.sh-btn-add,.bc-btn-pri,.np-btn-add,.rm2-btn-primary,.sv-mbtn,.zn-save,.sh-save,.np-save-btn,.ds-save-btn){background:var(--tc2-brand);border:1.5px solid var(--tc2-brand);color:#fff}
body.tcv2 :is(.dh-btn-pri,.rl-btn-pri,.wt-btn-pri,.wl-btn-pri,.zn-btn-add,.sh-btn-add,.bc-btn-pri,.np-btn-add,.rm2-btn-primary,.sv-mbtn,.zn-save,.sh-save,.np-save-btn,.ds-save-btn):hover{background:var(--tc2-brand-hover);border-color:var(--tc2-brand-hover);color:#fff}
body.tcv2 :is(.dh-btn-sec,.rl-btn-sec,.wt-btn-sec,.wl-btn-sec,.bc-btn-sec,.np-btn-tog,.np-btn-edit,.rm2-btn-ghost){background:var(--tc2-neutral-btn);border:1.5px solid var(--tc2-line);color:var(--tc2-neutral-fg)}
body.tcv2 :is(.dh-btn-sec,.rl-btn-sec,.wt-btn-sec,.wl-btn-sec,.bc-btn-sec,.np-btn-tog,.np-btn-edit,.rm2-btn-ghost):hover{background:var(--tc2-neutral-btn-h);color:var(--tc2-neutral-fg)}
body.tcv2 :is(.rl-btn-red,.wt-btn-red,.wl-btn-red,.zn-btn-del,.sh-btn-del,.np-btn-del){background:var(--tc2-danger-bg);border:1.5px solid var(--tc2-danger-bd);color:var(--tc2-danger)}
body.tcv2 :is(.rl-btn-red,.wt-btn-red,.wl-btn-red,.zn-btn-del,.sh-btn-del,.np-btn-del):hover{background:var(--tc2-danger);border-color:var(--tc2-danger);color:#fff}
body.tcv2 .wt-btn-warn{background:var(--tc2-warn-bg);border:1.5px solid var(--tc2-warn-bd);color:var(--tc2-warn)}
body.tcv2 :is(.sv-mbtn,.zn-save,.sh-save,.np-save-btn){padding:10px 0}
body.tcv2 :is(.rp-sel,.rl-inp,.el-input,.bc-inp,.sv-minp,.sv-msel,.ds-input,.dh-filter input,.dh-filter select,.wl-filter input,.wl-filter select,.zn-fg input,.zn-fg select,.zn-fg textarea,.sh-fg input,.sh-fg select,.wt-form input,.wt-form select,.wt-form textarea,.np-fg input,.np-fg select,.np-fg textarea){border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-ctl);font-size:13px;font-weight:700;color:var(--tc2-ink);background-color:var(--tc2-surface);min-height:38px;box-shadow:none}
body.tcv2 :is(.dh-filter input,.dh-filter select,.wl-filter input,.wl-filter select,.rp-sel,.np-rule-row input,.np-rule-row select){border-width:1.5px;border-radius:10px;min-height:34px;font-size:12.5px;padding-top:5px;padding-bottom:5px}
body.tcv2 :is(.rp-sel,.rl-inp,.el-input,.bc-inp,.sv-minp,.sv-msel,.ds-input,.dh-filter input,.dh-filter select,.wl-filter input,.wl-filter select,.zn-fg input,.zn-fg select,.zn-fg textarea,.sh-fg input,.sh-fg select,.wt-form input,.wt-form select,.wt-form textarea,.np-fg input,.np-fg select,.np-fg textarea):focus{border-color:var(--tc2-brand);outline:3px solid var(--tc2-focus);outline-offset:1px;box-shadow:none}
body.tcv2 :is(.dh-filter label,.rl-lbl,.zn-fg label,.sh-fg label,.wt-form label,.np-fg label,.bc-lbl,.ds-lbl){font-size:12px;font-weight:800;letter-spacing:0;text-transform:none;color:var(--tc2-ink)}
body.tcv2 :is(.np-rule-editor){border:1px solid var(--tc2-line);border-radius:var(--tc2-r-ctl)}
body.tcv2 :is(.np-rule-editor-hdr){background:var(--tc2-surface-2);color:var(--tc2-mut);font-size:10.5px;font-weight:800;letter-spacing:.06em}
body.tcv2 .np-rule-row{border-top:1px solid var(--tc2-line-soft)}
body.tcv2 .np-rule-row :is(input,select){border-color:var(--tc2-line)}
body.tcv2 .np-var-hint{background:var(--tc2-mint-soft);border-radius:var(--tc2-r-sm);font-weight:700;color:var(--tc2-text-2)}
body.tcv2 .dh-filter{background:var(--tc2-surface-2);border-bottom:1px solid var(--tc2-line)}
body.tcv2 .wl-filter{background:var(--tc2-surface-2);border-bottom:1px solid var(--tc2-line)}
body.tcv2 .bc-check-item{border:1.5px solid var(--tc2-line);border-radius:var(--tc2-r-ctl);font-size:12.5px;font-weight:700}
body.tcv2 .bc-check-item:hover{border-color:var(--tc2-brand)}
body.tcv2 .bc-check-item.sel{border-color:var(--tc2-brand);background:var(--tc2-mint-soft)}
body.tcv2 :is(.dh-badge,.sv-badge,.rm-badge,.rl-badge,.zn-badge,.sh-badge,.wt-badge,.wl-badge,.el-badge,.rp-pill,.bc-pill,.rm-d-badge,.rm2-pill,.np-chip,.dh-tag,.wt-param-pill){font-size:11px;font-weight:800;line-height:1.4}
body.tcv2 :is(.sv-badge.offline,.wt-badge-off){background:#F3F4F6;color:var(--tc2-mut);border-color:var(--tc2-line)}
body.tcv2 :is(.sv-badge.live,.wt-badge-on,.rl-badge,.rm-badge.idle,.wl-ok,.el-ok,.dh-tag){background:var(--tc2-mint-soft);color:var(--tc2-ok);border-color:var(--tc2-ok-bd)}
body.tcv2 :is(.rl-badge.off,.wl-fail,.el-fail,.rm-badge.full,.dh-tag.dead){background:var(--tc2-danger-bg);color:var(--tc2-danger);border-color:var(--tc2-danger-bd)}
body.tcv2 :is(.rm-badge.busy,.dh-tag.urgent){background:var(--tc2-warn-bg);color:var(--tc2-warn);border-color:var(--tc2-warn-bd)}
body.tcv2 :is(.wl-in,.wt-param-pill,.np-chip.push){background:var(--tc2-info-bg);color:var(--tc2-info);border:1px solid var(--tc2-info-bd)}
body.tcv2 .wl-out{background:#F3F4F6;color:var(--tc2-text-2)}
body.tcv2 .rl-role-superadmin{background:var(--tc2-ink);color:#fff}
body.tcv2 .rl-role-ops_manager{background:var(--tc2-brand);color:#fff}
body.tcv2 .rl-role-supervisor{background:var(--tc2-warn-bg);color:var(--tc2-warn);box-shadow:inset 0 0 0 1.5px var(--tc2-warn-bd)}
body.tcv2 .rl-role-dispatcher{background:var(--tc2-chip-grey);color:var(--tc2-neutral-fg)}
body.tcv2 :is(.rl-role,.rl-role-superadmin,.rl-role-ops_manager,.rl-role-supervisor,.rl-role-dispatcher){font-size:11px;font-weight:800;border-radius:var(--tc2-r-pill)}
body.tcv2 :is(.rp-tabs,.np-tab-bar){border-bottom:1px solid var(--tc2-line);background:var(--tc2-surface)}
body.tcv2 :is(.rp-tab,.np-tab){font-size:13px;font-weight:800;color:var(--tc2-mut);border-bottom:3px solid transparent;margin-bottom:-1px}
body.tcv2 :is(.rp-tab,.np-tab):hover{color:var(--tc2-ink)}
body.tcv2 :is(.rp-tab.active,.np-tab.active){color:var(--tc2-brand);border-bottom-color:var(--tc2-brand)}
body.tcv2 :is(.zn-note,.sh-note){background:var(--tc2-warn-bg);border:1.5px solid var(--tc2-warn-bd);border-radius:var(--tc2-r-ctl);color:var(--tc2-warn);font-size:12.5px;font-weight:700;line-height:1.45}
body.tcv2 .wt-info{background:var(--tc2-info-bg);border:1.5px solid var(--tc2-info-bd);border-radius:var(--tc2-r-ctl);color:var(--tc2-info);font-size:12.5px;font-weight:700}
body.tcv2 .dh-mismatch{border:1.5px solid var(--tc2-warn-bd);border-radius:var(--tc2-r-ctl);font-weight:700}
body.tcv2 .dh-guidance-item{border-radius:var(--tc2-r-ctl);font-size:12.5px;font-weight:700}
body.tcv2 .dh-guidance-item.urgent{background:var(--tc2-danger-bg);color:var(--tc2-danger)}
body.tcv2 .dh-guidance-item.warning{background:var(--tc2-warn-bg);color:var(--tc2-warn)}
body.tcv2 .dh-guidance-item.ok{background:var(--tc2-mint-soft);color:var(--tc2-ok)}
body.tcv2 .dh-guidance-item.info{background:var(--tc2-surface-2);color:var(--tc2-text-2)}
body.tcv2 :is(.rp-empty,.dh-colleague-role,.np-preset-msg,.np-rule-item){color:var(--tc2-mut)}
body.tcv2 :is(.sv-overlay,.rm-modal-overlay,.zn-overlay,.sh-overlay,.np-modal-overlay){background:var(--tc2-dim)}
body.tcv2 :is(.sv-mbox,.rm-modal-box,.zn-mbox,.sh-mbox,.np-modal){border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-dialog);box-shadow:var(--tc2-shadow-pop)}
body.tcv2 :is(.sv-mhdr,.rm-modal-hdr,.zn-mhdr,.sh-mhdr,.np-modal-hdr){background:var(--tc2-surface);color:var(--tc2-ink);border-bottom:2px solid var(--tc2-outline);padding:14px 20px;border-radius:0}
body.tcv2 :is(.sv-mhdr,.zn-mhdr,.sh-mhdr,.np-modal-hdr)>span{font-size:16px!important;font-weight:800!important;color:var(--tc2-ink)}
body.tcv2 :is(.sv-mhdr,.rm-modal-hdr,.zn-mhdr,.sh-mhdr,.np-modal-hdr) button{background:var(--tc2-surface-2)!important;color:var(--tc2-mut)!important;border:1px solid var(--tc2-line)!important}
body.tcv2 :is(.sv-mhdr,.rm-modal-hdr,.zn-mhdr,.sh-mhdr,.np-modal-hdr) button:hover{background:#F3F4F6!important;color:var(--tc2-ink)!important}
body.tcv2 :is(.sv-mhdr,.rm-modal-hdr,.zn-mhdr,.sh-mhdr,.np-modal-hdr) :is(div,span)[style*="opacity"]{opacity:1!important;color:var(--tc2-mut)}
body.tcv2 :is(.sv-mbody,.zn-mbody,.sh-mbody,.np-modal-body,.rm-modal-body){padding:16px 20px}
body.tcv2 :is(.dh-pager,.wl-pager) button{min-width:30px;height:30px;border:1.5px solid var(--tc2-line);border-radius:var(--tc2-r-sm);font-size:12px;font-weight:800;color:var(--tc2-text-2);background:var(--tc2-surface)}
body.tcv2 :is(.dh-pager,.wl-pager) button.active{background:var(--tc2-brand);border-color:var(--tc2-brand);color:#fff}
body.tcv2 :is(.dh-pager,.wl-pager) button:hover:not(:disabled):not(.active){background:var(--tc2-mint-soft);border-color:var(--tc2-brand);color:var(--tc2-brand)}
body.tcv2 :is(.wl-json,.el-conv){border-radius:var(--tc2-r-sm)}

body.tcv2 .dh-hero{background:var(--tc2-header-grad);border-radius:var(--tc2-r-card)}
body.tcv2 .dh-kpi-icon{opacity:.08}
body.tcv2 .dh-golive{border-radius:var(--tc2-r-btn);font-size:12.5px;font-weight:800;box-shadow:none}
body.tcv2 :is(.sv,.dh,.dh-wrap,.rp,.rm-wrap,.rl,.zn,.sh-wrap,.wt,.wl,.el-wrap,.np-wrap,.bc,.ds-wrap,.dc-wrap,.rd-wrap,.rh-wrap,.rm2-wrap) [style*="#94a3b8"]{color:var(--tc2-mut)!important}

/* ── C. Ride-hailing admin pages (. */
body.tcv2 :is(.rr-hero,.rh-hero){background:var(--tc2-header-grad);border-radius:var(--tc2-r-card);box-shadow:none}
body.tcv2 .rd-wrap .hero{background:var(--tc2-header-grad);border-radius:var(--tc2-r-card)}
body.tcv2 :is(.rr-hero,.rh-hero,.rd-wrap .hero) h1{font-size:var(--tc2-fs-h);font-weight:800;line-height:1.2}
body.tcv2 :is(.rr-hero p,.rh-hero p,.rd-wrap .hero p){color:rgba(255,255,255,.88);font-weight:600}
body.tcv2 :is(.rr-hero-icon,.rh-hero-icon){background:rgba(255,255,255,.18);border-radius:var(--tc2-r-ctl)}
body.tcv2 .rd-wrap .hero-actions a{background:rgba(255,255,255,.16);border-radius:var(--tc2-r-btn);font-weight:800;font-size:12.5px}
body.tcv2 .rd-wrap .hero-actions a:hover{background:rgba(255,255,255,.28)}
body.tcv2 :is(.rr-filters,.rr-card,.rr-empty,.rh-card,.rh-table-wrap,.rd-stat,.rd-wrap .empty){border:1px solid var(--tc2-line);border-radius:var(--tc2-r-card);box-shadow:none}
body.tcv2 .rr-card{border-radius:14px}
body.tcv2 .rd-stat{border-radius:14px}
body.tcv2 :is(.rd-stat .l,.rr-fare span,.rr-filters label,.filter-group label,.rh-add-field label,.rd-section h4,.rd-field label){font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--tc2-mut)}
body.tcv2 .rd-stat .n{font-size:24px;font-weight:800;letter-spacing:-.3px}
body.tcv2 :is(.rr-filters select,.rr-filters input,.rh-num,.rh-cell-num,.rh-add-field select,.rh-add-field input,.rd-wrap input,.rd-wrap select,.rd-wrap textarea){border:1.5px solid var(--tc2-outline);border-radius:10px;font-size:12.5px;font-weight:700;color:var(--tc2-ink);min-height:34px}
body.tcv2 :is(.rr-filters select,.rr-filters input,.rh-num,.rh-cell-num,.rh-add-field select,.rh-add-field input,.rd-wrap input,.rd-wrap select,.rd-wrap textarea):focus{border-color:var(--tc2-brand);outline:3px solid var(--tc2-focus);outline-offset:1px}
body.tcv2 :is(.rr-filters .rr-filter-btn,.btn-save,.rh-row-save){background:var(--tc2-brand);border:1.5px solid var(--tc2-brand);color:#fff;border-radius:var(--tc2-r-btn);font-size:12.5px;font-weight:800}
body.tcv2 :is(.rr-filters .rr-filter-btn,.btn-save,.rh-row-save):hover{background:var(--tc2-brand-hover);border-color:var(--tc2-brand-hover);color:#fff}
body.tcv2 .rr-filters .rr-filter-clear{border:1.5px solid var(--tc2-line);background:var(--tc2-neutral-btn);border-radius:var(--tc2-r-btn);font-weight:800;color:var(--tc2-neutral-fg)}
body.tcv2 :is(.rr-view-btn,.rd-wrap .btn-view,.rd-wrap .btn-sm){background:var(--tc2-mint);color:var(--tc2-brand);border-radius:var(--tc2-r-btn);font-size:12px;font-weight:800}
body.tcv2 :is(.rr-view-btn,.rd-wrap .btn-view):hover{background:var(--tc2-brand);color:#fff}
body.tcv2 .rr-info span,body.tcv2 .rr-empty,body.tcv2 .rd-wrap .empty,body.tcv2 .rh-info span,body.tcv2 .rh-section-sub,body.tcv2 .rh-empty{color:var(--tc2-mut);font-weight:600}
body.tcv2 :is(.rr-badge,.rr-pill,.rd-wrap .pill,.rd-badge,.rd-pill){font-size:11px;font-weight:800;border-radius:var(--tc2-r-pill)}
body.tcv2 .rr-badge.open{background:var(--tc2-info-bg);color:var(--tc2-info)}
body.tcv2 :is(.rr-badge.accepted,.rr-badge.completed,.rd-wrap .pill.approved){background:var(--tc2-ok-bg);color:var(--tc2-ok)}
body.tcv2 :is(.rr-badge.expired,.rd-wrap .pill.pending){background:var(--tc2-warn-bg);color:var(--tc2-warn)}
body.tcv2 :is(.rr-badge.cancelled,.rd-wrap .pill.incomplete,.rd-wrap .pill.none,.rd-wrap .pill.delivery){background:#F3F4F6;color:var(--tc2-text-2)}
body.tcv2 .rd-wrap .pill.rejected{background:var(--tc2-danger-bg);color:var(--tc2-danger)}
body.tcv2 .rd-wrap .pill.ride_hail{background:var(--tc2-info-bg);color:var(--tc2-info)}
body.tcv2 .rr-pill.bids{background:var(--tc2-info-bg);color:var(--tc2-info)}
body.tcv2 .rr-pill.wave{background:var(--tc2-warn-bg);color:var(--tc2-warn)}
body.tcv2 .rr-pill.rating{background:var(--tc2-warn-bg);color:var(--tc2-warn)}
body.tcv2 .rr-pagination :is(a,span){border:1.5px solid var(--tc2-line);border-radius:var(--tc2-r-sm);font-size:12px;font-weight:800;min-width:30px;text-align:center}
body.tcv2 .rr-pagination .active{background:var(--tc2-brand);border-color:var(--tc2-brand);color:#fff}
body.tcv2 .rd-wrap .tab{border:1.5px solid var(--tc2-line);border-radius:var(--tc2-r-pill);padding:6px 14px;font-size:12px;font-weight:800;color:var(--tc2-text-2)}
body.tcv2 .rd-wrap .tab.on{background:var(--tc2-brand);border-color:var(--tc2-brand);color:#fff}
body.tcv2 :is(.rd-wrap .rd-table th,.rh-table th,table.rd-table th){font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--tc2-mut);text-transform:uppercase}
body.tcv2 :is(.rh-table th){background:var(--tc2-surface-2);border-bottom:1px solid var(--tc2-line)}
body.tcv2 :is(.rh-table td,.rd-wrap .rd-table td){font-size:12.5px;font-weight:600;color:var(--tc2-ink)}
body.tcv2 .rd-wrap .rd-table td{border-top:1px solid var(--tc2-line-soft);border-bottom:1px solid var(--tc2-line-soft)}
body.tcv2 .rh-info strong{font-size:14px;font-weight:800}
body.tcv2 .rh-key{background:#F3F4F6;color:var(--tc2-text-2);border-radius:6px}
body.tcv2 .rh-row{border-bottom:1px solid var(--tc2-line-soft)}
body.tcv2 .tog-sl{background:#D1D5DB}
body.tcv2 .tog-wrap input:checked+.tog-sl{background:var(--tc2-brand)}
body.tcv2 .rh-readonly-note{background:var(--tc2-warn-bg);border:1.5px solid var(--tc2-warn-bd);color:var(--tc2-warn);border-radius:var(--tc2-r-ctl);font-weight:700}
body.tcv2 #save-toast{background:var(--tc2-mint-soft);border:1.5px solid var(--tc2-ok-bd);color:var(--tc2-ok);border-radius:var(--tc2-r-ctl);font-weight:800}
body.tcv2 .save-bar{background:var(--tc2-surface);border-top:3px solid var(--tc2-warn-solid);box-shadow:0 -6px 24px rgba(0,0,0,.12)}
body.tcv2 .rd-detail{border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-dialog);box-shadow:var(--tc2-shadow-pop)}
body.tcv2 .rd-detail-bg{background:var(--tc2-dim)}
body.tcv2 .rd-section h4{margin-bottom:8px}
body.tcv2 :is(.rh-stat,.rd-wrap .rd-section){border-radius:14px;box-shadow:none}
body.tcv2 .rh-fail-banner{border-radius:var(--tc2-r-ctl);font-weight:700}
body.tcv2 .rh-tb{border-radius:var(--tc2-r-btn);font-weight:800}
body.tcv2 .rdv-page .dv-kpi,body.tcv2 .rdv-page .rdv-chat-tile{background:var(--tc2-surface)!important;color:var(--tc2-ink);border:1px solid var(--tc2-line);border-radius:14px;box-shadow:inset 0 4px 0 0 var(--tc2-brand)}
body.tcv2 .rdv-page .dv-kpi:hover{transform:none;box-shadow:inset 0 4px 0 0 var(--tc2-brand)}
body.tcv2 .rdv-page .dv-kpi:nth-child(2){box-shadow:inset 0 4px 0 0 var(--tc2-ok)}
body.tcv2 .rdv-page .dv-kpi:nth-child(3){box-shadow:inset 0 4px 0 0 var(--tc2-danger)}
body.tcv2 .rdv-page .dv-kpi:nth-child(4){box-shadow:inset 0 4px 0 0 var(--tc2-warn-solid)}
body.tcv2 .rdv-page .dv-kpi:nth-child(5){box-shadow:inset 0 4px 0 0 var(--tc2-info)}
body.tcv2 .rdv-page .rdv-chat-tile{box-shadow:inset 0 4px 0 0 var(--tc2-ink)}
body.tcv2 .rdv-page .dv-kpi::after{display:none}
body.tcv2 .rdv-page :is(.dv-kpi-lbl,.dv-kpi-sub,.rdv-chat-lbl){color:var(--tc2-mut);font-weight:800}
body.tcv2 .rdv-page :is(.dv-kpi-val,.rdv-chat-val){color:var(--tc2-ink);font-weight:800;font-size:24px}
body.tcv2 .rdv-page .dv-kpi-icon,body.tcv2 .rdv-page .rdv-chat-icon{color:var(--tc2-brand);opacity:.18}
body.tcv2 .rdv-page .dv-card{border:1px solid var(--tc2-line);border-radius:var(--tc2-r-card);box-shadow:none}
body.tcv2 .rdv-page .dv-card-title{font-size:14px;font-weight:800}
body.tcv2 .rdv-page :is(.dv-card-sub,.dv-sec){color:var(--tc2-mut);font-weight:800}
body.tcv2 .rdv-page .dv-hero{background:var(--tc2-header-grad);border-radius:var(--tc2-r-card)}
body.tcv2 .sv-pill-l{font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--tc2-mut)}
/* ── D. Dispatch board (. */
body.tcv2 .dc-top{border-bottom:1px solid var(--tc2-line)}
body.tcv2 .dc-pill{border-radius:var(--tc2-r-pill);font-weight:800}
body.tcv2 .dc-pill.warn{background:var(--tc2-warn-bg);border-color:var(--tc2-warn-bd);color:var(--tc2-warn)}
body.tcv2 .dc-pill.crit{background:var(--tc2-danger-bg);border-color:var(--tc2-danger-bd);color:var(--tc2-danger)}
body.tcv2 :is(.dc-tb,.dc-btn,.dc-st-btn){border-radius:var(--tc2-r-btn);font-weight:800}
body.tcv2 .dc-tb.live-btn,body.tcv2 .dc-btn.green{background:var(--tc2-brand);border-color:var(--tc2-brand)}
body.tcv2 .dc-tb.off-btn,body.tcv2 .dc-btn.red{background:var(--tc2-danger-bg);border-color:var(--tc2-danger-bd);color:var(--tc2-danger)}
body.tcv2 .dc-btn.blue{background:var(--tc2-info-bg);border-color:var(--tc2-info-bd);color:var(--tc2-info)}
body.tcv2 .dc-btn.amber{background:var(--tc2-warn-bg);border-color:var(--tc2-warn-bd);color:var(--tc2-warn)}
body.tcv2 .dc-btn.grey{background:var(--tc2-neutral-btn);border-color:var(--tc2-line);color:var(--tc2-neutral-fg)}
body.tcv2 .dc-btn.teal{background:var(--tc2-mint-soft);border-color:var(--tc2-ok-bd);color:var(--tc2-brand)}
body.tcv2 .dc-ftab{border-radius:var(--tc2-r-pill);font-weight:800;font-size:11.5px}
body.tcv2 .dc-ftab.active{background:var(--tc2-brand)}
body.tcv2 :is(.dc-stat-item .si-lbl,.dc-card-ttl){color:var(--tc2-mut);font-weight:800}
body.tcv2 .dc-card{border:1px solid var(--tc2-line);border-radius:var(--tc2-r-card);box-shadow:none}
body.tcv2 .dc-card-hdr{border-bottom:1px solid var(--tc2-line)}
body.tcv2 .dc-li-badge{border-radius:var(--tc2-r-sm);font-weight:800}
body.tcv2 :is(.dc-note-inp,.dc-custom-inp,.dc-list-search){border:1.5px solid var(--tc2-outline);border-radius:10px;font-weight:700;color:var(--tc2-ink)}
body.tcv2 :is(.dc-note-inp,.dc-custom-inp):focus{border-color:var(--tc2-brand);outline:3px solid var(--tc2-focus);outline-offset:1px}
body.tcv2 .dc-modal-box{border:2px solid var(--tc2-outline);border-radius:var(--tc2-r-dialog) var(--tc2-r-dialog) 0 0;box-shadow:var(--tc2-shadow-pop)}
body.tcv2 .dc-modal-hdr{border-bottom:2px solid var(--tc2-outline);padding:14px 20px}
body.tcv2 .dc-modal-ttl{font-size:16px;font-weight:800}
body.tcv2 .dc-modal-overlay{background:var(--tc2-dim)}
body.tcv2 :is(.rd-wrap,.rr-wrap,.rh-wrap){--text3:var(--tc2-mut)}
body.tcv2 :is(.ds-desc,.rm2-info,.rm2-stat-lbl,.rh-list-empty,.rh-li-addr,.dc-status-bar-lbl,.dc-modal-sect,.dc-itbl th,.dc-ivar,.dc-crole,.dc-plbl,.dc-log-t,.dc-ws-empty,.dc-ws-empty p,.rh-ws-empty,.rh-ws-empty p){color:var(--tc2-mut)}
body.tcv2 .content-wrapper small>a.text-muted,body.tcv2 .content-wrapper small.text-muted{color:var(--tc2-text-2)!important}
body.tcv2 .dc-li-alert.amber{background:var(--tc2-warn);color:#fff}
/* E. phones and tablets: no page-level horizontal scroll; wide tables / grids scroll or stack inside their own card */
@media (max-width:991.98px){
body.tcv2 .sv [style*="grid-template-columns:1fr 320px"],body.tcv2 .bc [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:minmax(0,1fr)!important}
body.tcv2 .dh-card{overflow-x:auto}
body.tcv2 .dh-row-main,body.tcv2 .dh-card [style*="grid-template-columns:50px 90px"]{min-width:760px}
}
@media (max-width:1279.98px){body.tcv2 .rd-wrap .rd-table{display:block;overflow-x:auto;max-width:100%}}
@media (max-width:600px){
body.tcv2 .sv [style*="display:flex;gap:8px;align-items:center"]{flex-wrap:wrap}
body.tcv2 .sv-pill{flex:1 1 calc(50% - 10px);min-width:0;padding:10px 12px;gap:10px}
body.tcv2 .sv-pill-icon{width:34px;height:34px}
body.tcv2 :is(.dh-stats,.wl-stats){grid-template-columns:repeat(2,minmax(0,1fr))}
}
}
