:root{--bg:#0b0d12;--panel:#141821;--line:#262c38;--text:#e6e8ee;--muted:#8a93a6;--sun:#f2c14e;--earth:#5aa9ff;--ok:#3fb97a;--bad:#e5534b;--synthetic:#ff8c1a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);margin:0}h1{letter-spacing:.3em;margin:0;font-weight:600}h4{color:var(--muted);margin:.8rem 0 .3rem;font-size:.85rem}.muted{color:var(--muted);margin:.2rem 0 0;font-size:.85rem}.app{background:#000;flex-direction:column;min-height:100vh;display:flex;position:relative}.top{z-index:20;pointer-events:none;align-items:center;gap:1.25rem;height:52px;padding:0 1.25rem;display:flex;position:absolute;top:0;left:0}.top>*{pointer-events:auto}.top h1{text-shadow:0 1px 3px #000;font-size:1.15rem}.app:has(.scenario-main:not([hidden])){height:100vh;min-height:0;overflow:hidden}.scenario-main{flex:1;min-height:0;display:flex}.scenario-main>.lunar{border:0;border-radius:0;flex:1;height:auto;min-height:0}.lunar-scenario{flex-direction:column;gap:.8rem;display:flex}.lunar-scenario .form,.lunar-scenario .result{background:0 0;border:0;padding:0}.lunar-scenario .result.synthetic{border:2px dashed var(--synthetic);padding:.6rem}.status-row{flex-wrap:wrap;gap:.4rem;display:flex}.badge{border:1px solid var(--line);border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.badge.ok{border-color:var(--ok);color:var(--ok)}.badge.bad{border-color:var(--bad);color:var(--bad)}.badge.pending{color:var(--muted)}.caption{color:var(--muted);margin:0;padding:.5rem .75rem;font-size:.78rem}.form,.result{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1rem}.form label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.form input,.form select{background:var(--bg);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:4px;padding:.4rem;font-size:.9rem}.grid2{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem;display:grid}.actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}button{color:var(--text);font:inherit;cursor:pointer;background:#2b3546;border:1px solid #3b4760;border-radius:2px;padding:.5rem .9rem}button:disabled{opacity:.5;cursor:wait}.synthetic-btn{border:1px dashed var(--synthetic);color:var(--synthetic);background:0 0}.error{border:1px solid var(--bad);color:var(--bad);border-radius:8px;padding:.75rem;font-size:.9rem}.result.synthetic{border:2px dashed var(--synthetic)}.synthetic-banner{color:var(--synthetic);letter-spacing:.03em;background:repeating-linear-gradient(45deg,#3a2306,#3a2306 10px,#4a2c08 10px 20px);border-radius:4px;margin-bottom:.75rem;padding:.6rem;font-weight:700}.result-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.status{text-transform:uppercase;border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.status-not_ready{color:var(--bad);background:#3a1c1c}.status-synthetic{color:var(--synthetic);background:#3a2306}.status-computed{color:var(--ok);background:#12321f}.model{grid-template-columns:max-content 1fr;gap:.2rem .8rem;margin:.8rem 0;font-size:.8rem;display:grid}.model dt{color:var(--muted)}.model dd{margin:0}.legend{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.78rem;display:flex}.sw{width:14px;height:3px;display:inline-block}.sw.sun{background:var(--sun)}.sw.earth{background:var(--earth)}.timeline{width:100%;height:auto;margin-top:.4rem}.timeline .horizon{stroke:var(--muted);stroke-dasharray:4 3}.timeline .axis{fill:var(--muted);font-size:10px}.timeline .line-sun{fill:none;stroke:var(--sun);stroke-width:1.6px}.timeline .line-earth{fill:none;stroke:var(--earth);stroke-width:1.6px}.timeline .band-sun{fill:var(--sun);opacity:.6}.timeline .band-earth{fill:var(--earth);opacity:.6}.timeline .watermark{fill:var(--synthetic);opacity:.12;letter-spacing:.1em;font-size:64px;font-weight:800}.windows{margin:0;padding-left:1rem;font-family:ui-monospace,monospace;font-size:.75rem}details{margin-top:.6rem;font-size:.8rem}details summary{cursor:pointer;color:var(--muted)}details ul{margin:.3rem 0;padding-left:1.1rem}.tabs{gap:.35rem;display:flex}.tabs a{color:var(--muted);background:#00000073;border:1px solid #3b4760;border-radius:2px;padding:.35rem .8rem;font-size:.85rem;text-decoration:none}.tabs a.active{color:var(--text);background:#2b3546}.dash-main{background:var(--bg);flex:1;padding:calc(52px + .5rem) 1.25rem 1rem}.dash{grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:1rem;height:100%;display:grid}@media (width<=960px){.dash{grid-template-columns:1fr}}.dash-scene{flex-direction:column;gap:.5rem;min-width:0;display:flex}.view-toggle{flex-wrap:wrap;gap:.4rem;display:flex}.view-toggle button.active,.play-row button.active{background:#3b4f72;border-color:#5a75a6}.celestial-canvas{border:1px solid var(--line);background:#05070b;border-radius:8px;flex-direction:column;flex:1;min-height:520px;display:flex;overflow:hidden}.celestial-canvas>div:first-child{flex:1;min-height:460px}.celestial-canvas.placeholder{color:var(--muted);justify-content:center;align-items:center}.body-label{color:var(--text);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0b0d12a6;border-radius:3px;padding:1px 6px;font-size:11px}.axis-label{color:#6b7894;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:10px}.axis-label.sun{color:var(--sun)}.dash-side{flex-direction:column;gap:.8rem;min-width:0;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.9rem 1rem}.card h3{align-items:center;gap:.45rem;margin:0 0 .6rem;font-size:.95rem;font-weight:600;display:flex}.card summary{cursor:pointer;color:var(--muted);font-size:.85rem}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot.moon{background:#c9ced8}.dot.sun{background:var(--sun)}.date-input{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--line);font:inherit;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:4px;padding:.45rem}.step-buttons{grid-template-columns:repeat(5,1fr);gap:.3rem;margin-top:.5rem;display:grid}.step-buttons button{padding:.4rem 0;font-size:.82rem}.scrub{color:var(--muted);flex-direction:column;gap:.3rem;margin-top:.7rem;font-size:.78rem;display:flex}.scrub b{color:var(--text);font-weight:600}.scrub input{width:100%;accent-color:var(--earth)}.play-row{gap:.5rem;margin-top:.6rem;display:flex}.play-row select{background:var(--bg);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:4px;padding:.3rem}.phase-row{align-items:center;gap:.9rem;margin-bottom:.6rem;display:flex}.big{font-size:1.15rem;font-weight:600}.kv{grid-template-columns:1fr auto;gap:.28rem .8rem;margin:0;font-size:.84rem;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,monospace;font-size:.8rem}.kv.small dd{text-align:left;font-family:inherit}.kv.small{grid-template-columns:max-content 1fr;margin-top:.6rem}.small{font-size:.76rem}.warn-text{color:var(--synthetic)}.view-toggle .check{color:var(--muted);align-items:center;gap:.35rem;margin-left:auto;font-size:.82rem;display:flex}.lunar{--l-panel:#0e1014e0;--l-line:#ffffff1a;--l-accent:#7fd4ff;--l-warn:#ffb347;--l-panel-w:380px;border:1px solid var(--line);background:#000;border-radius:8px;height:calc(100vh - 190px);min-height:560px;font-size:14px;line-height:1.45;position:relative;overflow:hidden}.lunar-globe{position:absolute;inset:0}.lunar-globe canvas{touch-action:none;cursor:crosshair;display:block}.lunar-tooltip{z-index:50;pointer-events:none;border:1px solid var(--l-line,#ffffff1a);font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000c7;border-radius:6px;max-width:280px;padding:8px 10px;font-size:13px;position:fixed;top:0;left:0}.lunar-tooltip[hidden]{display:none}.lunar .feat,.lunar-tooltip .feat{color:#7fd4ff;margin-top:4px}.lunar .feat small,.lunar-tooltip .feat small{color:var(--muted);display:block}.lunar .feat.none,.lunar-tooltip .feat.none{color:var(--muted)}.lunar-panel{z-index:4;width:var(--l-panel-w);background:var(--l-panel);border-left:1px solid var(--l-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:100%;padding:14px 14px 16px;transition:transform .25s;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.lunar.panel-collapsed .lunar-panel{transform:translate(100%)}.lunar-panel-toggle{top:10px;right:calc(var(--l-panel-w) + 10px);z-index:6;width:34px;height:34px;padding:0;font-size:22px;line-height:1;transition:right .25s;position:absolute}.lunar.panel-collapsed .lunar-panel-toggle{right:10px}.lunar h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:11px;font-weight:600}.lunar section{border-top:1px solid var(--l-line);margin-top:12px;padding:12px 0}.lunar section.small{font-size:12px}.lunar section.small ul{margin:6px 0;padding-left:16px}.lunar a{color:var(--l-accent)}.lunar .readout{font-variant-numeric:tabular-nums;margin-bottom:8px}.lunar .row{flex-wrap:wrap;gap:8px;display:flex}.lunar .warn,.lunar .warn-list{color:var(--l-warn);font-size:12px}.lunar button,.lunar input,.lunar select{font:inherit;color:var(--text);border:1px solid var(--l-line);background:#1a1d23;border-radius:2px}.lunar button{cursor:pointer;padding:6px 10px}.lunar button:hover:not(:disabled){border-color:var(--l-accent)}.lunar button:disabled{opacity:.4;cursor:default}.lunar input[type=search],.lunar input[type=text],.lunar select{width:100%;padding:7px 9px}.lunar .copy-fallback{margin-top:8px}.lunar label{margin:8px 0;display:block}.lunar label.check{align-items:center;gap:8px;display:flex}.lunar label.slider output{float:right;color:var(--l-accent);font-variant-numeric:tabular-nums}.lunar input[type=range]{width:100%;accent-color:var(--l-accent);background:0 0;border:0}.lunar-results{max-height:240px;margin:6px 0;padding:0;list-style:none;overflow-y:auto}.lunar-results button{text-align:left;background:0 0;border:0;border-radius:4px;width:100%;padding:5px 6px}.lunar-results button:hover{background:#22262e}.lunar-results small{color:var(--muted);font-size:11px;display:block}.lunar-loader{z-index:10;background:#000;place-items:center;display:grid;position:absolute;inset:0}.lunar .loader-box{text-align:center;width:min(320px,80%)}.lunar .loader-title{letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px;font-size:18px}.lunar .loader-msg{color:var(--muted);min-height:2.8em;font-size:13px}.lunar .loader-track{background:#222;border-radius:2px;height:3px;margin:10px 0 6px;overflow:hidden}.lunar .loader-bar{background:var(--l-accent);width:0;height:100%;transition:width .15s linear}.lunar .loader-pct{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.lunar-loader.error .loader-msg{color:var(--l-warn)}.lunar-loader.error .loader-track{background:var(--l-warn)}@media (width<=640px){.lunar{--l-panel-w:100%}.lunar-panel{border-left:0}.lunar-panel-toggle,.lunar.panel-collapsed .lunar-panel-toggle{right:10px}}.sky-overlay{z-index:5;text-shadow:0 1px 3px #000;width:min(300px,100% - 70px);position:absolute;top:60px;left:1.25rem}.sky-compass{align-items:center;gap:10px;display:flex}.sky-compass svg{flex:none}.sky-compass-read{font-variant-numeric:tabular-nums;font-size:12px;line-height:1.6}.sky-compass-read .sun{color:#ffd400}.sky-compass-read .earth{color:#1e90ff}.sky-time{align-items:center;gap:8px;margin-top:8px;display:flex}.sky-time input[type=range]{flex:1;margin:0}.sky-time button{min-width:32px;padding:2px 8px}.sky-time output{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.sky-note{color:var(--l-warn);margin-top:6px;font-size:10.5px}.sky-view{gap:6px;margin-top:6px;display:flex}.sky-view button{padding:3px 8px;font-size:12px}.edge-ptr{z-index:4;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.edge-ptr .edge-arrow{text-align:center;transform-origin:50%;text-shadow:0 0 6px;width:18px;font-size:18px;line-height:22px;position:absolute;top:-11px;left:-9px}.edge-ptr .edge-label{text-align:center;text-shadow:0 1px 3px #000;width:60px;font-size:11px;position:absolute;top:12px;left:-30px}.edge-ptr.sun{color:#ffd400}.edge-ptr.earth{color:#4aa3ff}
