@font-face{font-family:Barlow;font-weight:400;font-display:swap;src:url(vendor/fonts/barlow-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:500;font-display:swap;src:url(vendor/fonts/barlow-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:600;font-display:swap;src:url(vendor/fonts/barlow-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:500;font-display:swap;src:url(vendor/fonts/barlow-condensed-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-display:swap;src:url(vendor/fonts/barlow-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-display:swap;src:url(vendor/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-display:swap;src:url(vendor/fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}

:root{
  color-scheme:dark;
  --ink:#0c1316;--panel:#121b1f;--panel-2:#182428;--line:#263539;--line-strong:#3a4e54;
  --text:#dfe8ea;--text-2:#a6b6bb;--text-3:#8497a0;
  --wave:#eaf7f8;--brand:#f97316;--focus:#5fd3dc;
  --critical:#ff6161;--high:#ff9a4d;--medium:#f2c94c;--good:#44d690;--info:#8fa3ab;
  --sans:Barlow,system-ui,sans-serif;--label:"Barlow Condensed",Barlow,system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --r:4px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--ink);color:var(--text);font:14px/1.4 var(--sans)}
button,input,select{font:inherit;color:inherit}
h2{font:600 15px/1 var(--label);letter-spacing:.06em;text-transform:uppercase;margin:0;color:var(--text)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.mono,time{font-family:var(--mono);font-variant-numeric:tabular-nums}

.top{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}
.brand{display:flex;align-items:center;gap:8px;font:600 21px/1 var(--label);letter-spacing:.12em;color:var(--text)}
.brand svg{color:var(--brand)}
.venue{color:var(--text-2);font:500 16px/1 var(--label);letter-spacing:.03em}
.modeflag{font:500 13px/1.25 var(--sans);padding:5px 10px;border:1px solid var(--line-strong);border-radius:var(--r);color:var(--text)}
.modeflag b{font-weight:600}
.modeflag.recorded{border-color:#7b6a2c;background:#2a2610}
.vitals{display:flex;gap:18px;margin:0 0 0 auto;flex-wrap:wrap}
.vitals div{display:flex;flex-direction:column-reverse;gap:1px}
.vitals dt{font:500 12px/1 var(--label);letter-spacing:.05em;color:var(--text-3);text-transform:uppercase}
.vitals dd{margin:0;font:500 15px/1.1 var(--mono)}
.clock{font:500 15px var(--mono);color:var(--text-2);min-width:74px;text-align:right}

.scenario{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;padding:10px 16px;border-bottom:1px solid var(--line);background:#0f171a}
.play{min-width:76px;align-self:start}
.scn-main{min-width:0}
.scn-track{position:relative;height:22px}
.scn-track input{width:100%;margin:0;height:22px;accent-color:var(--text);background:transparent}
.scn-ticks{position:absolute;inset:0;pointer-events:none}
.scn-ticks i{position:absolute;top:2px;width:2px;height:6px;background:var(--line-strong)}
.scn-text{margin-top:2px;min-height:20px;color:var(--text-2)}
.scn-text strong{color:var(--text);font-weight:600}
.scn-chapters{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.scn-chapters button{background:transparent;border:1px solid var(--line);border-radius:var(--r);padding:4px 9px;font-size:13px;color:var(--text-2);cursor:pointer}
.scn-chapters button:hover{border-color:var(--line-strong);color:var(--text)}
.scn-chapters button.on{background:var(--panel-2);border-color:var(--text-3);color:var(--text)}

.console{display:grid;grid-template-columns:minmax(0,1fr) 372px;grid-template-rows:minmax(420px,62vh) auto auto;grid-template-areas:"twin side" "ladder side" "drawer drawer";gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.twin,.ladder,.side,.drawer{background:var(--ink);min-width:0}
.twin{grid-area:twin;display:flex;flex-direction:column}
.ladder{grid-area:ladder}
.side{grid-area:side;display:flex;flex-direction:column;background:var(--panel);height:0;min-height:100%}
.drawer{grid-area:drawer}
.bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 14px;min-height:40px}
.count{font:500 13px var(--mono);color:var(--text-3)}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden}
.seg button{background:none;border:0;padding:3px 11px;cursor:pointer;color:var(--text-2)}
.seg button.on{background:var(--panel-2);color:var(--text)}
.chk{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);cursor:pointer;font-size:13px}
.chk input{accent-color:#63c7cf;margin:0}
.legend{margin-left:auto;display:flex;align-items:center;gap:0;font:400 11px var(--mono);color:var(--text-3)}
.legend i{display:block;width:24px;height:9px}
.legend span{margin:0 6px}
.stage{position:relative;flex:1;min-height:0;overflow:hidden}
#plan{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:default}
#stage3d{position:absolute;inset:0}

.ladder-sub{color:var(--text-2);font-size:13px;min-width:0}
.ladder-body{padding:0 14px 10px;min-height:150px}
.ladder-body svg{display:block;width:100%}
.ladder-body .empty{padding:18px 0}
.empty{color:var(--text-3);padding:14px;font-size:13px}

.incidents{flex:0 1 auto;max-height:55%;display:flex;flex-direction:column;min-height:96px;border-bottom:1px solid var(--line)}
.feed{flex:1 1 0;display:flex;flex-direction:column;min-height:180px}
.cards,.rows{list-style:none;margin:0;padding:0;overflow:auto;min-height:0}
.cards{padding:0 10px 10px;display:flex;flex-direction:column;gap:8px}
.card{border:1px solid var(--line-strong);border-left-width:3px;border-radius:var(--r);padding:9px 10px;background:var(--panel-2);cursor:pointer}
.card.sel{outline:1px solid var(--text-3)}
.card.critical{border-left-color:var(--critical)}.card.high{border-left-color:var(--high)}.card.medium{border-left-color:var(--medium)}
.card.resolved{opacity:.62;border-left-color:var(--line-strong)}
.card h3{margin:0;font:600 15px/1.2 var(--sans);display:flex;justify-content:space-between;gap:8px}
.card p{margin:3px 0 0;color:var(--text-2);font-size:13px}
.card .acts{display:flex;gap:6px;margin-top:8px;align-items:center}
.card .st{margin-left:auto;font-size:12px;color:var(--text-3)}
.btn{background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--r);padding:4px 10px;cursor:pointer;color:var(--text)}
.btn:hover{border-color:var(--text-3)}
.btn.small{padding:2px 8px;font-size:13px}
.sev{display:inline-flex;align-items:center;gap:5px;font:600 12px/1 var(--label);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.sev::before{content:"";display:inline-block;width:9px;height:9px;background:currentColor}
.sev.critical{color:var(--critical)}.sev.critical::before{transform:rotate(45deg)}
.sev.high{color:var(--high)}.sev.high::before{clip-path:polygon(50% 0,100% 100%,0 100%)}
.sev.medium{color:var(--medium)}.sev.medium::before{border-radius:50%}
.sev.info{color:var(--info)}.sev.info::before{border-radius:50%;background:none;box-shadow:inset 0 0 0 1.5px currentColor}
.rows li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 8px;padding:7px 14px;border-top:1px solid var(--line);cursor:pointer}
.rows li:hover{background:var(--panel-2)}
.rows li.sel{background:var(--panel-2);box-shadow:inset 2px 0 0 var(--wave)}
.rows .name{font-weight:500}
.rows .when{font:400 12px var(--mono);color:var(--text-3)}
.rows .meta{grid-column:1/-1;color:var(--text-2);font-size:12.5px}
.confbar{display:inline-block;width:40px;height:4px;background:var(--line);vertical-align:middle;margin-right:5px;border-radius:2px;overflow:hidden}
.confbar i{display:block;height:100%;background:var(--text-2)}

.tabs{display:flex;gap:2px;padding:6px 10px 0;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:7px 11px;cursor:pointer;color:var(--text-2);white-space:nowrap;font-weight:500}
.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--text)}
.panel{padding:12px 14px 18px;min-height:240px;overflow-x:auto}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:10px}
.filters label{display:flex;flex-direction:column;gap:3px;font:500 12px var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}
.filters select,.filters input{background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--r);padding:4px 6px;font:400 13px var(--sans);text-transform:none;letter-spacing:0;color:var(--text);min-width:112px}
table{border-collapse:collapse;width:100%;font-size:13px}
th{font:500 12px var(--label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);text-align:left;padding:5px 10px 5px 0;border-bottom:1px solid var(--line-strong);white-space:nowrap}
td{padding:5px 10px 5px 0;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr.link{cursor:pointer}tbody tr.link:hover{background:var(--panel-2)}
td.num,th.num{text-align:right;font-family:var(--mono)}
td .mono{font-size:12.5px}
.pager{display:flex;gap:8px;align-items:center;margin-top:8px;color:var(--text-3);font-size:13px}
.ok{color:var(--good)}.bad{color:var(--critical)}
.st-online{color:var(--good)}.st-degraded{color:var(--medium)}.st-offline{color:var(--critical)}.st-unknown{color:var(--text-3)}

.trace{list-style:none;margin:0;padding:0;display:grid;gap:0;max-width:900px}
.trace li{display:grid;grid-template-columns:20px 62px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.trace .dot{width:9px;height:9px;border-radius:50%;margin:5px 0 0 4px;background:var(--text-2)}
.trace li.none .dot{background:none;box-shadow:inset 0 0 0 1.5px var(--text-3)}
.trace .at{font:400 12px var(--mono);color:var(--text-3);padding-top:2px}
.trace b{font-weight:600}
.trace span{color:var(--text-2)}
.trace-head{margin:0 0 8px;color:var(--text-2)}
.perstation{margin-top:14px;max-width:900px}
.perstation summary{cursor:pointer;color:var(--text-2);font-weight:500;padding:4px 0}
.perstation table{margin-top:6px}
.note{color:var(--text-3);font-size:12.5px;margin:8px 0 0;max-width:80ch}

.tip{position:fixed;z-index:30;pointer-events:none;background:#061012;border:1px solid var(--line-strong);border-radius:var(--r);padding:6px 9px;font-size:12.5px;max-width:280px;line-height:1.35}
.tip b{font-weight:600}
.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--r);padding:8px 12px;z-index:40;max-width:calc(100vw - 32px)}

@media (max-width:1100px){
  .console{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"twin" "ladder" "side" "drawer"}
  .twin{height:min(70vw,62vh);min-height:300px}
  .side{height:auto;min-height:0}
  .incidents{max-height:none}.feed{max-height:360px}
}
@media (max-width:640px){
  .top{gap:8px 12px;padding:8px 16px}
  .vitals{margin-left:0;width:100%;gap:12px;justify-content:space-between}
  .clock{display:none}
  .modeflag{width:100%}
  .scenario{padding:8px 16px}
  .bar{padding:8px 16px;gap:8px 12px}
  .ladder-body,.panel{padding-left:16px;padding-right:16px}
  .legend{margin-left:0;width:100%}
  .twin{height:auto}.stage{height:66vw;min-height:240px;flex:none}
  .scn-chapters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
  .scn-chapters button{white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
