:root{--bg:#0d1117;--panel:#161b25;--border:#262d3a;--text:#e6edf3;--muted:#8b96a8;--accent:#ffb020;--ok:#46d17f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{height:100%}body{background:var(--bg);height:100dvh;color:var(--text);overscroll-behavior:none;flex-direction:column;margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--panel);flex:none;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 16px;display:flex}.topbar h1{letter-spacing:.01em;white-space:nowrap;margin:0;font-size:15px;font-weight:600}.topbar-right{align-items:baseline;gap:20px;min-width:0;display:flex}.summary{color:var(--muted);font-size:13px}.summary .ok{color:var(--ok)}.summary .warn{color:var(--accent)}.link{color:var(--muted);white-space:nowrap;font-size:12px}.hamburger{border:1px solid var(--border);cursor:pointer;background:#1e2532;border-radius:5px;flex-direction:column;flex:none;justify-content:center;gap:4px;width:40px;height:34px;padding:0 8px;display:none}.hamburger span{background:var(--text);border-radius:1px;height:2px;display:block}.layout{flex:1;grid-template-rows:1fr auto;grid-template-columns:1fr 380px;min-height:0;display:grid}.pane-pano{grid-area:1/1}.timebar{border-top:1px solid var(--border);background:var(--panel);grid-area:2/1}.pane-side{grid-area:1/2/3}.pane{position:relative;overflow:hidden}.pane-side{border-left:1px solid var(--border);background:var(--panel);overscroll-behavior:contain;flex-direction:column;display:flex;overflow-y:auto}.side-head,.backdrop{display:none}.pano{position:absolute;inset:0}.overlay-canvas{pointer-events:none;z-index:2;position:absolute;inset:0}.center-sun{z-index:3;color:#ffd479;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000009e;border:1px solid #ffffff40;border-radius:999px;padding:9px 14px;font:13px/1 system-ui,sans-serif;position:absolute;bottom:56px;left:12px}.center-sun:hover{border-color:#ffffff80}.center-sun.hidden{display:none}.pano-msg{z-index:3;border:1px solid var(--border);background:#000000c7;border-radius:6px;max-width:70%;padding:10px 16px;font-size:13px;position:absolute;top:24px;left:50%;transform:translate(-50%)}.hidden{display:none}.map{border-bottom:1px solid var(--border);flex:none;height:300px}.controls{border-bottom:1px solid var(--border);padding:12px 14px}.control-row{align-items:center;gap:10px;display:flex}.control-row label{color:var(--muted);white-space:nowrap;font-size:12px}.control-row input[type=range]{flex:1}.control-row output{font-variant-numeric:tabular-nums;text-align:right;min-width:44px;font-size:12px}.hint{color:var(--muted);margin:8px 0 0;font-size:11.5px}.check{align-items:center;gap:8px;margin-top:12px;font-size:12.5px;display:flex}.btn{border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:#1e2532;border-radius:5px;margin-top:12px;padding:7px 10px;font-size:12.5px}.btn:hover:not(:disabled){border-color:#3a4456}.btn:disabled{opacity:.5;cursor:default}.readout-bar{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 18px;padding:8px 14px 0;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.readout-bar b{color:var(--text);font-weight:600}.readout-bar .warn{color:var(--accent)}.readout-bar .ok{color:var(--ok)}.timeline{padding:10px 14px}.timeline-row{align-items:center;gap:8px;margin-bottom:10px;display:flex}.tl-slider{flex:1}.tl-clock{font-variant-numeric:tabular-nums;text-align:right;min-width:66px;font-size:13px}.tl-play{border:1px solid var(--border);width:30px;height:26px;color:var(--text);cursor:pointer;background:#1e2532;border-radius:4px}.tl-contacts{flex-wrap:wrap;gap:5px}.tl-contact{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#1a202b;border-radius:4px;flex-direction:column;align-items:center;gap:1px;padding:4px 7px;font-size:10.5px;display:flex}.tl-contact strong{color:var(--accent);letter-spacing:.04em;font-size:10px}.tl-contact span{font-variant-numeric:tabular-nums;color:var(--muted)}.tl-contact:hover{border-color:#3a4456}.tl-speed label{color:var(--muted);font-size:12px}.tl-speed-select{color:var(--text);border:1px solid var(--border);background:#1e2532;border-radius:4px;padding:3px 6px;font-size:12px}.disclaimer{border-top:1px solid var(--border);color:var(--muted);margin:0;padding:12px 14px;font-size:11.5px}.calib{grid-template-columns:1fr 320px;height:100vh;display:grid}.calib .readout{background:var(--panel);border-left:1px solid var(--border);padding:14px;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-y:auto}.calib .readout h2{margin:0 0 10px;font-family:system-ui,sans-serif;font-size:13px}.calib .readout p{color:var(--muted);font-family:system-ui,sans-serif;font-size:11.5px}@media (width<=900px){.topbar{align-items:center;gap:10px}.topbar h1{font-size:13px}.topbar-right{flex-direction:column;flex:1;align-items:flex-start;gap:0;min-width:0}.summary{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11.5px;line-height:1.35;overflow:hidden}.link{display:none}.hamburger{display:flex}.layout{grid-template-rows:1fr auto;grid-template-columns:1fr}.pane-pano{grid-area:1/1}.timebar{grid-area:2/1}.pane-side{z-index:60;border-left:1px solid var(--border);width:min(92vw,380px);padding-bottom:env(safe-area-inset-bottom);transition:transform .22s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.pane-side.open{transform:none}.side-head{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.backdrop{z-index:55;opacity:0;pointer-events:none;background:#0000008c;transition:opacity .22s;display:block;position:fixed;inset:0}.backdrop.open{opacity:1;pointer-events:auto}.map{height:38vh}.readout-bar{gap:2px 12px;padding:6px 12px 0;font-size:11.5px}.timeline{padding:8px 12px calc(8px + env(safe-area-inset-bottom))}.timeline-row{margin-bottom:8px}.tl-slider{height:28px}.tl-play{width:40px;height:34px;font-size:15px}.tl-contact{padding:6px 9px}.tl-speed{margin-bottom:0}.btn{padding:10px}.control-row input[type=range]{height:28px}}.icon-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#1e2532;border-radius:5px;width:30px;height:28px;font-size:13px;line-height:1}@media (width<=900px) and (height<=520px){.timeline-row.tl-speed,.hint,.disclaimer{display:none}}
