/* AFOS Factory Mission Control — consolidated from the v6 design.
   The design file carried nine appended override layers (v6.1…v6.9) that each
   re-declared earlier rules; those are folded here into single declarations
   with the final values, so the rendered result matches while every property
   has exactly one source. Sim-only affordances (FORCE REPAIR / FORCE HOLD)
   have no styles because this board cannot mutate anything. */

:root{
 --bg:#03050F;--panel:rgba(10,14,34,.72);--panel2:rgba(17,22,48,.85);--line:rgba(120,140,255,.16);
 --violet:#8B5CF6;--violet2:#5B45E0;--blue:#4D8DFF;--green:#3DE8A0;--amber:#FFC46B;--red:#FF5D77;--gold:#F0C560;
 --txt:#EAF0FF;--mut:#8E9AD0;--mono:'Consolas','SF Mono',ui-monospace,monospace}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--txt);font:16px/1.45 'Segoe UI',system-ui,sans-serif;overflow-x:hidden;position:relative}

/* starfield + nebula */
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
 background:
 radial-gradient(1.5px 1.5px at 12% 22%,rgba(255,255,255,.9),transparent 60%),
 radial-gradient(1px 1px at 34% 68%,rgba(255,255,255,.7),transparent 60%),
 radial-gradient(1.8px 1.8px at 56% 12%,rgba(180,200,255,.9),transparent 60%),
 radial-gradient(1px 1px at 71% 44%,rgba(255,255,255,.6),transparent 60%),
 radial-gradient(1.4px 1.4px at 88% 76%,rgba(200,190,255,.85),transparent 60%),
 radial-gradient(1px 1px at 22% 88%,rgba(255,255,255,.55),transparent 60%),
 radial-gradient(1.2px 1.2px at 64% 92%,rgba(255,255,255,.7),transparent 60%),
 radial-gradient(1px 1px at 42% 38%,rgba(255,255,255,.5),transparent 60%),
 radial-gradient(1.6px 1.6px at 92% 18%,rgba(160,220,255,.8),transparent 60%),
 radial-gradient(1px 1px at 6% 55%,rgba(255,255,255,.6),transparent 60%);
 background-size:900px 700px;animation:drift 90s linear infinite}
@keyframes drift{from{background-position:0 0}to{background-position:-900px 350px}}
body::after{content:'';position:fixed;inset:-20%;z-index:0;pointer-events:none;opacity:.5;
 background:radial-gradient(60% 45% at 75% 8%,rgba(91,69,224,.20),transparent 65%),
 radial-gradient(45% 40% at 12% 85%,rgba(46,99,246,.16),transparent 60%),
 radial-gradient(35% 30% at 45% 50%,rgba(139,47,240,.08),transparent 60%);
 animation:neb 26s ease-in-out infinite alternate}
@keyframes neb{from{transform:scale(1) rotate(0)}to{transform:scale(1.12) rotate(2.5deg)}}
@keyframes pul{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes alarm{0%,100%{box-shadow:0 0 0 rgba(255,93,119,0)}50%{box-shadow:0 0 30px rgba(255,93,119,.35)}}
@keyframes spin2{to{transform:rotate(360deg)}}

.wrap{max-width:1720px;margin:0 auto;padding:20px 30px 52px;position:relative;z-index:1}

/* header */
.top{display:flex;align-items:center;gap:16px;padding:10px 0 14px;border-bottom:1px solid var(--line)}
.brand{font-weight:700;letter-spacing:.12em;font-size:19px;text-shadow:0 0 24px rgba(120,140,255,.5)}
.brand small{display:block;color:var(--mut);letter-spacing:.3em;font-size:11px;font-weight:600}
.clock{margin-left:auto;font:700 22px var(--mono);color:#B8C6FF;letter-spacing:.08em;text-shadow:0 0 18px rgba(120,140,255,.8)}
.badge{font:600 12px var(--mono);letter-spacing:.08em;padding:6px 14px;border-radius:22px;border:1px solid;backdrop-filter:blur(4px);white-space:nowrap}
.b-int{color:var(--amber);border-color:rgba(255,196,107,.4);background:rgba(255,196,107,.07)}
.b-live{color:var(--green);border-color:rgba(61,232,160,.4);background:rgba(61,232,160,.07)}
.b-live i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:6px;animation:pul 1.2s infinite;box-shadow:0 0 10px var(--green)}
.b-stale{color:var(--red);border-color:rgba(255,93,119,.5);background:rgba(255,93,119,.08)}
.b-stale i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);margin-right:6px;animation:pul .7s infinite}
.ctrl{display:flex;gap:7px;margin-left:6px}
.cbtn{cursor:pointer;font:700 10.5px var(--mono);letter-spacing:.05em;color:#cdd8ff;background:rgba(120,140,255,.08);border:1px solid rgba(140,160,255,.35);border-radius:10px;padding:6px 11px;transition:all .3s}
.cbtn:hover{border-color:#8FB4FF;box-shadow:0 0 12px rgba(143,180,255,.35)}
.cbtn.active{color:#CFE0FF;border-color:#8FB4FF;background:rgba(120,140,255,.14);box-shadow:0 0 14px rgba(143,180,255,.4)}

.doct{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:11px 0;padding:8px 14px;
 border:1px solid rgba(61,232,160,.25);background:rgba(61,232,160,.05);border-radius:16px;
 font:600 11.5px var(--mono);color:#9fe8c9;letter-spacing:.04em;backdrop-filter:blur(4px)}
.regchip{font:700 10px var(--mono);color:var(--green);background:rgba(61,232,160,.08);border:1px solid rgba(61,232,160,.3);border-radius:9px;padding:3px 10px;letter-spacing:.05em;white-space:nowrap}
.regchip.warn{color:var(--amber);background:rgba(255,196,107,.08);border-color:rgba(255,196,107,.4)}

/* nav */
.nav{display:flex;gap:11px;margin:14px 0 8px}
.navb{cursor:pointer;font:700 12px var(--mono);letter-spacing:.14em;color:var(--mut);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 22px;transition:all .3s}
.navb:hover{color:#cdd8ff;border-color:rgba(140,160,255,.5)}
.navb.on{color:#CFE0FF;border-color:rgba(140,160,255,.85);background:linear-gradient(160deg,rgba(91,69,224,.3),rgba(46,99,246,.1));box-shadow:0 0 22px rgba(91,110,240,.35);text-shadow:0 0 12px rgba(143,180,255,.6)}
.navb.soon{opacity:.45;cursor:not-allowed}

/* kpis */
.kpis{display:grid;grid-template-columns:repeat(8,1fr);gap:13px;margin:16px 0}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:9px 13px;position:relative;overflow:hidden;backdrop-filter:blur(6px)}
.kpi b{display:block;font:700 21px var(--mono);text-shadow:0 0 16px rgba(120,140,255,.5)}
.kpi span{font-size:9.5px;color:var(--mut);letter-spacing:.09em;text-transform:uppercase}
.kpi.g b{color:var(--green)}.kpi.a b{color:var(--amber)}.kpi.v b{color:#B8A6FF}.kpi.r b{color:var(--red)}
.kpi.dorm{opacity:.5}
.kpi.dorm b{color:var(--mut)}

.intake{display:flex;align-items:center;gap:10px;margin:4px 0 14px;font:11px var(--mono);color:var(--mut);
 background:var(--panel);border:1px dashed rgba(140,160,255,.28);border-radius:12px;padding:9px 16px;backdrop-filter:blur(4px)}
.ikl{font-weight:700;letter-spacing:.14em;color:#B8A6FF}
.ikn{font:700 16px var(--mono);color:#CFE0FF;text-shadow:0 0 10px rgba(143,180,255,.6)}
.dormtag{margin-left:auto;padding:2px 9px;border:1px solid var(--line);border-radius:20px;font-size:9px;color:#8ea0d0;letter-spacing:.08em}

/* package tabs */
.ptabs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:4px 0 16px}
.ptab{cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:13px 17px;backdrop-filter:blur(6px);transition:all .35s;position:relative;overflow:hidden}
.ptab:hover{border-color:rgba(140,160,255,.5)}
.ptab.on{border-color:rgba(140,160,255,.85);box-shadow:0 0 26px rgba(91,110,240,.35),inset 0 0 30px rgba(91,110,240,.07)}
.ptab.on::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#8FB4FF,#8B5CF6);box-shadow:0 0 12px #8FB4FF}
.pt1{display:flex;align-items:center;gap:9px}
.ptid{font:700 15.5px var(--mono);letter-spacing:.05em;text-shadow:0 0 12px rgba(120,140,255,.5)}
.ptst{margin-left:auto;font:700 9.5px var(--mono);letter-spacing:.07em;padding:3px 10px;border-radius:10px}
.ptt{font-size:11px;color:var(--mut);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptbar{height:4px;border-radius:2px;background:rgba(255,255,255,.06);margin-top:8px;overflow:hidden}
.ptbar div{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--blue),#8B5CF6);box-shadow:0 0 8px rgba(120,140,255,.6)}
.ls-run{color:#B8A6FF;background:rgba(139,92,246,.14)}
.ls-seal{color:var(--green);background:rgba(61,232,160,.11)}
.ls-rep{color:var(--amber);background:rgba(255,196,107,.11)}
.ls-hold{color:var(--red);background:rgba(255,93,119,.14)}

/* held strip — dense, because holds outnumber live runs 5:1 today */
.heldwrap{background:var(--panel);border:1px solid rgba(255,93,119,.22);border-radius:14px;padding:11px 15px;margin:0 0 16px;backdrop-filter:blur(6px)}
.heldwrap h3{font-size:9.5px;letter-spacing:.18em;color:var(--mut);margin-bottom:9px;display:flex;justify-content:space-between;align-items:center}
.heldwrap h3 em{font-style:normal;color:var(--red);font-weight:700;letter-spacing:.06em}
.heldrow{display:flex;flex-wrap:wrap;gap:7px}
.hchip{cursor:pointer;display:flex;align-items:baseline;gap:7px;background:var(--panel2);border:1px solid rgba(255,93,119,.25);
 border-radius:9px;padding:5px 10px;font:var(--mono);transition:all .25s}
.hchip:hover{border-color:rgba(255,93,119,.75);box-shadow:0 0 12px rgba(255,93,119,.25)}
.hchip.on{border-color:#8FB4FF;box-shadow:0 0 14px rgba(143,180,255,.4)}
.hchip b{font:700 11.5px var(--mono);color:#CFE0FF}
.hchip span{font:10px var(--mono);color:var(--red)}
.hchip em{font:normal 10px var(--mono);color:var(--mut)}

/* stage */
.stage{position:relative;width:100%;aspect-ratio:1500/980;background:
 radial-gradient(70% 90% at 50% 50%,rgba(17,22,48,.55),rgba(5,8,20,.75)),
 repeating-radial-gradient(circle at 50% 50%,transparent 0 79px,rgba(120,140,255,.05) 79px 80px);
 border:1px solid var(--line);border-radius:22px;overflow:hidden;backdrop-filter:blur(4px)}
.stage svg{position:absolute;inset:0;width:100%;height:100%}
#anodes{position:absolute;inset:0}
.stagehead{position:absolute;left:14px;top:11px;right:14px;z-index:5;display:flex;align-items:center;gap:11px;flex-wrap:wrap;
 font:11.5px var(--mono);color:var(--mut);background:rgba(5,8,20,.62);border:1px solid rgba(140,160,255,.14);border-radius:10px;padding:9px 15px;backdrop-filter:blur(4px)}
.stagehead b{color:var(--txt)}
.shpkg{font:700 15px var(--mono);color:#CFE0FF;text-shadow:0 0 12px rgba(143,180,255,.6);letter-spacing:.05em}
.shsep{color:rgba(140,160,255,.4)}
.shrep{margin-left:auto;font:700 10px var(--mono);color:var(--amber);background:rgba(255,196,107,.1);border:1px solid rgba(255,196,107,.35);border-radius:9px;padding:2.5px 9px}
.shhold{margin-left:auto;font:700 10px var(--mono);color:var(--red);background:rgba(255,93,119,.1);border:1px solid rgba(255,93,119,.45);border-radius:9px;padding:2.5px 9px}
.over{color:var(--amber)!important}

/* agent nodes */
.anode{position:absolute;width:14.6%;transform:translate(-50%,-50%);background:rgba(13,18,42,.92);
 border:1px solid var(--line);border-radius:15px;padding:14px 16px 13px;transition:border-color .4s;
 backdrop-filter:blur(3px);cursor:pointer;box-shadow:0 4px 18px rgba(0,0,0,.35)}
.anode:hover{border-color:rgba(160,180,255,.6)}
.anode::before{content:'';position:absolute;top:0;left:12px;right:12px;height:2.5px;border-radius:0 0 3px 3px;background:transparent;transition:background .4s}
.anode.run{border-color:rgba(140,160,255,.8);box-shadow:0 0 26px rgba(91,110,240,.4),inset 0 0 20px rgba(91,110,240,.08)}
.anode.run::before{background:linear-gradient(90deg,#4D8DFF,#8FB4FF);box-shadow:0 0 10px rgba(143,180,255,.8)}
.anode.seal{border-color:rgba(61,232,160,.55);box-shadow:0 0 12px rgba(61,232,160,.14)}
.anode.seal::before{background:linear-gradient(90deg,#1d7a4d,#3DE8A0)}
.anode.rep{border-color:rgba(255,196,107,.75);box-shadow:0 0 22px rgba(255,196,107,.3)}
.anode.rep::before{background:linear-gradient(90deg,#9a6a1a,#FFC46B);box-shadow:0 0 10px rgba(255,196,107,.7)}
.anode.hold{border-color:rgba(255,93,119,.8);box-shadow:0 0 24px rgba(255,93,119,.35);animation:alarm 1.1s infinite}
.anode.hold::before{background:linear-gradient(90deg,#8a2433,#FF5D77);box-shadow:0 0 10px rgba(255,93,119,.8)}
.anode.idle{opacity:.42}
.anode.human{background:linear-gradient(160deg,rgba(43,213,118,.12),rgba(13,18,42,.94))}
.ahead2{display:flex;align-items:center;gap:10px}
.anum{font:700 10.5px var(--mono);color:rgba(140,160,255,.55);border:1px solid rgba(140,160,255,.25);border-radius:6px;padding:2.5px 6px;letter-spacing:.05em;flex-shrink:0}
.anode.run .anum{color:#CFE0FF;border-color:rgba(143,180,255,.6)}
.aname{font:700 15.5px var(--mono);letter-spacing:.02em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aicon{font-size:14px;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(140,160,255,.2)}
.i-run{color:#CFE0FF;border-color:rgba(143,180,255,.6);box-shadow:0 0 8px rgba(143,180,255,.4);animation:pul 1.1s infinite}
.i-seal{color:var(--green);border-color:rgba(61,232,160,.5)}
.i-rep{color:var(--amber);border-color:rgba(255,196,107,.55);animation:spin2 1.6s linear infinite}
.i-hold{color:var(--red);border-color:rgba(255,93,119,.6);animation:pul .7s infinite}
.i-idle{color:rgba(140,160,255,.35)}
.asubrow{display:flex;align-items:center;gap:8px;margin-top:4px}
.asub{font:600 9.5px var(--mono);color:var(--mut);letter-spacing:.05em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.amodel{font:600 10.5px var(--mono);padding:2.5px 8px;border-radius:9px;margin-left:auto;flex-shrink:0}
.mm-sonnet{color:#8fb4ff;background:rgba(77,141,255,.15)}
.mm-opus{color:#c3b0ff;background:rgba(139,92,246,.16)}
.mm-fable{color:#F0C560;background:rgba(240,197,96,.13)}
.mm-human{color:#9fe8c3;background:rgba(43,213,118,.12)}
.mm-none{color:var(--mut);background:rgba(160,180,255,.07)}
.avit2{display:grid;grid-template-columns:repeat(4,auto);gap:7px 18px;margin-top:12px;justify-content:start}
.avit2 span i{display:block;font-style:normal;font:600 8px var(--mono);color:var(--mut);letter-spacing:.12em}
.avit2 span b{font:700 13.5px var(--mono);color:var(--txt)}
.anode.idle .avit2 span b{color:var(--mut)}
.avit{display:flex;gap:9px;font:12.5px var(--mono);color:var(--mut);margin-top:10px;align-items:center;flex-wrap:wrap}
.aprog{height:5px;border-radius:2px;background:rgba(255,255,255,.07);margin-top:11px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.4)}
.aprog div{height:100%;background:linear-gradient(90deg,var(--blue),#8B5CF6);box-shadow:0 0 8px rgba(120,140,255,.7)}
.bbud{height:4px;border-radius:2px;background:rgba(255,255,255,.05);margin-top:7px;overflow:hidden}
.bbud div{height:100%;background:linear-gradient(90deg,#3DE8A0,#8FB4FF)}
.bbud div.ovr{background:linear-gradient(90deg,#9a6a1a,var(--amber))}
.bbud div.blown{background:linear-gradient(90deg,#8a2433,var(--red))}
.bmeta{font:9.5px var(--mono);color:var(--mut);margin-top:4px;letter-spacing:.04em}
.gbadge{display:inline-block;font:700 9px var(--mono);padding:1.5px 6px;border-radius:7px;margin:2px 3px 0 0}
.gb-pass{color:var(--green);background:rgba(61,232,160,.1)}
.gb-fail{color:var(--red);background:rgba(255,93,119,.12)}
.gb-skip{color:var(--mut);background:rgba(160,180,255,.07)}

/* wires */
.wbase{fill:none;stroke:rgba(150,170,255,.055);stroke-width:7;stroke-linecap:round}
.wire{fill:none;stroke-linecap:round}
.p-pend{stroke:rgba(140,160,255,.13);stroke-width:1.6;stroke-dasharray:4 8}
.p-act{stroke:#8FB4FF;stroke-width:2.6;stroke-dasharray:12 9;animation:dashf .8s linear infinite;filter:drop-shadow(0 0 6px rgba(143,180,255,.9))}
.p-done{stroke:rgba(61,232,160,.5);stroke-width:2.2}
.p-rep{stroke:#FFC46B;stroke-width:2.6;stroke-dasharray:12 9;animation:dashf .8s linear infinite;filter:drop-shadow(0 0 7px rgba(255,196,107,.9))}
.p-hold{stroke:#FF5D77;stroke-width:2.6;stroke-dasharray:12 9;animation:dashf .8s linear infinite;filter:drop-shadow(0 0 7px rgba(255,93,119,.9))}
@keyframes dashf{to{stroke-dashoffset:-21}}
.port{stroke:rgba(4,7,18,.95);stroke-width:1.6;transition:fill .4s}
.port.p-pend{fill:rgba(140,160,255,.22)}
.port.p-act{fill:#CFE0FF;filter:drop-shadow(0 0 6px rgba(143,180,255,.95))}
.port.p-done{fill:rgba(61,232,160,.8)}
.port.p-rep{fill:#FFC46B}
.port.p-hold{fill:#FF5D77}
.arw.p-pend{fill:rgba(140,160,255,.2)}
.arw.p-act{fill:#CFE0FF}
.arw.p-done{fill:rgba(61,232,160,.65)}
.arw.p-rep{fill:#FFC46B}
.arw.p-hold{fill:#FF5D77}
.wlabel{font:700 10px var(--mono);fill:#FFC46B;letter-spacing:.04em}
.wlabel.hold{fill:#FF5D77}
.joinnode{position:absolute;width:8.6%;transform:translate(-50%,-50%);background:rgba(10,15,36,.95);
 border:1.5px dashed rgba(140,160,255,.4);border-radius:12px;padding:9px 11px;text-align:center;transition:all .4s}
.joinnode.seal{border-color:rgba(61,232,160,.6);border-style:solid;box-shadow:0 0 12px rgba(61,232,160,.2)}
.joinnode.idle{opacity:.45}
.jn1{font:700 11.5px var(--mono);letter-spacing:.08em;color:#CFE0FF}
.jn2{font:600 8.5px var(--mono);letter-spacing:.18em;color:var(--mut);margin-top:2px}
.jn3{display:flex;gap:6px;justify-content:center;margin-top:7px}
.jn3 span{font:700 8.5px var(--mono);padding:2px 8px;border-radius:8px;color:var(--mut);background:rgba(255,255,255,.05);border:1px solid rgba(160,180,255,.15)}
.jn3 span.on{color:var(--green);background:rgba(61,232,160,.1);border-color:rgba(61,232,160,.4)}
.slegend{position:absolute;left:14px;bottom:10px;display:flex;gap:13px;font:9.5px var(--mono);color:var(--mut);z-index:5;background:rgba(5,8,20,.6);padding:5px 10px;border-radius:9px;backdrop-filter:blur(3px)}
.slegend span{display:inline-flex;align-items:center;gap:5px}
.lg{width:15px;height:3px;border-radius:2px}

/* inspector drawer */
.drawer{position:absolute;top:56px;right:12px;bottom:12px;width:330px;z-index:7;background:rgba(8,12,30,.95);
 border:1px solid rgba(140,160,255,.35);border-radius:16px;padding:15px 17px;backdrop-filter:blur(8px);
 transform:translateX(120%);transition:transform .35s;overflow-y:auto;box-shadow:-10px 0 40px rgba(0,0,0,.5)}
.drawer.open{transform:translateX(0)}
.drhead{display:flex;justify-content:space-between;align-items:center;font:700 15px var(--mono);letter-spacing:.04em;color:#CFE0FF;text-shadow:0 0 12px rgba(143,180,255,.5)}
.drx{cursor:pointer;color:var(--mut);font-size:13px;padding:3px 7px;border:1px solid rgba(140,160,255,.25);border-radius:8px}
.drx:hover{color:var(--red);border-color:rgba(255,93,119,.5)}
.drsub{font:600 9.5px var(--mono);color:var(--mut);letter-spacing:.08em;margin:4px 0 12px}
.drgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}
.drgrid div{font:12px var(--mono);color:#cdd8ff}
.drgrid i{display:block;font-style:normal;font-size:8.5px;color:var(--mut);letter-spacing:.09em;margin-bottom:2px}
.drh{font:700 9px var(--mono);color:var(--mut);letter-spacing:.16em;margin:14px 0 7px;border-top:1px dashed rgba(140,160,255,.2);padding-top:11px}
.drhash{display:flex;justify-content:space-between;gap:10px;font:10.5px var(--mono);padding:3.5px 0;color:var(--mut)}
.drhash b{color:#9fe8c3;font-weight:600;word-break:break-all;text-align:right}
.drhash b.missing{color:var(--amber)}
.drnote{font:10px var(--mono);color:var(--mut);line-height:1.5;margin-top:8px;padding:8px 10px;border-left:2px solid rgba(255,196,107,.4);background:rgba(255,196,107,.04);border-radius:0 8px 8px 0}

/* data row */
.datagrid{display:grid;grid-template-columns:1fr 1fr 2.1fr;gap:16px;margin-top:20px}
.panelb{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 18px;backdrop-filter:blur(6px)}
.panelb h3{font-size:10.5px;letter-spacing:.2em;color:var(--mut);margin-bottom:9px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.h3tag{padding:1px 8px;border:1px solid var(--line);border-radius:20px;font-size:8.5px;color:#8ea0d0;letter-spacing:.08em}
.feed{height:330px;overflow-y:auto;font:12px var(--mono);display:flex;flex-direction:column}
.fline{padding:3.5px 0;border-bottom:1px solid rgba(160,180,255,.06);display:flex;gap:9px}
.fts{color:var(--mut);flex-shrink:0}
.f-seal{color:var(--green)}.f-info{color:#cdd8ff}.f-warn{color:var(--amber)}.f-bad{color:var(--red)}.f-vio{color:#B8A6FF}
.feedf{margin-left:auto;display:inline-flex;gap:5px}
.fch{cursor:pointer;font:700 8.5px var(--mono);letter-spacing:.06em;color:var(--mut);border:1px solid rgba(140,160,255,.22);border-radius:8px;padding:2px 8px;transition:all .3s}
.fch:hover{color:#cdd8ff}
.fch.on{color:#CFE0FF;border-color:#8FB4FF;background:rgba(120,140,255,.1);box-shadow:0 0 8px rgba(143,180,255,.3)}
.sem{margin-bottom:14px}
.semh{display:flex;justify-content:space-between;font:11.5px var(--mono);color:var(--mut);margin-bottom:5px}
.slots{display:flex;gap:5px}
.slot{flex:1;height:15px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid rgba(160,180,255,.1);transition:all .5s}
.slot.on{background:radial-gradient(circle at 50% 35%,#c3b0ff,#5B45E0);border-color:#8B5CF6;box-shadow:0 0 14px rgba(139,92,246,.55)}
.slot.on.sb{background:radial-gradient(circle at 50% 35%,#9cc0ff,#2E63F6);border-color:var(--blue)}
.slot.on.sg{background:radial-gradient(circle at 50% 35%,#ffe2a0,#c89a2e);border-color:#F0C560}
.qrow{display:flex;align-items:center;gap:10px;font:12px var(--mono);padding:6px 0;color:#cdd8ff}
.qage{flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.05);overflow:hidden}
.qage div{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--green),var(--amber))}
.qage div.late{background:var(--red)}
.qpeep{font:700 10px var(--mono);color:#9fe8c3;background:rgba(43,213,118,.07);border:1px solid rgba(61,232,160,.22);border-radius:8px;padding:1.5px 7px;flex-shrink:0}
.qpeep i{font-style:normal;color:var(--mut)}
.qempty,.pempty{font:11px var(--mono);color:var(--mut);line-height:1.6}
.canary{display:flex;align-items:center;gap:10px;font:12px var(--mono);margin-top:4px}
.canary.dorm{opacity:.5;filter:saturate(.3)}
.cok{color:var(--green)}.cmut{color:var(--mut)}
.cring{width:38px;height:38px;flex-shrink:0}
.cring svg{transform:rotate(-90deg)}
.cring circle{fill:none;stroke-width:3.2}
.cring .bgc{stroke:rgba(255,255,255,.07)}
.cring .fgc{stroke:var(--green);stroke-dasharray:97;animation:ring 3.2s ease-in-out infinite}
@keyframes ring{0%{stroke-dashoffset:97}55%,100%{stroke-dashoffset:0}}
.rtrow{display:grid;grid-template-columns:1fr 30px 1fr;gap:8px;font:9.5px var(--mono);padding:3px 0;border-bottom:1px solid rgba(160,180,255,.05);align-items:center}
.rtrow b{color:#CFE0FF;text-align:right}
.rtc{color:#cdd8ff}
.rtr{color:var(--mut)}

/* standing agents */
.standwrap{margin-top:18px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px 18px;backdrop-filter:blur(6px)}
.standwrap h3{font-size:10.5px;letter-spacing:.2em;color:var(--mut);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.standwrap h3 em{font-style:normal;color:#B8A6FF;letter-spacing:.06em}
.stand{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.sagent{display:flex;gap:13px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:11px 14px;opacity:.55}
.sring{width:46px;height:46px;border-radius:50%;position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:rgba(120,140,255,.05)}
.sring::before{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid rgba(160,180,255,.14)}
.sring svg{width:20px;height:20px;stroke:#8E9AD0;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sbody{min-width:0;flex:1}
.shead2{display:flex;align-items:center;gap:7px}
.sname{font:700 11px var(--mono);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.amodel.sm{font-size:8.5px;padding:1.5px 6px;margin-left:auto;flex-shrink:0}
.slast{font:9.5px var(--mono);color:var(--mut);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* history strip */
.histwrap{margin-top:18px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px 18px;backdrop-filter:blur(6px)}
.histwrap h3{font-size:10.5px;letter-spacing:.2em;color:var(--mut);margin-bottom:9px}
.hist{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.hcard{cursor:pointer;flex:0 0 215px;background:var(--panel2);border:1px solid rgba(61,232,160,.22);border-radius:12px;padding:9px 12px;transition:all .3s}
.hcard:hover{border-color:rgba(61,232,160,.6);box-shadow:0 0 16px rgba(61,232,160,.22);transform:translateY(-2px)}
.hcard.bad{border-color:rgba(255,93,119,.3)}
.hcard.bad:hover{border-color:rgba(255,93,119,.7);box-shadow:0 0 16px rgba(255,93,119,.22)}
.hc1{display:flex;align-items:center;justify-content:space-between;gap:6px}
.hcpkg{font:700 13px var(--mono);color:#CFE0FF;letter-spacing:.04em}
.hcok{font:700 8.5px var(--mono);color:var(--green);letter-spacing:.06em}
.hcok.bad{color:var(--red)}
.hcmeta{font:10px var(--mono);color:var(--mut);margin-top:4px}
.hcrep{color:var(--amber);font-weight:700}
.hcrun{font:9px var(--mono);color:rgba(140,160,255,.5);margin-top:3px}

/* history page */
.page{margin-top:12px}
.hptable{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:8px 14px;backdrop-filter:blur(6px)}
.hprow{display:grid;grid-template-columns:110px 1fr 150px 96px 90px 80px 70px 120px 96px;gap:12px;align-items:center;
 padding:11px 8px;border-bottom:1px solid rgba(160,180,255,.07);cursor:pointer;transition:all .25s;font:12px var(--mono);color:#cdd8ff}
.hprow:last-child{border-bottom:none}
.hprow:hover{background:rgba(120,140,255,.06);box-shadow:inset 3px 0 0 #8FB4FF}
.hprow.hdr{cursor:default;font:700 9px var(--mono);color:var(--mut);letter-spacing:.12em;border-bottom:1px solid rgba(160,180,255,.18)}
.hprow.hdr:hover{background:none;box-shadow:none}
.hppkg{font:700 13.5px var(--mono);color:#CFE0FF}
.hptitle{color:var(--mut);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hpgate{color:#9fe8c3;font-weight:700;font-size:10.5px}
.hpst{font:700 9px var(--mono);letter-spacing:.05em;padding:3px 9px;border-radius:9px;text-align:center}
.hpst.clean{color:var(--green);background:rgba(61,232,160,.09);border:1px solid rgba(61,232,160,.3)}
.hpst.rep{color:var(--amber);background:rgba(255,196,107,.09);border:1px solid rgba(255,196,107,.35)}
.hpst.bad{color:var(--red);background:rgba(255,93,119,.09);border:1px solid rgba(255,93,119,.35)}
.hpstats{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:13px}

.foot{margin-top:18px;padding:11px 15px;border:1px dashed rgba(139,92,246,.35);border-radius:13px;font:11px var(--mono);color:var(--mut);backdrop-filter:blur(4px);line-height:1.7}
.foot b{color:#B8A6FF}
.hidden{display:none}

/* wall mode — bigger type for a mounted screen, chrome removed */
body.wall .foot,body.wall .doct,body.wall .standwrap{display:none}
body.wall .wrap{max-width:100%;padding:12px 30px}
body.wall .kpi b{font-size:30px}
body.wall .kpi span{font-size:12px}
body.wall .aname{font-size:16px}
body.wall .avit2 span b{font-size:15px}
body.wall .feed{font-size:14px;height:380px}
body.wall .brand{font-size:23px}
body.wall .clock{font-size:28px}

/* ===== calibration ===== */
.calhead{display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:17px 20px;margin-bottom:15px;backdrop-filter:blur(6px)}
.calbig{font:700 20px var(--mono);letter-spacing:.08em;color:#CFE0FF;text-shadow:0 0 16px rgba(143,180,255,.5)}
.calsub{font:13px var(--mono);color:var(--mut)}
.calrule{font:600 12.5px var(--mono);color:#9fe8c9;background:rgba(61,232,160,.05);border:1px dashed rgba(61,232,160,.3);border-radius:9px;padding:9px 13px}
.calgate{font:13px var(--mono);border-radius:12px;padding:12px 16px;margin-bottom:15px;line-height:1.5}
.calgate b{font-family:var(--mono)}
.calgate.ok{color:#9fe8c9;background:rgba(61,232,160,.06);border:1px solid rgba(61,232,160,.3)}
.calgate.bad{color:var(--amber);background:rgba(255,196,107,.07);border:1px solid rgba(255,196,107,.45)}
.calsec{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 19px;margin-bottom:15px;backdrop-filter:blur(6px)}
.calsec h3{font-size:12.5px;letter-spacing:.14em;color:var(--mut);margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.calsec h3 em{font-style:normal;letter-spacing:.06em}
.calclean{color:var(--green)}
.calwarn{color:var(--amber)}
.calrow{display:grid;grid-template-columns:260px 1fr 230px 130px 1fr;gap:14px;align-items:center;padding:12px 8px;border-bottom:1px solid rgba(160,180,255,.06);font:14.5px var(--mono)}
.calrow:last-child{border-bottom:none}
.calstg{font-weight:700;color:#cdd8ff;font-size:14px}
.callbl{color:var(--mut);font-size:12.5px}
.calv{font-weight:700;color:#CFE0FF;font-size:15px}
.calv i{font-style:normal;color:var(--mut);font-weight:400;font-size:12px}
.calunres{color:var(--mut);font-weight:400;font-style:italic}
.calverd{font:700 12px var(--mono);letter-spacing:.08em;text-align:center;padding:6px 0;border-radius:9px}
.calverd.ok{color:var(--green);background:rgba(61,232,160,.08);border:1px solid rgba(61,232,160,.3)}
.calverd.crossed{color:var(--red);background:rgba(255,93,119,.1);border:1px solid rgba(255,93,119,.5);animation:pul 1s infinite}
.calverd.unresolved{color:var(--mut);background:rgba(160,180,255,.06);border:1px dashed rgba(160,180,255,.25)}
.calact{color:var(--mut);font-size:12.5px;line-height:1.4}
.calnote{font:12.5px var(--mono);color:#cdd8ff;background:rgba(255,196,107,.05);border:1px solid rgba(255,196,107,.28);border-radius:12px;padding:13px 16px;margin-bottom:15px;line-height:1.6}
.calnote b{color:var(--amber)}
.calnote code{color:#9fe8c9}
.calros{display:flex;flex-direction:column;gap:7px}
.calros span{font:13.5px var(--mono);color:#cdd8ff;padding:9px 14px;background:rgba(120,140,255,.05);border-left:2px solid rgba(140,160,255,.45);border-radius:0 8px 8px 0}
.calrec{font:13px var(--mono);color:#cdd8ff;background:rgba(3,5,15,.6);border:1px solid rgba(160,180,255,.15);border-radius:10px;padding:15px 17px;white-space:pre-wrap;line-height:1.6}
