/* IGW Notices 1.0.3 — one live map of every spaceflight notice. Tokens from docs/design/SPEC.md.
   1.0.3 (2026-09-09): the feed links beside a group heading are 24 px targets on a fine pointer too (the audit measured 20 px at 1440 on the published 1.0.2; the site's target-size rule holds at every width). Nothing else changed.
   1.0.2 (2026-09-09): the feed links beside a group heading are 44 px targets on a coarse pointer (measured 20 px on the published 1.0.1 at 390).
   1.0.1 (2026-09-09): the feed links (Follow the notices, and beside each launch-site group). */
.igwn { --n-ground:#050505; --n-surface:#0b0d0f; --n-raised:#12161a; --n-text:#f5f5f5; --n-muted:#9fa7af; --n-cap:#8A94A0;
  --n-hair:rgba(255,255,255,.10); --n-edge:rgba(255,255,255,.14); --n-edge-i:rgba(255,255,255,.36); --n-edge-h:rgba(255,255,255,.60);
  --n-accent:#7DB8EA; --n-accent-fill:rgba(125,184,234,.12); --n-hazard:#FF6A52; --n-hazard-soft:rgba(255,106,82,.16); --n-marine:#5FD3F5; --n-closure:#F4C66A;
  --n-display:var(--_igw-2-0---font--display),"Clashdisplay Variable","Clash Display",sans-serif;
  --n-body:var(--_igw-2-0---font--body),"Plus Jakarta Sans",system-ui,sans-serif;
  font-family:var(--n-body); color:var(--n-text); font-variant-numeric:tabular-nums; min-width:0; }
.igwn *, .igwn *::before, .igwn *::after { box-sizing:border-box; }
.igwn-top { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px 24px; align-items:end; padding:0 0 18px; border-bottom:1px solid var(--n-edge); }
.igwn-kicker { font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--n-cap); margin:0 0 10px; }
.igwn-n { font-family:var(--n-display); font-size:64px; font-weight:500; line-height:.95; letter-spacing:-.02em; margin:0; }
.igwn-of { font-size:14px; color:var(--n-muted); margin:10px 0 0; max-width:64ch; line-height:1.45; }
.igwn-of b { color:var(--n-text); font-weight:600; }
.igwn-state { font-size:12px; color:var(--n-cap); margin:6px 0 0; }
.igwn-filters { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.igwn .igwn-chip { font:inherit; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--n-muted); background:transparent; border:1px solid var(--n-edge-i); border-radius:2px; padding:0 10px; min-height:34px; cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.igwn .igwn-chip:hover { border-color:var(--n-edge-h); color:var(--n-text); background:rgba(255,255,255,.06); }
.igwn .igwn-chip[aria-pressed="true"] { color:var(--n-text); border-color:var(--n-edge-h); background:rgba(255,255,255,.10); }
.igwn .igwn-chip[aria-pressed="false"] .igwn-sw { opacity:.35; }
.igwn-sw { width:8px; height:8px; border-radius:50%; background:currentColor; }
.igwn-sw-tfr { background:var(--n-hazard); } .igwn-sw-marine { background:var(--n-marine); } .igwn-sw-closure { background:var(--n-closure); } .igwn-sw-standing { background:transparent; border:1px solid var(--n-edge-h); }
.igwn .igwn-chip:focus-visible, .igwn .igwn-btn:focus-visible, .igwn .igwn-row:focus-visible, .igwn .igwn-search:focus-visible, .igwn-map:focus-visible { outline:2px solid var(--n-accent); outline-offset:2px; }
.igwn-body { display:grid; grid-template-columns:minmax(0,1fr) 380px; grid-template-rows:minmax(0,1fr); height:clamp(560px, 74vh, 820px); border:1px solid var(--n-edge); border-top:0; border-radius:0 0 4px 4px; background:var(--n-surface); }
.igwn-stage { position:relative; min-width:0; min-height:0; background:var(--n-ground); }
.igwn-map { position:absolute; inset:0; }
.igwn-map .maplibregl-canvas { outline:0; }
.igwn-map .maplibregl-ctrl-attrib { background:rgba(5,5,5,.72); color:var(--n-cap); font:11px/1.4 var(--n-body); padding:3px 8px; border-radius:2px 0 0 0; }
.igwn-map .maplibregl-ctrl-attrib a { color:var(--n-muted); text-decoration:none; }
.igwn-map .maplibregl-ctrl-attrib a:hover { color:var(--n-text); text-decoration:underline; }
.igwn-map .maplibregl-ctrl-bottom-right { z-index:2; }
.igwn-ctl { position:absolute; top:12px; right:12px; display:flex; flex-direction:column; gap:6px; z-index:3; }
.igwn .igwn-btn { font:inherit; font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--n-text); background:rgba(5,5,5,.78); border:1px solid var(--n-edge-i); border-radius:4px; padding:0 12px; min-height:38px; min-width:38px; cursor:pointer; backdrop-filter:blur(6px); }
.igwn .igwn-btn:hover { border-color:var(--n-edge-h); background:rgba(255,255,255,.10); }
.igwn .igwn-btn[disabled] { color:var(--n-cap); border-color:var(--n-edge); cursor:default; }
.igwn .igwn-btn-primary { background:var(--n-text); color:var(--n-ground); border-color:var(--n-text); }
.igwn .igwn-btn-primary:hover { background:#fff; border-color:#fff; }
.igwn-legend { position:absolute; left:12px; bottom:12px; z-index:3; display:flex; gap:6px; flex-wrap:wrap; max-width:calc(100% - 24px); }
.igwn-lg { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--n-muted); background:rgba(5,5,5,.72); border:1px solid var(--n-edge); border-radius:2px; padding:5px 9px; }
.igwn-hover { position:absolute; z-index:4; pointer-events:none; transform:translate(-50%,-130%); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--n-text); background:rgba(5,5,5,.8); border:1px solid var(--n-edge-i); border-radius:2px; padding:5px 8px; white-space:nowrap; }
.igwn-hover small { display:block; font-weight:500; letter-spacing:.02em; text-transform:none; color:var(--n-muted); }
.igwn-empty { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; color:var(--n-muted); font-size:14px; line-height:1.5; pointer-events:none; z-index:2; }
.igwn-empty p { margin:0; max-width:44ch; background:rgba(5,5,5,.72); padding:12px 16px; border-radius:4px; }
.igwn-side { border-left:1px solid var(--n-edge); display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
.igwn-tools { padding:14px; border-bottom:1px solid var(--n-edge); display:flex; flex-direction:column; gap:10px; }
.igwn .igwn-search { font:inherit; font-size:14px; color:var(--n-text); background:transparent; border:1px solid var(--n-edge-i); border-radius:4px; padding:10px 12px; width:100%; min-height:42px; }
.igwn .igwn-search::placeholder { color:var(--n-cap); }
.igwn .igwn-search:focus { outline:0; border-color:var(--n-accent); box-shadow:0 0 0 3px rgba(125,184,234,.25); }
.igwn-counts { font-size:12px; color:var(--n-cap); display:flex; gap:12px; flex-wrap:wrap; }
.igwn-counts b { color:var(--n-text); font-weight:600; }
.igwn-scroll { overflow:auto; min-height:0; flex:1 1 auto; }
.igwn-group { margin:0; padding:0; list-style:none; }
.igwn-gh { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 14px 8px; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--n-cap); background:var(--n-surface); border-bottom:1px solid var(--n-hair); }
.igwn-gh small { font-weight:500; letter-spacing:.02em; text-transform:none; }
.igwn .igwn-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 10px; width:100%; text-align:left; font:inherit; color:var(--n-text); background:transparent; border:0; border-bottom:1px solid var(--n-hair); border-left:2px solid transparent; padding:12px 14px 12px 12px; cursor:pointer; }
.igwn .igwn-row:hover { background:rgba(255,255,255,.04); }
.igwn .igwn-row[aria-current="true"] { background:var(--n-accent-fill); border-left-color:var(--n-accent); }
.igwn .igwn-row.is-standing { color:var(--n-muted); }
.igwn-row-top { display:flex; align-items:center; gap:8px; min-width:0; }
.igwn-tag { display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--n-muted); border:1px solid var(--n-edge); border-radius:2px; padding:3px 6px; white-space:nowrap; }
.igwn-tag-tfr { color:#ffb3a5; border-color:rgba(255,106,82,.45); } .igwn-tag-marine { color:#a8e6f7; border-color:rgba(95,211,245,.45); } .igwn-tag-closure { color:#f7dda0; border-color:rgba(244,198,106,.5); }
.igwn-tag-new { color:var(--n-ground); background:var(--n-text); border-color:var(--n-text); }
.igwn-tag-status { color:var(--n-cap); }
.igwn-tag-live { color:#8fe3a3; border-color:rgba(143,227,163,.45); }
.igwn-row-id { font-size:13px; font-weight:600; letter-spacing:.02em; white-space:nowrap; }
.igwn-row-h { font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.igwn-row-s { font-size:12px; color:var(--n-cap); grid-column:1 / -1; }
.igwn-row-r { font-size:11px; color:var(--n-cap); text-align:right; white-space:nowrap; }
.igwn-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--n-accent); margin-left:6px; vertical-align:middle; }
.igwn-note { padding:12px 14px; font-size:12px; color:var(--n-cap); line-height:1.5; }
.igwn-panel { padding:16px 14px; border-bottom:1px solid var(--n-edge); }
.igwn-panel-k { font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--n-cap); margin:0 0 6px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.igwn-panel-h { font-family:var(--n-display); font-size:28px; font-weight:500; line-height:1.05; letter-spacing:-.01em; margin:0 0 6px; overflow-wrap:anywhere; }
.igwn-panel-p { font-size:15px; line-height:1.4; color:var(--n-text); margin:0 0 14px; }
.igwn-kv { display:grid; grid-template-columns:auto 1fr; gap:7px 14px; font-size:13px; margin:0; }
.igwn-kv dt { color:var(--n-cap); margin:0; }
.igwn-kv dd { margin:0; color:var(--n-text); text-align:right; overflow-wrap:anywhere; }
.igwn-kv dd small { display:block; color:var(--n-cap); font-size:11px; }
.igwn-geo { font-size:12px; color:var(--n-cap); line-height:1.5; margin:12px 0 0; padding-top:10px; border-top:1px solid var(--n-hair); }
.igwn-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.igwn .igwn-disclose { font:inherit; font-size:12px; font-weight:600; letter-spacing:.02em; color:var(--n-text); background:transparent; border:1px solid var(--n-edge-i); border-radius:4px; padding:0 12px; min-height:36px; cursor:pointer; }
.igwn .igwn-disclose[aria-expanded="true"] { background:var(--n-accent-fill); border-color:var(--n-accent); }
.igwn-text { font-size:12px; line-height:1.6; color:var(--n-muted); margin:10px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; max-height:260px; overflow:auto; padding:10px 12px; background:var(--n-ground); border:1px solid var(--n-hair); border-radius:2px; }
.igwn-about { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:18px 28px; padding:22px 0 0; font-size:13px; line-height:1.55; color:var(--n-muted); }
.igwn-about h3 { font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--n-cap); margin:0 0 8px; }
.igwn-about p { margin:0 0 8px; }
.igwn-about a { color:var(--n-text); text-decoration:underline; text-decoration-color:var(--n-edge-h); }
.igwn-about a:hover { text-decoration-color:var(--n-text); }
.igwn-legal { margin-top:18px; padding-top:14px; border-top:1px solid var(--n-edge); font-size:12px; color:var(--n-cap); line-height:1.55; }
/* feeds: calendar and RSS links, per launch site and for all */
.igwn-follow { grid-column:1 / -1; }
.igwn-feeds { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:8px; }
.igwn-feeds li { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.igwn-feeds li > span:first-child { color:var(--n-text); min-width:16ch; font-weight:600; }
.igwn-feedlinks { display:inline-flex; flex-wrap:wrap; gap:6px; }
.igwn .igwn-feed { font:inherit; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--n-text); background:transparent; border:1px solid var(--n-edge-i); border-radius:2px; padding:5px 9px; min-height:30px; text-decoration:none; cursor:pointer; display:inline-flex; align-items:center; }
.igwn .igwn-feed:hover { border-color:var(--n-edge-h); background:rgba(255,255,255,.06); }
.igwn .igwn-feed:focus-visible { outline:2px solid var(--n-accent); outline-offset:2px; }
.igwn-gh-feeds { display:inline-flex; gap:10px; margin-left:auto; }
.igwn-gh-feeds a { display:inline-flex; align-items:center; min-height:24px; padding:0 4px; margin:0 -4px; color:var(--n-muted); font-weight:500; letter-spacing:.02em; text-transform:none; text-decoration:underline; text-decoration-color:var(--n-edge-h); }
.igwn-gh-feeds a:hover { color:var(--n-text); text-decoration-color:var(--n-text); }
.igwn-gh-feeds a:focus-visible { outline:2px solid var(--n-accent); outline-offset:2px; }
.igwn-gh { flex-wrap:wrap; }
.igwn-gh > small { margin-left:auto; }
.igwn-gh > .igwn-gh-feeds { margin-left:0; flex-basis:100%; }
@media (pointer: coarse) { .igwn .igwn-feed { min-height:44px; } .igwn-gh-feeds a { display:inline-flex; align-items:center; min-height:44px; padding:0 8px; margin-left:-8px; } }
/* the card dialog */
.igwn-dialog { position:fixed; inset:0; z-index:9000; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(5,5,5,.86); }
.igwn-dialog[hidden] { display:none; }
.igwn-dlg { width:min(1120px, 100%); max-height:100%; overflow:auto; background:var(--n-surface); border:1px solid var(--n-edge-i); border-radius:4px; padding:18px; }
.igwn-dlg-top { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; }
.igwn-dlg-h { font-family:var(--n-display); font-size:28px; font-weight:500; letter-spacing:-.01em; margin:0; }
.igwn-preview { display:block; width:100%; height:auto; background:var(--n-ground); border:1px solid var(--n-edge); border-radius:2px; }
.igwn-dlg-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.igwn-dlg-note { font-size:12px; color:var(--n-cap); line-height:1.5; margin:10px 0 0; }
.igwn-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.igwn-off { position:fixed; left:-10000px; top:0; width:920px; height:920px; visibility:hidden; pointer-events:none; }
@media (max-width: 991px) {
  .igwn-top { grid-template-columns:1fr; align-items:start; }
  .igwn-filters { justify-content:flex-start; }
  .igwn-n { font-size:44px; }
  .igwn-body { grid-template-columns:1fr; grid-template-rows:auto auto; height:auto; }
  .igwn-stage { height:min(72vw, 520px); }
  .igwn-side { border-left:0; border-top:1px solid var(--n-edge); }
  .igwn-scroll { max-height:520px; }
}
@media (max-width: 480px) { .igwn-n { font-size:28px; } .igwn-panel-h { font-size:24px; } }
@media (pointer: coarse) { .igwn .igwn-chip, .igwn .igwn-btn, .igwn .igwn-disclose { min-height:44px; } }
@media (prefers-reduced-motion: reduce) { .igwn * { transition:none !important; } }
