.night-plan {margin-top: 56px; color: var(--paper); scroll-margin-top: 24px; --night-line: var(--line); --night-muted: var(--muted);}
.night-plan [hidden] { display:none!important; }
.night-plan svg {fill: none; stroke: currentColor; stroke-width: var(--icon-stroke);}
.night-heading { display:flex; align-items:start; justify-content:space-between; gap:24px; margin-bottom:20px; }
.night-heading>div:first-child { min-width:0; }
.night-heading h3 { font-size:clamp(26px,2.5vw,38px); font-weight:400; letter-spacing:-.025em; line-height:1.2; }
.night-heading #sky-summary { max-width:65ch; color:var(--night-muted); font-size:12px; line-height:1.7; margin-top:12px; }
.night-place-time { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.night-place-time button {display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--night-line); border-radius: 24px; color: var(--paper); font-size: var(--type-control);}
.night-place-time svg { width:18px; height:18px; flex-shrink:0; }
.night-place-time button span { overflow-wrap:anywhere; }
.night-place-time button[aria-expanded=true] { color:var(--accent); border-color:var(--accent); }
.night-observer-dock { max-width:640px; --sky-line:var(--night-line); --sky-muted:var(--night-muted); }
.night-observer-dock .sky-settings-panel { margin-top:12px; }
.night-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:end; gap:12px; padding-top:8px; }
.night-actions button,.night-footer button { margin:0; }
.night-actions .primary-button {white-space: nowrap;}
.night-actions svg { width:20px; height:20px; }
.night-filters { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px 24px; border-bottom:1px solid var(--night-line); margin-bottom:20px; }
.night-filter-buttons { display:flex; flex-wrap:wrap; gap:8px 20px; }
.night-filter-buttons button {display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 0; border-bottom: 2px solid transparent; margin-bottom: -1px; color: var(--night-muted); font-size: var(--type-caption);}
.night-filter-buttons button[aria-pressed=true] { color:var(--accent); border-bottom-color:var(--accent); }
.night-filter-buttons [data-plan-count],.night-count {display: inline-flex; min-width: 20px; height: 20px; align-items: center; justify-content: center; border-radius: 50%; background: #242733; color: var(--paper); font-size: var(--type-control);}
.night-equipment-filter select {width: auto; max-width: 100%;}
.night-workspace { display:grid; grid-template-columns:minmax(0,2.4fr) minmax(240px,1fr); gap:32px; }
.night-list { min-width:0; }
.night-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:12px; }
.night-table th { text-align:left; font-size:11px; font-weight:400; color:var(--night-muted); padding:0 12px 16px; }
.night-table th:first-child { width:30%; }
.night-table th:nth-child(2) { width:21%; }
.night-table th:nth-child(3) { width:28%; }
.night-table th:last-child { width:21%; }
.night-table td { border-bottom:1px solid var(--night-line); padding:16px 12px; vertical-align:middle; line-height:1.6; overflow-wrap:anywhere; }
.night-table tr.is-selected { background:#d3ff5b08; }
.night-table small {display: block; margin-top: 4px; font-size: var(--type-caption); line-height: 1.6; color: var(--night-muted);}
.night-table .night-good { color:var(--accent); }
.night-object-button { display:flex; align-items:center; text-align:left; gap:12px; min-height:64px; width:100%; }
.night-object-text { min-width:0; }
.night-object-button strong {font-weight: 400; font-size: var(--type-body);}
.night-object-button[aria-pressed=true] strong { color:var(--accent); }
.night-thumb { width:64px; height:64px; flex-shrink:0; object-fit:contain; }
.night-equipment { display:flex; gap:8px; align-items:center; }
.night-equipment svg { width:20px; height:20px; flex-shrink:0; }
.night-inspector { border-left:1px solid var(--night-line); padding-left:28px; min-width:0; }
.night-inspector h4 { font-size:30px; font-weight:400; letter-spacing:-.025em; }
.night-portrait { aspect-ratio:1; display:grid; place-items:center; margin:12px 0; }
.night-portrait canvas { width:100%; height:100%; cursor:default; touch-action:pan-y; }
.night-portrait p { color:var(--night-muted); }
.night-position { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:16px; border-top:1px solid var(--night-line); padding-top:16px; }
.night-bearing { text-align:center; }
.night-bearing svg { width:92px; height:92px; max-width:100%; }
.night-bearing svg text { fill:var(--night-muted); stroke:none; text-anchor:middle; font-family:inherit; font-size:10px; }
.night-bearing svg circle { stroke:var(--night-muted); stroke-width:.6; }
.night-bearing svg path { fill:var(--accent); stroke:none; }
#plan-compass-arrow { transform-box:view-box; transform-origin:50% 50%; }
.compass-moving #plan-compass-arrow { will-change:transform; }
#plan-bearing,#plan-altitude { font-variant-numeric:tabular-nums; }
#plan-altitude { min-inline-size:4ch; }
.night-bearing p {font-size: var(--type-caption);}
.night-position strong { display:block; font-size:32px; font-weight:400; }
.night-position span {display: block; color: var(--night-muted); font-size: var(--type-caption); margin-top: 8px;}
#plan-equipment-detail {margin-top: 24px; color: var(--night-muted); font-size: var(--type-caption); line-height: 1.8;}
#plan-map-link {display: inline-flex; gap: 16px; min-height: 44px; align-items: center; color: var(--accent); font-size: var(--type-caption); margin-top: 8px;}
#plan-map-link svg { width:20px; height:20px; }
.night-preview-note {color: var(--night-muted); font-size: var(--type-caption); line-height: 1.7; margin-top: 16px;}
.night-timeline { border:1px solid var(--night-line); border-radius:12px; margin-top:20px; padding:0 16px 12px; }
.night-timeline summary {cursor: pointer; min-height: 48px; padding: 14px 0; font-size: var(--type-caption);}
#plan-window-caption { color:var(--night-muted); font-size:var(--type-caption); line-height:1.6; }
#plan-altitude-chart { width:100%; height:auto; display:block; margin-top:8px; }
#plan-altitude-chart text {fill: var(--night-muted); stroke: none; font-family: inherit; font-size: var(--type-caption);}
.night-chart-grid { stroke:var(--night-line); stroke-width:.6; }
.night-chart-horizon { stroke:var(--night-muted); stroke-width:.8; }
.night-chart-curve { stroke:var(--night-muted); stroke-width:1.5; fill:none; }
.night-chart-curve,.night-chart-safe { stroke-linecap:round; stroke-linejoin:round; }
.night-chart-safe { stroke:var(--accent); stroke-width:2; fill:none; }
.night-chart-peak-line { stroke:var(--accent); stroke-dasharray:4 4; stroke-width:1; }
.night-chart-peak { fill:var(--accent); stroke:none; }
.night-chart-peak-halo { fill:var(--accent); stroke:none; pointer-events:none; }
#plan-altitude-chart .night-chart-peak-label { fill:var(--accent); }
.night-chart-note {color: var(--night-muted); font-size: var(--type-caption); line-height: 1.6;}
.night-groups { display:grid; gap:12px; margin-top:12px; }
.night-secondary-group { border:1px solid var(--night-line); border-radius:12px; padding:0 16px; }
.night-secondary-group>summary { cursor:pointer; min-height:60px; display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:8px 0; font-size:12px; }
.night-group-chevron { width:16px; height:16px; flex-shrink:0; margin-left:auto; color:var(--night-muted); }
.night-secondary-group[open] .night-group-chevron { transform:rotate(180deg); }
.night-group-thumbs { display:flex; align-items:center; }
.night-group-thumbs .night-thumb { width:40px; height:40px; }
.night-group-names {color: var(--night-muted); font-size: var(--type-caption);}
.night-secondary-table tr:last-child td { border-bottom:0; }
.night-empty {padding: 24px 12px; color: var(--night-muted); line-height: 1.8; font-size: var(--type-caption);}
.night-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:20px; }
.night-footer p {font-size: var(--type-caption); color: var(--night-muted); line-height: 1.8; max-width: 65ch;}

@media(hover:hover) and (pointer:fine) { .night-object-button:hover strong,.night-filter-buttons button:hover { color:var(--accent); } }
@media(max-width:1150px) { .night-workspace { gap:20px; grid-template-columns:minmax(0,2fr) minmax(220px,1fr); } .night-inspector { padding-left:20px; } .night-table td,.night-table th { padding-left:8px; padding-right:8px; } .night-thumb { width:48px; height:48px; } .night-object-button { gap:8px; } .night-table small {font-size: var(--type-caption);} }
@media(max-width:1000px) { .night-workspace { grid-template-columns:minmax(0,1fr); } .night-inspector { display:grid; grid-template-columns:220px minmax(0,1fr); gap:0 24px; border-left:0; border-top:1px solid var(--night-line); padding:24px 0 0; } .night-inspector h4 { grid-column:1/-1; } .night-portrait { grid-row:2 / span 4; } .night-position { border-top:0; } .night-preview-note { grid-column:1/-1; } }
@media(max-width:600px) {
  .night-heading { flex-direction:column; gap:16px; } .night-actions { justify-content:start; padding:0; }
  .night-filters { gap:8px; } .night-filter-buttons { gap:8px 16px; width:100%; } .night-filter-buttons button {font-size: var(--type-control);}
  .night-table { display:block; table-layout:auto; } .night-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .night-table tbody { display:block; } .night-table tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; border-bottom:1px solid var(--night-line); padding:16px 8px; }
  .night-table td { border:0; padding:0; display:block; min-width:0; } .night-table td:first-child { grid-column:1/-1; }
  .night-table td:not(:first-child)::before { content:attr(data-label); display:block; color:var(--night-muted); font-size:10px; margin-bottom:6px; }
  .night-table td:last-child { grid-column:1/-1; } .night-table td:last-child small { margin-left:28px; }
  .night-thumb { width:56px; height:56px; } .night-object-button { min-height:56px; gap:12px; }
  .night-group-thumbs .night-thumb { width:32px; height:32px; } .night-group-names { display:none; }
  .night-secondary-group { padding:0 12px; } .night-secondary-table tr:last-child { border-bottom:0; }
  .night-inspector { grid-template-columns:minmax(0,1fr); } .night-portrait { grid-row:auto; max-width:260px; width:100%; justify-self:center; }
  .night-position { max-width:280px; width:100%; margin:auto; } .night-footer { align-items:start; gap:12px; }
  .night-timeline { padding:0 8px 12px; } #plan-altitude-chart { min-height:130px; }
  .night-table .night-inline-detail { display:block; padding:0; border:0; }
  .night-table .night-inline-detail>td { padding:0 8px 24px; border-bottom:1px solid var(--night-line); }
  .night-inline-detail .night-inspector { padding-top:16px; border-top:0; }
  .night-inline-detail .night-portrait { max-width:180px; }
  .night-inline-detail .night-timeline { margin-top:16px; }
}
