:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--sky-bg: #02040a;--sky-ink: #e8eef8;--sky-ink-strong: #f4f8ff;--sky-muted: #8c9bb5;--sky-muted-strong: #b8c7db;--panel-bg: rgba(10, 16, 28, .96);--panel-surface: rgba(13, 22, 36, .96);--panel-border: #2a3340;--control-blue: #6fa8ff;--control-blue-soft: #8fd0ff;--star-accent: #77f2de;--horizon-glow: #ff9f5a;--warm-star: #ffe8b6;background:var(--sky-bg);color:#e8eef8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden;background:var(--sky-bg)}.boot-error{min-height:100vh;display:grid;place-content:center;gap:12px;padding:24px;background:var(--sky-bg);color:#ffe0a6}.boot-error p{max-width:680px;color:#e8eef8}button,input,textarea{font:inherit}button{border:0;cursor:pointer}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,440px);min-height:100vh;background:var(--sky-bg);transition:grid-template-columns .18s ease}.app-shell.controls-collapsed{grid-template-columns:minmax(0,1fr)}.sky-stage{position:relative;min-width:0;min-height:100vh;overflow:hidden;border-right:1px solid rgba(42,51,64,.86);background:radial-gradient(circle at 50% 55%,rgba(33,60,134,.18),transparent 52%),linear-gradient(180deg,#02040afa,#04070dfa)}.app-shell.controls-collapsed .sky-stage{border-right-color:transparent}.sky-stage:before{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;z-index:1;border:1px solid rgba(111,168,255,.42);border-radius:14px;box-shadow:inset 0 0 0 1px #77f2de14,inset 0 -80px 120px #ff9f5a12,0 0 36px #6fa8ff14;pointer-events:none}#sky-canvas{position:relative;z-index:0;display:block;width:100%;height:100vh;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}#sky-canvas.is-dragging{cursor:grabbing}.topbar{position:absolute;inset:18px 18px auto 18px;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none}.sky-clock,.sky-controls{position:absolute;left:18px;z-index:2;pointer-events:auto}.sky-clock{bottom:18px;display:grid;gap:3px;max-width:min(360px,calc(100% - 36px));padding:9px 10px;border:1px solid rgba(42,51,64,.95);border-radius:8px;background:var(--panel-surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sky-clock strong{color:#f8fbff;font-size:.92rem}.sky-clock span{color:var(--sky-muted-strong);font-size:.78rem;font-weight:700}.sky-controls{right:18px;top:84px;bottom:auto;left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:min(520px,calc(100% - 36px))}.toolbar-group{display:flex;gap:2px;padding:3px;border:1px solid rgba(42,51,64,.95);border-radius:9px;background:#080d16eb;box-shadow:0 10px 24px #00000042;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toolbar-group button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--sky-muted-strong)}.toolbar-group button:hover{background:#6fa8ff24;color:var(--sky-ink-strong)}.toolbar-group button[aria-pressed=true]{background:#77f2de29;color:var(--star-accent)}.toolbar-group button:disabled{cursor:not-allowed;opacity:.35}.icon{width:16px;height:16px}.time-rail{position:absolute;right:18px;bottom:18px;left:18px;z-index:3;display:grid;grid-template-columns:minmax(180px,.75fr) auto minmax(220px,1.35fr);gap:10px;align-items:center;padding:10px;border:1px solid rgba(42,51,64,.95);border-radius:8px;background:#0d1624f0;box-shadow:0 16px 42px #00000047;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto}.time-rail-meta{display:grid;gap:2px;min-width:0}.time-rail-meta span,.tonight-lane h3{margin:0;color:var(--star-accent);font-size:.72rem;font-weight:900;text-transform:uppercase}.time-rail-meta strong{min-width:0;overflow:hidden;color:var(--sky-ink-strong);font-size:.94rem;text-overflow:ellipsis;white-space:nowrap}.time-rail-meta small{min-width:0;overflow:hidden;color:var(--sky-muted-strong);font-size:.75rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.time-rail-actions,.time-rail-presets,.segmented-control{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.time-rail-presets button,.segmented-control button{min-height:32px;padding:6px 9px;border:1px solid var(--panel-border);border-radius:7px;background:var(--panel-surface);color:var(--sky-ink);font-size:.78rem;font-weight:900}.time-rail-presets button:hover,.segmented-control button:hover,.segmented-control button[aria-pressed=true]{border-color:#6fa8ffb8;background:#142236fa}.time-rail-actions button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--panel-border);border-radius:50%;background:var(--panel-surface);color:var(--sky-ink)}.time-rail-actions button:hover{border-color:#6fa8ffb8;background:#142236fa}.time-rail-actions button.primary{width:40px;height:40px}.segmented-control{margin-bottom:12px}.segmented-control button[aria-pressed=true]{color:var(--sky-ink-strong);box-shadow:inset 0 0 0 1px #77f2de2e}.workspace-open{position:absolute;top:50%;right:18px;z-index:4;min-height:44px;padding:10px 14px;border:1px solid rgba(111,168,255,.68);border-right:0;border-radius:8px 0 0 8px;background:#0d1624fa;color:var(--sky-ink-strong);box-shadow:0 12px 32px #00000052,inset 3px 0 #77f2deb8;font-size:.78rem;font-weight:900;transform:translateY(-50%)}.workspace-open:hover{border-color:#77f2deb8;background:#142236fa}.eyebrow{margin:0 0 4px;color:var(--star-accent);font-size:.74rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1{margin:0;color:#f8fbff;font-size:2.1rem;line-height:1;letter-spacing:0}.status-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.mini{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid var(--panel-border);border-radius:7px;background:var(--panel-surface);color:#dce7f7;font-size:.78rem;font-weight:700}.status-chip{display:inline-flex;align-items:center;gap:5px;color:var(--sky-muted-strong);font-size:.76rem;font-weight:700}.status-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sky-muted)}.status-chip.ok:before{background:var(--star-accent)}.status-chip.ok{color:#bcf2df}.status-chip.warn:before{background:var(--horizon-glow)}.status-chip.warn{color:#ffe0a6}.workspace{min-width:0;height:100vh;overflow:auto;padding:14px;background:linear-gradient(180deg,#0a101cfa,#02040afc),var(--sky-bg);transition:opacity .16s ease,transform .18s ease,padding .18s ease}.workspace-header{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-14px -14px 12px;padding:12px 14px;border-bottom:1px solid rgba(42,51,64,.95);background:#02040af5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.workspace-header div{display:grid;gap:2px;min-width:0}.workspace-header span{color:var(--sky-ink-strong);font-size:.9rem;font-weight:900}.workspace-header small{color:var(--sky-muted);font-size:.74rem;font-weight:800}.workspace-header button{min-height:34px;padding:7px 10px;border:1px solid rgba(111,168,255,.56);border-radius:7px;background:#0d1624f5;color:var(--sky-ink);font-size:.78rem;font-weight:900}.workspace-header button:hover{border-color:#77f2deb8;background:#142236fa}.workspace-tabs{position:sticky;top:49px;z-index:3;display:flex;gap:2px;margin:0 -14px 14px;padding:8px 14px 0;background:#02040af5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(42,51,64,.95)}.workspace-tab{position:relative;flex:1;padding:9px 4px 11px;border-bottom:2px solid transparent;background:transparent;color:var(--sky-muted);font-size:.76rem;font-weight:800;white-space:nowrap}.workspace-tab:hover{color:var(--sky-ink-strong)}.workspace-tab[aria-selected=true]{border-bottom-color:var(--star-accent);color:var(--sky-ink-strong)}.tab-badge{display:inline-grid;place-items:center;min-width:16px;height:16px;margin-left:4px;padding:0 4px;border-radius:8px;background:#77f2de38;color:var(--star-accent);font-size:.66rem}.app-shell.controls-collapsed .workspace{display:none;width:0;padding:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transform:translate(18px)}.panel{margin-bottom:12px;padding:14px;border:1px solid rgba(42,51,64,.95);border-radius:8px;background:var(--panel-bg);box-shadow:0 10px 28px #0000002e}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;color:#f8fbff;font-size:.95rem;font-weight:800}.tonight-panel{border-color:#6fa8ff57;background:linear-gradient(180deg,#0d1624fa,#0a101cf5),var(--panel-bg)}.tonight-hero{width:100%;display:grid;gap:4px;margin-bottom:12px;padding:14px;border:1px solid rgba(119,242,222,.28);border-radius:8px;background:radial-gradient(circle at 95% 0%,rgba(119,242,222,.14),transparent 40%),#04070db8;color:var(--sky-ink);text-align:left}.tonight-hero span,.observation-select span,.handoff-box span{color:var(--sky-muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.tonight-hero strong{color:var(--sky-ink-strong);font-size:1.18rem}.tonight-hero small{color:var(--sky-muted-strong);font-size:.82rem;line-height:1.35}.tonight-lanes{display:grid;gap:12px}.tonight-lane{display:grid;gap:8px}.observation-card,.route-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.observation-select,.constellation-card{width:100%;display:grid;gap:3px;min-width:0;padding:10px;border:1px solid rgba(42,51,64,.95);border-radius:8px;background:var(--panel-surface);color:var(--sky-ink);text-align:left}.observation-select:hover,.constellation-card:hover,.tonight-hero:hover{border-color:#6fa8ff9e;background:#142236fa}.observation-select strong,.constellation-card strong,.handoff-box strong{min-width:0;overflow:hidden;color:var(--sky-ink-strong);text-overflow:ellipsis;white-space:nowrap}.observation-select small,.constellation-card small,.constellation-card span{color:var(--sky-muted-strong);font-size:.8rem;line-height:1.35}.observation-add{align-self:center;border-color:#77f2de47;color:var(--star-accent)}.observation-add:hover{border-color:#77f2de9e;background:#77f2de29}.object-guidance{display:grid;gap:4px;margin-bottom:12px;padding:11px;border:1px solid rgba(111,168,255,.24);border-radius:8px;background:#6fa8ff14}.object-guidance strong{color:var(--control-blue-soft);font-size:.74rem;font-weight:900;text-transform:uppercase}.object-guidance span{color:var(--sky-ink);font-size:.88rem;line-height:1.35}.route-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.route-stat{display:grid;gap:3px;padding:10px;border:1px solid rgba(42,51,64,.95);border-radius:8px;background:#0d1624c2}.route-stat.wide{grid-column:1 / -1}.route-stat b{color:var(--sky-ink-strong);font-size:1rem}.route-stat span{color:var(--sky-muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.handoff-box{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(42,51,64,.95)}.panel-title button,.secondary,.workspace-header button{min-height:32px;padding:6px 10px;border:1px solid var(--panel-border);border-radius:7px;background:var(--panel-surface);color:var(--sky-ink);font-size:.8rem;font-weight:800}.panel-title button:hover,.secondary:hover{border-color:#6fa8ffb8;background:#142236fa}.panel-title button:disabled{cursor:not-allowed;opacity:.48}.primary{border-color:#6fa8ff9e!important;background:linear-gradient(180deg,#6fa8ffe6,#5a8ce6eb)!important;color:#051022!important;font-weight:900!important}.primary:hover{border-color:#77f2deb8!important;background:linear-gradient(180deg,#7fb8fff2,#6496f0f2)!important}.primary:disabled{cursor:not-allowed;opacity:.45}.icon-button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--panel-border);border-radius:7px;background:var(--panel-surface);color:var(--sky-muted-strong)}.icon-button:hover{border-color:#6fa8ffb8;background:#142236fa;color:var(--sky-ink-strong)}.icon-button:disabled{cursor:not-allowed;opacity:.4}.icon-button.is-danger:hover{border-color:#ff6e6e9e;background:#ff505024;color:#ffd2d2}.icon-button.is-added{border-color:#77f2de6b;color:var(--star-accent)}.panel-actions{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}label{display:grid;gap:6px;margin-bottom:10px;color:var(--sky-muted-strong);font-size:.78rem;font-weight:800;text-transform:uppercase}input,textarea{width:100%;border:1px solid var(--panel-border);border-radius:7px;background:#04070dfa;color:var(--sky-ink-strong);outline:none}input{min-height:38px;padding:8px 10px}input:focus,textarea:focus{border-color:var(--control-blue);box-shadow:0 0 0 3px #6fa8ff29}input[type=range]{padding:0;accent-color:var(--control-blue)}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.location-presets{margin-bottom:12px}.location-presets summary{color:var(--control-blue-soft);font-size:.78rem;font-weight:800;text-transform:none}.location-presets[open] summary{border-bottom:1px solid rgba(42,51,64,.95)}.location-presets .preset-grid{margin:10px 10px 8px}.location-presets>#geo-button{width:calc(100% - 20px);margin:0 10px 10px}.timeline-markers,.preset-grid,.export-actions,.result-list,.best-list,.visible-list,.target-list,.concept-list{display:grid;gap:8px}.tour-controls{display:flex;align-items:center;gap:6px;margin-bottom:10px}.tour-label{margin-right:auto;color:var(--sky-muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.timeline-markers{grid-template-columns:repeat(7,minmax(0,1fr));margin:8px 0 12px}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:8px 0 12px}.marker{min-width:0;padding:5px 2px;border-radius:6px;background:#ff9f5a1f;color:var(--warm-star);font-size:.72rem;font-weight:800}.preset-button,.export-actions button{min-width:0;min-height:32px;padding:6px 8px;border:1px solid var(--panel-border);border-radius:7px;background:var(--panel-surface);color:#dbe8f8;font-size:.78rem;font-weight:800}.preset-button:hover,.export-actions button:hover{border-color:#6fa8ff9e;background:#142236fa}.preset-button.is-active{border-color:#77f2de9e;color:var(--star-accent);background:#77f2de1a}.export-actions{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.notice-line{min-height:34px;padding:9px 10px;border:1px solid rgba(111,168,255,.22);border-radius:7px;background:#6fa8ff14;color:#dce7f7;font-size:.82rem;line-height:1.35}.search-input{margin-bottom:10px;direction:ltr;unicode-bidi:plaintext}.result-row,.visible-row,.best-select{width:100%;display:grid;gap:3px;padding:10px;border:1px solid rgba(42,51,64,.95);border-radius:7px;background:var(--panel-surface);color:var(--sky-ink);text-align:left}.result-row:hover,.visible-row:hover,.best-select:hover{border-color:#6fa8ff9e;background:#142236fa}.result-row span,.visible-row span,.best-select span,.muted,.object-subtitle,.target-row small{color:var(--sky-muted-strong);font-size:.82rem;line-height:1.35}.object-panel p{color:#d9e3f2;line-height:1.45}.object-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.object-data-grid span{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid rgba(42,51,64,.95);border-radius:7px;background:#0d1624c2;color:#dff1ff;font-size:.82rem}.object-data-grid b{color:var(--star-accent);font-size:.72rem;text-transform:uppercase}.best-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.best-add{min-width:64px;padding:0 10px;border:1px solid rgba(119,242,222,.28);border-radius:7px;background:#77f2de1f;color:#dff9ef;font-size:.8rem;font-weight:800}.best-add:hover{border-color:#77f2de9e;background:#77f2de33}.best-add:disabled{cursor:not-allowed;opacity:.55}.mini-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.mini-timeline span{display:grid;gap:3px;padding:9px;border-radius:7px;background:#ff9f5a1a;color:#ffe8b8;font-size:.8rem}.mini-timeline b{color:var(--horizon-glow);font-size:.72rem;text-transform:uppercase}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.stats-grid span{display:grid;gap:3px;padding:9px;border-radius:7px;background:#6fa8ff1a;color:#dff9ef;font-size:.82rem}.stats-grid b{color:var(--control-blue-soft);font-size:.72rem;text-transform:uppercase}details{border:1px solid rgba(42,51,64,.95);border-radius:7px;background:#0d1624c7}summary{padding:9px 10px;color:var(--warm-star);cursor:pointer;font-weight:800}details p{margin:0;padding:0 10px 10px}.target-row{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-items:center;padding:9px;border:1px solid transparent;border-radius:7px;background:#77f2de17}.target-main{display:grid;gap:3px;min-width:0}.target-row.active{border-color:#ff9f5a94;background:#ff9f5a1a}.target-main span,.target-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-actions{display:flex;gap:6px}.handoff-canvas{display:block;width:164px;height:164px;margin:12px auto;border-radius:8px;background:#f8fbff}.handoff-canvas[hidden]{display:none}textarea{min-height:84px;resize:vertical;padding:9px;color:#cfe9ff;font-size:.76rem}@media(max-width:980px){body{overflow:auto}.app-shell,.app-shell.controls-collapsed{grid-template-columns:1fr}.sky-stage,#sky-canvas{min-height:72vh;height:72vh}.app-shell.controls-collapsed .sky-stage,.app-shell.controls-collapsed #sky-canvas{min-height:100vh;height:100vh}.sky-clock{bottom:74px}.time-rail{grid-template-columns:1fr;bottom:12px}.workspace{height:auto;overflow:visible}}@media(max-width:560px){.topbar{top:12px;right:12px;bottom:12px;left:12px;display:grid}h1{font-size:1.45rem}.status-row{justify-content:flex-start}.workspace{padding:10px}.workspace-header{margin:-10px -10px 10px;padding:10px}.sky-clock,.sky-controls{right:12px;left:12px;max-width:none}.sky-clock{bottom:88px}.sky-controls{top:118px;bottom:auto;justify-content:flex-start}.workspace-open{right:12px}.time-rail{right:12px;left:12px}.location-grid,.object-data-grid,.mini-timeline,.stats-grid,.observation-card,.route-summary,.best-row{grid-template-columns:1fr}.timeline-markers{grid-template-columns:repeat(4,minmax(0,1fr))}}
