@import "https://fonts.googleapis.com/css2?family=Rajdhani:wght@400;500;600;700&family=Share+Tech+Mono&display=swap";:root{--bg:#050a16;--bg-deep:#02050c;--panel:#0a1628;--panel-2:#0d1d33;--line:#16435a;--line-soft:#0f2b3c;--cyan:#19e6ff;--cyan-dim:#0a8aa0;--cyan-ink:#052a33;--magenta:#ff2d7a;--magenta-dim:#8a1443;--amber:#ffc83d;--green:#7cff6b;--violet:#9b7bff;--ink:#ddf4ff;--ink-soft:#9cc6d8;--mute:#557c90;--glow-cyan:0 0 6px #19e6ffb3, 0 0 18px #19e6ff59;--glow-magenta:0 0 6px #ff2d7ab3, 0 0 18px #ff2d7a59;--glow-amber:0 0 6px #ffc83db3, 0 0 16px #ffc83d4d;--font-ui:"Rajdhani", "Segoe UI", system-ui, sans-serif;--font-num:"Share Tech Mono", ui-monospace, Menlo, monospace;--radius:3px;--gap:12px;--rail-w:64px;--left-w:300px;--right-w:320px;--top-h:44px;--bottom-h:48px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);background-image:radial-gradient(at 50% -20%,#19e6ff14,#0000 55%),radial-gradient(at 50% 120%,#ff2d7a14,#0000 55%);font-size:15px;line-height:1.35;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.shell{grid-template-rows:var(--top-h) 1fr var(--bottom-h);grid-template-columns:var(--rail-w) var(--left-w) 1fr var(--right-w);gap:var(--gap);height:100%;padding:var(--gap);grid-template-areas:"top top top top""rail left centre right""bottom bottom bottom bottom";display:grid}.shell>.top{grid-area:top}.shell>.rail{grid-area:rail}.shell>.left{grid-area:left;min-height:0}.shell>.centre{grid-area:centre;min-width:0;min-height:0}.shell>.right{grid-area:right;min-height:0}.shell>.bottom{grid-area:bottom}@media (width<=1280px){:root{--left-w:260px;--right-w:280px}}@media (width<=1000px){body{overflow:auto}.shell{grid-template-columns:var(--rail-w) 1fr;grid-template-rows:auto auto auto auto auto;grid-template-areas:"top top""rail centre""rail left""rail right""bottom bottom";height:auto}}.top{align-items:center;gap:16px;padding:0 4px;display:flex}.banner{border:1px solid var(--amber);border-radius:var(--radius);color:var(--amber);letter-spacing:.02em;white-space:nowrap;background:#ffc83d0f;align-items:center;gap:10px;padding:6px 14px;font-weight:600;display:flex}.banner .dot{background:var(--amber);width:8px;height:8px;box-shadow:var(--glow-amber);border-radius:50%}.top .spacer{flex:1}.top .selectors{align-items:center;gap:14px;display:flex}.mode-switch{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-deep);display:inline-flex;overflow:hidden}.mode-switch button{color:var(--mute);letter-spacing:.08em;background:0 0;border:0;padding:6px 18px;font-weight:700}.mode-switch button.on.demo{background:var(--cyan);color:var(--cyan-ink);box-shadow:var(--glow-cyan)}.mode-switch button.on.live{background:var(--magenta);color:#fff;box-shadow:var(--glow-magenta)}.rail{flex-direction:column;gap:8px;display:flex}.rail button{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);color:var(--mute);letter-spacing:.04em;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:11px;font-weight:600;display:flex}.rail button svg{stroke:currentColor;fill:none;stroke-width:1.6px;width:22px;height:22px}.rail button:hover{color:var(--ink);border-color:var(--line)}.rail button.on{color:var(--cyan);border-color:var(--cyan);box-shadow:inset 0 0 12px #19e6ff26}.panel{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#0d1d33e6,#050a16f2);flex-direction:column;height:100%;min-height:0;display:flex;position:relative;box-shadow:inset 0 0 0 1px #19e6ff0a}.panel:before,.panel:after{content:"";border-color:var(--cyan);pointer-events:none;border-style:solid;width:14px;height:14px;position:absolute}.panel:before{border-width:2px 0 0 2px;top:-1px;left:-1px}.panel:after{border-width:0 2px 2px 0;bottom:-1px;right:-1px}.panel.magenta:before,.panel.magenta:after{border-color:var(--magenta)}.panel-head{background:var(--cyan);color:var(--cyan-ink);letter-spacing:.06em;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%);align-items:center;gap:10px;margin:10px 10px 0;padding:4px 12px;font-weight:700;display:flex}.panel.magenta .panel-head{background:var(--magenta);color:#fff}.panel-head .sub{opacity:.8;margin-left:auto;margin-right:12px;font-weight:500}.panel-body{flex:1;min-height:0;padding:12px;overflow:auto}.panel-body.flush{padding:0;overflow:hidden}.section-title{color:var(--cyan);letter-spacing:.04em;margin:14px 0 6px;font-weight:600}.section-title:first-child{margin-top:0}.stepper{align-items:center;gap:6px;display:inline-flex}.stepper .label{color:var(--ink-soft);margin-right:4px}.stepper button{border:1px solid var(--cyan-dim);background:var(--bg-deep);width:24px;height:24px;color:var(--cyan);border-radius:2px;line-height:1}.stepper button:hover{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.stepper button:disabled{opacity:.35;box-shadow:none;cursor:default}.stepper .value{text-align:center;min-width:70px;color:var(--cyan);font-weight:700}.btn{border:1px solid var(--cyan-dim);background:var(--bg-deep);color:var(--cyan);letter-spacing:.04em;border-radius:2px;padding:6px 14px;font-weight:600}.btn:hover:not(:disabled){border-color:var(--cyan);box-shadow:var(--glow-cyan)}.btn.primary{background:var(--cyan);color:var(--cyan-ink)}.btn.magenta{border-color:var(--magenta-dim);color:var(--magenta)}.btn.magenta:hover:not(:disabled){border-color:var(--magenta);box-shadow:var(--glow-magenta)}.btn:disabled{opacity:.4;cursor:default}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.field>label{color:var(--ink-soft);justify-content:space-between;font-size:13px;display:flex}.field input[type=range]{width:100%;accent-color:var(--cyan)}.field input[type=number],.field select,.select{border:1px solid var(--line);background:var(--bg-deep);color:var(--ink);border-radius:2px;padding:4px 8px}.field input[type=number]{width:90px}.tag{letter-spacing:.08em;vertical-align:middle;text-transform:uppercase;border-radius:2px;padding:0 5px;font-size:10px;font-weight:700;line-height:15px;display:inline-block}.tag.target{color:var(--cyan);background:#19e6ff24}.tag.estimate{color:var(--amber);background:#ffc83d24}.tag.measured{color:var(--green);background:#7cff6b24}.tag.notes{color:var(--violet);background:#9b7bff24}.value-tag{align-items:baseline;gap:6px;display:inline-flex}.value-tag .v{color:var(--ink)}.value-tag .u{color:var(--mute);font-size:12px}.heater-list{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.heater-chip{border:1px solid var(--line-soft);background:var(--bg-deep);text-align:left;border-radius:2px;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;display:flex}.heater-chip .name{color:var(--cyan);font-weight:700}.heater-chip .val{color:var(--ink-soft);font-size:12px}.heater-chip:hover{border-color:var(--cyan-dim)}.heater-chip.on{border-color:var(--magenta);box-shadow:var(--glow-magenta)}.heater-chip.on .name{color:var(--magenta)}.heater-chip.limit{border-color:var(--amber)}.readout{grid-template-columns:1fr auto;gap:4px 12px;margin:8px 0;display:grid}.readout dt{color:var(--ink-soft)}.readout dd{color:var(--ink);text-align:right;margin:0}.alert{border:1px solid var(--amber);color:var(--amber);background:#ffc83d14;border-radius:2px;margin:8px 0;padding:8px 10px;font-size:13px}.alert.bad{border-color:var(--magenta);color:var(--magenta);background:#ff2d7a14}.alert.good{border-color:var(--green);color:var(--green);background:#7cff6b14}.muted{color:var(--mute);font-size:13px}.toolbar{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);align-items:center;gap:10px;padding:0 6px;display:flex}.toolbar .icon-btn{border:1px solid var(--cyan-dim);background:var(--bg-deep);width:34px;height:34px;color:var(--cyan);border-radius:2px;place-items:center;display:grid}.toolbar .icon-btn svg{fill:currentColor;width:16px;height:16px}.toolbar .icon-btn:hover{box-shadow:var(--glow-cyan)}.toolbar .icon-btn.on{background:var(--cyan);color:var(--cyan-ink)}.toolbar .status{color:var(--ink-soft);align-items:center;gap:8px;margin-left:auto;display:flex}.toolbar .led{border-radius:50%;width:10px;height:10px}.toolbar .led.demo{background:var(--cyan);box-shadow:var(--glow-cyan)}.toolbar .led.live-off{background:var(--magenta-dim)}.toolbar .led.live-on{background:var(--magenta);box-shadow:var(--glow-magenta)}.toolbar .title{letter-spacing:.08em;font-weight:700}.chip-stage{background:linear-gradient(#19e6ff0a 1px, transparent 1px) 0 0 / 100% 24px, linear-gradient(90deg, #19e6ff0a 1px, transparent 1px) 0 0 / 24px 100%, var(--bg-deep);height:100%;position:relative}.chip-stage svg{width:100%;height:100%;display:block}.chip-stage .overlay{color:var(--ink-soft);gap:14px;font-size:12px;display:flex;position:absolute;top:10px;left:12px}.chip-stage .overlay b{color:var(--cyan)}.chip-stage .flow{stroke-dasharray:6 14;stroke-linecap:round;animation:flow var(--flow-s,1.4s) linear infinite}.chip-stage svg.frozen .flow{animation-play-state:paused}@keyframes flow{to{stroke-dashoffset:-20px}}.chart{width:100%;display:block}.chart text{font-family:var(--font-num);fill:var(--ink-soft);font-size:11px}.chart .axis{stroke:var(--line)}.chart .grid{stroke:var(--line-soft);stroke-dasharray:2 4}.heatmap-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.heatmap-pair h4{color:var(--ink-soft);margin:0 0 4px;font-weight:600}.bench{grid-template-columns:1fr auto 2fr auto 1fr;align-items:center;gap:8px;height:100%;padding:24px;display:grid}.bench .block{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:14px}.bench .block h3{color:var(--cyan);letter-spacing:.04em;margin:0 0 8px;font-size:15px}.bench .block.chip{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.bench .arrow{color:var(--cyan);text-align:center;font-size:28px}.option{border:1px solid var(--line-soft);background:var(--bg-deep);text-align:left;border-radius:2px;width:100%;margin:4px 0;padding:6px 8px;display:block}.option.on{border-color:var(--magenta);color:var(--magenta)}.budget{grid-template-columns:1fr;gap:6px;display:grid}.budget-row{grid-template-columns:200px 1fr 70px 80px;align-items:center;gap:10px;font-size:14px;display:grid}.budget-row .bar{background:var(--bg-deep);border:1px solid var(--line-soft);height:14px}.budget-row .bar i{background:linear-gradient(90deg, var(--cyan-dim), var(--cyan));height:100%;box-shadow:var(--glow-cyan);display:block}.budget-row.total{border-top:1px solid var(--line);padding-top:6px;font-weight:700}.budget-row.total .bar i{background:linear-gradient(90deg, var(--magenta-dim), var(--magenta));box-shadow:var(--glow-magenta)}.lab-list button{border:1px solid var(--line-soft);background:var(--bg-deep);text-align:left;border-radius:2px;width:100%;margin-bottom:6px;padding:8px 10px;display:block}.lab-list button .code{color:var(--mute);font-size:12px}.lab-list button.on{border-color:var(--cyan);color:var(--cyan)}.steps{counter-reset:step;margin:0;padding:0;list-style:none}.steps li{border-left:1px solid var(--line-soft);margin-left:10px;padding:6px 0 6px 30px;position:relative}.steps li:before{counter-increment:step;content:counter(step);border:1px solid var(--line);background:var(--bg-deep);width:20px;height:20px;color:var(--mute);text-align:center;border-radius:50%;font-size:11px;line-height:18px;position:absolute;top:6px;left:-11px}.steps li.done:before{border-color:var(--cyan);color:var(--cyan)}.steps li.active:before{border-color:var(--magenta);color:var(--magenta);box-shadow:var(--glow-magenta)}.verdict{letter-spacing:.06em;border-radius:2px;margin-top:12px;padding:10px 12px;font-weight:700}.verdict.pass{border:1px solid var(--green);color:var(--green);background:#7cff6b14}.verdict.fail{border:1px solid var(--magenta);color:var(--magenta);background:#ff2d7a14}.verdict.pending{border:1px solid var(--line);color:var(--mute)}.live-empty{text-align:center;height:100%;color:var(--ink-soft);place-items:center;display:grid}.live-empty h2{color:var(--magenta);letter-spacing:.08em;text-shadow:var(--glow-magenta);margin:0 0 6px}.endpoint{grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0;font-size:13px;display:grid}.endpoint dt{color:var(--magenta)}.endpoint dd{color:var(--ink-soft);margin:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
