:root{--floor: #f6efe6;--text: #3b2f4a;--muted: rgba(59, 47, 74, .55);--card: rgba(255, 255, 255, .72);--pink: #ff8fb1;--mint: #9be7c4;--sky: #a0d8f1;--sun: #ffe08a;--coral: #ff7a6b;--lavender: #eadcf5}html,body{margin:0;height:100%;overflow:hidden;background:#efe3d8;font-family:Nunito,Segoe UI,system-ui,sans-serif;color:var(--text)}#stage{position:fixed;inset:0}#stage canvas{display:block;width:100%;height:100%}#hud{position:fixed;top:0;left:0;right:0;display:flex;gap:1.2vw;padding:1.4vh 1.6vw;align-items:stretch;pointer-events:none;transform-origin:top left}.tile{flex:1 1 0;background:var(--card);border-radius:1.6vh;padding:1.1vh 1.2vw 1.3vh;box-shadow:0 .6vh 2vh #3b2f4a1f;backdrop-filter:blur(6px);min-width:0;display:flex;flex-direction:column;justify-content:center}.tile .label{font-size:min(1.9vh,1vw);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.tile .value{font-size:min(6.2vh,3.4vw);font-weight:900;line-height:1.05;font-variant-numeric:tabular-nums;white-space:nowrap}.tile .unit{font-size:2.6vh;font-weight:800;color:var(--muted);margin-left:.3vw}.tile.waiting{border-bottom:.7vh solid var(--pink)}.tile.done{border-bottom:.7vh solid var(--mint)}.tile.in{border-bottom:.7vh solid var(--sky)}.tile.out{border-bottom:.7vh solid var(--sun)}.tile.ready,.tile.van{border-bottom:.7vh solid var(--lavender)}.tile.van .value,.tile.trend .value{font-size:min(4.2vh,1.9vw);letter-spacing:-.01em}.tile .value{overflow:hidden;text-overflow:clip}.tile.trend .value{display:flex;align-items:center;gap:.6vw}.tile.trend .arrow{font-size:6vh;line-height:1}.tile.trend.up{border-bottom:.7vh solid var(--coral)}.tile.trend.up .value{color:var(--coral)}.tile.trend.down{border-bottom:.7vh solid var(--mint)}.tile.trend.down .value{color:#2f9c70}.tile.trend.flat{border-bottom:.7vh solid rgba(59,47,74,.2)}.tile.van.here .value{color:#2f9c70}#footer{position:fixed;left:1.6vw;right:1.6vw;bottom:1vh;display:flex;justify-content:space-between;font-size:1.7vh;font-weight:700;color:var(--muted);pointer-events:none}#footer .dot{display:inline-block;width:1.3vh;height:1.3vh;border-radius:50%;margin-right:.5vw;background:#f0b000;vertical-align:middle;transition:background .4s}#footer .dot.live{background:#39c07a}#mock-panel{position:fixed;right:1vw;bottom:4vh;background:#ffffffeb;border-radius:12px;padding:10px 14px;font-size:13px;box-shadow:0 6px 20px #00000026;display:flex;flex-direction:column;gap:6px;z-index:10}#mock-panel[hidden]{display:none}#mock-panel label{display:flex;justify-content:space-between;gap:10px;align-items:center}#mock-panel button{font:inherit;padding:4px 10px;border-radius:8px;border:1px solid #c9b6e4;background:#fff;cursor:pointer}#mock-panel button:hover{background:#f3ecfb}#pulse{position:fixed;top:15.2vh;left:1.6vw;right:1.6vw;height:5.4vh;display:flex;gap:1.2vw;pointer-events:none}#pulse .target{flex:3 1 0;background:var(--card);border-radius:1.4vh;padding:.7vh 1.2vw;box-shadow:0 .4vh 1.4vh #3b2f4a1a;display:flex;align-items:center;gap:1vw}#pulse .target .label{font-size:min(1.8vh,.95vw);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}#pulse .track{position:relative;flex:1;height:2.2vh;border-radius:1.1vh;background:#3b2f4a1a;overflow:visible}#pulse .fill{position:absolute;left:0;top:0;bottom:0;border-radius:1.1vh;background:var(--mint);transition:width .8s}#pulse .fill.behind{background:var(--coral)}#pulse .mark{position:absolute;top:-.6vh;bottom:-.6vh;width:.35vw;background:var(--text);border-radius:.2vw;opacity:.6;transition:left .8s}#pulse .target .text{font-size:min(2.4vh,1.2vw);font-weight:900;white-space:nowrap;font-variant-numeric:tabular-nums}#pulse .target .text.behind{color:var(--coral)}#pulse .target .text.ahead{color:#2f9c70}#pulse .spark{flex:2 1 0;background:var(--card);border-radius:1.4vh;padding:.5vh 1vw;box-shadow:0 .4vh 1.4vh #3b2f4a1a;display:flex;align-items:center;gap:.8vw}#pulse .spark .label{font-size:min(1.8vh,.95vw);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}#pulse .spark svg{flex:1;height:100%}#pulse .spark .now{font-size:min(2.2vh,1.1vw);font-weight:900;color:var(--muted);white-space:nowrap}body.drop #hud .tile.waiting{background:#ffe3ea}body.drop #hud .tile.waiting .value{color:#d8325f}body.stats-view{overflow:auto}#stats{box-sizing:border-box;min-height:100vh;padding:2.4vh 2.4vw 6vh;max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:2vh}#stats header{display:flex;align-items:baseline;gap:1.2vw}#stats h1{font-size:4vh;margin:0;font-weight:900}#stats .when{font-size:2vh;color:var(--muted);font-weight:800;flex:1}#stats .mode{font-size:1.7vh;font-weight:900;text-transform:uppercase;letter-spacing:.08em;padding:.5vh 1vw;border-radius:2vh;background:var(--mint)}#stats .mode.busy{background:var(--sun)}#stats .mode.drop{background:var(--coral);color:#fff}#stats h2{font-size:2vh;margin:0 0 1.2vh;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;display:flex;justify-content:space-between}#stats h2 span{text-transform:none;letter-spacing:0;font-weight:800}#stats .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2vw}#stats .kpi{background:var(--card);border-radius:1.6vh;padding:1.4vh 1.4vw 1.6vh;box-shadow:0 .6vh 2vh #3b2f4a1a;border-bottom:.6vh solid var(--sky)}#stats .kpi.done{border-color:var(--mint)}#stats .kpi.waiting{border-color:var(--pink)}#stats .kpi.van{border-color:var(--lavender)}#stats .kpi .l{font-size:1.6vh;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}#stats .kpi .v{font-size:5.6vh;font-weight:900;line-height:1.15}#stats .kpi .v em{font-style:normal;color:var(--muted);margin:0 .3vw;font-size:4vh}#stats .kpi .s{font-size:1.7vh;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#stats .kpi .s.ahead{color:#2f9c6a}#stats .kpi .s.behind{color:var(--coral)}#stats .kpi .track{position:relative;height:1.1vh;background:#3b2f4a1a;border-radius:1vh;margin:.8vh 0 .6vh}#stats .kpi .track .fill{position:absolute;left:0;top:0;bottom:0;background:var(--mint);border-radius:1vh;transition:width .6s}#stats .kpi .track .fill.behind{background:var(--coral)}#stats .kpi .track .mark{position:absolute;top:-.4vh;bottom:-.4vh;width:.25vw;margin-left:-.12vw;background:var(--text);border-radius:.2vh;opacity:.6}#stats .body{display:grid;grid-template-columns:3fr 2fr;gap:1.2vw;flex:1;min-height:0}#stats .panel{background:var(--card);border-radius:1.6vh;padding:1.8vh 1.4vw 2vh;box-shadow:0 .6vh 2vh #3b2f4a1a;display:flex;flex-direction:column;min-height:0}#stats .bars{display:flex;gap:.5vw;flex:1;min-height:28vh;align-items:stretch;padding:0 .2vw 3.2vh}#stats .bar{flex:1;position:relative;display:flex;flex-direction:column}#stats .bar .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box;padding-top:3vh}#stats .bar .v{height:2.6vh;line-height:2.6vh;text-align:center;font-weight:900;font-size:1.8vh}#stats .bar .fill{background:var(--sky);border-radius:.6vh .6vh 0 0;min-height:3px;transition:height .6s}#stats .bar.now .fill{background:var(--pink)}#stats .bar.future .fill{background:#3b2f4a14}#stats .bar .h{position:absolute;left:0;right:0;top:100%;text-align:center;font-size:1.6vh;color:var(--muted);font-weight:800;padding-top:.5vh}#stats .bar.now .h{color:var(--text)}#stats .list{display:flex;flex-direction:column;gap:1vh;flex:1}#stats .station{flex:1;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:1.2vw;align-items:center;background:#ffffffb3;border-radius:1.2vh;padding:1vh 1.2vw;border-left:.6vh solid rgba(59,47,74,.15)}#stats .station.busy{border-left-color:var(--pink)}#stats .station.steady{border-left-color:var(--mint)}#stats .station.slow{border-left-color:var(--sun)}#stats .station.idle{opacity:.55}#stats .station .name{grid-row:1 / span 2;font-size:2.3vh;font-weight:900;min-width:6vw}#stats .station .num{grid-column:3;grid-row:1 / span 2;font-size:4.2vh;font-weight:900;line-height:1;text-align:right}#stats .station .num span{display:block;font-size:1.4vh;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em}#stats .station .rates{font-size:1.8vh;color:var(--muted);font-weight:700}#stats .station .rates b{color:var(--text);font-weight:900}#stats .station .rates i{font-style:normal;margin:0 .5vw}#stats .station .meta{display:flex;align-items:center;gap:.8vw;font-size:1.6vh;color:var(--muted);font-weight:700;margin-top:.4vh}#stats .pill{padding:.25vh .7vw;border-radius:2vh;font-size:1.4vh;font-weight:900;text-transform:uppercase;letter-spacing:.06em;background:#3b2f4a1a}#stats .pill.busy{background:var(--pink);color:#fff}#stats .pill.steady{background:var(--mint)}#stats .pill.slow{background:var(--sun)}@media(max-aspect-ratio:4/3){#stats .kpis{grid-template-columns:repeat(2,1fr)}#stats .body{grid-template-columns:1fr}}
