:root {
  color-scheme: dark;
  --ink: #e8f1f2;
  --muted: #89a0a8;
  --faint: #536974;
  --bg: #061019;
  --panel: #0a1924;
  --panel-2: #0d202c;
  --line: rgba(157, 193, 199, 0.16);
  --line-strong: rgba(157, 193, 199, 0.3);
  --cyan: #79d5cf;
  --cyan-strong: #48bfb8;
  --amber: #f4b860;
  --amber-soft: rgba(244, 184, 96, 0.15);
  --green: #7bc89a;
  --red: #f27777;
  --shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
  --radius: 18px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }

html {
  min-width: 320px;
  min-height: 100%;
  background: var(--bg);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    radial-gradient(circle at 52% -15%, rgba(41, 101, 113, 0.18), transparent 34rem),
    linear-gradient(180deg, #07131d 0%, #050d14 100%);
  font-size: 16px;
  line-height: 1.45;
}

button, input { font: inherit; }
button { color: inherit; }
button, input, summary { -webkit-tap-highlight-color: transparent; }

button:focus-visible, input:focus-visible, summary:focus-visible, canvas:focus-visible {
  outline: 2px solid var(--amber);
  outline-offset: 3px;
}

.app-shell { min-height: 100vh; }

.topbar {
  position: sticky;
  z-index: 30;
  top: 0;
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 10px clamp(16px, 2.2vw, 34px);
  border-bottom: 1px solid var(--line);
  background: rgba(6, 16, 25, 0.86);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: -0.02em;
}

.brand > span:last-child { font-size: 1.05rem; }
.brand strong { font-weight: 680; }
.brand b { margin-left: 4px; color: var(--amber); font-weight: 760; }
.brand-mark { display: grid; width: 37px; height: 37px; place-items: center; }
.brand-mark svg { width: 100%; fill: none; stroke: var(--cyan); stroke-width: 1.6; stroke-linecap: round; }
.brand-mark svg path:first-of-type { stroke: var(--amber); }

.top-actions { display: flex; align-items: center; gap: 10px; }
.export-group { display: flex; gap: 7px; }

.status-pill, .data-badge, .visibility-tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 650;
  white-space: nowrap;
}

.status-pill { padding: 7px 10px; }
.status-pill i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(123,200,154,.08); }
.status-pill.offline i { background: var(--amber); }

.button, .icon-button, .text-button {
  border: 0;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}
.button:active, .icon-button:active { transform: translateY(1px); }
.button:disabled, .icon-button:disabled { cursor: not-allowed; opacity: .52; }

.button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 9px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 11px;
  background: var(--panel-2);
  color: var(--ink);
  font-size: .88rem;
  font-weight: 670;
}
.button:hover { border-color: rgba(121,213,207,.55); background: #102936; }
.button svg, .icon-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.button.ghost { min-height: 38px; padding: 7px 11px; background: transparent; color: var(--muted); }
.button.ghost:hover { color: var(--ink); background: var(--panel-2); }
.button.primary { border-color: #d99c49; background: var(--amber); color: #17202a; }
.button.primary:hover { background: #ffc873; }

.workspace {
  display: grid;
  grid-template-columns: minmax(246px, 290px) minmax(520px, 1fr) minmax(244px, 286px);
  align-items: start;
  gap: 14px;
  width: 100%;
  max-width: 1880px;
  min-height: calc(100vh - 66px);
  margin: 0 auto;
  padding: 14px;
}

.panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(150deg, rgba(13, 32, 44, .95), rgba(7, 21, 31, .98));
  box-shadow: var(--shadow);
}

.control-panel, .sky-panel {
  align-self: start;
  padding: 18px;
}

.panel-heading, .card-toolbar, .section-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.eyebrow {
  margin: 0 0 3px;
  color: var(--cyan);
  font-size: .69rem;
  font-weight: 760;
  letter-spacing: .13em;
  text-transform: uppercase;
}

h1, h2, p { margin-top: 0; }
h1, h2 { letter-spacing: -.025em; }
h1 { margin-bottom: 0; font-size: 1.34rem; font-weight: 720; }
h2 { margin-bottom: 0; font-size: 1.05rem; font-weight: 700; }

.icon-button {
  display: grid;
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(121,213,207,.06);
  color: var(--cyan);
}
.icon-button:hover { border-color: rgba(121,213,207,.5); background: rgba(121,213,207,.12); }

.observer-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin-top: 20px;
}

label { position: relative; color: var(--muted); font-size: .76rem; font-weight: 630; }
input[type="number"], input[type="datetime-local"] {
  width: 100%;
  min-height: 42px;
  margin-top: 5px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--ink);
  background: rgba(2, 12, 19, .52);
  font-size: .88rem;
  font-variant-numeric: tabular-nums;
}
input:hover { border-color: var(--line-strong); }
input:focus { border-color: var(--cyan); }
.unit { position: absolute; right: 10px; bottom: 11px; color: var(--faint); font-size: .72rem; pointer-events: none; }
label:has(.unit) input { padding-right: 32px; }
.form-submit { grid-column: 1 / -1; margin-top: 2px; }

.data-section, .route-section, .advanced-section, .peaks-section {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.section-title-row h2 { font-size: .88rem; }
.data-badge { padding: 4px 8px; font-size: .66rem; }
.data-badge.demo { color: var(--amber); border-color: rgba(244,184,96,.25); background: var(--amber-soft); }
.data-badge.real { color: var(--green); border-color: rgba(123,200,154,.3); background: rgba(123,200,154,.08); }
.data-section p, .advanced-section p, .microcopy, .terrain-note, .source-note { color: var(--muted); font-size: .74rem; line-height: 1.55; }
.data-section p { margin: 9px 0 12px; }
.download-button { width: 100%; color: var(--cyan); }

.progress-wrap { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 9px; margin-top: 11px; color: var(--muted); font-size: .68rem; }
.progress-track { height: 5px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.07); }
.progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--cyan-strong), var(--amber)); transition: width .2s ease; }

.text-button { padding: 4px; background: transparent; color: var(--cyan); font-size: .72rem; font-weight: 700; }
.text-button:hover { color: #a4ebe6; }
.route-summary { display: flex; align-items: baseline; justify-content: space-between; margin: 12px 0 8px; }
.route-summary strong { font-size: 1.22rem; font-variant-numeric: tabular-nums; }
.route-summary span { color: var(--muted); font-size: .72rem; }
.route-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.route-list li { display: grid; grid-template-columns: minmax(0, 1fr) 24px; align-items: center; gap: 2px; }
.route-item { display: grid; grid-template-columns: 23px 1fr auto; align-items: center; gap: 7px; width: 100%; min-height: 38px; padding: 5px 7px; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.route-item:hover { background: rgba(255,255,255,.03); color: var(--ink); }
.route-item.active { border-color: rgba(121,213,207,.28); background: rgba(121,213,207,.07); color: var(--ink); }
.route-index { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 50%; background: #1c3743; color: var(--cyan); font-size: .65rem; font-weight: 800; }
.route-item.active .route-index { background: var(--amber); color: #17202a; }
.route-coords { display: block; color: var(--faint); font-size: .62rem; font-variant-numeric: tabular-nums; }
.route-delete { padding: 3px; color: var(--faint); background: transparent; border: 0; cursor: pointer; }
.route-delete:hover { color: var(--red); }
.microcopy { margin: 9px 0 0; }

.advanced-section summary { cursor: pointer; color: var(--muted); font-size: .76rem; font-weight: 680; }
.advanced-section[open] summary { margin-bottom: 12px; color: var(--ink); }
.range-label { display: grid; gap: 7px; }
.range-label > span { display: flex; justify-content: space-between; }
input[type="range"] { width: 100%; accent-color: var(--amber); }
.advanced-section p { margin: 9px 0 0; }

.visual-column { display: flex; min-width: 0; flex-direction: column; align-self: start; gap: 14px; }
.map-card, .horizon-card { min-width: 0; overflow: hidden; }
.map-card { height: auto; }
.card-toolbar { min-height: 70px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.map-toolbar-right { display: grid; justify-items: end; gap: 7px; }
.map-mode-control { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: rgba(2,12,19,.4); }
.map-mode-control button { min-height: 26px; padding: 3px 9px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: .68rem; font-weight: 700; cursor: pointer; }
.map-mode-control button:hover { color: var(--ink); }
.map-mode-control button.active { background: rgba(121,213,207,.15); color: var(--cyan); }
.map-legend { display: flex; gap: 11px; color: var(--muted); font-size: .68rem; }
.map-legend span { display: flex; align-items: center; gap: 6px; }
.map-legend i { width: 9px; height: 9px; border-radius: 2px; }
.map-legend .visible { background: #42d18d; }
.map-legend .hidden { background: #263844; border: 1px solid rgba(232,241,242,.45); }
.map-legend .contour { width: 12px; height: 0; border-top: 2px solid rgba(255,255,255,.78); border-radius: 0; }

.map-stage, .horizon-stage { position: relative; min-width: 0; min-height: 0; overflow: hidden; contain: layout paint; isolation: isolate; }
.map-stage { width: 100%; height: auto; aspect-ratio: 16 / 9; background: #243b3d; }
.map-stage canvas, .horizon-stage canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; touch-action: none; }
.map-north { position: absolute; top: 15px; right: 16px; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: rgba(3,12,18,.7); color: var(--ink); font-size: .62rem; font-weight: 800; backdrop-filter: blur(8px); }
.map-north i { position: absolute; top: 4px; left: 17px; border-right: 2px solid transparent; border-bottom: 8px solid var(--amber); border-left: 2px solid transparent; }
.map-scale { position: absolute; right: 15px; bottom: 15px; min-width: 66px; padding-top: 4px; border-top: 2px solid var(--ink); color: var(--ink); font-size: .62rem; text-align: center; text-shadow: 0 1px 3px #000; }
.map-hint { position: absolute; bottom: 13px; left: 15px; padding: 5px 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 7px; background: rgba(3,12,18,.72); color: rgba(232,241,242,.7); font-size: .63rem; backdrop-filter: blur(8px); }
.elevation-legend { position: absolute; top: 16px; left: 15px; display: grid; grid-template-columns: auto 10px; grid-template-rows: auto 68px auto; column-gap: 7px; align-items: center; padding: 8px; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; background: rgba(3,12,18,.72); color: rgba(232,241,242,.82); font-size: .58rem; line-height: 1; pointer-events: none; backdrop-filter: blur(8px); }
.elevation-legend span { grid-column: 1; text-align: right; font-variant-numeric: tabular-nums; }
.elevation-legend span:first-child { align-self: start; }
.elevation-legend span:last-child { align-self: end; }
.elevation-legend i { grid-column: 2; grid-row: 1 / 4; width: 9px; height: 100%; min-height: 82px; border: 1px solid rgba(255,255,255,.25); border-radius: 4px; background: linear-gradient(180deg, #e4e3d7 0%, #b8a66e 36%, #6f8f69 70%, #3e6d62 100%); }

.map-tooltip, .horizon-tooltip {
  position: absolute;
  z-index: 4;
  max-width: 210px;
  padding: 8px 10px;
  border: 1px solid rgba(121,213,207,.35);
  border-radius: 8px;
  background: rgba(4,15,23,.92);
  box-shadow: 0 8px 24px rgba(0,0,0,.28);
  color: var(--ink);
  font-size: .69rem;
  line-height: 1.45;
  pointer-events: none;
  backdrop-filter: blur(10px);
}
.map-tooltip span, .horizon-tooltip span { display: block; color: var(--muted); }

.horizon-card { display: grid; height: auto; grid-template-rows: auto 210px auto; }
.horizon-toolbar { min-height: 61px; }
.azimuth-readout { text-align: right; }
.azimuth-readout span { display: block; color: var(--muted); font-size: .65rem; }
.azimuth-readout strong { color: var(--amber); font-size: .94rem; font-variant-numeric: tabular-nums; }
.horizon-stage { height: 210px; background: linear-gradient(180deg, rgba(26,59,72,.15), transparent); }
.horizon-stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.horizon-stats > div { min-width: 0; padding: 10px 13px; border-right: 1px solid var(--line); }
.horizon-stats > div:last-child { border-right: 0; }
.horizon-stats span { display: block; overflow: hidden; color: var(--muted); font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }
.horizon-stats strong { display: block; overflow: hidden; margin-top: 2px; font-size: .79rem; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }

.sky-panel { min-width: 0; }
.date-field { display: block; margin-top: 18px; }
.date-field input { color-scheme: dark; }
.celestial-card { position: relative; display: grid; grid-template-columns: 43px 1fr auto; align-items: center; gap: 11px; margin-top: 11px; padding: 13px 11px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: rgba(1,10,16,.34); }
.celestial-icon { position: relative; display: grid; width: 40px; height: 40px; place-items: center; }
.celestial-icon.sun i { width: 23px; height: 23px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 22px rgba(244,184,96,.45); }
.celestial-icon.sun::before, .celestial-icon.sun::after { content: ""; position: absolute; width: 36px; height: 1px; background: rgba(244,184,96,.55); }
.celestial-icon.sun::after { transform: rotate(90deg); }
.celestial-icon.moon i { width: 25px; height: 25px; overflow: hidden; border-radius: 50%; background: #dbe5ea; box-shadow: inset -7px 0 0 #3b4f5d, 0 0 18px rgba(219,229,234,.16); }
.celestial-copy span { display: block; color: var(--muted); font-size: .68rem; }
.celestial-copy strong { display: block; margin: 1px 0; font-size: 1.08rem; font-variant-numeric: tabular-nums; }
.celestial-copy small { display: block; color: var(--faint); font-size: .65rem; }
.visibility-tag { padding: 4px 7px; font-size: .62rem; }
.visibility-tag.visible { color: var(--green); border-color: rgba(123,200,154,.28); }
.visibility-tag.hidden { color: var(--muted); }

.daylight-times { display: grid; gap: 8px; margin-top: 17px; }
.daylight-times div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-bottom: 8px; border-bottom: 1px dashed var(--line); }
.daylight-times span { color: var(--muted); font-size: .7rem; }
.daylight-times strong { font-size: .78rem; font-variant-numeric: tabular-nums; }
.terrain-note { margin: 10px 0 0; }
.peaks-section { margin-top: 16px; padding-top: 15px; }
.peaks-section .section-title-row > span { color: var(--muted); font-size: .66rem; }
.peaks-list { display: grid; gap: 5px; margin-top: 10px; }
.peak-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 8px 0; border-bottom: 1px solid rgba(157,193,199,.09); }
.peak-row:last-child { border-bottom: 0; }
.peak-row strong { overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.peak-row span { color: var(--muted); font-size: .67rem; font-variant-numeric: tabular-nums; }
.peaks-empty { padding: 13px 0; color: var(--muted); font-size: .7rem; }
.source-note { margin: 17px 0 0; padding-top: 14px; border-top: 1px solid var(--line); }

.toast-region { position: fixed; z-index: 80; right: 18px; bottom: 18px; display: grid; gap: 8px; max-width: min(360px, calc(100vw - 36px)); }
.toast { padding: 11px 14px; border: 1px solid var(--line-strong); border-radius: 11px; background: #102531; box-shadow: var(--shadow); color: var(--ink); font-size: .78rem; animation: toast-in .22s ease both; }
.toast.error { border-color: rgba(242,119,119,.38); }
@keyframes toast-in { from { opacity: 0; transform: translateY(7px); } }

.print-report { display: none; }

@media (max-width: 1220px) {
  .workspace { grid-template-columns: minmax(240px, 280px) minmax(0, 1fr); }
  .sky-panel { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr 1fr 1fr; align-items: start; gap: 13px; }
  .sky-panel > .panel-heading, .sky-panel > .date-field { grid-column: 1; }
  .sky-panel > .sun-card, .sky-panel > .moon-card { grid-column: 2; }
  .sky-panel > .daylight-times, .sky-panel > .terrain-note { grid-column: 3; }
  .sky-panel > .peaks-section { grid-column: 1 / 3; }
  .sky-panel > .source-note { grid-column: 3; align-self: end; }
}

@media (max-width: 820px) {
  .topbar { min-height: 60px; }
  .status-pill span, .install-button span { display: none; }
  .status-pill { width: 32px; justify-content: center; padding: 7px; }
  .export-group .button span { display: none; }
  .export-group .button { width: 38px; padding: 7px; }
  .workspace { display: flex; flex-direction: column; padding: 10px; }
  .visual-column { order: -1; }
  .map-stage { aspect-ratio: 3 / 2; }
  .horizon-card { grid-template-rows: auto 190px auto; }
  .horizon-stage { height: 190px; }
  .control-panel, .sky-panel { width: 100%; }
  .control-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
  .control-panel > .panel-heading, .control-panel > .observer-form { grid-column: 1; }
  .control-panel > .data-section, .control-panel > .route-section, .control-panel > .advanced-section { grid-column: 2; }
  .control-panel > .data-section { margin-top: 0; padding-top: 0; border-top: 0; }
  .sky-panel { grid-template-columns: 1fr 1fr; }
  .sky-panel > .panel-heading, .sky-panel > .date-field { grid-column: 1; }
  .sky-panel > .sun-card, .sky-panel > .moon-card { grid-column: 2; }
  .sky-panel > .daylight-times, .sky-panel > .terrain-note { grid-column: 1; }
  .sky-panel > .peaks-section { grid-column: 2; grid-row: 4 / 6; }
  .sky-panel > .source-note { grid-column: 1 / -1; }
}

@media (max-width: 590px) {
  .brand > span:last-child { font-size: .95rem; }
  .top-actions { gap: 5px; }
  .button.ghost { width: 36px; padding: 6px; }
  .install-button { display: none !important; }
  .workspace { padding: 8px; gap: 8px; }
  .panel { border-radius: 14px; }
  .visual-column { gap: 8px; }
  .map-stage { aspect-ratio: 4 / 3; }
  .horizon-card { grid-template-rows: auto 172px auto; }
  .horizon-stage { height: 172px; }
  .card-toolbar { min-height: 63px; padding: 11px 13px; }
  .map-toolbar-right { gap: 5px; }
  .map-legend { display: none; }
  .map-hint { display: none; }
  .horizon-stats { grid-template-columns: 1fr 1fr; }
  .horizon-stats > div:nth-child(2) { border-right: 0; }
  .horizon-stats > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .control-panel, .sky-panel { display: block; padding: 16px; }
  .control-panel > .data-section, .control-panel > .route-section { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
  .sky-panel > * { margin-top: 14px; }
  .sky-panel > .panel-heading { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media print {
  @page { size: A4 landscape; margin: 11mm; }
  :root { color-scheme: light; }
  body { background: white; color: #10212b; }
  .app-shell, .toast-region { display: none !important; }
  .print-report { display: block; }
  .print-report h1 { margin: 0 0 3mm; font-size: 22pt; }
  .print-report p { margin: 0 0 4mm; color: #425866; font-size: 9pt; }
  .print-report .print-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5mm; }
  .print-report figure { margin: 0; break-inside: avoid; }
  .print-report figure:last-child { grid-column: 1 / -1; }
  .print-report img { display: block; width: 100%; border: 1px solid #bed0d5; border-radius: 2mm; }
  .print-report figcaption { margin-top: 1mm; color: #4f6873; font-size: 8pt; }
  .print-report table { width: 100%; margin-top: 4mm; border-collapse: collapse; font-size: 8pt; }
  .print-report th, .print-report td { padding: 1.6mm; border-bottom: 1px solid #d8e1e4; text-align: left; }
}
/* Observation atlas and ISS planner */
a { color: var(--cyan); }
button, input, select, textarea { font: inherit; }
select,textarea { color:var(--ink); background:var(--panel-2); border:1px solid var(--line-strong); border-radius:8px; padding:10px; width:100%; }
select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
#geoMap {position:absolute;inset:0;z-index:1;background:#e2e8e6;}
#geoMap[hidden]{display:none}
.atlas-mode .map-north,.atlas-mode .map-scale,.atlas-mode .map-hint,.atlas-mode .elevation-legend{display:none}
.leaflet-container{font:14px/1.4 system-ui;color:#162f3c}
.leaflet-container a{color:#166080}.leaflet-control-zoom a{color:#193b46!important}
.map-toolbar-right{flex-wrap:wrap}.map-mode-control{flex-wrap:wrap}.map-mode-control button{font-size:14px}
.model-note{font-size:14px;line-height:1.55;color:var(--muted);margin:12px 0}.horizon-card>.model-note{margin:0;padding:10px 20px;background:var(--panel-2)}
.iss-workspace,.integrations{margin:0 clamp(16px,2.2vw,34px) 24px;overflow:hidden}
.iss-grid{display:grid;grid-template-columns:minmax(235px,.85fr) minmax(260px,1fr) minmax(330px,1.3fr);gap:0}
.iss-controls,.iss-results,.iss-detail{padding:24px;min-width:0}
.iss-controls,.iss-results{border-right:1px solid var(--line)}
.iss-controls form{display:grid;gap:14px}.iss-controls label{display:grid;gap:7px;font-size:14px;color:var(--muted)}
.iss-controls input{width:100%;min-width:0}.input-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.iss-controls .download-button{margin-top:20px}.iss-controls details{font-size:14px}.iss-controls textarea{margin:12px 0;font-family:monospace}.iss-controls details a{display:block;margin-top:10px}
.iss-results h3,.iss-detail h3{font-size:18px;margin:0 0 12px}.iss-results>p{font-size:14px;color:var(--muted)}
#transitProgressBar{width:100%;accent-color:var(--cyan)}
#transitEvents{display:grid;gap:10px;max-height:680px;overflow:auto}
.transit-event{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:15px;text-align:left;display:grid;gap:6px;cursor:pointer}
.transit-event:hover,.transit-event.selected{border-color:var(--cyan);background:#102e39}.transit-event strong{font-size:16px}.transit-event span{font-size:14px;color:var(--muted)}.transit-event .event-body{color:var(--amber);font-weight:700}
.empty-transit{padding:50px 12px;text-align:center;color:var(--muted)}.empty-transit>span{display:block;font-size:72px;color:var(--cyan)}.empty-transit h3{color:var(--ink)}
.detail-tabs{display:flex;border:1px solid var(--line);border-radius:8px;padding:4px;gap:4px}.detail-tabs button{flex:1;background:transparent;border:0;padding:9px 4px;font-size:14px;border-radius:5px;cursor:pointer}.detail-tabs button.active{background:#21414e;color:var(--cyan)}
#transitDisc{width:100%;height:auto;display:block;border-radius:12px}.disc-caption{text-align:center;font-size:14px;color:var(--muted)}
.transit-metrics{margin:12px 0;display:grid;gap:10px}.transit-metrics>div{display:grid;grid-template-columns:1fr 1.3fr;gap:10px;border-bottom:1px solid var(--line);padding-bottom:9px;font-size:14px}.transit-metrics dt{color:var(--muted)}.transit-metrics dd{margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.accuracy-note{margin:0;padding:16px 24px;border-top:1px solid var(--line)}
.integrations{padding:24px}.integrations h2{margin:0}.integrations p{color:var(--muted)}.integration-actions{display:flex;flex-wrap:wrap;gap:10px}.integration-actions .button{font-size:14px;text-decoration:none}.integrations details{margin-top:20px}.integrations details p{font-size:14px;max-width:110ch}
.warning{color:var(--amber)}
@media(max-width:1100px){.iss-grid{grid-template-columns:1fr 1fr}.iss-detail{grid-column:1/-1;border-top:1px solid var(--line)}#transitDisc{max-width:500px;margin:auto}.iss-results{border-right:0}}
@media(max-width:650px){.iss-grid{display:block}.iss-controls,.iss-results{border-right:0;border-bottom:1px solid var(--line)}.iss-controls,.iss-results,.iss-detail{padding:18px}.iss-workspace .card-toolbar{align-items:flex-start;gap:12px;flex-direction:column}.iss-workspace h2{font-size:21px}.transit-metrics>div{grid-template-columns:1fr}.transit-metrics dd{text-align:left}.map-toolbar-right{justify-content:flex-start}.map-card .card-toolbar{flex-wrap:wrap}.integrations{padding:18px}}

[hidden]{display:none!important}

/* Orizzonte 360 — field notebook */
:root{--bg:#101211;--panel:#1c1f1d;--panel-2:#262b27;--ink:#f2f5f2;--muted:#afb9b1;--faint:#8d9a91;--line:rgba(221,239,225,.12);--line-strong:rgba(221,239,225,.23);--cyan:#46df68;--cyan-strong:#37c65a;--green:#46df68;--amber:#edc969;--radius:24px}
body{background:#101211;font-size:16px}.topbar{background:rgba(16,18,17,.94);min-height:76px;padding-inline:32px;border-bottom:0}.brand>span:last-child{font-size:24px;letter-spacing:-.8px}.brand b{color:var(--cyan)}.brand-mark{width:42px;height:42px}.brand-mark svg path:first-of-type{stroke:var(--cyan)}
.astro-nav{display:flex;justify-content:center;gap:7px;margin:0 auto 10px;padding:7px;width:fit-content;max-width:calc(100% - 32px);background:#252925;border:1px solid var(--line);border-radius:22px;position:sticky;top:82px;z-index:25;box-shadow:0 10px 30px #0003}.astro-nav a{display:flex;align-items:center;gap:10px;color:var(--muted);text-decoration:none;padding:12px 20px;border-radius:16px;white-space:nowrap;font-size:14px;font-weight:650}.astro-nav a>span{font-size:24px;line-height:1}.astro-nav a.active{background:#3a453d;color:#5bec79}.astro-nav a:hover{color:white;background:#343b35}
.location-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 32px 20px;font-size:14px}.location-strip i{font-style:normal;color:var(--cyan);font-size:22px;margin-right:8px}.location-strip strong{font-weight:500;font-variant-numeric:tabular-nums}.location-strip button{font-size:14px;min-height:44px}.workspace{padding-top:0;grid-template-columns:280px minmax(0,1fr) 280px;gap:18px}.panel{border-radius:24px;background:var(--panel);box-shadow:none;border:1px solid var(--line)}.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--cyan);font-weight:600}.panel h1{font-size:26px}.panel h2{font-size:20px}.control-panel,.sky-panel{padding:22px}.button{border-radius:13px;min-height:44px;font-size:14px}.button.primary{background:var(--cyan);border-color:var(--cyan);color:#0c2714}.button.primary:hover{background:#68ed86}.button.ghost{width:auto;min-height:44px;color:var(--ink)}.button:hover{background:#344139;border-color:#5b8163}.download-button{background:#283d2e;color:#69e584;border-color:#3b6345}.icon-button{background:#303831;color:var(--cyan);border-radius:50%;width:44px;height:44px}.text-button{font-size:14px;color:var(--cyan)}
input:not([type=range]):not([type=checkbox]),select,textarea{background:#292e2a;border:1px solid #424b44;color:var(--ink);border-radius:11px;min-height:46px;font-size:16px;padding:11px;width:100%;min-width:0}label{font-size:14px}input[type=range]{accent-color:var(--cyan);height:26px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--cyan)}.observer-form label{font-size:14px}.observer-form{gap:14px}.microcopy,.source-note,.terrain-note,.advanced-section p,.data-section p,.route-coords,.route-summary span,.route-item,.peaks-empty,.daylight-times span,.daylight-times strong,.celestial-copy span,.celestial-copy small,.horizon-stats span,.horizon-stats strong,.visibility-tag,.data-badge{font-size:14px;line-height:1.5}.route-coords{font-size:12px}.route-summary strong{font-size:24px}.section-title-row h2{font-size:17px}.map-stage{height:500px;aspect-ratio:auto}.map-card .card-toolbar{padding:20px;flex-wrap:wrap;gap:12px}.map-mode-control{background:#101511;border:0;border-radius:12px;padding:4px}.map-mode-control button{min-height:36px;padding:7px 12px;border-radius:9px}.map-mode-control button.active{background:#3e4c41;color:#6bee87}.map-legend{font-size:12px}.horizon-card{display:block}.horizon-stage{height:210px}.horizon-stats{min-height:65px}.sky-panel{align-self:start}.celestial-card{background:#242a25;border-radius:17px}.celestial-copy strong{font-size:24px}.daylight-times div{align-items:center}.iss-workspace{margin-top:0}.iss-workspace>.card-toolbar{padding:24px}.iss-grid{grid-template-columns:minmax(250px,.85fr) minmax(280px,1fr) minmax(310px,1.15fr)}.iss-controls,.iss-results,.iss-detail{padding:26px}.transit-event{border-radius:18px;padding:20px;background:#292e2a}.transit-event:hover,.transit-event.selected{background:#344638;border-color:var(--cyan)}.detail-tabs{background:#303331;border:0;border-radius:30px}.detail-tabs button{border-radius:24px}.detail-tabs button.active{background:#526157;color:#fff}.integrations{margin-top:24px;background:transparent;border-top:1px solid var(--line);border-radius:0}.integrations>div:first-child p{font-size:14px}.tool-page{padding:8px 32px 30px;max-width:1700px;margin:auto}.tool-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:10px 0 28px}.tool-title h1{font-size:clamp(30px,3vw,46px);letter-spacing:-1.5px;line-height:1.12;font-weight:600;margin:10px 0 12px}.tool-title p:not(.eyebrow){color:var(--muted);margin:0;font-size:16px}.pill{font-size:12px;letter-spacing:.08em;white-space:nowrap;color:var(--muted);padding:10px 14px;border:1px solid var(--line-strong);border-radius:30px}.tool-split{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}.tool-controls{padding:26px;display:grid;gap:18px}.tool-controls h2{margin:0}.tool-controls label,.tool-controls form{display:grid;gap:9px}.tool-controls form{gap:18px}.tool-controls output{float:right;color:var(--cyan)}.tool-controls .input-pair{align-items:end}.focal-presets{display:flex;flex-wrap:wrap;gap:6px}.focal-presets button{border:1px solid var(--line);border-radius:8px;padding:8px;background:#242c26;cursor:pointer;font-size:14px}.focal-presets button.active{color:var(--cyan);border-color:var(--cyan)}.frame-panel{overflow:hidden}.frame-heading{display:flex;justify-content:space-between;padding:22px 26px;font-size:14px}.frame-heading span:last-child{color:var(--cyan)}#frameCanvas{display:block;width:100%;height:auto}.optics-metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:12px 26px}.optics-metrics>div{padding:18px 0;border-bottom:1px solid var(--line)}.optics-metrics span,.eclipse-facts span{display:block;color:var(--muted);font-size:14px;margin-bottom:8px}.optics-metrics strong{font-size:22px;font-weight:550}.frame-panel>.model-note{padding:0 26px 18px}.filter-bar{padding:22px;display:grid;grid-template-columns:1.2fr 1.2fr 1fr 1fr;align-items:center;gap:22px}.filter-bar label{display:grid;gap:9px}.filter-bar .check-label{display:flex;align-items:center;gap:10px}.filter-bar output{color:var(--cyan)}.explore-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:22px;margin-top:22px}.catalog-panel{padding:26px;min-width:0}.catalog-panel h2{margin:0 0 14px}.file-button{position:relative;cursor:pointer}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.object-list{margin-top:20px;max-height:720px;overflow-y:auto}.object-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.object-row strong{font-size:17px;font-weight:550}.object-row span{display:block;color:var(--muted);font-size:14px;margin-top:7px}.object-row b{font-size:23px;color:var(--cyan);font-weight:500;text-align:right}.object-row small{display:block;font-size:12px;color:var(--muted)}.empty-catalog{text-align:center;padding:55px 25px;color:var(--muted)}.empty-catalog>span{font-size:64px;color:var(--cyan)}.empty-catalog h3{color:var(--ink);font-weight:500;font-size:23px}.empty-catalog p{max-width:40ch;margin:auto}.night-note{border-top:1px solid var(--line);padding:22px 0 0;font-size:14px;color:var(--amber)}.eclipse-results{margin-top:22px}.eclipse-card{border-top:1px solid var(--line);padding:25px 0}.eclipse-card h3{font-weight:500;font-size:23px;margin:12px 0 24px}.eclipse-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.eclipse-facts strong{font-size:22px;font-weight:500}.contact-list{font-size:14px}.contact-list>div{display:flex;gap:14px;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.contact-list dt{color:var(--muted)}.contact-list dd{margin:0;text-align:right}.timer-card{padding:24px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.timer-card strong,.timer-card span,.timer-card small{display:block}.timer-card span{margin:8px 0;color:var(--muted);font-size:14px}.timer-card small{max-width:50ch;color:var(--muted);font-size:12px}.timer-card output{color:var(--cyan);font-size:clamp(23px,3vw,40px);font-variant-numeric:tabular-nums;letter-spacing:-1px}.timer-actions{display:flex;gap:15px;width:100%}.toast-region{bottom:110px}.tool-page,.iss-workspace{scroll-margin-top:170px}button:disabled{opacity:.5;cursor:not-allowed}a.button{text-decoration:none}
@media(max-width:1400px){.workspace{grid-template-columns:280px minmax(0,1fr)}.sky-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.iss-grid{grid-template-columns:1fr 1fr}.iss-detail{grid-column:1/-1;border-top:1px solid var(--line)}}
@media(max-width:1000px){.astro-nav a{padding:12px 15px}.tool-split{grid-template-columns:280px minmax(0,1fr)}.filter-bar{grid-template-columns:1fr 1fr}.optics-metrics{grid-template-columns:1fr 1fr}.explore-grid{grid-template-columns:1fr}.tool-title>.pill{display:none}}
@media(max-width:820px){.topbar{padding:12px 18px;min-height:68px}.brand>span:last-child{font-size:21px}.astro-nav{position:fixed;top:auto;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 20px);max-width:600px;margin:0;gap:0;justify-content:space-around;padding:6px;border-radius:28px;background:rgba(42,47,43,.96);backdrop-filter:blur(20px)}.astro-nav a{flex:1;display:flex;flex-direction:column;gap:7px;padding:10px 3px;font-size:12px;border-radius:22px}.astro-nav a>span{font-size:25px}.app-shell{padding-bottom:100px}.location-strip{padding:8px 18px 16px;flex-wrap:wrap}.location-strip button{padding:0}.workspace{display:flex;padding:0 12px;gap:14px}.visual-column{width:100%;gap:14px}.map-stage{height:460px}.map-card .card-toolbar{padding:18px}.control-panel{display:block}.control-panel>.data-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.sky-panel{display:block}.tool-page{padding:8px 14px 20px}.tool-title{margin:12px 4px 24px}.tool-title h1{font-size:34px;letter-spacing:-1px}.tool-split{display:flex;flex-direction:column}.tool-split>*{width:100%}.tool-controls{grid-template-columns:1fr 1fr;padding:22px;gap:18px}.tool-controls>h2,.tool-controls>form,.tool-controls>p{grid-column:1/-1}.tool-controls .input-pair{grid-column:1/-1}.frame-panel{order:-1}.tool-controls>.focal-presets{grid-column:1/-1}.tool-controls label{min-width:0}.iss-workspace{margin:0 12px 20px}.iss-grid{display:block}.iss-controls,.iss-results{border-right:0;border-bottom:1px solid var(--line)}.iss-controls,.iss-results,.iss-detail{padding:22px}.iss-workspace .card-toolbar{padding:22px}.integrations{margin:18px 12px 0;padding:20px 6px}.integration-actions{gap:8px}.integration-actions .button{width:auto}.filter-bar{padding:20px;gap:16px}.catalog-panel{padding:22px}.tool-page,.iss-workspace{scroll-margin-top:80px}.horizon-stats{grid-template-columns:repeat(2,1fr)}.horizon-stats strong{white-space:normal}.export-group .button{width:38px}.status-pill{width:32px}.button.ghost{width:auto}.topbar .export-group .button{width:38px}}
@media(max-width:440px){.map-stage{height:400px}.brand-mark{width:32px;height:32px}.brand>span:last-child{font-size:20px}.filter-bar{grid-template-columns:1fr}.tool-controls{display:flex;flex-direction:column}.optics-metrics{padding:10px 18px;gap:10px}.optics-metrics strong{font-size:19px}.frame-heading{padding:18px;gap:15px}.frame-heading span:last-child{display:none}.contact-list>div{flex-direction:column;gap:5px}.contact-list dd{text-align:left}.eclipse-facts{gap:16px}.eclipse-facts strong{font-size:20px}.location-strip{font-size:13px}.astro-nav a{font-size:12px}.top-actions{gap:4px}}
@media print{.astro-nav,.location-strip{display:none!important}}
/* Planetarium and photographic planning */
.compact-title{margin-top:0}.compact-title h1{font-size:34px}.sky-command{display:flex;align-items:end;flex-wrap:wrap;gap:16px;padding:20px;margin-bottom:18px}.sky-command label{display:grid;gap:7px}.sky-time-actions{display:flex;gap:7px;flex-wrap:wrap}.planetarium-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px}.planetarium-stage{position:relative;min-width:0;overflow:hidden;align-self:start;background:#080e16}#skyCanvas{width:100%;height:650px;display:block;touch-action:none;cursor:grab}#skyCanvas:active{cursor:grabbing}.sky-compass{position:absolute;bottom:55px;left:20px;display:flex;gap:8px}.sky-compass button,.sky-zoom button{border:1px solid #768a7e80;background:#1d2a23dc;border-radius:50%;width:42px;height:42px;font-size:16px;cursor:pointer;backdrop-filter:blur(12px)}.sky-zoom{position:absolute;right:18px;top:18px;display:flex;flex-direction:column;gap:8px}.sky-readout{position:absolute;top:20px;left:20px;max-width:calc(100% - 90px);font-size:14px;color:#b7c9c3;padding:7px 11px;background:#0b161abd;border-radius:10px}.sky-gesture{position:absolute;bottom:8px;left:20px;right:20px;color:#bccbbe;font-size:12px}.sky-inspector{padding:22px;align-self:start}.sky-inspector>label{display:grid;gap:9px}.sky-search-results{max-height:230px;overflow:auto;margin:8px 0}.sky-search-results button{display:block;text-align:left;background:#2c3830;border:0;border-bottom:1px solid var(--line);padding:12px;width:100%;cursor:pointer;font-size:14px}.sky-search-results small{display:block;color:var(--muted);margin-top:4px}.sky-switches{display:grid;gap:15px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}.sky-switches label{display:flex;align-items:center;gap:10px;font-size:14px}.sky-switches label:first-child{display:block}.sky-switches output{float:right;color:var(--cyan)}.sky-switches input[type=range]{display:block;width:100%;margin-top:8px}.sky-inspector h2{margin-top:22px;font-size:21px}#skyToPhoto{width:100%}.night-vision{--cyan:#f78476;--cyan-strong:#db695d;--green:#f78476;--ink:#ffc1b5;--muted:#d89187;--panel:#241412;--panel-2:#351b18}.night-vision .planetarium-stage,.night-vision #frameCanvas,.night-vision #surveyImage,.night-vision #geoMap{filter:sepia(1) saturate(5) hue-rotate(310deg)}.night-vision .astro-nav a.active{color:#f78476;background:#4a2620}.photo-mode{display:flex;gap:6px;padding:0 22px 18px}.photo-mode button{flex:1;background:#292e2a;color:var(--muted);padding:12px;border:1px solid var(--line);border-radius:12px;font-size:14px;cursor:pointer}.photo-mode button.active{background:#384b3d;color:#7fed96}#surveyPreview{margin:0;background:#080c10}#surveyImage{display:block;width:100%;height:auto}#surveyCaption{font-size:14px;padding:16px 22px;color:var(--muted)}.photo-export{margin:0 26px 16px}.update-banner{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);z-index:100;background:#29432f;border:1px solid #59d67b;border-radius:18px;padding:15px 20px;box-shadow:0 8px 35px #0008;display:flex;align-items:center;gap:18px;max-width:calc(100% - 24px);width:max-content;font-size:14px}.sky-command input{min-width:210px}.check-label{display:flex!important;align-items:center;gap:10px}.check-label input{width:20px!important}.astro-nav a{padding-inline:15px}#skySelection:empty{display:none}
@media(max-width:1100px){.planetarium-layout{grid-template-columns:minmax(0,1fr) 270px}#skyCanvas{height:560px}.sky-command{align-items:stretch}.sky-command>label:first-child{flex:1}.sky-time-actions{order:1;width:100%}}
@media(max-width:820px){.planetarium-layout{display:flex;flex-direction:column}.planetarium-stage,.sky-inspector{width:100%}#skyCanvas{height:58vh;min-height:380px}.sky-inspector{display:block}.sky-switches{grid-template-columns:1fr 1fr}.sky-switches>label:first-child{grid-column:1/-1}.astro-nav a{padding:10px 2px;font-size:12px}.astro-nav a>span{font-size:22px}.compact-title{flex-wrap:wrap;gap:12px}.compact-title h1{font-size:28px}.sky-command{padding:17px}.sky-readout{font-size:12px;left:12px;top:12px}.sky-gesture{left:14px;font-size:12px}.sky-time-actions .button{flex:1;white-space:nowrap}.photo-mode{padding-inline:16px}.photo-mode button{padding:10px 7px}.update-banner{flex-direction:column;gap:10px}.sky-switches label{font-size:14px}}
@media(max-width:420px){.sky-switches{grid-template-columns:1fr}.astro-nav a{font-size:12px}.sky-command>label{width:100%}.sky-command{gap:12px}.sky-time-actions{gap:5px}.sky-time-actions .button{font-size:13px;padding:8px}.photo-mode{flex-direction:column}}
.build-pill{color:var(--cyan);border:1px solid var(--line-strong);border-radius:8px;padding:4px 7px;font-size:12px;font-variant-numeric:tabular-nums}.sky-inspector .transit-metrics>div{grid-template-columns:1fr}.sky-inspector .transit-metrics dd{text-align:left}.frame-panel .model-note{overflow-wrap:anywhere}

/* Observation workspace */
.gps-status{margin:0;padding:0 32px 16px;color:var(--muted);font-size:14px;line-height:1.5}
.analysis-status{margin:0;padding:12px 20px;background:#263c2d;color:#aaf2ba;border-top:1px solid var(--line);font-size:14px;line-height:1.5;min-height:46px}
.analysis-status.warning{color:#ffd598;background:#49391f}
.observer-pin{display:grid;place-items:center;background:#12221bcc;border:2px solid white;border-radius:50%;box-shadow:0 2px 8px #0008;cursor:grab}
.observer-pin span{display:block;width:14px;height:14px;border-radius:50%;background:#54ec83}
.workspace{grid-template-columns:280px minmax(0,1fr)}
.sunmoon-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}
.sunmoon-layout .sky-panel{display:block;grid-column:auto}.daily-path{padding:24px;min-width:0}#dailyPath{width:100%;height:auto}.daily-events{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.daily-events article{border:1px solid var(--line);border-radius:14px;padding:16px}.daily-events h3{margin:0 0 12px}.daily-events p{font-size:14px;display:flex;justify-content:space-between;gap:10px}.astro-nav{flex-wrap:wrap}.observer-form button[hidden]{display:none!important}.map-legend .hidden{background:#b04a69}.route-section summary{cursor:pointer;font-size:16px;padding:12px 0}
@media(max-width:820px){.workspace{flex-direction:column}.control-panel{order:0;padding:16px}.visual-column{order:1}.control-panel .panel-heading{margin-bottom:12px}.control-panel .data-section,.control-panel .route-section,.control-panel .advanced-section{margin-top:12px;padding-top:8px}.gps-status{padding:0 18px 12px}.astro-nav{position:sticky;top:0;bottom:auto;left:auto;transform:none;width:auto;max-width:none;margin:0 12px 12px;border-radius:16px;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.astro-nav a{flex:0 0 auto;padding:10px 12px;flex-direction:row;font-size:14px;white-space:nowrap}.astro-nav a>span{font-size:18px}.sunmoon-layout{grid-template-columns:1fr}.daily-events{grid-template-columns:1fr}.app-shell{padding-bottom:20px}.toast-region{bottom:20px}.map-stage{height:440px}.observer-form{grid-template-columns:1fr 1fr}.data-section p{margin:8px 0}.daily-path{padding:16px}}

.coordinate-entry{grid-column:1/-1}.coordinate-entry summary,.data-section>summary{font-size:14px;cursor:pointer;padding:8px 0}.coordinate-entry .input-pair{margin-top:10px}.analysis-bar{display:flex;align-items:center;background:#263c2d;padding-right:12px}.analysis-bar .analysis-status{flex:1;border:0}.analysis-bar .button{flex:none}.control-panel>.data-section{margin-top:12px;padding-top:8px}.control-panel .microcopy{margin:12px 0}.map-legend .hidden{background:#aa2d52}
