*{box-sizing:border-box;margin:0}:root{--bg: #0b1220;--panel: #121b2e;--text: #e8eefc;--muted: #8595b3;--accent: #4cc2ff}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.shell{position:relative;display:flex;flex-direction:column;height:100%;padding:env(safe-area-inset-top) 12px calc(env(safe-area-inset-bottom) + 12px)}.sidebar{display:contents}header{order:1}.rects{order:2}main{order:3}footer{order:4}.side-toggle{display:none}.mapmsg{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px;text-align:center}.mapmsg .error{padding:0}.mapmsg-detail{font-size:.8rem}.linklike{margin-top:6px;border:none;background:none;color:var(--accent);font:inherit;font-size:.9rem;padding:6px 4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 4px 8px}h1{flex:none;font-size:1.25rem;font-weight:700;letter-spacing:.02em}.accent{color:var(--accent);font-weight:400}.brand{position:relative}.brand>button{background:none;border:none;padding:0;font:inherit;color:inherit;letter-spacing:inherit;cursor:pointer}.site-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:var(--panel);border:1px solid #2a3a5c;border-radius:10px;padding:6px;display:flex;flex-direction:column;min-width:220px;box-shadow:0 6px 24px #00000073}.site-option{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:7px;font-size:.85rem;font-weight:400;letter-spacing:normal;color:inherit;text-decoration:none}.site-option strong{font-weight:600}.site-option .muted{font-size:.75rem;white-space:nowrap}.site-option:hover{background:#5a8cdc1f}.site-option.active{background:#5a8cdc14}@media(max-width:380px){h1{font-size:1.1rem}header{gap:6px;padding:12px 2px 8px}}.runinfo{display:flex;align-items:center;gap:8px;min-width:0;font-size:.85rem;position:relative}.model-name{background:none;border:none;color:var(--text);font:inherit;padding:0;cursor:pointer;white-space:nowrap;min-width:3ch;overflow:hidden;text-align:left;text-overflow:ellipsis}.model-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;background:var(--panel);border:1px solid #2a3a5c;border-radius:10px;padding:6px;display:flex;flex-direction:column;min-width:220px;box-shadow:0 6px 24px #00000073}.model-option{background:none;border:none;color:var(--text);font:inherit;font-size:.85rem;text-align:left;text-decoration:none;padding:8px 10px;border-radius:7px;cursor:pointer}.model-option:hover{background:#1d2a44}.model-option.active{color:var(--accent)}.freshness{display:flex;align-items:center;flex:none;border:none;background:none;color:inherit;padding:4px 2px;cursor:pointer}.freshness svg{flex:none;opacity:.85}.freshness:hover svg{opacity:1}.delivery-card{position:absolute;top:calc(100% + 4px);right:0;z-index:30;background:var(--panel);border:1px solid #2a3a5c;border-radius:10px;padding:10px 12px;font-size:.78rem;color:var(--text);box-shadow:0 6px 24px #00000073;width:max-content;min-width:300px;max-width:min(460px,calc(100vw - 24px));max-height:calc(100vh - 76px);overflow:auto}.delivery-card .dc-head{font-weight:600}.delivery-card .dc-sub{margin:1px 0 6px}.delivery-card table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.delivery-card th{text-align:left;font-weight:500;color:var(--muted);padding:2px 8px 2px 0;border-bottom:1px solid #2a3a5c}.delivery-card td{padding:3px 8px 3px 0;white-space:nowrap}.delivery-card .dc-note{margin-top:6px;font-size:.72rem;white-space:normal}.delivery-card .dc-section{margin-top:12px;padding-top:10px;border-top:1px solid #2a3a5c}.muted{color:var(--muted)}.error{color:#ff9d9d;padding:24px;text-align:center}.rects{display:flex;gap:8px;overflow-x:auto;padding:0 4px 8px}.chip{border:1px solid #2a3a5c;background:var(--panel);color:var(--text);border-radius:999px;padding:6px 14px;font-size:.85rem;white-space:nowrap}.chip.active{border-color:var(--accent);color:var(--accent)}main{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;background:var(--panel);border-radius:12px;overflow:hidden}.frame{width:100%;height:auto;max-height:100%;object-fit:contain}footer{padding:12px 4px 0}.timerow{display:flex;align-items:center;gap:12px;padding-bottom:8px}.play{width:44px;height:44px;border-radius:50%;border:1px solid #2a3a5c;background:var(--panel);color:var(--accent);font-size:.9rem}.timelabel{display:flex;flex-direction:column;line-height:1.25}.timelabel strong{font-size:1.05rem}.timelabel .muted{font-size:.8rem}input[type=range]{width:100%;height:44px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:#243450}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:26px;height:26px;margin-top:-10px;border-radius:50%;background:var(--accent);border:3px solid var(--bg)}input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:#243450}input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--accent);border:3px solid var(--bg)}.ticks{display:flex;justify-content:space-between;gap:12px;font-size:.75rem;color:var(--muted);padding-top:2px}.info{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--muted);font-size:1.05rem;line-height:1;padding:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#040810b3;display:flex;align-items:flex-end;justify-content:center;z-index:10}.modal{background:var(--panel);border-radius:16px 16px 0 0;max-width:720px;width:100%;max-height:85vh;overflow-y:auto;padding:20px 20px calc(env(safe-area-inset-bottom) + 20px);font-size:.9rem;line-height:1.5}@media(min-width:620px),(orientation:landscape){.modal-backdrop{align-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.modal{border-radius:14px;max-width:560px;max-height:100%;padding:22px 24px;border:1px solid #2a3a5c;box-shadow:0 18px 50px #0000008c}}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal h2{font-size:1.1rem}.modal h3{font-size:.95rem;margin-top:16px;color:var(--accent)}.modal p,.modal ul{margin-top:8px;color:var(--text)}.modal ul{padding-left:20px}.modal li{margin-bottom:6px}.modal a{color:var(--accent)}.modal-close{border:none;background:none;color:var(--muted);font-size:1rem;padding:8px;cursor:pointer}.windmap-wrap>.windmap{position:absolute;top:0;right:0;bottom:0;left:0}main{position:relative}.controls{padding-bottom:8px}.chips{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:0 4px}.spacer{flex:1}.legend{position:absolute;left:10px;bottom:10px;z-index:5;background:#0b1220c7;border-radius:8px;padding:4px 8px 6px}.legend-toggle{display:flex;align-items:center;gap:5px;width:100%;border:none;background:none;padding:2px 0 4px;cursor:pointer}.legend-chevron{font-size:.6rem;color:var(--muted);line-height:1}.legend-strip{display:flex;flex-direction:column-reverse;width:16px;border-radius:2px;overflow:hidden}.legend-strip span{height:7px}.legend-bands{display:flex;flex-direction:column;gap:2px}.legend-band{display:flex;align-items:center;gap:6px;font-size:.65rem;color:var(--text)}.legend-swatch{width:16px;height:9px;border-radius:2px;flex:none}.legend-unit{font-size:.6rem;color:var(--muted)}.windmap-wrap .maplibregl-ctrl-attrib,.windmap-wrap .maplibregl-ctrl-attrib.maplibregl-compact{font-size:9px;background:#0b122099;color:var(--muted)}.windmap-wrap .maplibregl-ctrl-attrib a{color:var(--muted)}.windmap-wrap .maplibregl-ctrl-attrib-button{background-color:transparent;filter:invert(1) opacity(.6)}.windmap-wrap .maplibregl-ctrl-group{background:#121b2ed9;border:1px solid #2a3a5c;border-radius:8px;box-shadow:none;overflow:hidden}.windmap-wrap .maplibregl-ctrl-group button+button{border-top:1px solid #2a3a5c}.windmap-wrap .maplibregl-ctrl-group button{background:transparent;width:30px;height:30px}.windmap-wrap .maplibregl-ctrl-group button:hover{background:#4cc2ff24}.windmap-wrap .maplibregl-ctrl-group button:disabled .maplibregl-ctrl-icon{opacity:.35}.windmap-wrap .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1) opacity(.82)}.windmap-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.wind-arrows{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}.setting-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.modal p.setting-hint{font-size:.8rem;color:var(--muted);margin-top:6px}.setting-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.theme-option{display:flex;align-items:center;gap:12px;border:1px solid #2a3a5c;background:#0b122080;color:var(--text);border-radius:10px;padding:10px 12px;font-size:.85rem;text-align:left}.theme-option.active{border-color:var(--accent);color:var(--accent)}.theme-name{min-width:64px}.theme-swatch{display:flex;flex:1;height:12px;border-radius:3px;overflow:hidden}.theme-swatch span{flex:1}.theme-range{font-size:.75rem}.zone{display:flex;align-items:center;gap:4px;pointer-events:none}.zone-dot{width:5px;height:5px;border-radius:50%;background:#ffffffbf;flex:none}.zone-label{font-size:10px;color:#e8eefcd1;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.7);white-space:nowrap}.zone-emphasis .zone-dot{width:7px;height:7px;background:var(--accent)}.zone-sensor{pointer-events:auto;cursor:pointer}.zone-sensor .zone-dot{border-radius:1px;background:#2dd4bfd9}.zone-sensor .zone-label{font-size:9px;color:#b2d8d8bf}.sensor-card{position:absolute;right:10px;bottom:28px;width:min(520px,calc(100% - 20px));background:#0d1629f7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(120,150,200,.25);border-radius:10px;padding:10px 12px;z-index:30;box-shadow:0 6px 24px #00000080}.sensor-card header{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.sensor-card header strong{font-size:13px}.sensor-card .sensor-latest{flex:1;font-size:11px;text-align:right}.sensor-card header button{background:none;border:none;color:#e8eefcb3;font-size:16px;cursor:pointer;padding:0 2px}.sensor-chart{display:block;width:100%}.sensor-chart .grid{stroke:#7896c826;stroke-width:1}.sensor-chart .tick{fill:#c8d4eb99;font-size:10px}.sensor-chart .nowline{stroke:#ffffff8c;stroke-dasharray:3 3}.sensor-chart .cursorline{stroke:#5aaaff80}.sensor-chart .line-obs{fill:none;stroke:#ffffffeb;stroke-width:1.8}.sensor-chart .line-model10{fill:none;stroke:#4da3ff;stroke-width:1.6}.sensor-chart .line-model2{fill:none;stroke:#4da3ff8c;stroke-width:1.3;stroke-dasharray:5 4}.sensor-legend,.sensor-bench{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:10.5px;margin-top:4px}.sensor-legend .swatch{display:inline-block;width:14px;height:3px;vertical-align:middle;margin-right:4px}.swatch-obs{background:#ffffffeb}.swatch-m10{background:#4da3ff}.swatch-m2{background:#4da3ff8c}.sensor-bench .chip-sm{border:1px solid rgba(120,150,200,.3);border-radius:8px;padding:1px 6px}.zone-emphasis .zone-label{font-size:11.5px;font-weight:600;color:#fff}.view-chips{position:absolute;left:10px;top:10px;z-index:5;display:flex;gap:6px}.view-chips .chip{background:#0b1220c7;font-size:.75rem;padding:5px 11px}@media(orientation:landscape)and (min-width:600px){.shell{--side-w: clamp(250px, 25vw, 330px);flex-direction:row;padding:0}.sidebar{display:flex;flex-direction:column;flex:none;width:var(--side-w);margin-left:0;visibility:visible;transition:margin-left .2s ease,visibility 0s;border-right:1px solid #1e2a44;padding:env(safe-area-inset-top) 14px calc(env(safe-area-inset-bottom) + 14px) max(14px,env(safe-area-inset-left))}.shell.rail .sidebar{margin-left:calc(-1 * var(--side-w));visibility:hidden;transition:margin-left .2s ease,visibility 0s .2s}.sidebar header{flex-direction:column;align-items:stretch;gap:10px;padding:14px 2px 10px}.runinfo{flex-wrap:wrap;gap:2px 6px}.model-name{flex:1 0 100%;font-size:.9rem}.freshness{margin-right:auto}.delivery-card{right:auto;left:0}.model-menu{min-width:0;left:0;right:0}.rects{flex-wrap:wrap;overflow:visible;padding:0 2px 10px}main{flex:1;min-width:0;border-radius:0}footer{margin-top:auto;padding:14px 2px 0}.ticks{font-size:.7rem}.side-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;left:var(--side-w);transform:translateY(-50%);transition:left .2s ease;z-index:6;width:18px;height:58px;padding:0;border:1px solid #2a3a5c;border-left:none;border-radius:0 8px 8px 0;background:#121b2eeb;color:var(--muted);font-size:.95rem;line-height:1;cursor:pointer}.side-toggle:hover{color:var(--text);background:#1c2842f2}.shell.rail .side-toggle{left:0}}@media(prefers-reduced-motion:reduce){.sidebar,.side-toggle{transition:none}}.brand-caret{display:inline-block;margin-left:5px;font-size:.65em;color:var(--muted);transition:transform .15s ease;vertical-align:2px}.brand>button[aria-expanded=true] .brand-caret{transform:rotate(180deg)}.archive{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:env(safe-area-inset-top) 14px calc(env(safe-area-inset-bottom) + 24px);max-width:720px;margin:0 auto}.archive-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 2px 6px;font-size:.85rem}.archive-head a{color:var(--accent);text-decoration:none}.archive-intro{padding:0 2px 14px;font-size:.85rem;line-height:1.45;max-width:52ch}.archive-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:0 2px 12px;font-size:.8rem;color:var(--muted)}.cal-nav{display:flex;align-items:center;gap:6px;color:var(--text);font-size:.95rem}.cal-nav strong{min-width:9.5ch;text-align:center;font-weight:600}.cal-nav button{width:28px;height:28px;border:1px solid #2a3a5c;border-radius:7px;background:var(--panel);color:var(--text);font-size:1rem;line-height:1;cursor:pointer}.cal-nav button:hover:not(:disabled){background:#5a8cdc29}.cal-nav button:disabled{opacity:.35;cursor:default}.archive-field{display:inline-flex;align-items:center;gap:6px}.archive-field input,.archive-field select{border:1px solid #2a3a5c;border-radius:7px;background:var(--panel);color:var(--text);font:inherit;font-size:.8rem;padding:5px 7px}.cal{padding:0 2px}.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-dow{padding-bottom:5px;color:var(--muted);font-size:.7rem;text-align:center;text-transform:uppercase;letter-spacing:.06em}.cal-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;aspect-ratio:1;min-height:38px;max-height:58px;padding:2px;border:1px solid transparent;border-radius:9px;background:#121b2e8c;color:var(--text);font:inherit;font-size:.85rem;cursor:pointer}.cal-cell.empty{background:none}.cal-cell.no-runs{color:var(--muted);opacity:.5;background:#121b2e47;cursor:default}.cal-cell.has-runs{border-color:#2a3a5c}.cal-cell.has-runs:hover{background:#5a8cdc29}.cal-cell.today .cal-num{color:var(--accent);font-weight:700}.cal-cell.selected{border-color:var(--accent);background:#4cc2ff24}.cal-num{line-height:1}.cal-dots{display:flex;gap:3px;min-height:5px}.cal-dots .dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.cal-dots .dot.pending{background:none;box-shadow:inset 0 0 0 1px var(--accent)}.archive-note{padding:14px 4px 0;font-size:.85rem;line-height:1.5}.archive-note a{color:var(--accent)}.archive-day{padding:20px 2px 0}.archive-day h2{font-size:.9rem;font-weight:600;padding-bottom:8px}.run-list{display:flex;flex-direction:column;gap:6px}.run-row{display:flex;align-items:baseline;gap:10px;padding:9px 11px;border:1px solid #2a3a5c;border-radius:9px;background:var(--panel);color:inherit;font-size:.85rem;text-decoration:none}.run-row:hover{background:#5a8cdc29}.run-row strong{font-weight:600;white-space:nowrap}.run-row .run-model{color:var(--accent);font-size:.8rem}.run-row .muted{margin-left:auto;font-size:.75rem;white-space:nowrap}.archive-foot{padding:26px 4px 0;font-size:.78rem}.archive-foot a{color:var(--accent)}@media(max-width:400px){.run-row .muted{display:none}}.subhead{order:2;display:flex;align-items:center;gap:8px;padding:0 2px 8px}.run-nav{display:inline-flex;align-items:center;gap:2px;flex:none}.run-open{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid #2a3a5c;border-radius:7px;color:inherit;font-size:.78rem;white-space:nowrap;text-decoration:none}.run-open:hover{background:#5a8cdc29}.run-open svg{color:var(--muted);flex:none}.run-step{display:inline-flex;align-items:center;justify-content:center;width:22px;height:26px;border-radius:6px;color:var(--muted);font-size:.95rem;line-height:1;text-decoration:none}.run-step:hover{color:var(--text);background:#5a8cdc29}.run-step.disabled{opacity:.3}
