/* Black Lungs analysis site — soft neutrals derived from the Cabot 2026 logo (warm grays) */

:root {
  /* Canonical Black Lungs digital primitives. Historical role names below remain aliases. */
  --bl-cloud-dancer: #f1f0ed;
  --bl-mission-black: #141518;
  --bl-graphite: #2e3136;
  --bl-flight-slate: #636770;
  --bl-supporting-white: #fdfcfa;
  --bl-artemis: #c4571a;
  --bl-artemis-bright: #d8613f;
  --bl-artemis-wash: color-mix(in srgb, var(--bl-artemis) 9%, var(--bl-cloud-dancer));
  --bl-success: #1f6b3f;
  --bl-caution: #9a7b2e;
  --bl-failure: #9b3d3d;
  --bl-neutral: var(--bl-flight-slate);
  --bl-success-on-dark: #6fcf97;
  --bl-caution-on-dark: #d6b85c;
  --bl-failure-on-dark: #e17b7b;
  --bl-neutral-on-dark: #a7adb8;

  /* Logo-adjacent base (cloud / paper ring tones, slightly warmed). */
  --logo-paper: var(--bl-cloud-dancer);
  --logo-mist: #e6e4e0;

  --bg: var(--logo-paper);
  --surface: var(--bl-supporting-white);
  --ink: var(--bl-graphite);
  --muted: var(--bl-flight-slate);
  --faint: #8c9097;
  /* Quiet blue-gray so links read as links without competing with the mark */
  --accent: #5e6670;
  --accent-hover: #4d545e;
  --accent-soft: rgba(94, 102, 112, 0.09);
  --accent-soft-border: rgba(94, 102, 112, 0.2);
  --active-signal: var(--bl-artemis);
  --active-signal-soft: var(--bl-artemis-wash);
  --status-success: var(--bl-success);
  --status-caution: var(--bl-caution);
  --status-failure: var(--bl-failure);
  --status-neutral: var(--bl-neutral);

  --border: #e3e2de;
  --border-strong: #d5d4cf;
  --table-head: #ebe9e5;
  --table-zebra: #f8f7f4;
  --table-hover: #f5f4f0;

  --map-canvas: var(--logo-mist);

  --radius: 8px;
  --radius-sm: 4px;
  --shadow-sm: 0 1px 3px rgba(46, 49, 54, 0.055);
  /* Modern serif: ui-serif first where supported; strong fallbacks across macOS / Windows / Linux */
  --font: ui-serif, "Charter", "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino,
    "Noto Serif", "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial,
    sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Code", monospace;

  /* Horizontal rhythm: viewport gutter + one inner column for prose / tables */
  --content-padding-x: clamp(1rem, 3vw, 1.5rem);
  --content-max-width: 1080px;
  --platform-content-max: var(--content-max-width);
  --platform-home-content-max: 1180px;
  --map-content-max-width: 1320px;
  --page-pad-x: var(--content-padding-x);
  --page-pad-y: clamp(1rem, 3vw, 1.5rem);

  /* Aligned inset for headings, copy, data cells, and panel chrome (single left edge) */
  --block-padding-x: clamp(0.875rem, 2.2vw, 1rem);
  --table-cell-padding-x: var(--block-padding-x);
  --table-cell-padding-y: 0.5rem;
  --card-padding-x: var(--block-padding-x);
  --card-padding-y: 0.8rem;
  --content-column-max-width: 56rem;
  /* Used by home-link-card hover (color-mix); kept explicit for predictable light/dark theming */
  --accent-bg: #e8e6e3;
}

@media (max-width: 480px) {
  :root {
    --table-cell-padding-y: 0.4rem;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 15px;
  /* Cloud Dancer is the identity canvas. Do not invert from prefers-color-scheme.
     Authored dark: html[data-mc-appearance="dark"] (Mission Control, user-selected)
     and native Your Preparation (Mission Black). */
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  font-family: var(--font);
  font-weight: 400;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.58;
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
}

/* Light scrim and body lock when mobile nav drawer is open (class toggled in site-nav.js) */
@media (max-width: 720px) {
  html.nav-open,
  body.nav-open {
    overflow: hidden;
    overflow-x: clip;
  }

  body.nav-open::before {
    content: "";
    position: fixed;
    inset: 0;
    min-height: 100dvh;
    background: rgba(46, 49, 54, 0.13);
    z-index: 250;
    pointer-events: auto;
    opacity: 0;
    animation: site-nav-backdrop-in 0.2s ease-out forwards;
  }

  @keyframes site-nav-backdrop-in {
    to {
      opacity: 1;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  @media (max-width: 720px) {
    body.nav-open::before {
      animation: none;
      opacity: 1;
    }

    .site-nav-drawer {
      transition: none;
    }

    .site-nav__toggle-bars span {
      transition: none;
    }

    .site-nav-scroll {
      transition: none;
    }
  }
}

a {
  color: var(--accent);
  text-decoration: none;
}

a:hover {
  color: var(--accent-hover);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0.65rem;
  z-index: 10000;
  padding: 0.5rem 0.85rem;
  background: var(--ink);
  color: #fff;
  font-weight: 600;
  font-size: 0.875rem;
  border-radius: var(--radius-sm);
  text-decoration: none;
  box-shadow: var(--shadow-sm);
}

.skip-link:focus,
.skip-link:focus-visible {
  left: max(var(--page-pad-x), env(safe-area-inset-left, 0px));
  outline: 2px solid #fff;
  outline-offset: 2px;
  color: #fff;
  text-decoration: none;
}

/* —— Header —— */
.site-header {
  position: relative;
  z-index: 300;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding-top: max(0.75rem, env(safe-area-inset-top, 0px));
  padding-right: max(var(--page-pad-x), env(safe-area-inset-right, 0px));
  padding-bottom: 0.75rem;
  padding-left: max(var(--page-pad-x), env(safe-area-inset-left, 0px));
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: clip;
  isolation: isolate;
}

.site-header__inner {
  max-width: var(--content-max-width);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  width: 100%;
  min-width: 0;
}

.site-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.site-logo-link {
  display: block;
  flex-shrink: 0;
  line-height: 0;
  border-radius: 50%;
  transition: opacity 0.15s ease;
}

.site-logo-link:hover {
  opacity: 0.88;
}

.site-logo {
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
  padding: 2px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--surface);
}

.site-brand__text {
  min-width: 0;
}

.site-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ink);
}

.site-title a {
  color: inherit;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.site-title a:hover {
  color: var(--accent);
}

.site-tagline {
  margin: 0.15rem 0 0;
  font-size: clamp(0.6rem, 1.8vw, 0.65rem);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Wrapper keeps desktop flex wiring while allowing a collapsible panel on small screens */
.site-nav-drawer {
  min-width: 0;
  flex: 1 1 auto;
  display: contents;
}

.site-nav-scroll {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  justify-content: flex-end;
  position: relative;
}

/* One Primary landmark wrapping desktop dropdown shell + flat mobile shell */
nav[aria-label="Primary"] {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
  align-items: center;
}

.site-nav__mobile-shell {
  display: none;
}

.site-nav__desktop-shell {
  display: contents;
}

.site-nav__toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.5rem 0.7rem;
  min-height: 2.85rem;
  min-width: 2.85rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  flex-shrink: 0;
  align-self: center;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.site-nav__toggle:hover {
  background: var(--table-hover);
}

.site-nav__toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.site-nav__toggle-bars {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.22rem;
  width: 1.1rem;
}

.site-nav__toggle-bars span {
  display: block;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
}

.site-header--nav-open .site-nav__toggle-bars span:nth-child(1) {
  transform: translateY(4px) rotate(45deg);
}

.site-header--nav-open .site-nav__toggle-bars span:nth-child(2) {
  opacity: 0;
}

.site-header--nav-open .site-nav__toggle-bars span:nth-child(3) {
  transform: translateY(-4px) rotate(-45deg);
}

.site-nav__toggle-bars span {
  transition: transform 0.18s ease, opacity 0.18s ease;
}

.site-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.15rem 0.35rem;
  font-size: 0.8125rem;
  font-weight: 450;
}

.site-nav a {
  color: var(--muted);
  text-decoration: none;
  padding: 0.4rem 0.55rem;
  min-height: 2.4rem;
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-sm);
  transition: background 0.12s ease, color 0.12s ease;
  flex-shrink: 0;
  position: relative;
}

.site-nav a:hover {
  color: var(--ink);
  background: var(--table-hover);
  text-decoration: none;
}

.site-nav a.is-active,
.site-nav a[aria-current="page"] {
  color: var(--ink);
  font-weight: 600;
  background: var(--accent-soft);
  text-decoration: none;
}

.site-nav a.is-active::after,
.site-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  right: 0.55rem;
  bottom: 0.2rem;
  left: 0.55rem;
  height: 2px;
  border-radius: 999px;
  background: var(--active-signal);
}

.site-nav a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.site-nav.site-nav--grouped {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem 0.55rem;
}

.site-nav--grouped .site-nav__group {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.65rem 0.1rem 0;
  border-right: 1px solid var(--border);
}

.site-nav--grouped .site-nav__group:last-child {
  border-right: none;
  padding-right: 0;
}

.site-nav__group--home {
  padding-left: 0;
}

.site-nav__dropdown {
  margin: 0;
}

.site-nav__summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.5rem 0.6rem;
  min-height: 2.4rem;
  border-radius: var(--radius-sm);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  transition: background 0.12s ease, color 0.12s ease;
  user-select: none;
}

.site-nav__summary::-webkit-details-marker {
  display: none;
}

.site-nav__summary::marker {
  content: "";
}

.site-nav__summary span {
  pointer-events: none;
}

/* Chevron */
.site-nav__summary::after {
  content: "";
  display: inline-block;
  width: 0.35em;
  height: 0.35em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -0.15em;
  opacity: 0.55;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.site-nav__dropdown[open] .site-nav__summary::after {
  transform: rotate(225deg);
  margin-top: 0.12em;
  opacity: 0.75;
}

.site-nav__summary:hover {
  color: var(--ink);
  background: var(--table-hover);
}

.site-nav__dropdown--active .site-nav__summary {
  color: var(--ink);
  background: var(--accent-soft);
  box-shadow: inset 0 -2px var(--active-signal);
}

.site-nav__dropdown--active .site-nav__summary:hover {
  color: var(--accent-hover);
}

.site-nav__summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.site-nav__menu {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  margin-top: 0.2rem;
  padding: 0.35rem;
  min-width: 11.5rem;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  box-shadow: 0 6px 20px rgba(46, 49, 54, 0.08);
}

.site-nav__menu a {
  display: block;
  width: 100%;
  text-align: left;
}

.site-nav__section {
  margin: 0.2rem 0.25rem 0.1rem;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.site-landing .page-intro h1 {
  margin-top: 0;
}

/* —— Main —— */
main {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: var(--page-pad-y) var(--page-pad-x) max(clamp(2rem, 6vw, 3rem), env(safe-area-inset-bottom, 0px));
  overflow-wrap: anywhere;
}

main.page-layout--data {
  max-width: var(--content-max-width);
}

main.page-layout--data .site-breadcrumbs,
main.page-layout--data .page-intro,
main.page-layout--data .table-panel {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.site-breadcrumbs {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--content-max-width);
  margin: 0 auto 0.55rem;
  padding-inline: var(--block-padding-x);
  font-size: 0.78rem;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.3rem;
}

.site-breadcrumbs a {
  color: var(--muted);
  text-decoration: none;
}

.site-breadcrumbs a:hover {
  color: var(--ink);
}

.site-breadcrumbs [aria-current="page"] {
  color: var(--ink);
  font-weight: 600;
}

.site-breadcrumbs__sep {
  color: var(--faint);
}

@media (max-width: 560px) {
  .site-breadcrumbs {
    align-items: flex-start;
    row-gap: 0.18rem;
  }

  .site-breadcrumbs__sep {
    line-height: 1.45;
  }
}

.lede {
  max-width: none;
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}

/* —— Map (non-landing) —— */
.map-frame-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.map-frame-wrap iframe {
  display: block;
  width: 100%;
  height: clamp(320px, 70dvh, 720px);
  min-height: max(240px, 40vh);
  border: 0;
}

/* Landing: full-viewport map */
body.map-landing {
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

body.map-landing .site-header {
  flex-shrink: 0;
  padding-top: max(0.65rem, env(safe-area-inset-top, 0px));
  padding-right: max(var(--page-pad-x), env(safe-area-inset-right, 0px));
  padding-left: max(var(--page-pad-x), env(safe-area-inset-left, 0px));
}

body.map-landing main.map-landing__main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
  max-width: none;
}

body.map-landing main.map-landing__main .page-intro--map-landing-top {
  flex-shrink: 0;
  align-self: center;
  width: 100%;
  max-width: 52rem;
  margin: 0;
  padding: 0.65rem var(--page-pad-x) 0.35rem;
}

.page-intro--compact .lede {
  margin-bottom: 0.35rem;
}

body.map-landing .map-frame-wrap--landing {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: var(--map-canvas);
}

body.map-landing:not(.map-landing--document) .map-frame-wrap--landing {
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  background: var(--surface);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

body.map-landing .map-frame-wrap--landing iframe {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  height: 100%;
  border: 0;
}

/*
 * Course map overview (maps/overview.html): normal document scroll so the page intro
 * and site chrome scroll with the map + leg detail (iframe height synced via postMessage).
 * Runner map keeps full-viewport body.map-landing without this modifier.
 */
body.map-landing.map-landing--document {
  height: auto;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
}

body.map-landing.map-landing--document main.map-landing__main {
  display: block;
  min-height: 0;
  max-width: none;
  margin: 0;
  padding: 0 0 max(1.25rem, env(safe-area-inset-bottom, 0px));
}

body.map-landing.map-landing--document main.map-landing__main .page-intro--map-landing-top {
  width: min(calc(100% - (2 * var(--page-pad-x))), var(--map-content-max-width));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  padding: var(--page-pad-y) var(--page-pad-x) 0.35rem;
}

/*
 * Maps — document “workbench” layout (single outer frame rule set)
 *
 * - `.rpe-workbench` — canonical outer card for in-page tools (runner progress estimator, runner map).
 *   Inner map chrome: `.rpe-map-wrap` (estimator) or map surface inside embedded assets (runner map iframe).
 *
 * - Course map overview (`maps/overview.html`) uses the same visual role via
 *   `body.map-landing.map-landing--document .map-frame-wrap--landing` only (iframe + postMessage height).
 *   Do not wrap that page in `.rpe-workbench` as well — it would double the outer card.
 *
 * - Runner map: parent supplies `.rpe-workbench`; neutralize iframe wrapper vs document map-frame rules
 *   (see block below — selectors must include `.map-landing.map-landing--document` on `body` for cascade).
 */
body.map-landing.map-landing--document .map-frame-wrap--landing {
  flex: none;
  min-height: 0;
  display: block;
  width: min(calc(100% - (2 * var(--page-pad-x))), var(--map-content-max-width));
  max-width: none;
  margin: 0.35rem auto 0.5rem;
  border: 2px solid var(--border-strong);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6) inset;
  overflow: hidden;
  padding: 0.45rem;
}

body.map-landing.map-landing--document .map-frame-wrap--landing iframe.course-map-frame {
  display: block;
  flex: none;
  width: 100%;
  /* Inner MapLibre shell is toolbar + ~clamp(320px,62vh,780px) map; reserve similar space before postMessage height lands. */
  min-height: clamp(360px, 66vh, 820px);
  height: auto;
  max-height: none;
  border-radius: 8px;
  border: 0;
  transition: height 0.2s ease-out;
}

body.runner-map-page .runner-map-workbench {
  width: min(calc(100% - (2 * var(--page-pad-x))), var(--map-content-max-width));
  margin: 0.35rem auto 0.75rem;
}

/* Runner map uses parent workbench frame. Do NOT add frame styles to iframe or wrapper (prevents double-frame regression). */
/* Cascade: runner-map `body` is `.map-landing.map-landing--document.runner-map-page`, so the neutral rules must use that full chain
   to beat `body.map-landing.map-landing--document .map-frame-wrap--landing` (course map chrome). */
body.runner-map-page.map-landing.map-landing--document .map-frame-wrap--landing {
  flex: none;
  min-height: 0;
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  outline: none;
  overflow: visible;
  padding: 0;
}

body.runner-map-page.map-landing.map-landing--document .map-frame-wrap--landing iframe.runner-map-frame {
  display: block;
  width: 100%;
  min-height: 0;
  height: auto;
  max-height: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  outline: none;
  transition: height 0.2s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  body.map-landing.map-landing--document .map-frame-wrap--landing iframe.course-map-frame,
  body.runner-map-page.map-landing.map-landing--document .map-frame-wrap--landing iframe.runner-map-frame,
  .rpe-map-wrap {
    transition: none;
  }
}

/* Runner Progress Estimator (support tool, maps/) */
body.rpe-page main {
  max-width: var(--map-content-max-width);
  margin: 0 auto;
  padding: 0 var(--page-pad-x) 2rem;
}

body.rpe-page .page-intro--compact {
  max-width: 58rem;
}

/* Canonical outer “map workbench” card (estimator + runner map; see Maps block above). */
.rpe-workbench {
  width: 100%;
  margin: 0.4rem 0 0.5rem;
  padding: 0.85rem clamp(0.7rem, 2vw, 1rem) 1rem;
  border: 2px solid var(--border-strong);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6) inset;
}

.rpe-map-wrap {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  height: clamp(420px, 66svh, 860px);
  height: clamp(420px, 66dvh, 860px);
  margin: 0.75rem 0 0.9rem;
  background: var(--map-canvas);
  transition: height 0.2s ease-out;
}

body.rpe-page.rpe-leg-open .rpe-map-wrap {
  height: clamp(320px, 54svh, 700px);
  height: clamp(320px, 54dvh, 700px);
}

#rpe-map {
  width: 100%;
  height: 100%;
}

body.rpe-page.rpe-leg-open #rpe-map {
  touch-action: pan-y pinch-zoom;
}

body.rpe-page:not(.rpe-leg-open) #rpe-map {
  touch-action: manipulation;
}

.rpe-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 1rem;
  margin: 0.5rem 0 0.75rem;
}

.rpe-controls label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
}

.rpe-controls input[type="datetime-local"] {
  font: inherit;
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  min-width: 12.5rem;
}

@media (max-width: 375px) {
  .rpe-controls input[type="datetime-local"] {
    min-width: 100%;
  }
}

.rpe-controls button {
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 0.55rem 0.9rem;
  min-height: 2.5rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
}

.rpe-controls button:hover {
  background: var(--surface-2, #f4f4f2);
}

.rpe-status {
  font-size: 0.85rem;
  margin: 0.35rem 0 0.75rem;
  color: var(--muted);
}

.rpe-status--warn {
  color: #7a4a08;
}

.rpe-status--error {
  color: #8b2e2e;
}

.rpe-status--info {
  color: var(--muted);
}

.rpe-map-focus {
  margin: 0 0 0.5rem;
  padding: 0.5rem 0.65rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

/* Runner progress estimator — MapLibre prototype toolbar + pins */
.rpe-ml-map-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0 0 0.65rem;
}

.rpe-proto-pill {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #4a6b58;
  padding: 0.2rem 0.45rem;
  border-radius: 4px;
  border: 1px solid rgba(61, 107, 82, 0.35);
  background: rgba(107, 155, 130, 0.12);
}

.rpe-ml-map-toolbar .maplibre-basemap {
  display: inline-flex;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  margin-left: auto;
}

.rpe-ml-map-toolbar .maplibre-basemap button {
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.5rem 0.85rem;
  min-height: 2.5rem;
  border: 0;
  border-right: 1px solid var(--border);
  background: var(--surface-2, #f4f4f2);
  color: var(--ink);
  cursor: pointer;
}

.rpe-ml-map-toolbar .maplibre-basemap button:last-child {
  border-right: 0;
}

.rpe-ml-map-toolbar .maplibre-basemap button[aria-pressed="true"] {
  background: var(--surface);
  color: #111;
}

.rpe-ml-sat-note {
  font-size: 0.75rem;
  color: #994d44;
  margin: 0;
  flex: 1 1 12rem;
  text-align: right;
}

.rpe-ml-marker--raw {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #2563eb;
  border: 2px solid #fff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.35);
  cursor: grab;
}

.rpe-ml-marker--snap {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #6b9b82;
  border: 2px solid #1a3d2e;
}

.rpe-map-focus--active {
  color: var(--ink);
  background: rgba(107, 155, 130, 0.12);
  border-color: rgba(107, 155, 130, 0.45);
  font-weight: 600;
}

.rpe-map-focus--warn {
  background: rgba(139, 46, 46, 0.06);
  border-color: rgba(139, 46, 46, 0.25);
  color: #5c2a2a;
}

.rpe-legend {
  font-size: 0.8rem;
  color: var(--muted);
  margin: 0 0 0.5rem;
}

.rpe-summary {
  margin-top: 0.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.rpe-summary table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  line-height: 1.4;
}

.rpe-summary th,
.rpe-summary td {
  padding: 0.45rem 0.65rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
}

.rpe-summary thead th {
  background: var(--surface-2, #efefec);
  font-weight: 650;
}

.rpe-summary tbody th {
  width: 42%;
  max-width: 14rem;
  font-weight: 600;
  color: var(--ink-muted, #444);
  background: var(--surface);
}

@media (max-width: 36rem) {
  .rpe-summary tbody th {
    width: 46%;
  }
}

/* Race hub — first-time runner orientation */
.race-hub-orient {
  margin: 0.85rem 0 1rem;
  /* Fixed horizontal padding: parent .page-intro already applies --block-padding-x. */
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.race-hub-orient + .race-hub-orient {
  margin-top: 0.35rem;
}

.race-hub-orient__title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--ink);
}

.race-hub-orient__steps {
  margin: 0;
  padding-left: 1.15rem;
  line-height: 1.45;
  color: var(--ink);
}

.race-hub-orient__steps li {
  margin: 0.4rem 0;
}

/* Analytics — shared runner framing */
.analytics-framing {
  margin: 0 0 0.85rem;
  /* Fixed horizontal padding: often nested under .page-intro which already insets copy. */
  padding: 0.65rem 0.75rem;
  border-left: 3px solid var(--accent);
  background: var(--table-hover);
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--muted);
}

.analytics-framing a {
  font-weight: 600;
}

/* —— Table pages —— */
.page-intro {
  margin-bottom: 1.25rem;
  padding-inline: var(--block-padding-x);
  max-width: var(--content-max-width);
  margin-inline: auto;
}

.page-intro__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--faint);
}

.page-intro h1 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.05rem, 2.8vw, 1.25rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.3;
}

.page-intro p {
  margin: 0 0 0.65rem;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.55;
  max-width: none;
}

.page-intro small {
  font-size: 0.75rem;
  color: var(--faint);
}

.page-intro--live-results p {
  margin-bottom: 0.85rem;
}

.page-intro--live-results p:last-of-type {
  margin-bottom: 0;
}

.page-intro code {
  font-family: var(--font-mono);
  font-size: 0.8em;
  padding: 0.1em 0.35em;
  border-radius: 3px;
  background: var(--table-head);
  border: 1px solid var(--border);
  color: var(--muted);
}

/* Roster deep-links from historical / field tables */
.table-runner-link {
  font-weight: 600;
  text-decoration: none;
}

.table-runner-link:hover {
  text-decoration: underline;
}

.page-subheading {
  margin: 1.25rem 0 0.4rem;
  padding-inline: var(--block-padding-x);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ink);
  line-height: 1.3;
}

.page-subheading:first-of-type {
  margin-top: 0.75rem;
}

.table-panel {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0;
  box-shadow: var(--shadow-sm);
}

/* Shared content-column alignment for standard prose/cards/forms/admin panels. */
.race2026-admin-toc,
.race2026-admin-panel,
.race-hub-orient,
.race2026-your-schedule,
.race2026-command-centre,
.team-ref-card {
  max-width: var(--content-max-width);
  margin-inline: auto;
  width: 100%;
}

.cumulative-time-controls {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem var(--block-padding-x) 0.4rem;
}

.cumulative-time-controls select {
  max-width: 8.5rem;
}

.cumulative-time-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 0.65rem;
  padding: 0.45rem var(--block-padding-x) 0.65rem;
}

.cumulative-time-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--table-zebra);
  padding: 0.55rem 0.65rem;
}

.cumulative-time-card h2 {
  margin: 0 0 0.3rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.cumulative-time-card__value {
  margin: 0;
  font-size: 0.95rem;
  color: var(--ink);
  font-weight: 650;
}

.cumulative-time-card__sub {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.4;
}

.cumulative-time-note {
  margin: 0;
  padding: 0 var(--block-padding-x) 0.7rem;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.cumulative-time-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  padding: 0 var(--block-padding-x) 0.65rem;
  font-size: 0.78rem;
  color: var(--muted);
}

.cumulative-time-legend span {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
}

.cumulative-time-legend span::before {
  content: "•";
  color: var(--faint);
}

.cumulative-time-chart-wrap {
  min-height: clamp(150px, 24vw, 220px);
}

.cumulative-time-chart-wrap[hidden] {
  display: none;
}

.cumulative-time__disclaimer {
  margin: 0 0 0.75rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid rgba(63, 110, 136, 0.2);
  border-radius: var(--radius-sm);
  background: rgba(63, 110, 136, 0.06);
}

table.data-table td.is-projected {
  color: #36576d;
  background: rgba(63, 110, 136, 0.08);
}

/* Cumulative team time: cap width on the longest column headers. */
/* Encourage 2-3 line wrapping on the longest headings. */
table.data-table.cumulative-time-table th:nth-child(3),
table.data-table.cumulative-time-table th:nth-child(5),
table.data-table.cumulative-time-table th:nth-child(6),
table.data-table.cumulative-time-table th:nth-child(7),
table.data-table.cumulative-time-table th:nth-child(8),
table.data-table.cumulative-time-table th:nth-child(12) {
  max-width: 9.5rem;
}

/* Numeric columns: times, gaps, rank (not year, runner, team name, legs). */
table.data-table.cumulative-time-table thead th:nth-child(3),
table.data-table.cumulative-time-table thead th:nth-child(4),
table.data-table.cumulative-time-table thead th:nth-child(5),
table.data-table.cumulative-time-table thead th:nth-child(7),
table.data-table.cumulative-time-table thead th:nth-child(8),
table.data-table.cumulative-time-table thead th:nth-child(9),
table.data-table.cumulative-time-table thead th:nth-child(10),
table.data-table.cumulative-time-table thead th:nth-child(11),
table.data-table.cumulative-time-table thead th:nth-child(12),
table.data-table.cumulative-time-table tbody td:nth-child(3),
table.data-table.cumulative-time-table tbody td:nth-child(4),
table.data-table.cumulative-time-table tbody td:nth-child(5),
table.data-table.cumulative-time-table tbody td:nth-child(7),
table.data-table.cumulative-time-table tbody td:nth-child(8),
table.data-table.cumulative-time-table tbody td:nth-child(9),
table.data-table.cumulative-time-table tbody td:nth-child(10),
table.data-table.cumulative-time-table tbody td:nth-child(11),
table.data-table.cumulative-time-table tbody td:nth-child(12) {
  text-align: right;
}

table.data-table.cumulative-time-table tbody td:nth-child(3),
table.data-table.cumulative-time-table tbody td:nth-child(4),
table.data-table.cumulative-time-table tbody td:nth-child(5),
table.data-table.cumulative-time-table tbody td:nth-child(7),
table.data-table.cumulative-time-table tbody td:nth-child(8),
table.data-table.cumulative-time-table tbody td:nth-child(9),
table.data-table.cumulative-time-table tbody td:nth-child(10),
table.data-table.cumulative-time-table tbody td:nth-child(11),
table.data-table.cumulative-time-table tbody td:nth-child(12) {
  white-space: nowrap;
}

/* Headings + intro copy share the same horizontal inset as table cells (avoids stagger vs scrollport). */
.table-panel > h2,
.table-panel > h3 {
  margin: 0;
  padding: 0.75rem var(--block-padding-x) 0.35rem;
}

.table-panel > p {
  margin: 0;
  padding: 0 var(--block-padding-x) 0.65rem;
}

.table-panel > h2 + p {
  padding-top: 0;
}

.table-panel__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-gutter: auto;
}

.table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 1rem;
  padding: 0.65rem var(--block-padding-x);
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

@media (max-width: 640px) {
  .table-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
  }

  .table-toolbar__btn {
    align-self: flex-start;
    min-height: 2.5rem;
  }
}

.table-toolbar__search {
  flex: 1 1 12rem;
  min-width: 0;
}

.table-toolbar__label {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.25rem;
}

.table-filter-input {
  width: 100%;
  max-width: min(28rem, 100%);
  min-height: 2.5rem;
  padding: 0.45rem 0.55rem;
  font: inherit;
  font-size: 0.8125rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
}

.table-filter-input:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
}

.table-toolbar__btn {
  flex: 0 0 auto;
  padding: 0.45rem 0.65rem;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  background: var(--table-head);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  cursor: pointer;
}

.table-toolbar__btn:hover {
  color: var(--ink);
  border-color: var(--faint);
}

.table-toolbar__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.table-toolbar__btn--export {
  color: var(--ink);
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
}

.table-toolbar__btn--export:hover {
  border-color: var(--accent);
  color: var(--accent-hover);
}

.table-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.5rem var(--block-padding-x);
  border-bottom: 1px solid var(--border);
  background: var(--table-head);
  font-size: 0.8rem;
  color: var(--muted);
}

.table-pagination__summary {
  margin: 0;
  flex: 1 1 12rem;
  min-width: 0;
  line-height: 1.4;
}

.table-pagination__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}

.table-pagination__status {
  font-weight: 600;
  color: var(--ink);
  padding: 0 0.25rem;
  min-width: 5.5rem;
  text-align: center;
}

.table-pagination__btn {
  padding: 0.35rem 0.65rem;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  cursor: pointer;
}

.table-pagination__btn:hover:not(:disabled) {
  border-color: var(--accent);
  color: var(--accent);
}

.table-pagination__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.table-pagination__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.analytics-panel {
  margin-top: 1rem;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: var(--card-padding-y) 0;
}

.analytics-panel__header {
  padding-inline: var(--block-padding-x);
}

.analytics-panel__header h2 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}

.analytics-panel__subtitle {
  margin: 0.35rem 0 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.analytics-panel__helper {
  margin: 0.7rem 0 0.9rem;
  padding-inline: var(--block-padding-x);
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.5;
}

.analytics-panel__helper--eval-scope {
  margin: 0.15rem 0 0.35rem;
  padding-inline: var(--block-padding-x);
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.45;
}

.analytics-leaderboard-empty {
  max-width: 40rem;
  line-height: 1.45;
}

.analytics-detail-eval-note {
  margin: 0 0 0.5rem;
  padding: 0.45rem 0.65rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--muted);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(63, 110, 136, 0.22);
  background: rgba(63, 110, 136, 0.06);
}

.analytics-leaderboard-rank-instability {
  margin: 0.15rem 0 0.35rem;
  padding: 0 var(--block-padding-x) 0.5rem;
  max-width: 44rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--muted);
}

.analytics-chart-heading {
  margin: 0.5rem var(--block-padding-x) 0.15rem;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.3;
  color: var(--ink);
}

.analytics-chart-subtitle,
.analytics-chart-eligibility,
.analytics-chart-explainer,
.analytics-chart-readout {
  margin: 0.15rem 0 0.35rem;
  padding: 0 var(--block-padding-x);
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--muted);
  max-width: 44rem;
}

.analytics-chart-eligibility {
  font-size: 0.76rem;
  font-style: italic;
}

.analytics-chart-explainer {
  margin-top: 0.25rem;
  margin-bottom: 0.45rem;
}

.analytics-chart-readout {
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 0.55rem;
}

.analytics-chart-quadrants {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.25rem 0.85rem;
  margin: 0.35rem var(--block-padding-x) 0.45rem;
  max-width: 32rem;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--muted);
  opacity: 0.92;
}

.analytics-chart-quadrants__cell {
  min-width: 0;
}

.analytics-chart-caution {
  margin: 0.15rem 0 0.35rem;
  padding: 0 var(--block-padding-x);
  font-size: 0.74rem;
  line-height: 1.45;
  color: var(--muted);
  font-style: italic;
  max-width: 44rem;
}

.analytics-panel__helper--consistency-fallback {
  margin-top: 0.15rem;
  margin-bottom: 0.65rem;
}

.analytics-runner-compare__ranks {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0.45rem 0 0;
  border-top: 1px solid rgba(63, 110, 136, 0.22);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

@media (min-width: 36rem) {
  .analytics-runner-compare__ranks {
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 1rem;
  }
}

.analytics-panel__commentary {
  margin: -0.2rem 0 0.9rem;
  margin-inline: var(--block-padding-x);
  padding: 0.55rem var(--block-padding-x);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--table-hover);
  color: var(--ink);
  font-size: 0.83rem;
  line-height: 1.45;
}

.analytics-controls {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin-bottom: 0.85rem;
  padding-inline: var(--block-padding-x);
}

.analytics-controls__field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.analytics-controls__field[hidden] {
  display: none !important;
}

.analytics-controls__field--primary {
  padding-right: 0.85rem;
  border-right: 1px solid var(--border);
}

.analytics-controls__label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.analytics-controls select {
  min-height: 2.5rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  padding: 0.35rem 0.45rem;
  font: inherit;
  font-size: 0.84rem;
  color: var(--ink);
  background: #fff;
}

.analytics-controls select:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.analytics-canvas-wrap {
  position: relative;
  min-height: clamp(260px, 44vw, 420px);
  margin-bottom: 0.35rem;
  padding-inline: var(--block-padding-x);
}

.analytics-canvas {
  width: 100%;
  height: 100%;
  display: block;
}

/* Consistency vs peak: Chart.js + height:100% on canvas can otherwise expand the section to a huge blank. */
.analytics-canvas-wrap--consistency {
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  padding-bottom: 0.35rem;
  min-height: 0;
}

.analytics-canvas-wrap--consistency > .analytics-canvas {
  flex-shrink: 0;
  width: 100%;
  height: clamp(220px, 36vw, 380px);
  max-height: min(400px, 52vh);
}

.analytics-state {
  margin: 0.75rem 0 0;
  padding-inline: var(--block-padding-x);
  font-size: 0.84rem;
}

.analytics-state--empty {
  color: var(--muted);
}

.analytics-runner-compare {
  margin: 0.35rem var(--block-padding-x) 0.85rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.86rem;
  line-height: 1.45;
  border-radius: 6px;
  background: rgba(63, 110, 136, 0.09);
  border: 1px solid rgba(63, 110, 136, 0.2);
  max-width: 100%;
  box-sizing: border-box;
}

.analytics-runner-compare[hidden] {
  display: none !important;
}

.analytics-runner-compare__intro {
  margin: 0 0 0.45rem;
  line-height: 1.4;
}

.analytics-runner-compare__metrics {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.analytics-runner-compare__metrics li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.5rem;
  min-width: 0;
}

.analytics-runner-compare__label {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 0.8rem;
}

.analytics-runner-compare__value {
  flex: 1 1 auto;
  min-width: 0;
  font-variant-numeric: tabular-nums;
  word-break: break-word;
}

.analytics-runner-compare__na {
  color: var(--muted);
  font-size: 0.8rem;
  font-style: italic;
}

@media (min-width: 36rem) {
  .analytics-runner-compare__metrics {
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 1rem;
    row-gap: 0.35rem;
  }

  .analytics-runner-compare__metrics li {
    flex: 1 1 10rem;
    max-width: 100%;
  }
}

.analytics-state--error {
  color: #8b2942;
  font-weight: 600;
}

.flight-plan-ask [data-flight-plan-ask-param][hidden],
.flight-plan-ask [data-flight-plan-ask-params][hidden] {
  display: none !important;
}

.flight-plan-ask__layout {
  display: grid;
  gap: 1.25rem;
  padding: 0.25rem 0 0.5rem;
}

.flight-plan-ask__layout--v2 {
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  padding-inline: var(--block-padding-x);
}

.flight-plan-ask__primary {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}

.flight-plan-ask__welcome[hidden] {
  display: none !important;
}

.flight-plan-ask__welcome-card {
  border: 1px solid rgba(139, 41, 66, 0.16);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(139, 41, 66, 0.06) 0%, rgba(139, 41, 66, 0.02) 100%);
  padding: 1rem 1.05rem 0.95rem;
}

.flight-plan-ask__welcome-eyebrow {
  margin: 0 0 0.3rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(139, 41, 66, 0.9);
}

.flight-plan-ask__welcome-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  line-height: 1.3;
}

.flight-plan-ask__welcome-lede {
  margin: 0 0 0.75rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--muted);
}

.flight-plan-ask__welcome-more {
  margin: 0 0 0.5rem;
}

.flight-plan-ask__welcome-more-toggle {
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(139, 41, 66, 0.85);
  margin-bottom: 0.35rem;
}

.flight-plan-ask__welcome-more .flight-plan-ask__welcome-lede {
  margin-bottom: 0.45rem;
}

@media (max-width: 640px) {
  .flight-plan-ask__welcome-card {
    padding: 0.65rem 0.75rem 0.6rem;
  }

  .flight-plan-ask__welcome-title {
    font-size: 0.95rem;
    margin-bottom: 0.25rem;
  }

  .flight-plan-ask__welcome-lede {
    font-size: 0.8rem;
    margin-bottom: 0.45rem;
  }

  .flight-plan-ask__welcome-explore,
  .flight-plan-ask__welcome-explore-intro,
  .flight-plan-ask__welcome-cta {
    display: none;
  }

  .flight-plan-ask__layout--v2 {
    gap: 0.75rem;
  }

  .flight-plan-ask__search-hint {
    font-size: 0.75rem;
    margin-top: 0.25rem;
  }
}

.flight-plan-ask__welcome-chip {
  margin: 0.35rem 0 0.15rem;
}

.flight-plan-ask__welcome-chips {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}

.flight-plan-ask__build-chip {
  cursor: pointer;
  font: inherit;
  color: var(--muted);
  border-color: color-mix(in srgb, var(--border) 85%, transparent);
  background: color-mix(in srgb, var(--surface) 92%, var(--border));
}

.flight-plan-ask__build-chip:hover,
.flight-plan-ask__build-chip:focus-visible {
  color: var(--fg);
  border-color: color-mix(in srgb, var(--accent) 25%, var(--border));
  outline: none;
}

.flight-plan-ask__build-dialog {
  border: 0;
  padding: 0;
  background: transparent;
  max-width: min(92vw, 22rem);
}

.flight-plan-ask__build-dialog::backdrop {
  background: rgb(15 23 42 / 0.28);
}

.flight-plan-ask__build-dialog-panel {
  margin: 0;
  padding: 0.85rem 0.95rem 0.95rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 10px 28px rgb(15 23 42 / 0.12);
}

.flight-plan-ask__build-dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}

.flight-plan-ask__build-dialog-head h3 {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
}

.flight-plan-ask__build-dialog-close {
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.78rem;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.flight-plan-ask__build-dialog-list {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(7.5rem, 44%) 1fr;
  gap: 0.35rem 0.65rem;
  font-size: 0.78rem;
  line-height: 1.35;
}

.flight-plan-ask__build-dialog-list dt {
  margin: 0;
  color: var(--muted);
}

.flight-plan-ask__build-dialog-list dd {
  margin: 0;
  color: var(--fg);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 0.76rem;
}

.flight-plan-ask__welcome-explore-intro {
  margin: 0.15rem 0 0.35rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--muted);
}

.flight-plan-ask__welcome-explore {
  margin: 0 0 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.84rem;
  line-height: 1.5;
  color: var(--muted);
}

.flight-plan-ask__welcome-explore-link {
  color: #8b2942;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.flight-plan-ask__welcome-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

.flight-plan-ask__welcome-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
  font-size: 0.84rem;
  line-height: 1.35;
  padding: 0.35rem 0;
  border-top: 1px solid rgba(17, 17, 17, 0.06);
}

.flight-plan-ask__welcome-label {
  font-weight: 600;
  color: var(--ink, #111);
}

.flight-plan-ask__welcome-value {
  color: var(--muted);
  text-align: right;
}

.flight-plan-ask__welcome-cta {
  margin: 0.75rem 0 0;
  font-size: 0.84rem;
}

.flight-plan-ask__welcome-link {
  color: #8b2942;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

/* CAPCOM V5B — contextual leg panel (course explorer) */
.capcom-leg-panel {
  margin: 0.75rem 0 0.85rem;
  padding: 0.85rem 0.95rem;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid var(--border);
  background: var(--surface);
}

.capcom-leg-panel__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.capcom-leg-panel__title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.2;
}

.capcom-leg-panel__lede {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  line-height: 1.4;
  color: var(--text);
}

.capcom-leg-panel__intro {
  margin: 0.55rem 0 0.35rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}

.capcom-leg-panel__prompts {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.capcom-leg-panel__prompt {
  display: inline-block;
  font-size: 0.84rem;
  line-height: 1.35;
  color: #8b2942;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.capcom-leg-panel__prompt:hover,
.capcom-leg-panel__prompt:focus-visible {
  color: #6d1f34;
}

.capcom-leg-panel__cta {
  margin: 0.65rem 0 0;
}

.capcom-leg-panel__ask-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 0.85rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
}

.capcom-leg-panel__ask-btn:hover,
.capcom-leg-panel__ask-btn:focus-visible {
  border-color: #8b2942;
  color: #8b2942;
}

@media (max-width: 639px) {
  .capcom-leg-panel {
    margin-top: 0.65rem;
    padding: 0.75rem 0.8rem;
  }
}

.flight-plan-ask__search {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.flight-plan-ask__search-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__search-row {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}

.flight-plan-ask__search-input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  /* Explicit 16px — html root is 15px; iOS Safari zooms inputs below 16px. */
  font-size: 16px;
  line-height: 1.35;
}

.flight-plan-ask__search-input::placeholder {
  color: var(--muted);
  opacity: 1;
}

.flight-plan-ask__search-input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}

.flight-plan-ask__search-btn {
  flex: 0 0 auto;
  appearance: none;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--ink);
  color: var(--surface);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  padding: 0.55rem 0.95rem;
  cursor: pointer;
}

.flight-plan-ask__search-btn:hover {
  filter: brightness(1.08);
}

.flight-plan-ask__search-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  filter: none;
}

.flight-plan-ask__results-scope {
  margin: 0.15rem 0 0;
}

.flight-plan-ask__results-scope-label {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__results-scope-options {
  display: inline-flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.flight-plan-ask__results-scope-btn {
  appearance: none;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--ink);
  border-radius: 8px;
  padding: 0.35rem 0.7rem;
  font: inherit;
  font-size: 0.86rem;
  cursor: pointer;
  min-height: 44px;
}

.flight-plan-ask__results-scope-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  z-index: 1;
}

.flight-plan-ask__results-scope-btn.is-selected,
.flight-plan-ask__results-scope-btn[aria-pressed="true"],
.flight-plan-ask__results-scope-btn[aria-checked="true"] {
  border-color: var(--border-strong);
  background: color-mix(in srgb, var(--ink) 8%, var(--surface));
  font-weight: 600;
}

.flight-plan-ask__composer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}

.flight-plan-ask__composer .flight-plan-ask__search-input {
  flex: 1 1 14rem;
  min-height: 44px;
}

.flight-plan-ask__composer-controls {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
  justify-content: flex-end;
}

.flight-plan-ask__results-scope {
  margin: 0;
}

.flight-plan-ask__results-scope-segmented {
  display: inline-flex;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: var(--surface);
}

.flight-plan-ask__results-scope-segmented .flight-plan-ask__results-scope-btn {
  border: 0;
  border-radius: 0;
  min-width: 7.25rem;
}

.flight-plan-ask__results-scope-segmented .flight-plan-ask__results-scope-btn + .flight-plan-ask__results-scope-btn {
  border-left: 1px solid var(--border);
}

.flight-plan-ask__examples {
  margin: 0.85rem 0 0;
}

.flight-plan-ask__examples[hidden] {
  display: none !important;
}

.flight-plan-ask__examples-label {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__question-grid--chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.flight-plan-ask__question-grid--chips .flight-plan-ask__question-card {
  min-height: 44px;
  padding: 0.55rem 0.8rem;
}

.flight-plan-ask__question-grid--chips .flight-plan-ask__question-card-desc {
  display: none;
}

.flight-plan-ask__transcript {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1rem;
}

.flight-plan-ask__transcript[hidden] {
  display: none !important;
}

.flight-plan-ask__turn {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.flight-plan-ask__turn-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__turn-user .flight-plan-ask__turn-text {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
}

.flight-plan-ask__turn-scope {
  margin: 0.1rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
}

.flight-plan-ask__clarification-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.5rem;
}

.flight-plan-ask__clarification-choice {
  appearance: none;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink);
  border-radius: 8px;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  min-height: 44px;
  padding: 0.45rem 0.85rem;
  cursor: pointer;
}

.flight-plan-ask__clarification-choice:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.flight-plan-ask__clarification-choice.is-selected {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
}

.flight-plan-ask__new-chat {
  margin: 0.85rem 0 0;
}

.flight-plan-ask__new-chat-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.84rem;
  text-decoration: underline;
  cursor: pointer;
  min-height: 44px;
  padding: 0.25rem 0;
}

.flight-plan-ask__runtime-details {
  margin-top: 1.25rem;
  font-size: 0.82rem;
  color: var(--muted);
}

.flight-plan-ask__search-btn:disabled {
  opacity: 0.55;
  cursor: wait;
}

/* Mobile conversation dock: keep the single composer reachable without duplicating controls. */
.flight-plan-ask {
  --capcom-composer-dock-pad: 0px;
  --capcom-keyboard-inset: 0px;
}

.flight-plan-ask--conversation .flight-plan-ask__results {
  padding-bottom: var(--capcom-composer-dock-pad);
}

.flight-plan-ask--conversation .flight-plan-ask__turn-user {
  scroll-margin-top: 0.75rem;
  scroll-margin-bottom: calc(var(--capcom-composer-dock-pad, 0px) + 0.5rem);
}

@media (max-width: 640px) {
  .flight-plan-ask__composer-controls {
    width: 100%;
    justify-content: space-between;
  }

  .flight-plan-ask__results-scope-segmented {
    flex: 1 1 auto;
  }

  .flight-plan-ask__results-scope-segmented .flight-plan-ask__results-scope-btn {
    flex: 1 1 0;
    min-width: 0;
  }

  .flight-plan-ask--conversation .flight-plan-ask__search--composer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: var(--capcom-keyboard-inset, 0px);
    z-index: 40;
    margin: 0;
    padding-top: 0.55rem;
    padding-right: max(var(--page-pad-x), env(safe-area-inset-right, 0px));
    padding-bottom: calc(0.55rem + env(safe-area-inset-bottom, 0px));
    padding-left: max(var(--page-pad-x), env(safe-area-inset-left, 0px));
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    border-top: 1px solid var(--border);
    box-shadow: 0 -6px 20px color-mix(in srgb, var(--ink) 10%, transparent);
  }

  .flight-plan-ask--conversation .flight-plan-ask__composer {
    gap: 0.4rem;
  }

  .flight-plan-ask--conversation .flight-plan-ask__composer .flight-plan-ask__search-input {
    flex: 1 1 100%;
  }

  .flight-plan-ask--conversation .flight-plan-ask__composer-controls {
    width: 100%;
  }
}

.flight-plan-ask__search-hint {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--muted);
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.flight-plan-ask__picker {
  min-width: 0;
}

.flight-plan-ask__layout--chat .flight-plan-ask__picker {
  display: none;
}

@media (min-width: 56rem) {
  .flight-plan-ask__layout--v2 {
    padding-inline: var(--block-padding-x);
    max-width: 48rem;
  }
}

@media (min-width: 56rem) {
  .flight-plan-ask__layout:not(.flight-plan-ask__layout--v2) {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 1.5rem;
    align-items: start;
    padding-inline: var(--block-padding-x);
  }
}

.flight-plan-ask__section-title {
  margin: 0 0 0.75rem;
  padding-inline: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__layout--v2 .flight-plan-ask__section-title {
  padding-inline: 0;
}

.flight-plan-ask__question-grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-inline: 0;
}

.flight-plan-ask__section-lede {
  margin: -0.35rem 0 0.85rem;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.45;
}

.flight-plan-ask__example-group {
  display: grid;
  gap: 0.65rem;
}

@media (min-width: 30rem) {
  .flight-plan-ask__example-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.flight-plan-ask__more-examples {
  margin-top: 0.25rem;
}

.flight-plan-ask__more-examples-toggle {
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink-muted, #6b7280);
  list-style: none;
  padding: 0.35rem 0;
}

.flight-plan-ask__more-examples-toggle::-webkit-details-marker {
  display: none;
}

.flight-plan-ask__more-examples-toggle::before {
  content: "▸";
  display: inline-block;
  margin-right: 0.35rem;
  transition: transform 0.15s ease;
}

.flight-plan-ask__more-examples[open] .flight-plan-ask__more-examples-toggle::before {
  transform: rotate(90deg);
}

.flight-plan-ask__more-examples-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-top: 0.5rem;
}

.flight-plan-ask__question-card--example .flight-plan-ask__question-card-title {
  font-size: 0.92rem;
}

.flight-plan-ask__group-title {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted, #6b7280);
}

.flight-plan-ask__question-group {
  display: grid;
  gap: 0.65rem;
}

@media (min-width: 30rem) {
  .flight-plan-ask__question-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 56rem) {
  .flight-plan-ask__question-grid {
    padding-inline: 0;
  }
}

.flight-plan-ask__question-card {
  -webkit-appearance: none;
  appearance: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
  margin: 0;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background-color: var(--surface);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--ink) 4%, transparent);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.flight-plan-ask__question-card:hover,
.flight-plan-ask__question-card:focus-visible {
  border-color: rgba(63, 110, 136, 0.45);
  box-shadow: 0 2px 8px rgba(17, 17, 17, 0.06);
}

.flight-plan-ask__question-card--active {
  border-color: rgba(63, 110, 136, 0.65);
  background: rgba(63, 110, 136, 0.08);
  box-shadow: 0 0 0 1px rgba(63, 110, 136, 0.2);
}

.flight-plan-ask__question-card-title {
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.35;
}

.flight-plan-ask__question-card-desc {
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--muted);
}

.flight-plan-ask__params {
  margin: 0;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(17, 17, 17, 0.08);
  border-radius: 10px;
  background: rgba(63, 110, 136, 0.05);
}

.flight-plan-ask__params-title {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__params-hint {
  margin: 0 0 0.75rem;
  font-size: 0.84rem;
  line-height: 1.4;
  color: var(--muted);
}

.flight-plan-ask__params-fields {
  display: grid;
  gap: 0.65rem;
}

.flight-plan-ask__param-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.flight-plan-ask__param-label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__param-select {
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(17, 17, 17, 0.14);
  border-radius: 6px;
  background: var(--paper, #f3f1ee);
  font: inherit;
  font-size: 0.86rem;
}

.flight-plan-ask__run-btn {
  appearance: none;
  margin-top: 0.85rem;
  border: 1px solid rgba(17, 17, 17, 0.2);
  border-radius: 8px;
  background: var(--ink, #111);
  color: var(--paper, #f3f1ee);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  padding: 0.5rem 1rem;
  cursor: pointer;
}

.flight-plan-ask__run-btn:hover,
.flight-plan-ask__run-btn:focus-visible {
  filter: brightness(1.08);
}

.flight-plan-ask__results {
  padding-inline: 0;
}

.flight-plan-ask__insight-row-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.flight-plan-ask__insight-row-link:hover,
.flight-plan-ask__insight-row-link:focus-visible {
  color: #3f6e88;
}

.flight-plan-ask__placeholder {
  padding: 1.1rem 1rem;
  border: 1px dashed rgba(17, 17, 17, 0.14);
  border-radius: 12px;
  background: rgba(17, 17, 17, 0.02);
  text-align: center;
}

.flight-plan-ask__placeholder[hidden] {
  display: none !important;
}

.flight-plan-ask__placeholder-title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.flight-plan-ask__placeholder-text {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--muted);
}

.flight-plan-ask__insight[hidden] {
  display: none !important;
}

.flight-plan-ask__insight-card {
  border: 1px solid rgba(63, 110, 136, 0.22);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(63, 110, 136, 0.07) 0%, rgba(63, 110, 136, 0.02) 100%);
  box-shadow: 0 2px 12px rgba(17, 17, 17, 0.05);
  overflow: hidden;
}

.flight-plan-ask__insight-card--empty {
  border-style: dashed;
  background: rgba(17, 17, 17, 0.02);
}

.flight-plan-ask__insight-head {
  padding: 1rem 1.05rem 0.85rem;
  border-bottom: 1px solid rgba(17, 17, 17, 0.06);
}

.flight-plan-ask__insight-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(63, 110, 136, 0.95);
}

.flight-plan-ask__insight-head h2 {
  margin: 0 0 0.4rem;
  font-size: 1.08rem;
  line-height: 1.3;
}

.flight-plan-ask__insight-lede {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--muted);
}

.flight-plan-ask__insight-body {
  padding: 0.75rem 1.05rem 0.35rem;
}

.flight-plan-ask__insight-section h3 {
  margin: 0 0 0.45rem;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__insight-list {
  list-style: none;
  margin: 0 0 0.65rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.flight-plan-ask__insight-row {
  display: grid;
  gap: 0.15rem;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(17, 17, 17, 0.06);
  font-size: 0.84rem;
  line-height: 1.4;
}

.flight-plan-ask__insight-row-label {
  font-weight: 600;
  overflow-wrap: anywhere;
  word-break: break-word;
  min-width: 0;
}

.flight-plan-ask__insight-row-value {
  color: var(--muted);
  font-size: 0.82rem;
  overflow-wrap: anywhere;
  word-break: break-word;
  min-width: 0;
}

.flight-plan-ask__insight-sources {
  padding: 0.85rem 1.05rem 1rem;
  border-top: 1px solid rgba(17, 17, 17, 0.06);
  background: rgba(17, 17, 17, 0.03);
}

.flight-plan-ask__insight-sources-label {
  margin: 0 0 0.55rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.flight-plan-ask__source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.flight-plan-ask__source-link {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border: 1px solid rgba(63, 110, 136, 0.35);
  border-radius: 999px;
  background: rgba(63, 110, 136, 0.1);
  color: inherit;
}

.flight-plan-ask__insight-actions {
  padding: 0.75rem 1.05rem 1rem;
  border-top: 1px solid rgba(17, 17, 17, 0.06);
}

.flight-plan-ask__new-question-btn {
  appearance: none;
  border: 1px solid rgba(63, 110, 136, 0.45);
  border-radius: 999px;
  background: #fff;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  padding: 0.45rem 0.95rem;
}

.flight-plan-ask__new-question-btn:hover,
.flight-plan-ask__new-question-btn:focus-visible {
  background: rgba(63, 110, 136, 0.08);
  outline: none;
}
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.3;
}

.flight-plan-ask__source-link:hover,
.flight-plan-ask__source-link:focus-visible {
  border-color: rgba(63, 110, 136, 0.55);
  background: rgba(63, 110, 136, 0.16);
  text-decoration: none;
}

.flight-plan-ask .analytics-state--error {
  margin-top: 0.75rem;
}

.results-leg-nav,
.results-year-nav {
  flex: 1 1 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.35rem;
  font-size: 0.75rem;
  font-weight: 500;
  max-width: 100%;
}

.results-leg-nav a,
.results-year-nav a {
  color: var(--muted);
  text-decoration: none;
  padding: 0.28rem 0.45rem;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.results-leg-nav a:hover,
.results-year-nav a:hover {
  color: var(--ink);
  background: var(--table-hover);
  text-decoration: none;
  border-color: var(--border);
}

.results-leg-nav a.is-active,
.results-leg-nav a[aria-current="page"],
.results-year-nav a.is-active,
.results-year-nav a[aria-current="page"] {
  color: var(--accent);
  font-weight: 600;
  background: var(--accent-soft);
  border-color: var(--accent-soft-border);
  text-decoration: none;
}

.results-leg-nav a:focus-visible,
.results-year-nav a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.results-year-wrap {
  flex: 0 0 auto;
  min-width: 6.5rem;
}

.results-year-select {
  width: 100%;
  max-width: min(9rem, 100%);
  min-height: 2.5rem;
  padding: 0.4rem 0.45rem;
  font: inherit;
  font-size: 0.8125rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
}

.results-year-select:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
}

.table-panel .data-table {
  margin: 0;
}

table.data-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font);
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
}

table.data-table th,
table.data-table td {
  padding: var(--table-cell-padding-y) var(--table-cell-padding-x);
  text-align: left;
  border-bottom: 1px solid var(--border);
}

/* Body: keep times, numbers, and short tokens on one line (do not force wrap globally). */
table.data-table td {
  vertical-align: top;
  white-space: nowrap;
}

/* Column headers: wrap long labels (narrower columns without clipping words). */
table.data-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--table-head);
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--border-strong);
  white-space: normal;
  line-height: 1.24;
  vertical-align: bottom;
  word-break: keep-all;
  overflow-wrap: break-word;
  padding: 0.42rem 0.48rem;
}

/* Row labels (e.g. first column in leg matrix): single line, no sticky header behavior. */
table.data-table tbody th {
  position: static;
  background: var(--table-head);
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: normal;
  text-transform: none;
  color: var(--ink);
  white-space: nowrap;
  vertical-align: middle;
  line-height: 1.3;
  border-bottom: 1px solid var(--border);
}

@media (max-width: 480px) {
  table.data-table th,
  table.data-table td {
    font-size: 0.8rem;
  }

  table.data-table thead th {
    font-size: 0.68rem;
  }
}

/* Compact grids: admin assignments + leg matrix (incl. tbody runner column). */
table.data-table.race2026-admin-table thead th,
table.data-table.race2026-leg-matrix__table th {
  white-space: nowrap;
  vertical-align: bottom;
  line-height: 1.2;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  word-break: normal;
  overflow-wrap: normal;
  padding: var(--table-cell-padding-y) 0.4rem;
}

table.data-table th.data-table__th--sortable {
  cursor: pointer;
  user-select: none;
}

table.data-table th.data-table__th--sortable:hover {
  color: var(--ink);
  background: var(--table-hover);
}

table.data-table th.data-table__th--sortable:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
  z-index: 2;
}

.data-table__th-inner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.35rem;
  max-width: 100%;
}

.data-table__sort-ind {
  font-size: 0.65rem;
  color: var(--accent);
  font-weight: 700;
  line-height: 1;
  min-width: 0.6rem;
}

table.data-table th.is-sorted-asc,
table.data-table th.is-sorted-desc {
  color: var(--ink);
}

table.data-table tbody tr:last-child td {
  border-bottom: none;
}

table.data-table tbody tr:nth-child(even) td {
  background: var(--table-zebra);
}

table.data-table tbody tr.is-value-added-selected td {
  box-shadow: inset 3px 0 0 0 var(--color-accent, #3f6e88);
  background-color: rgba(63, 110, 136, 0.08);
}

table.data-table tbody tr.is-value-added-eval-leg td {
  border-top: 1px solid rgba(63, 110, 136, 0.35);
  border-bottom: 1px solid rgba(63, 110, 136, 0.35);
}

table.data-table tbody tr:hover td {
  background: var(--table-hover);
}

/* —— Footer —— */
.site-preview-notice {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0.55rem var(--page-pad-x);
  display: flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
  color: var(--ink);
  background: var(--accent-soft);
  border-bottom: 1px solid var(--accent-soft-border);
}

.site-preview-notice a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}

.site-footer {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 1.5rem var(--page-pad-x) max(2rem, env(safe-area-inset-bottom, 0px));
  font-size: 0.75rem;
  line-height: 1.55;
  color: var(--faint);
  border-top: 1px solid var(--border);
  overflow-wrap: anywhere;
}

@media (max-width: 560px) {
  .site-preview-notice {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.35rem 0.7rem;
  }
}

.site-footer code {
  font-family: var(--font-mono);
  font-size: 0.85em;
  padding: 0.08em 0.3em;
  border-radius: 3px;
  background: var(--table-head);
  border: 1px solid var(--border);
  color: var(--muted);
}

@media (max-width: 900px) {
  .site-title {
    font-size: clamp(0.95rem, 3.2vw, 1.05rem);
  }

  .site-logo {
    width: 44px;
    height: 44px;
  }
}

@media (max-width: 720px) {
  .site-header__inner {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    align-content: center;
    justify-content: space-between;
    gap: 0.5rem 0.65rem;
  }

  .site-brand {
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
    gap: 0.6rem;
  }

  .site-logo-link {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .site-title {
    text-wrap: balance;
  }

  .site-nav__toggle {
    display: inline-flex;
    position: relative;
    z-index: 310;
    align-self: center;
  }

  .site-header--nav-open .site-nav__toggle {
    border-color: var(--accent-soft-border);
    background: var(--accent-soft);
    box-shadow: var(--shadow-sm);
  }

  /* Flat mobile shell only — desktop dropdown markup stays in DOM but hidden */
  .site-nav__desktop-shell {
    display: none !important;
  }

  .site-nav__mobile-shell {
    display: block;
    width: 100%;
  }

  nav[aria-label="Primary"] {
    flex-direction: column;
    align-items: stretch;
    flex: none;
    width: 100%;
    justify-content: flex-start;
  }

  /* Fixed overlay below header; does not expand header height (z: above backdrop 250, below header chrome 300) */
  .site-nav-drawer {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: 6.25rem;
    z-index: 260;
    flex: none;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
  }

  .site-header--nav-open .site-nav-drawer {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .site-nav-scroll {
    flex: 1 1 auto;
    justify-content: stretch;
    margin-inline: 0;
    padding-inline: 0;
    height: 100%;
    max-height: none;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    border-top: 0;
    transition: box-shadow 0.15s ease;
  }

  .site-header:not(.site-header--nav-open) .site-nav-scroll {
    pointer-events: none;
  }

  .site-header--nav-open .site-nav-scroll {
    pointer-events: auto;
    padding: 0.55rem 0.5rem calc(0.9rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--border);
    background: var(--surface);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
    scrollbar-gutter: stable both-edges;
  }

  .site-nav__mobile-shell .site-nav-mobile__block {
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--border);
  }

  .site-nav__mobile-shell .site-nav-mobile__block:last-child {
    border-bottom: none;
  }

  .site-nav__mobile-shell .site-nav-mobile__title {
    margin: 0 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--muted);
  }

  .site-nav__mobile-shell .site-nav-mobile__subtitle {
    margin: 0.65rem 0 0.25rem;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
  }

  .site-nav__mobile-shell .site-nav-mobile__subtitle:first-of-type {
    margin-top: 0.25rem;
  }

  .site-nav__mobile-shell .site-nav-mobile__links {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
  }

  .site-nav__mobile-shell .site-nav-mobile__links a {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.65rem 0.6rem;
    min-height: 2.85rem;
    font-size: 0.8125rem;
    font-weight: 480;
    border-radius: var(--radius-sm);
  }

  .results-leg-nav,
  .results-year-nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding-bottom: 0.15rem;
    scrollbar-width: thin;
  }

  .results-leg-nav a,
  .results-year-nav a {
    flex-shrink: 0;
  }

  .analytics-controls {
    grid-template-columns: 1fr;
  }

  .analytics-controls__field--primary {
    padding-right: 0;
    border-right: 0;
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.65rem;
    margin-bottom: 0.1rem;
  }

  .analytics-canvas-wrap {
    min-height: 280px;
  }
}

@media (min-width: 721px) {
  .site-nav__mobile-shell {
    display: none !important;
  }

  .site-nav__desktop-shell {
    display: contents;
  }

  .site-nav-scroll {
    overflow: visible;
  }

  .site-nav__menu {
    position: absolute;
    top: calc(100% + 0.12rem);
    right: 0;
    left: auto;
    margin-top: 0;
    z-index: 200;
  }

  /* Domain-nav prototype: scroll tall menus instead of painting over page content. */
  .site-nav--domain-prototype .site-nav__dropdown[open] .site-nav__menu {
    max-height: min(70vh, 24rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

/* --- 2026 race hub + live snapshot --- */
.race2026-overview-countdown {
  margin: 1.5rem 0 1.75rem;
  padding: 1rem 0 0;
  border-top: 1px solid var(--border);
}

.race2026-overview-countdown h2.race2026-section-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ink);
  text-align: center;
}

.race2026-overview-countdown__note {
  margin: 0 0 0.35rem;
  line-height: 1.45;
  font-size: 0.95rem;
}

.race2026-overview-countdown .race2026-countdown-stack {
  margin-top: 1rem;
  margin-bottom: 0;
}

.race2026-command-centre {
  margin: 0.9rem 0 1rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #fdfcf9 0%, #f6f4f0 100%);
  box-shadow: 0 1px 5px rgba(22, 25, 29, 0.07);
}

.race2026-command-centre__label {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--faint);
}

.race2026-command-centre__status {
  margin: 0.35rem 0 0.6rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  font-weight: 600;
}

.race2026-command-centre__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.race2026-command-centre__links a {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: 0.2rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.race-hub-intro {
  max-width: var(--content-max-width);
}

.race2026-your-schedule {
  margin: 1rem 0 0.95rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  max-width: var(--content-max-width);
}

.race2026-your-schedule[hidden] {
  display: none !important;
}

.race2026-your-schedule__title {
  font-size: 1.05rem;
  margin: 0 0 0.25rem;
  font-weight: 600;
}

.race2026-your-schedule__note {
  margin: 0 0 0.65rem;
  color: var(--muted);
}

.race2026-your-schedule__empty {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--muted);
}

.race2026-your-schedule__cards {
  display: grid;
  gap: 0.55rem;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}

.race2026-your-schedule__card {
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg);
}

.race2026-your-schedule__card-title {
  font-size: 0.95rem;
  margin: 0 0 0.35rem;
}

.race2026-your-schedule__scheduled,
.race2026-your-schedule__relative {
  margin: 0.15rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.35;
}

.race2026-your-schedule__links {
  margin: 0.65rem 0 0;
  padding: 0;
  list-style: none;
}

.race2026-your-schedule__link-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.9rem;
}

.race2026-race-plan-grid {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0 var(--block-padding-x) 2rem;
}

.race2026-race-plan-card {
  display: block;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  text-decoration: none;
  color: inherit;
}

.race2026-race-plan-card h2 {
  font-size: 1.1rem;
  margin: 0 0 0.35rem;
}

.race2026-race-plan-card p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--muted);
}

.race2026-logistics-toc {
  margin: 0.5rem 0 0;
  font-size: 0.92rem;
}

.race2026-logistics-toc__sep {
  display: inline-block;
  margin: 0 0.25rem;
  color: var(--muted);
}

.race2026-hub-actions {
  margin: 1rem 0 0;
  display: grid;
  gap: 0.55rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.race2026-hub-action {
  display: block;
  padding: 0.58rem 0.72rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  text-decoration: none;
}

.race2026-hub-action__title {
  display: block;
  font-weight: 700;
  color: var(--ink);
}

.race2026-hub-action__desc {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.86rem;
  color: var(--muted);
}

.race2026-runner-list {
  margin: 0.5rem 0 1.25rem;
  padding-left: 1.25rem;
  column-width: 14rem;
  column-gap: 2rem;
}

.race2026-runner-list .race2026-roster-jumplink {
  font-weight: 600;
}

.race2026-roster-leg-badge {
  display: inline-block;
  margin-left: 0.45rem;
  padding: 0.08rem 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 999px;
  vertical-align: middle;
}

.race2026-profile__assign-badge {
  margin: 0.2rem 0 0.4rem;
}

.race2026-personalization {
  margin: 0.75rem 0 0.9rem;
}

.race2026-personalization__label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.88rem;
  color: var(--muted);
}

.race2026-personalization__select {
  min-height: 2.5rem;
  min-width: 14rem;
}

.is-my-runner {
  background: rgba(47, 143, 100, 0.12);
  border-radius: 0.25rem;
  padding: 0.05rem 0.22rem;
}

.race2026-row--my-runner {
  outline: 2px solid rgba(47, 143, 100, 0.28);
  outline-offset: -2px;
}

.page-intro#roster-top,
.race2026-profiles {
  max-width: var(--content-max-width);
  margin: 1.65rem auto 0;
}

.page-intro#roster-top {
  padding-bottom: 0.4rem;
}

.race2026-profiles {
  padding: 0 var(--block-padding-x) 2rem;
}

.race2026-profiles__title {
  font-size: 1.35rem;
  margin: 0 0 0.35rem;
}

.race2026-profiles__note {
  margin: 0 0 1.5rem;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.45;
}

.race2026-profile {
  margin-bottom: 1.75rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--border);
}

.race2026-profile:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.race2026-profile__row {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.race2026-profile__avatar {
  flex: 0 0 5.5rem;
  width: 5.5rem;
  height: 5.5rem;
  line-height: 0;
}

.race2026-profile__avatar .race2026-avatar__svg {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 0.65rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
}

.race2026-profile__avatar--photo .race2026-avatar__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 0.65rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
}

.race2026-profile__body {
  flex: 1;
  min-width: 0;
}

.race2026-profile__name {
  margin: 0 0 0.4rem;
  font-size: 1.1rem;
}

.race2026-profile__name-link {
  color: inherit;
  text-decoration: none;
}

.race2026-profile__name-link:hover,
.race2026-profile__name-link:focus-visible {
  text-decoration: underline;
}

.race2026-profile__cabot {
  margin: 0 0 0.65rem;
  padding: 0.5rem 0.55rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--surface);
}

.race2026-profile__cabot-subhead {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  color: var(--ink);
}

.race2026-profile__cabot-block + .race2026-profile__cabot-block {
  margin-top: 0.65rem;
}

.race2026-profile__cabot-years {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.race2026-profile__cabot-year {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
}

.race2026-profile__cabot-year-label {
  font-weight: 650;
  font-size: 0.82rem;
  min-width: 2.75rem;
  color: var(--ink);
}

.race2026-profile__leg-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.race2026-leg-chip {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.28rem 0.4rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-size: 0.82rem;
  line-height: 1.25;
  background: var(--bg);
  color: var(--muted);
}

.race2026-leg-chip--other {
  background: rgba(120, 120, 120, 0.06);
}

.race2026-leg-chip__badges {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.22rem;
  align-items: center;
}

.race2026-achievement-badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  padding: 0.05rem 0.38rem;
  border-radius: 999px;
  line-height: 1.25;
  border: 1px solid var(--border);
}

.race2026-achievement-badge--overall {
  background: rgba(47, 143, 100, 0.14);
  color: var(--ink);
  border-color: rgba(47, 143, 100, 0.32);
}

.race2026-achievement-badge--bl {
  background: rgba(120, 120, 120, 0.08);
  color: var(--muted);
  border-color: var(--border-strong);
}

.race2026-profile__cabot-empty-bl {
  margin: 0 0 0.4rem;
  font-size: 0.86rem;
  color: var(--muted);
}

.race2026-profile__cabot-source-note {
  margin: 0.45rem 0 0;
  color: var(--faint);
}

.race2026-profile__milestone {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0 0 0.55rem;
  padding: 0.45rem 0.55rem;
  border-radius: var(--radius-sm);
  font-size: 0.86rem;
  line-height: 1.38;
}

.race2026-profile__milestone-kicker {
  display: block;
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.race2026-profile__milestone-detail {
  color: var(--muted);
}

.race2026-profile__milestone--complete {
  background: rgba(47, 143, 100, 0.11);
  border: 1px solid rgba(47, 143, 100, 0.26);
}

.race2026-profile__milestone--complete .race2026-profile__milestone-detail {
  color: var(--ink);
  opacity: 0.9;
}

.race2026-profile__milestone--chase {
  background: var(--accent-soft);
  border: 1px solid var(--accent-soft-border);
}

.race2026-profile__bio {
  margin: 0;
  line-height: 1.55;
  font-size: 0.95rem;
}

.race2026-profile__recent-results {
  margin: 0.5rem 0 0;
  line-height: 1.55;
  font-size: 0.95rem;
}

.race2026-profile__commentary {
  margin: 0.35rem 0 0;
  line-height: 1.55;
  font-size: 0.95rem;
}

.race2026-profile__release-bio {
  margin: 0.4rem 0 0;
  line-height: 1.55;
  font-size: 0.95rem;
  color: var(--muted);
}

.race2026-profile__map {
  margin: 0.65rem 0 0;
  font-size: 0.9rem;
}

.race2026-profile__top {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
}

.race2026-profile__toplink {
  color: var(--muted);
  text-decoration: none;
}

.race2026-profile__toplink:hover {
  color: var(--accent);
  text-decoration: underline;
}

.team-ref-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16.5rem, 1fr));
  gap: 0.85rem;
  margin: 0 auto 1rem;
  max-width: var(--content-max-width);
  /* Horizontal inset comes from main only — avoids double gutter vs page intro. */
  padding: 0;
}

.team-ref-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: var(--card-padding-y) var(--card-padding-x);
}

.team-ref-card h2 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ink);
  line-height: 1.3;
}

.team-ref-card ul {
  margin: 0;
  padding-left: 1rem;
}

.team-ref-card li + li {
  margin-top: 0.42rem;
}

.team-ref-card ul.team-ref-checklist {
  list-style: none;
  padding-left: 0;
}

.team-ref-checklist__item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  cursor: pointer;
  line-height: 1.35;
}

.team-ref-checklist__item span {
  flex: 1;
  min-width: 0;
}

.team-ref-checklist input[type="checkbox"] {
  margin: 0.12rem 0 0;
  flex-shrink: 0;
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--accent);
}

.team-ref-downloads {
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
}

.team-ref-downloads__table td:nth-child(1) {
  width: 5rem;
}

.team-ref-downloads__table td:nth-child(3) small {
  display: block;
  margin-top: 0.2rem;
  color: var(--faint);
}

.team-ref-downloads__missing {
  color: var(--faint);
}

@media (max-width: 520px) {
  .race2026-hub-actions {
    grid-template-columns: 1fr;
  }

  .race2026-profile__row {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .race2026-profile__avatar {
    flex-basis: 6rem;
    width: 6rem;
    height: 6rem;
  }

  .race2026-profile__body {
    width: 100%;
    align-self: stretch;
    text-align: left;
  }
}

@media (max-width: 375px) {
  .race2026-profile__avatar {
    flex-basis: 5rem;
    width: 5rem;
    height: 5rem;
  }

  .race2026-legs__sep {
    font-size: 1.2rem;
    margin: 0 0.15rem;
  }
}

/* --- 2026 leg assignments countdown --- */
/* Centered column shared by leg-assignments and race hub Leg 1 countdown. */
.race2026-countdown-stack {
  max-width: 36rem;
  margin: 0 auto 2.5rem;
  padding: 0 1rem;
  text-align: center;
}

.race2026-legs {
  margin: 0;
  padding: 0;
}

.race2026-legs__label {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
}

.race2026-legs--live .race2026-legs__label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.race2026-legs--live .race2026-legs__label::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #2a9d5c;
  box-shadow: 0 0 0 0 rgba(42, 157, 92, 0.45);
  animation: race2026-live-pulse 1.6s ease-out infinite;
}

@keyframes race2026-live-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(42, 157, 92, 0.5);
  }
  70% {
    box-shadow: 0 0 0 0.55rem rgba(42, 157, 92, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(42, 157, 92, 0);
  }
}

.race2026-legs__clock {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  font-variant-numeric: tabular-nums;
}

.race2026-legs__block {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  min-width: 3.25rem;
}

.race2026-legs__num {
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 700;
  line-height: 1.1;
  font-feature-settings: "tnum" 1;
}

.race2026-legs__unit {
  font-size: 0.72rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.race2026-countdown__subsecond {
  margin: 0.65rem auto 0;
  max-width: min(18rem, 100%);
  height: 5px;
  border-radius: 3px;
  background: var(--border);
  overflow: hidden;
}

.race2026-countdown__subsecond-fill {
  height: 100%;
  width: 100%;
  transform-origin: left center;
  transform: scaleX(0);
  border-radius: 3px;
  background: linear-gradient(90deg, var(--accent-soft-border), var(--accent));
  will-change: transform;
}

.race2026-countdown--pulse {
  animation: race2026-sec-block-pulse 0.45s ease-out;
}

@keyframes race2026-sec-block-pulse {
  0% {
    transform: translateY(0.12em);
    opacity: 0.72;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .race2026-countdown--pulse {
    animation: none;
  }
}

.race2026-legs__sep {
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--muted);
  align-self: flex-start;
  margin-top: 0.35rem;
}

.race2026-legs__done {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--muted);
}

.race2026-release-lock {
  max-width: 36rem;
  margin: 0 auto 0.75rem;
  padding: 0.65rem 0.8rem;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-sm);
  background: #f8f7f4;
  text-align: center;
}

.race2026-release-lock__title {
  margin: 0;
  font-weight: 700;
}

.race2026-release-lock__note {
  margin: 0.35rem 0 0;
  font-size: 0.86rem;
  color: var(--muted);
}

/* --- Home landing mission clock + cards --- */
.home-mission {
  margin: 0 0 2rem;
}

.home-mission-clock {
  margin: 1rem 0 0.75rem;
  padding: 1.1rem 1rem 1rem;
  border: 1px solid rgba(186, 209, 238, 0.22);
  border-radius: 12px;
  background: linear-gradient(160deg, #182238 0%, #0f172a 68%, #132033 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
  color: #f7fbff;
}

.countdown-share-page {
  min-height: 100vh;
  background: #f3f1ee;
}

.countdown-share-page__main {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: clamp(1.25rem, 5vw, 4rem);
}

.countdown-share-page__stage {
  width: min(100%, 760px);
}

.countdown-share-page .home-mission-clock {
  margin: 0;
  padding: clamp(1.1rem, 4vw, 2rem);
}

.home-mission-clock__label {
  margin: 0 0 0.65rem;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #b8d9ff;
}

.home-mission-clock__status {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  color: #90b2d8;
}

.home-mission-clock--live .home-mission-clock__status {
  color: #8fe3b8;
}

.home-mission-clock__time {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-variant-numeric: tabular-nums;
}

.home-mission-progress {
  margin: 0.85rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(186, 209, 238, 0.12);
  text-align: center;
}

.home-mission-progress__line {
  margin: 0.2rem 0 0;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.35;
  color: rgba(186, 209, 238, 0.72);
}

.home-mission-progress__line:first-child {
  margin-top: 0;
}

.home-mission-progress--fallback .home-mission-progress__line {
  color: rgba(186, 209, 238, 0.62);
}

.home-mission-clock--live .home-mission-progress__line {
  color: rgba(184, 220, 200, 0.78);
}

.home-mission-clock__block {
  display: inline-flex;
  min-width: 3.9rem;
  flex-direction: column;
  align-items: center;
}

.home-mission-clock__num {
  font-size: clamp(2rem, 6.2vw, 3.2rem);
  font-weight: 800;
  line-height: 1.05;
  white-space: nowrap;
}

.home-mission-clock__unit {
  font-size: 0.73rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #b8d9ff;
}

.home-mission-clock__sep {
  margin-top: 0.35rem;
  font-size: 1.55rem;
  color: #8aa7cb;
}

@media (max-width: 720px) {
  .home-mission-clock {
    padding: 1rem 0.55rem 0.85rem;
  }

  .home-mission-clock__time {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 0.75rem;
    align-items: end;
  }

  .home-mission-clock__block {
    min-width: 0;
  }

  .home-mission-clock__num {
    font-size: clamp(1.45rem, 8.9vw, 2.1rem);
  }

  .home-mission-clock__unit {
    font-size: 0.62rem;
    letter-spacing: 0.04em;
  }

  .home-mission-clock__sep {
    display: none;
  }
}

.home-landing-links {
  margin: 0 0 2rem;
}

.home-link-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 0.85rem;
}

.home-link-card {
  display: block;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  text-decoration: none;
}

.home-link-card__title {
  display: block;
  margin: 0 0 0.2rem;
  font-weight: 700;
  color: var(--fg);
}

.home-link-card__desc {
  display: block;
  color: var(--muted);
  font-size: 0.93rem;
  line-height: 1.4;
}

.home-link-card:hover,
.home-link-card:focus-visible {
  border-color: var(--accent-soft-border);
  background: color-mix(in srgb, var(--surface) 88%, var(--accent-bg));
}

.flight-plan-ask-feature {
  margin: 0 0 2rem;
  padding: 1.15rem 1.25rem;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--border));
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--accent-soft) 80%, var(--surface)) 0%,
    var(--surface) 100%
  );
}

.flight-plan-ask-feature__inner {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.flight-plan-ask-feature__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
}

.flight-plan-ask-feature h2 {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.2;
}

.flight-plan-ask-feature__lede,
.flight-plan-ask-feature__note {
  margin: 0;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.45;
}

.flight-plan-ask-feature__samples {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.15rem 0 0;
  padding: 0;
  list-style: none;
}

.flight-plan-ask-feature__chip {
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border));
  background: color-mix(in srgb, var(--accent-soft) 35%, var(--surface));
  font-size: 0.78rem;
  line-height: 1.3;
  color: var(--fg);
}

.flight-plan-ask-feature__cta {
  align-self: flex-start;
  margin-top: 0.35rem;
  padding: 0.55rem 1rem;
  border-radius: 8px;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: var(--surface);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
}

.flight-plan-ask-feature__cta:hover,
.flight-plan-ask-feature__cta:focus-visible {
  filter: brightness(1.05);
  text-decoration: none;
}

.home-whats-new ul {
  margin: 0.6rem 0 0;
}

.race2026-leg-matrix {
  margin-top: 1rem;
}

.race2026-lineup-transition-note {
  margin: 1.5rem 0 1.75rem;
}

.race2026-lineup-reveal-wrap {
  animation: race2026-lineup-reveal-in 320ms ease-out;
}

.race2026-lineup-reveal {
  margin: 0.75rem 0 1rem;
}

.race2026-lineup-reveal__title {
  margin: 0;
}

.race2026-lineup-reveal__sub,
.race2026-lineup-reveal__meta {
  margin: 0.35rem 0 0;
  color: var(--muted);
}

.race2026-lineup__table tr.race2026-lineup__edge-leg td:first-child {
  font-weight: 700;
}

.race2026-lineup__notes-cell {
  vertical-align: top;
  font-size: 0.92rem;
  line-height: 1.4;
  white-space: normal;
  min-width: 7rem;
}

.race2026-lineup__notes-empty {
  color: var(--muted);
  opacity: 0.55;
}

@keyframes race2026-lineup-reveal-in {
  from {
    opacity: 0;
    transform: translateY(2px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.race2026-admin-panel {
  margin-top: 1rem;
}

.race2026-admin-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  margin-bottom: 1rem;
}

.race2026-admin-controls label {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.race2026-admin-unassigned {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  border-radius: 6px;
  border: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.12));
  background: rgba(0, 0, 0, 0.03);
}

.race2026-admin-unassigned__heading {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.race2026-admin-unassigned__summary {
  margin: 0;
  font-size: 0.88rem;
  color: var(--muted);
}

.race2026-admin-table input[type="text"],
.race2026-admin-table select {
  width: 100%;
  min-width: 10rem;
}

.race2026-admin__leg-label {
  font-weight: 600;
}

.race2026-admin__notes-display {
  color: var(--muted);
  font-size: 0.88rem;
}

.race2026-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
  margin: 0 0 0.35rem;
}

.race2026-admin-actions button {
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.08);
}

.race2026-admin-draft-status {
  margin: 0 0 0.5rem;
  min-height: 1.25em;
  font-size: 0.86rem;
  color: var(--muted);
}

.race2026-admin-draft-status--success {
  color: var(--muted);
}

.race2026-admin-draft-status--error {
  color: #b42318;
  font-weight: 600;
}

/* Admin page: section jump + collapsible secondary panels */
.race2026-admin-toc {
  margin: 0.75rem auto 0.5rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.race2026-admin-toc__title {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--ink);
}

.race2026-admin-toc__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
}

.race2026-admin-toc__list li {
  margin: 0;
}

.race2026-admin-toc__list a {
  display: inline-block;
  padding: 0.3rem 0.55rem;
  border: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.12));
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--ink);
  background: var(--table-hover, rgba(0, 0, 0, 0.03));
}

.race2026-admin-toc__list a:hover {
  border-color: var(--border);
  background: var(--surface);
}

.race2026-admin-collapsible {
  margin: 0;
  padding: 0;
  border: 0;
}

.race2026-admin-collapsible > summary {
  list-style: none;
  cursor: pointer;
}

.race2026-admin-collapsible > summary::-webkit-details-marker {
  display: none;
}

.race2026-admin-collapsible > summary::before {
  content: "▸";
  display: inline-block;
  margin-right: 0.35rem;
  font-size: 0.75rem;
  vertical-align: 0.08em;
  transition: transform 0.12s ease;
}

.race2026-admin-collapsible[open] > summary::before {
  transform: rotate(90deg);
}

.race2026-admin-collapsible__summary {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  padding: 0.75rem var(--block-padding-x) 0.35rem;
}

.race2026-admin-collapsible__summary > h2 {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 1.25rem;
  line-height: 1.25;
}

.race2026-admin-collapsible > *:not(summary):not(.table-panel__scroll):not(.tp-modal):not(.race2026-admin-back-to-top) {
  padding-left: var(--block-padding-x);
  padding-right: var(--block-padding-x);
  box-sizing: border-box;
}

.race2026-admin-back-to-top {
  margin: 0.75rem 0 0.35rem;
  padding: 0 var(--block-padding-x) 0.65rem;
  text-align: right;
  font-size: 0.86rem;
}

.race2026-admin-back-to-top a {
  color: var(--muted);
  font-weight: 600;
}

/* Race 2026 team travel (public JSON; scaffold) */
.race2026-travel-panel {
  margin-top: 1.25rem;
}

.race2026-travel__intro-note {
  margin-top: 0.35rem;
  color: var(--muted, #5c5348);
}

.race2026-travel-root {
  margin-top: 0.75rem;
}

.race2026-travel-placeholder {
  margin: 0;
  padding: 1rem 1.1rem;
  border-radius: 6px;
  background: var(--panel-muted-bg, #f0ebe3);
  font-size: 0.98rem;
}

.race2026-travel-load-error {
  margin: 0.75rem 0 0;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  background: #fdecea;
  color: #5c1f1a;
  font-size: 0.95rem;
}

.race2026-travel-table {
  font-size: 0.9rem;
}

.race2026-travel-table th,
.race2026-travel-table td {
  white-space: nowrap;
}

.race2026-travel-table td:nth-child(4) {
  white-space: normal;
  max-width: 14rem;
}

.race2026-travel-submit-panel {
  margin-top: 1.25rem;
  width: calc(100% - (2 * var(--block-padding-x)));
  max-width: var(--content-max-width);
  margin-inline: auto;
}

.race2026-travel-intake-closed-banner {
  margin: 1rem 0 0.75rem;
  font-size: 1.05rem;
  line-height: 1.45;
}

.race2026-travel-intake-gate {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.race2026-travel-submit-form {
  display: grid;
  gap: 0.75rem 1rem;
  max-width: 44rem;
  padding: 0 var(--block-padding-x) var(--block-padding-x);
}

.race2026-travel-submit__section {
  margin: 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--border, #e0d8ce);
}

.race2026-travel-submit__section:first-of-type {
  padding-top: 0;
  border-top: 0;
}

.race2026-travel-submit__section-title {
  margin: 0 0 0.65rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text, #1a1a1a);
}

@media (min-width: 640px) {
  .race2026-travel-submit__section--cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 1.25rem;
    align-items: start;
  }

  .race2026-travel-submit__section--cols > .race2026-travel-submit__section-title {
    grid-column: 1 / -1;
    margin-bottom: 0.35rem;
  }

  .race2026-travel-submit__section--cols > .tp-field--span-full {
    grid-column: 1 / -1;
  }
}

.tp-field--span-full {
  min-width: 0;
}

.race2026-travel-submit__instructions,
.race2026-travel-submit__tip,
.race2026-travel-submit__field-help {
  margin: 0.25rem 0 0;
  font-size: 0.92rem;
  color: var(--muted, #5c5348);
}

.race2026-travel-submit__warn {
  font-size: 0.92rem;
  color: var(--muted, #5c5348);
}

.race2026-travel-submit__waiver-status {
  margin: 0 0 0.35rem;
  font-weight: 600;
}

.race2026-travel-submit-actions {
  margin-top: 0.5rem;
}

.race2026-travel-submit-success {
  margin: 0 0 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  background: #e8f5e9;
  color: #1b3d1f;
  font-size: 0.95rem;
}

.race2026-travel-submit-success a {
  word-break: break-all;
}

.tp-field--inline-group {
  display: grid;
  gap: 0.5rem 1rem;
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 520px) {
  .tp-field--inline-group {
    grid-template-columns: 1fr;
  }
}

.race2026-travel-admin-root {
  margin-top: 0.5rem;
}

.race2026-travel-admin__copy {
  font-size: 0.82rem;
  white-space: nowrap;
}

.race2026-profile__race-age {
  margin: 0.25rem 0 0.5rem;
  font-size: 0.92rem;
  color: var(--muted, #5c5348);
}

.race2026-profile__race-age-value {
  font-weight: 600;
  color: var(--text, #1a1a1a);
}

.race2026-travel-admin__scaffold-note {
  margin: 0 0 0.5rem;
  padding: 0.65rem 0.85rem;
  border-radius: 6px;
  background: var(--panel-muted-bg, #f0ebe3);
  font-size: 0.95rem;
}

.race2026-travel-admin__hint {
  margin: 0 0 0.75rem;
  color: var(--muted, #5c5348);
}

.race2026-travel-admin__export {
  margin-bottom: 0.75rem;
}

.race2026-travel-admin__csv-btn {
  opacity: 0.55;
  cursor: not-allowed;
}

.race2026-travel-admin__table {
  font-size: 0.82rem;
}

.race2026-travel-admin__table th,
.race2026-travel-admin__table td {
  padding: 0.5rem 0.65rem;
  vertical-align: top;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  max-width: 11rem;
}

.race2026-travel-admin__table th {
  white-space: nowrap;
  max-width: none;
}

.race2026-travel-admin__table td:first-child,
.race2026-travel-admin__table th:first-child {
  max-width: 8rem;
}

.race2026-travel-admin__table .race2026-travel-admin__copy {
  white-space: nowrap;
}

.race2026-travel-admin__runner {
  text-align: left;
  font-weight: 600;
}

.race2026-travel-admin__cell {
  color: var(--muted, #5c5348);
}

.race2026-travel-admin__status {
  font-size: 0.85rem;
  color: var(--muted, #5c5348);
}

/* Race 2026 trip expenses (team ledger) */
.race2026-expenses-panel {
  margin-top: 1.25rem;
}

.race2026-expenses-total {
  margin-bottom: 0.75rem;
}

.race2026-expenses-pending {
  margin: 1rem 0;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  background: var(--panel-muted-bg, #f0ebe3);
  font-size: 0.95rem;
}

.race2026-expenses-admin-form {
  display: grid;
  gap: 0.75rem 1rem;
  max-width: 36rem;
  margin-bottom: 1.5rem;
}

.race2026-expenses-admin-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
}

.race2026-expenses-admin__sub {
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
  font-size: 1.05rem;
}

.race2026-expenses-admin__settlement {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--hairline, #d8d0c4);
  border-radius: 6px;
}

.race2026-expenses-admin__settlement-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
}

.race2026-expenses-admin__settlement-note {
  margin: 0.35rem 0 0 1.75rem;
  color: var(--muted, #5c5348);
}

.race2026-expenses-admin-split {
  border: none;
  padding: 0;
  margin: 0;
}

.race2026-expenses-admin-split legend {
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.race2026-expenses-admin-checkboxes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  margin-top: 0.5rem;
}

.race2026-expenses-admin-check {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.95rem;
}

.race2026-expenses-admin-table {
  font-size: 0.9rem;
}

.race2026-expenses-admin-table td small {
  display: block;
  max-width: 18rem;
  white-space: normal;
}

.race2026-expenses-summary-table th,
.race2026-expenses-summary-table td {
  white-space: nowrap;
}

.race2026-leg-matrix__note {
  margin: 0 0 0.75rem;
  color: var(--muted);
}

.race2026-leg-matrix__scroll {
  overflow-x: auto;
}

.race2026-leg-matrix__table th:first-child,
.race2026-leg-matrix__table td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--table-head);
}

.race2026-leg-matrix__table tbody th {
  color: var(--ink);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.8rem;
}

.race2026-leg-matrix__table td {
  min-width: 4.2rem;
  white-space: normal;
  line-height: 1.35;
}

.race2026-leg-matrix__table td.race2026-leg-matrix__hit {
  background: #4b515a;
  color: #f6f7f9;
  font-weight: 600;
}

.race2026-leg-matrix__table td.race2026-leg-matrix__none {
  color: var(--faint);
  font-style: italic;
}

/* Override global table zebra/hover for this matrix only. */
table.data-table.race2026-leg-matrix__table tbody tr td {
  background: transparent;
}

table.data-table.race2026-leg-matrix__table tbody tr:hover td {
  background: transparent;
}

/* Keep filled experience cells dark/readable in all states. */
table.data-table.race2026-leg-matrix__table tbody tr td.race2026-leg-matrix__hit,
table.data-table.race2026-leg-matrix__table tbody tr:hover td.race2026-leg-matrix__hit {
  background: #4b515a;
  color: #f6f7f9;
}

table.data-table.race2026-leg-matrix__table tbody tr td.race2026-leg-matrix__hit--assigned,
table.data-table.race2026-leg-matrix__table tbody tr:hover td.race2026-leg-matrix__hit--assigned {
  background: #3d4450;
  box-shadow: inset 3px 0 0 0 rgba(130, 168, 220, 0.45);
}

.race2026-live-root {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 3vw, 2rem);
  max-width: var(--content-max-width, 56rem);
  margin: 0 auto 2rem;
  padding: 0 var(--block-padding-x, 1rem);
}

.race2026-live__status-panel {
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  box-shadow: 0 1px 3px rgba(16, 22, 35, 0.06);
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
}

.race2026-live__status-top .race2026-live__spr {
  margin: 0.08rem 0;
}

.race2026-live__spr {
  margin: 0.1rem 0;
  line-height: 1.45;
}

.race2026-live__spr-label {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--faint);
}

.race2026-live__spr-value {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
}

.race2026-live__status-primary {
  margin: 0.5rem 0 0.35rem;
  padding-top: 0.45rem;
  border-top: 1px solid var(--border);
}

.race2026-live__status-times {
  margin: 0;
  padding: 0.45rem 0 0;
  border-top: 1px solid rgba(99, 103, 112, 0.18);
}

.race2026-live__status-times .race2026-live__spr {
  margin: 0.06rem 0;
  font-size: 0.74rem;
  line-height: 1.45;
}

.race2026-live__status-times .race2026-live__spr-label {
  font-size: 0.72rem;
  color: var(--faint);
}

.race2026-live__status-times .race2026-live__spr-value {
  font-size: 0.74rem;
  font-weight: 400;
  color: var(--muted);
}

.race2026-live__meta-link {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
}

.race2026-live__status-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.65rem;
  margin: 0;
}

.race2026-live__status-update {
  font-size: 0.84rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink);
}

.race2026-live__badge {
  display: inline-block;
  padding: 0.22rem 0.65rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid transparent;
}

.race2026-live__badge--fresh {
  background: rgba(63, 110, 136, 0.12);
  border-color: rgba(63, 110, 136, 0.35);
  color: #2f5568;
}

.race2026-live__badge--stale {
  background: rgba(181, 138, 48, 0.14);
  border-color: rgba(181, 138, 48, 0.45);
  color: #6b5420;
}

.race2026-live__badge--delayed {
  background: rgba(100, 120, 150, 0.13);
  border-color: rgba(100, 120, 150, 0.35);
  color: #3f516c;
}

.race2026-live__badge--error {
  background: rgba(139, 41, 66, 0.12);
  border-color: rgba(139, 41, 66, 0.35);
  color: #8b2942;
}

.race2026-live__fallback-note {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--muted);
}

.race2026-live__insights {
  margin: 0;
  padding: 1rem 1.15rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.race2026-live__card {
  box-shadow: 0 2px 8px rgba(16, 22, 35, 0.07);
  border-color: var(--border-strong, var(--border));
}

.race2026-live__card--info {
  box-shadow: none;
  background: var(--surface);
  border-color: var(--border);
  opacity: 0.97;
}

.race2026-live__info-heading {
  margin: 0 0 0.4rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.01em;
}

.race2026-live__info-note {
  margin: 0;
  font-size: 0.82rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  color: var(--muted);
}

.race2026-live__info-sub {
  margin: 0.4rem 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--faint);
}

.race2026-live__leg-progress {
  margin: 0 0 0.65rem;
  padding: 0.35rem 0.55rem;
  max-width: max-content;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--muted);
  background: rgba(63, 110, 136, 0.08);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(63, 110, 136, 0.15);
}

.race2026-live__kv-stack {
  margin-top: 0.15rem;
}

.race2026-live__kv-group {
  padding-bottom: 0.7rem;
  margin-bottom: 0.7rem;
  border-bottom: 1px solid rgba(99, 103, 112, 0.22);
}

.race2026-live__kv-group:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}

.race2026-live__kv {
  display: grid;
  gap: 0.65rem;
}

@media (min-width: 36rem) {
  .race2026-live__kv {
    grid-template-columns: minmax(10rem, 38%) 1fr;
    align-items: baseline;
    column-gap: 1rem;
    row-gap: 0.65rem;
  }

  .race2026-live__kv-row {
    display: contents;
  }

  .race2026-live__kv-label {
    grid-column: 1;
  }

  .race2026-live__kv-value {
    grid-column: 2;
    text-align: right;
  }
}

@media (max-width: 35.99rem) {
  .race2026-live__kv-row {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid var(--border);
  }

  .race2026-live__kv-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

.race2026-live__kv-label {
  font-size: 0.82rem;
  color: var(--faint);
}

.race2026-live__kv-value {
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

.race2026-live__kv-value--emph {
  font-weight: 600;
}

.race2026-live__delta--ahead {
  color: #2d6a4f;
}

.race2026-live__delta--behind {
  color: #8b2942;
}

.race2026-live__delta--neutral {
  color: var(--ink);
}

.race2026-live__projection {
  margin-top: 1.35rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(99, 103, 112, 0.28);
}

.race2026-live__projection-main {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--ink);
}

.race2026-live__projection-label {
  font-weight: 600;
  margin-right: 0.25rem;
}

.race2026-live__projection-main .race2026-live__num {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.race2026-live__projection-sub {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--faint);
}

.race2026-live__insights h2 {
  margin: 0 0 0.65rem;
  font-size: 1rem;
  font-weight: 600;
}

.race2026-live__insights p:not(.race2026-live__info-note):not(.race2026-live__info-sub):not(.race2026-live__projection-main):not(.race2026-live__projection-sub):not(.race2026-live__leg-progress) {
  margin: 0.45rem 0;
  line-height: 1.55;
}

.race2026-live__card--table .table-panel {
  margin-top: 0.35rem;
}

.race2026-live__status {
  margin: 1rem 0;
  color: var(--muted);
}

.race2026-live__status--error {
  color: #8b2942;
}

.race2026-live__empty pre {
  margin: 0.75rem 0;
  padding: 0.75rem 1rem;
  overflow-x: auto;
  font-size: 0.8rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

table.data-table tr.race2026-live__bl-row td {
  background: rgba(139, 41, 66, 0.08);
  font-weight: 600;
}

/* —— Team photos (upload + gallery) —— */
.tp-banner {
  margin: 0.75rem 0 0;
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
  font-size: 0.9rem;
}

.tp-banner--warn {
  background: #faf6ef;
  border-color: #e0d3bc;
  color: var(--ink);
}

/* Gallery / upload switcher — visible without opening the mobile nav drawer */
.tp-photos-subnav {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--content-max-width);
  margin: 0.65rem auto 0.75rem;
  padding-inline: var(--block-padding-x);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}

.team-photos-gallery-page .tp-photos-subnav {
  margin-bottom: 0.4rem;
}

.tp-photos-subnav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: 0.45rem 0.5rem;
  box-sizing: border-box;
  font: inherit;
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  color: var(--ink);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.tp-photos-subnav__link:hover,
.tp-photos-subnav__link:focus-visible {
  border-color: var(--accent-soft-border);
  background: color-mix(in srgb, var(--surface) 88%, var(--accent-bg));
}

.tp-photos-subnav__link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.tp-photos-subnav__link--current {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.tp-photos-subnav__link--current:hover,
.tp-photos-subnav__link--current:focus-visible {
  filter: brightness(1.06);
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.tp-coming-soon-wrap {
  position: relative;
}

.tp-coming-soon {
  position: absolute;
  top: 0.35rem;
  right: 0;
  margin: 0;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  border: 1px solid var(--accent-soft-border);
  background: rgba(94, 102, 112, 0.12);
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.tp-panel {
  max-width: 720px;
  margin-top: 1.25rem;
}

.team-photos-gallery-page .tp-panel.tp-panel--filters {
  max-width: var(--content-max-width);
  margin-top: 0.45rem;
  margin-left: auto;
  margin-right: auto;
}

.team-photos-gallery__intro {
  margin-bottom: 0.25rem;
}

.team-photos-gallery__intro .lede {
  margin-bottom: 0.45rem;
}

.team-photos-gallery__intro .tp-banner {
  margin-top: 0.35rem;
}

.tp-gallery-empty-msg {
  margin: 0.5rem auto 0;
  max-width: var(--content-max-width);
  padding-inline: var(--block-padding-x);
}

.tp-filters-disclosure {
  border: 1px solid rgba(99, 103, 112, 0.18);
  border-radius: var(--radius-sm);
  background: var(--surface);
  box-shadow: none;
}

.tp-filters-disclosure--admin {
  margin-top: 0.65rem;
}

.tp-filters-disclosure__summary {
  cursor: pointer;
  padding: 0.42rem 0.65rem;
  min-height: 2.45rem;
  box-sizing: border-box;
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--muted);
  list-style-position: outside;
}

.tp-filters-disclosure__summary::-webkit-details-marker {
  color: var(--muted);
}

.tp-filters-disclosure[open] > .tp-filters-disclosure__summary {
  border-bottom: 1px solid rgba(99, 103, 112, 0.14);
}

.tp-filters--disclosure-body {
  padding: 0.55rem 0.65rem 0.65rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  align-items: flex-end;
}

@media (max-width: 639px) {
  .tp-filters--disclosure-body .tp-field--inline {
    flex: 1 1 100%;
    min-width: 0;
  }
}

.tp-subheading {
  margin: 1.25rem 0 0.5rem;
  font-size: 1.05rem;
  font-weight: 650;
}

.tp-muted {
  color: var(--muted);
  font-size: 0.9rem;
}

.tp-dropzone {
  margin-top: 0.5rem;
  padding: 1.25rem 1rem;
  border: 2px dashed var(--border-strong);
  border-radius: var(--radius);
  background: var(--surface);
  text-align: center;
}

.tp-dropzone--active {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.tp-inline-file {
  cursor: pointer;
  font-weight: 600;
}

.tp-inline-file input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
}

.tp-fake-link {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tp-form-grid {
  display: grid;
  gap: 0.75rem 1rem;
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 640px) {
  .tp-form-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.tp-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.9rem;
  width: 100%;
  min-width: 0;
}

.tp-field--caption {
  grid-column: 1 / -1;
}

.tp-label {
  font-weight: 600;
  color: var(--muted);
}

.tp-field textarea,
.tp-field input[type="text"],
.tp-field input[type="number"],
.tp-field select {
  font: inherit;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #fff;
  color: var(--ink);
  width: 100%;
  min-height: 2.45rem;
}

.tp-field textarea {
  resize: vertical;
  line-height: 1.4;
  min-height: 5.2rem;
}

.tp-actions {
  margin-top: 0.9rem;
}

.tp-upload-btn {
  appearance: none;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--accent);
  color: #fff;
  padding: 0.6rem 0.9rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.tp-upload-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.tp-queue {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
}

.tp-queue__item {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.25rem 0.75rem;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.9rem;
}

.tp-queue__name {
  font-weight: 500;
  word-break: break-word;
}

.tp-queue__status {
  color: var(--muted);
  text-align: right;
  font-size: 0.85rem;
}

.tp-queue__retry {
  justify-self: end;
  margin-left: auto;
  font-size: 0.75rem;
  padding: 0.2rem 0.5rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
}

.tp-queue__item--ok .tp-queue__status {
  color: #2d6a4f;
}

.tp-queue__item--error .tp-queue__status {
  color: #8b2942;
}

.tp-queue__item--uploading .tp-queue__status {
  color: var(--ink);
}

.tp-queue__bar {
  grid-column: 1 / -1;
  height: 4px;
  background: var(--border);
  border-radius: 2px;
  overflow: hidden;
}

.tp-queue__bar-fill {
  height: 100%;
  width: 0%;
  background: var(--accent);
  transition: width 0.15s ease;
}

.tp-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: flex-end;
}

.race2026-admin-photos__filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
  margin-top: 0.35rem;
}

.tp-field--inline {
  min-width: 8rem;
}

.race2026-admin-photos__filters .tp-field--inline {
  min-width: 0;
}

@media (max-width: 720px) {
  .race2026-admin-photos__filters {
    grid-template-columns: 1fr;
    gap: 0.7rem;
  }
}

.tp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 0.85rem;
  margin-top: 1rem;
  max-width: var(--content-max-width);
  align-items: start;
}

.team-photos-gallery-page .tp-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem 0.55rem;
  margin-top: 0.5rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 420px) {
  .team-photos-gallery-page .tp-grid {
    gap: 0.55rem 0.65rem;
  }
}

@media (min-width: 480px) {
  .team-photos-gallery-page .tp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem 0.75rem;
  }
}

@media (min-width: 900px) {
  .team-photos-gallery-page .tp-grid {
    grid-template-columns: repeat(auto-fill, minmax(158px, 1fr));
    gap: 0.75rem 0.9rem;
    margin-top: 0.65rem;
  }
}

.tp-card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  contain: layout paint;
  content-visibility: auto;
  contain-intrinsic-size: 170px;
}

.tp-card__btn {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: none;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: inherit;
}

.tp-card__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.tp-card__btn img {
  display: block;
  width: 100%;
  height: 152px;
  object-fit: cover;
  background: var(--logo-mist);
}

/* Image-only cards: square crop via a wrapper (reliable on iOS; aspect-ratio on <img> alone is inconsistent). */
.team-photos-page .tp-card--image-only .tp-card__btn {
  line-height: 0;
}

.team-photos-page .tp-card--image-only .tp-card__media {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--logo-mist);
}

.team-photos-page .tp-card--image-only .tp-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  opacity: 0.01;
  transform: scale(1.012);
  transition: opacity 200ms ease, transform 240ms ease;
  will-change: opacity, transform;
}

.team-photos-page .tp-card--image-only .tp-card__media img.tp-tile-img--ready {
  opacity: 1;
  transform: scale(1);
}

.team-photos-page .tp-card--image-only .tp-card__media img.tp-tile-img--error {
  opacity: 0.9;
  transform: scale(1);
}

.team-photos-gallery-page .tp-card {
  align-self: start;
}

.team-photos-gallery-page .tp-card {
  align-self: start;
}

.team-photos-page .tp-card__btn,
.team-photos-page .tp-card__delete,
.team-photos-page .tp-field select,
.team-photos-page .tp-field input,
.team-photos-page .tp-field textarea {
  touch-action: manipulation;
}

.tp-card__cap {
  padding: 0.4rem 0.5rem;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.35;
  min-height: 2.6rem;
}

.tp-card__delete {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  font-size: 0.72rem;
  padding: 0.2rem 0.45rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: rgba(46, 49, 54, 0.72);
  color: #fff;
  cursor: pointer;
}

.tp-card__delete:hover {
  background: rgba(46, 49, 54, 0.9);
}

.tp-modal {
  position: fixed;
  inset: 0;
  z-index: 5000;
  background: rgba(20, 22, 27, 0.64);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
}

.tp-modal[hidden] {
  display: none !important;
}

.tp-modal.tp-modal--js {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 240ms ease, visibility 240ms ease;
}

.tp-modal.tp-modal--js.tp-modal--open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.tp-modal__inner {
  position: relative;
  max-width: min(96vw, 960px);
  max-height: 92svh;
  max-height: 92dvh;
  overflow: auto;
  background: var(--surface);
  border-radius: var(--radius);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
  padding: 0.75rem 1rem 1rem;
  transform: translateY(8px) scale(0.992);
  opacity: 0;
  transition: transform 240ms ease, opacity 220ms ease;
}

.tp-modal.tp-modal--js.tp-modal--open .tp-modal__inner {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.tp-modal__inner img {
  display: block;
  max-width: 100%;
  max-height: min(70vh, 720px);
  width: auto;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 180ms ease, transform 220ms ease;
}

.tp-modal__inner img.tp-modal__img--ready {
  opacity: 1;
  transform: translateY(0);
}

.tp-modal__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: 1px solid rgba(255, 255, 255, 0.6);
  background: rgba(20, 22, 27, 0.62);
  color: #fff;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.tp-modal__nav:disabled {
  opacity: 0.45;
  cursor: default;
}

.tp-modal__nav--prev {
  left: 0.45rem;
}

.tp-modal__nav--next {
  right: 0.45rem;
}

.tp-modal__close {
  position: sticky;
  top: 0;
  float: right;
  z-index: 2;
  border: none;
  background: var(--surface);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  padding: 0.15rem 0.45rem;
  border-radius: var(--radius-sm);
}

.tp-modal__meta {
  clear: both;
  margin-top: 0.75rem;
  font-size: 0.9rem;
  color: var(--ink);
}

.tp-modal__meta p {
  margin: 0.35rem 0;
}

@media (prefers-reduced-motion: reduce) {
  .team-photos-page .tp-card--image-only .tp-card__media img,
  .tp-modal.tp-modal--js,
  .tp-modal__inner,
  .tp-modal__inner img {
    transition: none;
    transform: none;
  }
}

/* Run of show page */
.ros-scan-tip {
  margin: 0.35rem 0 0.55rem;
  color: var(--muted);
  max-width: 52rem;
}

.ros-jump {
  margin: 0.65rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.5rem;
  font-size: 0.84rem;
}

.ros-jump a {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.55rem;
  min-height: 2.75rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--muted);
  text-decoration: none;
  font-weight: 600;
}

.ros-jump a:hover {
  color: var(--ink);
  background: var(--table-hover);
}

.ros-table-wrap {
  margin-top: 0.9rem;
  border: 1px solid #cfd5ce;
  border-radius: 6px;
  background: #fff;
  isolation: isolate;
  overflow: hidden;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ros-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  table-layout: auto;
  font-size: 0.9rem;
}

.ros-th,
.ros-col {
  padding: 0.65rem var(--block-padding-x);
  vertical-align: top;
  border-bottom: 1px solid #dbe0da;
  border-right: 1px solid #dbe0da;
}

.ros-th:last-child,
.ros-col:last-child {
  border-right: 0;
}

.ros-th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #e3e8e2;
  color: #414743;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: left;
}

.ros-th--time,
.ros-col--time {
  width: 18%;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ros-th--time {
  position: sticky;
  left: 0;
  z-index: 12;
  background: #e3e8e2;
  box-shadow: 2px 0 0 #dbe0da, 10px 0 14px -14px rgba(24, 36, 28, 0.6);
}

.ros-col--time {
  position: sticky;
  left: 0;
  z-index: 8;
  background: #fff;
  box-shadow: 2px 0 0 #dbe0da, 10px 0 14px -14px rgba(24, 36, 28, 0.5);
}

.ros-th--interval,
.ros-col--interval {
  width: 10%;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  white-space: nowrap;
}

.ros-th--type,
.ros-col--type {
  width: 10%;
  white-space: nowrap;
}

.ros-th--activity,
.ros-col--activity {
  width: 34%;
}

.ros-th--notes,
.ros-col--notes {
  width: 22%;
}

.ros-th--link,
.ros-col--link {
  width: 6%;
  white-space: nowrap;
}

.ros-col--activity {
  font-size: 0.94rem;
  font-weight: 650;
  line-height: 1.42;
  color: #1f2923;
}

.ros-type-tag {
  display: inline-block;
  padding: 0.08rem 0.32rem;
  border-radius: 999px;
  border: 1px solid #d0d8cf;
  background: #f5f7f4;
  color: #47514a;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.2;
}

.ros-type-tag--leg_start {
  border-color: #9fd5bd;
  background: #eef9f3;
  color: #1f6242;
}

.ros-type-tag--departure {
  border-color: #b8cbe0;
  background: #f1f6fc;
  color: #30567c;
}

.ros-type-tag--arrival {
  border-color: #c3cfdd;
  background: #f4f7fb;
  color: #3d5978;
}

.ros-type-tag--meal {
  border-color: #e7cfa9;
  background: #fff8ec;
  color: #7f5a23;
}

.ros-type-tag--hotel {
  border-color: #d2bde8;
  background: #f9f3ff;
  color: #694190;
}

.ros-type-tag--daylight {
  border-color: #c9c9e6;
  background: #f7f7ff;
  color: #50528b;
}

.ros-col--activity a,
.ros-col--link a {
  color: #2f587f;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ros-col--notes {
  font-size: 0.88rem;
  color: #4b524d;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.ros-cell__time-main {
  display: inline-block;
  font-weight: 650;
  color: #2b2f2c;
}

.ros-cell__time-sub {
  display: none;
}

.ros-table tbody tr.ros-row:nth-child(even) {
  background: #f8faf8;
}

.ros-table tbody tr.ros-row:nth-child(even) .ros-col--time {
  background: #f8faf8;
}

.ros-day-row th {
  padding: 0.5rem 0.65rem;
  border-top: 2px solid #c0c8bf;
  border-bottom: 1px solid #c0c8bf;
  border-right: 0;
  background: #d9ded8;
  color: #1f2923;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: left;
}

.ros-row {
  border-left: 3px solid transparent;
}

.ros-row--placeholder .ros-col--activity {
  color: #2a5c44;
}

.ros-row--leg_start {
  border-left-color: #2f8f64;
}

.ros-row--departure {
  border-left-color: #486f9a;
}

.ros-row--arrival {
  border-left-color: #6b7f99;
}

.ros-row--meal {
  border-left-color: #ad7b2f;
}

.ros-row--hotel {
  border-left-color: #8b5fb0;
}

.ros-row--is-current,
.ros-row--is-next {
  background: #ecf3ff !important;
}

.ros-row--is-current .ros-col--time,
.ros-row--is-next .ros-col--time {
  font-weight: 700;
  color: #224d7a;
  background: #ecf3ff !important;
}

.ros-now-next-badge {
  display: inline-block;
  margin: 0 0.42rem 0.18rem 0;
  padding: 0.08rem 0.32rem;
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #244966;
  background: #dcecff;
  vertical-align: middle;
}

.site-back-top,
.ros-back-top {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right, 0px));
  bottom: max(1rem, env(safe-area-inset-bottom, 0px));
  z-index: 30;
  display: inline-block;
  padding: 0.45rem 0.7rem;
  border-radius: var(--radius-sm);
  border: 1px solid #c3cbc2;
  background: var(--surface);
  color: var(--ink);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: var(--shadow-sm);
}

@media (max-width: 760px) {
  body.rpe-page main {
    padding-bottom: 1.5rem;
  }

  .rpe-workbench {
    padding: 0.7rem 0.65rem 0.8rem;
  }

  .rpe-map-wrap {
    height: clamp(360px, 62svh, 680px);
    height: clamp(360px, 62dvh, 680px);
  }

  body.rpe-page.rpe-leg-open .rpe-map-wrap {
    height: clamp(280px, 50svh, 560px);
    height: clamp(280px, 50dvh, 560px);
  }

  .table-filter-input,
  .results-year-select,
  .analytics-controls select,
  .rpe-controls input[type="datetime-local"],
  .tp-field textarea,
  .tp-field input[type="text"],
  .tp-field input[type="number"],
  .tp-field select {
    font-size: 16px;
  }

  .ros-table { font-size: 0.86rem; }

  .ros-th,
  .ros-col {
    padding: 0.82rem 0.52rem;
  }

  .ros-cell__time-main {
    display: block;
  }

  .ros-cell__time-sub {
    display: block;
    margin-top: 0.18rem;
    font-size: 0.76rem;
    color: var(--muted);
    font-weight: 500;
    white-space: normal;
  }

  .ros-col--notes { font-size: 0.82rem; }

  .ros-type-tag {
    font-size: 0.62rem;
    padding: 0.08rem 0.3rem;
  }
}

@media (max-width: 560px) {
  body.map-landing.map-landing--document .map-frame-wrap--landing iframe.course-map-frame {
    /* Smaller than desktop clamp; still reduces first-paint jump before postMessage height. */
    min-height: clamp(280px, 56vh, 520px);
  }

  .tp-coming-soon {
    position: static;
    display: block;
    margin: 0 0 0.65rem;
    text-align: center;
  }

  .tp-grid {
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
    gap: 0.7rem;
  }

  .tp-card:not(.tp-card--image-only) .tp-card__btn img {
    height: 136px;
  }

  .team-photos-gallery-page .tp-grid {
    align-items: start;
  }
}

/* Page-scoped alignment hotfixes: keep one horizontal rhythm per page. */
body.race2026-hub-page .site-breadcrumbs,
body.race2026-hub-page .race-hub-intro,
body.race2026-hub-page .race2026-your-schedule,
body.race2026-hub-page .race2026-command-centre,
body.race2026-hub-page .race-hub-orient,
body.race2026-hub-page .race2026-hub-actions {
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
}

.team-ref-conditions__intro {
  margin: 0 0 0.55rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--muted);
}

body.race2026-team-page .site-breadcrumbs,
body.race2026-team-page .page-intro,
body.race2026-team-page .team-ref-grid,
body.race2026-team-page .team-ref-downloads {
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
}

body.race2026-roster-page .site-breadcrumbs,
body.race2026-roster-page .page-intro#roster-top,
body.race2026-roster-page .race2026-profiles {
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
}

body.race2026-team-page .team-ref-grid > .team-ref-card {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

/* Organizer updates — static bulletin from build JSON */
body.race2026-organizer-updates-page .site-breadcrumbs,
body.race2026-organizer-updates-page .page-intro,
body.race2026-organizer-updates-page .organizer-updates-feed {
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
}

.organizer-updates-intro {
  max-width: 42rem;
}

.organizer-updates-feed {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  padding: 0 var(--page-pad-x) 2.5rem;
}

.organizer-update-card {
  border: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.12));
  border-radius: 12px;
  background: var(--panel-bg, rgba(255, 255, 255, 0.55));
  padding: 1.15rem 1.25rem 1.35rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.organizer-update-card__header {
  margin-bottom: 0.65rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.1));
}

.organizer-update-card__title {
  font-size: 1.2rem;
  font-weight: 650;
  line-height: 1.25;
  margin: 0 0 0.4rem;
}

.organizer-update-card__meta {
  margin: 0;
  font-size: 0.88rem;
  color: var(--muted-fg, #555);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.35rem;
}

.organizer-update-card__time {
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}

.organizer-update-card__sep {
  color: var(--muted-fg, #888);
}

.organizer-update-card__sender {
  font-style: normal;
}

.organizer-update-card__attachment-note {
  margin: 0 0 0.85rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.85rem;
  border-radius: 8px;
  background: rgba(180, 140, 40, 0.12);
  border: 1px solid rgba(180, 140, 40, 0.28);
}

.organizer-update-card__body {
  width: 100%;
  max-width: min(100%, 100ch);
  font-size: 0.98rem;
  line-height: 1.55;
}

.organizer-update-card__p {
  margin: 0 0 0.75rem;
}

.organizer-update-card__p:last-child {
  margin-bottom: 0;
}

.organizer-update-card__subhead {
  font-size: 1.02rem;
  font-weight: 600;
  margin: 1rem 0 0.45rem;
}

.organizer-update-card__subhead:first-child {
  margin-top: 0;
}

.organizer-update-card__list {
  margin: 0 0 0.85rem 1.1rem;
  padding: 0;
}

.organizer-update-card__list li + li {
  margin-top: 0.35rem;
}

.organizer-update-card__link {
  word-break: break-word;
}

body.course-map-overview-page .site-breadcrumbs {
  width: min(calc(100% - (2 * var(--page-pad-x))), var(--map-content-max-width));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

body.course-map-overview-page .course-map-frame-wrap {
  position: relative;
}

body.course-map-overview-page .course-map-frame-wrap .course-map-frame-actions {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  z-index: 3;
  margin: 0;
  padding: 0;
}

/* Map + full-course profile share one briefing card; keep flex children from forcing page overflow. */
body.course-map-overview-page main.map-landing__main {
  max-width: 100%;
  min-width: 0;
}

body.course-map-overview-page .course-map-briefing-card {
  min-width: 0;
  max-width: 100%;
}

/* Full-course elevation sits inside the briefing card under the iframe (not a second outer card). */
body.course-map-overview-page .course-map-briefing-card .course-map-full-elevation {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  margin-top: 0.55rem;
  padding: 0.65rem 0.25rem 0.45rem;
  border-top: 1px solid var(--border);
  box-sizing: border-box;
}

/* Single-leg selection lives in the iframe; hide duplicate full-course block on the parent page. */
body.course-map-overview-page.course-map-overview--leg-selected .course-map-briefing-card .course-map-full-elevation {
  display: none;
}

body.course-map-overview-page .course-map-full-elevation__title {
  font-size: 1.06rem;
  font-weight: 650;
  margin: 0 0 0.35rem;
  letter-spacing: -0.01em;
}

body.course-map-overview-page .course-map-full-elevation__note {
  margin: 0 0 0.75rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted);
  max-width: 52ch;
}

body.course-map-overview-page .course-map-elevation-about {
  margin: 0.5rem 0 0;
  padding: 0;
  border: 0;
}

body.course-map-overview-page .course-map-elevation-about__summary {
  cursor: pointer;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--accent);
  list-style-position: outside;
}

body.course-map-overview-page .course-map-elevation-about .course-map-full-elevation__note {
  margin: 0.45rem 0 0;
  padding: 0 0 0 0.15rem;
}

body.course-map-overview-page .course-map-overview-notes__offline {
  margin: 0 0 0.65rem;
}

body.course-map-overview-page .course-map-overview-notes__briefing {
  margin: 0;
  padding: 0;
  border: 0;
}

body.course-map-overview-page .course-map-overview-notes__briefing-summary {
  cursor: pointer;
  font-size: 0.92rem;
  font-weight: 650;
  color: var(--ink);
  padding: 0.35rem 0;
}

body.course-map-overview-page .course-map-overview-notes__briefing .course-map-overview-notes__body {
  margin-top: 0.45rem;
  padding-bottom: 0.15rem;
}

@media (max-width: 720px) {
  body.course-map-overview-page .course-map-overview-intro {
    padding-top: 0.5rem;
    padding-bottom: 0.25rem;
  }

  body.course-map-overview-page .course-map-overview-intro .page-intro__subtitle {
    margin-bottom: 0.1rem;
  }

  body.course-map-overview-page .course-map-full-elevation__title {
    margin-bottom: 0.25rem;
  }
}

body.course-map-overview-page .course-map-full-elevation__figure {
  margin: 0.35rem 0 0;
  max-width: 100%;
  min-width: 0;
}

body.course-map-overview-page .course-map-full-elevation__img {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
}

body.course-map-overview-page .course-map-full-elevation__fullsize-link {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0;
  margin: 0;
  border-radius: var(--radius-sm);
  cursor: zoom-in;
  background: transparent;
  font: inherit;
  text-align: left;
  line-height: 0;
  box-sizing: border-box;
  text-decoration: none;
  color: inherit;
}

body.course-map-overview-page .course-map-full-elevation__fullsize-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

body.course-map-overview-page .course-map-full-elevation__figcaption {
  margin: 0.42rem 0 0;
  padding: 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: var(--muted);
}

body.course-map-overview-page .course-map-full-elevation__open-fullsize-caption {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

body.course-map-overview-page .course-map-full-elevation__open-fullsize-caption:hover {
  color: var(--accent-hover);
}

/* Secondary guidance below the map / briefing card. */
body.course-map-overview-page .course-map-overview-notes {
  width: min(calc(100% - (2 * var(--page-pad-x))), var(--map-content-max-width));
  max-width: 100%;
  min-width: 0;
  margin: 1rem auto 0;
  padding: 0.65rem var(--page-pad-x) 1.25rem;
  box-sizing: border-box;
}

body.course-map-overview-page .course-map-overview-notes__title {
  font-size: 0.82rem;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--faint);
  margin: 0 0 0.45rem;
}

body.course-map-overview-page .course-map-overview-notes__body {
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--muted);
}

body.course-map-overview-page .course-map-overview-notes__body .lede {
  font-size: 0.9rem;
  color: var(--muted);
  margin-top: 0;
}

body.course-map-overview-page .course-map-overview-notes__body small {
  font-size: 0.86rem;
  color: var(--muted);
}

body.course-map-overview-page .course-map-fullscreen-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(250, 250, 249, 0.95);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.72), 0 2px 8px rgba(0, 0, 0, 0.16);
  color: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
}

body.course-map-overview-page .course-map-fullscreen-btn:hover,
body.course-map-overview-page .course-map-fullscreen-btn:focus-visible {
  background: var(--surface);
  border-color: var(--border-strong);
}

body.course-map-overview-fullscreen-page .site-breadcrumbs {
  display: none;
}

body.course-map-overview-fullscreen-page .site-header {
  display: none;
}

body.course-map-overview-fullscreen-page.map-landing.map-landing--document {
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  overflow: hidden;
}

body.course-map-overview-fullscreen-page.map-landing.map-landing--document main.map-landing__main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
}

body.course-map-overview-fullscreen-page .course-map-fullscreen-shell {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

body.course-map-overview-fullscreen-page .course-map-fullscreen-topbar {
  display: flex;
  align-items: center;
  min-height: 2rem;
  padding: max(0.3rem, env(safe-area-inset-top, 0px)) max(0.5rem, env(safe-area-inset-right, 0px))
    0.2rem max(0.5rem, env(safe-area-inset-left, 0px));
}

body.course-map-overview-fullscreen-page .course-map-fullscreen-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.15rem;
  height: 1.85rem;
  padding: 0 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: rgba(250, 250, 249, 0.95);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.72), 0 2px 8px rgba(0, 0, 0, 0.14);
  color: inherit;
  text-decoration: none;
  font-size: 0.74rem;
  font-weight: 600;
}

body.course-map-overview-fullscreen-page .course-map-fullscreen-frame.map-frame-wrap--landing {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: var(--map-canvas);
}

body.map-landing.map-landing--document.course-map-overview-fullscreen-page
  .course-map-fullscreen-frame
  iframe.course-map-frame {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  flex: 1 1 auto;
  border: 0;
  border-radius: 0;
}

a,
button,
select {
  transition: background-color 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

@media (max-width: 760px) {
  a,
  button,
  select {
    min-height: 2.4rem;
  }

  main {
    overflow-x: clip;
  }
}

/*
 * Crew Notes admin (race-2026/admin.html body: team-photos-admin-page).
 * Scope to section.race2026-crew-notes-admin.
 */
body.team-photos-admin-page .race2026-crew-notes-admin h3.race2026-crew-notes-admin__sub {
  margin-top: 0.85rem;
  margin-bottom: 0.35rem;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-admin__hint {
  margin-top: 0.25rem;
  margin-bottom: 0.5rem;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-admin__location-hint {
  margin: 0.15rem 0 0.4rem;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-admin__location-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.45rem;
  position: relative;
  z-index: 1;
}

/*
 * Admin-only: desktop nav dropdown menus are position:absolute (see @media min-width 721px).
 * The race-2026 admin page keeps the Cabot 2026 <details> open; a tall menu can paint over
 * <main> while still stacking above it (header z-index 300), so clicks hit the menu shell
 * instead of in-page controls (e.g. Crew Notes "Pick from map"). Let clicks pass through
 * the non-interactive menu box; links keep pointer-events:auto.
 */
@media (min-width: 721px) {
  body.team-photos-admin-page .site-nav__menu {
    pointer-events: none;
  }

  body.team-photos-admin-page .site-nav__menu a {
    pointer-events: auto;
  }
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-map-picker-panel {
  margin-bottom: 0.55rem;
  border: 1px solid var(--border, #d8d6d3);
  border-radius: 8px;
  overflow: hidden;
  background: #eef1ee;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-map-picker-panel__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.4rem 0.45rem;
  border-bottom: 1px solid var(--border, #d8d6d3);
  background: rgba(250, 250, 249, 0.98);
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-basemap-btn {
  margin: 0;
  padding: 0.28rem 0.55rem;
  min-height: 2rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 6px;
  border: 1px solid var(--border, #d8d6d3);
  background: var(--surface, #fff);
  color: var(--muted, #555);
  cursor: pointer;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-basemap-btn[aria-pressed="true"] {
  color: var(--ink, #1a1a1a);
  border-color: var(--accent-soft-border, #9bb8d4);
  background: var(--accent-soft, #dcecff);
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-basemap-btn:focus-visible {
  outline: 2px solid var(--accent, #2a6fb0);
  outline-offset: 2px;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-map-picker-panel__canvas {
  height: 232px;
  width: 100%;
  min-height: 200px;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-map-picker-panel__status {
  margin: 0;
  padding: 0.35rem 0.5rem;
  font-size: 0.74rem;
  color: var(--muted, #555);
  background: rgba(250, 250, 249, 0.98);
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-admin__coords-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem 0.75rem;
  align-items: end;
}

@media (max-width: 720px) {
  body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-admin__coords-grid {
    grid-template-columns: 1fr;
  }
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-visible-fieldset {
  border: 1px solid var(--border, #d8d6d3);
  border-radius: 8px;
  padding: 0.5rem 0.65rem 0.6rem;
  margin: 0.35rem 0 0.25rem;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-visible-fieldset__legend {
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0 0.25rem;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-visible-fieldset__label {
  font-size: 0.82rem;
  line-height: 1.35;
}

body.team-photos-admin-page .race2026-crew-notes-inline-status {
  font-size: 0.82rem;
  margin: 0.35rem 0 0.15rem;
  padding: 0.35rem 0.45rem;
  border-radius: 6px;
}

body.team-photos-admin-page .race2026-crew-notes-inline-status--ok {
  color: #143d24;
  background: rgba(45, 107, 82, 0.12);
  border: 1px solid rgba(45, 107, 82, 0.35);
}

body.team-photos-admin-page .race2026-crew-notes-inline-status--error {
  color: #681a1a;
  background: rgba(189, 47, 53, 0.08);
  border: 1px solid rgba(189, 47, 53, 0.4);
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat {
  display: inline-block;
  font-size: 0.78rem;
  padding: 0.06rem 0.35rem 0.08rem;
  border-radius: 4px;
  border-left: 3px solid #5a6974;
  background: rgba(90, 105, 116, 0.08);
  white-space: nowrap;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--caution {
  border-left-color: #bd2f35;
  background: rgba(189, 47, 53, 0.08);
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--exchange {
  border-left-color: #2f6b52;
  background: rgba(47, 107, 82, 0.1);
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--food {
  border-left-color: #b85728;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--coffee {
  border-left-color: #80652e;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--bathroom {
  border-left-color: #4a8799;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--parking {
  border-left-color: #5d646e;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--hotel {
  border-left-color: #5c4a82;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--banquet {
  border-left-color: #4f55a8;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--party {
  border-left-color: #9e3058;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-cat--warmup_area {
  border-left-color: #3d7a6b;
  background: rgba(61, 122, 107, 0.1);
}

body.team-photos-admin-page .race2026-crew-notes-admin .maplibregl-ctrl-attrib-inner {
  font-size: 0.65rem;
}

body.team-photos-admin-page .race2026-crew-notes-admin .race2026-crew-notes-preview-marker {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #a0216e;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
}

/* Offline / PWA read-cache banner (offline-app.js) */
.site-offline-banner {
  position: fixed;
  z-index: 9999;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 0.55rem 1rem calc(0.55rem + env(safe-area-inset-bottom, 0px));
  font-size: 0.88rem;
  line-height: 1.35;
  text-align: center;
  box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
}

.site-offline-banner--offline {
  color: #2a2418;
  background: rgba(255, 236, 200, 0.97);
  border-top: 1px solid rgba(180, 140, 60, 0.45);
}

.site-offline-banner--online {
  color: #143d24;
  background: rgba(220, 245, 228, 0.97);
  border-top: 1px solid rgba(45, 107, 82, 0.4);
}

.race2026-offline-pack__actions {
  margin: 1rem 0;
}

.race2026-offline-pack__save {
  font: inherit;
  font-weight: 600;
  padding: 0.55rem 1.1rem;
  border-radius: 8px;
  border: 1px solid #2f6b52;
  background: #2f6b52;
  color: #fff;
  cursor: pointer;
}

.race2026-offline-pack__save:hover {
  filter: brightness(1.05);
}

.race2026-offline-pack__status {
  margin: 0.75rem 0 1rem;
  font-size: 0.95rem;
}

.race2026-offline-pack__status--busy {
  color: #5a4a20;
}

.race2026-offline-pack__status--ok {
  color: #143d24;
}

.race2026-offline-pack__status--warn {
  color: #681a1a;
}

.mc-offline-readiness__badge {
  display: inline-block;
  padding: 0.35rem 0.65rem;
  border-radius: 6px;
  font-size: 0.92rem;
  margin: 0.5rem 0 0.75rem;
  border: 1px solid rgba(90, 105, 116, 0.35);
}

.mc-offline-readiness__badge--pass {
  background: rgba(20, 61, 36, 0.1);
  color: #143d24;
}

.mc-offline-readiness__badge--warn {
  background: rgba(90, 74, 32, 0.12);
  color: #5a4a20;
}

.mc-offline-readiness__badge--fail {
  background: rgba(104, 26, 26, 0.1);
  color: #681a1a;
}

.mc-offline-readiness__screen-status {
  font-variant-numeric: tabular-nums;
}

.mc-offline-readiness__warning {
  border-color: rgba(90, 74, 32, 0.45);
}

.map-offline-basemap-note {
  font-size: 0.88rem;
  color: #444;
  max-width: 52rem;
  margin: 0.5rem 0 0;
}

.race2026-live__offline-readonly {
  margin: 0.5rem 0 0;
  padding: 0.45rem 0.55rem;
  font-size: 0.88rem;
  background: rgba(90, 105, 116, 0.1);
  border-radius: 6px;
  border: 1px solid rgba(90, 105, 116, 0.25);
}

/* —— Mobile: larger tap targets on key race-weekend pages —— */
@media (max-width: 720px) {
  #race-hub-top,
  #ros-top,
  #course-map-top,
  #rpe-page-top,
  #full-course-elevation-heading,
  #rpe-controls,
  #rpe-map,
  tr.ros-day-row {
    scroll-margin-top: 5.25rem;
  }

  .race2026-command-centre__links a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.55rem;
  }

  .race2026-command-centre__status {
    font-size: 0.92rem;
    line-height: 1.45;
  }

  .ros-operational-page .tp-banner--warn {
    padding: 0.65rem 0.75rem;
    border-width: 2px;
    border-radius: var(--radius);
  }

  .ros-jump a {
    min-height: 44px;
    padding: 0.45rem 0.65rem;
  }

  .ros-col--link a:not(:empty),
  .ros-col--activity a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.35rem;
    margin: -0.2rem -0.35rem;
    border-radius: var(--radius-sm);
  }

  .course-map-frame-actions .course-map-fullscreen-btn {
    min-width: 44px;
    min-height: 44px;
  }

  .rpe-controls button,
  .rpe-ml-map-toolbar .maplibre-basemap button {
    min-height: 44px;
    padding-left: 12px;
    padding-right: 12px;
  }

  .race2026-hub-action {
    min-height: 48px;
  }
}

/* —— Mission Control v0 (static prototype) —— */
body.mission-control-page {
  --mc-tabbar-h: calc(3.15rem + env(safe-area-inset-bottom, 0px));
  --mc-profile-viewbox-h: 48;

  /* Semantic shell / material tokens — chrome only; content stays solid. */
  --mc-shell-blur: 16px;
  --mc-shell-saturate: 1.12;
  --mc-shell-material: color-mix(in srgb, var(--surface) 88%, transparent);
  --mc-shell-material-solid: var(--surface);
  --mc-shell-hairline: color-mix(in srgb, var(--border) 72%, var(--ink) 8%);
  --mc-chrome-fg: var(--ink);
  --mc-chrome-muted: var(--muted);
  --mc-chrome-control-bg: transparent;
  --mc-chrome-control-border: color-mix(in srgb, var(--border) 70%, transparent);
  --mc-chrome-control-radius: 10px;
  --mc-tab-inactive: color-mix(in srgb, var(--muted) 88%, var(--ink));
  --mc-tab-active: var(--ink);
  --mc-active-signal: var(--bl-artemis);
  --mc-tab-active-accent: var(--mc-active-signal);
  --mc-tab-active-fill: color-mix(in srgb, var(--mc-active-signal) 10%, transparent);
  --mc-tab-label-size: 0.62rem;
  --mc-topbar-title-size: 0.76rem;
  --mc-topbar-eyebrow-size: 0.5rem;
  --mc-topbar-pad-y: 0.38rem;
  --mc-topbar-pad-x: 0.85rem;
  --mc-countdown-seconds-opacity: 0.55;
  --mc-countdown-seconds-scale: 0.78;

  background: var(--bg);
  color: var(--ink);
}

body.mission-control-page:not(.mission-control-offline-pack-page) {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

body.mission-control-page:not(.mission-control-offline-pack-page) main.mission-control-shell {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow: hidden;
}

body.mission-control-offline-pack-page main.mission-control-shell--offline-pack {
  box-sizing: border-box;
  min-height: auto;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}

.mission-control-offline-pack-app {
  max-width: 430px;
  margin: 0 auto;
  width: 100%;
  min-height: 0;
}

.mc-offline-pack-page {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.65rem max(0.75rem, env(safe-area-inset-right, 0px))
    max(0.75rem, env(safe-area-inset-bottom, 0px))
    max(0.75rem, env(safe-area-inset-left, 0px));
}

.mc-offline-pack-page__intro {
  margin: 0;
}

.mc-offline-pack-page__title {
  margin: 0 0 0.25rem;
  font-size: clamp(1.15rem, 3vw, 1.35rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.25;
}

.mc-offline-pack-page__subtitle {
  margin: 0;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.4;
}

.mc-offline-pack-page__footer {
  margin: 0.25rem 0 0;
  font-size: 0.88rem;
}

.mc-offline-pack-surface .lede {
  margin-top: 0;
}

.mc-offline-pack-native-ready {
  border-color: color-mix(in srgb, #1f6b3f 35%, var(--border));
  background: color-mix(in srgb, #1f6b3f 8%, var(--surface));
}

.mc-offline-pack-native-ready p {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--ink);
}

.mc-offline-pack-native-ready p:last-child {
  margin-bottom: 0;
}

[data-mc-offline-pack-native-only],
[data-mc-offline-pack-native] {
  display: none;
}

body.mission-control-native-shell [data-mc-offline-pack-native-only],
body.mission-control-native-shell [data-mc-offline-pack-native] {
  display: block;
}

body.mission-control-native-shell [data-mc-offline-pack-web-only],
body.mission-control-native-shell [data-mc-offline-pack-web] {
  display: none;
}

.mission-control-app {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  max-width: 430px;
  margin: 0 auto;
  background: var(--bg);
  overflow: hidden;
}

body.mission-control-page main.mission-control-shell {
  max-width: none;
  padding: 0;
  margin: 0;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mission-control-app {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-topbar {
  flex: 0 0 auto;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-panels {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-panel.is-active {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-panel--mission.is-active,
body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-panel--legs.is-active {
  overflow: hidden;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page)
  .mission-control-app[data-mc-lifecycle="1"]
  .mc-panel--mission.is-active {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-panel--legs .mc-legs-viewer-host,
body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-panel--mission .mc-course-viewer {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-panel--legs .mc-course-viewer {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  overflow: hidden;
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-tabbar {
  flex: 0 0 auto;
  background: var(--mc-shell-material);
  -webkit-backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-tabbar__btn {
  min-height: 3.5rem;
}

body.mission-control-native-shell.mission-control-offline-pack-page {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

body.mission-control-native-shell.mission-control-offline-pack-page main.mission-control-shell--offline-pack {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  box-sizing: border-box;
  padding: 0;
  overflow: hidden;
}

body.mission-control-native-shell.mission-control-offline-pack-page .mission-control-offline-pack-app {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  max-width: none;
  margin: 0;
  width: 100%;
}

body.mission-control-native-shell.mission-control-offline-pack-page .mc-topbar {
  flex: 0 0 auto;
}

body.mission-control-native-shell.mission-control-offline-pack-page .mc-offline-pack-page {
  flex: 1 1 auto;
  min-height: 0;
}

.mc-topbar {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: calc(var(--mc-topbar-pad-y) + env(safe-area-inset-top, 0px))
    max(var(--mc-topbar-pad-x), env(safe-area-inset-right, 0px))
    var(--mc-topbar-pad-y)
    max(var(--mc-topbar-pad-x), env(safe-area-inset-left, 0px));
  border-bottom: 1px solid var(--mc-shell-hairline);
  background: var(--mc-shell-material);
  -webkit-backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  z-index: 30;
}

.mc-topbar__brand {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.mc-topbar__icon,
.mc-topbar__crest {
  display: block;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: none;
}

.mc-topbar__crest {
  object-fit: contain;
  padding: 2px;
  border-radius: 50%;
  border: 1px solid var(--mc-shell-hairline);
  background: var(--mc-shell-material-solid);
  box-shadow: none;
}

.mc-topbar__identity {
  min-width: 0;
}

.mc-topbar__eyebrow {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--mc-topbar-eyebrow-size);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mc-chrome-muted);
  line-height: 1.2;
}

.mc-topbar__title {
  margin: 0.06rem 0 0;
  font-family: var(--font-sans);
  font-size: var(--mc-topbar-title-size);
  font-weight: 600;
  letter-spacing: 0.045em;
  line-height: 1.15;
  color: var(--mc-chrome-fg);
}

.mc-topbar__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.2rem;
  flex-shrink: 0;
}

.mc-prototype-badge {
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.15rem 0.4rem;
  border-radius: 999px;
  border: 1px solid var(--accent-soft-border);
  color: var(--muted);
  background: var(--accent-soft);
}

.mc-offline-pack-back,
.mc-offline-pack-link,
.mc-flight-plan-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0.22rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--mc-chrome-fg);
  text-decoration: none;
  border: 1px solid var(--mc-chrome-control-border);
  border-radius: var(--mc-chrome-control-radius);
  background: var(--mc-chrome-control-bg);
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.mc-offline-pack-back:hover,
.mc-offline-pack-back:focus-visible,
.mc-offline-pack-link:hover,
.mc-offline-pack-link:focus-visible,
.mc-flight-plan-link:hover,
.mc-flight-plan-link:focus-visible {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
  color: var(--ink);
  text-decoration: none;
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.mc-header-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-width: 44px;
  min-height: 44px;
  padding: 0.22rem 0.4rem;
  border: 1px solid var(--mc-chrome-control-border);
  border-radius: var(--mc-chrome-control-radius);
  background: var(--mc-chrome-control-bg);
  color: var(--mc-chrome-fg);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.mc-header-action__glyph {
  display: block;
}

.mc-header-action__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.mc-header-action:hover,
.mc-header-action:focus-visible {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
  color: var(--ink);
  text-decoration: none;
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.mc-panels {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  padding: 0.55rem max(var(--mc-topbar-pad-x), env(safe-area-inset-right, 0px)) 0.3rem
    max(var(--mc-topbar-pad-x), env(safe-area-inset-left, 0px));
  position: relative;
}

.mc-app-footer {
  flex-shrink: 0;
  margin-top: auto;
  padding: 1rem 0 0.35rem;
  text-align: center;
}

.mc-app-footer__label {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: color-mix(in srgb, var(--muted) 88%, var(--ink));
}

.mc-panel--results.is-active,
.mc-panel--schedule.is-active {
  min-height: 100%;
}

.mc-panel--legs.is-active {
  padding-bottom: 0.15rem;
}

.mc-panel {
  display: none !important;
}

.mc-panel.is-active {
  display: flex !important;
  flex-direction: column;
  gap: 0.5rem;
  height: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.mc-panel--mission.is-active,
.mc-panel--legs.is-active {
  gap: 0.4rem;
}

.mc-panel--legs .mc-legs-viewer-host {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.mc-leg-header {
  margin: 0;
}

.mc-leg-header--compact .mc-leg-header__title {
  font-size: 1.15rem;
  line-height: 1.2;
}

.mc-leg-header__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
}

.mc-leg-header__title {
  margin: 0.1rem 0 0;
  font-size: 1.65rem;
  line-height: 1.05;
}

.mc-leg-header__runner {
  margin: 0.15rem 0 0;
  font-size: 1rem;
  color: var(--muted);
}

.mc-metric-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
  flex-shrink: 0;
}

.mc-metric-row--progress .mc-metric__value {
  font-size: 1.15rem;
}

.mc-metric {
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.mc-metric__label {
  display: block;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.mc-metric__value {
  display: block;
  margin-top: 0.1rem;
  font-family: var(--font-mono);
  font-size: 1.05rem;
  font-weight: 600;
}

/* Course viewer — linked map + dark SVG profile */
.mc-course-viewer {
  --mc-route-stroke: color-mix(in srgb, var(--accent-hover) 88%, var(--ink));
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-height: 0;
}

.mc-panel--mission .mc-course-viewer {
  flex: 1 1 auto;
}

.mc-panel--legs .mc-course-viewer {
  flex: 1 1 auto;
  height: 100%;
}

.mc-course-viewer__map-wrap {
  flex: 1 1 auto;
  min-height: 9.5rem;
}

.mc-panel--legs .mc-course-viewer__map-wrap {
  min-height: 11.5rem;
}

.mc-course-viewer__map {
  position: relative;
  height: 100%;
  min-height: 9.5rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--map-canvas) 88%, var(--surface));
  overflow: hidden;
}

.mc-course-viewer__maplibre {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.mc-course-viewer__map-route {
  position: absolute;
  inset: 0;
  z-index: 0;
  touch-action: none;
  cursor: grab;
}

.mc-course-viewer__map-route.is-panning {
  cursor: grabbing;
}

.mc-course-viewer__map-canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.mc-course-viewer__maplibre .maplibregl-map {
  width: 100%;
  height: 100%;
  font: 0.65rem/1.2 var(--font-sans);
}

.mc-course-viewer__maplibre .maplibregl-ctrl-attrib {
  font-size: 0.55rem !important;
  line-height: 1.2 !important;
  background: color-mix(in srgb, var(--bg) 72%, transparent) !important;
  color: var(--muted) !important;
}

.mc-map-settings {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  z-index: 3;
}

.mc-map-settings__trigger {
  margin: 0;
  padding: 0.2rem 0.45rem;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--bg) 78%, transparent);
  color: var(--muted);
  cursor: pointer;
  backdrop-filter: blur(4px);
}

.mc-map-settings__trigger:hover,
.mc-map-settings__trigger:focus-visible {
  color: var(--ink);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
}

.mc-map-settings__menu {
  position: absolute;
  top: calc(100% + 0.2rem);
  right: 0;
  min-width: 4.5rem;
  padding: 0.2rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--bg) 92%, var(--surface));
  box-shadow: 0 4px 12px color-mix(in srgb, var(--ink) 12%, transparent);
  backdrop-filter: blur(6px);
}

.mc-map-settings__menu[hidden] {
  display: none;
}

.mc-map-settings__option {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.28rem 0.5rem;
  font-size: 0.62rem;
  font-weight: 500;
  text-align: left;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}

.mc-map-settings__option.is-active {
  font-weight: 600;
  color: var(--ink);
  box-shadow: inset 2px 0 var(--mc-active-signal);
  background: color-mix(in srgb, var(--mc-active-signal) 9%, transparent);
}

.mc-profile-annot {
  position: absolute;
  z-index: 2;
  font-size: 0.52rem;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  pointer-events: none;
  white-space: nowrap;
  text-shadow: 0 0 4px color-mix(in srgb, var(--bg) 90%, transparent),
    0 1px 2px color-mix(in srgb, var(--bg) 70%, transparent);
}

.mc-profile-annot--elev-max {
  transform: translate(-50%, calc(-100% - 4px));
}

.mc-profile-hud {
  position: absolute;
  z-index: 3;
  top: 0.15rem;
  left: 0;
  transform: translate(-50%, 0);
  padding: 0.08rem 0.35rem;
  border-radius: var(--radius-sm);
  font-size: 0.58rem;
  line-height: 1.15;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  border: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
  pointer-events: none;
  white-space: nowrap;
  text-shadow: none;
  box-shadow: 0 1px 4px color-mix(in srgb, var(--shadow) 12%, transparent);
}

.mc-course-viewer__profile-km {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  min-height: 1.1rem;
  margin-top: 0.2rem;
  padding: 0.1rem 0.15rem 0.05rem;
  font-size: 0.58rem;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}

.mc-profile-km--end {
  text-align: right;
}

.mc-profile-elev--min {
  position: absolute;
  bottom: 0;
  transform: translateX(-50%);
  white-space: nowrap;
  pointer-events: none;
}

.mc-course-viewer__maplibre .maplibregl-ctrl-bottom-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  left: 0.35rem;
  bottom: 0.35rem;
  z-index: 4;
}

.mc-course-viewer__maplibre .maplibregl-ctrl-zoom-in,
.mc-course-viewer__maplibre .maplibregl-ctrl-zoom-out {
  display: none !important;
}

.mc-course-viewer__maplibre .maplibregl-ctrl-compass {
  width: 1.55rem;
  height: 1.55rem;
  margin: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--bg) 85%, transparent);
  box-shadow: none;
  backdrop-filter: blur(4px);
}

.mc-course-viewer__maplibre .maplibregl-ctrl-compass .maplibregl-ctrl-icon {
  width: 1.35rem;
  height: 1.35rem;
}

.mc-course-viewer__maplibre .maplibregl-ctrl-scale {
  margin: 0;
  padding: 0.12rem 0.4rem;
  font-size: 0.54rem;
  line-height: 1.2;
  color: var(--muted);
  background: color-mix(in srgb, var(--bg) 82%, transparent);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  backdrop-filter: blur(4px);
}

.course-explorer__viewer[data-cp-map-style="satellite"] .maplibregl-ctrl-scale,
.course-explorer__viewer[data-cp-map-style="satellite"] .maplibregl-ctrl-compass {
  color: #eceae6 !important;
  background: rgba(18, 20, 24, 0.78) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
}

.mc-map-tile-note {
  display: none !important;
}

.mc-panel--legs .mc-course-viewer__map {
  min-height: 11.5rem;
}

.mc-course-viewer__profile-wrap {
  flex-shrink: 0;
}

.mc-course-viewer__profile {
  position: relative;
  height: 6.25rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 92%, var(--logo-paper));
  overflow: visible;
  touch-action: none;
  cursor: crosshair;
  -webkit-tap-highlight-color: transparent;
}

.mc-panel--legs .mc-course-viewer__profile {
  height: 7rem;
}

.mc-course-viewer__profile:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.mc-course-viewer__profile-svg {
  display: block;
  width: 100%;
  height: 100%;
}

.mc-course-viewer__profile-fill {
  fill: color-mix(in srgb, var(--accent) 20%, transparent);
}

.mc-course-viewer__profile-line {
  fill: none;
  stroke: var(--mc-route-stroke);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mc-course-viewer__profile-marker {
  stroke: var(--mc-route-stroke);
  stroke-width: 1.5;
  pointer-events: none;
}

.mc-course-viewer__readout {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--muted);
  text-align: center;
}

.mc-segment-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  flex-shrink: 0;
}

.mc-segment-controls--compact .mc-segment-controls__btn {
  font-size: 0.62rem;
  padding: 0.28rem 0.45rem;
}

.mc-segment-controls__btn {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font: inherit;
  font-size: 0.68rem;
  padding: 0.32rem 0.55rem;
  cursor: pointer;
  touch-action: manipulation;
}

.mc-segment-controls__btn.is-active {
  color: var(--ink);
  border-color: color-mix(in srgb, var(--mc-active-signal) 48%, var(--border));
  background: color-mix(in srgb, var(--mc-active-signal) 9%, var(--surface));
  font-weight: 600;
}

.mc-next-leg {
  margin-top: 0.1rem;
  padding: 0.5rem 0.6rem;
  border-radius: var(--radius);
  border: 1px solid var(--accent-soft-border);
  background: var(--accent-soft);
}

.mc-next-leg--compact {
  padding: 0.35rem 0.55rem;
  font-size: 0.82rem;
}

.mc-next-leg--compact summary {
  cursor: pointer;
  list-style: none;
}

.mc-next-leg--compact summary::-webkit-details-marker {
  display: none;
}

.mc-next-leg__label {
  margin: 0;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.mc-next-leg__main {
  margin: 0.15rem 0 0;
  font-size: 0.92rem;
}

.mc-next-leg__meta {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
}

.mc-leg-picker {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

.mc-leg-picker--compact .mc-leg-picker__num {
  font-size: 1.1rem;
}

.mc-leg-picker__btn {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  touch-action: manipulation;
}

.mc-leg-picker__current {
  text-align: center;
}

.mc-leg-picker__eyebrow {
  display: block;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.mc-leg-picker__num {
  display: block;
  margin-top: 0.1rem;
  font-size: 1.25rem;
  font-weight: 600;
}

.mc-leg-summary {
  flex-shrink: 0;
  margin: 0;
  padding: 0.35rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--muted);
}

.mc-stale {
  margin: 0;
  padding: 0.45rem 0.55rem;
  border-radius: var(--radius);
  border: 1px dashed color-mix(in srgb, var(--accent) 45%, var(--border));
  background: color-mix(in srgb, var(--accent-soft) 80%, transparent);
  font-size: 0.74rem;
  color: var(--muted);
}

.mc-pace-note {
  margin: 0.2rem 0 0;
  font-size: 0.62rem;
  color: var(--muted);
  line-height: 1.3;
}

.mc-estimate-note {
  margin: 0.35rem 0 0;
  font-size: 0.62rem;
  color: var(--muted);
  line-height: 1.35;
}

.mc-results-offline {
  margin: 0.5rem 0 0;
  font-size: 0.74rem;
  color: var(--muted);
}

.mc-results-prerace {
  margin: 0.15rem 0 0;
  padding: 0.65rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--border) 90%, var(--ink));
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface) 96%, var(--bg));
}

.mc-results-prerace__lead {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--ink);
}

.mc-results-prerace__support {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--muted);
}

.mc-results-flight-plan {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.4;
}

.mc-results-flight-plan__link {
  color: var(--accent-hover);
  font-weight: 600;
}

.mc-results-flight-plan__link:hover,
.mc-results-flight-plan__link:focus-visible {
  color: var(--ink);
}

.mc-results-leg-picker {
  margin-bottom: 0.35rem;
}

.mc-record-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}

.mc-record-cards--benchmarks {
  margin-bottom: 0.55rem;
}

.mc-results-live-heading {
  margin: 0.5rem 0 0.25rem;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}

.mc-record-card__time {
  margin: 0.25rem 0 0;
  font-family: var(--font-mono);
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.25;
  word-break: break-word;
}

.mc-record-card {
  padding: 0.55rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.mc-record-card__title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--muted);
  line-height: 1.25;
}

.mc-record-card__meta {
  margin: 0.15rem 0 0;
  font-size: 0.72rem;
  color: var(--faint);
}

.mc-live-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}

.mc-live-card {
  padding: 0.5rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.mc-live-card--wide {
  grid-column: 1 / -1;
}

.mc-live-card__label {
  display: block;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}

.mc-live-card__value {
  display: block;
  margin-top: 0.15rem;
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 600;
}

.mc-live-card__value--stack span {
  display: block;
  font-size: 0.92rem;
}

.mc-live-card__suffix {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--muted);
}

.mc-schedule-intro {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--muted);
}

.mc-schedule {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.28rem;
}

.mc-schedule__item {
  display: grid;
  grid-template-columns: 2.35rem 1fr;
  gap: 0.35rem;
  align-items: start;
  padding: 0.38rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  text-align: left;
}

.mc-schedule__item--focus {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
}

.mc-schedule__item--selected {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent);
}

.mc-schedule__item--active .mc-schedule__badge {
  color: var(--accent);
  font-weight: 600;
}

.mc-schedule__item--done {
  opacity: 0.88;
}

.mc-schedule__item--empty {
  cursor: default;
}

.mc-schedule__badge {
  padding-top: 0.1rem;
  font-size: 0.6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}

.mc-schedule__body {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-width: 0;
}

.mc-schedule__title {
  font-weight: 600;
  font-size: 0.84rem;
  line-height: 1.22;
}

.mc-schedule__runner {
  font-size: 0.78rem;
  color: var(--ink);
}

.mc-schedule__times {
  font-size: 0.72rem;
  color: var(--muted);
}

.mc-schedule__status {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}

.mc-schedule__detail {
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.25;
}

.mc-tabbar {
  flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.2rem;
  min-height: var(--mc-tabbar-h);
  padding: 0.28rem max(0.4rem, env(safe-area-inset-right, 0px))
    calc(0.28rem + env(safe-area-inset-bottom, 0px))
    max(0.4rem, env(safe-area-inset-left, 0px));
  border-top: 1px solid var(--mc-shell-hairline);
  background: var(--mc-shell-material);
  -webkit-backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  z-index: 20;
}

.mc-offline-pack__diagnostics {
  margin-top: 1rem;
}

.mc-offline-pack__diagnostics > summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--muted);
  font-size: 0.9rem;
  margin-bottom: 0.5rem;
}

.mc-offline-pack__diagnostics-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.75rem;
}


body.mission-control-native-shell .mc-native-landscape-hint {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  text-align: center;
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  color: var(--ink);
  font-weight: 600;
  pointer-events: none;
}

@media (orientation: landscape) and (max-height: 500px) {
  body.mission-control-native-shell .mc-native-landscape-hint {
    display: flex;
  }
}

.mc-tabbar__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.16rem;
  border: 0;
  background: transparent;
  color: var(--mc-tab-inactive);
  font: inherit;
  font-size: var(--mc-tab-label-size);
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 0.28rem 0.12rem;
  border-radius: 10px;
  cursor: pointer;
  min-height: 44px;
  min-width: 44px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.mc-tabbar__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  opacity: 0.78;
}

.mc-tabbar__glyph {
  display: block;
}

/* Mission Control icon system: browser SVG fallback + native SF Symbol masks */
.mc-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  flex-shrink: 0;
  position: relative;
}

.mc-icon--tab,
.mc-icon--settings,
.mc-icon--capcom,
.mc-icon--home {
  width: 20px;
  height: 20px;
}

.mc-icon--gate {
  width: 18px;
  height: 18px;
}

.mc-icon__fallback {
  display: block;
}

.mc-icon__sf {
  display: none;
}

body.mission-control-native-shell .mc-icon__sf {
  display: block;
  width: 100%;
  height: 100%;
  background-color: currentColor;
  -webkit-mask-image: var(--mc-icon-url);
  mask-image: var(--mc-icon-url);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

body.mission-control-native-shell .mc-icon__sf--selected {
  display: none;
}

body.mission-control-native-shell .mc-tabbar__btn.is-active .mc-icon__sf--regular {
  display: none;
}

body.mission-control-native-shell .mc-tabbar__btn.is-active .mc-icon__sf--selected {
  display: block;
}

body.mission-control-native-shell .mc-icon__fallback {
  display: none;
}

.mc-tabbar__label {
  line-height: 1.1;
}

.mc-tabbar__btn.is-active {
  color: var(--mc-tab-active);
  font-weight: 600;
  background: var(--mc-tab-active-fill);
}

.mc-tabbar__btn.is-active .mc-tabbar__icon {
  opacity: 1;
  color: var(--mc-tab-active-accent);
}

.mc-tabbar__btn.is-active .mc-tabbar__label {
  position: relative;
}

@media (prefers-reduced-motion: reduce) {
  .mc-tabbar__btn.is-active {
    background: color-mix(in srgb, var(--mc-active-signal) 14%, transparent);
  }
}

.mc-tabbar__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.mission-control-app[data-mc-settings-open="1"] .mc-panels,
.mission-control-app[data-mc-settings-open="1"] .mc-tabbar {
  display: none !important;
}

.mission-control-app[data-mc-settings-open="1"] .mc-settings {
  display: flex !important;
}

.mc-settings {
  display: none;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.mc-settings[hidden] {
  display: none !important;
}

.mc-settings__header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  padding: 0.15rem 0 0.45rem;
}

.mc-settings__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  touch-action: manipulation;
}

.mc-settings__close:hover,
.mc-settings__close:focus-visible {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.mc-settings__title {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.mc-settings__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-bottom: 0.25rem;
}

.mc-settings__section {
  padding: 0.65rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.mc-settings__heading {
  margin: 0 0 0.45rem;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.mc-settings__label {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink);
}

.mc-settings__input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg);
  color: var(--ink);
  font: inherit;
  font-size: 16px;
  line-height: 1.3;
}

.mc-settings__input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent-soft-border);
}

.mc-settings__hint {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--muted);
}

.mc-settings__segmented {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.25rem;
}

.mc-settings__segment {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg);
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  touch-action: manipulation;
}

.mc-settings__segment:has(input:checked) {
  color: var(--ink);
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
}

.mc-settings__segment input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
}

.mc-settings__segment input:focus-visible + span {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.mc-settings__status {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.4;
  color: var(--ink);
}

.mc-settings__notification-control {
  margin: 0.65rem 0 0.5rem;
}

.mc-settings__switch-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 44px;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
}

.mc-settings__switch {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  width: 51px;
  height: 31px;
}

.mc-settings__switch input {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.mc-settings__switch-track {
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: var(--border-strong);
  transition: background 140ms ease, border-color 140ms ease;
}

.mc-settings__switch-track > span {
  display: block;
  width: 27px;
  height: 27px;
  margin: 1px;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  transition: transform 140ms ease;
}

.mc-settings__switch input:checked + .mc-settings__switch-track {
  border-color: var(--accent);
  background: var(--accent);
}

.mc-settings__switch input:checked + .mc-settings__switch-track > span {
  transform: translateX(20px);
}

.mc-settings__switch input:focus-visible + .mc-settings__switch-track {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.mc-settings__switch input:disabled + .mc-settings__switch-track {
  opacity: 0.55;
}

.mc-settings__switch-label:has(input:disabled) {
  cursor: default;
}

.mc-settings__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 0.45rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg);
  color: var(--ink);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
}

.mc-settings__action[hidden] {
  display: none !important;
}

.mc-settings__action:hover,
.mc-settings__action:focus-visible {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
  color: var(--ink);
  text-decoration: none;
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.mc-settings__about {
  margin: 0;
}

.mc-settings__about-row {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 0.35rem 0.5rem;
  padding: 0.22rem 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
}

.mc-settings__about-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.mc-settings__about-row dt {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--muted);
}

.mc-settings__about-row dd {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--ink);
}

@media (max-width: 380px) {
  .mc-settings__about-row {
    grid-template-columns: 1fr;
    gap: 0.1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mc-settings__body {
    scroll-behavior: auto;
  }
}

/* Mission Control appearance override (extends map theme preference to the shell) */
html[data-mc-appearance="light"] {
  color-scheme: light;
  --logo-paper: var(--bl-cloud-dancer);
  --logo-mist: #e6e4e0;
  --bg: var(--logo-paper);
  --surface: var(--bl-supporting-white);
  --ink: var(--bl-graphite);
  --muted: var(--bl-flight-slate);
  --faint: #8c9097;
  --accent: #5e6670;
  --accent-hover: #4d545e;
  --accent-soft: rgba(94, 102, 112, 0.09);
  --accent-soft-border: rgba(94, 102, 112, 0.2);
  --border: #e3e2de;
  --border-strong: #d5d4cf;
  --table-head: #ebe9e5;
  --table-zebra: #f8f7f4;
  --table-hover: #f5f4f0;
  --map-canvas: var(--logo-mist);
  --accent-bg: #e8e6e3;
  --shadow-sm: 0 1px 3px rgba(46, 49, 54, 0.055);
}

html[data-mc-appearance="dark"] {
  color-scheme: dark;
  --logo-paper: var(--bl-mission-black);
  --logo-mist: #1a1c21;
  --bg: var(--logo-paper);
  --surface: #1f2228;
  --surface-2: #282c34;
  --ink: #eceae6;
  --text: var(--ink);
  --fg: var(--ink);
  --muted: #a7adb8;
  --faint: #7e8591;
  --accent: #b4bfd2;
  --accent-hover: #d3dae6;
  --accent-soft: rgba(180, 191, 210, 0.14);
  --accent-soft-border: rgba(180, 191, 210, 0.32);
  --accent-bg: #343a44;
  --border: #383e47;
  --border-strong: #454c57;
  --table-head: #2c313a;
  --table-zebra: #191c22;
  --table-hover: #2a3039;
  --map-canvas: var(--logo-mist);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.45);
}

html[data-mc-appearance="dark"] .site-offline-banner {
  box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.35);
}

html[data-mc-appearance="dark"] .site-offline-banner--offline {
  color: #f5e6c8;
  background: rgba(70, 52, 22, 0.96);
  border-top-color: rgba(200, 160, 80, 0.45);
}

html[data-mc-appearance="dark"] .site-offline-banner--online {
  color: #c8f0d4;
  background: rgba(22, 58, 38, 0.96);
  border-top-color: rgba(80, 160, 110, 0.45);
}

/* Dark shell material: slightly denser tint for race-week chrome legibility. */
html[data-mc-appearance="dark"] body.mission-control-page {
  --mc-active-signal: var(--bl-artemis-bright);
  --mc-shell-material: color-mix(in srgb, var(--surface) 90%, transparent);
  --mc-shell-hairline: color-mix(in srgb, var(--border) 80%, var(--ink) 6%);
  --mc-tab-active-fill: color-mix(in srgb, var(--mc-active-signal) 14%, transparent);
}

/* Reduce Transparency — solid chrome, no blur; keep hierarchy tokens. */
@media (prefers-reduced-transparency: reduce) {
  body.mission-control-page {
    --mc-shell-material: var(--mc-shell-material-solid);
    --mc-shell-blur: 0px;
    --mc-shell-saturate: 1;
    --mc-chrome-control-bg: var(--mc-shell-material-solid);
    --mc-chrome-control-border: var(--border);
    --mc-tab-active-fill: color-mix(in srgb, var(--mc-active-signal) 14%, var(--surface));
  }

  body.mission-control-page .mc-topbar,
  body.mission-control-page .mc-tabbar,
  body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-tabbar {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--mc-shell-material-solid);
  }
}

/* Increased Contrast — opaque chrome, stronger hairlines and tab contrast. */
@media (prefers-contrast: more) {
  body.mission-control-page {
    --mc-shell-material: var(--mc-shell-material-solid);
    --mc-shell-blur: 0px;
    --mc-shell-saturate: 1;
    --mc-shell-hairline: var(--border-strong);
    --mc-chrome-muted: color-mix(in srgb, var(--muted) 35%, var(--ink));
    --mc-chrome-control-bg: var(--mc-shell-material-solid);
    --mc-chrome-control-border: var(--border-strong);
    --mc-tab-inactive: var(--muted);
    --mc-tab-active-fill: color-mix(in srgb, var(--mc-active-signal) 18%, var(--surface));
    --mc-countdown-seconds-opacity: 0.78;
    --mc-countdown-seconds-scale: 0.88;
  }

  body.mission-control-page .mc-topbar,
  body.mission-control-page .mc-tabbar,
  body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-tabbar {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--mc-shell-material-solid);
  }

  body.mission-control-page .mc-tabbar__btn.is-active {
    outline: 1px solid color-mix(in srgb, var(--mc-active-signal) 58%, var(--border-strong));
    outline-offset: 0;
  }
}

@media (max-width: 380px) {
  .mc-record-cards,
  .mc-live-cards {
    grid-template-columns: 1fr;
  }

  .mc-schedule__item {
    grid-template-columns: 2.2rem 1fr;
  }
}

/* —— Mission tab lifecycle (preview: ?mcLifecycle=1) —— */
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission.is-active {
  display: flex !important;
  flex-direction: column;
  gap: 0.65rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-hero {
  margin: 0;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-hero .home-mission-clock {
  margin: 0;
  width: 100%;
  box-sizing: border-box;
}

/* Countdown seconds stay live; visually secondary so the clock feels alive without dominating. */
.mission-control-app[data-mc-lifecycle="1"]
  .mc-mission-lifecycle-clock
  .home-mission-clock__time
  > .home-mission-clock__block:last-child {
  opacity: var(--mc-countdown-seconds-opacity);
}

.mission-control-app[data-mc-lifecycle="1"]
  .mc-mission-lifecycle-clock
  .home-mission-clock__time
  > .home-mission-clock__block:last-child
  .home-mission-clock__num {
  font-size: calc(1em * var(--mc-countdown-seconds-scale));
  font-weight: 600;
}

.mission-control-app[data-mc-lifecycle="1"]
  .mc-mission-lifecycle-clock
  .home-mission-clock__time
  > .home-mission-clock__sep:nth-last-child(2) {
  opacity: 0.42;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 0.7rem 0.75rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-card__title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-status-pill {
  display: inline-block;
  margin: 0;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--accent-soft);
  border: 1px solid var(--accent-soft-border);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-status__body {
  margin: 0.5rem 0 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--ink);
}

/* Direction C — phase + publication truth (no hero cards) */
.mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth {
  margin: 0;
  padding: 1rem 0 0.15rem;
  border: 0;
  background: transparent;
  max-width: 34rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth__phase {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--ink);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth__line {
  margin: 0.4rem 0 0;
  font-family: var(--font-sans);
  font-size: 0.98rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--muted);
  max-width: 28rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail {
  margin: 0.55rem 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  max-width: 34rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail__offline {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail__summary {
  list-style: none;
  cursor: pointer;
  min-height: 44px;
  display: flex;
  align-items: center;
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 650;
  color: var(--ink);
  border-top: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
  padding: 0.55rem 0;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail__summary::-webkit-details-marker {
  display: none;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail__summary::after {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  margin-left: 0.55rem;
  border-right: 1.5px solid var(--muted);
  border-bottom: 1.5px solid var(--muted);
  transform: rotate(45deg);
  opacity: 0.75;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail[open] > .mc-mission-detail__summary::after {
  transform: rotate(225deg);
  margin-top: 0.25rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail__body {
  padding: 0.15rem 0 0.35rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail .mc-mission-gates__list {
  margin: 0.25rem 0 0;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail .mc-mission-gate__label {
  font-family: var(--font-sans);
}

@media (min-width: 768px) {
  .mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth,
  .mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail {
    max-width: 40rem;
  }

  .mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth__phase {
    font-size: 1.55rem;
  }
}

/* iPad landscape: intentional wider measure — same hierarchy, not a dashboard. */
@media (min-width: 900px) and (orientation: landscape) {
  body.mission-control-native-shell .mc-panel--mission.is-active {
    align-items: stretch;
  }

  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle {
    width: min(56rem, 92%);
    max-width: 56rem;
    margin-inline: auto;
  }

  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-hero .home-mission-clock,
  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock.home-mission-clock {
    padding: 1.85rem 1.5rem 1.45rem;
  }

  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__num {
    font-size: clamp(2.55rem, 4.6vw, 3.55rem);
  }

  /* Keep phase/truth on the same measure as the countdown — not a phone strip under a wide clock. */
  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth,
  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-detail {
    max-width: none;
    width: 100%;
  }

  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth__phase {
    font-size: 1.75rem;
  }

  body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-truth__line {
    font-size: 1.08rem;
    max-width: 40rem;
  }
}

.mc-personal-mission {
  margin: 0.85rem 0 1rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.mc-personal-mission[hidden] { display: none; }

.mc-personal-mission__eyebrow,
.mc-personal-mission__title,
.mc-personal-mission__name,
.mc-personal-mission__date,
.mc-personal-mission__timing,
.mc-personal-mission__detail { margin: 0; }

.mc-personal-mission__eyebrow {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.mc-personal-mission__title {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.mc-personal-mission__name {
  margin-top: 0.35rem;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 700;
}

.mc-personal-mission__date,
.mc-personal-mission__timing,
.mc-personal-mission__detail {
  margin-top: 0.22rem;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.4;
}

.mc-personal-mission__link {
  display: inline-block;
  margin-top: 0.65rem;
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 650;
  text-decoration: none;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gates__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate {
  display: grid;
  grid-template-columns: 1.6rem 1fr auto;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate__icon {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  width: 1.25rem;
  min-width: 1.25rem;
  padding-top: 0.08rem;
  color: var(--muted);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate__label {
  font-size: 0.84rem;
  line-height: 1.35;
  color: var(--ink);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate__status {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 5.5rem;
  justify-content: flex-end;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate__status-text {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate__marker {
  position: relative;
  width: 0.95rem;
  height: 0.95rem;
  border-radius: 999px;
  border: 1.5px solid color-mix(in srgb, var(--muted) 55%, var(--border));
  background: var(--surface);
  flex-shrink: 0;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate:not(:last-child) .mc-mission-gate__marker::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 0;
  height: 1.55rem;
  transform: translateX(-50%);
  border-left: 1.5px dashed color-mix(in srgb, var(--muted) 45%, var(--border));
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate--in_progress .mc-mission-gate__marker {
  border-color: var(--ink);
  background: color-mix(in srgb, var(--ink) 18%, var(--surface));
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate--complete .mc-mission-gate__marker {
  border-color: color-mix(in srgb, #1f6b3f 55%, var(--border));
  background: color-mix(in srgb, #1f6b3f 82%, #fff);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate--complete .mc-mission-gate__marker::before {
  content: "✓";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 0.62rem;
  font-weight: 700;
  color: #fff;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate--complete .mc-mission-gate__status-text {
  color: color-mix(in srgb, #1f6b3f 75%, var(--ink));
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-gates__footer {
  margin: 0.55rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--muted);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-results__lede {
  margin: 0.45rem 0 0.65rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--ink);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-results__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.35rem 0.75rem;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ink);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg);
  cursor: pointer;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-milestones {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-milestones li {
  font-size: 0.84rem;
  color: var(--ink);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-context .mc-mission-lifecycle-milestones {
  margin-top: 0.55rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 0.65rem 0.75rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline--subtle {
  opacity: 0.92;
  border-style: dashed;
  background: color-mix(in srgb, var(--surface) 70%, var(--bg));
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline--ready {
  border-color: color-mix(in srgb, #1f6b3f 35%, var(--border));
  background: color-mix(in srgb, #1f6b3f 8%, var(--surface));
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__title {
  margin: 0 0 0.25rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--ink);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__lede {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.45;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.35rem 0.75rem;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ink);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg);
  text-decoration: none;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__status {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: #1f6b3f;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__meta {
  margin: 0.15rem 0 0;
  font-size: 0.74rem;
  color: var(--muted);
}

.mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-post__lede {
  margin: 0.45rem 0 0;
  font-size: 0.84rem;
  color: var(--muted);
}

.mission-control-app[data-mc-lifecycle="1"] [data-mc-lifecycle-benchmarks] {
  grid-template-columns: repeat(2, 1fr);
  gap: 0.45rem;
}

.mission-control-app[data-mc-lifecycle="1"] [data-mc-lifecycle-benchmarks] .mc-record-card {
  padding: 0.55rem 0.6rem;
}

.mission-control-app[data-mc-lifecycle="1"] [data-mc-lifecycle-benchmarks] .mc-record-card__time {
  font-size: 1rem;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="long_range"] [data-mc-mission-operational],
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="approaching"] [data-mc-mission-operational],
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="post_race"] [data-mc-mission-operational] {
  display: none !important;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="underway"] [data-mc-mission-starts-in] {
  display: none !important;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="long_range"] [data-mc-lifecycle-clock],
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="approaching"] [data-mc-lifecycle-clock],
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="race_week"] [data-mc-lifecycle-clock],
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="underway"] [data-mc-lifecycle-clock],
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="post_race"] [data-mc-lifecycle-clock] {
  display: block;
}

.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="race_week"] [data-mc-mission-operational],
.mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission[data-mc-lifecycle-phase="underway"] [data-mc-mission-operational] {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

/* --- Architecture prototype (local preview: /prototype/home, /prototype/flight-plan) --- */
.arch-proto-body {
  background: var(--bg);
  --arch-proto-content-max: var(--platform-content-max);
}

.platform-content-inner {
  max-width: var(--platform-content-max);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  box-sizing: border-box;
}

.fp-handbook-header {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 94%, var(--bg));
  margin-bottom: 0.65rem;
}

.fp-handbook-header__inner {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0.75rem;
  padding: 0.55rem max(var(--page-pad-x), env(safe-area-inset-right, 0px))
    0.6rem max(var(--page-pad-x), env(safe-area-inset-left, 0px));
}

.fp-handbook-header__brand {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}

.fp-handbook-header__home-mark {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  text-decoration: none;
  color: inherit;
  min-height: 44px;
  width: fit-content;
  max-width: 100%;
}

.fp-handbook-header__home-mark:hover .fp-handbook-header__co,
.fp-handbook-header__home-mark:focus-visible .fp-handbook-header__co {
  color: var(--muted);
}

.fp-handbook-header__icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  flex-shrink: 0;
}

.fp-handbook-header__home-identity {
  min-width: 0;
}

.fp-handbook-header__co {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
  line-height: 1.2;
}

.fp-handbook-header__title {
  margin: 0;
  padding-left: calc(24px + 0.45rem);
  font-size: 0.95rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.fp-handbook-header__title a {
  color: var(--ink);
  text-decoration: none;
}

.fp-handbook-header__title a:hover,
.fp-handbook-header__title a:focus-visible {
  text-decoration: underline;
}

.arch-proto-shell {
  max-width: var(--platform-content-max);
  margin: 0 auto;
  padding: 0.75rem clamp(1rem, 3vw, 2rem) 2rem;
}

.arch-proto-header {
  margin-bottom: 1rem;
}

.arch-proto-banner {
  margin: 0 0 0.5rem;
  padding: 0.4rem 0.55rem;
  border-radius: var(--radius-sm);
  border: 1px dashed var(--border);
  background: color-mix(in srgb, var(--accent-soft) 55%, transparent);
  font-size: 0.72rem;
  color: var(--muted);
  text-align: center;
}

.arch-proto-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: center;
}

.arch-proto-nav a {
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--ink);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.arch-proto-nav a.is-active {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
  font-weight: 600;
}

.arch-proto-hero {
  text-align: center;
  margin-bottom: 1.5rem;
}

.arch-proto-hero__brand {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  font-weight: 600;
  color: var(--muted);
}

.arch-proto-hero__race {
  margin: 0.35rem 0 1rem;
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  line-height: 1.15;
}

.arch-proto-hero__clock {
  margin: 0 auto;
  max-width: 28rem;
}

.arch-proto-landing-hero .arch-proto-hero__clock {
  max-width: none;
  width: 100%;
  margin: 0;
}

.arch-proto-hero__clock-note {
  margin: 0.5rem 0 1rem;
  color: var(--muted);
}

.arch-proto-hero__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  max-width: 24rem;
  margin: 0 auto;
}

.arch-proto-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.65rem 0.75rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
  text-align: center;
}

.arch-proto-btn--primary {
  background: var(--accent-soft);
  border-color: var(--accent-soft-border);
  color: var(--ink);
}

.arch-proto-preview__heading {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.arch-proto-preview-grid {
  display: grid;
  gap: 0.5rem;
}

.arch-proto-preview-card {
  display: block;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  text-decoration: none;
  color: inherit;
}

.arch-proto-preview-card h3 {
  margin: 0 0 0.2rem;
  font-size: 0.95rem;
}

.arch-proto-preview-card p {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.35;
}

.arch-proto-preview-card__meta {
  margin-top: 0.35rem !important;
  font-size: 0.72rem !important;
}

.arch-proto-thumb-row {
  display: inline-flex;
  gap: 0.25rem;
  vertical-align: middle;
  margin-right: 0.35rem;
}

.arch-proto-thumb-row span {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 3px;
  background: color-mix(in srgb, var(--muted) 25%, var(--surface));
  border: 1px solid var(--border);
}

.arch-proto-page-header h1 {
  margin-top: 0.15rem;
  margin-bottom: 0.4rem;
}

.arch-proto-inline-link {
  font-weight: 600;
}

.arch-proto-dashboard {
  display: grid;
  gap: 0.55rem;
  grid-template-columns: 1fr;
}

.arch-proto-dashboard-primary {
  display: grid;
  gap: 0.55rem;
  grid-template-columns: 1fr;
  margin-bottom: 0.85rem;
}

.arch-proto-dashboard-secondary {
  margin-top: 1.05rem;
}

.arch-proto-dashboard-secondary__heading {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.arch-proto-dashboard-secondary__grid {
  display: grid;
  gap: 0.48rem;
  grid-template-columns: 1fr;
}

.arch-proto-card {
  display: block;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  text-decoration: none;
  color: inherit;
}

.arch-proto-card--primary {
  padding: 1rem 1rem 0.95rem;
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  background: color-mix(in srgb, var(--accent-soft) 55%, var(--surface));
}

.arch-proto-card--primary .arch-proto-card__title {
  font-size: 1.15rem;
}

.arch-proto-card--destination {
  padding: 0.85rem 0.95rem;
}

.arch-proto-header--banner-only {
  margin-bottom: 0.75rem;
}

.arch-proto-redirect {
  max-width: 28rem;
  margin: 2rem auto 0;
  text-align: center;
}

.arch-proto-redirect h1 {
  margin-top: 0;
  font-size: 1.35rem;
}

.arch-proto-redirect .arch-proto-btn--primary {
  display: inline-flex;
  margin-top: 1rem;
  min-width: 12rem;
}

/* —— Club Identity prototype v2 (minimum visible identity) —— */
.club-mark {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.club-mark__icon {
  display: block;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  object-fit: contain;
  padding: 1px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--surface);
}

.club-mark__name {
  margin: 0;
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.15;
  color: var(--ink);
}

.club-identity-strip {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  padding: 0.5rem max(var(--page-pad-x), env(safe-area-inset-right, 0px))
    0.55rem max(var(--page-pad-x), env(safe-area-inset-left, 0px));
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 92%, var(--bg));
  margin-bottom: 0;
}

.club-identity-strip__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  max-width: var(--platform-content-max);
  margin: 0 auto;
}

.club-identity-strip__account {
  margin-left: auto;
  display: flex;
  align-items: center;
  min-height: 44px;
}

.club-identity-strip__account[hidden] {
  display: none;
}

.club-identity-strip__account-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.15rem 0;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
}

.club-identity-strip__account-link:hover,
.club-identity-strip__account-link:focus-visible {
  color: var(--muted);
}

.club-identity-strip__account-link[aria-current="page"] {
  color: var(--platform-signal, var(--accent));
}

.club-mark--home {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
}

.club-mark--home .club-mark__name {
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.club-mark__link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  color: inherit;
  min-height: 44px;
}

.club-mark__link:hover .club-mark__name,
.club-mark__link:focus-visible .club-mark__name {
  color: var(--muted);
}

.adaptive-flight-plan:empty {
  display: none;
}

.adaptive-flight-plan.is-enhanced {
  margin-top: 1.4rem;
}

.adaptive-flight-plan-entry {
  margin-top: 1.1rem;
  text-align: right;
  font-size: 0.86rem;
}

.adaptive-flight-plan-entry[hidden] {
  display: none;
}

.adaptive-flight-plan-entry a {
  color: var(--muted);
  text-underline-offset: 0.18em;
}

.adaptive-flight-plan__status {
  max-width: 48rem;
  margin: 0;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.adaptive-flight-plan-entry a + a {
  margin-left: 0.85rem;
}

.membership-onboarding__status {
  margin: 0;
  min-height: 1.4em;
}

.membership-onboarding__status[data-tone="error"] {
  color: #8b2e1a;
}

.membership-onboarding__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.1rem;
  margin: 0.85rem 0 0;
}

.membership-onboarding__actions--providers {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.7rem;
}

.membership-onboarding__action {
  color: inherit;
  text-underline-offset: 0.18em;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.membership-onboarding__action--quiet {
  color: var(--muted);
}

.membership-provider-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  box-sizing: border-box;
  min-width: min(100%, 18.5rem);
  min-height: 44px;
  padding: 0 1rem;
  border: 1px solid #747775;
  border-radius: 4px;
  background: #fff;
  color: #1f1f1f;
  font: 500 0.9rem/1.2 Roboto, Arial, sans-serif;
  text-decoration: none;
}

.membership-provider-button:hover,
.membership-provider-button:focus-visible {
  background: #f7f8f8;
  border-color: #5f6368;
  outline: none;
}

.membership-provider-button:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);
}

.membership-provider-button__mark {
  flex: 0 0 auto;
  display: block;
}

.membership-provider-button--apple {
  border-color: #000;
  background: #000;
  color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 600;
}

.membership-provider-button--apple:hover,
.membership-provider-button--apple:focus-visible {
  background: #1a1a1a;
  border-color: #1a1a1a;
}

@media (max-width: 480px) {
  .membership-provider-button {
    width: 100%;
    min-width: 0;
  }
}

/* —— Platform content pages (Flight Plan + domain landings) —— */
body.club-identity-v2,
body.domain-handbook-body,
body.platform-home {
  /* Historical platform names are compatibility aliases for Artemis. */
  --platform-signal: var(--bl-artemis);
  --platform-signal-hover: #a84a16;
  --platform-signal-soft: color-mix(in srgb, var(--platform-signal) 9%, var(--bg));
  --platform-signal-border: color-mix(in srgb, var(--platform-signal) 34%, var(--border));
  --platform-signal-ink: #fff;
}

.platform-content-page {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  margin-top: 0.15rem;
}

.platform-page-hero {
  margin: 0;
  padding: 0.35rem 0 0.15rem;
}

.platform-page-hero__eyebrow {
  margin: 0 0 0.45rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-variant: small-caps;
  font-feature-settings: "smcp" 1, "c2sc" 1;
  color: var(--muted);
}

.platform-page-hero__title {
  margin: 0;
  font-family: var(--font);
  font-size: clamp(1.85rem, 4.2vw, 2.65rem);
  font-weight: 650;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: var(--ink);
}

.platform-ops,
.platform-home-ops {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
}

.platform-ops__chip,
.platform-home-ops__chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: 0.1rem 0.45rem;
  border: 1px solid color-mix(in srgb, var(--border) 92%, transparent);
  border-radius: 0.3rem;
  background: transparent;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.2;
}

.platform-ops__chip--signal,
.platform-home-ops__chip--signal {
  border-color: var(--platform-signal-border);
  color: color-mix(in srgb, var(--platform-signal) 78%, var(--ink));
}

.platform-page-hero__lede {
  margin: 0.5rem 0 0;
  font-size: clamp(0.95rem, 1.9vw, 1.08rem);
  font-weight: 450;
  color: var(--muted);
  line-height: 1.45;
  max-width: 42rem;
}

.platform-page-hero__note {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  color: var(--faint);
  line-height: 1.45;
  max-width: 42rem;
}

.platform-section {
  margin: 0;
  padding-top: 0.15rem;
}

.platform-section + .platform-section,
.platform-section + .flight-plan-ask-feature {
  margin-top: 0.15rem;
}

.platform-section__title {
  margin: 0 0 0.65rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
  font-size: 0.98rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.platform-card-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  align-items: start;
}

.platform-card,
body.club-identity-v2 .home-link-card,
body.domain-handbook-body .home-link-card,
body.club-identity-v2 .arch-proto-card--destination {
  display: block;
  padding: 0.95rem 1rem;
  border: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--surface) 78%, var(--bg));
  text-decoration: none;
  color: inherit;
  min-width: 0;
  transition: border-color 120ms ease, background-color 120ms ease;
}

.platform-card__title,
body.club-identity-v2 .home-link-card__title {
  display: block;
  margin: 0 0 0.2rem;
  font-size: 1.02rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.platform-card__line,
body.club-identity-v2 .home-link-card__desc {
  display: block;
  margin: 0;
  font-size: 0.86rem;
  color: var(--muted);
  line-height: 1.45;
}

.platform-card__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.platform-card__cta,
.arch-proto-card__cta.platform-card__cta,
body.club-identity-v2 .flight-plan-ask-feature__cta.platform-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  min-height: 2.4rem;
  margin-top: 0.55rem;
  padding: 0.45rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in srgb, var(--border) 85%, transparent);
  background: color-mix(in srgb, var(--surface) 70%, var(--bg));
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  transition: border-color 120ms ease, background-color 120ms ease;
}

.platform-card__cta:hover,
.platform-card__cta:focus-visible,
body.club-identity-v2 .flight-plan-ask-feature__cta.platform-card__cta:hover,
body.club-identity-v2 .flight-plan-ask-feature__cta.platform-card__cta:focus-visible {
  border-color: color-mix(in srgb, var(--ink) 14%, var(--border));
  background: color-mix(in srgb, var(--surface) 88%, var(--bg));
  color: var(--ink);
}

.platform-card:hover,
.platform-card:focus-visible,
body.club-identity-v2 .home-link-card:hover,
body.club-identity-v2 .home-link-card:focus-visible,
body.club-identity-v2 .arch-proto-card--destination:hover,
body.club-identity-v2 .arch-proto-card--destination:focus-visible {
  border-color: color-mix(in srgb, var(--ink) 14%, var(--border));
  background: color-mix(in srgb, var(--surface) 88%, var(--bg));
}

.platform-back-link {
  margin: 0 0 0.35rem;
  font-size: 0.84rem;
}

body.club-identity-v2 .flight-plan-ask-feature.platform-card,
body.club-identity-v2 .flight-plan-ask-feature.platform-card--capcom {
  margin: 0;
  padding: 0.95rem 1rem 1rem;
  border: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--surface) 78%, var(--bg));
}

body.club-identity-v2 .flight-plan-ask-feature__samples {
  gap: 0.35rem;
  margin-top: 0.1rem;
}

body.club-identity-v2 .flight-plan-ask-feature__chip {
  padding: 0.1rem 0.45rem;
  border-radius: 0.3rem;
  border: 1px solid color-mix(in srgb, var(--border) 92%, transparent);
  background: transparent;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: none;
  color: var(--muted);
  line-height: 1.2;
}

body.club-identity-v2 .fp-site-identity {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  text-align: left;
}

@media (max-width: 480px) {
  body.club-identity-v2 .platform-card-grid,
  body.club-identity-v2 .home-link-card-grid {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  body.club-identity-v2 .platform-card,
  body.club-identity-v2 .home-link-card,
  body.club-identity-v2 .arch-proto-card--destination {
    padding: 1rem;
    min-height: 3.25rem;
  }

  body.club-identity-v2 .platform-page-hero__title {
    font-size: clamp(1.75rem, 8vw, 2.15rem);
  }
}

.club-page-title {
  margin: 0 0 0.55rem;
  padding: 0;
}

.club-page-title__heading {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ink);
}

.club-page-title__lede {
  margin: 0.3rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.45;
}

.club-page-title__note {
  margin: 0.3rem 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.mc-topbar__brand .club-mark--mc {
  margin: 0;
}

/* —— Flight Plan Beta 1 site identity footer —— */
.fp-site-identity {
  margin: 1.75rem 0 0.35rem;
  padding: 0.85rem 0 0.25rem;
  border-top: 1px solid var(--border);
  text-align: center;
}

.fp-site-identity__label {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: none;
  color: var(--faint);
  line-height: 1.35;
}

/* —— Compact masthead (domain landings; no Bras d'Or) —— */
.site-compact-masthead {
  margin: 0 0 0.55rem;
  padding: 0.1rem 0 0.35rem;
  border-bottom: 1px solid var(--border);
}

.site-compact-masthead__label {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  line-height: 1.2;
}

/* —— Platform Home (/) —— */
body.platform-home .platform-home-shell,
main.page-layout--data.platform-content-shell {
  max-width: var(--platform-content-max);
  margin-left: auto;
  margin-right: auto;
}

body.platform-home .platform-home-shell {
  max-width: var(--platform-home-content-max);
  padding: 0.85rem var(--page-pad-x) 1.5rem;
  --home-signal: var(--platform-signal);
  --home-signal-hover: var(--platform-signal-hover);
  --home-signal-soft: var(--platform-signal-soft);
  --home-signal-border: var(--platform-signal-border);
  --home-signal-ink: var(--platform-signal-ink);
}

body.platform-home .club-identity-strip__inner,
body.platform-home .site-preview-notice {
  max-width: var(--platform-home-content-max);
}

.platform-home-page {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.platform-home-hero {
  margin: 0;
  padding: 0.35rem 0 0.15rem;
}

.platform-home-hero__eyebrow {
  margin: 0 0 0.45rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-variant: small-caps;
  font-feature-settings: "smcp" 1, "c2sc" 1;
  color: var(--muted);
}

.platform-home-hero__title {
  margin: 0;
  font-size: clamp(1.85rem, 4.2vw, 2.65rem);
  font-weight: 650;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: var(--ink);
}

.platform-home-hero__lede {
  max-width: 46rem;
  margin: 0.85rem 0 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.7vw, 1.12rem);
  line-height: 1.6;
}

.platform-home-ops {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
}

.platform-home-ops__chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: 0.1rem 0.45rem;
  border: 1px solid color-mix(in srgb, var(--border) 92%, transparent);
  border-radius: 0.3rem;
  background: transparent;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.2;
}

.home-handoffs {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  align-items: start;
}

.home-card,
.home-handoff {
  border: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--surface) 78%, var(--bg));
  min-width: 0;
}

.home-card__inner,
.home-handoff__inner {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  height: auto;
  padding: 0.95rem 1rem 1rem;
  box-sizing: border-box;
}

.home-card--mission-control .home-card__inner {
  height: 100%;
}

body.platform-home .home-card--mission-control {
  border-color: var(--home-signal-border);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--home-signal-soft) 55%, var(--surface)) 0%,
    color-mix(in srgb, var(--surface) 78%, var(--bg)) 38%
  );
  box-shadow: 0 1px 0 color-mix(in srgb, var(--home-signal) 12%, transparent);
}

body.platform-home .home-card--mission-control .home-card__icon--mission-control {
  background: color-mix(in srgb, var(--home-signal) 12%, transparent);
  color: var(--home-signal);
}

.home-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 0.5rem;
  background: color-mix(in srgb, var(--ink) 4%, transparent);
  color: var(--ink);
  flex-shrink: 0;
}

.home-card__icon-svg {
  display: block;
  width: 1.15rem;
  height: 1.15rem;
}

.home-card__icon-svg--sm {
  width: 1rem;
  height: 1rem;
}

.home-card__body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.home-card--mission-control .home-card__body {
  flex: 1 1 auto;
}

.home-card__eyebrow,
.home-handoff__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.home-card__title,
.home-handoff h2 {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.home-card__line,
.home-handoff__line {
  margin: 0.35rem 0 0.7rem;
  font-size: 0.86rem;
  color: var(--muted);
  line-height: 1.45;
}

.home-card--mission-control .home-card__line {
  flex: 1 1 auto;
}

.home-card__cta,
.home-handoff__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  gap: 0.25rem;
  min-height: 2.4rem;
  margin-top: 0;
  padding: 0.45rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in srgb, var(--border) 85%, transparent);
  background: color-mix(in srgb, var(--surface) 70%, var(--bg));
  color: var(--ink);
  font-size: 0.84rem;
  font-weight: 600;
  text-decoration: none;
}

.home-card__cta:hover,
.home-handoff__cta:hover {
  border-color: color-mix(in srgb, var(--ink) 14%, var(--border));
  background: color-mix(in srgb, var(--surface) 88%, var(--bg));
}

.home-mc-app__inner {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.home-mc-app__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.home-mc-app__cta-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  margin-top: auto;
}

.home-mc-app__primary-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.55rem;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid var(--home-signal);
  background: var(--home-signal);
  color: var(--home-signal-ink);
  font-size: 0.88rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  text-decoration: none;
  transition: background-color 120ms ease, border-color 120ms ease;
}

.home-mc-app__primary-cta:hover {
  background: var(--home-signal-hover);
  border-color: var(--home-signal-hover);
  color: var(--home-signal-ink);
}

.home-mc-app__cta-support {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--muted);
}

.home-mc-app__installed {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--muted);
}

.home-mc-app__installed-link {
  margin-left: 0.2rem;
  color: var(--ink);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.home-mc-app__web-link {
  margin-top: 0.1rem;
  font-size: 0.74rem;
  line-height: 1.35;
  color: var(--faint);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.home-mc-app__web-link:hover {
  color: var(--muted);
}

.home-mc-app__cta-block--web-only .home-mc-app__primary-cta {
  background: color-mix(in srgb, var(--surface) 70%, var(--bg));
  border-color: color-mix(in srgb, var(--border) 85%, transparent);
  color: var(--ink);
}

.home-mc-app__cta-block--web-only .home-mc-app__primary-cta:hover {
  border-color: color-mix(in srgb, var(--ink) 14%, var(--border));
  background: color-mix(in srgb, var(--surface) 88%, var(--bg));
  color: var(--ink);
}

.home-status {
  margin: 0;
  padding: 0.9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--surface) 78%, var(--bg));
}

.home-status__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.65rem;
}

.home-status__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  letter-spacing: -0.015em;
  color: var(--ink);
}

.home-status__meta {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.35;
}

.home-status__meta-icon {
  display: inline-flex;
  color: var(--faint);
}

.home-status__meta-icon .home-gate__icon-svg {
  width: 0.9rem;
  height: 0.9rem;
}

.home-status__list,
.home-gates {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0;
}

.home-gate {
  display: grid;
  grid-template-columns: 1.35rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.55rem 0.65rem;
  padding: 0.48rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  font-size: 0.84rem;
}

.home-gate:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.home-gate:first-child {
  padding-top: 0.1rem;
}

.home-gate__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  color: var(--muted);
}

.home-gate__icon-svg {
  display: block;
  width: 1.05rem;
  height: 1.05rem;
}

.home-gate__label {
  color: var(--ink);
  min-width: 0;
  line-height: 1.3;
}

.home-gate__state {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

.home-gate--complete .home-gate__state,
.home-gate--complete .home-gate__icon {
  color: var(--ink);
}

.home-gate--in_progress .home-gate__state {
  color: color-mix(in srgb, var(--ink) 72%, var(--muted));
}

.home-admin {
  margin: 0;
}

.home-admin__link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid transparent;
  border-radius: 0.55rem;
  color: var(--muted);
  text-decoration: none;
  font-size: 0.8rem;
}

.home-admin__link:hover,
.home-admin__link:focus-visible {
  border-color: var(--border);
  background: color-mix(in srgb, var(--surface) 70%, transparent);
}

.home-admin__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  color: var(--faint);
  flex-shrink: 0;
}

.home-admin__label {
  font-weight: 600;
  color: color-mix(in srgb, var(--ink) 78%, var(--muted));
}

.home-admin__note {
  flex: 1 1 auto;
  color: var(--faint);
  font-size: 0.76rem;
}

@media (min-width: 720px) {
  .home-handoffs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    align-items: start;
  }

  .home-card--flight-plan {
    order: 1;
  }

  .home-card--capcom {
    order: 2;
  }

  .home-card--mission-control {
    order: 3;
    grid-column: 1 / -1;
  }

  .home-gates {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.25rem;
  }
}

@media (min-width: 1100px) {
  .home-handoffs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
  }

  .home-card--flight-plan {
    order: 1;
  }

  .home-card--mission-control {
    order: 2;
    grid-column: auto;
  }

  .home-card--capcom {
    order: 3;
  }

  .home-gates {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 1rem;
    row-gap: 0.15rem;
  }

  .home-gate {
    padding: 0.4rem 0;
  }
}

body.flight-plan-beta1 .arch-proto-page--flight-plan {
  margin-top: 0.15rem;
}

@media (min-width: 960px) {
  body.flight-plan-beta1 .arch-proto-page--flight-plan .arch-proto-dashboard-primary {
    gap: 0.7rem;
    margin-bottom: 0.9rem;
  }

  body.flight-plan-beta1 .arch-proto-page--flight-plan .arch-proto-mc-feature {
    margin-top: 0.1rem;
    margin-bottom: 0.15rem;
  }

  body.flight-plan-beta1 .arch-proto-page--flight-plan .arch-proto-dashboard-secondary {
    margin-top: 0.95rem;
  }

  body.flight-plan-beta1 .fp-site-identity {
    margin-top: 1.6rem;
  }
}

@media (max-width: 720px) {
  body.flight-plan-beta1 .arch-proto-page--flight-plan .arch-proto-dashboard-primary {
    gap: 0.48rem;
    margin-bottom: 0.7rem;
  }

  body.flight-plan-beta1 .arch-proto-page--flight-plan .arch-proto-mc-feature {
    margin-top: 0;
    padding: 0.9rem;
  }

  body.flight-plan-beta1 .arch-proto-page--flight-plan .arch-proto-dashboard-secondary {
    margin-top: 0.85rem;
  }

  body.flight-plan-beta1 .arch-proto-page--flight-plan .arch-proto-dashboard-secondary__grid {
    gap: 0.42rem;
  }

  body.flight-plan-beta1 .fp-site-identity {
    margin-top: 1rem;
  }
}

body.club-identity-v2 .mc-topbar {
  padding-top: calc(0.4rem + env(safe-area-inset-top, 0px));
  padding-bottom: 0.35rem;
}

@media (min-width: 960px) {
  body.club-identity-v2 .arch-proto-page--flight-plan {
    margin-top: 0.15rem;
  }

  body.club-identity-v2 .arch-proto-page--flight-plan .arch-proto-dashboard-primary {
    gap: 0.7rem;
    margin-bottom: 0.9rem;
  }

  body.club-identity-v2 .arch-proto-page--flight-plan .arch-proto-mc-feature {
    margin-top: 0.1rem;
    margin-bottom: 0.15rem;
  }

  body.club-identity-v2 .arch-proto-page--flight-plan .arch-proto-dashboard-secondary {
    margin-top: 0.95rem;
  }

  body.club-identity-v2 .club-identity-strip {
    margin-bottom: 1rem;
    padding-top: 0.55rem;
    padding-bottom: 0.6rem;
  }

  body.club-identity-v2 .club-mark__name {
    font-size: 0.86rem;
  }
}

@media (max-width: 720px) {
  .club-mark__icon {
    width: 20px;
    height: 20px;
  }

  .club-mark__name {
    font-size: 0.76rem;
  }

  .club-identity-strip {
    margin-bottom: 0.55rem;
    padding-top: 0.35rem;
    padding-bottom: 0.4rem;
  }

  .club-page-title {
    margin-bottom: 0.45rem;
  }

  .club-page-title__heading {
    font-size: 1.05rem;
  }

  body.club-identity-v2 .arch-proto-page--flight-plan .arch-proto-dashboard-primary {
    gap: 0.48rem;
    margin-bottom: 0.7rem;
  }

  body.club-identity-v2 .arch-proto-page--flight-plan .arch-proto-mc-feature {
    margin-top: 0;
    padding: 0.9rem;
  }

  body.club-identity-v2 .arch-proto-page--flight-plan .arch-proto-dashboard-secondary {
    margin-top: 0.85rem;
  }

  body.club-identity-v2 .arch-proto-page--flight-plan .arch-proto-dashboard-secondary__grid {
    gap: 0.42rem;
  }
}

.arch-proto-masthead {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 0.65rem;
  padding: 0.15rem 0;
}

.arch-proto-masthead__crest {
  display: block;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  object-fit: contain;
  padding: 2px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--surface);
}

.arch-proto-masthead__text {
  min-width: 0;
}

.arch-proto-masthead__name {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.2;
}

.arch-proto-masthead__race {
  margin: 0.12rem 0 0;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.2;
}

.arch-proto-landing-countdown {
  margin-bottom: 0.75rem;
}

.arch-proto-landing-hero {
  width: 100%;
}

.arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-clock {
  box-sizing: border-box;
  margin: 0;
  width: 100%;
  max-width: 100%;
  padding: 0.95rem 0.85rem 0.8rem;
}

.arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-clock__label {
  font-size: 0.78rem;
}

.arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-clock__num {
  font-size: clamp(1.32rem, 4.1vw, 2.05rem);
}

.arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-clock__unit {
  font-size: 0.64rem;
}

.arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-clock__sep {
  font-size: 1.1rem;
}

.arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-progress {
  margin-top: 0.7rem;
  padding-top: 0.6rem;
}

.arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-progress__line {
  font-size: 0.74rem;
}

@media (max-width: 720px) {
  .arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-clock {
    padding: 0.85rem 0.65rem 0.75rem;
  }

  .arch-proto-page--flight-plan .arch-proto-landing-hero .home-mission-clock__num {
    font-size: clamp(1.2rem, 7.5vw, 1.75rem);
  }

  .arch-proto-page--flight-plan .arch-proto-masthead {
    margin-bottom: 0.5rem;
  }

  .arch-proto-page--flight-plan .arch-proto-landing-countdown {
    margin-bottom: 0.6rem;
  }

  .arch-proto-page--flight-plan .arch-proto-page-header h1 {
    margin-top: 0;
    margin-bottom: 0.3rem;
  }

  .arch-proto-page--flight-plan .arch-proto-dashboard-primary {
    gap: 0.48rem;
    margin-bottom: 0.7rem;
  }

  .arch-proto-page--flight-plan .arch-proto-mc-feature {
    margin-top: 0;
    padding: 0.9rem;
  }

  .arch-proto-page--flight-plan .arch-proto-dashboard-secondary {
    margin-top: 0.85rem;
  }

  .arch-proto-page--flight-plan .arch-proto-dashboard-secondary__grid {
    gap: 0.42rem;
  }
}

.arch-proto-dashboard-secondary__grid .arch-proto-card--restricted {
  padding: 0.85rem 0.95rem;
  border-color: color-mix(in srgb, var(--muted) 22%, var(--border));
  background: color-mix(in srgb, var(--muted) 4%, var(--surface));
  opacity: 0.92;
}

.arch-proto-dashboard-secondary__grid .arch-proto-card--restricted .arch-proto-card__title {
  margin-bottom: 0.2rem;
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--muted);
}

.arch-proto-dashboard-secondary__grid .arch-proto-card--restricted .arch-proto-card__line {
  margin-top: 0.2rem;
  font-size: 0.76rem;
  color: color-mix(in srgb, var(--muted) 86%, transparent);
}

.arch-proto-card--placeholder {
  padding: 0.85rem 0.95rem;
  border-style: dashed;
  background: color-mix(in srgb, var(--muted) 6%, var(--surface));
  opacity: 0.92;
}

.arch-proto-page-header__note {
  margin: 0.45rem 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.arch-proto-domain-landing {
  margin-top: 1.1rem;
}

.arch-proto-domain-landing h2 {
  margin: 0 0 0.55rem;
  font-size: 1.05rem;
}

.arch-proto-domain-landing__grid {
  display: grid;
  gap: 0.5rem;
}

@media (min-width: 560px) {
  .arch-proto-domain-landing__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 960px) {
  .arch-proto-domain-landing__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.arch-proto-ask-feature {
  margin: 0.85rem 0 0;
  padding: 0.85rem;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid var(--border);
  background: var(--surface);
}

.arch-proto-ask-feature__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

@media (max-width: 639px) {
  .arch-proto-ask-feature__inner {
    flex-direction: column;
    align-items: stretch;
  }
}

.arch-proto-ask-feature__eyebrow {
  margin: 0 0 0.15rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.arch-proto-ask-feature h2 {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.15;
}

.arch-proto-ask-feature__line {
  margin: 0.1rem 0 0;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.3;
}

.arch-proto-btn--ask {
  align-self: flex-start;
  min-width: auto;
  padding: 0.45rem 0.85rem;
  font-size: 0.82rem;
  background: var(--surface);
  border-color: var(--border);
  color: var(--fg);
}

.arch-proto-btn--ask:hover,
.arch-proto-btn--ask:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  background: color-mix(in srgb, var(--accent-soft) 25%, var(--surface));
}

.arch-proto-dashboard-secondary--admin {
  margin-top: 0.85rem;
}

.arch-proto-page--ask .flight-plan-ask {
  margin-top: 0.35rem;
}

.arch-proto-card__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.arch-proto-card__coming-soon {
  margin: 0.55rem 0 0;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--muted);
}

.arch-proto-mc-feature {
  margin: 0.1rem 0 0;
  padding: 0.95rem;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--border));
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--accent-soft) 80%, var(--surface)) 0%,
    var(--surface) 100%
  );
}

.arch-proto-mc-feature__inner {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.arch-proto-mc-feature__eyebrow {
  margin: 0 0 0.15rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
}

.arch-proto-mc-feature h2 {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
}

.arch-proto-mc-feature__line {
  margin: 0.15rem 0 0;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.35;
}

.arch-proto-btn--feature {
  align-self: flex-start;
  min-width: 11rem;
  background: var(--accent);
  border-color: var(--accent);
  color: var(--surface);
}

.arch-proto-back-link {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
}

.arch-proto-back-link a {
  font-weight: 600;
  text-decoration: none;
  color: var(--accent);
}

.arch-proto-back-link a:hover,
.arch-proto-back-link a:focus-visible {
  text-decoration: underline;
}

.arch-proto-page-header__lede {
  margin: 0;
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.45;
}

.arch-proto-page--section,
.arch-proto-page--subpage,
.arch-proto-page--flight-plan {
  max-width: none;
  width: 100%;
  overflow-x: hidden;
}

.arch-proto-subpage-content {
  margin-top: 0.35rem;
}

.arch-proto-subpage-content .page-intro {
  margin-top: 0;
}

.arch-proto-subpage-content .page-intro h1 {
  display: none;
}

.arch-proto-subpage-content .page-intro__eyebrow {
  display: none;
}

.arch-proto-page--team .table-panel.race2026-leg-matrix {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.team-landing-section {
  margin-top: 1.1rem;
}

.team-landing-section h2 {
  margin: 0 0 0.45rem;
  font-size: 1.15rem;
}

.team-landing-section__lede {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.45;
}

.team-landing-note {
  margin: 0 0 0.65rem;
  color: var(--muted);
}

.team-landing-roster,
.team-landing-assignments {
  margin: 0;
  padding: 0;
  list-style: none;
}

.team-landing-roster--compact {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}

.team-landing-roster--compact li {
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  min-height: 2.75rem;
  display: flex;
  align-items: center;
}

.team-landing-assignments {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
}

.team-landing-assignments li {
  padding: 0.72rem 0.85rem;
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
  align-items: baseline;
}

.team-landing-assignments li:first-child {
  border-top: 0;
}

.team-landing-assignments {
  counter-reset: team-leg;
}

.team-landing-assignment__leg {
  font-weight: 600;
  min-width: 3.5rem;
}

.team-landing-assignment__meta {
  font-size: 0.82rem;
  color: var(--muted);
}

.team-landing-runner-link,
.team-landing-inline-link {
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}

.team-landing-runner-link:hover,
.team-landing-runner-link:focus-visible,
.team-landing-inline-link:hover,
.team-landing-inline-link:focus-visible {
  text-decoration: underline;
}

.team-landing-profile-grid {
  display: grid;
  gap: 0.55rem;
}

.team-landing-profile-card {
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.team-landing-profile-card__name {
  margin: 0 0 0.25rem;
  font-size: 1rem;
}

.team-landing-profile-card__status {
  margin: 0;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.45;
}

.team-landing-profile-card__back {
  margin: 0.45rem 0 0;
  font-size: 0.75rem;
  line-height: 1.3;
}

.team-landing-profile-card__back a {
  color: var(--muted);
  text-decoration: none;
}

.team-landing-profile-card__back a:hover,
.team-landing-profile-card__back a:focus-visible {
  color: var(--accent);
  text-decoration: underline;
}

@media (min-width: 640px) {
  .team-landing-roster--compact {
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  }

  .team-landing-profile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .team-landing-roster--compact {
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  }
}

.arch-proto-card__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}

.arch-proto-card__line {
  margin: 0.2rem 0 0;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.35;
}

.arch-proto-card__list {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.76rem;
  color: var(--muted);
}

.arch-proto-card--panel {
  text-decoration: none;
  color: inherit;
}

.arch-proto-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-top: 0.5rem;
}

.arch-proto-card__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}

.arch-proto-card__link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.arch-proto-card__cta {
  display: inline-block;
  margin-top: 0.45rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--accent);
}

@media (min-width: 640px) {
  .arch-proto-preview-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .arch-proto-dashboard {
    grid-template-columns: repeat(2, 1fr);
  }

  .arch-proto-dashboard-primary {
    grid-template-columns: repeat(2, 1fr);
  }

  .arch-proto-dashboard-secondary__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .arch-proto-mc-feature__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (min-width: 960px) {
  .arch-proto-dashboard {
    grid-template-columns: repeat(3, 1fr);
  }

  .arch-proto-dashboard-primary {
    grid-template-columns: repeat(3, 1fr);
  }

  .arch-proto-dashboard-secondary__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 420px) {
  .arch-proto-hero__actions {
    grid-template-columns: 1fr;
  }
}

/* --- Course page explorer (Flight Plan) --- */

body.course-explorer-page main.arch-proto-shell.course-explorer-main,
body.course-explorer-page main.course-explorer-main {
  max-width: min(calc(100% - (2 * var(--page-pad-x))), var(--map-content-max-width));
  margin: 0 auto;
  padding-bottom: 2rem;
}

.course-page-head {
  margin: 0 0 0.75rem;
  padding-top: 0.25rem;
}

.course-page-head__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.65rem 1rem;
}

.course-page-head__eyebrow {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.course-page-head__subtitle {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--muted);
}

.course-page-head__titles h1 {
  margin: 0.1rem 0 0;
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  line-height: 1.15;
}

.course-page-head__lede {
  margin: 0.45rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  max-width: 42rem;
  line-height: 1.45;
}

.course-lens--compact .course-lens__btn {
  font-size: 0.78rem;
  padding: 0.4rem 0.75rem;
}

.course-lens {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0;
  border: 1px solid var(--border, #d8dcd4);
  border-radius: 8px;
  overflow: hidden;
  background: var(--logo-paper, #f6f7f3);
}

.course-lens__btn {
  appearance: none;
  border: 0;
  border-right: 1px solid var(--border, #d8dcd4);
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 0.88rem;
  padding: 0.55rem 1rem;
  cursor: pointer;
}

.course-lens__btn:last-child {
  border-right: 0;
}

.course-lens__btn.is-active,
.course-lens__btn[aria-selected="true"] {
  background: var(--ink);
  color: var(--logo-paper, #f6f7f3);
}

.course-lens__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}

.course-view-mode {
  display: inline-flex;
  gap: 0.25rem;
  margin-top: 0.65rem;
  padding: 0.2rem;
  border-radius: 8px;
  border: 1px solid var(--border, #d8dcd4);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
}

.course-view-mode__btn {
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.35rem 0.75rem;
  cursor: pointer;
}

.course-view-mode__btn.is-active {
  background: var(--ink);
  color: var(--logo-paper, #f6f7f3);
}

.course-view-mode__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

body[data-course-view-mode="runner"] .course-explorer__profile-label::after {
  content: " · runner history";
  color: var(--muted);
  font-weight: 400;
}

body:not([data-course-view-mode="runner"]) .course-explorer__runner-bar {
  display: none !important;
}

.course-explorer__runner-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.55rem 0.65rem 0.45rem;
  border-bottom: 1px solid var(--border, #d8dcd4);
  background: color-mix(in srgb, var(--surface) 92%, var(--logo-mist));
}

.course-runner-picker__label {
  display: grid;
  gap: 0.3rem;
  min-width: min(100%, 14rem);
}

.course-runner-picker__title {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.course-runner-picker__filter,
.course-runner-picker__select {
  width: 100%;
  font: inherit;
  font-size: 0.82rem;
  padding: 0.38rem 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--border, #d8dcd4);
  background: var(--surface-2, var(--logo-paper, #fff));
  color: var(--ink);
}

.course-runner-summary {
  flex: 1 1 12rem;
  min-width: min(100%, 12rem);
}

.course-runner-summary__name {
  margin: 0 0 0.25rem;
  font-size: 0.92rem;
  font-weight: 700;
}

.course-runner-summary__stats {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.78rem;
  color: var(--muted);
  display: grid;
  gap: 0.12rem;
}

.course-explorer__profile-runner-leg {
  pointer-events: none;
}

.course-detail__runner-leg {
  margin: 0 0 0.65rem;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  border: 1px solid var(--border, #d8dcd4);
  background: rgba(107, 155, 130, 0.06);
}

.course-detail__runner-leg-title {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
}

.course-detail__runner-leg-team {
  margin: 0.35rem 0 0.15rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.course-detail__runner-leg-splits {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.78rem;
  color: var(--ink);
}

.course-detail__runner-leg-empty {
  margin: 0;
  font-size: 0.78rem;
  color: var(--muted);
  font-style: italic;
}

.course-detail__runner-leg-link {
  margin: 0.35rem 0 0;
}

.course-explorer {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  grid-template-areas: "nav stage";
  gap: 0.5rem 0.85rem;
  align-items: start;
}

.course-explorer__nav {
  grid-area: nav;
  position: sticky;
  top: 4.5rem;
  max-height: calc(100vh - 6rem);
  overflow: auto;
}

.course-explorer__nav-label {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.course-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.course-nav__btn {
  display: block;
  width: 100%;
  text-align: left;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 0.78rem;
  padding: 0.35rem 0.45rem;
  cursor: pointer;
}

.course-nav__btn:hover,
.course-nav__btn:focus-visible {
  background: color-mix(in srgb, var(--ink) 6%, transparent);
}

.course-nav__btn.is-active {
  background: var(--ink);
  color: var(--logo-paper, #f6f7f3);
  border-color: var(--ink);
}

.course-nav__mobile-label {
  display: none;
  grid-area: nav;
}

.course-nav__select {
  width: 100%;
  font: inherit;
  font-size: 0.88rem;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  border: 1px solid var(--border, #d8dcd4);
  background: var(--surface-2, var(--logo-paper, #fff));
  color: var(--ink);
}

.course-explorer__stage {
  grid-area: stage;
  min-width: 0;
  border: 1px solid var(--border, #d8dcd4);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.04));
  overflow: hidden;
}

.course-explorer__viewer {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
}

.course-explorer__map-wrap {
  min-height: clamp(200px, 34vh, 320px);
  height: clamp(200px, 34vh, 320px);
}

.course-explorer__viewer .mc-course-viewer__map {
  min-height: clamp(200px, 34vh, 320px);
  height: 100%;
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  background: color-mix(in srgb, var(--map-canvas) 88%, var(--surface));
}

.course-explorer__profile-wrap {
  border-top: 1px solid var(--border, #e2e6df);
  background: color-mix(in srgb, var(--surface) 92%, var(--logo-paper));
  padding: 0.35rem 0.55rem 0.45rem;
}

.course-explorer__profile-label {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--muted);
}

.course-explorer__stage-nav {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.35rem 0.55rem;
  border-top: 1px solid var(--border, #e2e6df);
  background: color-mix(in srgb, var(--surface) 94%, var(--logo-paper));
}

.course-explorer__leg-step {
  appearance: none;
  border: 1px solid var(--border, #d8dcd4);
  border-radius: 999px;
  background: var(--logo-paper, #fff);
  color: var(--ink);
  font: inherit;
  font-size: 0.78rem;
  padding: 0.35rem 0.75rem;
  cursor: pointer;
}

.course-explorer__leg-step:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.course-explorer__leg-step:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.course-explorer__profile-wrap .mc-course-viewer__profile {
  height: 4.75rem;
  padding-top: 0.65rem;
  box-sizing: border-box;
}

.course-explorer__profile-wrap .mc-course-viewer__profile-fill {
  fill: color-mix(in srgb, var(--accent) 18%, transparent);
}

.course-explorer__profile-wrap .mc-course-viewer__profile-line {
  stroke-width: 1.4;
  opacity: 1;
}

.course-explorer__profile-wrap .mc-course-viewer__profile-marker {
  stroke-width: 1.5;
  opacity: 0.95;
}

.mc-course-viewer__profile-boundary {
  stroke: color-mix(in srgb, var(--muted) 55%, transparent);
  stroke-width: 0.75;
  stroke-dasharray: 1.5 2.5;
  pointer-events: none;
}

.course-explorer__profile-leg-labels {
  position: relative;
  min-height: 0.95rem;
  margin-top: 0.1rem;
}

.course-explorer__profile-leg-label {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-size: 0.52rem;
  line-height: 1.1;
  color: color-mix(in srgb, var(--muted) 88%, var(--ink));
  white-space: nowrap;
  pointer-events: none;
}

.course-explorer__detail {
  border-top: 1px solid var(--border, #e2e6df);
  padding: 0.45rem 0.65rem 0.55rem;
  background: var(--surface);
  max-height: none;
}

.course-detail__lens-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem 0.65rem;
  margin-bottom: 0.45rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--border, #e2e6df);
}

.course-detail__lens-label {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.course-detail--intro {
  padding: 0.15rem 0 0.1rem;
  border: 0;
  font-size: 0.84rem;
  line-height: 1.4;
  color: var(--muted);
}

.course-detail__lede {
  margin: 0.15rem 0 0.35rem;
  color: var(--ink);
}

.course-detail__tips {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.82rem;
}

.course-detail__tips li + li {
  margin-top: 0.2rem;
}

.course-detail__howto {
  margin: 0.75rem 0 0;
  color: var(--text-muted, #6b7280);
}

.course-detail__header {
  margin-bottom: 0.35rem;
}

.course-detail__title {
  margin: 0;
  font-size: 0.95rem;
}

.course-detail__name {
  margin: 0.15rem 0 0;
  font-size: 0.82rem;
  color: var(--muted);
}

.course-detail__block {
  border: 1px solid var(--border, #e2e6df);
  border-radius: 6px;
  margin-bottom: 0.35rem;
  background: color-mix(in srgb, var(--surface-2, var(--surface)) 94%, var(--surface));
  opacity: 0.88;
  transition: opacity 0.15s ease, border-color 0.15s ease;
}

.course-detail__block--emphasis {
  opacity: 1;
  border-color: color-mix(in srgb, var(--ink) 25%, var(--border, #d8dcd4));
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.04));
}

.course-detail__summary {
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted) 72%, var(--ink));
  padding: 0.55rem 0.65rem;
}

.course-detail__body {
  padding: 0 0.65rem 0.65rem;
  font-size: 0.86rem;
  line-height: 1.45;
}

.course-detail__lead {
  margin: 0.35rem 0 0.45rem;
  color: var(--ink);
  line-height: 1.5;
}

.course-detail__note {
  margin: 0.35rem 0 0;
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.45;
}

.course-detail__note strong {
  color: var(--ink);
  font-weight: 600;
}

.course-detail__bullets {
  margin: 0 0 0.45rem;
  padding-left: 1.1rem;
  font-size: 0.84rem;
  line-height: 1.45;
}

.course-detail__bullets li + li {
  margin-top: 0.2rem;
}

.course-detail__ranked-list {
  margin: 0.2rem 0 0.45rem;
  padding-left: 1.25rem;
  font-size: 0.84rem;
  line-height: 1.45;
}

.course-detail__ranked-list li + li {
  margin-top: 0.15rem;
}

.course-detail__interpret {
  margin: 0.35rem 0 0;
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.45;
}

.course-detail__facts {
  margin: 0 0 0.5rem;
  display: grid;
  gap: 0.3rem;
}

.course-detail__facts div {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 0.35rem;
}

.course-detail__facts dt {
  margin: 0;
  font-weight: 600;
  color: var(--muted);
  font-size: 0.78rem;
}

.course-detail__facts dd {
  margin: 0;
}

.course-detail__good-run {
  margin-top: 0.5rem;
}

.course-detail__links {
  margin: 0.5rem 0 0;
}

@media (max-width: 820px) {
  .course-explorer {
    grid-template-columns: 1fr;
    grid-template-areas: "nav" "stage";
  }

  .course-explorer__nav {
    display: none;
  }

  .course-nav__mobile-label {
    display: block;
  }

  .course-explorer__nav-label {
    display: none;
  }
}

@media (max-width: 480px) {
  .course-page-head__row {
    flex-direction: column;
    align-items: stretch;
  }

  .course-lens--compact {
    display: flex;
    width: 100%;
  }

  .course-lens--compact .course-lens__btn {
    flex: 1 1 0;
    text-align: center;
    padding: 0.5rem 0.25rem;
  }
}

/* Results hub return link on detailed table/analytics pages */
.results-hub-back {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
}

.results-hub-back a {
  font-weight: 600;
  text-decoration: none;
}

.results-hub-back a:hover {
  text-decoration: underline;
}

/* Results landing page (editorial front door) */
main.page-layout--results-landing {
  max-width: 52rem;
  margin: 0 auto;
  padding: 0 1rem 2.5rem;
}

.results-landing-page .site-breadcrumbs {
  margin-bottom: 0.75rem;
}

.results-hero {
  margin: 0 0 2rem;
  padding: 1.25rem 0 0.5rem;
}

.results-hero__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.results-hero__title {
  margin: 0;
  font-size: clamp(1.85rem, 5vw, 2.35rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.results-hero__lede {
  margin: 0.55rem 0 1.25rem;
  max-width: 38rem;
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--muted);
}

.results-stat-grid {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.results-stat-card {
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.results-stat-card__label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.results-stat-card__value {
  margin: 0.2rem 0 0;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}

.results-stat-card__detail {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
}

.results-section {
  margin: 0 0 2.25rem;
  padding: 0 0 0.25rem;
}

.results-section__header h2 {
  margin: 0;
  font-size: 1.35rem;
  letter-spacing: -0.01em;
}

.results-section__header p {
  margin: 0.35rem 0 0.95rem;
  color: var(--muted);
  line-height: 1.5;
}

.results-section__cta {
  margin: 0.85rem 0 0;
}

.results-section__cta a {
  font-weight: 600;
  text-decoration: none;
}

.results-section__cta a:hover {
  text-decoration: underline;
}

.results-history-board {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
}

.results-history-board__charts {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}

.results-history-board__seasons {
  min-width: 0;
}

.results-history-board__seasons-title {
  margin: 0 0 0.25rem;
  font-size: 0.95rem;
}

.results-history-board__seasons-note {
  margin: 0 0 0.45rem;
  font-size: 0.75rem;
  color: var(--muted);
}

.results-leg-records-board {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.results-section--leg-records {
  margin-bottom: 2.5rem;
}

.results-records-board__header h2 {
  font-size: 1.45rem;
}

.results-records-board {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 1.15rem 1.1rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--border) 88%, var(--accent) 12%);
  border-radius: calc(var(--radius) + 2px);
  background: color-mix(in srgb, var(--surface) 94%, var(--accent-soft));
  box-shadow: 0 1px 0 color-mix(in srgb, var(--text) 4%, transparent);
}

.results-leg-records-block {
  min-width: 0;
}

.results-leg-records-block__header {
  margin-bottom: 0.75rem;
}

.results-records-board__lower {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

.results-records-board__aside {
  padding: 0.95rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.results-records-board__aside-title {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  font-weight: 700;
}

.results-records-board__stats {
  margin: 0;
  display: grid;
  gap: 0.75rem;
}

.results-records-board__stat {
  margin: 0;
}

.results-records-board__stat dt {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.results-records-board__stat dd {
  margin: 0.18rem 0 0;
  font-size: 0.92rem;
  line-height: 1.45;
}

.results-record-card {
  padding: 0.95rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.results-leg-records-strongest {
  max-width: none;
}

.results-leg-records-table-wrap {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text) 5%, transparent);
}

.results-leg-records-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

.results-leg-records-table thead th {
  padding: 0.62rem 0.9rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: left;
  color: var(--muted);
  background: color-mix(in srgb, var(--accent-soft) 42%, var(--surface));
}

.results-leg-records-table tbody th,
.results-leg-records-table tbody td {
  padding: 0.62rem 0.9rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
  text-align: left;
  vertical-align: middle;
}

.results-leg-records-table tbody tr:nth-child(even) td,
.results-leg-records-table tbody tr:nth-child(even) th {
  background: color-mix(in srgb, var(--surface) 92%, var(--accent-soft));
}

.results-leg-records-table tbody tr:first-child th,
.results-leg-records-table tbody tr:first-child td {
  border-top: 0;
}

.results-leg-records-table__leg {
  width: 4.75rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.results-leg-records-table__runner {
  font-weight: 600;
  overflow-wrap: normal;
  word-break: keep-all;
  hyphens: manual;
}

.results-leg-records-table__time,
.results-leg-records-table__pace,
.results-leg-records-table__year {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.results-leg-records-table__time {
  width: 5.75rem;
}

.results-leg-records-table__pace {
  width: 5.5rem;
}

.results-leg-records-table__year {
  width: 4.25rem;
}

.results-leg-records-table__distance,
.results-leg-records-table__col-distance {
  width: 6.25rem;
  font-size: 0.86rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.results-leg-records-table__empty {
  margin: 0;
  color: var(--muted);
}

main.arch-proto-shell.page-layout--data {
  max-width: var(--content-max-width);
}

.results-chart-duo {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
}

.results-chart-stack {
  min-width: 0;
}

.results-chart-panel {
  padding: 0.65rem 0.55rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface) 92%, var(--accent-soft));
}

.results-chart-panel__title {
  margin: 0;
  font-size: 0.95rem;
}

.results-chart-panel__note {
  margin: 0.15rem 0 0.45rem;
  font-size: 0.75rem;
  color: var(--muted);
}

.results-chart__wrap {
  position: relative;
}

.results-chart__svg {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.results-chart__axis {
  stroke: var(--border);
  stroke-width: 1;
}

.results-chart__grid {
  stroke: color-mix(in srgb, var(--border) 65%, transparent);
  stroke-width: 1;
  stroke-dasharray: 3 4;
}

.results-chart__axis-title {
  font-size: 8px;
  font-weight: 600;
  fill: var(--muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.results-chart__y-label {
  font-size: 8px;
  fill: var(--muted);
  font-variant-numeric: tabular-nums;
}

.results-chart__line {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.results-chart__dot {
  fill: var(--accent);
  stroke: var(--surface);
  stroke-width: 1.5;
  cursor: pointer;
  outline: none;
}

.results-chart__dot.is-active,
.results-chart__dot:hover,
.results-chart__dot:focus-visible {
  fill: color-mix(in srgb, var(--accent) 75%, #fff);
  stroke: var(--accent);
  stroke-width: 2;
}

.results-chart__label {
  font-size: 8px;
  fill: var(--muted);
}

.results-chart-tooltip {
  position: absolute;
  z-index: 2;
  transform: translateX(-50%);
  padding: 0.28rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  background: var(--surface);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--text) 12%, transparent);
  font-size: 0.72rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  pointer-events: none;
}

.results-rank-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
}

.results-rank-list__item {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  padding: 0.55rem 0.75rem;
  border-top: 1px solid var(--border);
}

.results-rank-list__item:first-child {
  border-top: 0;
}

.results-rank-list__rank {
  flex: 0 0 1.5rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}

.results-rank-list__body {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 0.2rem 0.55rem;
  align-items: baseline;
  min-width: 0;
}

.results-rank-list__primary {
  font-weight: 600;
}

.results-rank-list__secondary {
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

.results-rank-list__meta {
  font-size: 0.82rem;
  color: var(--muted);
}

.results-record-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
}

.results-record-panel {
  min-width: 0;
}

.results-record-panel__title {
  margin: 0 0 0.45rem;
  font-size: 0.92rem;
  font-weight: 700;
}

.results-record-panel__note {
  margin: -0.25rem 0 0.45rem;
  font-size: 0.75rem;
  color: var(--muted);
}

.results-fact-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}

.results-fact-card {
  padding: 0.95rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--accent-soft) 35%, var(--surface));
}

.results-fact-card__accent {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
}

.results-fact-card__title {
  margin: 0;
  font-size: 1rem;
}

.results-fact-card__body {
  margin: 0.4rem 0 0;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--muted);
}

.results-deep-link-grid {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: 1fr;
}

.results-deep-link {
  display: block;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  text-decoration: none;
  color: inherit;
}

.results-deep-link:hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}

.results-deep-link__title {
  margin: 0;
  font-size: 1rem;
}

.results-deep-link__line {
  margin: 0.3rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.45;
}

.results-deep-link__cta {
  display: inline-block;
  margin-top: 0.45rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--accent);
}

@media (min-width: 640px) {
  .results-stat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .results-stat-card:last-child:nth-child(odd) {
    grid-column: span 1;
  }

  .results-chart-duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .results-record-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .results-record-grid--duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .results-fact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .results-deep-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 960px) {
  .results-history-board {
    grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.75fr);
    align-items: start;
    gap: 1rem;
  }

  .results-history-board__seasons {
    position: sticky;
    top: 1rem;
  }
}

@media (min-width: 900px) {
  .results-stat-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .results-record-grid:not(.results-record-grid--duo) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 960px) {
  .results-records-board__lower {
    grid-template-columns: minmax(16rem, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
    gap: 1.1rem;
  }
}

@media (max-width: 639px) {
  .results-records-board {
    padding: 0.95rem 0.85rem 1.05rem;
  }

  .results-leg-records-table__col-distance,
  .results-leg-records-table__distance {
    display: none;
  }

  .results-leg-records-table thead th,
  .results-leg-records-table tbody th,
  .results-leg-records-table tbody td {
    padding-inline: 0.65rem;
  }

  .results-leg-records-table__leg {
    width: 3.75rem;
  }

  .results-leg-records-table__time,
  .results-leg-records-table__pace,
  .results-leg-records-table__year {
    width: auto;
  }
}

@media (min-width: 1100px) {
  main.page-layout--results-landing {
    max-width: 76rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .results-hero__lede {
    max-width: 44rem;
  }

  .results-record-grid:not(.results-record-grid--duo) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .results-fact-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .results-deep-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .results-chart-duo {
    gap: 1rem;
  }

  .results-history-board {
    gap: 1.15rem;
  }
}

/* —— Launch Director (operations shell) —— */
body.launch-director-page {
  background: var(--bg);
  color: var(--ink);
}

main.launch-director-shell {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 0;
  max-width: none;
}

.ld-app {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

.ld-topbar {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: calc(0.45rem + env(safe-area-inset-top, 0px))
    max(var(--content-padding-x), env(safe-area-inset-right, 0px))
    0.45rem
    max(var(--content-padding-x), env(safe-area-inset-left, 0px));
  border-bottom: 1px solid color-mix(in srgb, var(--border) 88%, var(--ink));
  background: color-mix(in srgb, var(--surface) 94%, var(--bg));
  z-index: 30;
}

.ld-topbar__brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.ld-topbar__home {
  display: flex;
  flex-shrink: 0;
  border-radius: 6px;
  line-height: 0;
}

.ld-topbar__home:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.ld-topbar__icon {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--ink) 12%, transparent);
}

.ld-topbar__identity {
  min-width: 0;
}

.ld-topbar__eyebrow {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.15;
}

.ld-topbar__title {
  margin: 0.06rem 0 0;
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.1;
  color: var(--ink);
}

.ld-topbar__title a {
  color: inherit;
  text-decoration: none;
}

.ld-topbar__title a:hover {
  color: var(--accent-hover);
}

.ld-topbar__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  flex-shrink: 0;
}

.ld-topbar__link {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.2rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
  touch-action: manipulation;
}

.ld-topbar__link:hover {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
}

.ld-topbar__link--muted {
  color: var(--muted);
}

.ld-layout {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  align-items: stretch;
}

.ld-sidebar {
  display: none;
  flex-shrink: 0;
  width: 13.5rem;
  padding: 1rem 0.75rem 1.5rem;
  border-right: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 88%, var(--bg));
}

.ld-sidebar__heading {
  margin: 0 0 0.55rem;
  padding: 0 0.55rem;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-sidebar__links {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.ld-sidebar__link {
  display: block;
  padding: 0.45rem 0.55rem;
  border-radius: var(--radius-sm);
  font-family: var(--font-sans);
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--muted);
  text-decoration: none;
  line-height: 1.25;
  touch-action: manipulation;
}

.ld-sidebar__link:hover {
  color: var(--ink);
  background: color-mix(in srgb, var(--accent-soft) 65%, transparent);
}

.ld-sidebar__link.is-active {
  color: var(--ink);
  font-weight: 600;
  background: var(--accent-soft);
  border: 1px solid var(--accent-soft-border);
}

.ld-main {
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 1.15rem var(--content-padding-x) 2rem;
}

.ld-mobile-nav {
  display: block;
  margin: -0.35rem 0 0.85rem;
}

.ld-mobile-nav__scroll {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding-bottom: 0.15rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.ld-mobile-nav__scroll::-webkit-scrollbar {
  display: none;
}

.ld-mobile-nav__link {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.25rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
}

.ld-mobile-nav__link.is-active {
  color: var(--ink);
  font-weight: 600;
  background: var(--accent-soft);
  border-color: var(--accent-soft-border);
}

.ld-page {
  max-width: var(--content-max-width);
  margin: 0 auto;
}

.ld-page__intro {
  margin-bottom: 1.25rem;
}

.ld-page__eyebrow {
  margin: 0 0 0.35rem;
  font-family: var(--font-sans);
  font-size: max(0.8rem, 12px);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-page__title {
  margin: 0 0 0.45rem;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--ink);
}

.ld-page__lede {
  margin: 0;
  max-width: 42rem;
  font-size: max(1rem, 16px);
  line-height: 1.5;
  color: var(--muted);
}

.ld-dashboard__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.ld-dashboard-card {
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.ld-dashboard-card--wide {
  grid-column: 1 / -1;
}

.ld-dashboard-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.2rem;
}

.ld-dashboard-card__label {
  margin: 0;
  font-family: var(--font-sans);
  font-size: max(0.75rem, 12px);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.25;
}

.ld-dashboard-card__value {
  margin: 0.15rem 0 0;
  font-family: var(--font-mono);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.ld-dashboard-card__meta {
  margin: 0.35rem 0 0;
  font-size: max(0.82rem, 12px);
  line-height: 1.4;
  color: var(--faint);
}

.ld-status-pill {
  display: inline-block;
  flex-shrink: 0;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--bg);
  font-family: var(--font-sans);
  font-size: max(0.72rem, 12px);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

.ld-status-pill--planning,
.ld-status-pill--draft,
.ld-status-pill--pending {
  border-color: color-mix(in srgb, var(--accent) 25%, var(--border));
  background: var(--accent-soft);
  color: var(--accent-hover);
}

.ld-status-pill--review {
  border-color: color-mix(in srgb, #9a7b2e 30%, var(--border));
  background: color-mix(in srgb, #9a7b2e 10%, var(--surface));
  color: color-mix(in srgb, #9a7b2e 75%, var(--ink));
}

.ld-status-pill--standby,
.ld-status-pill--idle,
.ld-status-pill--unpublished {
  border-color: var(--border);
  background: color-mix(in srgb, var(--bg) 80%, var(--surface));
  color: var(--faint);
}

.ld-status-pill--pass,
.ld-status-pill--published,
.ld-status-pill--ready {
  border-color: color-mix(in srgb, #1f6b3f 30%, var(--border));
  background: color-mix(in srgb, #1f6b3f 10%, var(--surface));
  color: color-mix(in srgb, #1f6b3f 80%, var(--ink));
}

.ld-status-pill--fail,
.ld-status-pill--blocked {
  border-color: color-mix(in srgb, #9b3d3d 30%, var(--border));
  background: color-mix(in srgb, #9b3d3d 10%, var(--surface));
  color: color-mix(in srgb, #9b3d3d 85%, var(--ink));
}

.ld-status-pill--current,
.ld-status-pill--open {
  border-color: color-mix(in srgb, #1f6b3f 30%, var(--border));
  background: color-mix(in srgb, #1f6b3f 10%, var(--surface));
  color: color-mix(in srgb, #1f6b3f 80%, var(--ink));
}

.ld-status-pill--checking,
.ld-status-pill--later,
.ld-status-pill--closed,
.ld-status-pill--unavailable {
  border-color: var(--border);
  background: color-mix(in srgb, var(--bg) 80%, var(--surface));
  color: var(--faint);
}

.ld-dashboard-notes {
  margin-top: 1.25rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--accent-soft) 35%, var(--surface));
}

.ld-dashboard-notes__text {
  margin: 0;
  font-size: max(0.9rem, 14px);
  line-height: 1.45;
  color: var(--muted);
}

.ld-dashboard-notes__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  color: var(--ink);
}

.ld-interest-panel {
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.ld-interest-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.8rem;
}

.ld-interest-panel__head h2 {
  margin: 0.15rem 0 0;
  font-size: 1.05rem;
  color: var(--ink);
}

.ld-interest-panel__eyebrow {
  margin: 0;
  font: 600 0.68rem/1.2 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-interest-panel [role="status"] {
  margin: 0;
  color: var(--muted);
}

.ld-interest-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0.9rem 0 0;
  padding: 0;
  list-style: none;
}

.ld-interest-list li {
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--ink);
}

@media (max-width: 520px) {
  .ld-interest-list {
    grid-template-columns: 1fr;
  }
}

.ld-placeholder-panel {
  padding: 1.25rem 1rem;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface) 92%, var(--bg));
}

.ld-placeholder-panel__eyebrow {
  margin: 0 0 0.35rem;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-placeholder-panel__title {
  margin: 0 0 0.45rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
}

.ld-placeholder-panel__text {
  margin: 0 0 0.75rem;
  max-width: 36rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--muted);
}

.ld-placeholder-panel__link {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
}

.ld-placeholder-panel__link:hover {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
}

.ld-sidebar__group + .ld-sidebar__group {
  margin-top: 1.1rem;
}

.ld-team-ops-banner {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius-sm);
  font-size: 0.86rem;
  line-height: 1.45;
  background: color-mix(in srgb, var(--accent-soft) 55%, var(--surface));
  border: 1px solid var(--accent-soft-border);
  color: var(--ink);
}

.ld-team-ops-banner--error {
  background: color-mix(in srgb, #c44 12%, var(--surface));
  border-color: color-mix(in srgb, #c44 35%, var(--border));
}

.ld-travel-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.ld-travel-summary__card {
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.ld-travel-summary__label {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-travel-summary__value {
  margin: 0.2rem 0 0;
  font-size: 1.35rem;
  font-weight: 650;
  line-height: 1.15;
  color: var(--ink);
}

.ld-travel-summary__meta {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--muted);
}

.ld-travel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.15rem;
}

.ld-travel-runners__title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
}

.ld-travel-runners__cards {
  display: grid;
  gap: 0.65rem;
}

.ld-travel-card {
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.ld-travel-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}

.ld-travel-card__name {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
}

.ld-travel-card__meta {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.82rem;
}

.ld-travel-card__meta div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.ld-travel-card__meta dt {
  margin: 0;
  color: var(--muted);
  font-weight: 500;
}

.ld-travel-card__meta dd {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.ld-travel-card__link {
  font-size: 0.78rem;
}

.ld-travel-runners__table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.ld-travel-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.ld-travel-table th,
.ld-travel-table td {
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: middle;
}

.ld-travel-table th {
  font-weight: 600;
  background: color-mix(in srgb, var(--surface) 90%, var(--bg));
}

/* —— Launch Director Crew Notes —— */
.ld-crew-notes-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.ld-crew-notes-section__title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
}

.ld-crew-notes-filters {
  margin-bottom: 1rem;
}

.ld-crew-notes-filters__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0.65rem;
}

.ld-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.84rem;
}

.ld-field__label {
  font-weight: 600;
  color: var(--muted);
}

.ld-field input,
.ld-field select,
.ld-field textarea {
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

.ld-field--full {
  grid-column: 1 / -1;
}

.ld-field--checkbox {
  flex-direction: row;
  align-items: center;
  gap: 0.45rem;
}

.ld-field--checkbox input {
  width: auto;
}

.ld-crew-notes-create {
  margin-bottom: 1.15rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.ld-crew-notes-create__summary {
  padding: 0.75rem 0.85rem;
  font-weight: 600;
  cursor: pointer;
}

.ld-crew-notes-form {
  padding: 0 0.85rem 0.85rem;
}

.ld-crew-notes-form__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0.65rem;
}

.ld-crew-notes-form__actions {
  margin-top: 0.75rem;
}

.ld-crew-notes-inline-status {
  margin: 0 0 0.75rem;
  font-size: 0.84rem;
  color: var(--muted);
}

.ld-crew-notes-inline-status--error {
  color: color-mix(in srgb, #c44 75%, var(--ink));
}

.ld-crew-notes-inline-status--ok {
  color: color-mix(in srgb, #2a7 65%, var(--ink));
}

.ld-crew-notes-cards {
  display: grid;
  gap: 0.65rem;
}

.ld-crew-notes-card {
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.ld-crew-notes-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}

.ld-crew-notes-card__location {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-crew-notes-card__title {
  margin: 0.15rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
}

.ld-crew-notes-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.65rem;
  margin-bottom: 0.45rem;
}

.ld-crew-notes-card__coords {
  font-size: 0.78rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.ld-crew-notes-card__note {
  margin: 0 0 0.45rem;
  font-size: 0.84rem;
  line-height: 1.45;
  white-space: pre-wrap;
}

.ld-crew-notes-card__note--empty {
  color: var(--faint);
  font-style: italic;
}

.ld-crew-notes-card__updated {
  margin: 0 0 0.55rem;
  font-size: 0.75rem;
  color: var(--faint);
}

.ld-crew-notes-cat {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--accent-soft) 45%, var(--surface));
  border: 1px solid var(--accent-soft-border);
  color: var(--ink);
}

.ld-crew-notes-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ld-btn--sm {
  padding: 0.28rem 0.55rem;
  font-size: 0.78rem;
}

.ld-crew-notes-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.ld-crew-notes-table {
  width: 100%;
  min-width: 44rem;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.ld-crew-notes-table th,
.ld-crew-notes-table td {
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}

.ld-crew-notes-table th {
  font-weight: 600;
  background: color-mix(in srgb, var(--surface) 90%, var(--bg));
}

.ld-crew-notes-table__note {
  max-width: 18rem;
  white-space: pre-wrap;
}

.ld-crew-notes-table__actions .ld-crew-notes-actions {
  flex-direction: column;
  align-items: flex-start;
}

.ld-crew-notes-empty {
  margin: 0;
  padding: 0.85rem;
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm);
  color: var(--muted);
  font-size: 0.86rem;
}

/* —— Launch Director Expenses —— */
.ld-expenses-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.ld-expenses-section__title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
}

.ld-expenses-filters {
  margin-bottom: 1rem;
}

.ld-expenses-filters__grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0.65rem;
}

.ld-expenses-cards {
  display: grid;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.ld-expenses-card {
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.ld-expenses-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.ld-expenses-card__meta {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-expenses-card__title {
  margin: 0.15rem 0 0;
  font-size: 0.95rem;
  font-weight: 650;
}

.ld-expenses-card__amount {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  white-space: nowrap;
}

.ld-expenses-card__desc {
  margin: 0 0 0.55rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--ink);
}

.ld-expenses-card__receipt {
  margin: 0 0 0.75rem;
  font-size: 0.78rem;
  color: var(--muted);
}

.ld-expenses-card__actions {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.ld-expenses-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.ld-expenses-table {
  width: 100%;
  min-width: 40rem;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.ld-expenses-table th,
.ld-expenses-table td {
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}

.ld-expenses-table th {
  font-weight: 600;
  background: color-mix(in srgb, var(--surface) 90%, var(--bg));
}

.ld-expenses-table__desc {
  max-width: 22rem;
  white-space: pre-wrap;
}

@media (min-width: 768px) {
  .ld-expenses-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ld-expenses-filters__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 768px) {
  .ld-sidebar {
    display: block;
  }

  .ld-mobile-nav {
    display: none;
  }

  .ld-travel-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .ld-travel-runners__cards {
    display: none;
  }

  .ld-crew-notes-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ld-crew-notes-filters__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ld-crew-notes-form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ld-crew-notes-cards {
    display: none;
  }
}

@media (min-width: 900px) {
  .ld-dashboard__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ld-dashboard__grid {
    grid-template-columns: 1fr;
  }

  .ld-topbar__actions {
    display: none;
  }
}

/* —— Launch Director Assignments workspace —— */
body.launch-director-page .ld-main {
  overflow-x: clip;
}

.ld-assignments-summary__grid {
  margin-bottom: 1rem;
}

.ld-workflow-steps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.85rem;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--muted);
}

.ld-workflow-steps__item {
  color: var(--muted);
  text-decoration: none;
}

.ld-workflow-steps__item.is-active {
  color: var(--ink);
  font-weight: 600;
}

.ld-workflow-steps__sep {
  color: var(--faint);
  font-size: 0.72rem;
}

.ld-assignments-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 1rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface) 92%, var(--bg));
  position: sticky;
  top: 0;
  z-index: 5;
}

.ld-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.35rem 0.8rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  cursor: pointer;
  touch-action: manipulation;
  white-space: nowrap;
}

.ld-btn:hover:not(:disabled) {
  border-color: var(--accent-soft-border);
  background: var(--accent-soft);
}

.ld-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.ld-btn--primary {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--surface);
}

.ld-btn--primary:hover:not(:disabled) {
  background: color-mix(in srgb, var(--ink) 88%, black);
  border-color: color-mix(in srgb, var(--ink) 88%, black);
  color: var(--surface);
}

.ld-btn--secondary {
  background: var(--accent-soft);
  border-color: var(--accent-soft-border);
}

.ld-btn--ghost {
  background: transparent;
}

.ld-assignments-table-wrap {
  display: block;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
}

.ld-assignments-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
}

.ld-assignments-table thead th {
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--bg) 65%, var(--surface));
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: left;
  color: var(--muted);
}

.ld-assignments-table tbody th,
.ld-assignments-table tbody td {
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
  vertical-align: top;
}

.ld-assignments-table tbody tr:last-child th,
.ld-assignments-table tbody tr:last-child td {
  border-bottom: none;
}

.ld-assignments-row--open {
  background: color-mix(in srgb, var(--bg) 40%, var(--surface));
}

.ld-assignments-leg__num {
  display: block;
  font-weight: 600;
  color: var(--ink);
}

.ld-assignments-leg__time,
.ld-assignments-card__time {
  display: block;
  margin-top: 0.1rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--faint);
}

.ld-assignments-runner-view {
  font-weight: 500;
  color: var(--ink);
}

.ld-assignments-runner-edit,
.ld-assignments-card__runner-edit {
  display: none;
}

.ld-assignments-page--editing .ld-assignments-runner-view,
.ld-assignments-page--editing .ld-assignments-card__runner-view {
  display: none;
}

.ld-assignments-page--editing .ld-assignments-runner-edit,
.ld-assignments-page--editing .ld-assignments-card__runner-edit {
  display: block;
}

.ld-assignments-runner-select {
  width: 100%;
  max-width: 16rem;
  min-height: 2.35rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  font-family: var(--font-sans);
  font-size: 0.86rem;
  color: var(--ink);
}

.ld-assignments-muted {
  color: var(--faint);
}

.ld-leg-state-pill {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ld-leg-state-pill--assigned {
  background: color-mix(in srgb, #1f6b3f 12%, var(--surface));
  color: color-mix(in srgb, #1f6b3f 80%, var(--ink));
}

.ld-leg-state-pill--open {
  background: color-mix(in srgb, var(--bg) 80%, var(--surface));
  color: var(--muted);
}

.ld-assignments-cards {
  display: none;
  flex-direction: column;
  gap: 0.55rem;
}

.ld-assignments-card {
  padding: 0.75rem 0.8rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.ld-assignments-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  margin-bottom: 0.45rem;
}

.ld-assignments-card__leg {
  margin: 0;
  font-weight: 600;
  color: var(--ink);
}

.ld-assignments-card__runner-label {
  margin: 0 0 0.15rem;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-assignments-card__runner-view {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 500;
}

.ld-assignments-card__notes {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.4;
}

.ld-workflow-panel {
  margin-top: 1.35rem;
  padding: 1rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  scroll-margin-top: 4.5rem;
}

.ld-workflow-panel__title {
  margin: 0 0 0.25rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
}

.ld-workflow-panel__lede {
  margin: 0;
  font-size: 0.86rem;
  color: var(--muted);
  line-height: 1.45;
}

.ld-workflow-panel__head {
  margin-bottom: 0.75rem;
}

.ld-validation-checks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ld-validation-check {
  padding: 0.6rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--bg) 35%, var(--surface));
}

.ld-validation-check__head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: flex-start;
}

.ld-validation-check__label {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink);
}

.ld-validation-check__status {
  flex-shrink: 0;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.ld-validation-check__detail {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--muted);
}

.ld-validation-check--pass .ld-validation-check__status {
  color: color-mix(in srgb, #1f6b3f 85%, var(--ink));
}

.ld-validation-check--fail .ld-validation-check__status {
  color: color-mix(in srgb, #9b3d3d 85%, var(--ink));
}

.ld-validation-check--warn .ld-validation-check__status {
  color: color-mix(in srgb, #9a7b2e 85%, var(--ink));
}

.ld-publish-readiness__status {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
}

.ld-publish-readiness__status--ready {
  color: color-mix(in srgb, #1f6b3f 85%, var(--ink));
}

.ld-publish-readiness__status--blocked {
  color: color-mix(in srgb, #9b3d3d 85%, var(--ink));
}

.ld-publish-readiness__detail {
  margin: 0 0 0.75rem;
  font-size: 0.86rem;
  color: var(--muted);
  line-height: 1.45;
}

.ld-page--publish-readiness .ld-publish-readiness-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ld-publish-readiness-panel {
  margin: 0 0 1.25rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.ld-page--publish-readiness .ld-page__section-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 650;
  line-height: 1.25;
}

.ld-publish-readiness-panel__lede {
  margin: 0 0 0.75rem;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--muted);
}

.ld-publish-readiness-sources,
.ld-publish-readiness-checks,
.ld-publish-readiness-consumers {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ld-publish-readiness-sources li,
.ld-publish-readiness-check,
.ld-publish-readiness-consumer {
  padding: 0.55rem 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
}

.ld-publish-readiness-sources li:first-child,
.ld-publish-readiness-check:first-child,
.ld-publish-readiness-consumer:first-child {
  border-top: 0;
  padding-top: 0;
}

.ld-publish-readiness-check,
.ld-publish-readiness-consumer__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
}

.ld-publish-readiness-check__label,
.ld-publish-readiness-consumer__label {
  margin: 0;
  font-weight: 600;
  color: var(--ink);
}

.ld-publish-readiness-check__detail,
.ld-publish-readiness-consumer__note {
  display: block;
  width: 100%;
  margin: 0.2rem 0 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--muted);
}

.ld-publish-readiness-links {
  margin: 0.85rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  align-items: center;
  font-size: 0.88rem;
}

@media (max-width: 720px) {
  .ld-page--publish-readiness .ld-publish-readiness-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ld-page--validation-dashboard .ld-validation-dashboard-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ld-validation-dash-checks {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ld-validation-dash-check {
  padding: 0.65rem 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
}

.ld-validation-dash-check:first-child {
  border-top: 0;
  padding-top: 0;
}

.ld-validation-dash-check__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
}

.ld-validation-dash-check__label {
  margin: 0;
  font-weight: 600;
  color: var(--ink);
}

.ld-validation-dash-check__detail {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--muted);
}

.ld-validation-dash-check--fail .ld-validation-dash-check__label {
  color: color-mix(in srgb, #9b3d3d 70%, var(--ink));
}

@media (max-width: 720px) {
  .ld-page--validation-dashboard .ld-validation-dashboard-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ld-publish-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.55rem 1rem;
  margin: 0 0 0.85rem;
}

.ld-publish-meta dt {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--faint);
}

.ld-publish-meta dd {
  margin: 0.15rem 0 0;
  font-size: 0.86rem;
  color: var(--ink);
}

.ld-publish-meta code {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  word-break: break-all;
}

.ld-publish-note {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
}

.ld-publish-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.ld-btn--danger {
  color: #b42318;
  border-color: rgba(180, 35, 24, 0.35);
  background: rgba(180, 35, 24, 0.06);
}

.ld-btn--danger:hover {
  background: rgba(180, 35, 24, 0.12);
}

.ld-d1-live {
  margin: 0 0 1.25rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--border, rgba(0, 0, 0, 0.08));
  border-radius: 10px;
  background: var(--surface-raised, rgba(0, 0, 0, 0.02));
}

.ld-d1-live__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.5rem;
}

.ld-d1-live__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
}

.ld-d1-live__source {
  margin: 0;
  font-size: 0.78rem;
  color: var(--muted);
}

.ld-d1-live__status {
  margin: 0 0 0.65rem;
  font-size: 0.84rem;
  line-height: 1.45;
}

.ld-d1-live__diagnostics {
  margin: -0.35rem 0 0.65rem;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--ld-muted, #6b6560);
  word-break: break-word;
}

.ld-d1-live__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem 1rem;
  margin: 0 0 0.75rem;
}

.ld-d1-live__meta dt {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}

.ld-d1-live__meta dd {
  margin: 0.15rem 0 0;
  font-size: 0.88rem;
  font-weight: 500;
}

.ld-d1-live__history-title {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
}

.ld-d1-live__history {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--muted);
}

.ld-static-export {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border, rgba(0, 0, 0, 0.08));
}

.ld-static-export__title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.ld-static-export__checklist {
  margin: 0 0 0.75rem;
  padding-left: 1.2rem;
  font-size: 0.84rem;
  line-height: 1.5;
}

.ld-static-export__drift {
  margin: 0 0 0.65rem;
  padding: 0.5rem 0.65rem;
  font-size: 0.82rem;
  line-height: 1.4;
  border-radius: 6px;
  background: rgba(180, 120, 0, 0.08);
  color: #8a5a00;
}

.ld-static-export__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.ld-static-export__preview {
  width: 100%;
  box-sizing: border-box;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  line-height: 1.4;
  padding: 0.65rem;
  border: 1px solid var(--border, rgba(0, 0, 0, 0.12));
  border-radius: 6px;
  resize: vertical;
}

.ld-assignments-notes-edit {
  display: none;
}

.ld-assignments-page--editing .ld-assignments-notes-view {
  display: none;
}

.ld-assignments-page--editing .ld-assignments-notes-edit {
  display: block;
}

.ld-assignments-notes-input {
  width: 100%;
  max-width: 16rem;
  box-sizing: border-box;
  font: inherit;
  font-size: 0.88rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border, rgba(0, 0, 0, 0.15));
  border-radius: 6px;
}

@media (max-width: 900px) {
  .ld-assignments-table-wrap {
    display: none;
  }

  .ld-assignments-cards {
    display: flex;
  }

  .ld-assignments-summary__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ld-assignments-runner-select {
    max-width: none;
  }
}

@media (max-width: 640px) {
  .ld-assignments-summary__grid {
    grid-template-columns: 1fr;
  }

  .ld-assignments-toolbar {
    position: static;
  }

  .ld-assignments-toolbar .ld-btn {
    flex: 1 1 calc(50% - 0.25rem);
    min-width: 8.5rem;
  }

  .ld-assignments-toolbar .ld-btn--ghost:last-child {
    flex-basis: 100%;
  }

  [data-ld-assignments-edit-toggle] {
    display: none;
  }

  .ld-d1-live__meta {
    grid-template-columns: 1fr;
  }
}

.platform-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.55rem 1.05rem;
  border: 1px solid var(--accent-soft-border);
  border-radius: var(--radius);
  background: var(--accent-soft);
  color: var(--ink);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.platform-button:hover,
.platform-button:focus-visible {
  border-color: color-mix(in srgb, var(--ink) 18%, var(--border));
  background: color-mix(in srgb, var(--accent-soft) 72%, var(--surface));
  outline: none;
}

.platform-button:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}

.platform-button--secondary {
  background: var(--surface);
  border-color: var(--border);
  color: var(--muted);
}

.platform-button--secondary:hover,
.platform-button--secondary:focus-visible {
  color: var(--ink);
  border-color: color-mix(in srgb, var(--ink) 18%, var(--border));
  background: var(--surface);
}

/* My Black Lungs product refinement. Cloud Dancer house — not a second dark theme. */
main.page-layout--my-black-lungs.arch-proto-shell {
  max-width: min(calc(100% - (2 * var(--page-pad-x))), 1180px);
}

.mbl-page {
  --mbl-card: var(--surface);
  --mbl-card-border: color-mix(in srgb, var(--border) 78%, transparent);
  gap: clamp(1.55rem, 3.2vw, 2.55rem);
  max-width: none;
}

.mbl-surface {
  margin: 0;
  padding: clamp(1.1rem, 2.2vw, 1.45rem) clamp(1.1rem, 2.4vw, 1.55rem);
  border: 1px solid var(--mbl-card-border);
  border-radius: var(--radius);
  background: var(--mbl-card);
  box-shadow: none;
}

.mbl-surface--membership {
  padding-block: 0.85rem 1rem;
}

.mbl-surface--mission {
  min-height: 8rem;
}

.mbl-mission__name,
.mbl-mission__date,
.mbl-mission__timing,
.mbl-mission__detail,
.mbl-mission__empty { margin: 0; }

.mbl-mission__name {
  color: var(--ink);
  font-size: clamp(1.45rem, 3vw, 2.15rem);
  font-weight: 700;
  letter-spacing: -0.03em;
}

.mbl-mission__date {
  margin-top: 0.55rem;
  color: var(--ink);
  font-size: 1rem;
}

.mbl-mission__timing,
.mbl-mission__detail,
.mbl-mission__empty {
  margin-top: 0.35rem;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.mbl-mission__action { margin-top: 1rem; }
.mbl-mission__ownership { margin: 1rem 0 0; color: var(--muted); }
.mbl-mission-form {
  margin-top: 1rem;
  padding: 1.25rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}
.mbl-mission-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.mbl-mission-form label { display: grid; gap: .35rem; font-weight: 700; color: var(--ink); }
.mbl-mission-form label span { font-weight: 400; color: var(--muted); }
.mbl-mission-form input {
  width: 100%;
  padding: .7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg);
  color: var(--ink);
  font: inherit;
}
.mbl-mission-form__message { min-height: 1.5em; margin: .8rem 0 0; }
.mbl-mission-form__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
@media (max-width: 640px) { .mbl-mission-form__grid { grid-template-columns: 1fr; } }

.mbl-opening {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: end;
  padding: clamp(0.65rem, 2vw, 1.5rem) 0 clamp(1.1rem, 2.4vw, 1.75rem);
  border-bottom: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
}

.mbl-opening .platform-page-hero {
  margin: 0;
}

.mbl-opening .platform-page-hero__title {
  max-width: 11ch;
  font-size: clamp(2.9rem, 6.5vw, 5.7rem);
  letter-spacing: -0.055em;
  line-height: 0.94;
}

.mbl-opening .platform-page-hero__lede {
  max-width: 34rem;
  margin-top: 0.85rem;
}

.mbl-hero-progress {
  margin: 0;
  padding: 0 0 0.2rem clamp(1.1rem, 2.5vw, 1.75rem);
  border-left: 2px solid var(--ink);
}

.mbl-hero-progress__primary {
  margin: 0;
  font-size: clamp(1.55rem, 2.8vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: var(--ink);
}

.mbl-hero-progress__secondary {
  margin: 0.55rem 0 0;
  max-width: 27rem;
  font-size: clamp(0.96rem, 1.5vw, 1.08rem);
  line-height: 1.4;
  color: var(--muted);
}

.mbl-hero-progress__history {
  margin: 0.85rem 0 0;
  font-size: 0.76rem;
  line-height: 1.45;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.mbl-section-guide {
  position: sticky;
  z-index: 8;
  top: 0.65rem;
  display: flex;
  width: fit-content;
  max-width: 100%;
  gap: 0.15rem;
  margin: -0.15rem 0 0.15rem;
  padding: 0.28rem;
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--mbl-card) 92%, transparent);
  box-shadow: 0 0.2rem 0.75rem color-mix(in srgb, var(--ink) 5%, transparent);
  backdrop-filter: blur(12px);
}

.mbl-section-guide[hidden] {
  display: none;
}

.mbl-section-guide a {
  display: inline-flex;
  align-items: center;
  min-height: 2.2rem;
  padding: 0.2rem 0.78rem;
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}

.mbl-section-guide a:hover,
.mbl-section-guide a:focus-visible {
  background: color-mix(in srgb, var(--border) 42%, transparent);
  color: var(--ink);
  outline: none;
}

.mbl-section {
  scroll-margin-top: 4.25rem;
}

.mbl-section + .mbl-section {
  margin-top: 0;
  padding-top: 0;
}

.mbl-section-heading {
  display: grid;
  grid-template-columns: minmax(7.5rem, 0.28fr) minmax(0, 1fr);
  gap: 0.75rem 1rem;
  align-items: baseline;
  margin-bottom: clamp(0.85rem, 1.8vw, 1.35rem);
  padding-bottom: 0.65rem;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
}

.mbl-section-heading__eyebrow {
  margin: 0;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.mbl-section-heading .platform-section__title {
  margin: 0;
  font-size: clamp(1.65rem, 3.4vw, 2.55rem);
  letter-spacing: -0.04em;
}

.mbl-stat-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.75rem;
}

.mbl-stat {
  display: flex;
  flex-direction: column;
  grid-column: span 2;
  min-width: 0;
  margin: 0;
  padding: 1.05rem 1.1rem 1.15rem;
  border: 1px solid var(--mbl-card-border);
  border-radius: var(--radius);
  background: var(--mbl-card);
  box-shadow: none;
}

.mbl-stat--featured {
  grid-column: span 3;
}

.mbl-stat__value {
  margin: 0;
  order: 1;
  font-size: clamp(1.7rem, 3.4vw, 2.55rem);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

.mbl-stat__label {
  margin: 0.55rem 0 0;
  order: 2;
  font-size: 0.92rem;
  font-weight: 650;
  letter-spacing: -0.015em;
  color: var(--ink);
}

.mbl-stat__detail {
  margin: 0.3rem 0 0;
  order: 3;
  font-size: 0.8rem;
  line-height: 1.4;
  color: var(--muted);
}

.mbl-stat__context {
  margin: auto 0 0;
  padding-top: 0.75rem;
  order: 4;
  max-width: 22rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  color: var(--faint);
  font-size: 0.72rem;
  line-height: 1.4;
}

.mbl-legs-lead {
  margin: 0 0 0.95rem;
  max-width: 40rem;
  font-size: 0.94rem;
  line-height: 1.45;
  color: var(--muted);
}

.mbl-leg-pills {
  display: grid;
  grid-template-columns: repeat(17, minmax(0, 1fr));
  gap: 0.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.mbl-leg-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 2.55rem;
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--bg) 70%, var(--surface));
  color: var(--faint);
  font-size: 0.8rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.mbl-leg-pill--completed {
  border-color: color-mix(in srgb, var(--ink) 34%, var(--border));
  background: var(--surface);
  color: var(--ink);
  font-weight: 700;
  box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--ink) 14%, transparent);
}

.mbl-leg-pill--remaining {
  opacity: 0.55;
}

.mbl-leg-pills--complete .mbl-leg-pill--completed {
  border-color: color-mix(in srgb, var(--ink) 28%, var(--border));
}

.mbl-now-lede {
  margin: 0 0 1rem;
  max-width: 42rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--muted);
}

.mbl-subsection-title {
  margin: 0 0 0.7rem;
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.mbl-subsection-title--steps {
  margin-top: 1.35rem;
}

.mbl-season-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1.25rem;
}

.mbl-season-panel {
  min-width: 0;
  padding: 0.85rem 0 0.15rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
}

.mbl-season-panel__eyebrow {
  margin: 0;
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.mbl-season-panel__value {
  margin: 0.4rem 0 0;
  font-size: clamp(1.3rem, 2.5vw, 1.7rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.mbl-season-panel__detail {
  margin: 0.3rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
}

.mbl-steps,
.mbl-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mbl-timeline {
  display: grid;
  gap: 0.75rem;
}

.mbl-timeline__season {
  display: grid;
  grid-template-columns: minmax(7.5rem, 0.26fr) minmax(0, 1fr);
  gap: clamp(0.85rem, 2.2vw, 1.75rem);
  margin: 0;
  padding: clamp(1rem, 2vw, 1.25rem) clamp(1.05rem, 2.2vw, 1.35rem);
  border: 1px solid var(--mbl-card-border);
  border-radius: var(--radius);
  background: var(--mbl-card);
  box-shadow: none;
}

.mbl-timeline__season-heading {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.mbl-timeline__year {
  margin: 0;
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

.mbl-timeline__season-count {
  margin: 0;
  order: 3;
  color: var(--faint);
  font-size: 0.72rem;
}

.mbl-timeline__season-story {
  margin: 0;
  order: 2;
  max-width: 16rem;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.mbl-timeline__runs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 1.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.mbl-timeline__run {
  min-width: 0;
  padding: 0.35rem 0 0.55rem;
}

.mbl-timeline__run-heading {
  display: flex;
  justify-content: space-between;
  gap: 0.85rem;
  align-items: baseline;
}

.mbl-timeline__time {
  margin: 0;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.mbl-step {
  display: grid;
  grid-template-columns: 1.75rem minmax(0, 1fr);
  gap: 0.55rem 1rem;
  align-items: start;
  padding: 0.7rem 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
}

.mbl-step__index {
  font-size: 1.05rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}

.mbl-step__title {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 650;
  color: var(--ink);
}

.mbl-step__detail {
  margin: 0.15rem 0 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--muted);
}

.mbl-section--membership {
  padding-bottom: 0.75rem;
}

.mbl-membership {
  margin: 0;
  display: grid;
  gap: 0;
}

.mbl-membership__row {
  display: grid;
  grid-template-columns: minmax(7rem, 9.5rem) minmax(0, 1fr);
  gap: 0.55rem 1rem;
  padding: 0.65rem 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
}

.mbl-membership__row:first-child {
  border-top: 0;
  padding-top: 0.15rem;
}

.mbl-membership__row dt {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.mbl-membership__row dd {
  margin: 0;
  font-size: 0.96rem;
  font-weight: 650;
  color: var(--ink);
}

.mbl-membership__note {
  margin: 0.75rem 0 0;
  max-width: 40rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--muted);
}

.mbl-membership__actions {
  margin: 0.65rem 0 0;
}

.mbl-sign-out {
  appearance: none;
  margin: 0.35rem 0 0;
  min-height: 40px;
  padding: 0.4rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--muted);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}

.mbl-sign-out:hover,
.mbl-sign-out:focus-visible {
  border-color: color-mix(in srgb, var(--ink) 24%, var(--border));
  color: var(--ink);
}

.mbl-status:empty {
  display: none;
}

.mbl-status {
  margin: 0.35rem 0 0;
  font-size: 0.86rem;
  color: var(--muted);
  line-height: 1.45;
}

.mbl-hero-progress[hidden],
.mbl-section[hidden],
.mbl-section-guide[hidden] {
  display: none;
}

.mbl-hero-progress__inner--complete .mbl-hero-progress__secondary {
  color: var(--ink);
}

@media (max-width: 1024px) {
  .mbl-stat-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .mbl-stat,
  .mbl-stat--featured {
    grid-column: span 2;
  }

  .mbl-leg-pills {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .mbl-opening {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .mbl-hero-progress {
    padding-left: 1rem;
  }

  .mbl-section-heading {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .mbl-timeline__season {
    grid-template-columns: 1fr;
    gap: 0.7rem;
  }

  .mbl-timeline__season-heading {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.25rem 0.85rem;
  }

  .mbl-timeline__season-story {
    grid-column: 1 / -1;
    max-width: none;
  }

  .mbl-timeline__season-count {
    justify-self: end;
  }

  .mbl-season-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .mbl-page {
    gap: 1.85rem;
  }

  .mbl-opening {
    padding-top: 0.15rem;
    padding-bottom: 1rem;
  }

  .mbl-section-guide {
    position: static;
    width: 100%;
    margin: 0;
    overflow-x: auto;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
    box-shadow: none;
    background: transparent;
    backdrop-filter: none;
  }

  .mbl-section-guide a {
    padding-inline: 0.6rem;
  }

  .mbl-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }

  .mbl-stat,
  .mbl-stat--featured {
    grid-column: span 1;
    padding: 0.85rem 0.9rem 0.95rem;
  }

  .mbl-stat:first-child,
  .mbl-stat--featured:nth-child(2) {
    grid-column: span 2;
  }

  .mbl-stat__value {
    font-size: clamp(1.55rem, 8vw, 2.1rem);
  }

  .mbl-leg-pills {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .mbl-timeline__runs {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .mbl-timeline__run {
    padding: 0.55rem 0;
    border-top: 1px solid color-mix(in srgb, var(--border) 55%, transparent);
  }

  .mbl-timeline__run:first-child {
    border-top: 0;
    padding-top: 0.1rem;
  }

  .mbl-membership__row {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }

  .mbl-surface {
    padding: 0.9rem;
  }
}

/* ============================================================================
   Mission Control — Native Experience Refresh
   Scoped to the Capacitor shell. Behavior/IA unchanged; presentation only.
   Final material pass: warm smoke glass on chrome only (not content cards).
   ============================================================================ */
body.mission-control-native-shell.mission-control-page {
  /* Warm smoke glass — translucent chrome over Black Lungs paper/mist, not clear acrylic. */
  --mc-shell-blur: 22px;
  --mc-shell-saturate: 1.2;
  --mc-shell-material: color-mix(
    in srgb,
    color-mix(in srgb, var(--surface) 82%, var(--logo-mist)) 78%,
    transparent
  );
  --mc-shell-material-solid: color-mix(in srgb, var(--surface) 94%, var(--logo-mist));
  --mc-shell-hairline: color-mix(in srgb, var(--border) 42%, var(--ink) 16%);
  --mc-shell-highlight: color-mix(in srgb, #fff 52%, transparent);
  --mc-shell-depth: 0 8px 22px color-mix(in srgb, var(--ink) 9%, transparent);
  --mc-shell-depth-soft: 0 2px 8px color-mix(in srgb, var(--ink) 6%, transparent);
  --mc-chrome-control-bg: color-mix(in srgb, var(--surface) 55%, transparent);
  --mc-chrome-control-border: color-mix(in srgb, var(--border) 35%, transparent);
  --mc-chrome-control-radius: 999px;
  --mc-tab-active-fill: color-mix(in srgb, var(--accent) 14%, var(--surface));
  --mc-tab-active-accent: var(--ink);
  --mc-tab-inactive: color-mix(in srgb, var(--muted) 70%, var(--ink));
  --mc-tab-label-size: 0.64rem;
  --mc-topbar-title-size: 1.05rem;
  --mc-topbar-eyebrow-size: 0.62rem;
  --mc-topbar-pad-y: 0.55rem;
  --mc-topbar-pad-x: 1rem;
  --mc-countdown-seconds-opacity: 0.48;
  --mc-countdown-seconds-scale: 0.62;
  --mc-content-pad-x: 1.05rem;
  background: var(--bg);
}

html[data-mc-appearance="dark"] body.mission-control-native-shell.mission-control-page {
  --mc-shell-blur: 24px;
  --mc-shell-saturate: 1.14;
  --mc-shell-material: color-mix(
    in srgb,
    color-mix(in srgb, var(--surface) 88%, #1a1816) 82%,
    transparent
  );
  --mc-shell-material-solid: color-mix(in srgb, var(--surface) 96%, #1a1816);
  --mc-shell-hairline: color-mix(in srgb, var(--border) 58%, var(--ink) 14%);
  --mc-shell-highlight: color-mix(in srgb, #fff 10%, transparent);
  --mc-shell-depth: 0 10px 28px color-mix(in srgb, #000 42%, transparent);
  --mc-shell-depth-soft: 0 3px 12px color-mix(in srgb, #000 28%, transparent);
  --mc-chrome-control-bg: color-mix(in srgb, var(--surface) 62%, transparent);
  --mc-tab-active-fill: color-mix(in srgb, var(--accent) 20%, var(--surface));
}

/* —— Shell: top bar —— */
body.mission-control-native-shell .mc-topbar,
body.mission-control-native-shell .mc-topbar--app {
  gap: 0.75rem;
  padding: calc(var(--mc-topbar-pad-y) + env(safe-area-inset-top, 0px))
    max(var(--mc-topbar-pad-x), env(safe-area-inset-right, 0px))
    calc(var(--mc-topbar-pad-y) + 0.12rem)
    max(var(--mc-topbar-pad-x), env(safe-area-inset-left, 0px));
  border-bottom: 0;
  background: var(--mc-shell-material);
  -webkit-backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  box-shadow:
    inset 0 1px 0 var(--mc-shell-highlight),
    inset 0 -1px 0 var(--mc-shell-hairline),
    var(--mc-shell-depth-soft);
}

body.mission-control-native-shell .mc-topbar__brand {
  gap: 0.65rem;
  align-items: center;
}

body.mission-control-native-shell .mc-topbar__icon,
body.mission-control-native-shell .mc-topbar__crest {
  width: 30px;
  height: 30px;
  border-radius: 8px;
}

body.mission-control-native-shell .mc-topbar__eyebrow {
  font-size: var(--mc-topbar-eyebrow-size);
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--mc-chrome-muted);
}

body.mission-control-native-shell .mc-topbar__title {
  margin: 0.08rem 0 0;
  font-size: var(--mc-topbar-title-size);
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--mc-chrome-fg);
}

@supports not (font-weight: 650) {
  body.mission-control-native-shell .mc-topbar__title {
    font-weight: 700;
  }
}

body.mission-control-native-shell .mc-topbar__actions {
  gap: 0.05rem;
}

body.mission-control-native-shell .mc-header-action,
body.mission-control-native-shell .mc-offline-pack-back,
body.mission-control-native-shell .mc-offline-pack-link,
body.mission-control-native-shell .mc-flight-plan-link {
  border: 1px solid var(--mc-chrome-control-border);
  background: var(--mc-chrome-control-bg);
  -webkit-backdrop-filter: saturate(var(--mc-shell-saturate)) blur(calc(var(--mc-shell-blur) * 0.55));
  backdrop-filter: saturate(var(--mc-shell-saturate)) blur(calc(var(--mc-shell-blur) * 0.55));
  color: var(--mc-chrome-fg);
  border-radius: var(--mc-chrome-control-radius);
  min-width: 42px;
  min-height: 42px;
  padding: 0.35rem;
  box-shadow: inset 0 1px 0 var(--mc-shell-highlight);
}

body.mission-control-native-shell .mc-header-action:hover,
body.mission-control-native-shell .mc-header-action:focus-visible,
body.mission-control-native-shell .mc-flight-plan-link:hover,
body.mission-control-native-shell .mc-flight-plan-link:focus-visible {
  background: color-mix(in srgb, var(--accent) 12%, var(--mc-chrome-control-bg));
  border-color: transparent;
  outline: none;
}

body.mission-control-native-shell .mc-header-action:active,
body.mission-control-native-shell .mc-flight-plan-link:active {
  background: color-mix(in srgb, var(--accent) 16%, var(--mc-chrome-control-bg));
}

body.mission-control-native-shell .mc-header-action:focus-visible,
body.mission-control-native-shell .mc-flight-plan-link:focus-visible {
  box-shadow:
    inset 0 1px 0 var(--mc-shell-highlight),
    0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);
}

/* —— Shell: panels —— */
body.mission-control-native-shell .mission-control-app {
  max-width: none;
  background: var(--bg);
}

body.mission-control-native-shell .mc-panels {
  padding: 0.85rem max(var(--mc-content-pad-x), env(safe-area-inset-right, 0px)) 0.45rem
    max(var(--mc-content-pad-x), env(safe-area-inset-left, 0px));
  background: var(--bg);
}

body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page)
  .mc-panel--legs.is-active,
body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page)
  .mc-panel--mission.is-active {
  padding: 0;
}

body.mission-control-native-shell .mc-panel--legs,
body.mission-control-native-shell .mc-panel--mission {
  gap: 0;
}

/* —— Shell: tab bar ——
   In-flow floating island (not position:fixed) — keeps hit-testing / map safety
   from NATIVE_SHELL_CERTIFICATION while reading as dimensional chrome. */
body.mission-control-native-shell .mc-tabbar,
body.mission-control-native-shell .mc-tabbar--app,
body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-tabbar {
  flex: 0 0 auto;
  position: relative;
  gap: 0.2rem;
  min-height: 3.55rem;
  margin: 0.15rem max(0.65rem, env(safe-area-inset-right, 0px))
    calc(0.4rem + env(safe-area-inset-bottom, 0px))
    max(0.65rem, env(safe-area-inset-left, 0px));
  padding: 0.32rem 0.32rem;
  border: 0;
  border-top: 0;
  border-radius: 22px;
  background: var(--mc-shell-material);
  -webkit-backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  box-shadow:
    inset 0 1px 0 var(--mc-shell-highlight),
    inset 0 0 0 1px color-mix(in srgb, var(--mc-shell-hairline) 70%, transparent),
    var(--mc-shell-depth);
  z-index: 20;
}

body.mission-control-native-shell .mc-tabbar__btn {
  gap: 0.22rem;
  min-height: 3.2rem;
  min-width: 44px;
  padding: 0.32rem 0.18rem 0.28rem;
  border-radius: 16px;
  font-size: var(--mc-tab-label-size);
  font-weight: 500;
  letter-spacing: 0;
  color: var(--mc-tab-inactive);
}

@media (prefers-reduced-motion: no-preference) {
  body.mission-control-native-shell .mc-tabbar__btn {
    transition: background-color 140ms ease, color 140ms ease, transform 100ms ease;
  }

  body.mission-control-native-shell .mc-tabbar__btn:active {
    transform: scale(0.97);
  }

  body.mission-control-native-shell .mc-header-action,
  body.mission-control-native-shell .mc-flight-plan-link {
    transition: background-color 140ms ease, box-shadow 140ms ease;
  }
}

body.mission-control-native-shell .mc-tabbar__btn.is-active {
  color: var(--mc-tab-active);
  font-weight: 650;
  background: var(--mc-tab-active-fill);
  box-shadow: inset 0 1px 0 var(--mc-shell-highlight);
}

@supports not (font-weight: 650) {
  body.mission-control-native-shell .mc-tabbar__btn.is-active {
    font-weight: 700;
  }
}

body.mission-control-native-shell .mc-tabbar__btn.is-active .mc-tabbar__icon {
  color: var(--mc-tab-active-accent);
  opacity: 1;
  transform: translateY(-0.5px);
}

body.mission-control-native-shell .mc-icon--tab {
  width: 22px;
  height: 22px;
}

/* —— Mission: hero countdown —— */
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-panel--mission.is-active {
  gap: 0;
  padding: 0;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle {
  gap: 0;
  padding: 0.95rem var(--mc-content-pad-x) 0.35rem;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-hero .home-mission-clock,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock.home-mission-clock {
  margin: 0;
  padding: 1.35rem 0.85rem 1.15rem;
  border: 0;
  border-radius: 18px;
  background:
    radial-gradient(120% 90% at 50% -10%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 55%),
    linear-gradient(165deg, color-mix(in srgb, var(--surface) 88%, var(--ink)) 0%, var(--surface) 72%);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, #fff 55%, transparent),
    0 10px 28px color-mix(in srgb, var(--ink) 8%, transparent);
  color: var(--ink);
}

html[data-mc-appearance="dark"] body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock.home-mission-clock {
  background:
    radial-gradient(120% 90% at 50% -10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 55%),
    linear-gradient(165deg, color-mix(in srgb, var(--surface) 70%, #000) 0%, var(--surface) 78%);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, #fff 8%, transparent),
    0 12px 30px color-mix(in srgb, #000 35%, transparent);
  color: var(--ink);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__label {
  margin: 0 0 0.85rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__time {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.15rem 0.35rem;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__block--primary .home-mission-clock__num {
  font-size: clamp(2.1rem, 11vw, 2.85rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__block--primary .home-mission-clock__unit {
  margin-top: 0.2rem;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__sep {
  display: inline;
  margin: 0;
  font-size: 1.55rem;
  font-weight: 500;
  color: color-mix(in srgb, var(--muted) 70%, transparent);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__block--seconds,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__time > .home-mission-clock__block:last-child {
  opacity: var(--mc-countdown-seconds-opacity);
  align-self: flex-end;
  margin-bottom: 0.15rem;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__block--seconds .home-mission-clock__num,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-clock__time > .home-mission-clock__block:last-child .home-mission-clock__num {
  font-size: calc(clamp(2.1rem, 11vw, 2.85rem) * var(--mc-countdown-seconds-scale));
  font-weight: 600;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-progress {
  margin: 1rem 0 0;
  padding-top: 0.85rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-clock .home-mission-progress__line {
  color: var(--muted);
  font-size: 0.8rem;
}

/* —— Mission: operational story (not a card stack) —— */
body.mission-control-native-shell .mc-mission-story {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 1.05rem 0 0.35rem;
  padding: 0.15rem 0 0.35rem;
  border-top: 1px solid var(--mc-shell-hairline);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-story__block.mc-mission-lifecycle-card,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-story__block.mc-mission-lifecycle-offline,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-story__block.mc-mission-truth,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-story__block.mc-mission-detail {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0.95rem 0;
  box-shadow: none;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-story__block.mc-mission-truth,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-story__block.mc-mission-detail {
  border-bottom: 0;
  padding-bottom: 0.25rem;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-story__block:last-child {
  border-bottom: 0;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-card__title,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__title {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--muted);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-status-pill {
  border: 0;
  border-radius: 8px;
  padding: 0.28rem 0.65rem;
  background: color-mix(in srgb, var(--accent) 12%, var(--surface));
  font-size: 0.9rem;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-status__body,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__lede {
  margin: 0.55rem 0 0;
  font-size: 0.95rem;
  line-height: 1.45;
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-gate {
  padding: 0.7rem 0;
  border-bottom-color: color-mix(in srgb, var(--border) 55%, transparent);
}

body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-offline__btn,
body.mission-control-native-shell .mission-control-app[data-mc-lifecycle="1"] .mc-mission-lifecycle-results__btn {
  display: inline-flex;
  margin-top: 0.75rem;
  padding: 0.65rem 1rem;
  border: 0;
  border-radius: 12px;
  background: var(--ink);
  color: var(--bg);
  font-weight: 600;
  text-decoration: none;
}

/* —— Legs: immersive map —— */
body.mission-control-native-shell .mc-panel--legs .mc-leg-picker {
  margin: 0.55rem var(--mc-content-pad-x) 0.35rem;
  padding: 0.25rem 0.2rem;
  border: 0;
  background: transparent;
}

body.mission-control-native-shell .mc-panel--legs .mc-legs-viewer-host {
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  min-height: 0;
  flex: 1 1 auto;
}

body.mission-control-native-shell .mc-panel--legs .mc-course-viewer {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.mission-control-native-shell .mc-panel--legs .mc-course-viewer__map-wrap,
body.mission-control-native-shell .mc-panel--legs .mc-course-viewer__map {
  border-radius: 0;
  min-height: 18rem;
}

/* Direction B — one instrument: native map+profile fills the host; web map/profile keep layout size only. */
body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: min(70vh, 36rem);
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  border-radius: 16px;
  overflow: hidden;
  background: var(--surface);
}

body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer__map-wrap {
  flex: 1 1 auto;
  min-height: 16rem;
}

body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer__profile-wrap {
  flex: 0 0 7.75rem;
  min-height: 7.75rem;
  border-top: 0;
  margin: 0;
  padding: 0;
}

body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer__map,
body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer__profile,
body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer__profile-wrap svg,
body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-segment-controls {
  visibility: hidden;
  pointer-events: none;
}

@media (min-width: 768px) {
  body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    gap: 0;
    min-height: min(72vh, 44rem);
    padding: 0;
    margin: 0.35rem var(--mc-content-pad-x) 0.5rem;
  }

  body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer__map-wrap {
    grid-row: auto;
    min-height: 28rem;
  }

  body.mission-control-native-shell.mc-native-leg-instrument-active .mc-panel--legs .mc-course-viewer__profile-wrap {
    min-height: 9rem;
    flex-basis: 9rem;
  }
}

/* Native iPad: use the available canvas instead of preserving the phone column. */
@media (min-width: 768px) {
  body.mission-control-native-shell .mc-panel--legs .mc-legs-viewer-host,
  body.mission-control-native-shell .mc-panel--legs .mc-course-viewer {
    width: 100%;
  }

  body.mission-control-native-shell .mc-panel--legs .mc-course-viewer {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(19rem, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 1rem;
    padding: 0.5rem var(--mc-content-pad-x) 0.75rem;
    box-sizing: border-box;
  }

  body.mission-control-native-shell .mc-panel--legs .mc-course-viewer__map-wrap {
    grid-row: 1 / 3;
    min-width: 0;
    min-height: 32rem;
  }

  body.mission-control-native-shell .mc-panel--legs .mc-course-viewer__profile-wrap {
    align-self: end;
    min-width: 0;
  }

  body.mission-control-native-shell .mc-panel--legs .mc-segment-controls {
    align-self: start;
  }
}

body.mission-control-native-shell .mc-panel--legs .mc-leg-summary {
  margin: 0.65rem var(--mc-content-pad-x) 0.85rem;
  padding: 0;
  border: 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--ink);
}

body.mission-control-native-shell .mc-leg-picker__eyebrow {
  letter-spacing: 0.02em;
  text-transform: none;
  font-size: 0.68rem;
}

body.mission-control-native-shell .mc-leg-picker__num {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* —— Results: typographic metrics —— */
body.mission-control-native-shell .mc-panel--results {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

body.mission-control-native-shell .mc-panel--results .mc-record-cards,
body.mission-control-native-shell .mc-panel--results .mc-live-cards {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
}

body.mission-control-native-shell .mc-panel--results .mc-record-card,
body.mission-control-native-shell .mc-panel--results .mc-live-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 0.35rem 0.85rem;
  margin: 0;
  padding: 0.85rem 0;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  background: transparent;
  box-shadow: none;
}

body.mission-control-native-shell .mc-panel--results .mc-record-card__title,
body.mission-control-native-shell .mc-panel--results .mc-live-card__label {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted);
}

body.mission-control-native-shell .mc-panel--results .mc-record-card__time,
body.mission-control-native-shell .mc-panel--results .mc-live-card__value {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  text-align: right;
}

body.mission-control-native-shell .mc-panel--results .mc-record-card__meta {
  grid-column: 1 / -1;
  margin: 0.1rem 0 0;
  font-size: 0.75rem;
  color: var(--muted);
}

body.mission-control-native-shell .mc-panel--results .mc-live-card--wide {
  grid-template-columns: 1fr;
}

body.mission-control-native-shell .mc-panel--results .mc-live-card--wide .mc-live-card__value {
  text-align: left;
  font-size: 1.55rem;
}

body.mission-control-native-shell .mc-results-live-heading,
body.mission-control-native-shell .mc-schedule-intro {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--muted);
}

/* —— Schedule: continuous timeline —— */
body.mission-control-native-shell .mc-schedule {
  margin: 0.35rem 0 0;
  padding: 0;
  list-style: none;
  border: 0;
  background: transparent;
}

body.mission-control-native-shell .mc-schedule__item {
  display: grid;
  grid-template-columns: 2.65rem 1fr;
  gap: 0.75rem;
  margin: 0;
  padding: 0.85rem 0;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
  background: transparent;
  box-shadow: none;
  position: relative;
}

body.mission-control-native-shell .mc-schedule__item--active {
  background: color-mix(in srgb, var(--accent) 7%, transparent);
  margin-inline: calc(-1 * var(--mc-content-pad-x));
  padding-inline: var(--mc-content-pad-x);
  border-radius: 12px;
  border-bottom-color: transparent;
}

body.mission-control-native-shell .mc-schedule__badge {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--muted);
  padding-top: 0.15rem;
}

body.mission-control-native-shell .mc-schedule__item--active .mc-schedule__badge,
body.mission-control-native-shell .mc-schedule__item--focus .mc-schedule__badge {
  color: var(--ink);
}

body.mission-control-native-shell .mc-schedule__title {
  font-size: 0.95rem;
  font-weight: 650;
  letter-spacing: -0.015em;
}

@supports not (font-weight: 650) {
  body.mission-control-native-shell .mc-schedule__title {
    font-weight: 700;
  }
}

body.mission-control-native-shell .mc-schedule__runner {
  font-size: 0.84rem;
  color: var(--ink);
}

body.mission-control-native-shell .mc-schedule__times {
  margin-top: 0.15rem;
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}

/* —— Settings: native grouped —— */
body.mission-control-native-shell .mc-settings--grouped,
body.mission-control-native-shell .mc-settings {
  background: var(--bg);
}

body.mission-control-native-shell .mc-settings__header {
  padding: 0.35rem var(--mc-content-pad-x) 0.65rem;
  border-bottom: 0;
  background: var(--mc-shell-material);
  -webkit-backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  backdrop-filter: saturate(var(--mc-shell-saturate)) blur(var(--mc-shell-blur));
  box-shadow:
    inset 0 1px 0 var(--mc-shell-highlight),
    inset 0 -1px 0 var(--mc-shell-hairline),
    var(--mc-shell-depth-soft);
}

body.mission-control-native-shell .mc-settings__title {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

body.mission-control-native-shell .mc-settings__close {
  border: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 600;
  min-height: 44px;
  padding: 0.35rem 0.4rem;
}

body.mission-control-native-shell .mc-settings__body {
  padding: 1rem var(--mc-content-pad-x) 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

body.mission-control-native-shell .mc-settings__section {
  margin: 0;
  padding: 0.35rem 0.85rem;
  border: 0;
  border-radius: 14px;
  background: var(--surface);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border) 80%, transparent);
}

body.mission-control-native-shell .mc-settings__heading {
  margin: 0.55rem 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--muted);
}

body.mission-control-native-shell .mc-settings__input,
body.mission-control-native-shell .mc-settings__segmented,
body.mission-control-native-shell .mc-settings__action {
  border-radius: 10px;
}

body.mission-control-native-shell .mc-settings__about-row {
  border-top-color: color-mix(in srgb, var(--border) 70%, transparent);
}

body.mission-control-native-shell .mc-app-footer__label {
  color: var(--faint);
  letter-spacing: 0;
}

/* Mission operational metrics: quieter strips */
body.mission-control-native-shell [data-mc-mission-operational] {
  padding: 0.75rem var(--mc-content-pad-x) 1rem;
}

body.mission-control-native-shell .mc-metric-row {
  border: 0;
  background: transparent;
  gap: 1rem;
}

body.mission-control-native-shell .mc-leg-header__eyebrow {
  letter-spacing: 0.02em;
  text-transform: none;
}

body.mission-control-native-shell .mc-leg-header__title {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

@media (prefers-reduced-transparency: reduce) {
  body.mission-control-native-shell.mission-control-page {
    --mc-shell-material: var(--mc-shell-material-solid);
    --mc-shell-blur: 0px;
    --mc-shell-saturate: 1;
    --mc-chrome-control-bg: var(--mc-shell-material-solid);
    --mc-chrome-control-border: var(--border);
    --mc-shell-depth: 0 0 0 transparent;
    --mc-shell-depth-soft: 0 0 0 transparent;
    --mc-tab-active-fill: color-mix(in srgb, var(--accent) 16%, var(--surface));
  }

  body.mission-control-native-shell .mc-topbar,
  body.mission-control-native-shell .mc-topbar--app,
  body.mission-control-native-shell .mc-tabbar,
  body.mission-control-native-shell .mc-tabbar--app,
  body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-tabbar,
  body.mission-control-native-shell .mc-settings__header {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--mc-shell-material-solid);
    box-shadow: inset 0 -1px 0 var(--mc-shell-hairline);
  }

  body.mission-control-native-shell .mc-header-action,
  body.mission-control-native-shell .mc-flight-plan-link,
  body.mission-control-native-shell .mc-offline-pack-link,
  body.mission-control-native-shell .mc-offline-pack-back {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--mc-shell-material-solid);
    box-shadow: none;
  }
}

@media (prefers-contrast: more) {
  body.mission-control-native-shell.mission-control-page {
    --mc-shell-material: var(--mc-shell-material-solid);
    --mc-shell-blur: 0px;
    --mc-shell-saturate: 1;
    --mc-shell-hairline: var(--border-strong);
    --mc-shell-highlight: transparent;
    --mc-shell-depth: 0 0 0 transparent;
    --mc-shell-depth-soft: 0 0 0 transparent;
    --mc-chrome-control-bg: var(--mc-shell-material-solid);
    --mc-chrome-control-border: var(--border-strong);
    --mc-tab-inactive: var(--muted);
    --mc-tab-active-fill: color-mix(in srgb, var(--accent) 24%, var(--surface));
    --mc-countdown-seconds-opacity: 0.72;
  }

  body.mission-control-native-shell .mc-topbar,
  body.mission-control-native-shell .mc-topbar--app,
  body.mission-control-native-shell .mc-tabbar,
  body.mission-control-native-shell .mc-tabbar--app,
  body.mission-control-native-shell.mission-control-page:not(.mission-control-offline-pack-page) .mc-tabbar,
  body.mission-control-native-shell .mc-settings__header {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--mc-shell-material-solid);
    box-shadow: inset 0 0 0 1px var(--border-strong);
  }

  body.mission-control-native-shell .mc-tabbar__btn.is-active {
    outline: 1px solid color-mix(in srgb, var(--accent-hover) 50%, var(--border-strong));
    outline-offset: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.mission-control-native-shell .mc-tabbar__btn,
  body.mission-control-native-shell .mc-header-action,
  body.mission-control-native-shell .mc-flight-plan-link {
    transition: none;
  }

  body.mission-control-native-shell .mc-tabbar__btn:active {
    transform: none;
  }
}
