/* Layout: autonomous field operations centre. Masthead, altitude rail, status strip, then the world view with an agent and instrument rail beside it. Single dark theme by choice. */
:root{
  color-scheme:dark;
  --bg:#070F1C; --panel:#0E1B30; --panel2:#13243C; --line:#203656; --ink:#E6EDF6; --muted:#8FA3BD;
  --navy:#142A4C; --gold:#D9943A; --teal:#2BB3A6; --ok:#3CC38A; --warn:#E8B04A; --bad:#F06B5E; --violet:#9C8CF0;
  --display:"Poppins",system-ui,sans-serif; --body:"IBM Plex Sans",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{background:var(--bg);color:var(--ink)}
body{margin:0;font:14px/1.45 var(--body)}
.in{max-width:1500px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.band{background:var(--navy);border-bottom:2px solid var(--gold)}
.band .in{padding-block:10px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}
.brand{display:flex;align-items:center;gap:10px}
.brand b{font:700 15px var(--display);letter-spacing:.02em;display:block}
.brand small{color:var(--gold);font:600 11px var(--body)}
.title{flex:1;min-width:220px}
.title h1{margin:0;font:600 clamp(18px,3vw,23px)/1.15 var(--display)}
.title p{margin:2px 0 0;color:var(--muted);font-size:12.5px}
.seg{display:flex;gap:4px;flex-wrap:wrap}
.seg button{font:600 12px var(--body);color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:6px;padding:6px 9px;cursor:pointer;white-space:nowrap}
.seg button[aria-pressed="true"]{color:#0A1424;background:var(--gold);border-color:var(--gold)}
.seg button span{display:block;font:500 9.5px var(--mono);opacity:.8}
.alt{background:#0B172A;border-bottom:1px solid var(--line)}
.alt .in{display:flex;gap:6px;overflow-x:auto;padding-block:8px;align-items:center}
.alt .lab{font:600 10.5px var(--mono);color:var(--muted);letter-spacing:.08em;margin-right:4px;white-space:nowrap}
.alt button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:6px 10px;cursor:pointer;white-space:nowrap;font:600 12.5px var(--body)}
.alt button small{font:500 10px var(--mono);color:var(--muted)}
.alt button[aria-pressed="true"]{border-color:var(--teal);box-shadow:inset 0 -2px 0 var(--teal)}
.status .in{display:flex;flex-wrap:wrap;gap:6px 16px;padding-block:8px;font:500 12px var(--mono);color:var(--muted);align-items:center;border-bottom:1px solid var(--line)}
.status b{color:var(--ink);font-weight:500}
.pill{padding:2px 8px;border-radius:999px;font:600 11px var(--mono)}
.p-ok{background:rgba(60,195,138,.16);color:var(--ok)} .p-wa{background:rgba(232,176,74,.18);color:var(--warn)} .p-bad{background:rgba(240,107,94,.2);color:var(--bad)} .p-pl{background:rgba(43,179,166,.16);color:var(--teal)} .p-vi{background:rgba(156,140,240,.18);color:var(--violet)}
.main{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:14px;padding-block:14px}
@media (max-width:1080px){.main{grid-template-columns:minmax(0,1fr)}.main>*{min-width:0}}
.view{position:relative;background:#1f4268;border:1px solid var(--line);border-radius:10px;overflow:hidden;height:min(76vh,800px);min-height:440px}
@media (max-width:1080px){.view{height:62vh;min-height:380px}}
canvas{display:block;width:100%;height:100%;touch-action:none}
.hud{position:absolute;left:10px;top:10px;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 20px);pointer-events:none;z-index:2}
.hud div{background:rgba(7,15,28,.84);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font:500 11px var(--mono);color:var(--muted)}
.hud b{color:var(--ink);font-weight:500}
.hud .hot{border-color:var(--bad);color:var(--bad)}
.hud .ai{border-color:var(--violet);color:var(--violet)}
.tools{position:absolute;right:10px;top:10px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:55%;z-index:2}
.tools button{background:rgba(7,15,28,.88);border:1px solid var(--line);color:var(--ink);font:500 11.5px var(--body);padding:5px 8px;border-radius:6px;cursor:pointer}
.tools button[aria-pressed="true"]{border-color:var(--teal);color:var(--teal)}
@media (max-width:640px){.view.rovmode .tools{display:none}.tools{top:auto;bottom:10px;right:10px;max-width:calc(100% - 20px)}.hud{max-width:100%}}
.lbl{position:absolute;pointer-events:none;background:rgba(7,15,28,.84);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font:500 10px var(--mono);color:var(--ink);white-space:nowrap;z-index:1}
.tip{position:absolute;pointer-events:none;background:var(--panel2);border:1px solid var(--teal);border-radius:6px;padding:6px 8px;font:500 12px var(--body);white-space:nowrap;z-index:4}
.pip{position:absolute;right:10px;bottom:10px;border:1.5px solid var(--gold);border-radius:6px;pointer-events:none;z-index:2}
.pip span{position:absolute;left:0;top:-20px;font:600 10.5px var(--mono);color:var(--gold);background:rgba(7,15,28,.9);padding:1px 6px;border-radius:4px;white-space:nowrap}
.pip i{position:absolute;right:6px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--bad);animation:rec 1.2s infinite}
@keyframes rec{50%{opacity:.25}}
.wall{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);pointer-events:none;z-index:2}
.wall div{border:1px solid rgba(217,148,58,.55);position:relative}
.wall span{position:absolute;left:4px;top:4px;font:600 10px var(--mono);color:var(--ink);background:rgba(7,15,28,.85);padding:1px 5px;border-radius:3px;max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wall em{position:absolute;right:4px;bottom:4px;font:500 9.5px var(--mono);font-style:normal;color:var(--teal);background:rgba(7,15,28,.85);padding:1px 5px;border-radius:3px}
.wallnav{position:absolute;left:50%;transform:translateX(-50%);bottom:10px;display:flex;gap:6px;z-index:3}
.joy{position:absolute;left:10px;bottom:10px;display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,40px);gap:4px;z-index:3}
.joy button,.joy2 button{background:rgba(7,15,28,.88);border:1px solid var(--teal);color:var(--teal);border-radius:8px;font:600 13px var(--mono);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}
.joy2{position:absolute;left:162px;bottom:10px;display:grid;grid-template-rows:repeat(2,40px);gap:4px;z-index:3}
.joy2 button{width:52px}
.scan{position:absolute;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,rgba(43,179,166,.035) 0 2px,transparent 2px 4px)}
.rail{display:flex;flex-direction:column;gap:12px;min-width:0}
.tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line)}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:600 12.5px var(--body);padding:8px 9px;cursor:pointer;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--gold)}
.tabs button .n{display:inline-block;min-width:16px;margin-left:4px;padding:0 4px;border-radius:8px;background:var(--violet);color:#100A2A;font:600 10px/16px var(--mono);text-align:center}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-width:0}
.card h2{margin:0 0 8px;font:600 12.5px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);display:flex;justify-content:space-between;align-items:center;gap:8px}
.card h2 small{font:500 10px var(--mono);color:var(--muted);letter-spacing:.03em;text-transform:none}
.card h3{margin:12px 0 6px;font:600 13px var(--display)}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.kpi{background:var(--panel2);border-radius:8px;padding:7px 10px;border-left:3px solid var(--ok);min-width:0}
.kpi.warn{border-left-color:var(--warn)} .kpi.bad{border-left-color:var(--bad)} .kpi.idle{border-left-color:var(--line)}
.kpi small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi b{font:600 17px var(--mono);font-variant-numeric:tabular-nums}
.kpi em{font-style:normal;color:var(--muted);font:500 10.5px var(--mono);margin-left:3px}
.list{display:flex;flex-direction:column;gap:5px}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12.5px;padding:6px 8px;border-radius:6px;background:var(--panel2)}
.row small{display:block;color:var(--muted);font-size:11px}
.log{display:flex;flex-direction:column;gap:5px;max-height:360px;overflow:auto}
.ent{font-size:12.5px;padding:7px 9px;border-radius:6px;background:var(--panel2);border-left:3px solid var(--violet)}
.ent.auto{border-left-color:var(--teal)} .ent.prop{border-left-color:var(--gold)} .ent.alert{border-left-color:var(--bad)} .ent.hb{border-left-color:var(--line);color:var(--muted)}
.ent header{display:flex;justify-content:space-between;gap:8px;font:600 10.5px var(--mono);color:var(--muted);margin-bottom:2px}
.ent header b{color:var(--violet)}
.ent .chain{font:500 11px var(--mono);color:var(--muted);margin-top:3px}
.appr{display:flex;flex-direction:column;gap:6px}
.ap{padding:8px 10px;border-radius:8px;background:rgba(217,148,58,.08);border:1px solid rgba(217,148,58,.4);font-size:12.5px}
.ctrl label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:8px}
.ctrl label b{color:var(--ink);font:500 12px var(--mono)}
input[type=range]{width:100%;accent-color:var(--gold)}
.btnrow{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.btn{background:var(--panel2);border:1px solid var(--line);color:var(--ink);font:500 12px var(--body);padding:6px 10px;border-radius:6px;cursor:pointer}
.btn.red{border-color:var(--bad);color:var(--bad)} .btn.gold{border-color:var(--gold);color:var(--gold)} .btn.teal{border-color:var(--teal);color:var(--teal)}
.note{font-size:12px;color:var(--muted);border-left:3px solid var(--gold);padding:4px 10px;margin:8px 0 0}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:12px;min-width:460px}
th{text-align:left;color:var(--muted);font:500 10px var(--mono);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:5px;position:sticky;top:0;background:var(--panel)}
td{border-bottom:1px solid var(--line);padding:5px;vertical-align:top;font-variant-numeric:tabular-nums}
td.m{font-family:var(--mono);font-size:11px}
.scroll{max-height:380px;overflow:auto}
.chip{font:600 10px var(--mono);padding:1px 6px;border-radius:3px;white-space:nowrap}
.c-ok{background:rgba(60,195,138,.16);color:var(--ok)} .c-wa{background:rgba(232,176,74,.16);color:var(--warn)} .c-bad{background:rgba(240,107,94,.18);color:var(--bad)} .c-pl{background:rgba(43,179,166,.16);color:var(--teal)} .c-vi{background:rgba(156,140,240,.18);color:var(--violet)}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.filters input,.filters select{flex:1;min-width:120px;background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:500 12px var(--body)}
.camgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.camgrid button{text-align:left;background:var(--panel2);border:1px solid transparent;color:var(--ink);font:500 12px var(--body);padding:6px 8px;border-radius:6px;cursor:pointer;min-width:0}
.camgrid button[aria-current="true"]{border-color:var(--gold)}
.camgrid button small{display:block;font:500 10px var(--mono);color:var(--muted)}
.below{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;padding-block:0 30px}
.wide{grid-column:1/-1}
.pfd{display:block;width:100%;min-width:900px;height:auto}
.pfd .blk{cursor:pointer}
.pfd .blk:focus-visible rect{stroke:var(--gold);stroke-width:2.5}
.ubar{height:8px;background:var(--panel2);border-radius:4px;overflow:hidden}
.ubar i{display:block;height:100%;background:var(--ok);transition:width .3s}
.row.cur{outline:1px solid var(--gold)}
.gasplan{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#0B172A}
.detail dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:0;font-size:12.5px}
.detail dt{color:var(--muted)} .detail dd{margin:0;font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}
.arch{display:flex;flex-direction:column;gap:4px}
.arch div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;padding:6px 8px;background:var(--panel2);border-radius:6px;font-size:12px}
.arch div b{font:600 10.5px var(--mono);color:var(--teal);letter-spacing:.04em}
footer .in{padding-block:0 30px;color:var(--muted);font-size:12px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
footer b{color:var(--teal)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.pip i{animation:none}}
/* v14: field workspaces, model tree, inspection, timeline, registers, command centre */
.wsel{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.wsel .lab{font:600 10px var(--mono);color:var(--muted);letter-spacing:.08em;margin-right:2px}
.wsel button{font:600 11.5px var(--body);color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:6px;padding:5px 8px;cursor:pointer;white-space:nowrap}
.wsel button[aria-pressed="true"]{color:#0A1424;background:var(--teal);border-color:var(--teal)}
.wsel button span{display:block;font:500 9px var(--mono);opacity:.85}
.main{grid-template-columns:250px minmax(0,1fr) 410px}
@media (max-width:1380px){.main{grid-template-columns:minmax(0,1fr) 390px}.tree{grid-column:1/-1;max-height:none}.tree .tbody{max-height:230px}}
@media (max-width:1080px){.main{grid-template-columns:minmax(0,1fr)}.main>*{min-width:0}}
.tree{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;min-width:0;display:flex;flex-direction:column;gap:8px;max-height:calc(min(76vh,800px) + 200px)}
.tree h2{margin:0;font:600 12px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);display:flex;justify-content:space-between;gap:6px;align-items:center}
.tree h2 button{font:500 10.5px var(--body);background:none;border:1px solid var(--line);color:var(--muted);border-radius:5px;padding:2px 6px;cursor:pointer}
.tree input{width:100%;background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:500 12px var(--body)}
.tbody{overflow:auto;flex:1;min-height:120px}
.tbody ul{list-style:none;margin:0;padding:0 0 0 11px}
.tbody>ul{padding-left:0}
.tbody li{margin:0}
.tn{display:flex;align-items:center;gap:4px;width:100%;text-align:left;background:none;border:0;color:var(--ink);font:500 12px var(--body);padding:3px 4px;border-radius:4px;cursor:pointer;min-width:0}
.tn:hover{background:var(--panel2)}
.tn[aria-current="true"]{background:rgba(217,148,58,.16);outline:1px solid rgba(217,148,58,.5)}
.tn .tw{width:12px;flex:0 0 12px;color:var(--muted);font:600 10px var(--mono)}
.tn .tl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.tn .tg{font:500 9.5px var(--mono);color:var(--muted);white-space:nowrap}
.tn.grp .tl{font-weight:600;color:var(--gold)}
.bdg{display:inline-block;font:600 9.5px var(--mono);letter-spacing:.03em;padding:1px 5px;border-radius:3px;border:1px solid currentColor;white-space:nowrap;vertical-align:1px}
.b-hist{color:#7fd3ff}.b-int{color:#c7b8ff}.b-ass{color:#e8c37a}.b-sim{color:#a9b6c8}.b-mea{color:#7fe0b4}.b-rep{color:#9fe3da}.b-con{color:#f2a38f}.b-ill{color:#e8c37a}.b-none{color:#8FA3BD}
.vbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.vbar .lab{font:600 10px var(--mono);color:var(--muted);letter-spacing:.08em}
.vbar button{background:var(--panel);border:1px solid var(--line);color:var(--ink);font:500 11.5px var(--body);padding:5px 8px;border-radius:6px;cursor:pointer}
.vbar button[aria-pressed="true"]{border-color:var(--teal);color:var(--teal)}
.vbar i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}
.tline{margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.tline h3{margin:0 0 6px;font:600 11.5px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
.lane{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;align-items:center;margin:3px 0}
.lane b{font:600 10px var(--mono);color:var(--muted);letter-spacing:.05em}
.lane .tr{position:relative;height:30px;background:var(--panel2);border-radius:5px;overflow:hidden}
.lane .tr button{position:absolute;top:4px;transform:translateX(-50%);background:var(--bg);border:1px solid var(--teal);color:var(--ink);font:500 10px var(--mono);border-radius:4px;padding:2px 5px;cursor:pointer;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}
.lane .tr button.cf{border-color:var(--warn)}
.lane .tr button.sv{border-color:var(--bad)}
.lane .tr .now{position:absolute;top:0;bottom:0;width:2px;background:var(--gold)}
.lane .tr em{position:absolute;left:8px;top:7px;font:500 11px var(--body);font-style:normal;color:var(--muted)}
.ll{position:absolute;pointer-events:none;background:rgba(7,15,28,.92);border:1px solid var(--gold);border-radius:4px;padding:2px 6px;font:600 10.5px var(--mono);color:var(--ink);white-space:nowrap;z-index:2;line-height:1.25}
.ll small{display:block;font:500 9.5px var(--mono);color:var(--gold)}
#llsvg{position:absolute;inset:0;pointer-events:none;z-index:2;width:100%;height:100%}
.ovl{position:absolute;pointer-events:none;z-index:3}
.ovl div{position:absolute;border:1.5px solid #9C8CF0;border-radius:3px}
.ovl span{position:absolute;left:-1px;top:-15px;background:rgba(16,10,42,.9);color:#d9d2ff;font:600 9.5px var(--mono);padding:0 4px;border-radius:3px;white-space:nowrap}
.ovl p{position:absolute;left:4px;bottom:4px;margin:0;background:rgba(16,10,42,.9);color:#d9d2ff;font:600 9.5px var(--mono);padding:1px 5px;border-radius:3px}
.camstat{position:absolute;left:0;bottom:-18px;font:500 9.5px var(--mono);color:var(--muted);background:rgba(7,15,28,.9);padding:1px 6px;border-radius:4px;white-space:nowrap}
.cmpgrid{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;pointer-events:none;z-index:2}
.cmpgrid div{border:1px solid rgba(217,148,58,.6);position:relative}
.cmpgrid span{position:absolute;left:4px;top:4px;font:600 10px var(--mono);background:rgba(7,15,28,.88);padding:1px 5px;border-radius:3px;color:var(--ink)}
.cmpgrid em{position:absolute;right:4px;bottom:4px;font:500 9.5px var(--mono);font-style:normal;color:var(--teal);background:rgba(7,15,28,.88);padding:1px 5px;border-radius:3px}
.nosig{position:absolute;display:flex;align-items:center;justify-content:center;background:#05080e;color:var(--bad);font:600 12px var(--mono);z-index:3;pointer-events:none}
.ptz{display:grid;grid-template-columns:repeat(3,38px);gap:4px}
.ptz button{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;font:600 12px var(--mono);padding:5px 0;cursor:pointer}
.ws{margin-top:2px}
.wtabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:10px}
.wtabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:600 12.5px var(--body);padding:8px 10px;cursor:pointer;white-space:nowrap}
.wtabs button[aria-selected="true"]{color:var(--ink);border-color:var(--teal)}
.wgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}
.wgrid>div{min-width:0}
.sub{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-width:0}
.sub h4{margin:0 0 6px;font:600 12.5px var(--display);display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.sub h4 small{font:500 10px var(--mono);color:var(--muted)}
.sub p{margin:4px 0;font-size:12.5px}
.mut{color:var(--muted)}
.mono{font-family:var(--mono)}
.kv{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);gap:3px 10px;font-size:12px;margin:0}
.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}
.tbl2{overflow-x:auto;max-height:420px;overflow-y:auto}
.tbl2 table{min-width:560px}
.tbl2 td button,.lk{background:none;border:0;color:var(--teal);font:inherit;cursor:pointer;padding:0;text-align:left;text-decoration:underline;text-underline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}
.chips button{background:var(--bg);border:1px solid var(--line);color:var(--ink);font:500 11px var(--mono);border-radius:999px;padding:2px 8px;cursor:pointer}
.chips button:hover{border-color:var(--teal)}
.frm{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px 10px;margin:6px 0}
.frm label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}
.frm input,.frm select,.sel2{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:5px 6px;font:500 12px var(--mono);min-width:0}
.res{font:500 12px var(--mono);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}
.warnbox{border:1px solid rgba(232,176,74,.5);background:rgba(232,176,74,.08);border-radius:6px;padding:6px 10px;font-size:12px;margin:6px 0}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.ac{text-align:left;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 9px;color:var(--ink);cursor:pointer;min-width:0;font:500 12px var(--body)}
.ac[aria-current="true"]{border-color:var(--gold)}
.ac b{display:block;font-weight:600;font-size:12px;line-height:1.25}
.ac small{display:block;color:var(--muted);font:500 10px var(--mono);margin-top:2px}
.ac .chip{margin-top:4px;display:inline-block}
.evrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:7px 9px;border-radius:6px;background:var(--panel2);border-left:3px solid var(--line);font-size:12.5px;cursor:pointer}
.evrow.sv-Critical{border-left-color:var(--bad)}.evrow.sv-Serious{border-left-color:#f08a5e}.evrow.sv-Warning{border-left-color:var(--warn)}.evrow.sv-Advisory{border-left-color:var(--violet)}
.evrow small{display:block;color:var(--muted);font:500 10.5px var(--mono)}
.evrow[aria-current="true"]{outline:1px solid var(--gold)}
.modal{position:fixed;inset:0;background:rgba(3,7,14,.72);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}
.modal>div{background:var(--panel);border:1px solid var(--gold);border-radius:10px;width:min(820px,100%);max-height:90vh;display:flex;flex-direction:column;gap:8px;padding:14px}
.modal h3{margin:0;font:600 14px var(--display)}
.modal textarea{width:100%;flex:1;min-height:300px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:6px;font:500 11.5px/1.45 var(--mono);padding:8px}
.svgbox{background:#0B172A;border:1px solid var(--line);border-radius:8px;overflow:auto}
.svgbox svg{display:block}
.svgbox svg [data-k]{cursor:pointer}
.svgbox svg [data-k]:hover rect,.svgbox svg [data-k]:hover path{stroke:#D9943A}
.trk{display:flex;gap:2px}
.prov{font-size:11px;color:var(--muted);margin-top:6px}
.insp h3{margin:0 0 4px;font:600 15px var(--display)}
.insp .tagl{font:600 12px var(--mono);color:var(--gold)}
.spark{display:block;width:100%;height:46px;background:var(--bg);border:1px solid var(--line);border-radius:5px}
@media (max-width:640px){.lane{grid-template-columns:70px minmax(0,1fr)}.wgrid{grid-template-columns:1fr}}
.evrow>.chip{align-self:start}
#agents{max-height:330px;overflow:auto}
#cmdDept .btn,#cmdView .btn{padding:4px 8px;font-size:11.5px}
/* v24: model tools row, hover names, system explorer counts */
.vtb{display:flex;gap:2px;align-items:center;margin-top:8px;padding:5px 6px;background:#0B172A;border:1px solid var(--line);border-radius:12px;overflow-x:auto;scrollbar-width:thin}
.vtb button{flex:0 0 auto;background:transparent;border:0;border-radius:7px;color:var(--ink);font:500 12px var(--body);padding:6px 9px;cursor:pointer;white-space:nowrap}
.vseg{display:inline-flex;flex:0 0 auto;border:1px solid var(--gold);border-radius:8px;overflow:hidden;margin-right:6px}.vseg button{border-radius:0!important}.vseg button[aria-pressed="true"]{background:var(--gold)!important;color:#13243C!important}
.vtb button:hover{background:var(--panel2)}.vtb button[aria-pressed="true"]{background:#4b3fd0;color:#fff}.vtb button[aria-pressed="true"] kbd{color:#d9d2ff}
.vtb kbd{font:500 9.5px var(--mono);color:var(--muted);margin-left:5px}
.vtb .vsel{flex:0 1 auto;min-width:110px;max-width:240px;font:600 11px var(--mono);color:var(--gold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px 0 4px;border-right:1px solid var(--line);margin-right:2px}
.vtb .sep{flex:0 0 1px;align-self:stretch;background:var(--line);margin:2px 3px}
.vtb .vmsg{flex:0 0 auto;font:500 11px var(--body);color:var(--teal);padding-left:6px;white-space:nowrap}
.hov{position:absolute;pointer-events:none;background:rgba(7,15,28,.93);border:1px solid #6b5cff;border-radius:7px;padding:4px 9px;font:600 11.5px var(--body);color:var(--ink);white-space:nowrap;z-index:4;max-width:320px;overflow:hidden;text-overflow:ellipsis}
.hov small{display:block;color:var(--muted);font:500 10px var(--mono)}
.pban{border:1px solid rgba(217,148,58,.5);background:linear-gradient(135deg,rgba(20,42,76,.9),rgba(14,27,48,.9));border-radius:8px;padding:9px 12px;margin:0 0 10px}
.pban b{display:block;font:700 12.5px var(--display);color:var(--gold);letter-spacing:.04em}.pban span{font-size:12.5px;color:var(--ink)}
.rpin{position:absolute;transform:translate(-50%,-115%);pointer-events:none;background:rgba(7,15,28,.92);border:1.5px solid var(--ok);border-radius:6px;padding:2px 7px;font:600 10.5px var(--mono);color:var(--ink);white-space:nowrap;z-index:3}
.rpin small{display:block;font:500 9.5px var(--mono);color:var(--muted)}
.mhb{display:flex;gap:6px;flex-wrap:wrap}.mhb button{font:600 12px var(--body);border-radius:6px;padding:7px 11px;cursor:pointer;white-space:nowrap;min-height:36px}
#bMgmt{background:transparent;border:1px solid var(--gold);color:var(--gold)}#bKill{background:#7a1610;border:1px solid var(--bad);color:#fff}#bKill.on{animation:rec 1.2s infinite}
.ilist{margin:6px 0 0;padding-left:18px;font-size:12px;color:var(--muted)}.ilist li{margin:2px 0}
.ov{position:fixed;inset:0;z-index:60;background:var(--bg);overflow:auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.ov .in{padding-block:16px}.ovh{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:2px solid var(--gold);padding-bottom:10px;margin-bottom:12px}
.ovh h2{margin:0;font:700 clamp(18px,3vw,24px) var(--display)}.ovh small{display:block;font:500 11px var(--mono);color:var(--muted)}
.kv2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:4px 10px;font-size:12.5px;margin:8px 0}.kv2 span{color:var(--muted)}
.rsg{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);margin:8px 0;max-height:560px;overflow-y:auto}
.rsrow{display:grid;grid-template-columns:150px minmax(980px,1fr);border-bottom:1px solid var(--line);min-height:26px}
.rslab{position:sticky;left:0;background:var(--panel);padding:5px 8px;font-size:11px;z-index:3;border-right:1px solid var(--line);white-space:nowrap}
.rstrack{position:relative}.rshead{position:sticky;top:0;z-index:4;background:var(--panel)}.rshead .rstrack{height:34px}
.rsyr{position:absolute;top:2px;font:600 11px var(--mono);color:var(--gold);text-align:center;border-left:1px solid var(--line)}.rsmo{position:absolute;top:18px;font:500 9.5px var(--mono);color:var(--muted);text-align:center}
.rsenv{padding:4px 8px;font:600 11px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);background:var(--panel2);position:sticky;left:0}
.rsbar{position:absolute;top:3px;height:20px;border:0;border-radius:3px;color:#fff;font:600 9.5px var(--mono);padding:0 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;text-align:left;z-index:2}
.rs-D{background:#2f7fd0}.rs-E{background:#e08a2c}.rs-W{background:#9fb3bf;color:#0b1420}.rs-X{background:#222a33;box-shadow:inset 0 0 0 1px #6b7a8c}.rs-F{background:#5a4f8c}.rs-C{background:#2c4f9a}
.rs-done{opacity:.5}.rs-active{box-shadow:0 0 0 2px var(--gold)}.rsbar.on{outline:2px solid #fff;outline-offset:1px}
.rsnow{position:absolute;top:0;bottom:0;width:2px;background:var(--gold);z-index:1;opacity:.8}
.rsleg{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--muted);margin-top:8px}.rsleg i{display:inline-block;width:12px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}
.rsch,.rsflow{width:100%;height:auto;display:block}td.bad{color:var(--bad);font-weight:600}
#rsDet h4{margin:0 0 8px;font:700 15px var(--display)}#rsDet h4 small{font:500 11px var(--mono);color:var(--muted);margin-left:6px}
.c-idle{background:rgba(120,140,160,.14);color:var(--muted)}
.plnav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.plnav button{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:7px 11px;font:600 12px var(--body);cursor:pointer}.plnav button[aria-pressed="true"]{background:var(--gold);color:#13243C;border-color:var(--gold)}
.plintro{color:var(--muted);font-size:13px;margin:0 0 12px;max-width:80ch}
.plbox{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--panel);border:2px solid var(--gold);border-radius:10px;padding:14px 16px;margin-bottom:12px}.plbox h3{margin:0 0 4px;font:700 16px var(--display);color:var(--gold)}.plbox p{margin:0;font-size:13px;max-width:70ch}.plbox small{color:var(--muted);font:500 11px var(--mono)}
.plgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.plcard{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}.plcard.on{border-top-color:var(--ok)}
.plcard h3{margin:2px 0 0;font:700 15px var(--display)}.plord{font:600 10px var(--mono);color:var(--gold);text-transform:uppercase;letter-spacing:.06em}.plcard p{margin:0;font-size:12.5px}.plcard h4{margin:6px 0 0;font:600 11px var(--display);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.plcard ul{margin:0;padding-left:16px;font-size:12.5px}.plsrc{color:var(--muted)}.plcard footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.plcard footer small{font:500 11px var(--mono);color:var(--muted)}
.plform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:760px}.plform label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted)}.plform label.wide{grid-column:1/-1}.plform label.chk{flex-direction:row;align-items:center;gap:8px;grid-column:1/-1;font-size:13px;color:var(--ink)}
.plform input:not([type=checkbox]),.plform select{background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 8px;font:500 13px var(--body);min-width:0}
.mts.pl4{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.plh{margin:12px 0 4px;font:600 12px var(--display);text-transform:uppercase;letter-spacing:.05em;color:var(--gold)}
.pllock{background:var(--panel);border:1px dashed var(--gold);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;max-width:620px}.pllock p{margin:0;font-size:13px;color:var(--muted)}.pllock small{font:500 11px var(--mono);color:var(--muted)}
.plchain{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px}.plnode{flex:1 0 150px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.plnode small{font:600 10px var(--mono);color:var(--gold);text-transform:uppercase}.plnode b{font:600 13px var(--mono)}.plnode em{font-style:normal;font-size:11px;color:var(--muted)}.plarr{align-self:center;color:var(--gold);font-size:18px}
.plwarn{background:rgba(232,176,74,.12);border:1px solid var(--warn);border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:12px}
tr.rsel td{background:rgba(217,148,58,.14)}tr[data-op]{cursor:pointer}.plop{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:12px}.plop h3{margin:0 0 8px;font:700 15px var(--display)}.plop h3 small{font:500 11px var(--mono);color:var(--muted);margin-left:6px}.plmods{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
@media (max-width:760px){.mts.pl4{grid-template-columns:repeat(2,minmax(0,1fr))}.plform{grid-template-columns:minmax(0,1fr)}}
.mlive{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:12px;min-width:0}.mlive h3,.mg2 h3{margin:0 0 8px;font:600 12.5px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.mlh{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:baseline}.mlh small{font:500 11px var(--mono);color:var(--muted)}.mg2{margin-top:12px;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}@media (max-width:820px){.mg2{grid-template-columns:minmax(0,1fr)}}.mg2 .mwide{grid-column:1/-1}
.mtb{max-height:460px}.mtb table{min-width:720px}.mtb td small{display:block;font-size:10.5px}.mcnt{font:500 11px var(--mono);color:var(--muted);text-transform:none;letter-spacing:0}
tr.rshort td{background:rgba(240,107,94,.10)}.row.rshort{background:rgba(240,107,94,.10);border-radius:6px}
tr.rflash td{animation:mgfl 1.2s ease-out}@keyframes mgfl{0%{background:rgba(43,179,166,.45)}100%{background:transparent}}
.mlog{max-height:340px;overflow-y:auto;margin-bottom:8px}.muse{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.muse label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted);min-width:0}
.muse select,.muse input{width:100%;min-width:0;background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 8px;font:500 12.5px var(--body)}.muse button{grid-column:1/-1}
@media (max-width:640px){.muse{grid-template-columns:1fr}}
.mstat{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.mgrid section{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-width:0}
.mgrid h3{margin:0 0 8px;font:600 12.5px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.mts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mt{background:var(--panel2);border-radius:8px;padding:8px 10px;border-left:3px solid var(--ok);min-width:0}.mt.warn{border-left-color:var(--warn)}.mt.bad{border-left-color:var(--bad)}
.mt small{display:block;color:var(--muted);font-size:11px}.mt b{font:600 clamp(17px,2.4vw,22px) var(--mono);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mt em{font:500 10.5px var(--mono);color:var(--muted);font-style:normal}
.msp{display:block;width:100%;height:70px;margin-top:8px}.msub{font-size:12px;color:var(--muted);margin:8px 0 0}
.mbars{display:flex;flex-direction:column;gap:5px;margin-top:10px;font-size:12px}.mbars div{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 42px;gap:8px;align-items:center}.mbars span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mbars i{height:6px;background:var(--panel2);border-radius:3px;overflow:hidden;display:block}.mbars u{display:block;height:100%}.mbars b{font:500 11px var(--mono);text-align:right}
.kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.kcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}.kcard.red{border-color:var(--bad)}
.kcard h3{margin:0 0 6px;font:600 15px var(--display);display:flex;justify-content:space-between;gap:8px;align-items:center}.kcard label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);margin-top:8px}
.kcard input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:9px 10px;font:500 14px var(--body)}
.kbtn{margin-top:12px;width:100%;padding:12px;border-radius:8px;font:700 14px var(--display);letter-spacing:.04em;cursor:pointer;border:2px solid var(--bad);background:#7a1610;color:#fff}
.kbtn.amb{border-color:var(--warn);background:#5a3d06}.kmsg{font-size:12px;color:var(--warn);min-height:16px;margin-top:6px}
#lockov{display:flex;align-items:center;justify-content:center}#lockov[hidden]{display:none!important}.lockbox{max-width:460px;width:100%;margin:16px;background:var(--panel);border:2px solid var(--bad);border-radius:12px;padding:20px}
.lockbox h2{margin:0 0 8px;font:700 20px var(--display);color:var(--bad)}
@media (max-width:640px){.mhb{width:100%}.mhb button{flex:1}.mts{grid-template-columns:1fr 1fr}}
.tn.grp{flex-wrap:wrap}.tn.grp .tg{flex-basis:100%;padding-left:16px;white-space:normal}
/* v21 performance pass: phone layout */
@media (max-width:640px){.tools{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.tools::-webkit-scrollbar{display:none}.tools button{flex:0 0 auto}.hud{max-height:34%;overflow:hidden}.wallnav{bottom:54px}.band .in{gap:8px 12px}.wsel button,.seg button{padding:5px 7px}.lane .tr button{max-width:96px}.alt button{padding:5px 8px}}
