*{box-sizing:border-box;}
:root{
  --night:#050810; --amber:#F2B35B; --amber-hot:#FFF4DC; --cold:#1B2B4A; --outage:#4664A5;
  --gold:#FFD166; --cyan:#5CE1FF; --med:#FF6B6B; --fire:#FF8C42; --other:#8C93B8;
  --violet:#C77DFF; --magenta:#FF5FC4; --same:#8C8C8C; --hv:#6E9696; --station1:#FFB74D;
  --text:#E6E9F2; --dim-text:#8B93A7;
  --panel-bg:rgba(9,14,26,0.76); --panel-border:rgba(230,233,242,0.14);
  color-scheme:dark;
}
html,body{background:var(--night); max-width:100%; overflow-x:hidden;}
body{color:var(--text); margin:0; font-family:'IBM Plex Sans Condensed',Arial,sans-serif;}
a{color:var(--violet);}
button,input,select{font-family:inherit;}
:focus-visible{outline:2px solid var(--violet); outline-offset:2px;}
[hidden]{display:none !important;}

.ds-page{max-width:1400px; margin:0 auto; padding:22px 16px 48px;}
.ds-head{text-align:center; margin-bottom:16px; overflow-wrap:break-word;}
.ds-title{font-family:'Instrument Serif',Georgia,serif; font-style:italic; font-weight:400;
  font-size:clamp(2.1rem,6vw,3.4rem); margin:0; text-shadow:0 0 28px rgba(242,179,91,0.28);}
.ds-sub{color:var(--dim-text); margin:6px 0 0; font-size:0.92rem;}
.ds-sub a{color:var(--amber);}

.ds-stage-shell{position:relative;}
.ds-stage{position:relative; width:100%; aspect-ratio:16/9; background:var(--night);
  border-radius:12px; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,0.55);
  border:1px solid rgba(230,233,242,0.08);}
#cesium{position:absolute; inset:0;}
#cesium .cesium-widget, #cesium .cesium-widget canvas{width:100%; height:100%;}
#cesium canvas{outline:none;}
.cesium-widget-credits{left:8px; bottom:4px; z-index:7;}
.wm-google-logo{vertical-align:-8px;}
.cesium-widget-credits{font-size:10px; color:var(--dim-text); opacity:0.95;}
.cesium-widget-credits a{color:var(--dim-text);}
.cesium-credit-lightbox-overlay{z-index:30;}
.cesium-performanceDisplay-defaultContainer{top:auto; bottom:60px; right:auto; left:50%;}

.ds-badge{position:absolute; top:10px; left:50%; transform:translateX(-50%); z-index:6;
  background:rgba(242,179,91,0.14); border:1px solid var(--amber); color:var(--amber-hot);
  font-size:0.74rem; letter-spacing:0.03em; padding:4px 14px; border-radius:999px; white-space:nowrap;}
.ds-badge.badge-live{background:rgba(199,125,255,0.14); border-color:var(--violet); color:var(--violet);}

.ds-loading{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  z-index:8; color:var(--dim-text); font-family:'JetBrains Mono',monospace; font-size:0.82rem;
  background:var(--night); letter-spacing:0.04em; text-align:center; padding:0 24px;}
.ds-loading span{max-width:100%; overflow-wrap:break-word;}
.ds-loading.error{color:var(--med);}

.flags-layer{position:absolute; inset:0; pointer-events:none; z-index:4;}
.flag-pole{position:absolute; width:1px; background:rgba(230,233,242,0.55);}
.flag-dot{position:absolute; width:6px; height:6px; margin:-3px; border-radius:50%;
  background:currentColor; box-shadow:0 0 5px currentColor;}
.flag-card-wrap{position:absolute;}
.flag-card{position:relative; background:rgba(6,9,18,0.92); border:1px solid rgba(230,233,242,0.18);
  border-radius:6px; padding:5px 8px; min-width:190px; max-width:260px; font-size:0.66rem; line-height:1.35;}
.flag-card .ft{font-weight:700; margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.flag-card .fx{color:var(--dim-text);}
.flag-arrow{position:absolute; width:0; height:0; border:6px solid transparent;}
.flag-arrow.arrow-left{left:-8px; top:50%; margin-top:-6px; border-left-width:0; border-right-color:currentColor;}
.flag-arrow.arrow-right{right:-8px; top:50%; margin-top:-6px; border-right-width:0; border-left-color:currentColor;}
.flag-arrow.arrow-top{top:-8px; left:50%; margin-left:-6px; border-top-width:0; border-bottom-color:currentColor;}
.flag-arrow.arrow-bottom{bottom:-8px; left:50%; margin-left:-6px; border-bottom-width:0; border-top-color:currentColor;}

.hud{position:absolute; z-index:3; pointer-events:none;}
.hud-panel{background:var(--panel-bg); border:1px solid var(--panel-border); border-radius:8px;
  padding:8px 12px; backdrop-filter:blur(6px); overflow:hidden;}
.hud-clock{top:12px; left:12px; max-width:46%;}
.hud-time{font-family:'JetBrains Mono',ui-monospace,monospace; font-variant-numeric:tabular-nums; font-size:1.4rem; line-height:1.1;}
.hud-date{font-size:0.68rem; color:var(--dim-text); margin-top:3px;}
.hud-customers{top:12px; right:12px; text-align:right; max-width:46%;}
.hud-factual-strike{color:var(--dim-text); text-decoration:line-through; font-size:0.68rem; margin-top:1px;}
.hud-label{font-size:0.64rem; color:var(--dim-text); letter-spacing:0.07em; text-transform:uppercase;}
.hud-value{font-family:'JetBrains Mono',monospace; font-variant-numeric:tabular-nums; font-size:1.28rem;}
.hud-sub{font-size:0.68rem; color:var(--dim-text);}
.spark{display:block; margin:4px 0 0 auto; width:100%; max-width:160px; height:34px;}

.hud-fleet{bottom:34px; left:12px; min-width:240px; max-width:40%; font-size:0.7rem;}
.fleet-row{display:flex; align-items:center; gap:6px; margin:3px 0;}
.fleet-row span:first-child{width:54px; color:var(--dim-text); letter-spacing:0.05em; font-size:0.66rem;}
.fleet-row span:last-child{width:52px; text-align:right; font-family:'JetBrains Mono',monospace;}
.gauge{flex:1; height:6px; background:rgba(255,255,255,0.09); border-radius:3px; overflow:hidden;}
.gauge-fill{height:100%; width:0%; background:linear-gradient(90deg,var(--amber),var(--fire));}

.hud-legend{bottom:34px; right:12px; font-size:0.66rem; max-width:34%;}
.legend-body{display:grid; gap:4px;}
.legend-body>div{display:flex; align-items:center; gap:6px;}
.legend-body i{width:8px; height:8px; border-radius:50%; display:inline-block; box-shadow:0 0 6px currentColor; flex-shrink:0;}
.legend-body i.sw-block{border-radius:2px; box-shadow:none;}
.legend-body i.sw-ring{width:10px; height:10px; border:2px solid currentColor; box-shadow:0 0 4px currentColor; background:transparent;}
.legend-body i.sw-ring-lg{width:13px; height:13px; border:2.5px solid currentColor; box-shadow:0 0 5px currentColor; background:transparent;}
.legend-body i.sw-halo{box-shadow:0 0 0 3px rgba(8,10,18,0.85), 0 0 6px currentColor;}
.legend-body i.sw-line{width:16px; height:2px; border-radius:1px; box-shadow:none; background:currentColor;}
.legend-body i.sw-line-halo{width:16px; height:3px; border-radius:1px; background:currentColor; box-shadow:0 0 0 2px rgba(8,10,18,0.85);}
.legend-body i.sw-dash{width:16px; height:2px; border-radius:0; box-shadow:none; background-image:repeating-linear-gradient(90deg,currentColor 0 4px, transparent 4px 7px);}
.legend-body i.sw-glow{width:14px; height:14px; box-shadow:0 0 10px 4px currentColor; opacity:0.85;}
.legend-body i.sw-comet{width:16px; height:3px; border-radius:2px; box-shadow:none; background:linear-gradient(90deg,transparent,currentColor);}

.hud-counters{top:86px; left:12px; font-size:0.66rem; min-width:230px;}
.counters-grid{display:grid; grid-template-columns:auto 1fr 1fr; gap:2px 10px; align-items:center;}
.counters-grid .ch{color:var(--dim-text); font-size:0.62rem; text-transform:uppercase; letter-spacing:0.04em; text-align:right;}
.counters-grid .cv{font-family:'JetBrains Mono',monospace; text-align:right;}
.counters-grid .clabel{color:var(--dim-text);}

.hud-stats2{top:86px; left:12px; font-size:0.66rem; width:226px;}
.stats2-title{font-size:0.6rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--dim-text); margin-bottom:4px; line-height:1.3;}
.stats2-grid{display:grid; grid-template-columns:1fr auto; gap:3px 8px; align-items:baseline;}
.stats2-grid .clabel{color:var(--dim-text); font-size:0.64rem;}
.stats2-grid .sv{font-family:'JetBrains Mono',monospace; text-align:right; white-space:nowrap;}
.stats2-stack{display:flex; flex-direction:column; gap:7px;}
.stats2-stack .clabel{display:block; color:var(--dim-text); font-size:0.6rem; text-transform:uppercase; letter-spacing:0.03em;}
.stats2-stack .sv{display:block; font-family:'JetBrains Mono',monospace; font-size:0.74rem; overflow-wrap:break-word; margin-top:1px;}

.split-overlay{position:absolute; inset:0; z-index:5; pointer-events:none;}
.split-line{position:absolute; top:0; bottom:0; width:0; pointer-events:none;}
.split-line::before{content:''; position:absolute; top:0; bottom:0; left:-0.5px; width:1px;
  background:linear-gradient(180deg,transparent,var(--violet) 18%,var(--violet) 82%,transparent);}
.split-handle{position:absolute; top:50%; left:-15px; width:30px; height:30px; margin-top:-15px; border-radius:50%;
  background:rgba(9,14,26,0.9); border:1px solid var(--violet); color:var(--violet); pointer-events:auto;
  cursor:ew-resize; display:flex; align-items:center; justify-content:center; font-size:0.8rem; touch-action:none;}
.split-label{position:absolute; top:50px; font-family:'Instrument Serif',Georgia,serif; font-style:italic;
  font-size:1.05rem; white-space:nowrap; text-shadow:0 1px 6px #000;}
.split-label.left{right:14px; color:var(--text);}
.split-label.right{left:14px; color:var(--violet);}
.split-note{position:absolute; bottom:132px; font-size:0.64rem; color:var(--dim-text); width:230px; line-height:1.4;
  background:rgba(9,14,26,0.62); border-radius:6px; padding:4px 7px;}
.split-note.left{right:14px; text-align:right;}
.split-note.right{left:14px;}

.stage-hint{position:absolute; top:46px; left:50%; transform:translateX(-50%); z-index:5; font-size:0.74rem;
  color:var(--violet); background:rgba(9,14,26,0.82); border:1px solid rgba(199,125,255,0.45);
  padding:5px 14px; border-radius:999px; white-space:nowrap; pointer-events:none; max-width:92%;
  overflow:hidden; text-overflow:ellipsis;}
.stage-hint.amber{color:var(--amber-hot); border-color:var(--panel-border);}

[data-beat="3"] > .hud-legend{right:auto; left:12px; bottom:118px;}
.drawer{position:absolute; top:124px; right:12px; bottom:34px; width:340px; z-index:6;
  display:flex; flex-direction:column; gap:8px; padding:10px 12px; background:var(--panel-bg);
  border:1px solid var(--panel-border); border-radius:10px; backdrop-filter:blur(6px); overflow-y:auto;}
.tabs{display:flex; gap:6px;}
.tabs button{flex:1; background:transparent; border:1px solid var(--panel-border); color:var(--dim-text);
  padding:6px 8px; border-radius:6px; cursor:pointer; font-size:0.68rem;}
.tabs button.active{border-color:var(--violet); color:var(--amber-hot); background:rgba(199,125,255,0.12);}
.b5-title{font-family:'Instrument Serif',Georgia,serif; font-style:italic; font-size:1.05rem; margin:0; font-weight:400;}
.b5-sub{font-size:0.66rem; color:var(--dim-text); line-height:1.4; margin:0;}
ul.trace{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1px;}
ul.trace li{font-size:0.76rem; padding:5px 0 5px 16px; position:relative; border-left:1px solid rgba(199,125,255,0.35); line-height:1.35;}
ul.trace li::before{content:''; position:absolute; left:-4.5px; top:10px; width:8px; height:8px;
  border-radius:50%; background:var(--violet); box-shadow:0 0 8px var(--violet);}
ul.trace li em{color:var(--dim-text); font-size:0.82em;}
ul.trace li.b5-outcome{border-left-color:var(--gold);}
ul.trace li.b5-outcome::before{background:var(--gold); box-shadow:0 0 8px var(--gold);}
.b5-caveat{font-size:0.62rem; color:var(--dim-text); border-top:1px solid var(--panel-border); padding-top:6px; line-height:1.4;}
.compare-row{display:flex; flex-direction:column; gap:8px;}
.compare-card{background:rgba(255,255,255,0.03); border:1px solid var(--panel-border); border-radius:8px; padding:9px 11px; font-size:0.7rem;}
.compare-card h4{margin:0 0 4px; font-size:0.62rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--dim-text); font-weight:600;}
.compare-card p{margin:0; line-height:1.4;}
.b5-bars{display:flex; flex-direction:column; gap:5px;}
.b5-bar-row{font-size:0.66rem;}
.b5-bar-label{display:flex; justify-content:space-between; gap:6px; margin-bottom:2px;}
.b5-bar-label .nm{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.b5-bar-label .vv{color:var(--dim-text); font-family:'JetBrains Mono',monospace; flex-shrink:0;}
.b5-bar-track{height:8px; background:rgba(255,255,255,0.07); border-radius:4px; overflow:hidden;}
.b5-bar-fill{height:100%; background:linear-gradient(90deg,var(--amber),var(--fire));}
.b5-bar-row.best .b5-bar-fill{background:linear-gradient(90deg,var(--gold),var(--amber-hot));}
.b5-table{width:100%; border-collapse:collapse; font-size:0.62rem; margin-top:4px;}
.b5-table th,.b5-table td{padding:3px 4px; text-align:right; border-bottom:1px solid var(--panel-border);}
.b5-table th:first-child,.b5-table td:first-child{text-align:left;}
.b5-table tr.best td{color:var(--amber-hot);}

.ds-controls{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px;}
.ds-controls + .ds-controls{margin-top:10px;}
#askChip, #askChip[hidden] + #flagsToggle{margin-left:auto;}
.stage-row{display:grid; grid-template-columns:minmax(0,1fr); gap:12px;}
.stage-row.with-ask{grid-template-columns:minmax(0,1fr) 340px;}
.stage-row > .ask-slot{contain:size; min-height:0;}
.ask-dock:not(:empty){margin-top:14px;}
.ask-dock > .ask-slot{height:min(560px,78vh);}
.ask-slot[hidden]{display:none;}
.btn{background:var(--panel-bg); border:1px solid var(--panel-border); color:var(--text);
  padding:8px 18px; border-radius:999px; cursor:pointer; font-size:0.85rem;}
.btn:hover{border-color:var(--amber);}
.btn:disabled{opacity:0.45; cursor:default;}
.btn.primary{border-color:var(--violet); color:var(--amber-hot); background:rgba(199,125,255,0.14);}
.chip{background:transparent; border:1px solid var(--panel-border); color:var(--dim-text);
  padding:6px 12px; border-radius:999px; cursor:pointer; font-family:'JetBrains Mono',monospace; font-size:0.76rem;}
.chip.active{border-color:var(--amber); color:var(--amber-hot); background:rgba(242,179,91,0.1);}
.chip-group{display:flex; gap:6px; flex-wrap:wrap;}
.timeline-wrap{position:relative; flex:1 1 320px; min-width:220px; height:44px;}
#timeline{position:absolute; inset:0;}

.cesium-timeline-main{position:absolute; inset:0; border:1px solid var(--panel-border); border-radius:8px;
  background:var(--panel-bg); overflow:hidden; font-family:'JetBrains Mono',monospace;}
.cesium-timeline-bar{height:100%; background:transparent; cursor:pointer;}
.cesium-timeline-ruler{visibility:hidden; white-space:nowrap; font-size:10px;}
.cesium-timeline-ticLabel{color:var(--dim-text); font-size:10px; top:22px !important; white-space:nowrap;}
.cesium-timeline-ticMain{background:rgba(230,233,242,0.45); height:10px; top:6px !important;}
.cesium-timeline-ticSub{background:rgba(230,233,242,0.22); height:6px; top:6px !important;}
.cesium-timeline-ticTiny{background:rgba(230,233,242,0.12); height:4px; top:6px !important;}
.cesium-timeline-needle{background:var(--amber); width:2px; box-shadow:0 0 6px var(--amber);}
.cesium-timeline-icon16{display:none;}
.cesium-timeline-highlight{border-radius:1px;}

.live-panel{margin-top:16px; background:var(--panel-bg); border:1px solid var(--panel-border); border-radius:10px; padding:14px 16px;}
.live-panel h3{font-family:'Instrument Serif',Georgia,serif; font-weight:400; font-style:italic; margin:0 0 4px; font-size:1.25rem;}
.live-panel .b5-sub{font-size:0.78rem; margin-bottom:10px;}
.live-grid{display:grid; grid-template-columns:minmax(200px,1fr) minmax(260px,2fr); gap:14px;}
.hyp-list{display:flex; flex-direction:column; gap:6px;}
.hyp-list button{text-align:left; background:transparent; border:1px solid var(--panel-border); color:var(--text);
  border-radius:8px; padding:8px 10px; cursor:pointer; font-size:0.8rem; line-height:1.3;}
.hyp-list button small{display:block; color:var(--dim-text); font-size:0.68rem;}
.hyp-list button.active{border-color:var(--violet); background:rgba(199,125,255,0.1);}
.params{display:flex; flex-direction:column; gap:10px;}
.param{display:flex; flex-direction:column; gap:4px; font-size:0.74rem;}
.param label{color:var(--dim-text); text-transform:uppercase; letter-spacing:0.05em; font-size:0.62rem;}
.param .row{display:flex; align-items:center; gap:10px;}
.param input[type=range]{flex:1; accent-color:var(--violet);}
.param .val{font-family:'JetBrains Mono',monospace; min-width:92px; text-align:right;}
.param select{align-self:flex-start; min-width:120px; background:#0b1120; color:var(--text); border:1px solid var(--panel-border); border-radius:6px; padding:5px 8px; font-size:0.8rem;}
.batt-grid{display:flex; flex-wrap:wrap; gap:6px;}
.batt-grid label{display:flex; align-items:center; gap:4px; font-size:0.72rem; color:var(--text); text-transform:none; letter-spacing:0;
  border:1px solid var(--panel-border); border-radius:999px; padding:3px 9px; cursor:pointer;}
.batt-grid input{accent-color:var(--violet);}
.live-actions{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:4px;}
.live-status{font-size:0.76rem; color:var(--dim-text); font-family:'JetBrains Mono',monospace;}
.live-status.error{color:var(--med);}
.live-summary{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; margin-top:10px;}
.live-summary div{background:rgba(255,255,255,0.03); border:1px solid var(--panel-border); border-radius:8px; padding:7px 9px;}
.live-summary b{display:block; font-family:'JetBrains Mono',monospace; font-size:1rem; font-weight:500;}
.live-summary span{font-size:0.62rem; color:var(--dim-text); text-transform:uppercase; letter-spacing:0.04em;}
.live-progress{height:4px; background:rgba(255,255,255,0.07); border-radius:2px; overflow:hidden; margin-top:8px;}
.live-progress div{height:100%; width:0; background:linear-gradient(90deg,var(--violet),var(--magenta)); transition:width .3s;}

.mobile-dock{display:none;}

.ds-script{margin-top:34px; display:grid; gap:14px;}
.script-block{background:var(--panel-bg); border:1px solid var(--panel-border); border-radius:10px; padding:15px 18px;}
.script-block h3{font-family:'Instrument Serif',Georgia,serif; font-weight:400; font-style:italic; margin:6px 0; font-size:1.25rem;}
.script-block p{margin:0; color:var(--dim-text); font-size:0.86rem; line-height:1.55;}
.beat-notes{margin-top:12px; padding-top:10px; border-top:1px solid var(--panel-border); font-size:0.76rem; color:var(--dim-text); line-height:1.6;}
.beat-notes h4{margin:0 0 4px; color:var(--text); font-size:0.78rem; font-weight:600;}
.beat-notes ul{margin:0; padding-left:18px;}
.beat-notes strong{color:var(--text);}
.tag{display:inline-block; font-family:'JetBrains Mono',monospace; font-size:0.64rem; letter-spacing:0.04em;
  padding:2px 9px; border-radius:4px; text-transform:uppercase; background:rgba(242,179,91,0.15); color:var(--amber); border:1px solid rgba(242,179,91,0.4);}
.ds-provenance{margin-top:26px; font-size:0.75rem; color:var(--dim-text); border-top:1px solid var(--panel-border); padding-top:16px; line-height:1.65;}
.ds-provenance strong{color:var(--text);}
.ds-provenance h4{color:var(--text); font-size:0.8rem; margin:0 0 6px; font-weight:600;}
.ds-provenance ul{margin:6px 0; padding-left:18px;}

@media (max-width:700px){
  .ds-page{padding:16px 12px 40px;}
  .ds-stage{aspect-ratio:3/4;}
  .hud-clock,.hud-customers{max-width:46%; padding:6px 8px;}
  .hud-clock .hud-time{font-size:1.1rem;}
  .hud-value{font-size:1.05rem;}
  .spark{max-width:100px;}
  .ds-badge{top:84px; font-size:0.66rem; padding:3px 11px;}
  .cesium-widget-credits{font-size:9px; line-height:1.25;}
  .flag-card{min-width:160px; max-width:200px; font-size:0.56rem; padding:4px 6px;}
  .split-label{top:116px; font-size:0.86rem;}
  .split-note{display:none;}
  .stage-hint{display:none;}
  .ds-controls{flex-direction:column; align-items:stretch;}
  .chip-group{justify-content:center;}
  .timeline-wrap{flex:0 0 44px; width:100%;}
  .live-grid{grid-template-columns:1fr;}
  .mobile-dock:not(:empty){display:flex; flex-direction:column; gap:10px; margin:12px 0 0;}
  .mobile-dock .hud, .mobile-dock .drawer{position:static; transform:none; width:100%; max-width:100%;
    min-width:0; max-height:none; margin:0; pointer-events:auto;}
  .mobile-dock .hud-legend .legend-body{grid-template-columns:1fr 1fr;}
  .mobile-dock .stage-hint{display:block; position:static; transform:none; max-width:100%;
    white-space:normal; text-align:center; border-radius:10px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition:none !important;}
}
