:root{--bg:#0a0e14;--bg-2:#0d1219;--panel:#11151ce0;--panel-solid:#11151c;--panel-2:#161b25;--border:#1c2330;--border-strong:#283042;--hairline:#ffffff0f;--fg:#e6ecf5;--fg-2:#b3bccb;--fg-3:#8a96a8;--fg-4:#5a6478;--fg-5:#3c4452;--accent:oklch(78% .14 195);--warn:oklch(78% .14 60);--danger:#e8493b;--ok:oklch(78% .18 145);--shadow:0 18px 48px #0000008c, 0 2px 6px #0006;--shadow-sm:0 2px 6px #00000080;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}[data-theme=light]{--bg:#f4f5f7;--bg-2:#fff;--panel:#ffffffeb;--panel-solid:#fff;--panel-2:#f7f8fb;--border:#e2e6ee;--border-strong:#cdd3df;--hairline:#0000000f;--fg:#0e131c;--fg-2:#2f384a;--fg-3:#5b6678;--fg-4:#8a94a6;--fg-5:#aab3c2;--shadow:0 18px 48px #0f19321a, 0 2px 6px #0f19320d;--shadow-sm:0 2px 6px #0f193214}*{box-sizing:border-box}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--fg);font-family:var(--font-ui);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:13px;line-height:1.42;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input{font:inherit;color:inherit}a{color:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"tnum", "zero";letter-spacing:-.01em}.app{grid-template-rows:48px 1fr 28px;display:grid;position:fixed;inset:0}.topbar{border-bottom:1px solid var(--border);background:var(--panel-solid);z-index:30;align-items:center;gap:12px;padding:0 14px;display:flex;position:relative}.brand{align-items:center;gap:9px;display:flex}.brand-mark{place-items:center;width:22px;height:22px;display:grid}.brand-mark svg{width:22px;height:22px;display:block}.brand-name{letter-spacing:-.01em;color:var(--fg);font-size:13.5px;font-weight:600}.brand-tag{color:var(--fg-4);border-left:1px solid var(--border-strong);white-space:nowrap;margin-left:2px;padding-left:9px;font-size:11px}.topbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.theme-toggle{border:1px solid var(--border);border-radius:5px;height:28px;display:inline-flex;overflow:hidden}.theme-toggle button{background:var(--panel-2);width:32px;height:100%;color:var(--fg-3);border:0;border-right:1px solid var(--border);justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle button:last-child{border-right:0}.theme-toggle button:hover{color:var(--fg)}.theme-toggle button[data-active="1"]{background:var(--bg-2);color:var(--accent)}.main{position:relative;overflow-y:auto}.page{gap:14px;max-width:760px;margin:0 auto;padding:22px 16px 32px;display:grid}.tb-btn{border:1px solid var(--border);background:var(--panel-2);height:28px;color:var(--fg-2);white-space:nowrap;border-radius:5px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.tb-btn:hover:not(:disabled){background:var(--bg-2);color:var(--fg);border-color:var(--border-strong)}.pill{background:var(--panel-2);border:1px solid var(--border);color:var(--fg-2);text-transform:uppercase;letter-spacing:.05em;border-radius:3px;align-items:center;padding:1px 6px;font-size:10px;display:inline-flex}.location{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.location-text{min-width:200px;color:var(--fg-3);flex:1;margin:0;font-size:12px}.location-text b{color:var(--fg-2);font-weight:500}.location-message{color:var(--warn);flex-basis:100%;margin:0;font-size:12px}.lede{letter-spacing:-.02em;text-wrap:balance;margin:6px 0 4px;font-size:clamp(19px,3.4vw,26px);font-weight:600;line-height:1.25}.lede-wait{color:var(--fg-3);font-weight:500}.card{background:var(--panel-solid);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px;padding:16px}.card-title{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;font-size:11px;font-weight:600;display:flex}.card-count{text-transform:none;letter-spacing:0;color:var(--fg-4);font-size:10.5px;font-weight:400}.score{grid-template-columns:auto 1fr;align-items:center;gap:18px;display:grid}.score .card-title{margin-bottom:6px}.score-value{text-align:center;letter-spacing:-.03em;min-width:84px;color:var(--fg);margin:0;font-size:44px;font-weight:600;line-height:1}.score-value small{color:var(--fg-4);letter-spacing:0;font-size:16px;font-weight:400}.score[data-level=high] .score-value{color:var(--ok)}.score[data-level=mid] .score-value{color:var(--warn)}.score[data-level=low] .score-value{color:var(--danger)}[data-theme=light] .score[data-level=high] .score-value{color:oklch(52% .15 145)}[data-theme=light] .score[data-level=mid] .score-value{color:oklch(56% .13 60)}.score-label{color:var(--fg);margin:0 0 4px;font-size:15px;font-weight:500}.score-line{color:var(--fg-3);margin:0;font-size:12.5px;line-height:1.5}.score-wait{color:var(--fg-3);margin:0;font-size:13px;line-height:1.5}.keys{grid-template-columns:1fr 1.6fr 1fr;gap:12px;margin:0 0 16px;display:grid}.keys>div:last-child{text-align:right}.keys-main{text-align:center}.keys dt{color:var(--fg-4);margin-bottom:3px;font-size:11px}.keys dd{color:var(--fg);margin:0;font-size:20px;font-weight:500}.keys-main dd{color:var(--accent)}[data-theme=light] .keys-main dd{color:oklch(50% .11 215)}.keys-arrow{color:var(--fg-4);font-size:15px}.keys-note{color:var(--fg-3);margin-top:2px;font-size:11px;font-weight:400;display:block}.keys dd.keys-none{color:var(--fg-3);font-size:15px;font-weight:400;line-height:1.6}.frise-track{background:#c9793d;border-radius:7px;height:14px;position:relative;overflow:hidden}.frise-band{position:absolute;top:0;bottom:0}[data-kind=civil]{background:#c9793d}[data-kind=nautical]{background:#5d6fa3}[data-kind=astronomical]{background:#2c3c75}[data-kind=dark]{background:#0c1330}.frise-now{background:#fff;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;box-shadow:0 0 0 1px #00000073}.frise-ends{color:var(--fg-4);justify-content:space-between;margin-top:5px;font-size:10.5px;display:flex}.clouds{margin-top:10px}.clouds-track{background:#0c1330;border-radius:4px;height:8px;position:relative;overflow:hidden}.clouds-track span{background:#dfe6f2;position:absolute;top:0;bottom:0}.clouds-label{color:var(--fg-4);margin:5px 0 0;font-size:11px}.footnote a{color:var(--fg-3)}.legend{color:var(--fg-3);flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;padding:0;font-size:11px;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:inline-flex}.legend i{border:1px solid var(--hairline);border-radius:2px;width:10px;height:10px}.skymap-wrap{justify-content:center;display:flex}.skymap-canvas{touch-action:manipulation;cursor:crosshair;display:block}.skymap-info{text-align:center;min-height:19px;color:var(--fg-3);margin:10px 0 12px;font-size:12.5px}.skymap-info b{color:var(--fg);margin-right:4px;font-weight:600}.skymap-time{color:var(--fg-4);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:10.5px;display:grid}.skymap-time input{width:100%;height:22px;accent-color:var(--accent);margin:0}.skymap-tools{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.skymap-hint{min-width:220px;color:var(--fg-4);text-align:right;flex:1;font-size:11px}.chip{border:1px solid var(--border);background:var(--panel-2);height:26px;color:var(--fg-3);border-radius:4px;align-items:center;padding:0 10px;font-size:11.5px;display:inline-flex}.chip:hover{color:var(--fg);border-color:var(--border-strong)}.chip[data-on="1"]{color:var(--fg);border-color:var(--accent);background:color-mix(in oklch, var(--accent) 10%, var(--panel-2))}.moon{grid-template-columns:auto 1fr;align-items:center;gap:16px;display:grid}.moon .card-title{margin-bottom:6px}.moon-disc{width:64px;height:64px;display:block}.moon-dark{fill:#1a2030}.moon-lit{fill:#ece6d0}[data-theme=light] .moon-lit{fill:#e9c44f}.moon-rim{fill:none;stroke:var(--border-strong);stroke-width:1px}.moon-phase{color:var(--fg);margin:0 0 4px;font-size:15px;font-weight:500}.moon-line{color:var(--fg-3);margin:0;font-size:12.5px;line-height:1.5}.planets{margin:0;padding:0;list-style:none}.planet{border-top:1px solid var(--hairline);grid-template-columns:auto 1fr;gap:12px;padding:12px 0;display:grid}.planet:first-child{border-top:0;padding-top:0}.planet:last-child{padding-bottom:0}.planet-dot{width:10px;height:10px;box-shadow:0 0 0 1px var(--border-strong);border-radius:50%;margin-top:4px}.planet-body{min-width:0}.planet-head{align-items:center;gap:8px;margin:0 0 2px;font-size:14px;display:flex}.planet-head b{font-weight:600}.planet-mag{color:var(--fg-4);margin-left:auto;font-size:11px}.planet-when{color:var(--fg-2);margin:0;font-size:13px}.planet-where{color:var(--fg-3);margin:1px 0 0;font-size:12px}.planet-bar{background:var(--panel-2);border-radius:2px;height:4px;margin-top:9px;position:relative;overflow:hidden}.planet-bar span{border-radius:2px;min-width:3px;position:absolute;top:0;bottom:0}.planet[data-visible="0"] .planet-dot{opacity:.35}.planet[data-visible="0"] .planet-head b{color:var(--fg-3);font-weight:500}.planet[data-visible="0"] .planet-when{color:var(--fg-4);font-size:12px}.footnote{color:var(--fg-4);margin:2px 0 0;font-size:11px;line-height:1.5}.statusbar{border-top:1px solid var(--border);background:var(--panel-solid);color:var(--fg-3);font-size:11px;font-family:var(--font-mono);z-index:30;white-space:nowrap;align-items:center;gap:14px;padding:0 14px;display:flex;position:relative;overflow:hidden}.statusbar>span{align-items:center;gap:6px;display:inline-flex}.statusbar b{color:var(--fg-2);font-weight:500}.statusbar a{color:var(--fg-2);text-decoration:none}.statusbar a:hover{color:var(--accent)}.statusbar .live-dot{background:var(--ok);width:6px;height:6px;box-shadow:0 0 0 2px color-mix(in oklch, var(--ok) 22%, transparent);border-radius:50%}.statusbar .live-dot[data-state=wait]{background:var(--warn);box-shadow:0 0 0 2px color-mix(in oklch, var(--warn) 22%, transparent)}.statusbar .live-dot[data-state=down]{background:var(--danger);box-shadow:0 0 0 2px color-mix(in oklch, var(--danger) 22%, transparent)}.statusbar .right{gap:14px;margin-left:auto;display:inline-flex}@media (width<=1024px){.brand-tag{display:none}}@media (width<=768px){.app{grid-template-rows:44px 1fr 26px}.topbar{gap:8px;padding:0 10px}.statusbar{gap:10px;padding:0 10px;font-size:10.5px}.statusbar .hide-sm{display:none}.page{padding:16px 12px 24px}.card{padding:14px}}@media (width<=480px){.keys{grid-template-columns:1fr 1fr}.keys-main{text-align:left;grid-area:1/1/auto/-1}.keys dd{font-size:18px}.planet-head{flex-wrap:wrap}.score{gap:14px}.skymap-hint{text-align:left}.score-value{min-width:68px;font-size:38px}}@media (hover:none) and (pointer:coarse){.tb-btn{height:36px;padding:0 12px}.chip{height:34px;padding:0 13px}.skymap-time input,.theme-toggle,.theme-toggle button{height:34px}.theme-toggle button{width:36px}}@supports (padding:env(safe-area-inset-bottom)){.app{grid-template-rows:48px 1fr calc(28px + env(safe-area-inset-bottom,0px))}.statusbar{padding-bottom:env(safe-area-inset-bottom,0px)}.topbar{padding-left:max(14px, env(safe-area-inset-left,0px));padding-right:max(14px, env(safe-area-inset-right,0px))}@media (width<=768px){.app{grid-template-rows:44px 1fr calc(26px + env(safe-area-inset-bottom,0px))}.topbar{padding-left:max(10px, env(safe-area-inset-left,0px));padding-right:max(10px, env(safe-area-inset-right,0px))}}}
