:root{--bg: #0b1220;--panel: #0f1a33;--panel2: #122145;--border: rgba(255, 255, 255, .12);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .65);--accent: #7dd3fc;--danger: #fb7185;--good: #86efac;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji";color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0;background:radial-gradient(900px 700px at 30% 10%,#172554,var(--bg));color:var(--text);font-family:var(--sans)}.appLoading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:radial-gradient(1200px 900px at 50% 40%,#7dd3fc29,#0000),radial-gradient(900px 700px at 30% 10%,#172554,var(--bg));transition:opacity .26s ease,visibility .26s ease}.appLoadingInner{display:grid;justify-items:center;gap:10px;padding:18px 22px;border-radius:16px;border:1px solid var(--border);background:#00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 24px 70px #00000073;width:min(420px,92vw);text-align:center;max-height:calc(100dvh - 32px);overflow:auto;-webkit-overflow-scrolling:touch}.appLoadingGlobe{width:64px;height:64px;border-radius:999px;background:radial-gradient(circle at 35% 30%,#ffffffa6,#fff0 45%),radial-gradient(circle at 55% 60%,#7dd3fce6,#3b82f659);box-shadow:0 0 0 1px #ffffff1f,0 0 26px #7dd3fc52;position:relative;overflow:hidden}.appLoadingGlobe:before{content:"";position:absolute;top:-30%;right:-60%;bottom:-30%;left:-60%;background:linear-gradient(90deg,#0000,#00000038,#0000);transform:rotate(20deg);animation:appLoadingSweep 1.2s linear infinite}@keyframes appLoadingSweep{0%{transform:translate(-40%) rotate(20deg);opacity:.7}to{transform:translate(40%) rotate(20deg);opacity:.9}}.appLoadingTitle{font-size:14px;letter-spacing:.5px;color:#ffffffeb;line-height:1.3}.appLoadingText{font-size:12px;color:#ffffffb8;line-height:1.35;max-width:34ch;word-break:break-word}.appLoading.hide{opacity:0;visibility:hidden;pointer-events:none}#app{display:grid;grid-template-columns:320px 1fr 360px;grid-template-rows:1fr;height:calc(100vh - 56px);height:calc(100dvh - 56px)}body.mobile #app{grid-template-columns:1fr}body.mobile #leftPanel,body.mobile #centerView,body.mobile #rightPanel{grid-column:1;grid-row:1}body.mobile #leftPanel,body.mobile #rightPanel{position:absolute;top:0;bottom:56px;width:min(360px,88vw);z-index:40;background:linear-gradient(180deg,#122145fa,#0b1220fa);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 45px #00000073}body.mobile #leftPanel{left:0;transform:translate(-105%)}body.mobile #rightPanel{right:0;transform:translate(105%)}body.mobile.showLeft #leftPanel,body.mobile.showRight #rightPanel{transform:translate(0)}body.mobile #mobileControls{display:flex}body.mobile .edgeToggles{display:none}body.mobile #hud{left:12px;top:54px}#leftPanel{grid-column:1}#centerView{grid-column:2;position:relative}#rightPanel{grid-column:3}@media(min-width:1101px){body.collapseLeft #app{grid-template-columns:0 1fr 360px}body.collapseLeft #leftPanel{width:0;min-width:0;padding:0;border:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none}body.collapseRight #app{grid-template-columns:320px 1fr 0}body.collapseRight #rightPanel{width:0;min-width:0;padding:0;border:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none}body.collapseLeft.collapseRight #app{grid-template-columns:0 1fr 0}}.edgeToggles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.edgeBtn{pointer-events:auto;position:absolute;top:10px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#ffffffeb;display:none}body.collapseLeft .edgeBtn#btnEdgeLeft{display:inline-flex;left:10px}body.collapseRight .edgeBtn#btnEdgeRight{display:inline-flex;right:10px}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.panelHeader h2{margin:0}.panelClose{padding:6px 10px}.panel{padding:14px 14px 12px;border-right:1px solid var(--border);overflow:auto;background:linear-gradient(180deg,#ffffff05,#fff0)}#rightPanel{border-right:none;border-left:1px solid var(--border)}h2{font-size:16px;margin:0 0 10px;letter-spacing:.5px}h3{font-size:13px;margin:0 0 10px;color:var(--muted);font-weight:600}.group{margin-bottom:14px;padding:10px;background:#ffffff08;border:1px solid var(--border);border-radius:10px}.row{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;align-items:center;margin:8px 0;font-size:12px}.row-compact{grid-template-columns:1fr;display:flex;gap:8px;align-items:center}label span{color:var(--muted)}select,input[type=date],input[type=range],button{font:inherit;color:var(--text)}select,input[type=date]{width:100%;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:#0f1a33d9;outline:none}select option{background:var(--panel);color:var(--text)}input[type=range]{width:100%}#dateSliderLabel{margin-left:8px;opacity:.85;white-space:nowrap}button{padding:6px 10px;border-radius:9px;border:1px solid var(--border);background:#ffffff0f;cursor:pointer}button:hover{border-color:#ffffff38}button:disabled{opacity:.45;cursor:not-allowed}button.activeTool{border-color:#7dd3fcd9;background:#7dd3fc1f}button.activeToggle{border-color:#fde047d9;background:#fde0471f}.toggleHidden{display:none}.toggleButtons{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.toggleButtons .toggleBtn{padding:5px 10px;border-radius:999px;font-size:12px;line-height:1.1}.toggleButtons .toggleBtn[disabled]{opacity:.45;cursor:not-allowed}.hiddenControl{display:none!important}.segButtons{display:flex;gap:6px}.textureRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}.inlineToggle{width:100%;text-align:center;padding:5px 0;border-radius:999px;font-size:12px;line-height:1.1;white-space:nowrap}.segButtons button{flex:1;padding:5px 10px;border-radius:999px;font-size:12px;line-height:1.1}.viewGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.viewBlock{border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:8px;background:#0000002e}.viewBlock.zoomBlock{grid-column:1 / -1}.viewTitle{font-size:12px;color:var(--muted);margin-bottom:6px}.btnGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.btnGrid button{padding:6px 0}.btnGrid button:nth-child(1){grid-column:2}.btnGrid button:nth-child(2){grid-column:1;grid-row:2}.btnGrid button:nth-child(3){grid-column:2;grid-row:2}.btnGrid button:nth-child(4){grid-column:3;grid-row:2}.btnRow{display:flex;gap:6px;align-items:center}.btnRow button:last-child{flex:1}.timeQuickButtons{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}.timeQuickButtons button{padding:4px 8px;min-width:34px;border-radius:8px}.viewControls .row{margin:6px 0}.viewControls .hint{margin-top:6px}.hint{margin-top:8px;font-size:12px;color:#ffffff8c}.supportBox{margin-top:10px;display:grid;gap:10px;justify-items:start}.supportToggle{width:100%;text-align:center}.supportContent[hidden]{display:none}.supportQr{width:180px;max-width:100%;border-radius:12px;border:1px solid var(--border);background:#0f1a33a6}.supportLink{font-size:12px;color:#ffffffe6;text-decoration:none;padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:#ffffff0f}.supportLink:hover{border-color:#ffffff38}.markerAddRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:center}.markerAddRow button{white-space:nowrap}#centerView{position:relative;overflow:hidden}#globeContainer{position:absolute;top:0;right:0;bottom:0;left:0}.skyObserverControls{position:absolute;left:12px;bottom:12px;z-index:28;width:min(420px,calc(100% - 24px));padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.skyObserverTitle{font-size:12px;color:#ffffffd1;margin-bottom:6px;letter-spacing:.4px}.skyObserverRow{display:grid;grid-template-columns:1fr;gap:6px;margin:8px 0;font-size:12px}.skyDateRow{display:flex;align-items:center;justify-content:space-between;gap:8px}.skyDatePlayBtn{padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#ffffffe6;font-size:11px;line-height:1.1;cursor:pointer;white-space:nowrap}.skyDatePlayBtn[aria-pressed=true]{background:#7dd3fc2e;border-color:#7dd3fc66;color:#7dd3fcf2}.skyDateTicks{position:relative;height:6px;margin-top:-4px}.skyDateTicks .skyDateTick{position:absolute;top:0;width:6px;height:6px;border-radius:999px;background:#fde047e6;box-shadow:0 0 6px #fde0478c;transform:translate(-50%)}.skyObserverHint{margin-top:6px;font-size:12px;color:#ffffff94;line-height:1.25}#mobileControls{display:none;position:absolute;right:12px;top:12px;z-index:30;gap:8px}#mobileControls button{padding:8px 10px;background:#00000059;border-color:#ffffff2e}#mobileScrim{display:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;background:#00000059}#hud{position:absolute;left:12px;top:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:12px}@media(min-width:1101px){body.collapseLeft #hud{left:66px}}.hudRow{display:flex;gap:8px;align-items:baseline;margin:4px 0}.mono{font-family:var(--mono)}.card{padding:10px;border-radius:10px;border:1px solid var(--border);background:#ffffff08;margin-bottom:12px}.cardTitle{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:8px}.kv{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:4px 0}.kv span:first-child{color:var(--muted)}.list{display:grid;gap:6px}.list.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.listItem{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:10px;background:#ffffff05}.listItem button{padding:4px 8px}.listItem.markerItem{grid-template-columns:14px 1fr auto}.markerIcon{width:10px;height:10px;border-radius:999px;box-shadow:0 0 0 1px #00000059,0 0 10px #ffffff1f}.markerMain{min-width:0}.markerName{font-size:12px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.markerCoords{font-size:11px;line-height:1.1;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list.compact .listItem{padding:6px;gap:8px}.list.compact .listItem button{padding:3px 7px}#sunPathChart{width:100%;border-radius:10px;border:1px solid var(--border);background:#00000040;margin-top:10px}#bottomBar{height:56px;border-top:1px solid var(--border);background:#00000040;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;padding:0 14px;gap:12px}.bottomRow{display:grid;grid-template-columns:140px 1fr 90px;gap:12px;align-items:center;flex:1;min-width:0;font-size:12px}.bottomMeta{display:flex;align-items:center;gap:10px}.footerSchool{font-size:12px;letter-spacing:2px;color:#ffffff8c;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:help}.footerVersion{padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#ffffffdb;font-size:12px;line-height:1.1;cursor:pointer}.footerVersion:hover{border-color:#ffffff38}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;display:grid;place-items:center}.modal[hidden]{display:none}.modalScrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c}.modalCard{position:relative;width:min(720px,calc(100% - 28px));max-height:calc(100dvh - 120px);overflow:auto;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#0f1a33eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 26px 80px #0000008c;padding:14px}.modalHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.modalTitle{font-size:14px;letter-spacing:.4px;color:#ffffffeb}.modalClose{padding:6px 10px}.modalMeta{font-size:12px;color:#ffffffa6;margin-bottom:10px}.modalBody{font-size:12px;line-height:1.5;color:#ffffffdb;white-space:pre-wrap}.narration{font-size:12px;color:var(--muted);border:1px dashed rgba(255,255,255,.18);padding:8px;border-radius:10px;min-height:54px;line-height:1.35}.label{padding:2px 6px;border-radius:999px;font-size:12px;color:#ffffffeb;background:#0000008c;border:1px solid rgba(255,255,255,.15);-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap}.floatLabel .floatInner{display:inline-block;animation:floaty 2.2s ease-in-out infinite}.gridDegLabel{font-size:12px;padding:1px 6px;opacity:.92;background:#0000007a;border-color:#ffffff2e}@keyframes floaty{0%{transform:translateY(0)}50%{transform:translateY(-3px)}to{transform:translateY(0)}}@media(max-width:1100px),(hover:none)and (pointer:coarse){#app{grid-template-columns:1fr}#leftPanel,#centerView,#rightPanel{grid-column:1;grid-row:1}.viewGrid{grid-template-columns:1fr}.viewBlock.zoomBlock{grid-column:auto}#leftPanel,#rightPanel{position:absolute;top:0;bottom:56px;width:min(360px,88vw);z-index:40;background:linear-gradient(180deg,#122145fa,#0b1220fa);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 45px #00000073}#leftPanel{left:0;transform:translate(-105%);transition:transform .16s ease-out}#rightPanel{right:0;transform:translate(105%);transition:transform .16s ease-out}body.showLeft #leftPanel,body.showRight #rightPanel{transform:translate(0)}body.showLeft #mobileScrim,body.showRight #mobileScrim{display:block}#mobileControls{display:flex}.panelClose{display:inline-flex}.edgeToggles{display:none}#hud{left:12px;top:54px}}@media(max-width:480px){.appLoadingInner{width:min(360px,94vw);padding:12px;gap:8px}.appLoadingGlobe{width:56px;height:56px}.appLoadingTitle{font-size:13px;letter-spacing:.3px}.appLoadingText{font-size:12px;max-width:30ch}.panel{padding:12px 12px 10px}.group{padding:8px;margin-bottom:12px}.viewGrid{gap:6px}.viewBlock{padding:6px}.viewTitle{font-size:11px;margin-bottom:4px}.btnGrid{gap:4px}.btnGrid button{padding:5px 0}.list.compact{grid-template-columns:1fr}.btnRow{gap:4px}.btnRow button{padding:5px 8px}.toggleButtons .toggleBtn,.inlineToggle,.segButtons button{font-size:11px}.toggleButtons .toggleBtn{padding:4px 8px}.skyObserverControls{left:10px;bottom:10px;width:calc(100% - 20px);padding:8px 10px}.bottomRow{grid-template-columns:112px 1fr 72px;gap:8px}.bottomMeta{gap:8px}.footerSchool{max-width:120px;overflow:hidden;text-overflow:ellipsis}.footerVersion{padding:4px 8px}}
