/* Same flight-deck layout as the Triangle portals, in signal violet. */
:root{--bg:#f3f0f8;--panel:#fefcff;--sunk:#e7e1f0;--fg:#1b1626;--mut:#615a73;--line:#d6cee3;--accent:#6431b3;--on:#fff;--good:#14733f;--goodbg:#d9efe0;--bad:#b3261e;--badbg:#f8ddd9;--warn:#8a5b00;--warnbg:#f6e8c6;--up:#14733f;--down:#b3261e;
--display:"Barlow Condensed","Arial Narrow",sans-serif;--body:"IBM Plex Sans",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace}
@media (prefers-color-scheme:dark){:root{--bg:#14111c;--panel:#1c1826;--sunk:#0e0c14;--fg:#ebe7f2;--mut:#a29bb3;--line:#332d45;--accent:#b794ff;--on:#14111c;--good:#4fd08a;--goodbg:#143023;--bad:#ff8f85;--badbg:#3c1a18;--warn:#e7bb5c;--warnbg:#33290f;--up:#4fd08a;--down:#ff8f85;color-scheme:dark}}
*{box-sizing:border-box}[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 var(--body)}
main{max-width:1240px;margin:auto;display:grid;gap:14px;padding-block:14px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
main>*,.pane>*,.split>*{min-width:0}
h1,h2,.brand,.big{font-family:var(--display);font-weight:700;letter-spacing:.01em;margin:0;text-wrap:balance}
h1{font-size:40px}h2{font-size:21px;margin-bottom:6px}.big{font-size:30px}
p{margin:4px 0;max-width:75ch}
.mut{color:var(--mut)}.err{color:var(--bad);font-weight:500}
button,input,select{font:inherit;color:var(--fg)}
button{cursor:pointer;border-radius:3px}button:disabled{opacity:.55;cursor:not-allowed}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
input,select{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:7px 9px;width:100%;min-width:0}
label{display:grid;gap:3px;font-size:13px;color:var(--mut)}
.primary{background:var(--accent);color:var(--on);border:1px solid var(--accent);padding:8px 16px;font-weight:600}
.ghost{background:transparent;border:1px solid var(--line);padding:7px 12px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.wrap{flex-wrap:wrap}

.login{max-width:380px;margin:12vh auto 0;display:grid;gap:12px;padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px))}

/* Master switch */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--sunk)}
.kill{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--sunk);border-bottom:3px solid var(--line)}
.kill[data-state=on]{border-bottom-color:var(--good)}.kill[data-state=off]{border-bottom-color:var(--bad)}
.kill-in{max-width:1240px;margin:auto;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.brand{font-size:24px}
.kill-status{display:flex;gap:10px;align-items:center;flex:1 1 220px;min-width:0}
.kill-status strong{display:block;line-height:1.2;font-size:15px}.kill-status small{color:var(--mut);display:block;line-height:1.3}
.lamp{width:14px;height:14px;border-radius:50%;background:var(--mut);flex:none}
[data-state=on] .lamp{background:var(--good);box-shadow:0 0 0 4px var(--goodbg)}[data-state=off] .lamp{background:var(--bad);box-shadow:0 0 0 4px var(--badbg)}
.kill-act{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}
.kbtn{font:700 21px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;padding:13px 26px;border:0;min-width:230px;color:#fff;background:#6b6b6b}
[data-state=on] .kbtn{background:#c4170c}[data-state=on] .kbtn:hover{background:#a11208}
[data-state=off] .kbtn{background:#12703d}[data-state=off] .kbtn:hover{background:#0d5a30}
.kbtn.confirm{outline:3px solid var(--warn);outline-offset:2px}
.kill-msg{max-width:none;margin:0;padding:8px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));background:var(--warnbg);color:var(--fg);font-weight:500}
.kill-msg.bad{background:var(--bad);color:#fff}

/* Tabs */
.tabs{display:flex;flex-wrap:wrap;gap:2px 4px;border-bottom:1px solid var(--line);align-items:center}
.tab{background:none;border:0;border-bottom:3px solid transparent;padding:8px 12px;font:600 18px/1.2 var(--display);color:var(--mut);border-radius:0;margin-bottom:-1px}
.tab[aria-selected=true]{color:var(--fg);border-bottom-color:var(--accent)}
.sister{color:var(--mut);font-size:13px;padding:6px}.signout{font-size:13px;padding:4px 10px}
.paperline{font-size:13px;color:var(--mut);max-width:none;margin:0}.paperline b{color:var(--warn)}
.pane{display:grid;gap:14px}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:14px;min-width:0}.panel.flat{background:none}
.split{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:14px}.split.even{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
@media(max-width:860px){.split{grid-template-columns:minmax(0,1fr)}}

.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.tile{background:var(--panel);padding:10px 14px}.tile small{display:block;color:var(--mut);font-size:12px}.tile b{font:600 27px/1.2 var(--display);font-variant-numeric:tabular-nums}.tile em{display:block;font-style:normal;font-size:12px;color:var(--mut)}

/* Pipeline: a real sequence, so it is numbered by order */
.pipe{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px}
.pipe li{border:1px solid var(--line);background:var(--panel);padding:8px 10px;border-radius:3px;display:grid;gap:1px}
.pipe b{font:600 16px/1.2 var(--display);letter-spacing:.03em}.pipe span{font-size:12px;color:var(--mut);line-height:1.3}
.pipe li.act{border-color:var(--accent)}.pipe li.act b{color:var(--accent)}

.seg{display:flex;gap:2px;flex-wrap:wrap}.seg button{background:none;border:1px solid var(--line);padding:3px 10px;font:500 12px var(--mono)}.seg button[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.chart{width:100%;margin-top:8px}.chart svg{display:block;width:100%;height:auto}
.note{font-size:12px;color:var(--mut);margin-top:6px}

.verdict{padding:10px 12px;border-radius:3px;margin:8px 0;background:var(--sunk)}.verdict small{display:block;font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}.verdict b{font:700 26px/1.15 var(--display);display:block}
.verdict.take{background:var(--goodbg)}.verdict.take b{color:var(--good)}.verdict.wait{background:var(--warnbg)}.verdict.wait b{color:var(--warn)}.verdict.blocked{background:var(--badbg)}.verdict.blocked b{color:var(--bad)}
.checks{list-style:none;margin:8px 0;padding:0;display:grid;gap:0}
.checks li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:0 6px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}.checks i{font-style:normal;font-weight:700;grid-row:span 2}.checks .y i{color:var(--good)}.checks .x i{color:var(--bad)}.checks small{color:var(--mut);grid-column:2}
.levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}.levels div{background:var(--sunk);padding:5px 7px;border-radius:3px}.levels small{display:block;font-size:11px;color:var(--mut)}.levels b{font:500 13px var(--mono);overflow-wrap:anywhere}

.tw{overflow-x:auto;margin-top:4px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:var(--mut);font-weight:500;font-size:12px}td.wrapc{white-space:normal;min-width:260px}
.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.pos{color:var(--good)}.neg{color:var(--bad)}
.chip{display:inline-block;padding:0 7px;border-radius:99px;font-size:12px;border:1px solid var(--line);white-space:nowrap}.chip.take{background:var(--goodbg);color:var(--good);border-color:transparent}.chip.wait{background:var(--warnbg);color:var(--warn);border-color:transparent}.chip.blocked{background:var(--badbg);color:var(--bad);border-color:transparent}.chip.bt{border-style:dashed}
.empty{color:var(--mut);white-space:normal;padding:16px 8px}
.filters{display:flex;gap:8px;flex-wrap:wrap}.filters label{min-width:120px}
.hiddenline{margin:0;padding:8px 12px;background:var(--warnbg);border-radius:3px;max-width:none;font-size:13px}

.engines{margin:10px 0 0;padding:0;list-style:none;counter-reset:e;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:6px 20px}
.engines li{counter-increment:e;display:grid;grid-template-columns:24px 60px minmax(0,1fr);gap:4px;align-items:baseline;font-size:13px;border-top:1px solid var(--line);padding-top:5px}.engines li::before{content:counter(e);font:500 12px var(--mono);color:var(--accent)}.engines span{color:var(--mut)}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:8px 0 12px;align-items:end}
.gates{list-style:none;padding:0;margin:8px 0;display:grid;gap:5px;font-size:13px}.gates li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:6px}.gates b{font-weight:600}.gates .y b{color:var(--good)}.gates .x b{color:var(--warn)}.gates small{grid-column:2;color:var(--mut)}
.tools{margin-top:10px}
.eps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px;margin-top:6px}
.ep{border:1px solid var(--line);border-radius:3px;padding:10px;display:grid;gap:4px;font-size:13px}.ep p{margin:0}.ep dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 10px;margin:0;font-size:12px}.ep dt{color:var(--mut)}.ep dd{margin:0;font-family:var(--mono);text-align:right}
@media(max-width:600px){.kill-act,.kbtn{width:100%}.kbtn{min-width:0}.sisters{margin-left:0}}
@media(prefers-reduced-motion:no-preference){.kbtn{transition:background .12s}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

.sisters{margin-left:auto;display:flex;gap:2px;flex-wrap:wrap}.sisters .sister{margin-left:0}
.engines-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:10px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:10px 12px;display:grid;gap:4px;align-content:start;font-size:13px}.card h3{font:600 18px/1.2 var(--display);margin:0}.card svg{width:100%;height:auto;display:block;max-height:80px}.card p{margin:0}
.clock{display:grid;gap:6px;margin-top:6px}.bar{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;align-items:center;font-size:13px}.track{position:relative;height:18px;background:var(--sunk);border-radius:2px;overflow:hidden}.track i{position:absolute;top:0;bottom:0;background:var(--accent);opacity:.75}.track u{position:absolute;top:0;bottom:0;width:2px;background:var(--fg);text-decoration:none}.hours{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;font:11px var(--mono);color:var(--mut)}.hours div{display:flex;justify-content:space-between}
.calc{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.calc div{background:var(--panel);padding:8px 10px}.calc small{display:block;color:var(--mut);font-size:12px}.calc b{font:600 22px/1.2 var(--display)}
.plain{margin:6px 0 0;padding-left:18px;display:grid;gap:5px}.short{width:auto;max-width:210px}.tiny{width:auto}a{color:var(--accent)}
.chip.high{background:var(--badbg);color:var(--bad);border-color:transparent}.chip.med{background:var(--warnbg);color:var(--warn);border-color:transparent}
td.wrapc2{white-space:normal;min-width:200px}
.tab{padding:8px 9px;font-size:17px}.report .sub{margin-top:12px}
tr.past{opacity:.6}

.kbtn.refresh{background:var(--accent);color:var(--on)}[data-state=on] .kbtn.refresh,[data-state=off] .kbtn.refresh{background:var(--accent)}[data-state=on] .kbtn.refresh:hover,[data-state=off] .kbtn.refresh:hover{background:var(--accent);opacity:.9}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:8px}.cc{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--good);border-radius:3px;padding:8px 12px;display:grid;gap:1px;min-width:0}.cc.bad{border-left-color:var(--bad)}.cc h3{font:600 18px/1.2 var(--display);margin:0}.cc .h{font:500 13px var(--mono);overflow-wrap:anywhere}.cc small{color:var(--mut);font-size:12px;overflow-wrap:anywhere}
.hiddenline:empty{display:none}
