/* Tier 89 — self-hosted type (WO-SEC audit). Big Shoulders (variable opsz/wght, served at the display
   optical size the Google "Big Shoulders Display" cut matched) and JetBrains Mono (variable) are first-party
   WOFF files subset to Latin + Latin Extended; Source Serif 4 stays on Google Fonts until its download lands
   in _fonts/ (see DEPLOY-CPANEL.md §6·III). OFL licences in /fonts/. */
@font-face { font-family: "Big Shoulders Display"; src: url("../fonts/big-shoulders-var.woff2?v=201") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; font-optical-sizing: auto; }
@font-face { font-family: "JetBrains Mono"; src: url("../fonts/jetbrains-mono-var.woff2?v=201") format("woff2"); font-weight: 100 800; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("../fonts/jetbrains-mono-italic-var.woff2?v=201") format("woff2"); font-weight: 100 800; font-style: italic; font-display: swap; }
/* Tier 158 — Source Serif 4 self-hosted (SIL OFL, fonts/OFL-SourceSerif.txt): the variable Roman carries every weight the pages
   ask for (400 / 500 / 600; Tier 201 subset it to the site's characters and pinned its optical size at 16 — 419 K → 93 K); italics are the static 400 and 600 instances (a 500 italic resolves to 400).
   TrueType-flavoured files on purpose: Windows' CFF2 rasteriser bug never applies. No third-party request remains on any page. */
@font-face { font-family: "Source Serif 4"; src: url("../fonts/source-serif-4-var.woff2?v=201") format("woff2"); font-weight: 300 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("../fonts/source-serif-4-italic.woff2?v=201") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("../fonts/source-serif-4-semibold-italic.woff2?v=201") format("woff2"); font-weight: 600; font-style: italic; font-display: swap; }

/* ===========================================================
   Worldwide Wilderness (3-W) / Dynamic Frontier Solutions Network
   Shared stylesheet — used by index.html and careers.html so the
   browser caches it once across both pages.
   =========================================================== */

:root {
  --bg: #E6EAE0;
  --surface: #F5F7EF;
  --surface-alt: #DAE0D0;
  --ink: #1A2119;
  --ink-soft: #47534A;
  --line: #B7C1AC;
  --accent: #C14D1D;
  --accent-strong: #9C3E15;
  --accent-ink: #FFF6EF;
  --moss: #4E6546;
  --moss-soft: #E1E8D6;
  --shadow: rgba(26, 33, 25, 0.10);
  --footer-bg: #1A2119;
  --footer-ridge: #33422F;
  --footer-ink: #A9B69E;
  --footer-link: #DDE4D2;
  --contour: url("../images/contour-light.svg");
  /* Tier 205: three tokens the stylesheet had referenced for a long time without ever defining — the browser dropped the
     declaration and the element inherited (serif where mono was meant, body ink where muted was meant) */
  --mono: "JetBrains Mono", monospace; --font-mono: var(--mono); --display: "Big Shoulders Display", Impact, sans-serif; --muted: var(--ink-soft);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #10140E;
    --surface: #171D13;
    --surface-alt: #1D2418;
    --ink: #E7EBDD;
    --ink-soft: #A6B29B;
    --line: #2B3425;
    --accent: #E28249;
    --accent-strong: #F0985F;
    --accent-ink: #1A0E06;
    --moss: #8DAC78;
    --moss-soft: #21331F;
    --shadow: rgba(0, 0, 0, 0.35);
    --footer-bg: #090C07;
    --footer-ridge: #182015;
    --footer-ink: #8FA083;
    --footer-link: #C5CFB8;
    --contour: url("../images/contour-dark.svg");
  }
}

:root[data-theme="dark"] {
  --bg: #10140E;
  --surface: #171D13;
  --surface-alt: #1D2418;
  --ink: #E7EBDD;
  --ink-soft: #A6B29B;
  --line: #2B3425;
  --accent: #E28249;
  --accent-strong: #F0985F;
  --accent-ink: #1A0E06;
  --moss: #8DAC78;
  --moss-soft: #21331F;
  --shadow: rgba(0, 0, 0, 0.35);
  --footer-bg: #090C07;
  --footer-ridge: #182015;
  --footer-ink: #8FA083;
  --footer-link: #C5CFB8;
  --contour: url("../images/contour-dark.svg");
}

* { box-sizing: border-box; }
sup { font-size: 0.62em; letter-spacing: 0; }

html { color-scheme: light dark; }

body {
  background-color: var(--bg);
  background-image: var(--contour);
  background-repeat: repeat;
  background-size: 280px 200px;
  color: var(--ink);
  font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
  font-size: 17px;
  line-height: 1.65;
  margin: 0;
  padding-inline: max(20px, calc((100% - 1180px) / 2));
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

a { color: var(--accent-strong); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { opacity: 0.82; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

h1, h2, h3 {
  font-family: "Big Shoulders Display", "Arial Narrow", sans-serif;
  text-transform: uppercase;
  color: var(--ink);
  text-wrap: balance;
  line-height: 0.95;
  margin: 0;
}

.kicker {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--moss);
  margin: 0 0 0.9rem;
}

.nb { white-space: nowrap; }

/* ---------- top bar ---------- */
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding-block: 1.4rem;
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; gap: 0.7rem; text-decoration: none; }
.brand-mark {
  width: 34px; height: 34px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--line);
  flex: none;
}
.wordmark {
  font-family: "Big Shoulders Display", sans-serif;
  font-weight: 800;
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  color: var(--ink);
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
}
.wordmark .wm-sep { font-family: "JetBrains Mono", monospace; font-weight: 500; font-size: 0.8rem; color: var(--accent-strong); letter-spacing: 0; }
.wordmark .wm-brand { font: inherit; letter-spacing: inherit; color: inherit; text-transform: none; white-space: nowrap; }
.wordmark span {
  font-family: "JetBrains Mono", monospace;
  font-weight: 500;
  font-size: 0.66rem;
  letter-spacing: 0.16em;
  color: var(--ink-soft);
  text-transform: uppercase;
}
.topnav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem 1.05rem;
  max-width: 100%;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.topnav a,
.topnav .current {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--ink-soft);
  text-decoration: none;
  white-space: nowrap;
  min-height: 2rem;
}
.topnav a:hover { color: var(--accent-strong); }
.topnav a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.topnav .current { color: var(--accent-strong); }
/* Nav icon set: images/nav-icons.svg, drawn in currentColor so they follow the link state. */
.ni {
  width: 1.05rem;
  height: 1.05rem;
  flex: none;
  color: var(--moss);
  transition: color 120ms ease, transform 120ms ease;
}
.topnav a:hover .ni { color: var(--accent-strong); transform: translateY(-1px); }
.topnav .current .ni { color: var(--accent); }

.topbar-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  max-width: 100%;
  min-width: 0;
}
.auth-widget {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.auth-widget a { color: var(--accent-strong); }
.auth-widget .divider { color: var(--line); }

/* Menu toggle: hidden on desktop, shown at phone/tablet widths. */
.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin-left: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
  flex: none;
}
.nav-toggle .ni { width: 1.35rem; height: 1.35rem; color: inherit; }
.nav-toggle .ni-close { display: none; }
.nav-toggle:hover { color: var(--accent-strong); border-color: var(--accent-strong); }
.nav-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

@media (max-width: 860px) {
  .topbar { flex-wrap: wrap; padding-block: 1rem; }
  .nav-toggle { display: inline-flex; }
  .topbar-right {
    display: none;
    flex-basis: 100%;
    width: 100%;
    align-items: stretch;
    gap: 0;
    margin-top: 0.9rem;
    border-top: 1px solid var(--line);
    padding-top: 0.4rem;
  }
  .topbar.nav-open .topbar-right { display: flex; }
  .topbar.nav-open .nav-toggle { color: var(--accent-strong); border-color: var(--accent-strong); }
  .topbar.nav-open .nav-toggle .ni-menu { display: none; }
  .topbar.nav-open .nav-toggle .ni-close { display: block; }
  .topnav {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    font-size: 0.82rem;
  }
  .topnav a,
  .topnav .current {
    gap: 0.8rem;
    min-height: 2.9rem;
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--line);
  }
  .topnav .current { background: var(--moss-soft); }
  .ni { width: 1.3rem; height: 1.3rem; }
  .auth-widget { padding: 0.9rem 0.4rem 0.5rem; row-gap: 0.4rem; }
}

/* ---------- auth pages (signup / login / forgot / reset / account) ---------- */
.auth-page-main { display: flex; flex-direction: column; align-items: center; gap: 1.6rem; padding-block: 3rem; }
.auth-card {
  width: 100%;
  max-width: 440px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--moss);
  padding: 2rem 1.8rem;
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}
.auth-card h1 { font-size: 1.8rem; font-weight: 800; }
.auth-card-wide { max-width: 620px; }
.auth-card code {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.86em;
  padding: 0.05rem 0.35rem;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 3px;
  color: var(--ink);
  white-space: nowrap;
}
.auth-card .kicker { margin-bottom: 0; }
/* Tier 49: one consistent provider / contractor / vendor switcher on every log-in page */
.auth-switch { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.2rem 0 0.6rem; }
.auth-switch a, .auth-switch span { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.3rem 0.65rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--ink-soft); }
.auth-switch a:hover { color: var(--ink); border-color: var(--ink-soft); }
.auth-switch .is-active { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.auth-form { display: grid; grid-template-columns: 1fr; gap: 1.1rem; }
.auth-form button[type="submit"] {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--accent);
  color: var(--accent-ink);
  border: none;
  padding: 0.8rem 1.35rem;
  border-radius: 2px;
  cursor: pointer;
}
.auth-form button[type="submit"]:hover { background: var(--accent-strong); }
.auth-form button[type="submit"]:disabled { opacity: 0.6; cursor: not-allowed; }
.auth-links {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.76rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
}
.auth-message { font-size: 0.92rem; color: var(--ink-soft); margin: 0; }
.auth-message.is-error { color: var(--accent-strong); }
.prefs-hint { font-size: 0.88rem; color: var(--ink-soft); margin: -0.6rem 0 0; }

.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--moss);
  border: 1px solid var(--line);
  background: var(--surface);
  padding: 0.45rem 0.8rem;
  border-radius: 2px;
}
.status-pill .dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--moss);
  box-shadow: 0 0 0 3px var(--moss-soft);
  flex: none;
}

/* ---------- hero ---------- */
.hero { position: relative; padding-block: 2.1rem 1.6rem; overflow: hidden; }
.hero > * { position: relative; z-index: 1; }

.hero-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2.6rem;
  flex-wrap: wrap-reverse;
}
.hero-copy { flex: 1 1 420px; }

.patch {
  flex: none;
  width: clamp(104px, 13vw, 144px);
  height: clamp(104px, 13vw, 144px);
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: 0 14px 28px var(--shadow);
  transform: rotate(-4deg);
  margin-top: 0.3rem;
}

.hero h1 {
  font-size: clamp(2.1rem, 5vw, 3.5rem);
  font-weight: 900;
  max-width: 18ch;
  margin-bottom: 0.85rem;
}
.hero h1.hero-directive { font-size: clamp(1.9rem, 4vw, 2.9rem); max-width: 26ch; line-height: 1; text-wrap: balance; }

.lede { max-width: 63ch; font-size: 1.13rem; color: var(--ink-soft); margin: 0; }
.lede a { color: var(--ink); font-weight: 600; text-decoration-color: var(--accent); }

.terrain-profile { display: block; width: 100%; height: 44px; margin-top: 1.4rem; }

.hero-ctas { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 1.4rem; }
.hero-cta {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.8rem 1.4rem;
  border-radius: 2px;
  text-decoration: none;
}
.hero-cta-primary { background: var(--accent); color: var(--accent-ink); }
.hero-cta-primary:hover { background: var(--accent-strong); }
.hero-cta-secondary { border: 1px solid var(--line); color: var(--ink); }
.hero-cta-secondary:hover { border-color: var(--accent); color: var(--accent-strong); }

/* ---------- hero split CTA + rapid deployment sections (home) ---------- */
.hero-ctas-split { gap: 1.2rem 2rem; align-items: flex-end; }
/* homepage triage: the Y-fork (Tier 29) */
.triage { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1px; padding: 1px; margin: 1.6rem 0 1rem; }
.triage-fork { display: flex; flex-direction: column; gap: 0.45rem; padding: 1.2rem 1.3rem 1.3rem; text-decoration: none; color: var(--ink); background: var(--surface); box-shadow: 0 0 0 1px var(--line); border-top: 4px solid var(--accent); transition: background 120ms ease; }
.triage-fork:hover { background: var(--surface-alt); }
.triage-fork strong { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.45rem; line-height: 1.05; text-transform: uppercase; letter-spacing: 0.02em; }
.triage-fork > span:last-child { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); }
.triage-icons { display: flex; gap: 0.5rem; color: var(--accent-strong); }
.triage-icons .trk { width: 20px; height: 20px; }
.triage-volunteer { border-top-color: var(--moss); }
.triage-command { border-top-color: var(--ink-soft); }
.triage-command .triage-icons { color: var(--ink-soft); }
.triage-icons .ni { width: 20px; height: 20px; }
.triage-volunteer .triage-icons { color: var(--moss); }
@media (max-width: 900px) { .triage { grid-template-columns: 1fr 1fr; } .triage-command { grid-column: 1 / -1; } }
@media (max-width: 640px) { .triage { grid-template-columns: 1fr; } }
/* global footer compliance block (Tier 29) */
.footer-compliance { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; line-height: 1.6; letter-spacing: 0.02em; color: var(--footer-ink); max-width: 80ch; margin: 0 0 1rem; }
.footer-compliance a { color: var(--footer-link); text-decoration-color: var(--accent); }
.footer-compliance strong { color: var(--footer-link); font-weight: 600; }
.hero-cta-group { display: flex; flex-direction: column; gap: 0.45rem; }
.hero-cta-label {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--moss);
}
.hero-cta-group .hero-cta { text-align: center; }
.hero-subline { margin: 1.1rem 0 0; font-size: 0.92rem; color: var(--ink-soft); }
.hero-subline a { color: var(--ink); text-decoration-color: var(--accent); }

.deploy-how { padding-block: 2.4rem 1.2rem; border-top: 1px solid var(--line); }
.deploy-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  counter-reset: none;
}
.deploy-step { min-width: 0; background: var(--surface); padding: 1.5rem 1.4rem 1.6rem; display: flex; flex-direction: column; gap: 0.55rem; }
.deploy-step-num {
  font-family: "Big Shoulders Display", "Source Serif 4", serif;
  font-size: 2.1rem;
  font-weight: 900;
  line-height: 1;
  color: var(--accent);
}
.deploy-step h3 { font-size: 1.1rem; font-weight: 700; margin: 0; letter-spacing: 0.01em; }
.deploy-step p { margin: 0; font-size: 0.92rem; color: var(--ink-soft); line-height: 1.55; }
.deploy-step em { color: var(--ink); font-style: normal; font-weight: 600; }

.home-value-props {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-block: 1.2rem 2.4rem;
}
.home-value-prop { background: var(--surface-alt); padding: 1.8rem 1.7rem 2rem; display: flex; flex-direction: column; gap: 0.7rem; align-items: flex-start; }
.home-value-prop .kicker { margin: 0; }
.home-value-prop h3 { font-size: clamp(1.4rem, 2.4vw, 1.8rem); font-weight: 800; margin: 0; line-height: 1.1; }
.home-value-prop p { margin: 0 0 0.5rem; color: var(--ink-soft); line-height: 1.55; max-width: 52ch; }

/* ---------- value propositions (careers) ---------- */
.value-props {
  padding-block: 1rem 2.2rem;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem 2.6rem;
}
.value-prop-list { list-style: none; margin: 0.6rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.9rem; }
.value-prop-list li { font-size: 0.96rem; color: var(--ink-soft); line-height: 1.5; padding-left: 1.1rem; position: relative; }
.value-prop-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 6px;
  height: 6px;
  background: var(--accent);
  border-radius: 50%;
}
.value-prop-list strong { color: var(--ink); }

.jobs-alerts-teaser { margin: -0.6rem 0 1.2rem; color: var(--ink-soft); font-size: 0.94rem; }
.jobs-alerts-teaser a { color: var(--ink); font-weight: 600; text-decoration-color: var(--accent); }

/* ---------- pricing (careers, replaces the old single $/mo post form) ---------- */
.pricing { padding-block: 0.4rem 2.2rem; border-top: 1px solid var(--line); }
.pricing-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.6rem;
  align-items: start;
}
.pricing-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--moss);
  padding: 1.6rem 1.6rem 1.8rem;
}
.pricing-card-featured { border-top-color: var(--accent); background: var(--moss-soft); }
.pricing-card-kicker {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--moss);
  margin: 0 0 0.4rem;
}
.pricing-card-price {
  font-family: "Big Shoulders Display", sans-serif;
  font-weight: 800;
  font-size: 2.2rem;
  line-height: 1;
  margin: 0 0 0.6rem;
  color: var(--ink);
}
.pricing-card-price span {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78rem;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-left: 0.4rem;
}
.pricing-card-desc { color: var(--ink-soft); font-size: 0.94rem; margin: 0 0 1.2rem; max-width: 46ch; }
.pricing-card .job-form { max-width: none; }
.pricing-card-note { font-size: 0.84rem; color: var(--ink-soft); margin: 1.1rem 0 0; }
.employer-subscribe-form { display: grid; grid-template-columns: 1fr; gap: 1.1rem; max-width: none; }

@media (max-width: 860px) {
  .value-props { grid-template-columns: 1fr; }
  .pricing-grid { grid-template-columns: 1fr; }
}

/* ---------- ad slots (home, shared with advertise.html previews) ---------- */
.ad-slot { margin-block: 1.8rem; display: flex; flex-direction: column; align-items: center; gap: 0.4rem; }
.ad-slot[hidden] { display: none; }
.ad-slot-label {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  opacity: 0.75;
}
.ad-slot-frame {
  display: block;
  line-height: 0;
  border: 1px solid var(--line);
  background: var(--surface);
}
.ad-slot-frame img { display: block; max-width: 100%; height: auto; }
.ad-slot-card .ad-slot-frame { max-width: 300px; }
.ad-slot-top .ad-slot-frame { max-width: 728px; }

/* ---------- board highlights: Featured Openings + Recently Posted (home) ---------- */
.board-highlights {
  padding-block: 0.6rem 1rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.6rem;
}
.highlight-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--moss);
  padding: 1.5rem 1.5rem 1.7rem;
}
.highlight-card h2 { font-size: 1.35rem; font-weight: 700; margin-bottom: 0.2rem; }
.highlight-card .kicker { margin-bottom: 0.4rem; }
.highlight-list { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.highlight-job { padding-top: 1rem; border-top: 1px solid var(--line); }
.highlight-job:first-child { padding-top: 0; border-top: none; }
.highlight-job-title {
  display: block;
  font-family: "Source Serif 4", serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  margin-bottom: 0.3rem;
}
.highlight-job-title:hover { color: var(--accent-strong); }
.highlight-job .job-meta { margin-bottom: 0.3rem; }
.highlight-job p.desc { margin: 0; color: var(--ink-soft); font-size: 0.9rem; }
.board-highlights-more { margin: 1.2rem 0 0; font-size: 0.9rem; }
.board-highlights-more a { color: var(--ink); font-weight: 600; text-decoration-color: var(--accent); }

.advertise-callout {
  margin-block: 0 1rem;
  padding: 1.3rem 1.5rem;
  background: var(--moss-soft);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.advertise-callout p { margin: 0; color: var(--ink-soft); max-width: 56ch; }
.advertise-callout strong { color: var(--ink); }
.advertise-callout a.hero-cta { flex: none; }

@media (max-width: 860px) {
  .board-highlights { grid-template-columns: 1fr; }
}

/* ---------- ad size grid (advertise.html) ---------- */
.ad-size-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  padding-block: 0.4rem 1.4rem;
}
.ad-size-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--moss);
  padding: 1.4rem 1.4rem 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.ad-size-card h3 { font-size: 1.05rem; font-weight: 700; }
.ad-size-preview {
  border: 1px dashed var(--line);
  background: var(--surface-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  color: var(--ink-soft);
  width: 100%;
  max-width: 100%;
}
.ad-size-card p { margin: 0; color: var(--ink-soft); font-size: 0.9rem; }
@media (max-width: 860px) {
  .ad-size-grid { grid-template-columns: 1fr; }
}

/* ---------- sectors (home) ---------- */
.sectors {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-block: 2.4rem;
}
.sector { background: var(--surface); padding: 1.6rem 1.5rem; display: flex; flex-direction: column; gap: 0.7rem; }
.sector svg { width: 30px; height: 30px; stroke: var(--accent); flex: none; }
.sector h3 { font-size: 1.15rem; font-weight: 700; letter-spacing: 0.01em; }
.sector p { margin: 0; font-size: 0.92rem; color: var(--ink-soft); line-height: 1.55; }

/* ---------- network (home) ---------- */
.network { padding-block: 2.6rem; }
.network-head { max-width: 68ch; margin-bottom: 2.2rem; }
.network-head h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); font-weight: 800; margin-bottom: 1rem; }
.network-head p { color: var(--ink-soft); margin: 0; }
.network-head p + p { margin-top: 0.9rem; }

.components { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.component {
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--moss);
  padding: 1.5rem 1.4rem 1.7rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.component svg { width: 26px; height: 26px; stroke: var(--moss); }
.component .tag {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--moss);
}
.component h3 { font-size: 1.1rem; font-weight: 700; text-transform: none; font-family: "Source Serif 4", serif; letter-spacing: 0; }
.component p { margin: 0; color: var(--ink-soft); font-size: 0.94rem; }

/* ---------- capability / stamp (home) ---------- */
.capability {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 2rem;
  padding-block: 2.6rem 2.8rem;
  border-top: 1px solid var(--line);
}
.stamp {
  font-family: "JetBrains Mono", monospace;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  color: var(--accent-strong);
  border: 2px solid var(--accent);
  padding: 0.9rem 1.1rem;
  text-align: center;
  transform: rotate(-3deg);
  white-space: nowrap;
  border-radius: 3px;
  justify-self: start;
}
.capability p { margin: 0; max-width: 60ch; font-size: 1.05rem; color: var(--ink-soft); }
.capability a { color: var(--ink); font-weight: 600; text-decoration-color: var(--accent); }

/* ---------- disciplines (careers) ---------- */
.disciplines { padding-block: 1.6rem 2.2rem; border-top: 1px solid var(--line); }
.discipline-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.discipline { background: var(--surface); padding: 1.2rem 1.1rem; display: flex; flex-direction: column; gap: 0.5rem; }
.discipline .tag {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--moss);
}
.discipline p { margin: 0; font-size: 0.9rem; color: var(--ink-soft); }

/* ---------- job board (careers) ---------- */
.jobs { padding-block: 2.4rem; border-top: 1px solid var(--line); }
.jobs-head h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 800; margin-bottom: 1.4rem; }

.job-search {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.8rem;
  margin-bottom: 1.4rem;
  padding: 1rem 1.1rem;
  background: var(--surface);
  border: 1px solid var(--line);
}
.job-search .field { flex: 1 1 150px; }
.job-search button {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--accent);
  color: var(--accent-ink);
  border: none;
  padding: 0.6rem 1rem;
  border-radius: 2px;
  cursor: pointer;
  flex: none;
}
.job-search button:hover { background: var(--accent-strong); }
.job-search .clear {
  background: none;
  border: 1px solid var(--line);
  color: var(--ink-soft);
}

/* Certification picker — a scrollable, grouped checkbox list shared by the
   post-a-position form (careers.html) and the saved-search profile
   (account.html). Rendered dynamically by js/certifications-data.js. */
.cert-picker-label {
  display: block;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.76rem;
  letter-spacing: 0.02em;
  color: var(--ink-soft);
  margin-bottom: 0.4rem;
}
.cert-picker {
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid var(--line);
  background: var(--surface);
  padding: 0.8rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.cert-group {
  border: none;
  margin: 0;
  padding: 0;
}
.cert-group legend {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--moss);
  padding: 0;
  margin-bottom: 0.35rem;
}
.cert-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.1rem;
}
.cert-option {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.84rem;
  color: var(--ink);
  cursor: pointer;
}
.cert-option input { margin: 0; accent-color: var(--accent); }

.job-cert-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: -0.4rem 0 0.8rem;
}
.job-cert-tag {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: var(--moss-soft);
  color: var(--moss);
  border: 1px solid var(--line);
  padding: 0.18rem 0.55rem;
  border-radius: 2px;
}
.job-search .clear:hover { background: none; color: var(--accent-strong); border-color: var(--accent); }

.jobs-list { display: flex; flex-direction: column; gap: 1rem; }
.jobs-empty {
  color: var(--ink-soft);
  font-style: italic;
  padding: 1.4rem;
  border: 1px dashed var(--line);
  border-radius: 3px;
  margin: 0;
}
.job-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  padding: 1.2rem 1.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.job-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.job-card h3 { font-family: "Source Serif 4", serif; text-transform: none; font-size: 1.2rem; font-weight: 600; letter-spacing: 0; }
.job-meta {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--moss);
  display: flex;
  gap: 0.9rem;
  flex-wrap: wrap;
}
.job-card p.desc { margin: 0; color: var(--ink-soft); font-size: 0.96rem; }
.job-card.is-highlighted { outline: 2px solid var(--accent); outline-offset: 3px; transition: outline-color 0.3s ease; }
.job-actions { display: flex; gap: 0.9rem; align-items: center; margin-top: 0.3rem; }
.job-apply {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-strong);
  background: none;
  border: 1px solid var(--accent);
  padding: 0.4rem 0.8rem;
  border-radius: 2px;
  cursor: pointer;
}
.job-apply:hover { background: var(--accent); color: var(--accent-ink); }
a.job-apply { text-decoration: none; display: inline-block; }
.job-remove {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.2rem 0;
  text-decoration: underline;
  text-decoration-color: var(--line);
}
.job-remove:hover { color: var(--accent-strong); }

/* ---------- paid employer job posting (careers) ---------- */
.post-job { padding-block: 0.4rem 2.2rem; border-top: 1px solid var(--line); }
.field-hint { font-size: 0.82rem; color: var(--ink-soft); margin: 0.3rem 0 0; }
.checkout-banner {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.84rem;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--moss);
  background: var(--moss-soft);
  color: var(--moss);
  margin: -0.6rem 0 1.4rem;
  max-width: 680px;
}
.checkout-banner.is-error {
  border-color: var(--accent);
  background: var(--surface);
  color: var(--accent-strong);
}

/* ---------- admin panel: pending review + direct (free) posting ---------- */
.admin-panel { padding-block: 0 2.2rem; }
.admin-page { padding-block: 0.6rem 2.2rem; }
.admin-page .admin-unlock { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.8rem 1rem; padding: 1.2rem 1.3rem; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); margin-bottom: 1.4rem; }
.admin-page .admin-unlock .field { margin: 0; }
.admin-panel summary {
  cursor: pointer;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 0.8rem 0;
}
.admin-panel summary:hover { color: var(--accent-strong); }
.admin-panel details[open] summary { color: var(--accent-strong); }

.admin-unlock {
  display: flex;
  align-items: flex-end;
  gap: 0.8rem;
  flex-wrap: wrap;
  padding-top: 1rem;
  max-width: 420px;
}
.admin-unlock .field { flex: 1 1 200px; }
#admin-unlock-btn {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--accent);
  color: var(--accent-ink);
  border: none;
  padding: 0.62rem 1rem;
  border-radius: 2px;
  cursor: pointer;
}
#admin-unlock-btn:hover { background: var(--accent-strong); }

.admin-block { padding-top: 1.8rem; max-width: 680px; }
.admin-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.admin-block-head > * { min-width: 0; max-width: 100%; }
.admin-block-head h2, .admin-block-head h3 { overflow-wrap: anywhere; }
.admin-block h3 { font-family: "Source Serif 4", serif; font-size: 1.1rem; font-weight: 600; margin: 0; }
.admin-block-hint { color: var(--ink-soft); font-size: 0.9rem; margin: 0.3rem 0 1rem; }
.admin-refresh {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: none;
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 0.3rem 0.6rem;
  cursor: pointer;
}
.admin-refresh:hover { color: var(--accent-strong); border-color: var(--accent); }

.pending-list { display: flex; flex-direction: column; gap: 1rem; }
.pending-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 3px solid var(--moss);
  padding: 1.2rem 1.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.pending-meta { margin: 0; font-size: 0.86rem; color: var(--ink-soft); }
.pending-actions { display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap; margin-top: 0.3rem; }
.btn-approve, .btn-reject {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 2px;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
}
.btn-approve { background: var(--moss); color: var(--accent-ink); border: none; }
.btn-approve:hover { opacity: 0.88; }
.btn-reject { background: none; color: var(--accent-strong); border: 1px solid var(--accent); }
.btn-reject:hover { background: var(--accent); color: var(--accent-ink); }
.btn-approve:disabled, .btn-reject:disabled { opacity: 0.5; cursor: not-allowed; }
.pending-status { font-family: "JetBrains Mono", monospace; font-size: 0.76rem; color: var(--moss); }

.btn-feature, .btn-unfeature {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 2px;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
}
.btn-feature { background: var(--moss); color: var(--accent-ink); border: none; }
.btn-feature:hover { opacity: 0.88; }
.btn-unfeature { background: none; color: var(--ink-soft); border: 1px solid var(--line); }
.btn-unfeature:hover { border-color: var(--accent); color: var(--accent-strong); }
.featured-tag {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-strong);
  border: 1px solid var(--accent);
  border-radius: 2px;
  padding: 0.1rem 0.5rem;
}

/* ---------- advertising admin (careers admin panel) ---------- */
.ad-admin-list { display: flex; flex-direction: column; gap: 1rem; }
.ad-admin-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 3px solid var(--moss);
  padding: 1.2rem 1.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.ad-admin-card.is-active { border-left-color: var(--accent); }
.ad-admin-card.is-archived { border-left-color: var(--line); opacity: 0.75; }
.ad-admin-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.ad-admin-head h4 { font-family: "Source Serif 4", serif; text-transform: none; font-size: 1.05rem; font-weight: 600; margin: 0; }
.ad-status-tag {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--moss);
  border: 1px solid var(--moss);
  border-radius: 2px;
  padding: 0.1rem 0.5rem;
}
.ad-status-tag.is-archived { color: var(--ink-soft); border-color: var(--line); }
.ad-admin-card.is-error { border-left-color: var(--accent); }
.ad-status-tag.is-error { color: var(--accent-strong); border-color: var(--accent); }
.ad-status-tag.is-warning { color: var(--accent); border-color: var(--accent); background: var(--moss-soft); }
.deploy-tag.deploy-ok { color: var(--moss); font-weight: 600; }
.deploy-tag.deploy-pending { color: var(--accent-strong); font-weight: 600; }
.ad-thumb {
  max-width: 240px;
  max-height: 90px;
  width: auto;
  height: auto;
  border: 1px solid var(--line);
  background: var(--surface-alt);
  display: block;
}
.ad-admin-actions { display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap; }
.ad-activate-form { max-width: none; }
.ad-admin-status { font-family: "JetBrains Mono", monospace; font-size: 0.76rem; color: var(--moss); }

/* ---------- listing upgrades (careers post form) + upgraded job cards ---------- */
.listing-upgrades { border: 1px solid var(--line); padding: 1rem 1.1rem 1.1rem; margin: 0; background: var(--surface-alt); gap: 0.7rem; }
.listing-upgrades legend { padding: 0 0.4rem; }
.listing-upgrades .field-hint { margin: 0 0 0.3rem; }
.field .upgrade-option, .upgrade-option, .field .checkbox-label { display: flex; gap: 0.7rem; align-items: flex-start; background: var(--surface); border: 1px solid var(--line); padding: 0.8rem 0.9rem; cursor: pointer; font-family: "Source Serif 4", serif; font-size: 0.95rem; letter-spacing: normal; text-transform: none; color: var(--ink); }
.upgrade-option input, .checkbox-label input { margin-top: 0.3rem; flex: none; accent-color: var(--accent); }
.upgrade-option:has(input:checked) { border-color: var(--accent); }
.upgrade-body { display: flex; flex-direction: column; gap: 0.3rem; }
.upgrade-title { font-family: "Source Serif 4", serif; font-weight: 600; font-size: 1rem; color: var(--ink); display: flex; gap: 0.6rem; align-items: baseline; flex-wrap: wrap; }
.upgrade-price { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-strong); }
.upgrade-copy { font-size: 0.9rem; color: var(--ink-soft); line-height: 1.5; }
.upgrade-meta { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.06em; color: var(--moss); }
.upgrade-subfields { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem 1rem; padding: 0.2rem 0 0.4rem; }

.job-card.is-highlighted-listing { border: 2px solid var(--accent); background: var(--surface); box-shadow: 0 10px 24px var(--shadow); }
.job-card.is-pinned { border-left: 4px solid var(--moss); }
.job-logo { display: block; max-width: 160px; max-height: 64px; width: auto; height: auto; object-fit: contain; margin-bottom: 0.6rem; }
.job-logo-small { max-width: 110px; max-height: 40px; margin-bottom: 0.4rem; }
.job-company { color: var(--ink); font-weight: 600; }
.listing-badge {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.6rem;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--moss);
  border: 1px solid var(--moss);
  border-radius: 2px;
  padding: 0.12rem 0.45rem;
}
.listing-badge.listing-badge-volunteer { background: var(--moss); border-color: var(--moss); color: #F5F7EF; }
.job-card.is-volunteer { border-left: 3px solid var(--moss); }
.jobs-volunteer-note { max-width: 62ch; color: var(--ink-soft); font-size: 0.95rem; margin-top: 0.5rem; }
.job-actions.job-actions-volunteer { flex-wrap: wrap; }
.job-actions.job-actions-volunteer .job-apply { white-space: nowrap; }
.job-actions.job-actions-volunteer .small-muted { flex-basis: 100%; margin-top: 0; }
.highlight-job.is-highlighted-listing { border-left: 3px solid var(--accent); padding-left: 0.8rem; }

/* ---------- shared form styling (contact + careers apply) ---------- */
.contact { padding-block: 2.4rem 3rem; border-top: 1px solid var(--line); }
.apply { padding-block: 2.4rem 3rem; border-top: 1px solid var(--line); }
.contact-head { max-width: 58ch; margin-bottom: 1.8rem; }
.contact-head h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 800; margin-bottom: 0.7rem; }
.contact-head p { margin: 0; color: var(--ink-soft); }
.contact-head p + p { margin-top: 0.7rem; }
.contact-protocol { font-size: 0.95rem; border-left: 3px solid var(--accent); padding-left: 0.8rem; }

.inquiry-form, .job-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem 1.3rem;
  max-width: 680px;
}
.field { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.field label {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--moss);
}
.field input, .field select, .field textarea {
  font-family: "Source Serif 4", serif;
  font-size: 0.98rem;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 0.6rem 0.7rem;
  resize: vertical;
}
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.field-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; margin-top: 0.2rem; }
#inquiry-submit, #job-submit, #app-submit, #ad-inquiry-submit, #ad-direct-submit, #post-job-submit, #employer-subscribe-submit, .btn-accent {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--accent);
  color: var(--accent-ink);
  border: none;
  padding: 0.75rem 1.35rem;
  border-radius: 2px;
  cursor: pointer;
}
#inquiry-submit:hover, #job-submit:hover, #app-submit:hover, #post-job-submit:hover, #employer-subscribe-submit:hover,
#ad-inquiry-submit:hover, #ad-direct-submit:hover, .btn-accent:hover { background: var(--accent-strong); }
#inquiry-submit:disabled, #job-submit:disabled, #app-submit:disabled, #post-job-submit:disabled, #employer-subscribe-submit:disabled,
#ad-inquiry-submit:disabled, #ad-direct-submit:disabled, .btn-accent:disabled { opacity: 0.6; cursor: not-allowed; }
.inquiry-status { font-family: "JetBrains Mono", monospace; font-size: 0.78rem; color: var(--moss); min-height: 1em; }
.inquiry-fallback { max-width: 58ch; color: var(--ink-soft); font-size: 0.98rem; }

/* ---------- hero proof points (home) ---------- */
.hero-proof { list-style: none; margin: 1.2rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; font-size: 0.88rem; color: var(--ink-soft); }
.hero-proof li { position: relative; padding-left: 1.1rem; }
.hero-proof li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--accent); }
.hero-proof strong { color: var(--ink); }

/* ---------- footer ---------- */
/* Full-bleed dark footer. A two-layer mountain silhouette (CSS masks, so
   it follows the theme tokens) rises out of the page background above it:
   a back range in --footer-ridge, a front range in --footer-bg. */
footer {
  position: relative;
  margin-top: clamp(96px, 15vw, 190px);
  margin-inline: calc(50% - 50vw);
  padding: 1.8rem max(20px, calc((100% - 1180px) / 2)) 2.4rem;
  background: var(--footer-bg);
  color: var(--footer-ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.9rem;
}
footer::before, footer::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: 100%;
  height: clamp(90px, 14vw, 180px);
  pointer-events: none;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-position: bottom center; mask-position: bottom center;
}
footer::before {
  background: var(--footer-ridge);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 180' preserveAspectRatio='none'%3E%3Cpath d='M0 180V112L48 88 96 102 150 58 198 84 236 40 300 92 352 66 392 96 432 78 470 108 530 54 578 88 616 70 664 100 700 46 752 98 800 74 836 96 880 58 940 30 986 66 1024 82 1072 62 1120 78 1160 66 1200 100V180Z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 180' preserveAspectRatio='none'%3E%3Cpath d='M0 180V112L48 88 96 102 150 58 198 84 236 40 300 92 352 66 392 96 432 78 470 108 530 54 578 88 616 70 664 100 700 46 752 98 800 74 836 96 880 58 940 30 986 66 1024 82 1072 62 1120 78 1160 66 1200 100V180Z'/%3E%3C/svg%3E");
}
footer::after {
  background: var(--footer-bg);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 180' preserveAspectRatio='none'%3E%3Cpath d='M0 180V146L40 132 84 142 130 118 176 138 210 108 262 134 318 120 358 144 412 128 452 150 500 106 548 140 592 128 640 150 690 118 736 148 784 130 826 152 870 126 918 142 962 118 1010 150 1056 136 1100 154 1148 130 1200 146V180Z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 180' preserveAspectRatio='none'%3E%3Cpath d='M0 180V146L40 132 84 142 130 118 176 138 210 108 262 134 318 120 358 144 412 128 452 150 500 106 548 140 592 128 640 150 690 118 736 148 784 130 826 152 870 126 918 142 962 118 1010 150 1056 136 1100 154 1148 130 1200 146V180Z'/%3E%3C/svg%3E");
}
.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.4rem;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.footer-links a { color: var(--footer-link); text-decoration-color: var(--footer-ridge); }
.footer-links a:hover { color: var(--accent); opacity: 1; }
.copyright { margin: 0; font-family: "JetBrains Mono", monospace; font-size: 0.74rem; color: var(--footer-ink); letter-spacing: 0.04em; }
.copyright a { color: var(--footer-link); text-decoration: underline; text-decoration-color: var(--footer-ridge); }

/* ---------- CAD / dispatch status badges (js/dispatch.js) ---------- */
.cad-status { line-height: 1.5; }
.cad-badge {
  display: inline-block;
  vertical-align: baseline;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.16em 0.55em;
  border-radius: 2px;
  background: var(--ink);
  color: var(--bg);
  margin-right: 0.15rem;
}
.cad-badge.cad-logged { background: var(--moss); color: #F5F7EF; }
.cad-badge.cad-acknowledged, .cad-badge.cad-ack, .cad-badge.cad-en-route, .cad-badge.cad-dispatched { background: var(--accent); color: var(--accent-ink, #F5F7EF); }
.cad-badge.cad-cleared { background: var(--ink); color: var(--bg); }
.cad-badge.cad-disrupted, .cad-badge.cad-action-required, .cad-badge.cad-overdue { background: #8B1E1E; color: #F5F7EF; }
.cad-meta { font-family: "JetBrains Mono", monospace; font-size: 0.78rem; letter-spacing: 0.04em; color: var(--ink-soft); }

/* ===========================================================
   Get the App (get-the-app.html)
   =========================================================== */
.app-hero {
  display: flex;
  align-items: center;
  gap: 2.4rem;
  padding-block: 1.6rem 1rem;
  flex-wrap: wrap;
}
.app-hero-copy { flex: 1 1 400px; }
.app-hero-badges { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 1.3rem; align-items: center; }
.app-hero-badges img { display: block; height: 60px; width: auto; }
.app-hero-qr {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 1.2rem;
}
.app-hero-qr img { width: 148px; height: 148px; display: block; }
.app-hero-qr span { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; color: var(--ink-soft); text-align: center; }

.app-platforms {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2rem;
  padding-block: 1.4rem 1.8rem;
  border-top: 1px solid var(--line);
}
.app-platform { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--moss); padding: 1.3rem 1.3rem 1.5rem; }
.app-platform h3 { font-size: 1.2rem; margin-bottom: 0.7rem; }
.app-platform ol { margin: 0; padding-left: 1.2rem; color: var(--ink-soft); font-size: 0.94rem; line-height: 1.6; }
.app-platform ol li { margin-bottom: 0.35rem; }
.app-platform ol li:last-child { margin-bottom: 0; }
.app-platform-note { margin: 0.8rem 0 0; font-size: 0.84rem; color: var(--ink-soft); }

.app-screens {
  padding-block: 1.4rem 2rem;
  border-top: 1px solid var(--line);
}
.app-screens-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-top: 1.2rem;
}
.app-screen-item { text-align: center; }
.app-screen-item img { width: 100%; max-width: 220px; height: auto; border: 1px solid var(--line); }
.app-screen-item p { margin: 0.7rem 0 0; font-size: 0.88rem; color: var(--ink-soft); }

.app-why {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  padding-block: 1.4rem 2rem;
  border-top: 1px solid var(--line);
}
.app-why-item { background: var(--surface); padding: 1.2rem 1.1rem; }
.app-why-item .tag {
  display: inline-block;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--accent-strong);
  margin-bottom: 0.5rem;
}
.app-why-item p { margin: 0; font-size: 0.9rem; color: var(--ink-soft); }

@media (max-width: 860px) {
  .app-platforms, .app-why { grid-template-columns: 1fr; }
  .app-screens-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .app-screens-grid { grid-template-columns: 1fr; }
  .app-hero-qr { align-self: flex-start; }
}

/* ===========================================================
   Credential Glossary (encyclopedia.html)
   =========================================================== */
.glossary-search {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--bg);
  padding: 1rem 0 0.9rem;
  margin-bottom: 0.4rem;
}
.glossary-search .field input {
  width: 100%;
  max-width: 420px;
}
.glossary-count {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.76rem;
  color: var(--ink-soft);
  margin: 0.5rem 0 0;
}
.glossary-jumpnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 2rem;
}
.glossary-jumpnav a {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  color: var(--ink-soft);
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 0.32rem 0.7rem;
  border-radius: 2px;
  text-decoration: none;
}
.glossary-jumpnav a:hover { color: var(--accent-strong); border-color: var(--accent); }

.glossary-group {
  margin-bottom: 2.4rem;
  scroll-margin-top: 5rem;
}
.glossary-group-head { margin-bottom: 0.9rem; }
.glossary-group-head h2 { margin: 0 0 0.2rem; }
.glossary-group-org {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  color: var(--moss);
  margin: 0;
}
.glossary-terms {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.term-chip {
  font-size: 0.86rem;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 0.5rem 0.85rem;
  border-radius: 2px;
  cursor: pointer;
  text-align: left;
}
.term-chip:hover, .term-chip:focus-visible {
  border-color: var(--accent);
  background: var(--surface-alt);
}
.term-chip.is-hidden { display: none; }
.glossary-group.is-hidden { display: none; }

/* The "z-layer" definition window: a backdrop plus a floating card raised
   well above normal page content via z-index. */
.def-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 14, 8, 0.45);
  z-index: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.2rem;
}
.def-overlay[hidden] { display: none; }
.def-window {
  position: relative;
  z-index: 901;
  width: 100%;
  max-width: 460px;
  max-height: 80vh;
  overflow-y: auto;
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--moss);
  box-shadow: 0 12px 40px var(--shadow);
  padding: 1.6rem 1.6rem 1.8rem;
}
.def-window-close {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  background: none;
  border: none;
  font-size: 1.3rem;
  line-height: 1;
  color: var(--ink-soft);
  cursor: pointer;
  padding: 0.2rem 0.4rem;
}
.def-window-close:hover { color: var(--accent-strong); }
.def-window .def-org {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--moss);
  margin: 0 0 0.3rem;
}
.def-window h3 { margin: 0 0 0.8rem; padding-right: 1.5rem; }
.def-window p { margin: 0; color: var(--ink-soft); line-height: 1.5; }

/* ---------- clinical profile + credential verification (account.html) ---------- */
.credential-section { margin-top: 1.6rem; }
.credential-section h2 { font-size: 1.5rem; font-weight: 800; margin: 0 0 0.6rem; }

.checkbox-list { display: flex; flex-direction: column; gap: 0.5rem; max-height: 220px; overflow-y: auto; border: 1px solid var(--line); padding: 0.8rem 1rem; background: var(--surface); }
.checkbox-list-option { display: flex; align-items: center; gap: 0.6rem; font-size: 0.92rem; color: var(--ink); cursor: pointer; }
.checkbox-list-option input { accent-color: var(--accent); }

.credential-overall-status {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  padding: 0.7rem 1rem;
  border: 1px solid var(--line);
  border-left: 4px solid var(--ink-soft);
  background: var(--surface);
  margin: 0 0 1.4rem;
}

/* Status color language shared by candidate checkpoint cards and the
   admin review queue — kept to the two hues already used across the
   site (moss = good/in-progress, accent = needs action) rather than
   introducing new colors. */
.checkpoint-status-incomplete { --status-color: var(--ink-soft); }
.checkpoint-status-pending { --status-color: var(--moss); }
.checkpoint-status-verified { --status-color: var(--moss); }
.checkpoint-status-expired { --status-color: var(--accent-strong); }
.checkpoint-status-rejected { --status-color: var(--accent-strong); }
.checkpoint-status-suspended { --status-color: var(--accent-strong); }
.checkpoint-status-unapplied { --status-color: var(--ink-soft); }

.credential-overall-status.checkpoint-status-incomplete,
.credential-overall-status.checkpoint-status-pending,
.credential-overall-status.checkpoint-status-verified,
.credential-overall-status.checkpoint-status-expired,
.credential-overall-status.checkpoint-status-rejected {
  border-left-color: var(--status-color);
  color: var(--status-color);
}

.checkpoints-list { display: flex; flex-direction: column; gap: 1.4rem; }
.checkpoint-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 3px solid var(--status-color, var(--line));
  padding: 1.2rem 1.4rem;
}
.checkpoint-head { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; margin-bottom: 0.3rem; }
.checkpoint-head h3 { font-family: "Source Serif 4", serif; font-size: 1.05rem; font-weight: 600; margin: 0; }
.checkpoint-head h5 { font-family: "Source Serif 4", serif; font-size: 0.98rem; font-weight: 600; margin: 0; }
.checkpoint-badge {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--status-color, var(--ink-soft));
  border: 1px solid var(--status-color, var(--line));
  border-radius: 2px;
  padding: 0.1rem 0.5rem;
}
.checkpoint-optional-tag {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  border: 1px dashed var(--line);
  border-radius: 2px;
  padding: 0.1rem 0.5rem;
}
.checkpoint-notes { font-size: 0.88rem; color: var(--accent-strong); background: var(--surface-alt); padding: 0.6rem 0.8rem; margin: 0.6rem 0; }
.checkpoint-form { margin-top: 0.8rem; }
.checkpoint-view-doc {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  color: var(--accent-strong);
}

/* ---------- credential verification (admin queue, careers.html) ---------- */
.credential-candidate-card { border-left-width: 3px; border-left-color: var(--status-color, var(--moss)); }
.credential-overall-tag { color: var(--status-color, var(--moss)); border-color: var(--status-color, var(--moss)); }
.admin-checkpoints { display: flex; flex-direction: column; gap: 1rem; margin-top: 0.6rem; }
.admin-checkpoint-block {
  border: 1px solid var(--line);
  border-left: 3px solid var(--status-color, var(--line));
  background: var(--surface-alt);
  padding: 0.9rem 1.1rem;
}
.checkpoint-review-form { margin-top: 0.6rem; display: flex; flex-direction: column; gap: 0.6rem; }
.checkpoint-review-row { display: flex; gap: 1rem; flex-wrap: wrap; }
.checkpoint-review-row label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--moss);
  flex: 1 1 200px;
}
.checkpoint-review-notes-label { flex-basis: 100%; }
.checkpoint-review-row input, .checkpoint-review-row textarea {
  font-family: "Source Serif 4", serif;
  font-size: 0.92rem;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 0.5rem 0.6rem;
  text-transform: none;
  letter-spacing: normal;
  resize: vertical;
}
.checkpoint-review-actions { display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; }

/* ---------- rapid deployment: candidate availability card (account.html) ---------- */
.consent-option, .availability-toggle { align-items: flex-start; font-size: 0.9rem; line-height: 1.45; }
.consent-option input, .availability-toggle input { margin-top: 0.25rem; flex: 0 0 auto; }
.availability-toggle { padding: 0.8rem 1rem; border: 1px solid var(--line); background: var(--surface-alt); }

/* ---------- public registry: account card + verify.php ---------- */
.share-block { display: flex; flex-direction: column; gap: 0.5rem; padding-top: 0.6rem; border-top: 1px solid var(--line); }
.share-row { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.share-row input { flex: 1 1 220px; min-width: 0; font-family: "JetBrains Mono", monospace; font-size: 0.78rem; color: var(--ink); background: var(--surface-alt); border: 1px solid var(--line); border-radius: 2px; padding: 0.5rem 0.6rem; }
.badge-preview { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.badge-preview img { max-width: 100%; height: auto; }
.linkedin-list { display: flex; flex-direction: column; gap: 0.5rem; align-items: flex-start; }
.linkedin-add { text-decoration: none; display: inline-block; }
.registry-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.registry-headline { margin: 0.4rem 0 0; font-size: 1.1rem; color: var(--ink-soft); }
.registry-status-badge {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.55rem 0.9rem;
  border-radius: 3px;
  border: 1px solid currentColor;
  white-space: nowrap;
  flex: none;
}
.registry-status-badge::before { content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: currentColor; margin-right: 0.55rem; vertical-align: middle; }
.registry-status-active { color: var(--moss); background: var(--moss-soft); }
.registry-status-expired, .registry-status-unverified { color: var(--ink-soft); background: var(--surface-alt); }
.registry-card.registry-active { border-top-color: var(--moss); }
.registry-card.registry-expired, .registry-card.registry-unverified { border-top-color: var(--line); }
.registry-table td { font-size: 0.9rem; }

/* ---------- verified contractor profile (contractor-profile.php) + onboarding ---------- */
.contractor-profile-id { display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; }
.contractor-profile-logo { max-width: 140px; max-height: 80px; margin: 0; }
.contractor-follow { display: flex; flex-direction: column; gap: 0.4rem; align-items: flex-start; padding: 0.9rem 1rem; border: 1px solid var(--line); background: var(--surface-alt); }
.contractor-follow .small-muted { margin: 0; }
.profile-section { border-top: 1px solid var(--line); padding-top: 1rem; }
.profile-section h2 { font-size: 1.35rem; font-weight: 800; margin: 0 0 0.8rem; }
.profile-section h3 { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--moss); margin: 1rem 0 0.5rem; font-weight: 600; }
.profile-facts { display: grid; grid-template-columns: 200px 1fr; gap: 0.7rem 1.2rem; margin: 0; }
.profile-facts dt { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--moss); padding-top: 0.15rem; }
.profile-facts dd { margin: 0; }
.profile-facts dd p { margin: 0 0 0.4rem; }
.onboarding-card p { margin: 0; color: var(--ink); line-height: 1.6; }
.onboarding-checkpoints { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.1rem; counter-reset: cp; }
.onboarding-checkpoints li { border: 1px solid var(--line); border-left: 3px solid var(--accent); background: var(--surface-alt); padding: 1rem 1.2rem; display: flex; flex-direction: column; gap: 0.5rem; counter-increment: cp; }
.onboarding-checkpoints h2 { font-size: 1.25rem; font-weight: 800; margin: 0; }
.onboarding-checkpoints h2::before { content: counter(cp) ". "; color: var(--accent); }
.onboarding-h2 { font-size: 1.35rem; font-weight: 800; margin: 0.4rem 0 0; }
.roster-entry.is-highlighted-listing { border-left-color: var(--accent); }
.roster-entry h5 a { color: var(--ink); text-decoration: none; }
.roster-entry h5 a:hover { text-decoration: underline; }

/* ---------- legal pages ---------- */
.legal-card h2 { font-size: 1.15rem; font-weight: 800; margin: 0.6rem 0 0; }
.legal-card p { margin: 0; line-height: 1.6; }
.legal-card p + p { margin-top: 0.6rem; }

/* ---------- rapid deployment: contractor dashboard (contractor.html) ---------- */
.contractor-card h2 { font-size: 1.5rem; font-weight: 800; margin: 0 0 0.4rem; }
.crew-call-form { max-width: none; }
.checkbox-list-option-wrap .checkbox-list-option { font-size: 0.95rem; }
.crew-call-card .job-meta { margin-top: 0.2rem; }
.sms-preview-details summary {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-strong);
  cursor: pointer;
}
.deploy-brief {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.8rem;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  background: var(--surface-alt);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  padding: 0.9rem 1rem;
  margin: 0.6rem 0 0;
}
.roster-list { display: flex; flex-direction: column; gap: 0.9rem; margin-top: 0.6rem; }
.roster-entry { border: 1px solid var(--line); border-left: 3px solid var(--moss); background: var(--surface-alt); padding: 0.9rem 1.1rem; }
.roster-creds { width: 100%; border-collapse: collapse; margin-top: 0.6rem; font-size: 0.86rem; }
.roster-creds th, .roster-creds td { text-align: left; padding: 0.4rem 0.5rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.roster-creds th { font-family: "JetBrains Mono", monospace; font-size: 0.64rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--moss); font-weight: 500; }
.small-muted { font-size: 0.8rem; color: var(--ink-soft); }
.roster-download { display: inline-block; text-decoration: none; }
.roster-table-wrap { overflow-x: auto; max-width: 100%; min-width: 0; }
.ad-admin-card { min-width: 0; }
.ad-admin-card > * { min-width: 0; }

/* ---------- rapid deployment: one-click accept page (deploy.html) ---------- */
.deploy-actions { display: flex; flex-direction: column; gap: 0.9rem; }
.deploy-accept { font-size: 0.92rem; padding: 1rem 1.4rem; width: 100%; }
.deploy-card h1 { font-size: 1.6rem; }

@media (max-width: 900px) {
  .deploy-steps { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } /* four glued step headings need ~200px each */
}
@media (max-width: 760px) {
  .sectors { grid-template-columns: 1fr; }
  .components { grid-template-columns: 1fr; }
  .capability { grid-template-columns: 1fr; }
  .stamp { justify-self: start; }
  .discipline-grid { grid-template-columns: 1fr; }
  .inquiry-form, .job-form { grid-template-columns: 1fr; }
  .job-card-head { flex-direction: column; align-items: flex-start; }
  .checkpoint-review-row { flex-direction: column; }
  .upgrade-subfields { grid-template-columns: 1fr; }
  .profile-facts { grid-template-columns: 1fr; gap: 0.2rem 0; }
  .profile-facts dd { margin-bottom: 0.6rem; }
  .deploy-steps { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .home-value-props { grid-template-columns: 1fr; }
  .hero-ctas-split { flex-direction: column; align-items: stretch; }
}
@media (max-width: 520px) {
  .deploy-steps { grid-template-columns: 1fr; }
}

/* Elements hidden via the hidden attribute stay hidden even when a class sets display:flex/grid. */
[hidden] { display: none !important; }

/* ---------- homepage marketplace strip ---------- */
.home-marketplace { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr); gap: 1.8rem; padding-block: 2rem; border-top: 1px solid var(--line); align-items: start; }
.home-marketplace-text h2 { font-size: clamp(1.4rem, 2.4vw, 1.8rem); font-weight: 800; margin: 0.3rem 0 0.6rem; line-height: 1.1; }
.home-marketplace-text p { margin: 0; color: var(--ink-soft); line-height: 1.55; max-width: 52ch; }
.home-marketplace-links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 0.7rem; }
.home-marketplace-links a { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.85rem 0.95rem; border: 1px solid var(--line); background: var(--surface); text-decoration: none; color: var(--ink); min-width: 0; height: 100%; }
.home-marketplace-links a:hover { border-color: var(--accent); }
.home-marketplace-links strong { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); font-weight: 600; }
.home-marketplace-links span { font-size: 0.88rem; color: var(--ink-soft); line-height: 1.45; }
@media (max-width: 760px) { .home-marketplace { grid-template-columns: 1fr; } }

/* ---------- marketplace (marketplace.html) ---------- */
.market-member-line { margin: 0.9rem 0 0; font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.04em; color: var(--moss); }
.market-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; padding-block: 0.4rem 1.2rem; border-bottom: 1px solid var(--line); }
.market-tab {
  font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
  background: transparent; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 2px; padding: 0.45rem 0.8rem; cursor: pointer;
}
.market-tab:hover { color: var(--ink); border-color: var(--ink-soft); }
.market-tab.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.market-sections { display: flex; flex-direction: column; gap: 2.4rem; padding-block: 1.8rem 2.4rem; }
.market-section-head { max-width: 62ch; margin-bottom: 1.1rem; }
.market-section-head h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; margin: 0.2rem 0 0.5rem; }
.market-section-head p { margin: 0; color: var(--ink-soft); }
.offer-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.1rem; }
.offer-card { display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--surface); box-shadow: 0 8px 20px var(--shadow); min-width: 0; }
.offer-card.is-featured { border: 2px solid var(--accent); }
.offer-image { display: block; width: 100%; max-height: 160px; object-fit: cover; border-bottom: 1px solid var(--line); }
.offer-body { display: flex; flex-direction: column; gap: 0.55rem; padding: 1.05rem 1.15rem 1.2rem; min-width: 0; }
.offer-vendor { margin: 0; font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--moss); overflow-wrap: anywhere; }
.offer-vendor a { color: inherit; }
.offer-body h3 { font-family: "Source Serif 4", serif; text-transform: none; letter-spacing: 0; font-size: 1.15rem; font-weight: 600; margin: 0; overflow-wrap: anywhere; }
.offer-meta { margin: 0; }
.offer-price { color: var(--ink); font-weight: 600; }
.offer-body p.desc { margin: 0; color: var(--ink-soft); font-size: 0.93rem; line-height: 1.55; overflow-wrap: anywhere; }
.offer-code { margin: 0.2rem 0 0; font-size: 0.88rem; color: var(--ink); }
.offer-code code { font-family: "JetBrains Mono", monospace; font-size: 0.86rem; background: var(--bg); border: 1px dashed var(--moss); padding: 0.1rem 0.45rem; color: var(--moss); }
.offer-code.is-locked { color: var(--ink-soft); font-style: italic; }
.offer-cta { align-self: flex-start; margin-top: 0.3rem; font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); text-decoration: none; border-bottom: 1px solid currentColor; }
.offer-cta:hover { color: var(--ink); }
.market-vault { padding-block: 1.6rem; border-top: 1px solid var(--line); }
.market-vault-text { max-width: 64ch; }
.market-vault-text h2 { font-size: clamp(1.4rem, 2.4vw, 1.8rem); font-weight: 800; margin: 0.2rem 0 0.5rem; }
.market-vault-text p { margin: 0; color: var(--ink-soft); }
.market-terms-list { margin: 1rem 0 0; padding-left: 1.2rem; color: var(--ink-soft); font-size: 0.93rem; line-height: 1.55; }
.market-terms-list li + li { margin-top: 0.35rem; }
.market-terms-list strong { color: var(--ink); font-weight: 600; }
.deploy-insurance { margin-top: 1.2rem; border: 1px solid var(--line); border-left: 3px solid var(--accent); background: var(--surface); padding: 0.9rem 1.1rem; text-align: left; }
.deploy-insurance h3 { font-family: "Source Serif 4", serif; text-transform: none; letter-spacing: 0; font-size: 1.05rem; font-weight: 600; margin: 0 0 0.3rem; }
.deploy-insurance p { margin: 0 0 0.5rem; font-size: 0.9rem; color: var(--ink-soft); }
.deploy-insurance ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.deploy-insurance li a { color: var(--accent-strong); font-weight: 600; }
.deploy-insurance li span { color: var(--ink-soft); font-size: 0.88rem; }
.offer-admin-card .offer-meta-admin { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.04em; color: var(--moss); }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ---------- specialty + credential landing pages (specialty.php, credential.php, specialties.php) ---------- */
.landing-hero .kicker a { color: inherit; text-decoration-color: var(--accent); }
.landing-badges-label { margin: 1.6rem 0 0.5rem; font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
.landing-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.landing-badges li { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.42rem 0.75rem; border: 1px solid var(--line); border-radius: 2px; background: var(--surface); color: var(--ink); }
.landing-contexts { padding-block: 0.4rem 1.4rem; }
.landing-context-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.landing-context { background: var(--surface); padding: 0.9rem 1.1rem; font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-soft); }
.landing-section-head { max-width: 64ch; margin-bottom: 1.4rem; }
.landing-section-head h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; margin-bottom: 0.5rem; }
.landing-section-head p { margin: 0; color: var(--ink-soft); }
.landing-section-head p + p { margin-top: 0.6rem; }
.landing-feed, .landing-signup, .landing-safeguards, .landing-credentials, .landing-other-tracks, .landing-tracks, .landing-pathways, .landing-requirements { padding-block: 2.2rem 2.4rem; border-top: 1px solid var(--line); }
.landing-pathway-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.landing-pathway { border: 1px solid var(--line); background: var(--surface); padding: 1.1rem 1.2rem; }
.landing-pathway h3 { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.15rem; text-transform: uppercase; letter-spacing: 0.02em; margin: 0 0 0.5rem; }
.landing-pathway p { margin: 0; color: var(--ink-soft); font-size: 0.95rem; line-height: 1.55; }
.landing-req-list { margin: 0; padding-left: 1.3rem; display: grid; gap: 0.6rem; max-width: 70ch; }
.landing-req-list li { line-height: 1.55; color: var(--ink-soft); }
.landing-req-list li strong { color: var(--ink); }
.landing-feed-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.feed-card { position: relative; }
.feed-card-example { border-style: dashed; }
.feed-example-badge, .feed-card .listing-badge { display: inline-block; font-family: "JetBrains Mono", monospace; font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.25rem 0.5rem; border-radius: 2px; background: var(--surface-alt); color: var(--ink-soft); margin-bottom: 0.6rem; }
.feed-card .job-actions { margin-top: 0.8rem; }
.feed-card .job-actions .hero-cta { display: inline-block; padding: 0.6rem 1rem; font-size: 0.72rem; }
.landing-feed-more { margin: 1.4rem 0 0; font-weight: 600; }
.landing-feed-more a { color: var(--ink); text-decoration-color: var(--accent); }
.quick-signup { display: flex; flex-direction: column; gap: 1.4rem; max-width: 900px; }
.qs-step { border: 1px solid var(--line); background: var(--surface); padding: 1.2rem 1.3rem 1.4rem; margin: 0; min-width: 0; }
.qs-step legend { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.25rem; text-transform: uppercase; letter-spacing: 0.02em; padding: 0 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.qs-num { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--accent); color: var(--accent-ink); font-family: "JetBrains Mono", monospace; font-size: 0.8rem; }
.qs-optional { font-family: "Source Serif 4", serif; font-weight: 400; font-size: 0.85rem; text-transform: none; letter-spacing: 0; color: var(--ink-soft); }
.cred-pills, .cap-grid { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 0.6rem; }
.cred-pill, .cap-check { position: relative; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 0.85rem; border: 1px solid var(--line); border-radius: 999px; background: var(--bg); cursor: pointer; font-size: 0.93rem; line-height: 1.25; max-width: 100%; }
.cap-check { border-radius: 4px; }
.cred-pill input, .cap-check input { margin: 0; accent-color: var(--accent); flex: none; }
.cred-pill:has(input:checked), .cap-check:has(input:checked) { border-color: var(--accent); background: var(--surface-alt); color: var(--ink); box-shadow: inset 0 0 0 1px var(--accent); }
.cred-pill-other { border-style: dashed; }
.qs-other { margin-top: 0.9rem; max-width: 520px; }
.qs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin-top: 0.6rem; }
.qs-consent { display: flex; gap: 0.6rem; align-items: flex-start; margin-top: 1rem; font-size: 0.92rem; color: var(--ink-soft); }
.qs-consent input { margin-top: 0.25rem; accent-color: var(--accent); flex: none; }
.qs-fine { font-size: 0.9rem; color: var(--ink-soft); margin: 0; }
.qs-fine a { color: var(--ink); }
.qs-done { max-width: 620px; margin-top: 1rem; }
.safeguard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.safeguard { background: var(--surface); padding: 1.4rem 1.4rem 1.6rem; }
.safeguard h3 { font-family: "Source Serif 4", serif; text-transform: none; letter-spacing: 0; font-size: 1.1rem; font-weight: 600; margin: 0 0 0.6rem; }
.safeguard p { margin: 0; color: var(--ink-soft); font-size: 0.95rem; }
.landing-cred-group { margin-top: 1.4rem; }
.landing-cred-group h3 { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.2rem; text-transform: uppercase; letter-spacing: 0.02em; margin: 0 0 0.6rem; display: flex; flex-wrap: wrap; gap: 0.3rem 0.8rem; align-items: baseline; }
.landing-cred-org { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.06em; color: var(--ink-soft); font-weight: 500; }
.landing-cred-org a { color: var(--accent-strong); }
.landing-cred-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.45rem; }
.landing-cred-list a { display: inline-block; padding: 0.38rem 0.7rem; border: 1px solid var(--line); border-radius: 2px; background: var(--surface); color: var(--ink); text-decoration: none; font-size: 0.88rem; }
.landing-cred-list a:hover { border-color: var(--accent); color: var(--accent-strong); }
.landing-track-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1px; padding: 1px; }
.landing-track-card { box-shadow: 0 0 0 1px var(--line); }
.landing-track-grid-wide { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.landing-track-card { background: var(--surface); padding: 1.1rem 1.2rem 1.3rem; text-decoration: none; color: var(--ink); display: flex; flex-direction: column; gap: 0.4rem; }
.landing-track-card:hover { background: var(--surface-alt); }
.landing-track-card strong { font-family: "Big Shoulders Display", sans-serif; font-size: 1.3rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.02em; }
.landing-track-card span { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--moss); }
.landing-track-card em { font-style: normal; font-size: 0.9rem; color: var(--ink-soft); }
/* operational track icons (images/track-icons.svg, Tier 28): 1em, currentColor, sits on the mono x-height */
.trk { width: 1em; height: 1em; flex: none; vertical-align: -0.15em; color: inherit; }
.trk-card { width: 1.15em; height: 1.15em; margin-right: 0.45em; vertical-align: -0.18em; color: var(--accent-strong); }
.trk-hero { width: 1.5em; height: 1.5em; vertical-align: -0.4em; margin-right: 0.3em; color: var(--accent-strong); }
.landing-volunteer .kicker .trk { color: var(--moss); width: 1.4em; height: 1.4em; vertical-align: -0.35em; margin-right: 0.3em; }
.cad-status .trk, .checkpoint-badge .trk { margin-right: 0.3em; }
.landing-track-num { display: inline-block; min-width: 1.6em; font-family: "JetBrains Mono", monospace; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.08em; color: var(--accent-strong); vertical-align: 0.35em; }
.landing-notice { font-family: "JetBrains Mono", monospace; font-size: 0.78rem; line-height: 1.6; letter-spacing: 0.02em; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--accent); padding: 0.9rem 1.1rem; margin: 0 0 1.2rem; max-width: none; }
.landing-notice strong { color: var(--accent-strong); letter-spacing: 0.1em; }
.landing-volunteer { margin-top: 2.4rem; padding: 1.6rem 1.4rem 1.8rem; background: var(--moss-soft); border: 1px solid var(--moss); border-left-width: 6px; }
.landing-volunteer .landing-section-head { margin-bottom: 0.6rem; }
.landing-volunteer .kicker { color: var(--moss); }
.landing-volunteer p { max-width: 68ch; color: var(--ink); margin: 0 0 0.8rem; }
.landing-volunteer-creds { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--moss); }
.landing-volunteer .hero-cta { display: inline-block; margin-top: 0.4rem; }
/* magic sign-in link option on the log-in page + set-password card on the account page */
.auth-divider { display: flex; align-items: center; gap: 0.8rem; font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); margin: 0.4rem 0; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.locker-banner { border: 1px solid var(--accent); border-left-width: 4px; background: var(--surface); padding: 1rem 1.2rem; margin-bottom: 1.2rem; }
.locker-banner h2 { font-size: 1.3rem; margin: 0 0 0.4rem; }
.locker-banner p { margin: 0; color: var(--ink-soft); font-size: 0.95rem; }
.locker-banner .hero-cta { display: inline-block; margin-top: 0.8rem; }

.def-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.6rem 1rem; margin: 1rem 0 0; padding-top: 0.9rem; border-top: 1px solid var(--line); }
.def-meta > div { margin: 0; }
.def-meta dt { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--moss); margin: 0 0 0.15rem; }
.def-meta dd { margin: 0; font-size: 0.9rem; color: var(--ink); line-height: 1.4; }
.def-equiv { font: inherit; font-size: 0.82rem; background: var(--moss-soft); color: var(--ink); border: 1px solid var(--line); border-radius: 999px; padding: 0.15rem 0.6rem; margin: 0.1rem 0.1rem 0.1rem 0; cursor: pointer; }
.def-equiv:hover { border-color: var(--accent); color: var(--accent-strong); }
.landing-cred-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem 1.5rem; margin: 0; }
.landing-cred-meta > div { margin: 0; }
.landing-cred-meta dt { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--moss); margin: 0 0 0.25rem; }
.landing-cred-meta dd { margin: 0; color: var(--ink); line-height: 1.45; }
.landing-cred-meta dd a { color: var(--ink); text-decoration-color: var(--accent); }
.def-deployments { margin: 1rem 0 0; font-weight: 600; }
.def-deployments a { color: var(--ink); text-decoration-color: var(--accent); }
.home-specialties { padding-block: 2.2rem 2.4rem; border-top: 1px solid var(--line); }
.home-specialties .landing-volunteer { margin-top: 1.4rem; }
.home-value-prop .landing-notice { margin: 0.6rem 0 1rem; font-size: 0.74rem; }
.quick-signup .btn-accent { font-size: 0.82rem; padding: 0.95rem 1.6rem; }
.auth-form .button-secondary { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.auth-form .button-secondary:hover { border-color: var(--accent); color: var(--accent-strong); background: transparent; }

/* advocacy marks on registry pages */
.registry-marks { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.6rem; }
.registry-mark { display: inline-block; font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.3rem 0.6rem; border-radius: 3px; border: 1px solid var(--accent); color: var(--accent-strong); background: var(--surface); text-decoration: none; }
.registry-mark-founding { background: var(--accent); color: var(--accent-ink); }
.registry-mark-team { border-color: var(--moss); color: var(--moss); }

/* team pages */
.team-progress { height: 8px; background: var(--surface-alt); border: 1px solid var(--line); border-radius: 999px; overflow: hidden; margin-top: 1rem; max-width: 520px; }
.team-progress span { display: block; height: 100%; background: var(--moss); }
.team-explainer { max-width: 60ch; color: var(--ink-soft); margin: 0; }
.team-code { font-size: 1.05rem; margin: 0 0 1rem; }
.team-code code { font-family: "JetBrains Mono", monospace; font-size: 1.3rem; letter-spacing: 0.1em; padding: 0.35rem 0.7rem; border: 1px dashed var(--accent); border-radius: 3px; background: var(--surface); }
.team-embed { font-size: 0.8rem; overflow-x: auto; background: var(--surface); border: 1px solid var(--line); padding: 0.8rem 1rem; }
.founding-line, .founding-offer { margin: 0.6rem 0 0; padding: 0.7rem 0.9rem; border: 1px solid var(--accent); border-left-width: 4px; background: var(--surface); color: var(--ink); font-size: 0.95rem; }
.invite-line, .invite-banner { margin: 0.6rem 0 0; color: var(--moss); font-weight: 600; }
.invite-line code, .invite-banner code { font-family: "JetBrains Mono", monospace; letter-spacing: 0.08em; }
.invite-banner { margin: 0 0 1rem; padding: 0.7rem 0.9rem; border: 1px dashed var(--moss); background: var(--surface); }

/* account: advocacy card */
.adv-invite { margin: 0.6rem 0 1rem; }
.adv-invite label { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); display: block; margin-bottom: 0.35rem; }
.adv-invite-row { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.adv-invite-row input { flex: 1 1 260px; min-width: 0; font-family: "JetBrains Mono", monospace; font-size: 0.85rem; padding: 0.6rem 0.7rem; border: 1px solid var(--line); background: var(--bg); color: var(--ink); }
.adv-invite-row button { padding: 0.55rem 0.9rem; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
.adv-invite-row button:hover { border-color: var(--accent); color: var(--accent-strong); }
.adv-share-links { margin: 0.4rem 0 0; font-size: 0.92rem; color: var(--ink-soft); }
.adv-share-links code { font-family: "JetBrains Mono", monospace; letter-spacing: 0.08em; }
.adv-tier { margin: 0.8rem 0; }
.adv-tier-line { margin: 0 0 0.4rem; }
.adv-perks { margin: 0.6rem 0 0; padding-left: 1.2rem; color: var(--ink-soft); font-size: 0.92rem; }
.adv-subhead { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.25rem; text-transform: uppercase; letter-spacing: 0.02em; margin: 1.4rem 0 0.4rem; }
.adv-team { border-top: 1px solid var(--line); margin-top: 1rem; }

/* Provider of the Month */
.spotlight { border: 1px solid var(--accent); border-left-width: 5px; background: var(--surface); padding: 1.4rem 1.5rem 1.5rem; margin: 0.4rem 0 1.6rem; }
.spotlight h2 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; margin: 0 0 0.3rem; }
.spotlight-who { margin: 0 0 1rem; color: var(--ink-soft); font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.05em; text-transform: uppercase; }
.spotlight-who a { color: var(--accent-strong); }
.spotlight-body { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 1.4rem; }
.spotlight-body h3 { font-family: "Source Serif 4", serif; text-transform: none; letter-spacing: 0; font-size: 1.05rem; font-weight: 600; margin: 0 0 0.4rem; }
.spotlight-body p { margin: 0 0 0.6rem; color: var(--ink-soft); font-size: 0.96rem; }
@media (max-width: 760px) { .spotlight-body { grid-template-columns: 1fr; } }
/* advocates + changelog pages */
.adv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.changelog-entry { border-top: 1px solid var(--line); padding: 1.1rem 0 1.2rem; }
.changelog-entry:first-child { border-top: 0; }
.changelog-date { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 0.3rem; }
.changelog-entry h3 { font-family: "Source Serif 4", serif; text-transform: none; letter-spacing: 0; font-size: 1.15rem; font-weight: 600; margin: 0 0 0.4rem; }
.changelog-entry p { margin: 0 0 0.4rem; color: var(--ink-soft); }
.changelog-credit { font-size: 0.9rem; color: var(--moss); font-weight: 600; }

.security-card { border: 1px solid var(--line); background: var(--surface); padding: 1rem 1.2rem; margin: 0 0 1.2rem; }
.code-step { margin-top: 0.4rem; }
.code-step button[type="button"], #admin-code-btn { font-family: "JetBrains Mono", monospace; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--accent); color: var(--accent-ink); border: none; padding: 0.8rem 1.35rem; border-radius: 2px; cursor: pointer; margin-top: 0.4rem; }
.code-step button[type="button"]:hover, #admin-code-btn:hover { background: var(--accent-strong); }
.code-step input { font-family: "JetBrains Mono", monospace; font-size: 1.3rem; letter-spacing: 0.35em; text-align: center; }

/* Form I-9 step (deploy page, account deployments card, contractor roster) */
.deploy-i9 .credential-overall-status { display: inline-block; margin: 0.2rem 0 0.6rem; }
.deploy-i9-steps { margin: 0 0 0.8rem; padding-left: 1.2rem; font-size: 0.9rem; color: var(--ink-soft); display: grid; gap: 0.35rem; }
.deploy-i9-form { display: grid; gap: 0.6rem; margin: 0.6rem 0; }
.deploy-i9-file { display: block; font-size: 0.85rem; color: var(--ink-soft); }
.deploy-i9-file input { display: block; margin-top: 0.3rem; max-width: 100%; }
.deploy-i9-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.deploy-i9-actions button { font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.7rem 1.1rem; border-radius: 2px; cursor: pointer; border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.deploy-i9-actions button.btn-accent { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.deploy-i9-actions button:disabled { opacity: 0.55; cursor: default; }
.i9-block { margin-top: 0.7rem; border: 1px solid var(--line); border-left: 3px solid var(--accent); background: var(--surface); padding: 0.7rem 0.9rem; font-size: 0.88rem; }
.i9-block h6 { margin: 0 0 0.3rem; font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--moss); }
.i9-block .i9-status { display: inline-block; margin: 0 0 0.5rem; }
.i9-block form { display: grid; gap: 0.5rem; margin-top: 0.5rem; }
.i9-block label.i9-inline { display: block; font-size: 0.85rem; color: var(--ink-soft); }
.i9-block label.i9-inline input[type=text], .i9-block label.i9-inline select { display: block; margin-top: 0.25rem; width: 100%; max-width: 420px; }
.i9-block .i9-radio { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: 0.85rem; }
.i9-block .i9-radio label { display: inline-flex; gap: 0.35rem; align-items: center; }
.i9-block .deploy-i9-actions { margin-top: 0.2rem; }
.deployments-list { display: grid; gap: 0.8rem; }
.deployment-entry { border: 1px solid var(--line); background: var(--surface); padding: 0.8rem 1rem; }
.deployment-entry h3 { margin: 0 0 0.2rem; font-size: 1.05rem; }
.link-btn { background: none; border: none; padding: 0; color: var(--accent); font: inherit; text-decoration: underline; cursor: pointer; }

/* SAR operational titles reference (/sar-roles) */
.landing-context-grid a.landing-context { text-decoration: none; }
.landing-context-grid a.landing-context:hover { color: var(--accent); }
.table-wrap { overflow-x: auto; }
.sar-role-table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.sar-role-table th, .sar-role-table td { text-align: left; padding: 0.55rem 0.7rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.sar-role-table th { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
.sar-role-table td a { color: var(--accent-strong); } /* Tier 203: ember text on the table surface was 3.96:1 */
.sar-level { display: inline-block; font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.08em; padding: 0.15rem 0.5rem; border: 1px solid var(--line); border-radius: 2px; color: var(--ink); text-decoration: none; }
.sar-level-gs { border-color: var(--accent); color: var(--accent-strong); font-weight: 700; }
.sar-level-none { color: var(--ink-soft); }
.sar-role-group .landing-section-head { margin-bottom: 0.8rem; }

/* Tier 32 — resource matrix (multi-role crew calls) */
.cc-matrix-row { border: 1px solid var(--line); border-radius: 6px; padding: 0.75rem 0.9rem; margin: 0 0 0.75rem; background: var(--surface-alt); }
.cc-matrix-row .checkpoint-head h5 { margin: 0; }
.cc-matrix-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem 0.9rem; margin-top: 0.5rem; }
.cc-matrix-grid label { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.85rem; color: var(--ink-soft); }
.cc-matrix-grid input, .cc-matrix-grid select { width: 100%; }
.cc-matrix-grid .cc-matrix-wide { grid-column: 1 / -1; }
.cc-matrix-table td.cc-short { color: var(--accent); font-weight: 600; }
.roster-role-head { margin: 1rem 0 0.35rem; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); }
@media (max-width: 768px) { .cc-matrix-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Tier 33 — PO / invoice terms */
.billing-terms { margin: 0.9rem 0; border-top: 1px solid var(--line); padding-top: 0.6rem; }
.billing-terms summary { cursor: pointer; font-weight: 600; }
.billing-terms .job-form { margin-top: 0.6rem; }
.billing-terms .ad-admin-actions { grid-column: 1 / -1; }
.billing-terms .ad-admin-actions button[type="submit"] { width: auto; }
.invoice-overdue { color: var(--accent); font-weight: 600; }

/* Tier 36 — Logistics & Vendor Marketplace (Hardware & Asset Matrix). */
.asset-picker { max-height: 340px; }
.asset-picker .cert-picker-label { margin: 0.5rem 0 0.1rem; }
.asset-picker .cert-picker-label:first-child { margin-top: 0; }
.roster-creds tr.bid-accepted td { background: var(--moss-soft); }
.cc-assets { border-left: 3px solid var(--moss); padding-left: 0.7rem; }
.vendor-bid-form { margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px dashed var(--line); }
.vendor-bid-form .field label { display: flex; flex-direction: column; gap: 0.25rem; }

/* Tier 38 — Asset Tags + Basecamp Sustainment Package. */
.asset-picker .asset-tag-blurb { margin: 0 0 0.35rem; font-size: 0.78rem; line-height: 1.35; }
.basecamp-kit { margin: 1rem 0 1.2rem; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-alt); padding: 0.2rem 0.9rem 0.6rem; min-width: 0; }
.basecamp-kit > summary { cursor: pointer; padding: 0.6rem 0; list-style: none; display: flex; flex-direction: column; gap: 0.15rem; }
.basecamp-kit > summary::-webkit-details-marker { display: none; }
.basecamp-kit > summary .kicker { margin: 0; }
.basecamp-kit > summary strong { font-family: "Big Shoulders Display", sans-serif; font-weight: 700; font-size: 1.2rem; line-height: 1.15; text-transform: uppercase; letter-spacing: 0.02em; }
.basecamp-kit > summary strong::before { content: "▸ "; color: var(--accent); }
.basecamp-kit[open] > summary strong::before { content: "▾ "; }
.basecamp-kit .job-form { margin-top: 0.4rem; }
.basecamp-kit .kit-switches { display: flex; flex-direction: column; gap: 0.35rem; grid-column: 1 / -1; }
.basecamp-kit > * { min-width: 0; }
.kit-table td, .kit-table th { vertical-align: top; }
.kit-table .kit-qty { width: 4.5rem; padding: 0.3rem 0.4rem; }
.kit-table .kit-spec-text { display: block; margin-top: 0.2rem; }
.kit-gap { color: var(--accent-strong); font-weight: 600; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kit-gap { color: var(--accent); } }
:root[data-theme="dark"] .kit-gap { color: var(--accent); }
.cc-assets-table td:first-child, .cc-assets-table td:last-child { white-space: nowrap; }
.cc-assets .roster-table-wrap { margin-top: 0.2rem; }

/* Tier 39 — Incident Vendor Subcontracting: OF-296 checklist, badges, agreements, units. */
.of296-list { display: flex; flex-direction: column; gap: 0.35rem; margin: 0.6rem 0; }
.of296-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.4rem 1rem; padding: 0.45rem 0; border-bottom: 1px dashed var(--line); font-size: 0.92rem; }
.of296-row > span:first-child { flex: 1 1 260px; min-width: 0; }
.of296-opts { display: flex; gap: 0.9rem; white-space: nowrap; font-family: "JetBrains Mono", monospace; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; }
.of296-opts label { display: inline-flex; align-items: center; gap: 0.3rem; cursor: pointer; }
.badges-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 0.9rem; margin-top: 0.8rem; }
.badge { border: 2px solid var(--ink); border-radius: 8px; padding: 0.6rem 0.75rem; background: var(--surface); color: var(--ink); break-inside: avoid; page-break-inside: avoid; min-width: 0; }
.badge-head { display: flex; justify-content: space-between; font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; border-bottom: 1px solid var(--line); padding-bottom: 0.3rem; }
.badge-brand { color: var(--accent-strong); font-weight: 600; }
.badge-body { display: flex; gap: 0.8rem; margin: 0.6rem 0; align-items: flex-start; }
.badge-qr { flex: 0 0 120px; width: 120px; } .badge-qr svg { width: 120px; height: 120px; display: block; }
.badge-text { display: flex; flex-direction: column; gap: 0.15rem; font-size: 0.85rem; min-width: 0; }
.badge-tag { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.6rem; letter-spacing: 0.02em; line-height: 1; }
.badge-url { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; overflow-wrap: anywhere; color: var(--ink-soft); }
.badge-foot { font-size: 0.72rem; color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: 0.3rem; }
@media print { .no-print, header.topbar, footer, .nav-toggle { display: none !important; } .badges-card { box-shadow: none; border: 0; max-width: none; } .badge { background: #fff; color: #000; border-color: #000; } body { background: #fff; } }
.eera-box { border-left: 3px solid var(--accent); padding: 0.4rem 0.7rem; margin: 0.5rem 0; font-size: 0.9rem; }
.eera-box .ad-admin-actions { margin-top: 0.4rem; }
.units-table td:first-child { white-space: nowrap; font-family: "JetBrains Mono", monospace; font-size: 0.8rem; }
.unit-status-awaiting { color: var(--ink-soft); } .unit-status-in_service { color: var(--moss); font-weight: 600; } .unit-status-rejected { color: var(--accent-strong); font-weight: 600; } .unit-status-released { color: var(--ink-soft); }
.compliance-badge { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.04em; text-transform: uppercase; }
.compliance-badge.ok { color: var(--moss); } .compliance-badge.short { color: var(--accent-strong); }

/* ===========================================================
   Dashboard tabs + info tooltips (Tier 42)
   Shared by admin.html / account.html / vendor.html / contractor.html
   =========================================================== */
.dash-tabs {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 0.35rem;
  width: 100%;
  max-width: 900px;
  padding: 0.3rem;
  margin: 0 0 1.4rem;
  background: var(--surface-alt);
  border: 1px solid var(--line);
  border-radius: 999px;
  position: sticky;
  top: 0.6rem;
  z-index: 6;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.dash-tabs::-webkit-scrollbar { height: 5px; }
.dash-tab {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--ink-soft);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.86rem;
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}
.dash-tab:hover { color: var(--ink); }
.dash-tab.is-active { background: var(--accent); color: var(--accent-ink); }
.dash-tab:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
.dash-hidden-by-tab { display: none !important; }
.dash-tab-badge {
  display: inline-block; min-width: 1.35em; margin-left: 0.45em; padding: 0.05em 0.4em;
  border-radius: 999px; background: var(--accent); color: var(--accent-ink);
  font-family: "JetBrains Mono", monospace; font-size: 0.7rem; line-height: 1.5; text-align: center; vertical-align: 1px;
}
.dash-tab.is-active .dash-tab-badge { background: var(--surface); color: var(--accent-strong); }
/* Tier 49: checkpoint forms fold behind one button */
.checkpoint-summary { margin: 0.1rem 0 0.5rem; font-size: 0.92rem; color: var(--ink-soft); }
.checkpoint-actions { margin: 0.2rem 0 0.4rem; }
.checkpoint-form[hidden] { display: none !important; }
.checkpoint-actions + .checkpoint-form { margin-top: 0.6rem; padding-top: 0.8rem; border-top: 1px dashed var(--line); }
@media (max-width: 640px) {
  .dash-tabs { top: 0; border-radius: 14px; margin-bottom: 1.1rem; }
  .dash-tab { padding: 0.45rem 0.7rem; font-size: 0.8rem; }
}

.info-tip-wrap { position: relative; display: inline-flex; vertical-align: middle; margin-left: 0.4rem; }
.info-tip {
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 700;
  font-family: "JetBrains Mono", monospace;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.info-tip:hover, .info-tip.is-open { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.info-tip:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
.info-tip-popover {
  position: absolute;
  z-index: 25;
  top: 145%;
  left: 0;
  width: max-content;
  max-width: 300px;
  background: var(--ink);
  color: #F5F7EF;
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.45;
  padding: 0.6rem 0.75rem;
  border-radius: 8px;
  box-shadow: 0 8px 22px var(--shadow);
}
.info-tip-popover[hidden] { display: none; }
@media (max-width: 480px) {
  .info-tip-popover { left: auto; right: 0; max-width: 240px; }
}
.doc-list { display: flex; flex-direction: column; gap: 0.6rem; margin: 0.6rem 0; }
.doc-row { border: 1px solid var(--line); border-radius: 6px; padding: 0.55rem 0.7rem; min-width: 0; }
.doc-row h4 { margin: 0 0 0.2rem; font-size: 1rem; }
.doc-row form { margin-top: 0.4rem; }
.sign-form { display: flex; flex-wrap: wrap; gap: 0.5rem 0.8rem; align-items: center; margin-top: 0.4rem; }
.sign-form input[type="text"] { flex: 1 1 200px; min-width: 0; }

/* ===========================================================
   Unified dashboard: context switcher, role cards, toolkit lock
   (Tier 43 — Unified Authentication & Multi-Role Verification)
   =========================================================== */
.dash-context[hidden] { display: none !important; }
/* Tier 49: a context section is bound to the viewport, so a wide form inside a
   card can never push the whole page sideways on a phone. */
.dash-context { width: 100%; min-width: 0; }
.dash-context > * { margin-left: auto; margin-right: auto; }
.dash-context .checkpoint-form { min-width: 0; }
.dash-context-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  width: 100%;
  max-width: 900px;
  padding: 0.3rem;
  margin: 0 0 1.4rem;
  background: var(--surface-alt);
  border: 1px solid var(--line);
  border-radius: 999px;
}
.dash-context-switcher .ctx-pill {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--ink-soft);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.86rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
}
.dash-context-switcher .ctx-pill:hover { color: var(--ink); }
.dash-context-switcher .ctx-pill.is-active { background: var(--accent); color: var(--accent-ink); }
.dash-context-switcher .ctx-pill:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
@media (max-width: 640px) {
  .dash-context-switcher .ctx-pill { padding: 0.45rem 0.75rem; font-size: 0.8rem; }
}

.role-cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 0.8rem; width: 100%; max-width: 900px; margin: 0 0 1.4rem; }
.role-card { border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.1rem; background: var(--surface); min-width: 0; }
.role-card h3 { margin: 0 0 0.3rem; font-size: 1.05rem; }
.role-card p { margin: 0.3rem 0; }
.role-card .role-card-status { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.15rem 0.55rem; border-radius: 999px; border: 1px solid var(--status-color, var(--ink-soft)); color: var(--status-color, var(--ink-soft)); }
.role-card .role-card-note { font-size: 0.85rem; color: var(--ink-soft); }
.role-card .role-card-actions { margin-top: 0.6rem; }

.toolkit-lock-banner { border: 1px dashed var(--accent-strong); border-radius: 8px; padding: 0.8rem 1rem; margin: 0 0 1rem; color: var(--accent-strong); font-size: 0.9rem; }
.toolkit-lock-banner strong { display: block; margin-bottom: 0.2rem; }
.dash-toolkit-locked-hidden { display: none !important; }

/* Tier 40 — one login: roles card on the account page. */
.roles-list { display: flex; flex-direction: column; gap: 0.5rem; margin: 0.4rem 0 0.8rem; }
.role-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem 1rem; padding: 0.55rem 0; border-bottom: 1px dashed var(--line); min-width: 0; }
.role-row > div:first-child { flex: 1 1 240px; min-width: 0; }
.role-right { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.role-right .btn-unfeature, .role-right .btn-approve { width: auto; padding: 0.35rem 0.7rem; font-size: 0.8rem; }
#role-add { margin-top: 0.8rem; padding-top: 0.6rem; border-top: 1px solid var(--line); }

/* ---- Event calendar (Tier 50) ---- */
.ev-past-toggle { display: flex; align-items: center; gap: 0.4rem; font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); padding-bottom: 0.55rem; }
.ev-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1.2rem; margin: 0 0 1rem; }
.ev-toolbar .small-muted { margin: 0; margin-left: auto; }
.ev-view { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 2px; background: var(--surface); }
.ev-view-btn, .ev-month-nav button { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; background: transparent; border: 0; color: var(--ink-soft); padding: 0.4rem 0.9rem; border-radius: 999px; cursor: pointer; }
.ev-view-btn.is-active { background: var(--accent); color: var(--accent-ink); }
.ev-month-nav { display: inline-flex; align-items: center; gap: 0.3rem; }
.ev-month-nav strong { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.25rem; text-transform: uppercase; letter-spacing: 0.03em; min-width: 9.5rem; text-align: center; }
.ev-month-nav button { border: 1px solid var(--line); font-size: 1rem; line-height: 1; padding: 0.35rem 0.7rem; }
.ev-month-nav .ev-today { font-size: 0.7rem; }
.ev-month-heading { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.5rem; text-transform: uppercase; letter-spacing: 0.03em; margin: 0.8rem 0 0; color: var(--ink-soft); }
.ev-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0; overflow: visible; }
.ev-card .ev-body { padding: 1.2rem 1.3rem; display: flex; flex-direction: column; gap: 0.55rem; }
.ev-banner { display: block; background: var(--surface-alt); }
.ev-banner img { display: block; width: 100%; max-height: 220px; object-fit: cover; }
@media (min-width: 720px) { .ev-card:has(.ev-banner) { grid-template-columns: 220px minmax(0, 1fr); } .ev-card:has(.ev-banner) .ev-banner img { height: 100%; max-height: none; min-height: 160px; } }
.ev-card h3 a { text-decoration: none; color: inherit; } .ev-card h3 a:hover { color: var(--accent-strong); }
.ev-card.ev-past { opacity: 0.75; }
.ev-ended { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); border: 1px dashed var(--line); padding: 0.15rem 0.5rem; }
.ev-tags { margin: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.ev-tag { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; background: var(--moss-soft); color: var(--moss); padding: 0.2rem 0.55rem; border-radius: 999px; }
.ev-actions { margin: 0.2rem 0 0; }
.ev-actions .btn-accent { display: inline-block; text-decoration: none; }
.ev-grid-head { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; padding: 0 1px; font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); }
.ev-grid-head span { padding: 0.4rem 0.5rem; }
.ev-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.ev-cell { background: var(--surface); min-height: 96px; padding: 0.35rem 0.4rem; display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.ev-cell-empty { background: var(--bg); }
.ev-cell.is-today .ev-daynum { background: var(--accent); color: var(--accent-ink); }
.ev-daynum { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; align-self: flex-start; padding: 0.05rem 0.4rem; border-radius: 999px; color: var(--ink-soft); }
.ev-chip { display: block; font-size: 0.78rem; line-height: 1.25; text-decoration: none; color: var(--ink); background: var(--moss-soft); border-left: 3px solid var(--moss); padding: 0.15rem 0.35rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-chip.is-featured { border-left-color: var(--accent); background: var(--surface-alt); }
.ev-chip:hover { color: var(--accent-strong); }
.ev-more { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; color: var(--ink-soft); }
@media (max-width: 640px) {
  .ev-grid-head span { padding: 0.3rem 0.1rem; font-size: 0.6rem; text-align: center; }
  .ev-cell { min-height: 58px; padding: 0.2rem; }
  .ev-chip { font-size: 0; padding: 0; height: 6px; border-left: 0; border-radius: 3px; background: var(--moss); }
  .ev-chip.is-featured { background: var(--accent); }
  .ev-more { font-size: 0.6rem; }
}
/* event detail page */
.ev-detail { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.6rem; align-items: start; }
@media (min-width: 900px) { .ev-detail { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); } }
.ev-detail-body { font-size: 1.02rem; line-height: 1.65; }
.ev-detail-body h2, .ev-detail-body h3, .ev-detail-body h4 { font-family: "Source Serif 4", serif; text-transform: none; letter-spacing: 0; font-weight: 600; margin: 1.2rem 0 0.4rem; font-size: 1.2rem; }
.ev-detail-body ul, .ev-detail-body ol { padding-left: 1.3rem; } .ev-detail-body blockquote { border-left: 3px solid var(--line); margin: 0.8rem 0; padding: 0.2rem 0.9rem; color: var(--ink-soft); }
.ev-detail-body code { font-family: "JetBrains Mono", monospace; font-size: 0.88em; background: var(--surface-alt); padding: 0.05em 0.3em; }
.ev-facts { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--moss); padding: 1.2rem 1.3rem; display: flex; flex-direction: column; gap: 0.7rem; position: sticky; top: 1rem; }
.ev-facts dt { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 0.15rem; }
.ev-facts dd { margin: 0 0 0.6rem; }
.ev-facts .hero-cta { display: block; text-align: center; }
.ev-addcal { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ev-addcal a { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; border: 1px solid var(--line); padding: 0.35rem 0.6rem; text-decoration: none; color: var(--ink-soft); border-radius: 999px; }
.ev-addcal a:hover { color: var(--accent-strong); border-color: var(--accent); }
.ev-hero-banner { width: 100%; max-height: 360px; object-fit: cover; border: 1px solid var(--line); margin: 0 0 1.4rem; display: block; }
/* add-to-calendar menu on list cards and dashboard rows (Tier 50) */
.ev-addcal-menu { display: inline-block; vertical-align: middle; margin-left: 0.6rem; position: relative; }
.ev-addcal-menu summary { list-style: none; cursor: pointer; font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); border: 1px solid var(--line); padding: 0.55rem 0.9rem; display: inline-block; }
.ev-addcal-menu summary::-webkit-details-marker { display: none; }
.ev-addcal-menu summary::after { content: " ▾"; }
.ev-addcal-menu[open] summary { color: var(--accent-strong); border-color: var(--accent); }
.ev-addcal-menu .ev-addcal { flex-direction: column; gap: 0.25rem; position: absolute; left: 0; top: calc(100% + 4px); z-index: 5; min-width: 240px; background: var(--surface); border: 1px solid var(--line); padding: 0.5rem; box-shadow: 0 8px 20px var(--shadow); }
.ev-addcal-menu .ev-addcal a { border: 0; border-radius: 0; padding: 0.4rem 0.5rem; text-transform: none; letter-spacing: 0; font-family: "Source Serif 4", serif; font-size: 0.92rem; color: var(--ink); }
.ev-addcal-menu .ev-addcal a:hover { background: var(--surface-alt); color: var(--accent-strong); }
.ev-actions { position: relative; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.ev-addcal-menu { margin-left: 0; }
.ev-share { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ev-share a { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; border: 1px solid var(--line); padding: 0.35rem 0.6rem; text-decoration: none; color: var(--ink-soft); border-radius: 999px; }
.ev-share a:hover { color: var(--accent-strong); border-color: var(--accent); }
.ev-share-menu .ev-addcal { min-width: 170px; }

/* ---- Newsletter analytics (Tier 51) ---- */
.nl-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.6rem; margin: 0.6rem 0 1rem; }
.nl-tile { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--moss); padding: 0.7rem 0.85rem; min-width: 0; }
.nl-tile.is-bad { border-top-color: var(--accent); }
.nl-tile-label { font-family: "JetBrains Mono", monospace; font-size: 0.64rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
.nl-tile-value { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.9rem; line-height: 1.1; color: var(--ink); margin: 0.2rem 0 0.1rem; }
.nl-tile-sub { font-size: 0.8rem; color: var(--ink-soft); }
.nl-tile.is-bad .nl-tile-sub { color: var(--accent-strong); font-weight: 600; }
.nl-funnel { display: flex; flex-direction: column; gap: 0.3rem; max-width: 640px; }
.nl-funnel-row { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr) 3.5rem; align-items: center; gap: 0.6rem; font-size: 0.85rem; }
.nl-funnel-label { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); }
.nl-funnel-bar { display: block; height: 14px; background: var(--surface-alt); border-radius: 4px; overflow: hidden; }
.nl-funnel-bar > span { display: block; height: 100%; background: var(--moss); border-radius: 0 4px 4px 0; }
.nl-funnel-n { text-align: right; font-variant-numeric: tabular-nums; color: var(--ink); }
.nl-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; margin: 0.3rem 0; }
.nl-table th, .nl-table td { text-align: left; padding: 0.4rem 0.5rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.nl-table th { font-family: "JetBrains Mono", monospace; font-size: 0.64rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); font-weight: 500; }
.nl-table td:nth-child(3), .nl-table td:nth-child(4) { font-variant-numeric: tabular-nums; }
@media (max-width: 640px) { .nl-table { display: block; overflow-x: auto; } }

/* =====================================================================
   Tier 54 — Seat board (contractor crew-call roster) + display themes
   ===================================================================== */

/* ---------- seat board: one row per seat, filled or open ---------- */
.seat-board { background: var(--surface); border: 1px solid var(--line); border-radius: 2px; margin: 0.7rem 0 0.4rem; overflow: hidden; }
.seat-board-head { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; flex-wrap: wrap; padding: 0.65rem 0.9rem; border-bottom: 1px solid var(--line); font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--moss); font-weight: 600; }
.seat-board-head .seat-clock { color: var(--accent-strong); font-variant-numeric: tabular-nums; letter-spacing: 0.08em; }
.seat-meter { display: flex; align-items: center; gap: 0.8rem; padding: 0.7rem 0.9rem 0.2rem; }
.seat-meter-count { white-space: nowrap; font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 2rem; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.seat-meter-count small { font-size: 0.55em; color: var(--ink-soft); }
.seat-meter-bar { flex: 1; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 3px; min-width: 120px; }
.seat-meter-bar span { height: 10px; background: var(--moss-soft); border: 1px solid var(--line); border-radius: 1px; }
.seat-meter-bar span.is-filled { background: var(--moss); border-color: var(--moss); }
.seat-meter-label { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); white-space: nowrap; }
.seat-rows { list-style: none; margin: 0.4rem 0 0; padding: 0; }
.seat-role-head { font-family: "JetBrains Mono", monospace; font-size: 0.64rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); padding: 0.55rem 0.9rem 0.2rem; }
.seat-row { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr) auto; gap: 0.2rem 0.8rem; align-items: center; padding: 0.55rem 0.9rem; border-top: 1px dashed var(--line); font-size: 0.9rem; }
.seat-row .seat-no { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
.seat-row .seat-who { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.seat-row .seat-who strong { font-weight: 600; color: var(--ink); }
.seat-row .seat-who .seat-sub { font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.06em; color: var(--ink-soft); margin-left: 0.4rem; }
.seat-row .seat-status { display: flex; gap: 0.35rem; flex-wrap: wrap; justify-content: flex-end; }
.seat-tag { font-family: "JetBrains Mono", monospace; font-size: 0.64rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; padding: 0.15rem 0.5rem; border-radius: 2px; border: 1px solid var(--line); color: var(--ink-soft); white-space: nowrap; }
.seat-tag.is-ok { color: var(--moss); background: var(--moss-soft); border-color: var(--moss); }
.seat-tag.is-wait { color: var(--accent-strong); border-color: var(--accent); }
.seat-row.is-filled { border-left: 3px solid var(--moss); padding-left: calc(0.9rem - 3px); }
.seat-row.is-open { color: var(--ink-soft); }
.seat-row.is-open .seat-who { font-style: italic; }
.seat-pulse { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); margin-right: 0.45rem; vertical-align: 1px; animation: seat-pulse 1.4s ease-in-out infinite; }
@keyframes seat-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) { .seat-pulse { animation: none; } }
@media (max-width: 640px) {
  .seat-row { grid-template-columns: 3.2rem minmax(0, 1fr); }
  .seat-row .seat-who { white-space: normal; }
  .seat-row .seat-who .seat-sub { display: block; margin-left: 0; }
  .seat-row .seat-status { grid-column: 2; justify-content: flex-start; }
  .seat-meter-label { display: none; }
  .seat-board-head { flex-direction: column; align-items: flex-start; gap: 0.2rem; }
}

/* ---------- display-theme toggle (dashboard) ---------- */
.theme-toggle { display: inline-flex; align-items: center; gap: 0.1rem; flex-wrap: nowrap; padding: 0.15rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); }
.theme-toggle-label { font-family: "JetBrains Mono", monospace; font-size: 0.64rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); padding: 0 0.45rem 0 0.55rem; }
.theme-opt { font-family: "JetBrains Mono", monospace; font-size: 0.6rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.28rem 0.55rem; border-radius: 999px; border: 1px solid transparent; background: none; color: var(--ink-soft); cursor: pointer; }
.theme-opt:hover { color: var(--ink); border-color: var(--line); }
.theme-opt[aria-checked="true"] { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.theme-nvg-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #6EE270; box-shadow: 0 0 6px #6EE270; margin-right: 0.3rem; vertical-align: 0; }
.dash-theme-row { width: 100%; max-width: 900px; display: flex; justify-content: flex-end; margin: -1rem 0 -0.4rem; }

/* ---------- Night vision theme ----------
   Mirrors the Crew Call / Facebook sign-up ads: phosphor-green on near
   black, safety-ochre actions, alert-yellow signals, topo contours,
   scanlines, film grain and HUD corner brackets. Declared after the dark
   block so it wins over prefers-color-scheme: dark as well. */
:root[data-theme="nvg"] {
  --bg: #050D07;
  --surface: #0A160C;
  --surface-alt: #0D1D10;
  --ink: #E4F5DD;
  --ink-soft: #9ACB96;
  --line: #1F4A26;
  --accent: #D2851F;
  --accent-strong: #F4C430;
  --accent-ink: #140C02;
  --moss: #6EE270;
  --moss-soft: #0F2B15;
  --shadow: rgba(0, 0, 0, 0.55);
  --footer-bg: #030704;
  --footer-ridge: #0C2210;
  --footer-ink: #7FBF7C;
  --footer-link: #C8F0C0;
  --contour: url("../images/contour-nvg.svg");
  color-scheme: dark;
}
:root[data-theme="nvg"] body {
  background-color: var(--bg);
  background-image: var(--contour), radial-gradient(ellipse at 50% 30%, #0E2412 0%, #061009 55%, #030704 100%);
  background-size: 280px 200px, 100% 100%;
  background-attachment: scroll, fixed;
}
/* scanlines + grain over the whole viewport (never blocks clicks) */
:root[data-theme="nvg"] body::after {
  content: ""; position: fixed; inset: 0; z-index: 9998; pointer-events: none;
  background:
    repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.22) 0 1px, rgba(0, 0, 0, 0) 1px 4px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 1 0 0 0 0 0.45 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.16; mix-blend-mode: screen;
}
/* HUD corner brackets framing the viewport, like the ads */
:root[data-theme="nvg"] body::before {
  content: ""; position: fixed; inset: 14px; z-index: 9997; pointer-events: none;
  background:
    linear-gradient(#6EE270, #6EE270) top left / 34px 2px no-repeat,
    linear-gradient(#6EE270, #6EE270) top left / 2px 34px no-repeat,
    linear-gradient(#6EE270, #6EE270) top right / 34px 2px no-repeat,
    linear-gradient(#6EE270, #6EE270) top right / 2px 34px no-repeat,
    linear-gradient(#6EE270, #6EE270) bottom left / 34px 2px no-repeat,
    linear-gradient(#6EE270, #6EE270) bottom left / 2px 34px no-repeat,
    linear-gradient(#6EE270, #6EE270) bottom right / 34px 2px no-repeat,
    linear-gradient(#6EE270, #6EE270) bottom right / 2px 34px no-repeat;
  opacity: 0.55;
}
:root[data-theme="nvg"] h1, :root[data-theme="nvg"] h2, :root[data-theme="nvg"] h3 { text-shadow: 0 0 14px rgba(110, 226, 112, 0.28); }
:root[data-theme="nvg"] .kicker { color: var(--moss); text-shadow: 0 0 8px rgba(110, 226, 112, 0.35); }
:root[data-theme="nvg"] .wordmark { color: var(--ink); text-shadow: 0 0 12px rgba(110, 226, 112, 0.35); }
:root[data-theme="nvg"] .wordmark .wm-sep { color: var(--accent); }
:root[data-theme="nvg"] .topbar { border-bottom-color: var(--line); box-shadow: 0 1px 0 rgba(110, 226, 112, 0.12); }
/* :where() keeps these at plain-`a` specificity so class-styled link buttons (.btn-accent etc.) keep their own colours */
:where(:root[data-theme="nvg"]) a { color: var(--moss); }
:where(:root[data-theme="nvg"]) a:hover { color: var(--accent-strong); opacity: 1; }
/* panels glow faintly and carry small HUD brackets */
:root[data-theme="nvg"] .auth-card,
:root[data-theme="nvg"] .ad-admin-card,
:root[data-theme="nvg"] .seat-board {
  background-color: rgba(8, 22, 11, 0.92);
  background-image:
    linear-gradient(#6EE270, #6EE270), linear-gradient(#6EE270, #6EE270),
    linear-gradient(#6EE270, #6EE270), linear-gradient(#6EE270, #6EE270);
  background-size: 14px 2px, 2px 14px, 14px 2px, 2px 14px;
  background-position: top 0 right 0, top 0 right 0, bottom 0 left 0, bottom 0 left 0;
  background-repeat: no-repeat;
  box-shadow: 0 0 26px rgba(110, 226, 112, 0.08), inset 0 0 30px rgba(110, 226, 112, 0.04);
}
:root[data-theme="nvg"] .auth-card { border-top-color: var(--moss); }
:root[data-theme="nvg"] .field input, :root[data-theme="nvg"] .field select, :root[data-theme="nvg"] .field textarea { background: #07120A; border-color: var(--line); color: var(--ink); }
:root[data-theme="nvg"] .field input:focus-visible, :root[data-theme="nvg"] .field select:focus-visible, :root[data-theme="nvg"] .field textarea:focus-visible { outline-color: var(--moss); box-shadow: 0 0 0 3px rgba(110, 226, 112, 0.18); }
/* actions = safety ochre, like the ad CTA */
:root[data-theme="nvg"] .btn-accent,
:root[data-theme="nvg"] .auth-form button[type="submit"] { box-shadow: 0 0 20px rgba(210, 133, 31, 0.35); }
:root[data-theme="nvg"] .btn-approve, :root[data-theme="nvg"] .btn-feature { color: #06120A; }
/* signals = alert yellow chips, like the flashing cert chips in the ads */
:root[data-theme="nvg"] .job-cert-tag { background: var(--accent-strong); color: #140C02; border-color: var(--accent-strong); font-weight: 700; }
:root[data-theme="nvg"] .featured-tag { color: var(--accent-strong); border-color: var(--accent-strong); }
:root[data-theme="nvg"] .cad-badge.cad-logged { color: #06120A; }
:root[data-theme="nvg"] .info-tip-popover { background: #10301A; color: #D8F5D0; border: 1px solid var(--line); }
/* Tier 77: Black ops — the popover uses --ink as its background, which is light in the dark theme; give it a real dark panel. */
:root[data-theme="dark"] .info-tip-popover { background: #0B0E09; color: #E7EBDD; border: 1px solid var(--line); box-shadow: 0 8px 24px rgba(0,0,0,.6); }
:root[data-theme="dark"] .fd-help-pop, :root[data-theme="nvg"] .fd-help-pop { background: var(--surface-alt); }
:root[data-theme="dark"] .ww-toast, :root[data-theme="nvg"] .ww-toast { background: var(--surface-alt); color: var(--ink); border-color: var(--accent); }
:root[data-theme="nvg"] .market-tab.is-active { color: var(--accent-ink); }
/* seat board in NVG: the filled rows light up phosphor, open rows wait in yellow */
:root[data-theme="nvg"] .seat-board-head { color: var(--moss); }
:root[data-theme="nvg"] .seat-board-head .seat-clock { color: var(--accent-strong); text-shadow: 0 0 10px rgba(244, 196, 48, 0.35); }
:root[data-theme="nvg"] .seat-meter-bar span.is-filled { box-shadow: 0 0 8px rgba(110, 226, 112, 0.6); }
:root[data-theme="nvg"] .seat-row.is-filled .seat-who strong { color: #CFEFC8; }
:root[data-theme="nvg"] .seat-tag.is-ok { color: var(--moss); background: rgba(110, 226, 112, 0.08); text-shadow: 0 0 8px rgba(110, 226, 112, 0.4); }
:root[data-theme="nvg"] .seat-tag.is-wait { color: var(--accent-strong); border-color: var(--accent-strong); }
:root[data-theme="nvg"] .theme-opt-nvg[aria-checked="true"] { background: var(--moss); border-color: var(--moss); color: #06120A; }
:root[data-theme="nvg"] .theme-opt-nvg[aria-checked="true"] .theme-nvg-dot { background: #06120A; box-shadow: none; }
@media print { :root[data-theme="nvg"] body::before, :root[data-theme="nvg"] body::after { display: none; } }

/* Tier 56: seat release / withdraw */
.seat-release-open { margin-left: auto; font-size: 0.7rem; padding: 0.25rem 0.6rem; }
.seat-release-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0.5rem 0 0.2rem; padding: 0.6rem 0.7rem; border: 1px dashed var(--accent); background: var(--surface); font-size: 0.86rem; }
.seat-release-form select, .seat-release-form input { font: inherit; padding: 0.3rem 0.4rem; border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.seat-release-form input { flex: 1; min-width: 180px; }
.deployment-entry.is-released { opacity: 0.8; border-left-color: var(--line); }
.deploy-withdraw-wrap { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.4rem; align-items: flex-start; }

/* Tier 57: crew-call reach check before paying */
.cc-quote { margin: 0.8rem 0 0.4rem; padding: 0.9rem 1rem; border: 1px solid var(--line); border-left: 4px solid var(--moss, var(--accent)); background: var(--surface); }
.cc-quote.is-short { border-left-color: var(--accent); }
.cc-quote h4 { margin: 0 0 0.5rem; font-size: 1rem; }
.cc-quote table { width: 100%; border-collapse: collapse; font-size: 0.88rem; margin: 0.4rem 0 0.6rem; }
.cc-quote th, .cc-quote td { text-align: left; padding: 0.3rem 0.4rem; border-bottom: 1px dashed var(--line); }
.cc-quote td.num { font-variant-numeric: tabular-nums; }
.cc-quote .cc-q-short { color: var(--accent); font-weight: 700; }
.cc-quote .cc-q-fees { margin: 0.3rem 0 0.6rem; font-size: 0.9rem; }
.cc-quote .cc-q-warn { margin: 0.4rem 0; padding: 0.5rem 0.7rem; border: 1px solid var(--accent); font-size: 0.9rem; }
.cc-quote label.cc-q-ack { display: flex; gap: 0.5rem; align-items: flex-start; margin: 0.4rem 0 0.6rem; font-size: 0.9rem; }
.cc-quote .cc-q-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }

/* Tier 58: patch requests + members table */
.patch-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.2rem 0.8rem; margin-top: 0.6rem; }
.patch-form .field-wide, .patch-form .field-actions { grid-column: 1 / -1; }
.patches-table address.patch-label { font-style: normal; font-family: var(--mono, monospace); font-size: 0.85rem; line-height: 1.45; }
.patches-table tr.is-mailed td { opacity: 0.65; }
.patches-table .patch-check { display: inline-flex; gap: 0.4rem; align-items: center; white-space: nowrap; font-size: 0.85rem; }
.patches-table .patch-check input { width: 1.2rem; height: 1.2rem; }
.members-controls { flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.6rem; }
.members-controls input[type="search"] { flex: 1; min-width: 220px; padding: 0.35rem 0.5rem; }
.members-table th { white-space: nowrap; }
.members-table .members-sort { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: inherit; cursor: pointer; text-align: left; }
.members-table .members-sort:hover, .members-table .members-sort:focus-visible { text-decoration: underline; }
.members-table td { font-size: 0.85rem; vertical-align: top; }
.members-pager { justify-content: flex-end; gap: 0.6rem; margin-top: 0.5rem; }
.members-table td:nth-child(-n+3) { white-space: nowrap; }

/* Tier 59: member profile on the desk's Members tab */
.members-table .member-open { background: none; border: 0; padding: 0; font: inherit; color: var(--accent); text-decoration: underline; cursor: pointer; text-align: left; }
.member-dialog { width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 1px solid var(--line); border-top: 4px solid var(--accent); background: var(--surface); color: var(--ink); }
.member-dialog::backdrop { background: rgba(10, 14, 9, 0.55); }
.member-dialog-head { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.8rem 1.1rem; background: var(--surface); border-bottom: 1px solid var(--line); }
.member-dialog-head h3 { margin: 0; font-size: 1.15rem; }
#member-dialog-body { padding: 0.4rem 1.1rem 1.1rem; }
.member-sec { margin-top: 0.9rem; }
.member-sec h4 { margin: 0 0 0.4rem; font-family: var(--mono, monospace); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--moss, var(--ink)); }
.member-dl { display: grid; grid-template-columns: minmax(120px, 190px) 1fr; gap: 0.25rem 0.9rem; margin: 0; font-size: 0.9rem; }
.member-dl dt { color: var(--ink-soft, var(--ink)); opacity: 0.8; }
.member-dl dd { margin: 0; overflow-wrap: anywhere; }
.member-list { margin: 0.5rem 0 0; padding-left: 1.1rem; font-size: 0.85rem; }
@media (max-width: 560px) { .member-dl { grid-template-columns: 1fr; } .member-dl dd { margin-bottom: 0.4rem; } }
.member-dl .checkpoint-badge { white-space: nowrap; margin-right: 0.35rem; }

/* ---- Tier 62: shared interaction layer (js/ww-ui.js) ---- */
.ww-slam { animation: ww-slam .35s cubic-bezier(.2,1.2,.3,1) both; }
@keyframes ww-slam { from { transform: scale(1.05); opacity: 0; } to { transform: none; opacity: 1; } }
.ww-slide { animation: ww-slide .25s ease-out both; }
@keyframes ww-slide { from { transform: translateY(6px); opacity: 0; } to { transform: none; opacity: 1; } }
.ww-hold { position: relative; overflow: hidden; user-select: none; -webkit-user-select: none; touch-action: none; }
.ww-hold .ww-hold-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: rgba(255,255,255,.35); pointer-events: none; transition: width .05s linear; }
.ww-hold .ww-hold-label { position: relative; }
.ww-hold.is-holding { filter: brightness(1.08); }
.ww-hold.is-committed { background: var(--moss); border-color: var(--moss); color: #F5F7EF; }
.ww-hold-hint { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); margin: .35rem 0 0; }
.ww-stage { position: relative; }
.ww-stamp { position: absolute; right: .6rem; top: -1rem; border: 3px solid var(--moss); color: var(--moss); font-family: "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; font-weight: 800; font-size: 1.7rem; letter-spacing: .06em; padding: .1rem .6rem; transform: rotate(-8deg) scale(1.7); opacity: 0; pointer-events: none; z-index: 2; }
.ww-stamp.is-on { animation: ww-stamp .35s cubic-bezier(.2,1.4,.4,1) both; }
@keyframes ww-stamp { from { transform: rotate(-8deg) scale(1.8); opacity: 0; } to { transform: rotate(-8deg) scale(1); opacity: 1; } }
.ww-steps { list-style: none; margin: .8rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; font-family: "JetBrains Mono", monospace; font-size: .8rem; }
.ww-steps li { display: flex; gap: .5rem; align-items: center; color: var(--ink-soft); opacity: .6; transition: opacity .25s, color .25s; }
.ww-steps li::before { content: "·"; width: 1rem; text-align: center; }
.ww-steps li.is-on { opacity: 1; color: var(--ink); } .ww-steps li.is-on::before { content: "✓"; color: var(--moss); }
/* Tier 204: the toast is defined once, below (the shell block); this older copy fought it */
.ww-keys { font-family: "JetBrains Mono", monospace; font-size: .68rem; color: var(--ink-soft); display: flex; gap: .9rem; flex-wrap: wrap; margin-top: .6rem; }
.ww-keys kbd { border: 1px solid var(--line); border-radius: 2px; padding: 0 .35rem; font-family: inherit; color: var(--ink); }
.ww-sound-toggle.is-on { border-color: var(--moss); color: var(--moss); }
.callsign-row { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: end; }
.callsign-row input { text-transform: uppercase; font-family: "JetBrains Mono", monospace; letter-spacing: .08em; }
.callsign-badge { font-family: "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; font-weight: 800; font-size: 1.4rem; letter-spacing: .02em; }
:root[data-theme="nvg"] .ww-stamp { color: var(--moss); border-color: var(--moss); text-shadow: 0 0 10px rgba(110,226,112,.4); }
@media (prefers-reduced-motion: reduce) { .ww-slam, .ww-slide, .ww-stamp.is-on { animation: none !important; opacity: 1; transform: rotate(-8deg); } .ww-slam, .ww-slide { transform: none; } }

.deploy-sil { display: block; width: min(240px, 42%); height: auto; margin: 0 auto -0.4rem; opacity: .92; pointer-events: none; }
.callsign-sil { position: absolute; right: .6rem; bottom: 0; width: 120px; height: auto; opacity: .35; pointer-events: none; }
:root[data-theme="nvg"] .deploy-sil, :root[data-theme="nvg"] .callsign-sil { filter: drop-shadow(0 0 10px rgba(110,226,112,.35)); }
@media (max-width: 700px) { .callsign-sil { display: none; } .ww-stamp { font-size: 1.3rem; top: -.9rem; } }

/* ---------- Tier 63 · Front Door home page (fd-*) ---------- */
.fd { display: flex; flex-direction: column; gap: 0; overflow-x: clip; }
.fd-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.8fr); gap: 2rem; align-items: end; padding: 2.4rem 0 1.8rem; overflow: hidden; }
.fd-hero::before { content: ""; position: absolute; inset: -10% -5%; background: var(--contour) center / 900px repeat; opacity: .22; pointer-events: none; }
.fd-hero > * { position: relative; z-index: 1; }
.fd-hero h1 { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; text-transform: uppercase; letter-spacing: .01em; font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: .95; margin: .4rem 0 .9rem; max-width: 14ch; }
.fd-lede { font-size: 1.08rem; line-height: 1.55; color: var(--ink-soft); max-width: 58ch; margin: 0 0 1.2rem; }
.fd-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.fd-hero-sub { font-family: "JetBrains Mono", monospace; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); margin: 1rem 0 0; }
.fd-hero-sub a { color: var(--moss); }

.fd-help { width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--moss); background: transparent; color: var(--moss); font: 700 .8rem/1 "JetBrains Mono", monospace; cursor: pointer; display: inline-grid; place-items: center; vertical-align: middle; padding: 0; position: relative; }
.fd-help:hover, .fd-help[aria-expanded="true"] { background: var(--moss); color: var(--surface); }
.fd-help-dark { border-color: #8DAC78; color: #8DAC78; }
.fd-help-dark:hover, .fd-help-dark[aria-expanded="true"] { background: #8DAC78; color: #10140E; }
.fd-help-pop { position: absolute; z-index: 40; max-width: 300px; background: var(--surface); color: var(--ink); border: 1px solid var(--moss); box-shadow: 0 8px 24px var(--shadow); padding: .7rem .85rem; font-size: .86rem; line-height: 1.45; border-radius: 2px; text-align: left; font-family: "Source Serif 4", Georgia, serif; text-transform: none; letter-spacing: 0; font-weight: 400; }
.fd-help-pop::before { content: "HELP"; display: block; font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; color: var(--moss); margin-bottom: .35rem; }

.fd-founding { background: var(--surface); border: 1px solid var(--line); border-top: 4px solid var(--accent); padding: 1rem 1.1rem 1.1rem; box-shadow: 0 10px 30px var(--shadow); }
.fd-founding-kicker { font: 700 .66rem/1 "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 0 0 .3rem; }
.fd-founding-num { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; font-size: 3.4rem; line-height: 1; margin: 0; letter-spacing: .01em; }
.fd-founding-num small { font-size: .95rem; font-weight: 700; color: var(--ink-soft); letter-spacing: .06em; text-transform: uppercase; margin-left: .3rem; }
.fd-founding-text { font-size: .9rem; line-height: 1.45; color: var(--ink-soft); margin: .5rem 0 .7rem; }
.fd-founding-bar { height: 6px; background: var(--surface-alt); border: 1px solid var(--line); overflow: hidden; }
.fd-founding-bar i { display: block; height: 100%; width: 0; background: var(--accent); transition: width 1.2s cubic-bezier(.2,.8,.2,1); }
.fd-founding-link { display: inline-block; margin-top: .7rem; font: 700 .74rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-strong); text-decoration: none; }
.fd-founding-link:hover { text-decoration: underline; }

.fd-doors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; padding: 1px; background: var(--line); margin: .4rem 0 0; }
.fd-door { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: .45rem; min-height: 270px; padding: 1.2rem 1.15rem 1.1rem; background: var(--surface); color: var(--ink); text-decoration: none; border-top: 5px solid var(--moss); transition: background .15s, transform .15s; }
.fd-door:hover { background: var(--surface-alt); }
.fd-door:hover .fd-door-sil { opacity: .4; transform: translate(0, 0) scale(1.06); }
.fd-door-medic { border-top-color: var(--accent); }
.fd-door-volunteer { border-top-color: var(--moss); }
.fd-door-hire { border-top-color: var(--ink); }
.fd-door-vendor { border-top-color: #C89A2B; }
.fd-door-kicker { font: 700 .64rem/1 "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); }
.fd-door strong { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.55rem; line-height: 1; letter-spacing: .01em; max-width: 12ch; }
.fd-door > span:not(.fd-door-kicker) { font-size: .9rem; line-height: 1.45; color: var(--ink-soft); max-width: 30ch; }
.fd-door > strong, .fd-door > span, .fd-door > em { position: relative; z-index: 1; }
.fd-door em { font-style: normal; margin-top: auto; font: 700 .74rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--moss); }
.fd-door-medic em { color: var(--accent-strong); }
.fd-door-sil { position: absolute; right: -8%; bottom: -3%; width: 58%; max-width: 210px; height: auto; opacity: .16; pointer-events: none; transition: opacity .2s, transform .3s; }
.fd-door-sil[hidden] { display: none; }

.fd-proof { font: 500 .7rem/1.6 "JetBrains Mono", monospace; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-soft); text-align: center; margin: 1rem 0 1.6rem; padding: 0 1rem; }

/* Live band — always dark, whatever the page theme */
.fd-board { --b-bg: #0E120C; --b-panel: #151B12; --b-line: #2A3424; --b-ink: #E7EBDD; --b-soft: #9DAB92; --b-moss: #8DAC78; --b-accent: #E28249; --b-amber: #D9A441;
  position: relative; background: var(--b-bg); color: var(--b-ink); padding: 1.6rem max(20px, calc((100vw - 1180px) / 2)) 1.4rem; margin-inline: calc(50% - 50vw); width: 100vw; box-sizing: border-box; border-top: 1px solid var(--b-line); border-bottom: 1px solid var(--b-line); overflow: hidden; }
.fd-board::before { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 50%, rgba(255,255,255,.018) 50%); background-size: 100% 4px; pointer-events: none; }
.fd-board > * { position: relative; z-index: 1; }
.fd-board .kicker { color: var(--b-moss); }
.fd-board h2 { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; text-transform: uppercase; font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1; margin: .2rem 0 .3rem; color: var(--b-ink); }
.fd-board-time { font: 500 .7rem/1.6 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: var(--b-soft); margin: 0 0 1rem; }
.fd-dot { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: var(--b-moss); box-shadow: 0 0 8px var(--b-moss); animation: fd-pulse 2s infinite; vertical-align: middle; }
@keyframes fd-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.fd-board-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .8fr); gap: 1rem; }
.fd-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .6rem; align-content: start; }
.fd-tile { background: var(--b-panel); border: 1px solid var(--b-line); border-left: 4px solid var(--b-accent); padding: .8rem .9rem .75rem; display: flex; flex-direction: column; gap: .3rem; min-height: 118px; opacity: 0; transform: translateY(6px); animation: fd-in .4s forwards; }
.fd-tile:nth-child(2) { animation-delay: .12s; } .fd-tile:nth-child(3) { animation-delay: .24s; }
@keyframes fd-in { to { opacity: 1; transform: none; } }
.fd-tile.is-volunteer { border-left-color: var(--b-moss); }
.fd-tile.is-full { border-left-color: var(--b-soft); opacity: .8; }
.fd-tile-empty { border-left-color: var(--b-line); color: var(--b-soft); font-size: .9rem; justify-content: center; }
.fd-tile-role { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.35rem; line-height: 1; }
.fd-tile-meta { font: 500 .66rem/1.5 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: var(--b-soft); }
.fd-tile-meta b { color: var(--b-moss); font-weight: 700; }
.fd-seats { display: flex; gap: 3px; margin-top: auto; }
.fd-seats i { flex: 1; height: 7px; background: var(--b-line); }
.fd-seats i.on { background: var(--b-accent); box-shadow: 0 0 6px rgba(226,130,73,.5); }
.is-volunteer .fd-seats i.on { background: var(--b-moss); box-shadow: 0 0 6px rgba(141,172,120,.5); }
.fd-tile-state { font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--b-amber); }
.fd-feed-wrap { background: var(--b-panel); border: 1px solid var(--b-line); padding: .7rem .85rem; }
.fd-feed-label { font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--b-soft); margin: 0 0 .5rem; }
.fd-feed { list-style: none; margin: 0; padding: 0; font: 500 .72rem/1.5 "JetBrains Mono", monospace; }
.fd-feed li { display: grid; grid-template-columns: 3.2rem 1fr; gap: .5rem; padding: .3rem 0; border-top: 1px dashed var(--b-line); color: var(--b-ink); }
.fd-feed li:first-child { border-top: 0; }
.fd-feed time { color: var(--b-soft); }
.fd-feed li.is-ok { color: var(--b-moss); }
.fd-feed-empty { color: var(--b-soft); }
.fd-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--b-line); border: 1px solid var(--b-line); margin: 1rem 0 .8rem; }
.fd-stats > div { background: var(--b-bg); padding: .7rem .9rem; }
.fd-stats dt { font: 700 .6rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--b-soft); margin: 0 0 .35rem; }
.fd-stats dd { margin: 0; font-family: "Big Shoulders Display", sans-serif; font-weight: 900; font-size: 2rem; line-height: 1; color: var(--b-ink); }
.fd-stats dd small { font-size: .85rem; font-weight: 700; color: var(--b-soft); margin-left: .2rem; }
.fd-board-foot { font-size: .88rem; color: var(--b-soft); margin: 0; }
.fd-board-foot a { color: var(--b-moss); }
:root[data-theme="nvg"] .fd-board { --b-bg: #050805; --b-panel: #0A100A; --b-line: #1E2E1E; }

.fd-steps { padding: 2rem 0 1.4rem; }
.fd-steps h2 { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; text-transform: uppercase; font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1; margin: 0 0 1rem; }
.fd-steps ol { list-style: none; margin: 0; padding: 1px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); counter-reset: none; }
.fd-steps li { background: var(--surface); padding: 1rem 1.05rem 1.1rem; display: flex; flex-direction: column; gap: .35rem; }
.fd-steps b { font: 900 2rem/1 "Big Shoulders Display", sans-serif; color: var(--accent); }
.fd-steps strong { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.3rem; line-height: 1; }
.fd-steps li > span { font-size: .9rem; line-height: 1.45; color: var(--ink-soft); }

.fd-events { padding: .4rem 0 1.2rem; }
.fd-events-head { display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: .6rem; }
.fd-events-head h2 { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; text-transform: uppercase; font-size: 1.9rem; line-height: 1; margin: 0; }
.fd-events-head .kicker { width: 100%; margin: 0; }
.fd-events-all { margin-left: auto; font: 700 .72rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--moss); text-decoration: none; }
.fd-events-all:hover { text-decoration: underline; }
.fd-events-list { list-style: none; margin: 0; padding: 1px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.fd-event { background: var(--surface); display: grid; grid-template-columns: 3.4rem 1fr; gap: .8rem; padding: .8rem .9rem; align-items: start; }
.fd-event a { color: inherit; text-decoration: none; }
.fd-event a:hover strong { text-decoration: underline; }
.fd-event-date { text-align: center; border: 1px solid var(--line); background: var(--surface-alt); padding: .3rem 0 .35rem; font: 700 .6rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.fd-event-date b { display: block; font: 900 1.6rem/1 "Big Shoulders Display", sans-serif; color: var(--ink); margin: .15rem 0 .1rem; }
.fd-event strong { display: block; font-family: "Big Shoulders Display", sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.15rem; line-height: 1.05; }
.fd-event span { display: block; font: 500 .64rem/1.5 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase; color: var(--moss); margin-top: .25rem; }
.fd-event-empty { grid-template-columns: 1fr; color: var(--ink-soft); font-size: .9rem; }
.fd-event.is-featured { border-top: 3px solid var(--accent); }
@media (max-width: 760px) { .fd-events-list { grid-template-columns: 1fr; } }

.fd-tracks { padding: 1rem 0 .4rem; }
.landing-track-card-volunteer { border-left: 4px solid var(--moss); }
.landing-track-card strong .nb { font: inherit; color: inherit; letter-spacing: inherit; }

.fd-rfd { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.4rem; align-items: start; padding: 1.6rem 0 1.2rem; border-top: 1px solid var(--line); margin-top: 1rem; }
.fd-rfd h2 { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; text-transform: uppercase; font-size: 1.9rem; line-height: 1; margin: 0 0 .5rem; }
.fd-rfd p { margin: 0 0 .4rem; color: var(--ink-soft); }
.fd-about { margin-top: .8rem; border: 1px solid var(--line); background: var(--surface); padding: .6rem .9rem; }
.fd-about summary { cursor: pointer; font: 700 .74rem/1.4 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--moss); }
.fd-about p, .fd-about li { font-size: .92rem; line-height: 1.5; }
.fd-about ul { padding-left: 1.2rem; }
.fd-contact { margin-top: .6rem; }

@media (max-width: 1000px) {
  .fd-doors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fd-stats, .fd-steps ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .fd-hero { grid-template-columns: 1fr; gap: 1.2rem; padding-top: 1.6rem; }
  .fd-hero h1 { font-size: clamp(2.2rem, 11vw, 3.2rem); }
  /* Tier 199: the founding card stacks on a phone (the number beside the paragraph read cramped at 390 px) */
  .fd-founding { display: block; }
  .fd-founding-num { font-size: 3rem; }
  .fd-founding-text { margin: .45rem 0 .7rem; }
  .fd-board-grid { grid-template-columns: 1fr; }
  .fd-board { padding-top: 1.3rem; padding-bottom: 1.2rem; }
  .fd-rfd { grid-template-columns: 1fr; }
  .fd-rfd .stamp { justify-self: start; }
}
@media (max-width: 560px) {
  .fd-doors { grid-template-columns: 1fr; }
  .fd-door { min-height: 0; padding-right: 34%; }
  .fd-door-sil { width: 38%; right: -3%; bottom: -6%; opacity: .32; }
  .fd-steps ol { grid-template-columns: 1fr; }
  .fd-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fd-stats dd { font-size: 1.6rem; }
  .fd-proof { font-size: .62rem; }
}
@media (prefers-reduced-motion: reduce) { .fd-tile { animation: none; opacity: 1; transform: none; } .fd-dot { animation: none; } .fd-founding-bar i { transition: none; } }

/* ---------- Tier 64 · Listing details (pay · experience · schedule), poster, apply link ---------- */
.job-details { display: flex; flex-wrap: wrap; gap: .35rem; margin: .45rem 0 .55rem; }
.job-chip { display: inline-block; padding: .18rem .55rem; border: 1px solid var(--line); border-radius: 2px; font-family: "JetBrains Mono", monospace; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); background: var(--surface); text-decoration: none; }
.job-chip-pay { border-color: var(--moss); color: var(--moss); font-weight: 700; }
.job-chip-pay.is-muted { border-style: dashed; color: var(--ink-soft); font-weight: 500; }
.job-hero-wrap { display: block; margin: 0 0 .7rem; }
.job-hero { display: block; width: 100%; max-height: 260px; object-fit: cover; object-position: top; border: 1px solid var(--line); }
.job-actions .small-muted { margin-left: .8rem; }
.listing-details { border: 1px solid var(--line); padding: .8rem .9rem .5rem; margin: 0; }
.listing-details-grid { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr 1fr; gap: .6rem .8rem; }
.listing-details-grid label { white-space: nowrap; }
@media (max-width: 400px) { .listing-details-grid { grid-template-columns: 1fr 1fr; } }
.listing-details .field { margin: 0 0 .5rem; }
.job-page-hero { display: block; max-width: 100%; max-height: 520px; width: auto; height: auto; border: 1px solid var(--line); margin: 1rem 0; }
.job-page-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, max-content)); gap: 1px; background: var(--line); border: 1px solid var(--line); margin: .8rem 0 1rem; padding: 0; }
.job-page-facts > div { background: var(--surface); padding: .5rem .9rem; }
.job-page-facts dt { font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 .3rem; }
.job-page-facts dd { margin: 0; font-weight: 600; }
@media (max-width: 700px) { .listing-details-grid { grid-template-columns: 1fr 1fr; } .job-page-facts { grid-template-columns: 1fr 1fr; } }

/* ---------- Tier 65 · Shift slots ---------- */
.cc-shifts { border: 1px solid var(--line); padding: .8rem .9rem; }
.cc-shift-gen { display: flex; flex-wrap: wrap; gap: .5rem .8rem; align-items: end; margin: .4rem 0 .7rem; }
.cc-shift-gen label { display: flex; flex-direction: column; gap: .2rem; font-family: "JetBrains Mono", monospace; font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.cc-shift-gen input, .cc-shift-gen select { font-family: "Source Serif 4", serif; font-size: .95rem; padding: .35rem .45rem; }
.cc-shift-gen .cc-sg-check { flex-direction: row; align-items: center; gap: .4rem; text-transform: none; letter-spacing: 0; font-family: "Source Serif 4", serif; font-size: .9rem; }
.cc-shift-rows { display: flex; flex-direction: column; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.cc-shift-rows:empty { display: none; }
.cc-shift-row { display: grid; grid-template-columns: 1.4fr 1fr 1fr 4.5rem auto; gap: .5rem; align-items: end; background: var(--surface); padding: .45rem .6rem; }
.cc-shift-row label { display: flex; flex-direction: column; gap: .15rem; font-family: "JetBrains Mono", monospace; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.cc-shift-row input { padding: .3rem .4rem; font-size: .9rem; min-width: 0; }
.cc-shift-row .sh-remove { padding: .25rem .55rem; }
.cc-shift-foot { margin: .5rem 0 0; display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.deploy-shifts { border: 1px solid var(--moss); padding: .7rem .9rem .5rem; margin: 1rem 0 .4rem; text-align: left; }
.deploy-shifts legend { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.15rem; padding: 0 .3rem; }
.deploy-shift-list { display: flex; flex-direction: column; gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: .4rem; }
.deploy-shift { display: grid; grid-template-columns: auto 1fr auto; gap: .3rem .7rem; align-items: center; background: var(--surface); padding: .5rem .7rem; cursor: pointer; }
.deploy-shift input { width: 1.15rem; height: 1.15rem; accent-color: var(--accent); }
.deploy-shift-label { font-weight: 700; }
.deploy-shift-when { grid-column: 2; font-family: "JetBrains Mono", monospace; font-size: .66rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); }
.deploy-shift-seats { grid-column: 3; grid-row: 1 / span 2; font-family: "JetBrains Mono", monospace; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--moss); font-weight: 700; text-align: right; }
.deploy-shift.is-full { opacity: .5; cursor: default; }
.deploy-shift.is-full .deploy-shift-seats { color: var(--ink-soft); }
.deploy-shift.is-held { border-left: 3px solid var(--moss); }
.deploy-held { margin: .6rem 0; text-align: left; }
.deploy-held .deploy-shift { grid-template-columns: 1fr auto; }
.deploy-held .deploy-shift-when { grid-column: 1; }
.deploy-held .deploy-drop { grid-column: 2; grid-row: 1 / span 2; padding: .25rem .6rem; }
.deploy-accept.is-waiting { opacity: .45; }
@media (max-width: 700px) { .cc-shift-row { grid-template-columns: 1fr 1fr; } .cc-shift-row label:first-child { grid-column: 1 / -1; } }
.deploy-shift-label { font-size: .98rem; line-height: 1.25; }
@media (max-width: 480px) { .deploy-shift { grid-template-columns: auto 1fr; } .deploy-shift-seats { grid-column: 2; grid-row: 3; text-align: left; } }

/* ---------- Tier 66 · Sponsored cards (WWAds) ---------- */
.ww-ad-card { padding: 0; }
.ww-ad-card.is-slot:not(.has-ad) { min-height: 2px; padding: 0; border: 0; box-shadow: none; background: transparent; }
.ww-ad-card.is-empty, .ww-ad-card:not(.is-slot):not(.has-ad) { display: none; }
.ww-ad { position: relative; border: 1px solid var(--line); background: var(--surface); margin: 0 auto 1.2rem; overflow: hidden; }
.ww-ad-link { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); text-decoration: none; color: var(--ink); }
.ww-ad-square .ww-ad-link { grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); }
.ww-ad-img { display: block; width: 100%; height: 100%; min-height: 180px; max-height: 320px; object-fit: cover; }
.ww-ad-body { display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.1rem 1.1rem; }
.ww-ad-kicker { font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.ww-ad-head { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.45rem; line-height: 1.02; }
.ww-ad-text { font-size: .92rem; line-height: 1.45; color: var(--ink-soft); }
.ww-ad-cta { margin-top: auto; align-self: flex-start; font: 700 .74rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-ink); background: var(--accent); padding: .55rem .8rem; border-radius: 2px; }
.ww-ad-link:hover .ww-ad-cta { background: var(--accent-strong); }
.ww-ad-why { position: absolute; right: .6rem; top: .5rem; font: 500 .6rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-soft); background: var(--surface); padding: .2rem .4rem; border: 1px solid var(--line); text-decoration: none; }
@media (max-width: 640px) { .ww-ad-link, .ww-ad-square .ww-ad-link { grid-template-columns: 1fr; } .ww-ad-img { max-height: 220px; min-height: 0; } }
.vads-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); margin: .6rem 0 .8rem; }
.vads-bar > div { background: var(--surface); padding: .6rem .9rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.vads-bar-label { font: 700 .6rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); width: 100%; }
.vads-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); margin: .5rem 0 .3rem; }
.vads-stats > div { background: var(--surface); padding: .4rem .6rem; }
.vads-stats dt { font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 .25rem; }
.vads-stats dd { margin: 0; font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.2rem; line-height: 1; }
.vads-budget { height: 6px; background: var(--surface-alt); border: 1px solid var(--line); margin: 0 0 .5rem; }
.vads-budget i { display: block; height: 100%; background: var(--accent); }
.vads-creatives { display: flex; flex-direction: column; gap: .4rem; margin: .4rem 0 .6rem; }
.vads-creative { display: grid; grid-template-columns: 96px 1fr auto; gap: .7rem; align-items: center; border: 1px solid var(--line); padding: .4rem .5rem; background: var(--surface); }
.vads-creative img { width: 96px; height: 54px; object-fit: cover; }
.vads-creative > div { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.vads-creative.is-off { opacity: .55; }
.vads-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.vads-form { border: 1px solid var(--moss); padding: .9rem 1rem; margin: .9rem 0; }
.vads-charges { margin-top: 1rem; }
@media (max-width: 700px) { .vads-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } .vads-bar { grid-template-columns: 1fr; } .vads-creative { grid-template-columns: 72px 1fr; } .vads-creative > span { grid-column: 1 / -1; } }

/* ---------- Tier 67 · Member feed ---------- */
.feed { padding: 1.2rem 0 2rem; }
.feed-top { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1rem 1.5rem; align-items: end; padding-bottom: 1rem; border-bottom: 1px solid var(--line); margin-bottom: 1.2rem; }
.feed-id h1 { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; text-transform: uppercase; font-size: clamp(2rem, 5vw, 3.4rem); line-height: .95; margin: .2rem 0 .3rem; letter-spacing: .01em; }
.feed-sub { margin: 0; color: var(--ink-soft); }
.feed-ready { grid-column: 1; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; font: 700 .72rem/1.4 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.feed-ready-dot { width: .7rem; height: .7rem; border-radius: 50%; background: var(--ink-soft); }
.feed-ready.is-ready { color: var(--moss); } .feed-ready.is-ready .feed-ready-dot { background: var(--moss); box-shadow: 0 0 8px var(--moss); }
.feed-ready.is-not { color: var(--accent-strong); } .feed-ready.is-not .feed-ready-dot { background: var(--accent); }
.feed-next { color: var(--ink); background: var(--surface); border: 1px solid var(--line); padding: .3rem .6rem; text-decoration: none; letter-spacing: .06em; }
.feed-board { grid-column: 2; grid-row: 1 / span 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); margin: 0; }
.feed-board > div { background: var(--surface); padding: .55rem .7rem; }
.feed-board dt { font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 .3rem; }
.feed-board dd { margin: 0; font-family: "Big Shoulders Display", sans-serif; font-weight: 900; font-size: 1.6rem; line-height: 1; }
.feed-grid { display: grid; grid-template-columns: minmax(240px, .85fr) minmax(0, 1.5fr) minmax(240px, .85fr); gap: 1.2rem; align-items: start; }
.feed-block { margin-bottom: 1.2rem; }
.feed-block h2 { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.15rem; letter-spacing: .03em; margin: 0 0 .45rem; padding-bottom: .3rem; border-bottom: 2px solid var(--ink); }
.feed-block h2 .small-muted { font-family: "JetBrains Mono", monospace; font-weight: 500; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; margin-left: .4rem; }
.feed-block-foot { font-size: .88rem; color: var(--ink-soft); margin: .4rem 0 0; }
.feed-list { display: flex; flex-direction: column; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.feed-list:empty { display: none; }
.feed-list .jobs-empty, .feed-list .small-muted { background: var(--surface); padding: .6rem .8rem; margin: 0; }
.feed-item { position: relative; display: flex; flex-direction: column; gap: .2rem; background: var(--surface); padding: .6rem .8rem .65rem; text-decoration: none; color: var(--ink); border-left: 3px solid transparent; }
.feed-item:hover { background: var(--surface-alt); }
.feed-item strong { font-family: "Source Serif 4", serif; font-weight: 600; font-size: 1rem; line-height: 1.25; }
.feed-item-kicker { font: 700 .58rem/1.3 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.feed-item-meta { font-size: .84rem; line-height: 1.4; color: var(--ink-soft); }
.feed-item-cta { font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--moss); margin-top: .2rem; }
.feed-item.is-page { border-left-color: var(--accent); background: var(--moss-soft); } .feed-item.is-page .feed-item-kicker, .feed-item.is-page .feed-item-cta { color: var(--accent-strong); }
.feed-item.is-deploy, .feed-item.is-broadcast { border-left-color: var(--moss); }
.feed-item.is-match { border-left-color: var(--moss); }
.feed-item.is-warn { border-left-color: var(--accent); }
.feed-item.is-filled { border-left-color: var(--ink-soft); }
.feed-badge { display: inline-block; margin-left: .35rem; font: 700 .54rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--moss); border: 1px solid var(--moss); padding: .15rem .35rem; vertical-align: middle; }
.feed-quick { display: flex; flex-wrap: wrap; gap: .35rem; }
.feed-quick a { font: 700 .64rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); background: var(--surface); border: 1px solid var(--line); padding: .45rem .6rem; text-decoration: none; }
.feed-quick a:hover { border-color: var(--moss); color: var(--moss); }
.feed-stream .ww-ad-card { margin-bottom: 1.2rem; }
@media (max-width: 1000px) { .feed-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .feed-rail-right { grid-column: 1 / -1; } }
@media (max-width: 700px) { .feed-top { grid-template-columns: 1fr; } .feed-board { grid-column: 1; grid-row: auto; } .feed-grid { grid-template-columns: 1fr; } .feed-rail-right { grid-column: auto; } .feed-board dd { font-size: 1.3rem; } }

.feed-theme { grid-column: 2; grid-row: 1; justify-self: end; align-self: start; }
.feed-board { grid-row: 2; }
.feed-id h1 a { color: inherit; text-decoration: none; border-bottom: 2px dotted var(--line); }
.feed-id h1 a:hover { border-bottom-color: var(--accent); }
@media (max-width: 700px) { .feed-theme { grid-column: 1; grid-row: auto; justify-self: start; } .feed-board { grid-row: auto; } }
.feed-ce-hours { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0 0 .5rem; }
.feed-ce-hours:empty { display: none; }
.feed-ce-chip { font: 500 .62rem/1.4 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); border: 1px solid var(--line); padding: .2rem .45rem; background: var(--surface); }
.feed-ce-chip strong { color: var(--moss); }

/* ---- Tier 70: Mission Console rail + loadout + phone mode bar ---- */
.mc-rail { max-width: 780px; margin: 0 0 1.2rem; border: 1px solid var(--line); background: var(--surface); border-radius: 6px; padding: .9rem 1rem; display: grid; grid-template-columns: 1fr auto; gap: .8rem 1.2rem; align-items: center; position: relative; }
.mc-rail::before, .mc-rail::after { content: ""; position: absolute; width: 12px; height: 12px; border-color: var(--accent); border-style: solid; opacity: .8; }
.mc-rail::before { left: -1px; top: -1px; border-width: 2px 0 0 2px; border-top-left-radius: 6px; } .mc-rail::after { right: -1px; bottom: -1px; border-width: 0 2px 2px 0; border-bottom-right-radius: 6px; }
.mc-id { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.mc-ring { width: 64px; height: 64px; position: relative; flex: none; }
.mc-ring svg { width: 64px; height: 64px; transform: rotate(-90deg); } .mc-ring circle { fill: none; stroke-width: 6; }
.mc-ring .t { stroke: var(--line); } .mc-ring .s { stroke: var(--moss); transition: stroke-dasharray .9s cubic-bezier(.2,.8,.2,1); } .mc-ring .s.warn { stroke: var(--accent); }
.mc-ring b { position: absolute; inset: 0; display: grid; place-items: center; font: 800 1.15rem/1 "JetBrains Mono", monospace; letter-spacing: -.02em; }
.mc-callsign { font: 800 1.5rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; letter-spacing: .02em; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.mc-callsign .mc-nocs { font: 600 .9rem/1.2 inherit; text-decoration: underline; } .mc-edit { font-size: .8rem; text-decoration: none; opacity: .6; } .mc-edit:hover { opacity: 1; }
.mc-level { font: 600 .74rem/1.4 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); margin-top: .15rem; }
.mc-clr { display: flex; gap: .35rem; flex-wrap: wrap; margin-top: .4rem; }
.mc-chip { font: 600 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; border: 1px solid var(--line); border-radius: 3px; padding: .3rem .45rem; color: var(--ink-soft); }
.mc-chip.ok { border-color: var(--moss); color: var(--moss); } .mc-chip.no { border-style: dashed; opacity: .75; } .mc-chip.pend { border-color: var(--accent); color: var(--accent-strong); }
.mc-stats { display: flex; gap: 1rem; }
.mc-stat { display: flex; flex-direction: column; align-items: center; min-width: 4.2rem; text-decoration: none; color: inherit; border: 1px solid transparent; border-radius: 4px; padding: .3rem .4rem; }
.mc-stat:hover { border-color: var(--line); } .mc-stat b { font: 800 1.5rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; } .mc-stat span { font: 600 .6rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.mc-stat.hot b { color: var(--accent-strong); } .mc-stat.warn b { color: var(--accent); }
.mc-ready { grid-column: 1 / -1; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: .8rem; }
.mc-ready-line { display: flex; align-items: center; gap: .5rem; font: 700 .74rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; }
.mc-ready-dot { width: .7rem; height: .7rem; border-radius: 50%; background: var(--ink-soft); }
.mc-ready.is-ready .mc-ready-line { color: var(--moss); } .mc-ready.is-ready .mc-ready-dot { background: var(--moss); box-shadow: 0 0 8px var(--moss); }
.mc-ready.is-not .mc-ready-line { color: var(--accent-strong); } .mc-ready.is-not .mc-ready-dot { background: var(--accent); }
.mc-switch { display: inline-flex; align-items: center; gap: .5rem; cursor: pointer; font-size: .85rem; position: relative; } .mc-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.mc-sw { width: 46px; height: 24px; border: 1px solid var(--line); border-radius: 12px; position: relative; background: var(--surface-alt); flex: none; transition: border-color .2s; }
.mc-sw i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--ink-soft); transition: left .2s, background .2s; }
.mc-switch input:checked + .mc-sw { border-color: var(--moss); } .mc-switch input:checked + .mc-sw i { left: 25px; background: var(--moss); box-shadow: 0 0 8px var(--moss); }
.mc-switch input:focus-visible + .mc-sw { outline: 2px solid var(--accent); outline-offset: 2px; } .mc-switch input:disabled ~ * { opacity: .5; cursor: not-allowed; }
.mc-next { font-size: .85rem; margin-left: auto; } .mc-next-ok { color: var(--moss); } .mc-note { font-size: .8rem; color: var(--accent-strong); } /* Tier 204: was .mc-msg — collided with the mission-chat bubble */
.mc-loadout { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: .7rem; }
.mc-loadout-head { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; margin-bottom: .45rem; } .mc-loadout-head .kicker { margin: 0; }
.mc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .45rem; }
.mc-card { display: grid; grid-template-columns: 1fr auto; gap: .2rem .5rem; align-items: center; border: 1px solid var(--line); border-radius: 4px; padding: .45rem .55rem; background: var(--surface-alt); text-decoration: none; color: inherit; font-size: .78rem; transition: transform .15s, border-color .15s; min-width: 0; }
.mc-card:hover { transform: translateX(2px); border-color: var(--accent); }
.mc-card .n { font-weight: 600; min-width: 0; }
.mc-card .st { font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; border: 1px solid currentColor; border-radius: 3px; padding: .2rem .35rem; }
.mc-card .bar { grid-column: 1 / -1; height: 3px; background: var(--line); border-radius: 2px; overflow: hidden; } .mc-card .bar i { display: block; height: 100%; background: var(--moss); }
.mc-card.ok .st { color: var(--moss); } .mc-card.warn .st { color: var(--accent-strong); } .mc-card.warn .bar i { background: var(--accent); }
.mc-card.bad .st { color: #b3261e; } .mc-card.bad .bar i { background: #b3261e; } .mc-card.pend .st { color: var(--ink-soft); } .mc-card.none { border-style: dashed; } .mc-card.none .st { color: var(--ink-soft); }
:root[data-theme="nvg"] .mc-ring .s, :root[data-theme="nvg"] .mc-ready.is-ready .mc-ready-dot { filter: drop-shadow(0 0 6px rgba(110,226,112,.5)); }
.mc-modebar { display: none; }
@media (max-width: 760px) {
  .mc-rail { grid-template-columns: 1fr; } .mc-stats { justify-content: space-between; } .mc-next { margin-left: 0; width: 100%; }
  body.has-mc-modebar { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .mc-modebar:not([hidden]) { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--surface); border-top: 1px solid var(--line); padding: .3rem .3rem calc(.3rem + env(safe-area-inset-bottom, 0px)); }
  .mc-modebar a { display: flex; flex-direction: column; align-items: center; gap: .1rem; padding: .35rem .2rem; font: 600 .62rem/1.2 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); text-decoration: none; position: relative; border-radius: 4px; }
  .mc-modebar a em { font-style: normal; font-size: 1.15rem; line-height: 1; } .mc-modebar a.is-on { color: var(--accent-strong); }
  .mc-badge { position: absolute; top: .1rem; right: 18%; min-width: 16px; height: 16px; border-radius: 8px; background: var(--accent); color: var(--accent-ink); font-size: .62rem; display: grid; place-items: center; font-weight: 700; padding: 0 .25rem; }
}

/* ---- Tier 71: incoming-call focus ---- */
.mc-focus { grid-column: 1 / -1; } .mc-focus[hidden] { display: none; }
.mc-order { border: 2px solid var(--accent); background: var(--surface-alt); border-radius: 6px; overflow: hidden; position: relative; }
.mc-order.is-new { animation: mc-slam .35s cubic-bezier(.2,1.2,.3,1) both; } .mc-order.is-done { border-color: var(--moss); }
@keyframes mc-slam { from { transform: scale(1.03); opacity: 0; filter: brightness(1.6); } to { transform: none; opacity: 1; filter: none; } }
.mc-order-top { display: flex; justify-content: space-between; gap: .6rem; padding: .45rem .9rem; background: var(--accent); color: var(--accent-ink); font: 700 .66rem/1.4 "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; }
.mc-order-body { display: grid; grid-template-columns: 96px 1fr; gap: .8rem; padding: .8rem .9rem; align-items: start; }
.mc-sil { width: 96px; height: auto; max-height: 150px; object-fit: contain; opacity: .85; }
.mc-order-title { font: 800 1.6rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; letter-spacing: .01em; margin-bottom: .5rem; }
.mc-order-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .4rem .8rem; font-size: .84rem; }
.mc-order-grid .k { display: block; font: 600 .58rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); } .mc-order-grid b { font-weight: 600; }
.mc-order-seats { display: flex; align-items: center; gap: .6rem; margin: .55rem 0; flex-wrap: wrap; }
.mc-seats { display: inline-flex; gap: 3px; } .mc-seats i { width: 18px; height: 9px; border: 1px solid var(--line); border-radius: 1px; background: var(--surface); } .mc-seats i.f { background: var(--moss); border-color: var(--moss); }
.mc-order-act { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; } .mc-order-act .mc-hold { min-width: 180px; } .mc-order-msg { font-size: .82rem; }
.mc-order-more { border-top: 1px dashed var(--line); padding: .4rem .9rem; font-size: .8rem; }
@media (max-width: 760px) { .mc-order-body { grid-template-columns: 1fr; } .mc-sil { display: none; } .mc-order-act .mc-hold { width: 100%; } }

/* ---- Tier 72: feed v2 — since-last-here + NEW + track block ---- */
.feed-since { grid-column: 1 / -1; margin: .4rem 0 0; font: 400 .92rem/1.5 Georgia, 'Source Serif 4', serif; letter-spacing: 0; text-transform: none; color: var(--ink); } .feed-since.is-quiet { color: var(--ink-soft); }
.feed-new { display: inline-block; font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; background: var(--accent); color: var(--accent-ink); border-radius: 3px; padding: .2rem .35rem; vertical-align: middle; }
.feed-item.is-new { box-shadow: inset 3px 0 0 var(--accent); }

/* ---- Tier 73: ads v2 A/B view ---- */
.vads-ab { margin: .6rem 0; } .vads-ab h6 { margin: 0 0 .3rem; font: 700 .66rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.vads-ab-bar { height: 4px; background: var(--line); border-radius: 2px; overflow: hidden; margin-top: .2rem; min-width: 60px; } .vads-ab-bar i { display: block; height: 100%; background: var(--moss); }
.vads-ab tr.is-lead td { background: color-mix(in srgb, var(--moss) 10%, transparent); }
.vads-export { text-decoration: none; }

/* ---- Tier 74: beta harness ---- */
.beta-badge { display: inline-block; margin-left: .6rem; font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-ink); background: var(--accent); border-radius: 3px; padding: .3rem .45rem; text-decoration: none; vertical-align: middle; align-self: center; }
.beta-badge:hover { background: var(--accent-strong); }
.beta-trigger { position: fixed; right: 14px; bottom: 14px; z-index: 45; display: inline-flex; align-items: center; gap: .45rem; font: 600 .68rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: .6rem .9rem; box-shadow: 0 6px 20px rgba(0,0,0,.18); cursor: pointer; }
.beta-trigger:hover { border-color: var(--accent); } .beta-trigger-dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--accent); box-shadow: 0 0 8px var(--accent); }
body.has-mc-modebar .beta-trigger { bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
.beta-dialog { position: fixed; inset: 0; z-index: 60; background: rgba(10, 12, 10, .55); display: grid; place-items: center; padding: 16px; } .beta-dialog[hidden] { display: none; }
.beta-dialog-card { width: min(520px, 100%); background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 8px; padding: 1rem 1.1rem 1.1rem; box-shadow: 0 20px 60px rgba(0,0,0,.35); max-height: 92vh; overflow: auto; }
.beta-dialog-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; } .beta-dialog-head .kicker { margin: 0; }
.beta-close { border: 0; background: none; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--ink-soft); }
.beta-form { display: grid; gap: .7rem; } .beta-form label { display: grid; gap: .25rem; font-size: .85rem; } .beta-row { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.beta-form input[type=text], .beta-form select, .beta-form textarea { font: inherit; padding: .5rem .6rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface-alt); color: var(--ink); }
.beta-actions { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; } .beta-msg { font-size: .82rem; } .beta-meta { margin: 0; }
@media (max-width: 560px) { .beta-row { grid-template-columns: 1fr; } .beta-trigger span + span { display: none; } }
@media (prefers-reduced-motion: no-preference) { .beta-trigger-dot { animation: beta-pulse 2.4s ease-in-out infinite; } @keyframes beta-pulse { 50% { opacity: .35; } } }

.beta-page .lede { font-size: 1.05rem; } .beta-list { padding-left: 1.2rem; display: grid; gap: .35rem; }
.beta-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .6rem; margin: .8rem 0; }
.beta-tiers > div { border: 1px solid var(--line); border-radius: 6px; padding: .7rem .8rem; background: var(--surface-alt); display: grid; gap: .2rem; }
.beta-tiers .k { font: 700 .6rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.beta-tiers b { font: 800 1.4rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; } .beta-tiers span:last-child { font-size: .8rem; color: var(--ink-soft); }

/* ---- Tier 74: sponsorship checkout ---- */
.vads-sponsor { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.sp-promo { display: flex; gap: .5rem; align-items: end; flex-wrap: wrap; margin: .6rem 0; grid-column: 1 / -1; } #sp-form > .field-hint, #sp-form > .sp-summary, #sp-form > .sp-banner, #sp-form > .field-actions, #sp-form > .listing-details-grid, #sp-form > .field { grid-column: 1 / -1; } .sp-promo label { font-size: .85rem; display: grid; gap: .25rem; } .sp-promo input { font: inherit; padding: .5rem .6rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface-alt); color: var(--ink); text-transform: uppercase; max-width: 14rem; }
.sp-summary { display: grid; gap: .3rem; max-width: 420px; border: 1px solid var(--line); border-radius: 6px; padding: .7rem .9rem; background: var(--surface-alt); margin: .5rem 0; }
.sp-summary > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .92rem; } .sp-summary .sp-savings { color: var(--moss); } .sp-summary .sp-total { border-top: 1px solid var(--line); padding-top: .35rem; font-weight: 700; font-size: 1rem; }
.sp-banner { margin: .3rem 0 .6rem; padding: .5rem .8rem; border-left: 3px solid var(--moss); background: color-mix(in srgb, var(--moss) 10%, transparent); font-size: .88rem; border-radius: 0 4px 4px 0; }

.beta-desc { white-space: normal; margin: .4rem 0; } .beta-status-form { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; margin-top: .4rem; } .beta-status-form input[type=text] { flex: 1; min-width: 160px; }
.promo-item.is-off { opacity: .6; } .promo-item code { font: 700 .9rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; }
.admin-inline-controls { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }

/* ---- Tier 75: phone front door — tabs, tighter margins, compact theme control ---- */
.fd-tabbar { display: none; }
@media (max-width: 760px) {
  .fd-tabbar:not([hidden]) { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 2px; position: sticky; top: 0; z-index: 30; margin: 0 -16px .9rem; padding: .35rem 8px; background: var(--bg); border-bottom: 1px solid var(--line); }
  .fd-tabbar button { font: 600 .62rem/1.2 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); background: none; border: 0; border-radius: 999px; padding: .55rem .2rem; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .fd-tabbar button[aria-selected="true"] { background: var(--accent); color: var(--accent-ink); }
  body.fd-tabbed main.fd { padding-top: 0; }
  body.fd-tabbed .fd > [hidden] { display: none !important; }
  /* the dark band: a card with a gutter on phones instead of a full-bleed strip */
  body.fd-tabbed .fd-board, .fd-board { margin-inline: 0; width: auto; padding: 1.2rem 16px 1.1rem; border-radius: 8px; }
  .fd-board-head h2 { font-size: 1.9rem; }
  .fd-board-grid { grid-template-columns: 1fr; gap: .7rem; }
  .fd-feed-wrap { width: auto; min-width: 0; }
  .fd-feed-wrap p, .fd-feed-wrap .fd-feed-empty { white-space: normal; }
  .fd-proof { font-size: .78rem; }
  .fd-steps h2, .fd-tracks h2, .fd-events h2, .fd-rfd h2 { font-size: 1.9rem; }
  /* compact theme control: only the active option shows until tapped */
  .theme-toggle.is-compact { gap: 0; padding: .15rem; }
  .theme-toggle.is-compact .theme-toggle-label { display: none; }
  .theme-toggle.is-compact:not(.is-open) .theme-opt[aria-checked="false"] { display: none; }
  .theme-toggle.is-compact .theme-opt { font-size: .62rem; padding: .35rem .6rem; }
  .theme-toggle.is-compact:not(.is-open) .theme-opt[aria-checked="true"]::after { content: " ▾"; opacity: .7; }
  .feed-theme, .dash-theme-row { margin-bottom: .4rem; }
}
@media (max-width: 760px) {
  .topbar { position: relative; }
  .beta-badge { position: absolute; top: .55rem; right: 4.4rem; margin: 0; font-size: .52rem; padding: .25rem .35rem; }
  .topbar.nav-open .beta-badge { display: none; }
}

/* ---- Tier 80: payments & invoices ---- */
.billing .feed-block { max-width: 1100px; }
.bl-health { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .5rem; }
.bl-pill { font: 600 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; border: 1px solid var(--line); border-radius: 999px; padding: .35rem .6rem; color: var(--ink-soft); }
.bl-pill.ok { border-color: var(--moss); color: var(--moss); } .bl-pill.warn { border-color: var(--accent); color: var(--accent-strong); }
.bl-table-wrap { overflow-x: auto; } .bl-table td.r, .bl-table th.r { text-align: right; white-space: nowrap; } .bl-table .bl-total td { font-weight: 700; border-top: 2px solid var(--ink); }
.bl-rates { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .5rem; margin: .5rem 0; }
.bl-rates > div { border: 1px solid var(--line); border-radius: 6px; padding: .6rem .7rem; background: var(--surface-alt); display: grid; gap: .15rem; }
.bl-rates .k { font: 600 .6rem/1.4 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); } .bl-rates b { font: 800 1.5rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; }

/* ---- Tier 81: ad market — carousel, rates strip, analytics, catalog ---- */
.ww-ad-carousel { display: block; } .ww-ad-carousel-head { padding: .6rem .8rem .2rem; }
.ww-ad-strip { display: flex; gap: .5rem; overflow-x: auto; padding: .4rem .8rem .7rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.ww-ad-item { flex: 0 0 140px; scroll-snap-align: start; display: grid; gap: .2rem; text-decoration: none; color: inherit; border: 1px solid var(--line); border-radius: 6px; padding: .4rem; background: var(--surface-alt); }
.ww-ad-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; background: var(--line); }
.ww-ad-item-title { font-size: .78rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .ww-ad-item-price { font: 700 .72rem/1 "JetBrains Mono", monospace; color: var(--moss); }
.vads-rates { display: grid; grid-template-columns: repeat(3, auto) 1fr; gap: .6rem 1.2rem; align-items: center; border: 1px solid var(--line); border-radius: 6px; padding: .6rem .9rem; margin: .6rem 0; background: var(--surface-alt); }
.vads-rates .k { display: block; font: 600 .58rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); } .vads-rates b { font: 800 1.5rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; }
.vads-rates-why span:last-child { font-size: .78rem; color: var(--ink-soft); }
.vads-analytics, .vads-track, .vads-shopify { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.va-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: .45rem; margin: .5rem 0; } .va-tiles > div { border: 1px solid var(--line); border-radius: 6px; padding: .5rem .6rem; background: var(--surface-alt); } .va-tiles .k { display: block; font: 600 .56rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); } .va-tiles b { font: 800 1.3rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; }
.va-charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .6rem; margin: .6rem 0; }
.va-fig { margin: 0; border: 1px solid var(--line); border-radius: 6px; padding: .5rem .6rem; background: var(--surface); } .va-fig figcaption { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .2rem; } .va-fig .k { font: 600 .56rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); } .va-fig b { font: 700 .9rem/1 "JetBrains Mono", monospace; }
.va-fig svg { width: 100%; height: auto; display: block; } .va-bar { fill: var(--moss); } .va-bar:hover { fill: var(--accent); } .va-axis { font: 500 9px "JetBrains Mono", monospace; fill: var(--ink-soft); }
.va-snippet { font: 500 .74rem/1.5 "JetBrains Mono", monospace; background: var(--surface-alt); border: 1px solid var(--line); border-radius: 6px; padding: .6rem .8rem; white-space: pre-wrap; word-break: break-all; }
.sh-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: .45rem; margin: .6rem 0; }
.sh-item { display: grid; gap: .2rem; border: 1px solid var(--line); border-radius: 6px; padding: .4rem; cursor: pointer; position: relative; background: var(--surface-alt); font-size: .76rem; } .sh-item.is-off { opacity: .45; } .sh-item input { position: absolute; top: .4rem; left: .4rem; z-index: 1; } .sh-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; background: var(--line); } .sh-item em { font: 700 .7rem/1 "JetBrains Mono", monospace; color: var(--moss); font-style: normal; }
.sh-item:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent); }
.vads-cr-strip { display: flex; gap: 3px; width: 120px; flex-wrap: wrap; } .vads-cr-strip img { width: 36px; height: 36px; object-fit: cover; border-radius: 3px; }
body.is-advertiser #vendor-vetting-card, body.is-advertiser #vendor-fleet-card, body.is-advertiser #vendor-bids-card { display: none !important; }
@media (max-width: 760px) { .vads-rates { grid-template-columns: 1fr 1fr; } }
.adv-rates { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .5rem; margin: .6rem 0; } .adv-rates > div { border: 1px solid var(--line); border-radius: 6px; padding: .6rem .7rem; background: var(--surface-alt); } .adv-rates .k { display: block; font: 600 .58rem/1.4 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); } .adv-rates b { font: 800 1.6rem/1 "Big Shoulders Display", "Arial Narrow", Impact, sans-serif; }
.adv-history svg { width: 100%; height: auto; display: block; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-alt); }

/* Tier 82 — range finder (radar scope, pings, service record) */
.rf-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; } .rf-note { font-family: "JetBrains Mono", monospace; font-size: .72rem; letter-spacing: .04em; }
.rf-bar { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; margin: .8rem 0 .6rem; }
.rf-ranges { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--line); border-radius: 6px; padding: 2px; background: var(--paper-2, transparent); }
.rf-ranges .rf-r { font: 600 .72rem/1 "JetBrains Mono", monospace; padding: .42rem .55rem; border: 0; border-radius: 4px; background: transparent; color: var(--ink-soft); cursor: pointer; letter-spacing: .04em; min-width: 2.6rem; }
.rf-ranges .rf-r.is-on { background: var(--accent-strong); color: #fff; } .rf-ranges .rf-unit { font: 600 .62rem/1 "JetBrains Mono", monospace; color: var(--ink-soft); padding: 0 .4rem; letter-spacing: .1em; }
.rf-centre { font-size: .82rem; display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; } .rf-centre-dot { width: 9px; height: 9px; border-radius: 50%; background: #9FE870; box-shadow: 0 0 0 3px rgba(159,232,112,.25); display: inline-block; } .rf-centre-dot.fix { background: #F2C14E; box-shadow: 0 0 0 3px rgba(242,193,78,.25); }
.rf-fix { padding: .3rem .6rem; font-size: .72rem; }
.rf-body { display: grid; grid-template-columns: minmax(240px, 320px) 1fr; gap: 1rem; align-items: start; }
.rf-scope { position: relative; } .rf-svg { width: 100%; height: auto; display: block; border-radius: 50%; }
.rf-face { fill: #0B0E09; stroke: #2a3324; stroke-width: 1.5; } .rf-ring { fill: none; stroke: rgba(159,232,112,.28); stroke-width: 1; } .rf-ring.edge { stroke: rgba(159,232,112,.55); stroke-width: 1.5; }
.rf-axis { stroke: rgba(159,232,112,.16); stroke-width: 1; } .rf-ring-lbl { font: 500 8.5px "JetBrains Mono", monospace; fill: rgba(231,235,221,.55); } .rf-card { font: 700 10px "JetBrains Mono", monospace; fill: var(--ink-soft); text-anchor: middle; }
.rf-sweep { transform-origin: 160px 160px; animation: rf-spin 5s linear infinite; } .rf-sweep-line { stroke: #9FE870; stroke-width: 1.2; opacity: .8; }
@keyframes rf-spin { to { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .rf-sweep { animation: none; opacity: .35; } }
.rf-home { fill: #9FE870; stroke: #0B0E09; stroke-width: 1.5; }
.rf-ping { cursor: pointer; } .rf-ping .hit { fill: transparent; } .rf-ping .dot { fill: #E7EBDD; stroke: #0B0E09; stroke-width: 1; } .rf-ping .halo { fill: none; stroke: #F2C14E; stroke-width: 2; animation: rf-halo 1.6s ease-out infinite; transform-origin: center; }
@keyframes rf-halo { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(2.4); opacity: 0; } }
.rf-ping.paged .dot { fill: #F2C14E; } .rf-ping.hold .dot { fill: #9FE870; } .rf-ping.open .dot { fill: #7FB7F2; } .rf-ping.bc .dot { fill: #B8BEB0; } .rf-ping.off .dot { fill: #555; }
.rf-ping .approx-ring { fill: none; stroke: rgba(231,235,221,.45); stroke-width: 1; stroke-dasharray: 2 2; }
.rf-ping .rf-ping-lbl { font: 700 8px "JetBrains Mono", monospace; fill: #E7EBDD; text-anchor: middle; } .rf-ping:focus { outline: none; } .rf-ping:focus .hit, .rf-ping.is-sel .hit { fill: rgba(159,232,112,.18); stroke: #9FE870; stroke-width: 1; }
.rf-empty { padding: 2rem 1rem; border: 1px dashed var(--line); border-radius: 8px; text-align: center; font-size: .9rem; color: var(--ink-soft); }
.rf-list { display: flex; flex-direction: column; gap: .4rem; max-height: 340px; overflow: auto; padding-right: 2px; }
.rf-row { display: grid; grid-template-columns: 56px 1fr 18px; gap: .6rem; align-items: center; padding: .5rem .6rem; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; color: inherit; background: var(--paper-2, transparent); }
.rf-row:hover, .rf-row.is-sel { border-color: var(--accent-strong); } .rf-row.no-link { opacity: .8; } .rf-row.no-link .rf-row-go { visibility: hidden; }
.rf-row-dist { display: flex; flex-direction: column; align-items: center; font-family: "JetBrains Mono", monospace; } .rf-row-dist b { font-size: 1.05rem; line-height: 1; } .rf-row-dist span { font-size: .6rem; letter-spacing: .08em; color: var(--ink-soft); text-transform: uppercase; }
.rf-row-main { display: flex; flex-direction: column; gap: .12rem; min-width: 0; } .rf-row-top { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; } .rf-run { font: 600 .66rem/1 "JetBrains Mono", monospace; color: var(--ink-soft); letter-spacing: .06em; }
.rf-row-title { font-weight: 600; font-size: .92rem; } .rf-row-sub { font-size: .76rem; color: var(--ink-soft); } .rf-row-go { font-size: 1.1rem; color: var(--accent-strong); }
.rf-badge { font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; padding: .22rem .4rem; border-radius: 3px; background: #B8BEB0; color: #0B0E09; }
.rf-badge.paged { background: #F2C14E; } .rf-badge.hold { background: #9FE870; } .rf-badge.open { background: #7FB7F2; } .rf-badge.off { background: #777; color: #fff; }
.rf-nq { font-size: .62rem; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 3px; padding: .1rem .3rem; }
.rf-record { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; } .rf-tile { border: 1px solid var(--line); border-radius: 8px; padding: .6rem .5rem; text-align: center; display: flex; flex-direction: column; gap: .1rem; }
.rf-tile b { font-size: 1.25rem; line-height: 1.1; font-family: "JetBrains Mono", monospace; } .rf-tile span { font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-soft); } .rf-tile em { font-style: normal; font-size: .64rem; color: var(--ink-soft); }
@media (max-width: 760px) { .rf-body { grid-template-columns: 1fr; } .rf-scope { max-width: 320px; margin: 0 auto; } .rf-record { grid-template-columns: repeat(3, 1fr); } .rf-list { max-height: none; } }

/* Tier 83 — open advertising: account-type actions in the vendor banner, desk tag */
.vacct-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; } .vacct-actions .vacct-btn { padding: .45rem .8rem; font-size: .78rem; }
.vacct-sub { display: block; margin-top: .55rem; font-size: .78rem; opacity: .85; }
.ad-acct-tag { font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; padding: .22rem .4rem; border-radius: 3px; background: #7FB7F2; color: #0B0E09; vertical-align: middle; }

/* Tier 84 — product catalog: Shopify (Headless channel) guide + hand-added products */
.sh-modes { display: inline-flex; gap: 2px; border: 1px solid var(--line); border-radius: 6px; padding: 2px; margin: .5rem 0 .8rem; }
.sh-mode { font: 600 .72rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; padding: .5rem .8rem; border: 0; border-radius: 4px; background: transparent; color: var(--ink-soft); cursor: pointer; }
.sh-mode.is-on { background: var(--accent-strong); color: #fff; }
.sh-state { font-size: .86rem; margin: 0 0 .6rem; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.sh-dot { width: 9px; height: 9px; border-radius: 50%; background: #B8BEB0; display: inline-block; } .sh-dot.ok { background: #5fae3c; box-shadow: 0 0 0 3px rgba(95,174,60,.2); }
.sh-guide { border: 1px solid var(--line); border-radius: 8px; padding: .6rem .8rem; margin: 0 0 .8rem; background: var(--surface-alt); }
.sh-guide summary { cursor: pointer; font-weight: 600; font-size: .9rem; }
.sh-steps { margin: .6rem 0 .4rem 1.1rem; padding: 0; display: grid; gap: .45rem; font-size: .85rem; line-height: 1.45; } .sh-steps li::marker { font-weight: 700; color: var(--accent-strong); }
.sh-steps code, .sh-note code { font-size: .78rem; background: var(--surface); padding: .05rem .3rem; border-radius: 3px; border: 1px solid var(--line); }
.sh-connect-grid { grid-template-columns: 1fr 1fr; } .sh-manual-grid { grid-template-columns: 2fr 1fr; }
.sh-token-wrap { display: flex; gap: .4rem; align-items: center; } .sh-token-wrap input { flex: 1; font-family: "JetBrains Mono", monospace; font-size: .8rem; }
.sh-actions { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin-top: .3rem; }
.sh-msg { font-size: .84rem; margin: .5rem 0 0; } .sh-msg.is-error { color: #b0412a; } .sh-msg.is-ok { color: #3d7a24; }
:root[data-theme="dark"] .sh-msg.is-error { color: #F29C84; } :root[data-theme="dark"] .sh-msg.is-ok { color: #9FE870; }
.sh-src { font: 600 .56rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.sh-rm { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-size: .9rem; line-height: 1; cursor: pointer; }
.sh-noimg { display: grid; place-items: center; aspect-ratio: 1; background: var(--surface); font-size: .66rem; color: var(--ink-soft); border-radius: 4px; }
@media (max-width: 760px) { .sh-connect-grid, .sh-manual-grid { grid-template-columns: 1fr; } }
#sh-form, #sh-manual { display: block; max-width: none; }
#sh-form .listing-details-grid, #sh-manual .listing-details-grid { display: grid; gap: .6rem .8rem; }
#sh-form .field input, #sh-manual .field input { width: 100%; box-sizing: border-box; }
.sh-items > .jobs-empty { grid-column: 1 / -1; font-style: normal; padding: .8rem; }
.sh-token-wrap .link-btn { flex: none; }

/* Tier 85 — clearance ceremony (always the dark ops register, whatever the theme) */
body.ww-cer-open { overflow: hidden; }
.ww-cer { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; text-align: center; color: #E6EAE4; font-family: "JetBrains Mono", ui-monospace, monospace;
  background: radial-gradient(ellipse at 50% 35%, rgba(224,86,42,.10), transparent 60%), rgba(7,9,11,.97); opacity: 0; transition: opacity .35s; }
.ww-cer::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, rgba(0,0,0,.14) 0 1px, transparent 1px 3px); opacity: .5; }
.ww-cer.in { opacity: 1; } .ww-cer.out { opacity: 0; transition: opacity .45s; }
.ww-cer-in { position: relative; z-index: 1; max-width: 640px; width: 100%; }
.ww-cer-k { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: #FF7A45; }
.ww-cer-big { font-family: "Big Shoulders Display", Impact, sans-serif; font-weight: 800; font-size: clamp(44px, 10vw, 104px); line-height: .9; letter-spacing: .01em; margin: 12px 0 4px; color: #E6EAE4; }
.ww-cer.in .ww-cer-big { animation: ww-cer-slam .5s cubic-bezier(.2,1.2,.3,1) both; }
@keyframes ww-cer-slam { from { transform: scale(1.08); opacity: 0; filter: brightness(2); } to { transform: none; opacity: 1; filter: none; } }
.ww-cer-st { display: inline-block; border: 4px solid #6EE270; color: #6EE270; font-family: "Big Shoulders Display", Impact, sans-serif; font-weight: 800; font-size: clamp(28px, 5vw, 48px); padding: 4px 16px; letter-spacing: .08em; text-shadow: 0 0 12px rgba(110,226,112,.4); box-shadow: 0 0 18px rgba(110,226,112,.18) inset; transform: rotate(-6deg) scale(1.8); opacity: 0; margin: 14px 0 6px; }
.ww-cer-st.on { animation: ww-cer-stamp .4s cubic-bezier(.2,1.4,.4,1) both; }
@keyframes ww-cer-stamp { from { transform: rotate(-6deg) scale(1.9); opacity: 0; } to { transform: rotate(-6deg) scale(1); opacity: 1; } }
.ww-cer-who { font-family: "Big Shoulders Display", Impact, sans-serif; font-weight: 800; font-size: 1.4rem; letter-spacing: .06em; color: #F4C430; margin-top: 4px; min-height: 1.4rem; }
.ww-cer-rows { margin: 18px auto 0; max-width: 460px; text-align: left; display: flex; flex-direction: column; gap: 7px; font-size: .82rem; line-height: 1.45; color: #5C6A66; }
.ww-cer-rows > div { opacity: 0; transform: translateY(4px); transition: opacity .3s, transform .3s; }
.ww-cer-rows > div.on { opacity: 1; transform: none; color: #E6EAE4; } .ww-cer-rows > div.on::before { content: "✓ "; color: #6EE270; }
.ww-cer-rows b { color: #F4C430; }
.ww-cer-act { margin-top: 24px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; opacity: 0; transition: opacity .3s; } .ww-cer-act.on { opacity: 1; }
.ww-cer-go { background: #E0562A; color: #0B0D0F; border: none; font-family: "Big Shoulders Display", Impact, sans-serif; font-size: 1.3rem; font-weight: 800; padding: 12px 26px; letter-spacing: .04em; cursor: pointer; box-shadow: 0 0 14px rgba(224,86,42,.45); text-transform: uppercase; }
.ww-cer-cs { background: none; color: #E6EAE4; border: 1px solid #3B4A56; font: 600 .74rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; padding: 12px 16px; cursor: pointer; }
.ww-cer-go:focus-visible, .ww-cer-cs:focus-visible { outline: 2px solid #F4C430; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .ww-cer, .ww-cer-rows > div, .ww-cer-act { transition: none; } .ww-cer.in .ww-cer-big, .ww-cer-st.on { animation: none; transform: rotate(-6deg); opacity: 1; } .ww-cer.in .ww-cer-big { transform: none; } }
.ww-cer-rows > div.todo.on { color: #F4C430; } .ww-cer-rows > div.todo.on::before { content: "→ "; color: #F4C430; }

/* Tier 86 — crisis & behavioral health track */
.landing-tier-code { display: inline-block; font: 700 .7rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; padding: .25rem .45rem; border-radius: 3px; background: var(--accent-strong); color: #fff; vertical-align: middle; margin-right: .3rem; }
.landing-pathway .small-muted { font-size: .82rem; margin: .4rem 0 0; }

/* Tier 87 — specialist / ICS positions on the crew-call builder */
.cc-pos-params { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .5rem .8rem; margin-top: .5rem; padding: .6rem .8rem; border: 1px dashed var(--line); border-radius: 6px; }
.cc-pos-params label { display: flex; flex-direction: column; gap: .2rem; font-size: .78rem; color: var(--ink-soft); } .cc-pos-params input { width: 100%; box-sizing: border-box; }
.cc-pos-tags { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .3rem; } .cc-pos-tag { font: 600 .6rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; padding: .2rem .4rem; border: 1px solid var(--line); border-radius: 3px; color: var(--ink-soft); }
.mx-position { grid-column: 1 / -1; }

/* Tier 88 — supply codes + unit scan ledger */
.supply-code { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 0.72rem; letter-spacing: 0.04em; padding: 0.05rem 0.35rem; border: 1px solid var(--rule, #b8b2a6); border-radius: 3px; background: var(--paper-2, rgba(0,0,0,0.04)); white-space: nowrap; }
#unit-events table td { font-size: 0.8rem; }
#checkout-form { border-top: 1px dashed var(--rule, #b8b2a6); padding-top: 0.8rem; margin-top: 0.8rem; }

/* Tier 89 — front-door audit: skeleton loaders (no layout shift before dispatch.js / index.js paint), secondary routes under the doors */
@keyframes sk-pulse { 0%, 100% { opacity: .45; } 50% { opacity: .9; } }
.sk { display: block; background: var(--rule, rgba(0,0,0,.12)); border-radius: 3px; animation: sk-pulse 1.4s ease-in-out infinite; }
.sk-line { height: .7em; margin: .3em 0; }
.sk-num { width: 2.6ch; height: 1em; display: inline-block; vertical-align: -.1em; }
.sk.w30 { width: 30%; } .sk.w40 { width: 40%; } .sk.w60 { width: 60%; } .sk.w70 { width: 70%; } .sk.w80 { width: 80%; } .sk.w90 { width: 90%; }
.fd-tiles { min-height: 118px; }
.fd-tile-sk { opacity: 1; transform: none; animation: none; border-left-color: var(--b-line); }
.fd-tile-sk .sk { background: var(--b-line); }
.fd-feed { min-height: 4.5rem; }
.fd-feed-sk { list-style: none; }
.fd-feed-sk .sk { background: var(--b-line); }
.fd-stats dd { min-height: 2rem; }
.fd-stats .sk-num { background: var(--b-line); width: 3ch; }
.highlight-list { min-height: 9.5rem; }
.jobs-sk { padding: .4rem 0; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fd-doors-more { font-family: "JetBrains Mono", monospace; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); margin: .9rem 0 0; text-align: center; }
.fd-doors-more a { color: var(--moss); }
.fd-cta .fd-help { margin-left: .2rem; }

/* ============================================================================
   Tier 89 — RED LIGHT (data-theme="nvr"): scotopic night-vision mode, Andrew's spec.
   Monochromatic deep red / amber on near-black. Red (620–700 nm) does not bleach rod
   rhodopsin, so dark adaptation survives a glance at the screen. Rules: no white, no
   blue, no blur glows (halos), medium weights with a little tracking, 1px strokes
   for structure, raster media red-shifted, OLED-black canvas. The NVG green theme
   (data-theme="nvg") stays for Gen III goggle work.
   ========================================================================== */
:root[data-theme="nvr"] {
  --nv-bg: #090303; --nv-surface: #140808; --nv-surface-hover: #1f0b0b; --nv-border: #2e1010;
  --nv-text-primary: #d44a42; --nv-text-muted: #822b27; --nv-accent: #ff5c52; --nv-status-ok: #a8423b; --nv-status-alert: #ff2a2a;
  --bg: var(--nv-bg);
  --surface: var(--nv-surface);
  --surface-alt: var(--nv-surface-hover);
  --ink: var(--nv-text-primary);
  --ink-soft: var(--nv-text-muted);
  --line: var(--nv-border);
  --accent: var(--nv-accent);
  --accent-strong: #ff7a70;
  --accent-ink: #090303;
  --moss: var(--nv-status-ok);
  --moss-soft: #1a0909;
  --shadow: rgba(0, 0, 0, 0);
  --footer-bg: #060202;
  --footer-ridge: #2e1010;
  --footer-ink: #822b27;
  --footer-link: #d44a42;
  --contour: none;
  --rule: #2e1010; --paper-2: #140808;
  color-scheme: dark;
}
:root[data-theme="nvr"] body {
  background: var(--nv-bg); background-image: none; color: var(--nv-text-primary);
  font-weight: 500; letter-spacing: 0.02em;
}
/* no halos: every blur shadow and text glow off; structure comes from 1px strokes */
:root[data-theme="nvr"] *, :root[data-theme="nvr"] *::before, :root[data-theme="nvr"] *::after { box-shadow: none !important; text-shadow: none !important; }
:root[data-theme="nvr"] .auth-card, :root[data-theme="nvr"] .dash-card, :root[data-theme="nvr"] .seat-board, :root[data-theme="nvr"] .ad-admin-card,
:root[data-theme="nvr"] .highlight-card, :root[data-theme="nvr"] .fd-door, :root[data-theme="nvr"] .fd-founding, :root[data-theme="nvr"] .checkpoint-card { background: var(--nv-surface); border: 1px solid var(--nv-border); background-image: none; }
:root[data-theme="nvr"] .fd-door:hover, :root[data-theme="nvr"] .dash-card:hover { background: var(--nv-surface-hover); }
:root[data-theme="nvr"] h1, :root[data-theme="nvr"] h2, :root[data-theme="nvr"] h3, :root[data-theme="nvr"] h4 { color: var(--nv-text-primary); font-weight: 700; }
:root[data-theme="nvr"] .kicker, :root[data-theme="nvr"] .small-muted, :root[data-theme="nvr"] .job-meta, :root[data-theme="nvr"] time, :root[data-theme="nvr"] .fd-stats dt { color: var(--nv-text-muted); }
:root[data-theme="nvr"] .wordmark, :root[data-theme="nvr"] .wordmark .wm-sep { color: var(--nv-text-primary); }
:root[data-theme="nvr"] .topbar { background: var(--nv-bg); border-bottom: 1px solid var(--nv-border); }
:where(:root[data-theme="nvr"]) a { color: var(--nv-accent); }
:where(:root[data-theme="nvr"]) a:hover { color: #ff8a80; }
:root[data-theme="nvr"] .field input, :root[data-theme="nvr"] .field select, :root[data-theme="nvr"] .field textarea, :root[data-theme="nvr"] input, :root[data-theme="nvr"] select, :root[data-theme="nvr"] textarea { background: #0d0404; border: 1px solid var(--nv-border); color: var(--nv-text-primary); color-scheme: dark; }
:root[data-theme="nvr"] .field input:focus-visible, :root[data-theme="nvr"] .field select:focus-visible, :root[data-theme="nvr"] .field textarea:focus-visible, :root[data-theme="nvr"] :focus-visible { outline: 1px solid var(--nv-accent); outline-offset: 1px; }
/* actions and alerts: the accent is the only bright value on the screen */
:root[data-theme="nvr"] .btn-accent, :root[data-theme="nvr"] .hero-cta-primary, :root[data-theme="nvr"] .auth-form button[type="submit"], :root[data-theme="nvr"] .deploy-accept { background: var(--nv-accent); color: #090303; border: 1px solid var(--nv-accent); }
:root[data-theme="nvr"] .btn-unfeature, :root[data-theme="nvr"] .hero-cta-secondary, :root[data-theme="nvr"] .btn { background: transparent; color: var(--nv-accent); border: 1px solid var(--nv-accent); }
:root[data-theme="nvr"] .checkpoint-status-verified, :root[data-theme="nvr"] .registry-status-verified, :root[data-theme="nvr"] .seat-tag.is-ok, :root[data-theme="nvr"] .is-ok { color: var(--nv-status-ok); border-color: var(--nv-status-ok); background: transparent; }
:root[data-theme="nvr"] .checkpoint-status-pending, :root[data-theme="nvr"] .seat-tag.is-wait, :root[data-theme="nvr"] .checkpoint-status-rejected, :root[data-theme="nvr"] .auth-message.is-error, :root[data-theme="nvr"] .badge-alert { color: var(--nv-status-alert); border-color: var(--nv-status-alert); background: transparent; }
:root[data-theme="nvr"] .job-cert-tag, :root[data-theme="nvr"] .featured-tag, :root[data-theme="nvr"] .cc-pos-tag, :root[data-theme="nvr"] .supply-code, :root[data-theme="nvr"] .seat-tag { background: transparent; color: var(--nv-text-primary); border: 1px solid var(--nv-border); }
/* the live board band and footer go to the same canvas — no second palette on the page */
:root[data-theme="nvr"] .fd-board { --b-bg: #090303; --b-panel: #140808; --b-line: #2e1010; --b-ink: #d44a42; --b-soft: #822b27; --b-moss: #a8423b; --b-accent: #ff5c52; --b-amber: #ff5c52; }
:root[data-theme="nvr"] footer { background: var(--footer-bg); border-top: 1px solid var(--nv-border); background-image: none; }
:root[data-theme="nvr"] .sk, :root[data-theme="nvr"] .fd-tile-sk .sk, :root[data-theme="nvr"] .fd-feed-sk .sk, :root[data-theme="nvr"] .fd-stats .sk-num { background: var(--nv-border); }
/* raster media, maps and third-party SVG red-shifted; our own monochrome icon sprites just take the text colour */
:root[data-theme="nvr"] img, :root[data-theme="nvr"] iframe, :root[data-theme="nvr"] video, :root[data-theme="nvr"] canvas, :root[data-theme="nvr"] .leaflet-container, :root[data-theme="nvr"] .map-tiles { filter: brightness(0.7) sepia(1) hue-rotate(-50deg) saturate(3); }
:root[data-theme="nvr"] svg.ni, :root[data-theme="nvr"] .track-icon { color: var(--nv-text-primary); filter: none; }
:root[data-theme="nvr"] ::selection { background: #3a1210; color: var(--nv-accent); }
:root[data-theme="nvr"] ::-webkit-scrollbar { width: 10px; } :root[data-theme="nvr"] ::-webkit-scrollbar-thumb { background: var(--nv-border); } :root[data-theme="nvr"] ::-webkit-scrollbar-track { background: var(--nv-bg); }
/* the one-tap header toggle (js/theme.js mounts it in every topbar) */
.nv-quick { display: inline-flex; align-items: center; gap: .35rem; margin-left: auto; margin-right: .6rem; padding: .3rem .55rem; border: 1px solid var(--line); border-radius: 3px; background: transparent; color: var(--ink-soft); font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; cursor: pointer; }
.nv-quick-dot { width: 8px; height: 8px; border-radius: 50%; background: #d44a42; display: inline-block; }
.nv-quick[aria-pressed="true"] { border-color: var(--nv-accent, #ff5c52); color: var(--nv-accent, #ff5c52); }
.nv-quick[aria-pressed="true"] .nv-quick-dot { background: var(--nv-accent, #ff5c52); }
.theme-nvr-dot { width: 8px; height: 8px; border-radius: 50%; background: #d44a42; display: inline-block; margin-right: .3rem; }
@media (max-width: 720px) { .nv-quick-txt { display: none; } .nv-quick { padding: .45rem; } }

/* Tier 89 — readiness badges on the public callsign / registry card */
.registry-readiness { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.registry-ready { font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; padding: .32rem .5rem; border: 1px solid var(--moss); color: var(--moss); border-radius: 3px; }
.registry-ready::before { content: "✓ "; }
.registry-ready-positions { text-transform: none; letter-spacing: .03em; }
.registry-ready-expedition, .registry-ready-compact { border-color: var(--accent); color: var(--accent); }
.cc-ics-tag { font-family: "JetBrains Mono", monospace; font-size: .7rem; letter-spacing: .03em; }
:root[data-theme="nvr"] .beta-trigger, :root[data-theme="nvr"] .beta-dialog, :root[data-theme="nvr"] .mc-modebar, :root[data-theme="nvr"] .ww-toast, :root[data-theme="nvr"] .fd-help-pop, :root[data-theme="nvr"] dialog { background: var(--nv-surface); color: var(--nv-text-primary); border: 1px solid var(--nv-border); }
:root[data-theme="nvr"] .beta-badge { background: transparent; color: var(--nv-accent); border: 1px solid var(--nv-accent); }
:root[data-theme="nvr"] .hero-cta-primary, :root[data-theme="nvr"] .btn-accent { color: #090303; }
.nv-quick + .nav-toggle { margin-left: 0; }
@media (max-width: 720px) { .nv-quick { position: fixed; left: 14px; bottom: 14px; z-index: 45; margin: 0; padding: .55rem; background: var(--surface); border-radius: 50%; width: 2.4rem; height: 2.4rem; justify-content: center; } body.has-mc-modebar .nv-quick { bottom: calc(72px + env(safe-area-inset-bottom, 0px)); } }

/* Tier 90 — incident support mode */
.deploy-incident { margin-top: .8rem; }
.deploy-ics { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .5rem .9rem; margin: .4rem 0 .6rem; }
.deploy-ics div { margin: 0; } .deploy-ics dt { font: 700 .6rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: .25rem; } .deploy-ics dd { margin: 0; font-weight: 600; }
.deploy-report-addr { padding: .6rem .8rem; border: 1px solid var(--moss); border-left-width: 4px; margin: .4rem 0 0; }
.deploy-report-locked { padding: .6rem .8rem; border: 1px dashed var(--line); margin: .4rem 0 0; color: var(--ink-soft); }
.cc-incident { border: 1px dashed var(--line); padding: .8rem 1rem; margin-top: .6rem; }
.cc-incident summary { cursor: pointer; font: 700 .72rem/1.3 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.cc-incident .field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem 1rem; margin-top: .6rem; }
.ar-approve-form { display: inline-flex; flex-wrap: wrap; gap: .4rem; margin-top: .4rem; } .ar-approve-form input { font-size: .8rem; padding: .3rem .5rem; }
.iap-form { display: grid; gap: .35rem; margin-top: .5rem; max-width: 720px; } .iap-form textarea, .iap-form input { font-size: .8rem; padding: .35rem .5rem; } .ics-forms a { margin-right: .1rem; }

/* Tier 92 — fifth door + vector silhouette */
.fd-door-sil-svg { color: currentColor; opacity: .55; width: 62%; max-width: 230px; }
.fd-door:hover .fd-door-sil-svg { opacity: .75; }
@media (min-width: 900px) { .fd-doors { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.fd-door-expedition { border-top-color: #3E6B8A; } .fd-door-sil-svg { opacity: .9; } .fd-door:hover .fd-door-sil-svg { opacity: 1; }

/* Tier 93 — Operator Gear Exchange */
.gear-exchange { margin: 2rem 0; padding: 1.4rem 1.2rem; border: 1px solid var(--line); background: var(--surface); }
.gear-head .lede { max-width: 70ch; }
.gear-tabs { margin: .8rem 0; }
.gear-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 1rem; } .gear-filters select, .gear-filters input { padding: .45rem .6rem; border: 1px solid var(--line); background: var(--bg); color: var(--ink); }
.gear-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.gear-card { border: 1px solid var(--line); background: var(--bg); display: flex; flex-direction: column; }
.gear-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--surface-alt); }
.gear-card .gear-body { padding: .7rem .8rem .9rem; display: flex; flex-direction: column; gap: .3rem; flex: 1; }
.gear-card h3 { font-size: 1rem; margin: 0; }
.gear-price { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 1.5rem; }
.gear-meta { font-family: "JetBrains Mono", monospace; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-soft); }
.gear-tag { display: inline-block; font: 600 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .05em; padding: .25rem .4rem; border: 1px solid var(--line); margin: .1rem .2rem 0 0; }
.gear-card .deploy-actions { margin-top: auto; padding-top: .5rem; }
.gear-wtb { border-left: 4px solid var(--accent); }
.gear-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .5rem 1rem; }
.gear-dialog { border: 1px solid var(--line); background: var(--surface); color: var(--ink); max-width: 480px; width: calc(100% - 2rem); padding: 1.2rem; } .gear-dialog::backdrop { background: rgba(0,0,0,.55); }
.gear-mine h3 { margin: 1rem 0 .4rem; font-size: .95rem; }
.gear-mine table td, .gear-mine table th { font-size: .82rem; }
.gear-gate-off { border-left: 4px solid var(--accent); padding: .5rem .8rem; background: var(--surface-alt); }

/* Tier 95 — escrow watchdog, hold-to-confirm, vault */
.gear-escrow { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; padding: .5rem .6rem; background: var(--surface-alt); border-left: 3px solid var(--line); }
.gear-escrow .gear-chips { display: block; } .gear-escrow .gear-confirm, .gear-escrow .gear-ship-form, .gear-escrow .gear-dispute, .gear-escrow .gear-dispute-form { align-self: stretch; }
.gear-escrow-row td { padding: 0 0 .6rem !important; }
.gear-chip { display: inline-block; font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; padding: .3rem .45rem; border: 1px solid var(--line); margin-right: .3rem; }
.gear-chip.is-green { border-color: var(--moss); color: var(--moss); } .gear-chip.is-mayday { border-color: #ff2a2a; color: #ff2a2a; } .gear-chip.is-hold { border-color: var(--accent); color: var(--accent); }
.gear-ship-form, .gear-serial-form { display: flex; gap: .4rem; flex-wrap: wrap; } .gear-ship-form input, .gear-serial-form input { flex: 1 1 200px; }
.gear-confirm { display: flex; flex-direction: column; gap: .4rem; }
.gear-hold { position: relative; overflow: hidden; width: 100%; padding: .9rem 1rem; background: var(--bg); color: var(--moss); border: 2px solid var(--moss); font: 700 .8rem/1.2 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; user-select: none; -webkit-user-select: none; touch-action: none; }
.gear-hold-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--moss); opacity: .35; pointer-events: none; transition: none; }
.gear-hold-label { position: relative; } .gear-hold:disabled { opacity: .6; cursor: default; }
.gear-dispute-form { display: grid; gap: .4rem; margin-top: .4rem; }
.gear-serial summary { cursor: pointer; margin: .4rem 0; }
.gear-dispute-resolve { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
:root[data-theme="nvr"] .gear-hold { color: var(--ink); border-color: var(--accent); } :root[data-theme="nvr"] .gear-hold-fill { background: var(--accent); }
:root[data-theme="nvr"] .gear-chip.is-green { border-color: var(--ink); color: var(--ink); }

/* Tier 101 — compact tabbed navigation: brand · Home · three group tabs · auth on one row; the open group's links wrap into a slim second row */
.topbar.topbar-tabs { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .15rem .9rem; padding-block: .55rem .2rem; }
.topbar-tabs .topbar-right, .topbar-tabs .topnav-tabs, .topnav-tabs .nav-group { display: contents; }
.topbar-tabs .auth-widget { margin-left: auto; flex-wrap: wrap; justify-content: flex-end; white-space: normal; max-width: 34ch; gap: .2rem .45rem; font-size: .62rem; line-height: 1.5; order: 3; }
.topbar-tabs .nv-quick, .topbar-tabs .theme-quick { order: 4; }
.topnav-tabs .nav-home, .topnav-tabs .nav-tab { order: 2; display: inline-flex; align-items: center; gap: .4rem; min-height: 2.1rem; padding: .3rem .65rem; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--ink-soft); font-family: "JetBrains Mono", monospace; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; white-space: nowrap; text-decoration: none; }
.topnav-tabs .nav-home { margin-left: .6rem; }
.topnav-tabs .nav-home:hover, .topnav-tabs .nav-tab:hover { color: var(--accent-strong); } .topnav-tabs .nav-home:hover .ni, .topnav-tabs .nav-tab:hover .ni { color: var(--accent-strong); }
.topnav-tabs .nav-home.current, .topnav-tabs .nav-group.is-current .nav-tab, .topnav-tabs .nav-group.is-open .nav-tab { color: var(--accent-strong); border-bottom-color: var(--accent); }
.topnav-tabs .nav-group.is-current .nav-tab .ni, .topnav-tabs .nav-home.current .ni { color: var(--accent); }
.topnav-tabs .nav-tab::after { content: ""; width: .32rem; height: .32rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: .55; }
.topnav-tabs .nav-tab[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(1px); }
.topnav-tabs .nav-sub { order: 10; flex-basis: 100%; display: flex; flex-wrap: wrap; gap: .1rem 1.1rem; padding: .25rem 0 .1rem; margin-top: .3rem; border-top: 1px solid var(--line); font-family: "JetBrains Mono", monospace; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.topnav-tabs .nav-sub[hidden] { display: none; }
.topnav-tabs .nav-sub a { color: var(--ink-soft); text-decoration: none; min-height: 1.8rem; display: inline-flex; align-items: center; padding: 0 .1rem; border-bottom: 2px solid transparent; }
.topnav-tabs .nav-sub a:hover { color: var(--accent-strong); } .topnav-tabs .nav-sub a.current { color: var(--accent-strong); border-bottom-color: var(--accent); }
.topbar-tabs .beta-badge { position: static; margin-left: 0; order: 1; }
.topbar-tabs .nav-toggle { order: 3; margin-left: auto; }
@media (max-width: 1060px) { .topnav-tabs .nav-home, .topnav-tabs .nav-tab { font-size: .66rem; padding: .3rem .45rem; } .topbar-tabs .auth-widget { font-size: .64rem; } }
@media (max-width: 860px) {
  .topbar.topbar-tabs { padding-block: .8rem; }
  .topbar-tabs .topbar-right { display: none; flex-direction: column; flex-basis: 100%; width: 100%; margin-top: .7rem; border-top: 1px solid var(--line); padding-top: .3rem; order: 20; }
  .topbar.topbar-tabs.nav-open .topbar-right { display: flex; }
  .topbar-tabs .topnav-tabs { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .topnav-tabs .nav-group { display: block; border-bottom: 1px solid var(--line); }
  .topnav-tabs .nav-home { margin: 0; border-bottom: 1px solid var(--line); min-height: 2.6rem; padding: .4rem .3rem; font-size: .8rem; }
  .topnav-tabs .nav-home, .topnav-tabs .nav-tab { order: 0; }
  .topnav-tabs .nav-tab { width: 100%; min-height: 2.6rem; padding: .4rem .3rem; border-bottom: 0; font-size: .8rem; } .topnav-tabs .nav-tab span { flex: 1; text-align: left; }
  .topnav-tabs .nav-sub a, .topnav-tabs .nav-sub a.current { background: none; border-radius: 0; }
  .topnav-tabs .nav-tab::after { transform: rotate(45deg); } .topnav-tabs .nav-tab[aria-expanded="true"]::after { transform: rotate(-135deg); }
  .topnav-tabs .nav-sub { border-top: 0; margin: 0; padding: 0 0 .5rem 1.9rem; flex-direction: column; gap: 0; font-size: .78rem; flex-basis: auto; }
  .topnav-tabs .nav-sub a { min-height: 2.2rem; }
  .topbar-tabs .auth-widget { margin: 0; padding: .6rem .3rem .2rem; white-space: normal; flex-wrap: wrap; font-size: .72rem; }
}
:root[data-theme="nvr"] .topnav-tabs .nav-group.is-current .nav-tab, :root[data-theme="nvr"] .topnav-tabs .nav-sub a.current { color: var(--ink); }

/* Tier 101 — tactical GIS personnel view (preview) */
.gis-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1rem; align-items: start; } @media (max-width: 980px) { .gis-wrap { grid-template-columns: 1fr; } }
.gis-toolbar { display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center; font: 600 .66rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: .5rem; } .gis-toolbar label { display: inline-flex; gap: .3rem; align-items: center; } .gis-spacer { flex: 1; } .gis-toolbar select { font: inherit; padding: .3rem .4rem; border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
#gis-map { width: 100%; height: auto; display: block; background: var(--surface); }
.gis-scale { position: absolute; left: .6rem; bottom: .5rem; font: 600 .6rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; color: var(--ink-soft); display: flex; gap: .4rem; align-items: center; background: color-mix(in srgb, var(--surface) 80%, transparent); padding: .25rem .4rem; } .gis-scale span { width: 48px; height: 4px; border: 1px solid var(--ink-soft); border-top: 0; }
.gis-contour { fill: none; stroke: var(--line); stroke-width: .8; opacity: .8; } .gis-contour.is-index { stroke-width: 1.4; opacity: 1; }
.gis-river { fill: none; stroke: #6f8fa8; stroke-width: 7; opacity: .45; } .gis-bluff { fill: var(--line); opacity: .35; } .gis-road { fill: var(--ink-soft); opacity: .35; }
.gis-tlabel, .gis-slabel, .gis-hlabel { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .08em; fill: var(--ink-soft); text-transform: uppercase; } .gis-slabel { font-size: 11px; fill: var(--moss); font-weight: 700; } .gis-hlabel { fill: var(--accent-strong); font-weight: 700; }
.gis-sector { stroke: var(--moss); stroke-width: 1.2; stroke-dasharray: 6 4; }
.gis-hatch { stroke: var(--accent); stroke-width: 1.2; } .gis-hot { fill: url(#hot-hatch); stroke: var(--accent); stroke-width: 2; opacity: .8; } .gis-util { fill: #fff; stroke: #b3261e; stroke-width: 3; stroke-dasharray: 4 3; }
.gis-hlz { fill: none; stroke: #2e6fb5; stroke-width: 2; } .gis-hlz-h { font: 800 26px "Big Shoulders Display", sans-serif; fill: #2e6fb5; } .gis-corridor { fill: none; stroke: #2e6fb5; stroke-width: 1; stroke-dasharray: 2 6; opacity: .7; }
.gis-icp-box { fill: var(--ink); } .gis-icp-t { font: 800 10px "JetBrains Mono", monospace; fill: var(--bg); } .gis-stage-box { fill: none; stroke: var(--ink); stroke-width: 1.2; stroke-dasharray: 3 3; }
.gis-track { fill: none; stroke: var(--ink-soft); stroke-width: 1.2; stroke-dasharray: 2 3; }
.gis-pin { cursor: pointer; } .gis-pin .gis-dot { stroke: var(--surface); stroke-width: 2; } .gis-pin.is-green .gis-dot { fill: var(--moss); } .gis-pin.is-noanswer .gis-dot { fill: #6e5f1e; } .gis-pin.is-mayday .gis-dot { fill: #b3261e; }
.gis-pos { font: 800 7px "JetBrains Mono", monospace; fill: #fff; pointer-events: none; } .gis-cs { font: 700 10px "JetBrains Mono", monospace; letter-spacing: .06em; fill: var(--ink); paint-order: stroke; stroke: var(--surface); stroke-width: 3px; }
.gis-pin.is-sel .gis-dot { stroke: var(--accent); stroke-width: 3; } .gis-ring { fill: none; stroke: #b3261e; stroke-width: 2; animation: gis-pulse 1.2s ease-out infinite; } @keyframes gis-pulse { from { r: 14; opacity: .9; } to { r: 30; opacity: 0; } }
.gis-pin:focus-visible .gis-dot { stroke: var(--accent); stroke-width: 3; }
.gis-popover { position: absolute; max-width: 250px; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--accent); padding: .5rem .7rem; font-size: .8rem; box-shadow: 0 6px 18px rgba(0,0,0,.12); pointer-events: none; }
.gis-side { display: flex; flex-direction: column; gap: .8rem; } .gis-par { border: 1px solid var(--line); background: var(--surface); padding: .7rem .8rem; } .gis-par h3 { font-size: 1rem; margin: 0 0 .4rem; }
.gis-par-counts { display: flex; gap: .8rem; font: 700 .7rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; } .gis-par-counts b { font-size: 1.4rem; display: block; } .gis-par-counts .is-green { color: var(--moss); } .gis-par-counts .is-none { color: #6e5f1e; } .gis-par-counts .is-mayday { color: #b3261e; }
.gis-roster table td, .gis-roster table th { font-size: .76rem; padding: .3rem .35rem; } .gis-row { cursor: pointer; } .gis-row.is-sel td { background: var(--surface-alt); } .gis-row.is-mayday td:first-child { color: #b3261e; }
.gis-chip { font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; padding: .2rem .35rem; border: 1px solid var(--line); } .gis-row.is-green .gis-chip, .gis-chip.is-green { border-color: var(--moss); color: var(--moss); } .gis-row.is-mayday .gis-chip, .gis-chip.is-mayday { border-color: #b3261e; color: #b3261e; } .gis-row.is-noanswer .gis-chip, .gis-chip.is-noanswer { border-color: #6e5f1e; color: #6e5f1e; }
.gis-legend { border: 1px solid var(--line); background: var(--surface); padding: .6rem .8rem; font-size: .78rem; } .gis-legend h4 { margin: 0 0 .3rem; font-size: .9rem; } .gis-legend ul { list-style: none; margin: 0; padding: 0; } .gis-legend li { display: flex; gap: .5rem; align-items: center; margin: .2rem 0; }
.lg { width: 14px; height: 14px; display: inline-block; border-radius: 50%; flex: none; } .lg-green { background: var(--moss); } .lg-none { background: #6e5f1e; } .lg-mayday { background: #b3261e; } .lg-hot { border-radius: 0; background: repeating-linear-gradient(45deg, var(--accent) 0 2px, transparent 2px 6px); border: 1px solid var(--accent); } .lg-util { background: #fff; border: 2px dashed #b3261e; } .lg-hlz { background: none; border: 2px solid #2e6fb5; } .lg-icp { border-radius: 0; background: var(--ink); }
:root[data-theme="nvr"] .gis-river, :root[data-theme="nvr"] .gis-hlz, :root[data-theme="nvr"] .gis-corridor, :root[data-theme="nvr"] .lg-hlz { stroke: var(--ink-soft); border-color: var(--ink-soft); } :root[data-theme="nvr"] .gis-hlz-h { fill: var(--ink-soft); }
:root[data-theme="nvr"] .gis-pin.is-green .gis-dot, :root[data-theme="nvr"] .lg-green { fill: var(--ink-soft); background: var(--ink-soft); } :root[data-theme="nvr"] .gis-pin.is-noanswer .gis-dot, :root[data-theme="nvr"] .lg-none { fill: #5a2a24; background: #5a2a24; } :root[data-theme="nvr"] .gis-pos { fill: var(--bg); } :root[data-theme="nvr"] .gis-util, :root[data-theme="nvr"] .lg-util { fill: var(--bg); background: var(--bg); }

/* Tier 99 — instant licence claim wizard */
.claim-steps { list-style: none; padding: 0; margin: 1rem 0; counter-reset: step; } .claim-step { border: 1px solid var(--line); background: var(--surface); padding: 1rem 1.1rem; margin: .8rem 0; }
.claim-step h2 { font-size: 1.1rem; margin: 0 0 .5rem; } .claim-result { border-left: 3px solid var(--moss); padding: .5rem .8rem; margin-top: .6rem; background: var(--surface-alt); }
.claim .checkbox-list-option { display: flex; gap: .5rem; align-items: flex-start; font-size: .82rem; margin: .5rem 0; }

/* Tier 98 — employer doors + hand-raiser widgets */
.employers .page-hero .req-pills { margin: .8rem 0; } .door-tabs { margin: .6rem 0 1rem; flex-wrap: wrap; } .door-tabs .market-tab { text-decoration: none; }
.employer-pains ul { columns: 2; gap: 1.5rem; font-size: .9rem; } @media (max-width: 640px) { .employer-pains ul { columns: 1; } }
.employer-widget { border: 1px solid var(--line); background: var(--surface); padding: 1rem 1.1rem; margin: 1.2rem 0; }
.roi-form .field input { font-family: "JetBrains Mono", monospace; } .roi-funnel { margin: .6rem 0; }
.roi-compare { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: .6rem 0; } @media (max-width: 640px) { .roi-compare { grid-template-columns: 1fr; } }
.roi-box { border: 1px solid var(--line); padding: .8rem; display: flex; flex-direction: column; gap: .25rem; background: var(--bg); } .roi-box.is-rfd { border-color: var(--moss); }
.roi-num { font-family: "Big Shoulders Display", sans-serif; font-weight: 800; font-size: 2rem; line-height: 1; } .roi-big { font-size: 2.6rem; color: var(--moss); }
.roi-savings { border: 1px solid var(--moss); padding: .8rem; display: flex; flex-direction: column; gap: .25rem; margin: .6rem 0; background: var(--surface-alt); }
.hand-raiser { margin-top: 1rem; padding: .9rem 1rem; border: 1px solid var(--line); background: var(--surface-alt); } .hand-raiser h3 { margin: 0 0 .3rem; font-size: 1.1rem; }
:root[data-theme="nvr"] .roi-big, :root[data-theme="nvr"] .roi-box.is-rfd { color: var(--ink); border-color: var(--accent); }

/* Tier 97 — Verified Requisition Board */
.req-pills { display: flex; flex-wrap: wrap; gap: .3rem; margin: .5rem 0 0; } .req-pills .pill, .req-fee { display: inline-block; font: 700 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; padding: .3rem .5rem; border: 1px solid var(--line); }
.req-fee { border-color: var(--moss); color: var(--moss); align-self: flex-start; }
.req-tabs { margin: .8rem 0; } .req-grid { margin-top: .6rem; }
.req-card.is-locked { opacity: .92; } .req-card h3 { font-size: 1.05rem; }
.req-reqs { display: flex; flex-wrap: wrap; gap: .25rem; } .gear-tag.req-ok { border-color: var(--moss); color: var(--moss); } .gear-tag.req-miss { border-color: #b3261e; color: #b3261e; }
.req-hold { position: relative; overflow: hidden; width: 100%; padding: .9rem 1rem; background: var(--bg); color: var(--moss); border: 2px solid var(--moss); font: 700 .78rem/1.2 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; user-select: none; -webkit-user-select: none; touch-action: none; }
.req-hold.is-locked { color: var(--ink-soft); border-color: var(--line); cursor: not-allowed; background: var(--surface-alt); }
.req-hold .gear-hold-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--moss); opacity: .35; pointer-events: none; } .req-hold .gear-hold-label { position: relative; }
.req-lock-why { font-size: .78rem; color: var(--ink-soft); margin: .3rem 0 0; } .req-state { font-size: .82rem; margin: .3rem 0 0; } .req-actions { flex-direction: column; align-items: stretch; }
.req-qr { display: flex; gap: .8rem; align-items: flex-start; flex-wrap: wrap; } .req-qr svg { width: 148px; height: 148px; border: 1px solid var(--line); background: #fff; }
.req-sched input[type="datetime-local"] { min-width: 200px; } .req-emp-item { border-left: 3px solid var(--moss); }
:root[data-theme="nvr"] .req-hold, :root[data-theme="nvr"] .req-fee, :root[data-theme="nvr"] .gear-tag.req-ok { color: var(--ink); border-color: var(--accent); } :root[data-theme="nvr"] .req-hold .gear-hold-fill { background: var(--accent); }
:root[data-theme="nvr"] .req-qr svg { filter: invert(1) hue-rotate(180deg) sepia(1) saturate(3); }

/* Tier 96 — 72-h lease + compliance pillars on the mission console */
.mc-lease { border: 1px solid var(--line); border-left: 3px solid var(--moss); padding: .5rem .7rem; margin: .5rem 0; display: flex; flex-direction: column; gap: .3rem; }
.mc-lease.is-expiring { border-left-color: var(--accent); } .mc-lease.is-expired, .mc-lease.is-standby { border-left-color: var(--line); }
.mc-lease-line { margin: 0; font-size: .82rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; } .mc-lease-bad { color: #b3261e; }
.mc-pillars summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; } .mc-pillars .mc-chip.na { opacity: .6; }
.mc-consent { display: grid; gap: .4rem; font-size: .8rem; margin: .4rem 0; } .mc-consent label { display: flex; gap: .4rem; align-items: flex-start; }
.mc-checks { margin: .3rem 0 0; padding-left: 1rem; font-size: .76rem; } .mc-checks li { margin: .15rem 0; }
:root[data-theme="nvr"] .mc-lease-bad { color: var(--ink); }
/* Tier 102 — fatigue & tour counter beside the lease */
.mc-fatigue { border-top: 1px dashed var(--line); padding-top: .35rem; display: flex; flex-direction: column; gap: .25rem; }
.mc-fatigue.is-warn .mc-fat-label { color: var(--accent); } .mc-fatigue.is-over .mc-fat-label, .mc-fatigue.is-lock .mc-fat-label { color: #b3261e; }
.mc-fat-bars { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.mc-fat-bar { position: relative; display: block; height: 1.3rem; background: var(--surface-2, rgba(0,0,0,.05)); border: 1px solid var(--line); overflow: hidden; }
.mc-fat-bar i { position: absolute; inset: 0 auto 0 0; background: var(--moss); opacity: .35; }
.mc-fatigue.is-warn .mc-fat-bar i { background: var(--accent); } .mc-fatigue.is-over .mc-fat-bar i, .mc-fatigue.is-lock .mc-fat-bar i { background: #b3261e; }
.mc-fat-bar small { position: absolute; inset: 0; display: block; font-family: var(--mono); font-size: .62rem; line-height: 1.3rem; padding: 0 .35rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:root[data-theme="nvr"] .mc-fat-label, :root[data-theme="nvr"] .mc-fat-bar i { color: var(--ink); background: var(--ink); }
/* seat board / roster chips */
.seat-fat { display: inline-block; font-family: var(--mono); font-size: .66rem; padding: .05rem .35rem; border: 1px solid var(--line); margin-left: .3rem; white-space: nowrap; }
.seat-fat.is-ON_SHIFT { border-color: var(--moss); } .seat-fat.is-WARN { border-color: var(--accent); color: var(--accent); } .seat-fat.is-OVER, .seat-fat.is-LOCKOUT { border-color: #b3261e; color: #b3261e; }
.seat-clock-btn { font-size: .66rem; padding: .05rem .4rem; margin-left: .25rem; }
/* deploy.html clinical governance + CS vault */
.deploy-clinical dl, .cmd-clinical dl { display: grid; grid-template-columns: max-content 1fr; gap: .2rem .8rem; margin: .4rem 0; font-size: .85rem; } .deploy-clinical dt, .cmd-clinical dt { color: var(--muted); }
.cs-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .4rem; margin-top: .5rem; } .cs-form .wide { grid-column: 1 / -1; }
.cs-form input, .cs-form select { width: 100%; } .cs-row { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; font-size: .82rem; padding: .3rem 0; border-top: 1px dashed var(--line); }
.cs-row .cs-st { font-family: var(--mono); font-size: .66rem; padding: .05rem .35rem; border: 1px solid var(--line); } .cs-row .is-SIGNED { border-color: var(--moss); } .cs-row .is-PENDING_WITNESS { border-color: var(--accent); color: var(--accent); } .cs-row .is-VOID { text-decoration: line-through; opacity: .6; }
.cs-witness { border: 1px solid var(--accent); padding: .5rem .7rem; margin: .4rem 0; }

.kyb-card form { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .5rem .8rem; } .kyb-card form .full { grid-column: 1 / -1; }
.kyb-status { display: inline-block; font: 700 .66rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; padding: .3rem .5rem; border: 1px solid var(--line); text-transform: uppercase; }
.kyb-status.is-verified { border-color: var(--moss); color: var(--moss); } .kyb-status.is-pending { border-color: var(--accent); color: var(--accent); } .kyb-status.is-rejected { border-color: #b3261e; color: #b3261e; }

/* Tier 94 — ALL STOP / PAR siren on the operator console */
.mc-siren { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(10, 6, 4, .92); }
.mc-siren-card { max-width: 560px; width: 100%; background: var(--surface); color: var(--ink); border: 3px solid var(--accent); padding: 1.2rem 1.3rem; text-align: center; }
.mc-siren-card.is-stop { border-color: #ff2a2a; }
.mc-siren-card h2 { font-family: "Big Shoulders Display", sans-serif; font-weight: 900; font-size: clamp(1.8rem, 6vw, 2.8rem); line-height: 1; margin: .3rem 0; color: #ff2a2a; }
.mc-siren-card .mc-siren-reason { font-weight: 600; }
.mc-siren-clock { font-family: "JetBrains Mono", monospace; font-size: 1.4rem; font-weight: 700; margin: .4rem 0; }
.mc-siren-actions { display: grid; gap: .6rem; margin-top: .8rem; } .mc-siren-actions button { font-size: 1.05rem; padding: .9rem 1rem; }
.mc-par-mayday { background: #8a1c14; color: #fff; }
html.mc-allstop body { animation: mc-strobe 1s steps(2, end) infinite; }
@keyframes mc-strobe { 0% { box-shadow: inset 0 0 0 14px rgba(255, 42, 42, .9); } 50% { box-shadow: inset 0 0 0 0 rgba(255, 42, 42, 0); } 100% { box-shadow: inset 0 0 0 14px rgba(255, 42, 42, .9); } }
@media (prefers-reduced-motion: reduce) { html.mc-allstop body { animation: none; box-shadow: inset 0 0 0 14px rgba(255, 42, 42, .9); } }
/* command console (contractor roster panel) */
.cmd-console { border: 1px solid var(--line); background: var(--surface-alt); padding: .9rem 1rem; margin-top: .8rem; }
.cmd-console h4 { margin: 0 0 .4rem; font: 700 .72rem/1.3 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.cmd-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .8rem; }
.cmd-block { border: 1px solid var(--line); background: var(--surface); padding: .6rem .7rem; }
.cmd-block form { display: grid; gap: .3rem; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); align-items: end; margin-top: .4rem; } .cmd-block form input, .cmd-block form select { font-size: .8rem; padding: .3rem .4rem; min-width: 0; } .cmd-block form button { grid-column: 1 / -1; }
.cmd-stop { background: #8a1c14; color: #fff; border-color: #8a1c14; font-weight: 800; letter-spacing: .08em; }
.cmd-par-row { display: flex; justify-content: space-between; gap: .5rem; padding: .25rem 0; border-bottom: 1px dashed var(--line); font-size: .82rem; }
.cmd-par-row .is-green { color: var(--moss); font-weight: 700; } .cmd-par-row .is-mayday { color: #ff2a2a; font-weight: 800; } .cmd-par-row .is-none { color: var(--ink-soft); }
.cmd-big { font-family: "Big Shoulders Display", sans-serif; font-size: 2rem; font-weight: 900; line-height: 1; }
.cmd-ledger { max-height: 240px; overflow: auto; font-size: .78rem; } .cmd-ledger div { padding: .2rem 0; border-bottom: 1px dashed var(--line); }
.cmd-air-status { display: inline-block; padding: .2rem .5rem; border: 1px solid var(--line); font: 700 .66rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; } .cmd-air-status.is-locked { background: #ff2a2a; color: #fff; border-color: #ff2a2a; }

/* Tier 103 — notification preferences drawer */
.notify-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(26rem, 100vw); background: var(--paper, var(--bg, #fff)); border-left: 1px solid var(--line); box-shadow: -12px 0 32px rgba(0,0,0,.18); z-index: 1200; overflow-y: auto; padding: 1rem 1.1rem 2rem; }
.notify-drawer[hidden] { display: none; }
.notify-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; } .notify-close { background: none; border: 1px solid var(--line); font-size: 1rem; line-height: 1; padding: .25rem .5rem; cursor: pointer; color: inherit; }
.notify-drawer fieldset { border: 1px solid var(--line); padding: .5rem .7rem; margin: 0 0 .7rem; display: flex; flex-direction: column; gap: .35rem; } .notify-drawer legend { font-family: var(--mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; padding: 0 .3rem; }
.notify-drawer label { display: grid; grid-template-columns: auto auto 1fr; gap: .2rem .45rem; align-items: baseline; font-size: .88rem; } .notify-drawer label b { white-space: nowrap; } .notify-drawer label .small-muted { font-size: .76rem; grid-column: 2 / -1; } .notify-cad label { grid-template-columns: auto 1fr; }

/* Tier 104 — Offline Sync pill in the topbar */
.offline-strip { position: sticky; top: 0; z-index: 90; display: flex; justify-content: flex-end; padding: .2rem clamp(1rem, 4vw, 2.5rem) 0; pointer-events: none; }
.offline-pill { pointer-events: auto; display: inline-flex; align-items: center; gap: .35rem; font-family: var(--mono); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; padding: .18rem .55rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--muted); background: var(--paper, var(--bg, #fff)); white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.offline-pill i { width: .5rem; height: .5rem; border-radius: 50%; background: var(--moss); flex: none; }
.offline-pill.is-offline { border-color: #b3261e; color: #b3261e; } .offline-pill.is-offline i { background: #b3261e; animation: offline-blink 1.2s steps(2) infinite; }
.offline-pill.is-pending { border-color: var(--accent); color: var(--accent); } .offline-pill.is-pending i { background: var(--accent); }
.offline-pill.is-syncing i { background: var(--accent); animation: offline-blink .5s steps(2) infinite; }
@keyframes offline-blink { to { opacity: .25; } }
.offline-details { position: fixed; left: 50%; top: 4.2rem; transform: translateX(-50%); width: min(34rem, calc(100vw - 2rem)); background: var(--paper, var(--bg, #fff)); border: 1px solid var(--line); box-shadow: 0 12px 32px rgba(0,0,0,.2); padding: .9rem 1.1rem; z-index: 1300; font-size: .88rem; } .offline-details[hidden] { display: none; } .offline-details ul { padding-left: 1.1rem; }
@media (max-width: 860px) { .offline-strip { justify-content: center; } .offline-pill { white-space: normal; text-align: center; line-height: 1.3; } }
:root[data-theme="nvr"] .offline-pill.is-offline, :root[data-theme="nvr"] .offline-pill.is-pending { color: var(--ink); border-color: var(--ink); } :root[data-theme="nvr"] .offline-pill i { background: var(--ink); }

/* Tier 105 — dual barcode scanner */
.dscan-stage { position: relative; border: 1px dashed var(--line); min-height: 3rem; margin: .5rem 0; }
#dscan-video { width: 100%; max-height: 60vh; display: block; background: #000; }
.dscan-chips { display: flex; gap: .4rem; padding: .4rem; flex-wrap: wrap; }
.dscan-file { cursor: pointer; }

/* Tier 106 — protocol depository + publisher */
.proto-ctx { display: flex; flex-wrap: wrap; gap: .6rem; align-items: end; margin: .6rem 0 1rem; font-size: .85rem; } .proto-ctx label { display: flex; flex-direction: column; gap: .2rem; }
.proto-light { font-family: var(--mono); font-size: .66rem; letter-spacing: .06em; padding: .08rem .4rem; border: 1px solid var(--line); } .proto-light.is-GREEN { color: var(--moss); border-color: var(--moss); } .proto-light.is-AMBER { color: var(--accent-strong); border-color: var(--accent); } .proto-light.is-LOCKED { color: var(--muted); text-decoration: line-through; }
.proto-item { border: 1px solid var(--line); border-left-width: 4px; padding: .4rem .7rem; margin: .4rem 0; } .proto-item.is-GREEN { border-left-color: var(--moss); } .proto-item.is-AMBER { border-left-color: var(--accent); } .proto-item.is-LOCKED { border-left-color: var(--line); opacity: .75; }
.proto-item summary { cursor: pointer; } .proto-body { font-size: .9rem; } .proto-body h4, .proto-body h5 { margin: .6rem 0 .2rem; } .proto-cat { margin: 1rem 0 .3rem; font-family: var(--mono); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.pp-matrix { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .4rem; } .pp-tier { display: flex; flex-direction: column; gap: .2rem; font-size: .82rem; }
.pp-hold { position: relative; overflow: hidden; } .pp-hold.is-holding::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 0; background: rgba(255,255,255,.35); animation: pp-fill 1s linear forwards; } @keyframes pp-fill { to { width: 100%; } }
:root[data-theme="nvr"] .proto-light.is-GREEN, :root[data-theme="nvr"] .proto-light.is-AMBER { color: var(--ink); border-color: var(--ink); }

/* Tier 107 — PFC flowsheet */
.pfc-clocks { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .5rem; margin: .6rem 0; }
.pfc-clock { border: 1px solid var(--line); padding: .5rem .7rem; display: flex; flex-direction: column; gap: .15rem; } .pfc-clock b { font-family: var(--display, inherit); font-size: 1.3rem; line-height: 1.1; } .pfc-clock small { font-size: .74rem; color: var(--muted); }
.pfc-clock.is-warn { border-color: #b3261e; animation: offline-blink 1s steps(2) infinite; } .pfc-clock.is-warn b { color: #b3261e; }
.pfc-vitals td, .pfc-vitals th { font-size: .78rem; padding: .15rem .35rem; white-space: nowrap; } .pfc-vitals tr.is-flag td { color: #b3261e; }
.pfc-form { margin: .5rem 0 .9rem; } .pfc-actions { flex-wrap: wrap; gap: .6rem; }
.mist-box { font-family: var(--mono); font-size: .78rem; background: var(--surface-2, rgba(0,0,0,.05)); border: 1px solid var(--line); padding: .4rem .6rem; word-break: break-all; display: block; }
:root[data-theme="nvr"] .pfc-clock.is-warn, :root[data-theme="nvr"] .pfc-clock.is-warn b, :root[data-theme="nvr"] .pfc-vitals tr.is-flag td { color: var(--ink); border-color: var(--ink); }

/* Tier 108 — muster + optical burst */
.mu-optical { width: min(100%, 420px); image-rendering: pixelated; display: block; margin: .5rem auto; border: 6px solid #fff; }
.mu-qr-pop { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(30rem, calc(100vw - 2rem)); max-height: 90vh; overflow: auto; background: var(--paper, var(--bg, #fff)); border: 1px solid var(--line); box-shadow: 0 16px 40px rgba(0,0,0,.3); padding: 1rem; z-index: 1400; text-align: center; } .mu-qr-pop canvas { max-width: 100%; height: auto; image-rendering: pixelated; }
.cmd-muster-one { border-top: 1px dashed var(--line); padding-top: .4rem; margin-top: .4rem; }

/* ---------- Tier 111 — TERRA-CORE tactical GIS (gis.html) ---------- */
.gis-main { max-width: 1400px; margin: 0 auto; padding: 1rem 1rem 2rem; }
.gis-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .75rem 1.5rem; margin-bottom: .75rem; }
.gis-top h1 { margin: 0 0 .25rem; font-size: 1.5rem; }
.gis-top-right { display: flex; gap: 1rem; flex-wrap: wrap; }
.gis-call-pick { font-size: .9rem; display: flex; gap: .4rem; align-items: center; }
.gis-call-pick select { max-width: 22rem; }
.gis-app { display: grid; grid-template-columns: 300px 1fr; gap: .75rem; }
.gis-side { font-size: .88rem; max-height: 78vh; overflow: auto; padding-right: .25rem; }
.gis-side details { border: 1px solid var(--line, #d8d2c4); border-radius: 8px; padding: .4rem .6rem; margin-bottom: .5rem; background: var(--panel, #fff); }
.gis-side summary { cursor: pointer; font-weight: 600; }
.gis-tools { display: flex; flex-wrap: wrap; gap: .3rem; margin: .4rem 0; }
.gis-tool { border: 1px solid #999; background: #f4f1ea; border-radius: 6px; padding: .3rem .55rem; font: inherit; font-size: .82rem; cursor: pointer; }
.gis-tool.is-on { background: #1f5f8b; color: #fff; border-color: #1f5f8b; }
.gis-tool-clear { margin-left: auto; }
.gis-row { display: flex; flex-wrap: wrap; gap: .4rem .8rem; align-items: center; margin: .4rem 0; }
.gis-row label { display: inline-flex; gap: .3rem; align-items: center; }
.gis-layers label { display: block; margin: .15rem 0; }
.gis-form label { display: block; margin: .3rem 0; }
.gis-form input:not([type=checkbox]), .gis-form select { width: 100%; box-sizing: border-box; font: inherit; padding: .3rem .4rem; }
.gis-list { list-style: none; margin: .3rem 0 0; padding: 0; }
.gis-list li { padding: .2rem 0; border-top: 1px dotted #ddd; }
.gis-list .link-btn { background: none; border: 0; padding: 0; color: #1f5f8b; cursor: pointer; font: inherit; text-align: left; }
.gis-dot { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; margin-right: .3rem; background: #1f5f8b; }
.gis-par-pill { font-size: .75rem; font-weight: 700; padding: 0 .3rem; border-radius: 4px; color: #fff; background: #5f6b6c; } /* Tier 203: was .gis-par — collided with the PAR board panel of the same name and painted it slate */
.gis-par-GREEN { background: #1e8449; } .gis-par-NO_ANSWER { background: #8a6d00; } .gis-par-MAYDAY, .gis-par-ZERO_MOTION { background: #c0392b; }
.gis-stage { position: relative; min-height: 78vh; border: 1px solid var(--line, #d8d2c4); border-radius: 8px; overflow: hidden; background: #e9e4d8; }
#gis-canvas { width: 100%; height: 78vh; display: block; touch-action: none; cursor: grab; }
.gis-readout { position: absolute; left: 0; right: 0; top: 0; background: rgba(255,255,255,.85); font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; padding: .25rem .6rem; pointer-events: none; }
.gis-status { position: absolute; left: .5rem; right: 3rem; bottom: 2.2rem; background: rgba(0,0,0,.65); color: #fff; font-size: .82rem; padding: .3rem .6rem; border-radius: 6px; pointer-events: none; }
.gis-status:empty { display: none; }
.gis-alert { position: absolute; left: 0; right: 0; top: 1.9rem; background: #c0392b; color: #fff; font-weight: 700; text-align: center; padding: .35rem .6rem; }
.gis-alert-airspace_lock { background: #6c3483; } .gis-alert-all_stop { background: #c0392b; animation: gis-blink 1s steps(2) infinite; }
@keyframes gis-blink { 50% { opacity: .55; } }
.gis-zoom { position: absolute; right: .5rem; top: 2.4rem; display: flex; flex-direction: column; gap: .25rem; }
.gis-zoom button { width: 2.2rem; height: 2.2rem; border-radius: 6px; border: 1px solid #666; background: #fff; font-size: 1.2rem; cursor: pointer; }
.gis-profile { margin-top: .5rem; border: 1px solid var(--line, #d8d2c4); border-radius: 8px; padding: .4rem; background: #fff; }
#gis-profile-canvas { width: 100%; display: block; }
.gis-foot { margin-top: .75rem; }
body.gis-nvr { background: #060b06; color: #9fd89f; }
body.gis-nvr .gis-side details, body.gis-nvr .gis-profile { background: #0d1a0d; border-color: #234; color: #9fd89f; }
body.gis-nvr .gis-readout { background: rgba(10,30,10,.9); color: #9fd89f; }
body.gis-nvr .gis-tool { background: #142814; color: #9fd89f; border-color: #2a4a2a; }
@media (max-width: 900px) { .gis-app { grid-template-columns: 1fr; } .gis-side { max-height: none; order: 2; } #gis-canvas, .gis-stage { height: 62vh; min-height: 62vh; } }
@media print { .gis-side, header, footer, .gis-zoom, .gis-top-right { display: none !important; } .gis-app { display: block; } }

/* ---------- Tier 112 — transfer of command ---------- */
.cmd-ic-badge { display: inline-block; background: #111; color: #fff; font-weight: 700; font-size: .72rem; padding: .05rem .4rem; border-radius: 4px; letter-spacing: .06em; }
.cmd-qual { font-size: .75rem; font-weight: 700; color: #1e8449; } .cmd-qual.is-off { color: #b7950b; }
.cmd-xfer-pending { border: 2px solid #b7950b; border-radius: 8px; padding: .5rem .7rem; margin: .4rem 0; background: rgba(183,149,11,.08); }
.cmd-xfer summary, .cmd-xfer-hist summary { cursor: pointer; font-weight: 600; }
.cmd-xfer-form label { display: block; margin: .3rem 0; } .cmd-xfer-form select, .cmd-xfer-form input { font: inherit; padding: .3rem .4rem; max-width: 100%; }
.cmd-xfer-form input { margin: .2rem .3rem .2rem 0; }
.cmd-stop.is-holding, .cmd-xfer-accept.is-holding, .cmd-xfer-sign.is-holding { outline: 3px solid #f1c40f; transform: scale(.98); }
.cmd-handoff { border: 2px solid #111; border-radius: 8px; padding: .6rem .8rem; margin-bottom: .8rem; }
.cmd-handoff .btn-accent { margin-right: .5rem; }
.cmd-xfer-form p, .cmd-xfer-form label { flex-basis: 100%; width: 100%; }
.cmd-xfer-form select { min-width: 16rem; }

/* ---------- Tier 113 — field escalations ---------- */
.gis-esc-count { display: inline-block; background: #e61e1e; color: #fff; font-size: .72rem; font-weight: 700; border-radius: 999px; padding: 0 .45rem; margin-left: .3rem; animation: gis-blink 1s steps(2) infinite; }
.gis-esc-btn { background: #c0392b; border-color: #c0392b; width: 100%; font-weight: 700; }
.gis-esc-card { border: 2px solid #e61e1e; border-radius: 8px; padding: .4rem .6rem; margin: .4rem 0; background: rgba(230,30,30,.07); }
.gis-esc-card.is-enroute { border-color: #00838f; background: rgba(0,188,212,.08); }
.gis-esc-card.is-resolved { border-color: #1e8449; background: rgba(30,132,73,.07); }
.gis-esc-card .gis-row button { font-size: .8rem; }
.gis-esc-hold { background: #1e8449; color: #fff; border: 0; border-radius: 6px; padding: .4rem .6rem; font-weight: 700; cursor: pointer; width: 100%; }
.gis-esc-hold.is-holding { outline: 3px solid #f1c40f; }
.gis-esc-units label { display: block; font-size: .85rem; }

/* ---------- Tier 114 — field calculators ---------- */
.calc-main { max-width: 1400px; margin: 0 auto; padding: 1rem 1rem 2rem; }
.calc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; }
.calc-form textarea { width: 100%; font: inherit; font-size: .85rem; }
.calc-days { font-size: .8rem; margin: .3rem 0 0; padding-left: 1.1rem; } .calc-days .is-bad { color: #c0392b; font-weight: 700; } .calc-days .is-warn { color: #b7950b; } .calc-days .is-rest { color: #1f5f8b; }
.calc-col h2 { font-size: 1.05rem; margin: .2rem 0 .5rem; }
.calc-card { border: 1px solid var(--line, #d8d2c4); border-radius: 8px; padding: .4rem .7rem; margin-bottom: .6rem; background: var(--panel, #fff); }
.calc-card summary { cursor: pointer; font-weight: 600; }
.calc-card .gis-row label { display: inline-flex; flex-direction: column; font-size: .82rem; }
.calc-out { display: block; margin: .4rem 0 .2rem; font-size: .95rem; line-height: 1.4; }
.calc-ok { color: #1e8449; } .calc-warn { color: #8a6d00; } .calc-bad { color: #c0392b; } /* Tier 203: amber text 4.9:1 on white (was 2.9) */
.calc-tt6 { font-size: .8rem; margin: .3rem 0 0 1.2rem; padding: 0; } .calc-tt6 .is-now { font-weight: 700; color: #1f5f8b; }
.calc-log { border: 2px solid #111; border-radius: 8px; padding: .6rem .9rem; margin-top: 1rem; background: var(--panel, #fff); }
.calc-log h2 { font-size: 1.05rem; margin: 0 0 .4rem; }
@media (max-width: 1250px) { .calc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .calc-grid { grid-template-columns: 1fr; } }

/* ---------- Tier 116 — behavioral health desk ---------- */
.bh-counts { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin: .3rem 0 .8rem; }
.bh-chip { display: inline-block; font-size: .75rem; font-weight: 700; padding: .1rem .5rem; border-radius: 999px; background: #e9e4d8; color: #222; }
.bh-PURPLE { background: #6c3483; color: #fff; } .bh-RED { background: #c0392b; color: #fff; } .bh-YELLOW { background: #f1c40f; color: #222; } .bh-GREEN { background: #1e8449; color: #fff; }
.bh-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.bh-col h2 { font-size: 1.05rem; margin: .4rem 0; }
.bh-triggers { border: 1px solid var(--line, #d8d2c4); border-radius: 8px; padding: .4rem .7rem; margin: .4rem 0; } .bh-triggers label { display: block; font-size: .88rem; }
.bh-purple { display: block; border: 2px solid #6c3483; border-radius: 8px; padding: .4rem .6rem; margin: .4rem 0; }
.bh-preview { margin: .4rem 0; }
.bh-table { width: 100%; border-collapse: collapse; font-size: .85rem; margin: .5rem 0; } .bh-table th, .bh-table td { text-align: left; padding: .25rem .4rem; border-bottom: 1px solid #ddd; }
.bh-table tr.is-defuse td { background: rgba(241,196,15,.18); } .bh-table tr.is-rest td { background: rgba(192,57,43,.15); }
#bh-session select[multiple] { width: 100%; }
@media (max-width: 900px) { .bh-grid { grid-template-columns: 1fr; } }

/* ---------- Tier 117 — vault & beam ---------- */
#beam-qr { display: block; margin: .4rem auto; max-width: 100%; image-rendering: pixelated; }
#beam-stage textarea { width: 100%; font: 11px ui-monospace, monospace; }

/* ---------- Tier 118 — acoustic tools ---------- */
.ac-grid { grid-template-columns: 1fr 1fr; }
#ac-sensors input { width: 5em; font: inherit; }
@media (max-width: 900px) { .ac-grid { grid-template-columns: 1fr; } }

/* ---------- Tier 119 — structural watch ---------- */
.cw-stage { position: relative; } #cw-canvas { width: 100%; max-width: 480px; display: block; background: #222; border-radius: 6px; }
#cw-chart { display: block; border: 1px solid var(--line, #d8d2c4); border-radius: 6px; background: #fff; margin: .4rem 0; }
/* Tier 120 — AR HUD + convoy */
.hud-stage { position: relative; background: #000; border-radius: 8px; overflow: hidden; aspect-ratio: 3 / 4; max-height: 80vh; }
.hud-stage video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hud-stage.synth video { display: none; }
#hud-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hud-readout { position: absolute; left: 0; right: 0; bottom: 0; padding: .5rem .75rem; background: rgba(0,0,0,.6); color: #c8ffd8; font-size: .9rem; line-height: 1.35; }
.hud-stage:fullscreen { border-radius: 0; max-height: none; aspect-ratio: auto; width: 100vw; height: 100vh; }
/* Tier 121 — bilateral demob audit */
.au-grid { grid-template-columns: 1fr 1fr 1fr; } @media (max-width: 1100px) { .au-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 760px) { .au-grid { grid-template-columns: 1fr; } }
.au-pillar { margin: .5rem 0; } .au-pillar label { display: block; }
.au-stars { display: flex; gap: .15rem; } .au-star { font-size: 1.5rem; line-height: 1; background: none; border: 0; color: var(--line, #bbb); cursor: pointer; padding: .1rem .15rem; } .au-star.is-on { color: #d4a017; } .au-star:focus-visible { outline: 2px solid var(--accent, #c0392b); }
.au-index b { font-size: 1.8rem; } .au-scorecard table td { padding: .2rem .4rem; font-size: .85rem; }
.deploy-safety { margin: .5rem 0; padding: .5rem .75rem; border: 1px solid var(--line, #ccc); border-radius: 6px; font-size: .9rem; } .deploy-safety b.big { font-size: 1.3rem; }
/* Tier 122 — identity / registry marks */
.registry-mark-identity { background: #e8f3ea; border-color: #1e8449; color: #145a32; }
/* Tier 124 — sensor console */
.sn-grid { grid-template-columns: 1fr 1fr 1fr; } @media (max-width: 1100px) { .sn-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 760px) { .sn-grid { grid-template-columns: 1fr; } }
#sn-ptt { min-width: 9em; user-select: none; -webkit-user-select: none; } #sn-ptt.is-live { background: #c0392b; color: #fff; animation: sn-pulse 1s infinite; } @keyframes sn-pulse { 50% { opacity: .7; } }

/* Tier 125 — viral ladder + reserve */
.viral-ladder { padding-left: 1.2rem; } .viral-ladder li { margin: .35rem 0; opacity: .75; } .viral-ladder li.is-on { opacity: 1; } .viral-block { margin-top: 1rem; border-top: 1px solid var(--line, #ddd); padding-top: .8rem; }

/* Tier 126: packet fee note beside the download button */
.packet-fee { display: block; margin: 0 0 .35rem; }

/* ============================================================================
   Tier 127 — HUD app shell (RFD-UI-2026-001). Active on body.ww-hud only.
   Five fixed zones over a body grid; Z4 precedes Z3 in the DOM. Brand tokens,
   not the boilerplate's palette: status colours are moss / amber / accent and
   never red on white. 48 px targets below 768 px.
   ============================================================================ */
.ww-hud { --z1-h: 56px; --z2-h: 36px; --z5-h: 0px; --amber: #B8860B; --amber-ink: #7A6000; --amber-soft: #F3E6C2; --red: var(--accent-strong); --red-soft: #F5DAD0; --green: var(--moss); --green-soft: var(--moss-soft); --touch: 44px; }
:root:not([data-theme="light"]) .ww-hud, .ww-hud[data-theme="dark"] { --amber-soft: #3A2E0E; --red-soft: #3B1A10; }
@media (max-width: 767px) { .ww-hud { --z1-h: 48px; --z2-h: 36px; --z5-h: 64px; --touch: 48px; } }
.ww-hud { display: grid; grid-template-columns: minmax(0, 1fr) 340px; grid-template-areas: "z1 z1" "z2 z2" "z3 z4"; column-gap: 24px; align-items: start; padding-bottom: calc(var(--z5-h, 0px) + env(safe-area-inset-bottom, 0px) + 16px); /* Tier 204: --z5-h exists only under .ww-hud; without the fallback every toast on a public page sat 4,000 px below the screen */ }
.ww-hud > header.topbar { grid-area: z1; position: sticky; top: 0; z-index: 40; min-height: var(--z1-h); padding-block: 0.4rem; background: var(--surface); flex-wrap: nowrap; }
.ww-hud > .ww-z2 { grid-area: z2; position: sticky; top: var(--z1-h); z-index: 35; min-height: var(--z2-h); }
.ww-hud > .ww-z4 { grid-area: z4; position: sticky; top: calc(var(--z1-h) + var(--z2-h) + 12px); }
.ww-hud > main { grid-area: z3; min-width: 0; }
.ww-hud > .ww-z5 { display: none; }
.ww-hud > footer, .ww-hud > .site-footer { grid-column: 1 / -1; }
.ww-hud > *:not(header):not(.ww-z2):not(.ww-z4):not(main):not(.ww-z5):not(.ww-overlays):not(script) { grid-column: 1 / -1; }
.ww-hud[data-drilldown-active="true"] { grid-template-columns: minmax(0, 1fr) 220px; }
@media (max-width: 1099px) { .ww-hud { grid-template-columns: 100%; grid-template-areas: "z1" "z2" "z4" "z3"; } .ww-hud > .ww-z4 { position: static; } }
@media (max-width: 767px) {
  .ww-hud { grid-template-areas: "z1" "z2" "z4" "z3" "z5"; }
  .ww-hud > .ww-z5 { grid-area: z5; display: grid; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; grid-template-columns: repeat(5, 1fr); height: calc(var(--z5-h) + env(safe-area-inset-bottom, 0px)); padding-bottom: env(safe-area-inset-bottom, 0px); background: var(--surface); border-top: 1px solid var(--line); }
  .ww-hud > header.topbar .topnav, .ww-hud > header.topbar .ww-rolepill, .ww-hud > header.topbar .auth-widget { display: none !important; }
  .ww-hud > header.topbar .nav-toggle { display: inline-flex; order: -1; }
}
@media (min-width: 768px) { .ww-hud > header.topbar .auth-widget { display: none; }
  .ww-hud > main { padding-left: 16px; padding-right: 16px; }
  .ww-hud .auth-card, .ww-hud .admin-block { margin-bottom: 12px; }
}
/* Z1 */
.ww-z1-tools { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.ww-rolepill { position: relative; }
.ww-rolepill-btn { min-height: 38px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-alt); color: var(--ink); font-size: 0.78rem; cursor: pointer; }
.ww-rolepill-btn b { font-family: "JetBrains Mono", monospace; letter-spacing: 0.06em; font-weight: 600; }
.ww-rolepill-menu { position: absolute; right: 0; top: calc(100% + 4px); min-width: 160px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 6px; z-index: 45; box-shadow: 0 10px 24px rgba(0,0,0,0.18); }
.ww-rolepill-menu a { display: block; padding: 10px; color: var(--ink); text-decoration: none; font-size: 0.85rem; border-radius: 6px; }
.ww-rolepill-menu a:hover { background: var(--surface-alt); }
.ww-ready { --hold-pct: 0%; position: relative; overflow: hidden; min-height: 38px; min-width: 112px; padding: 4px 14px; border-radius: 999px; border: 1px solid var(--amber); background: var(--amber-soft); color: var(--ink); font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.08em; cursor: pointer; user-select: none; -webkit-user-select: none; touch-action: manipulation; }
.ww-ready.is-on { border-color: var(--green); background: var(--green-soft); }
.ww-ready-fill { position: absolute; inset: 0; width: 0; background: rgba(0,0,0,0.14); pointer-events: none; }
.ww-ready-label { position: relative; }
.ww-ready-tip { position: absolute; left: 50%; top: calc(100% + 6px); transform: translateX(-50%); white-space: nowrap; background: var(--ink); color: var(--surface); font-size: 0.7rem; padding: 4px 8px; border-radius: 6px; letter-spacing: 0; z-index: 46; }
.ww-bell { position: relative; min-width: 42px; min-height: 42px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-alt); color: var(--ink); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.ww-bell b { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font-size: 0.68rem; line-height: 18px; text-align: center; }
/* Z2 */
.ww-z2 { display: flex; align-items: center; gap: 12px; padding: 0 12px; background: var(--surface-alt); border-bottom: 1px solid var(--line); font-size: 0.76rem; color: var(--ink-soft); }
.ww-stamp { white-space: nowrap; font-family: "JetBrains Mono", monospace; }
.ww-link { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--green); background: var(--green-soft); color: var(--ink); font-size: 0.72rem; font-weight: 700; cursor: pointer; white-space: nowrap; flex: none; }
.ww-link i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.ww-link[data-state="offline"] { border-color: var(--amber); background: var(--amber-soft); } .ww-link[data-state="offline"] i { background: var(--amber); }
.ww-link[data-state="queued"] { border-color: var(--amber); background: var(--amber-soft); } .ww-link[data-state="queued"] i { background: var(--amber); animation: ww-pulse 1.2s infinite; }
@keyframes ww-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
.ww-topalert { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; }
.ww-topalert b { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.08em; padding: 1px 6px; border-radius: 4px; background: var(--amber-soft); color: var(--ink); flex: none; }
.ww-topalert.sev-CRITICAL b { background: var(--red); color: var(--accent-ink); } .ww-topalert.sev-INFO b { background: var(--green-soft); }
.ww-topalert-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.ww-topalert-act { flex: none; background: none; border: none; color: var(--accent-strong); font-weight: 700; cursor: pointer; padding: 6px 4px; min-height: 32px; }
@media (max-width: 639px) { .ww-stamp { display: none; } }
/* Z3 breadcrumb */
.ww-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 0.8rem; color: var(--ink-soft); margin: 0.6rem 0 0.8rem; }
.ww-crumb a { color: var(--accent-strong); text-decoration: none; } .ww-crumb a:hover { text-decoration: underline; }
.ww-crumb [aria-current="step"] { color: var(--ink); font-weight: 600; } .ww-crumb i { font-style: normal; opacity: 0.6; }
/* Z4 */
.ww-z4 { padding: 12px 0; }
.ww-z4 > .kicker { margin: 0 0 8px; }
.ww-z4-cards { display: flex; flex-direction: column; gap: 10px; }
.ww-z4.is-dimmed { opacity: 0.4; pointer-events: none; }
.ww-z4.is-dimmed .ww-z4-cards > :not(:first-child) { display: none; }
@media (max-width: 1099px) { .ww-z4 { padding: 12px 0 0; } .ww-z4-cards { flex-direction: row; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; -webkit-overflow-scrolling: touch; } .ww-z4-cards > .ww-card-compact { scroll-snap-align: center; flex: 0 0 86vw; max-width: 320px; } }
@media (max-width: 767px) { .ww-z4 { padding: 12px 16px 0; } }
/* Card anatomy */
.ww-card { position: relative; }
.ww-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 0.6rem; }
.ww-card-head > .ww-card-title { min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; } .ww-card-head > .ww-card-title h2, .ww-card-head > .ww-card-title h3, .ww-card-head > .ww-card-title h4 { margin: 0; }
.ww-card-code { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; color: var(--ink-soft); }
.ww-card-tools { display: flex; align-items: center; gap: 6px; flex: none; position: relative; }
.ww-badge { padding: 3px 9px; border-radius: 999px; font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.06em; font-weight: 600; border: 1px solid var(--line); white-space: nowrap; color: var(--ink); }
.ww-badge-green { background: var(--green-soft); border-color: var(--green); } .ww-badge-amber { background: var(--amber-soft); border-color: var(--amber); } .ww-badge-red { background: var(--red); border-color: var(--red); color: var(--accent-ink); }
.ww-more, .ww-expand, .ww-x { min-width: 36px; min-height: 36px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-alt); color: var(--ink); cursor: pointer; font-size: 1rem; line-height: 1; }
.ww-expand { font-size: 0.76rem; padding: 0 10px; }
.ww-more-menu { position: absolute; right: 0; top: calc(100% + 4px); min-width: 200px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 6px; z-index: 30; box-shadow: 0 10px 24px rgba(0,0,0,0.18); }
.ww-more-menu button { display: block; width: 100%; text-align: left; background: none; border: none; color: var(--ink); padding: 10px; min-height: 40px; border-radius: 6px; cursor: pointer; font: inherit; font-size: 0.85rem; }
.ww-more-menu button:hover { background: var(--surface-alt); }
.ww-secondary.btn-accent { background: none; color: var(--accent-strong); border: 1px solid var(--accent); }
.ww-card.is-condensed > *:not(.ww-card-head) { display: none !important; }
.ww-card.is-condensed { padding-bottom: 0.9rem; } .ww-card.is-condensed .ww-card-head { margin-bottom: 0; }
.ww-focus-ring, .rfd-card--return-focus { outline: none; box-shadow: 0 0 0 4px var(--accent) !important; transition: box-shadow 0.2s; }
.ww-card-compact { background: var(--surface); border: 1px solid var(--amber); border-radius: 10px; padding: 10px 12px; }
.ww-card-compact h4 { margin: 0; font-size: 0.95rem; } .ww-pin { display: block; font-family: "JetBrains Mono", monospace; font-size: 0.66rem; color: var(--amber-ink, #7A6000); letter-spacing: 0.04em; }
.ww-card-compact .ww-primary { width: 100%; margin-top: 8px; min-height: var(--touch); }
/* DrillDown */
.ww-drilling > main > *:not(.ww-crumb):not(.ww-drill) { display: none !important; }
.ww-drill { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); padding: 1rem 1.2rem 1.2rem; max-width: 760px; }
.ww-drill-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.ww-drill-head h2 { margin: 0; font-size: 1.15rem; flex: 1 1 auto; } .ww-drill-count { font-family: "JetBrains Mono", monospace; font-size: 0.72rem; color: var(--amber); letter-spacing: 0.06em; }
.ww-drill-back { min-height: var(--touch); }
.ww-step { padding: 16px 0; } .ww-step h3 { margin: 0 0 4px; font-size: 1rem; } .ww-step-scope { margin: 0 0 12px; }
.ww-step-pane { display: flex; flex-direction: column; gap: 10px; } .ww-step-pane .field { margin: 0; }
.ww-step-pane input, .ww-step-pane select, .ww-step-pane textarea { min-height: var(--touch); }
.ww-choice { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 54px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-alt); cursor: pointer; font-weight: 600; }
.ww-choice input { position: absolute; opacity: 0; pointer-events: none; } .ww-choice:has(input:checked) { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.ww-drill-foot { display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--line); padding-top: 12px; position: sticky; bottom: calc(var(--z5-h) + env(safe-area-inset-bottom, 0px)); background: var(--surface); }
.ww-drill-spacer { flex: 1; } .ww-drill-foot button { min-height: var(--touch); }
.ww-drill-prompt { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; margin: 8px 0; border: 1px solid var(--amber); background: var(--amber-soft); border-radius: 8px; }
.ww-step-err { margin: 10px 0 0; }
/* Overlays */
.ww-backdrop { position: fixed; inset: 0; background: rgba(10, 14, 8, 0.62); z-index: 50; }
.ww-modal { position: fixed; z-index: 60; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(92vw, 520px); max-height: 90vh; overflow: auto; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--moss); padding: 14px 16px; }
.ww-ov-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; } .ww-modal h2, .ww-drawer h2 { margin: 0; font-size: 1.1rem; }
.ww-ov-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; } .ww-modal-handle { display: none; }
@media (max-width: 767px) { .ww-modal { top: auto; bottom: 0; left: 0; transform: none; width: 100%; border-radius: 14px 14px 0 0; } .ww-modal-handle { display: block; width: 40px; height: 4px; border-radius: 2px; background: var(--line); margin: 0 auto 10px; } }
.ww-shake { animation: ww-shake 0.3s; } @keyframes ww-shake { 25% { transform: translate(-50%, -50%) translateX(-6px); } 75% { transform: translate(-50%, -50%) translateX(6px); } }
.ww-drawer { position: fixed; top: 0; bottom: 0; width: min(88vw, 380px); background: var(--surface); z-index: 60; padding: 16px; overflow: auto; display: flex; flex-direction: column; gap: 12px; }
.ww-drawer-right { right: 0; border-left: 1px solid var(--line); } .ww-drawer-left { left: 0; border-right: 1px solid var(--line); }
.ww-alert-list, .ww-queue { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; } .ww-alert-list li { padding: 10px; border: 1px solid var(--line); border-radius: 8px; } .ww-alert-list li.sev-CRITICAL { border-color: var(--red); } .ww-alert-list li.sev-ACTION { border-color: var(--amber); }
.ww-navdrawer-list { display: flex; flex-direction: column; gap: 4px; } .ww-navdrawer-list a { display: block; padding: 12px; min-height: var(--touch); border-radius: 8px; background: var(--surface-alt); color: var(--ink); text-decoration: none; font-weight: 600; } .ww-navdrawer-list .kicker { margin: 10px 0 4px; }
.ww-toast { position: fixed; left: 50%; bottom: calc(var(--z5-h, 0px) + env(safe-area-inset-bottom, 0px) + 16px); /* Tier 204: --z5-h exists only under .ww-hud; without the fallback every toast on a public page sat 4,000 px below the screen */ transform: translateX(-50%) translateY(20px); opacity: 0; pointer-events: none; background: var(--ink); color: var(--surface); padding: 10px 18px; border-radius: 999px; font-size: 0.84rem; font-weight: 600; z-index: 70; transition: opacity 0.15s, transform 0.15s; max-width: 92vw; }
.ww-toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); }
/* Z5 */
.ww-z5-tab { background: none; border: none; color: var(--ink-soft); font-size: 0.72rem; font-weight: 700; display: flex; align-items: center; justify-content: center; min-height: var(--touch); cursor: pointer; } .ww-z5-tab.is-active { color: var(--accent-strong); box-shadow: inset 0 3px 0 var(--accent); }
.ww-hud .offline-strip { display: none; }
@media (max-width: 767px) { .ww-hud button:not(.ww-more):not(.ww-expand):not(.ww-x), .ww-hud .btn-accent, .ww-hud .dash-tab { min-height: 48px; } }
.ww-precheck { margin: 0 0 6px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--line); background: var(--surface-alt); font-size: 0.84rem; } .ww-precheck.is-hold { border-color: var(--amber); background: var(--amber-soft); }
@media (max-width: 1299px) { .ww-hud > header.topbar .topbar-right [data-theme-toggle] { display: none; } }
.ww-link[data-state="queued"][data-online="0"] { border-color: var(--red); }
@media (max-width: 767px) { .ww-hud > header.topbar .brand { min-width: 0; flex: 0 1 auto; } .ww-hud > header.topbar .wordmark > span:not(.wm-brand) { display: none; } .ww-hud > header.topbar .ww-z1-tools { flex: none; gap: 6px; } .ww-hud > header.topbar .beta-badge { display: none; } .ww-ready { min-width: 96px; padding: 4px 10px; } }
@media (max-width: 767px) { .ww-hud .beta-trigger, .ww-hud .nv-quick { bottom: calc(var(--z5-h) + env(safe-area-inset-bottom, 0px) + 10px); } }
.ww-drilling > main { min-height: calc(100vh - var(--z1-h) - var(--z2-h)); }

/* Tier 128 — READYFORDUTY.NET™ wordmark: the mark carries the ™ as a small superscript; 3-W stays the operator handle after the slashes. */
.wordmark .wm-tm { font-size: 0.45em; vertical-align: super; margin-left: 1px; letter-spacing: 0; }
@media (max-width: 767px) { .ww-hud > header.topbar .wordmark > span.wm-sep { display: none; } }
.co-mount:empty { display: none; } .co-mock .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* Tier 130 — Shadow check: four silhouettes, tap the one the prompt names. */
.ww-shadow { border: 1px solid var(--line); border-top: 3px solid var(--moss); padding: 0.8rem 1rem 0.9rem; margin: 0.6rem 0 1rem; }
.ww-shadow legend { padding: 0 6px; }
.ww-shadow-prompt { margin: 0 0 0.6rem; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.ww-shadow-refresh { min-width: 32px; min-height: 32px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-alt); color: var(--ink); cursor: pointer; }
.ww-shadow-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.ww-shadow-opt { min-height: 72px; padding: 6px; border: 2px solid var(--line); border-radius: 10px; background: var(--surface); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ww-shadow-opt img { max-width: 100%; max-height: 64px; pointer-events: none; }
.ww-shadow-opt.is-on { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); }
.ww-shadow-msg { margin: 0.5rem 0 0; }
@media (max-width: 480px) { .ww-shadow-grid { grid-template-columns: repeat(2, 1fr); } .ww-shadow-opt { min-height: 88px; } }

/* Tier 131 — keep me signed in + the return note on the sign-in pages */
.field-keep { margin: 0.2rem 0 0.6rem; }
.field-keep .qs-consent { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.95rem; }
.field-keep .small-muted { font-size: 0.85rem; }
.ww-return-note { margin: 0 0 1rem; padding: 0.6rem 0.8rem; border-left: 3px solid var(--accent, #a0391c); background: var(--card-alt, rgba(0,0,0,0.04)); font-size: 0.95rem; }

/* Tier 133 — Post Watch */
.pw-state { font-family: var(--mono, "JetBrains Mono", monospace); font-size: 1.6rem; font-weight: 700; letter-spacing: .04em; margin: .2rem 0; padding: .6rem .8rem; border: 2px solid var(--ink); text-align: center; }
.pw-state.pw-ok { background: #2e7d32; color: #fff; border-color: #2e7d32; }
.pw-state.pw-drift { background: #c77700; color: #fff; border-color: #c77700; }
.pw-state.pw-off { background: #b3261e; color: #fff; border-color: #b3261e; animation: pw-blink 1.2s steps(2) infinite; }
.pw-state.pw-silent { background: #777; color: #fff; border-color: #777; }
.pw-state.pw-break { background: #4a6fa5; color: #fff; border-color: #4a6fa5; }
@keyframes pw-blink { 50% { opacity: .55; } }
.pw-dist { font-size: 1.05rem; margin: .2rem 0; }
.pw-pill { display: inline-block; font-family: var(--mono, monospace); font-size: .72rem; letter-spacing: .05em; padding: .15rem .45rem; border: 1px solid currentColor; border-radius: 3px; margin: .1rem 0; }
.pw-pill.pw-ok { color: #1e6b22; } .pw-pill.pw-drift { color: #7a6000; } .pw-pill.pw-off { color: #b3261e; font-weight: 700; } .pw-pill.pw-silent { color: #5f6b6c; } /* Tier 203: pills ≥ 4.5:1 on the card surface */ .pw-pill.pw-break { color: #4a6fa5; }
.pw-counts .pw-pill { margin-right: .3rem; }
.pw-site { margin: .9rem 0 .3rem; font-size: 1.05rem; }
.pw-table td, .pw-table th { vertical-align: top; }
.pw-link { background: none; border: 0; padding: 0; color: var(--accent, #a0391c); text-decoration: underline; cursor: pointer; font: inherit; font-size: .85rem; }
.pw-paged { font-weight: 600; }
.pw-switch { font-size: 1.1rem; padding: .8rem 1rem; width: 100%; min-height: 56px; }
body.pw-dim main { filter: brightness(.85); }
#pw-onpost .gis-row button { min-height: 48px; }
@media (max-width: 767px) { .pw-state { font-size: 1.35rem; } }

/* Tier 135 — DUTY MARKS™ + the Duty Store */
.marks-head { display: flex; gap: 1.5rem; align-items: flex-start; flex-wrap: wrap; margin: .6rem 0; }
.marks-balance { display: flex; flex-direction: column; }
.marks-n { font-family: var(--display, "Big Shoulders Display", Impact, sans-serif); font-size: 2.6rem; font-weight: 800; line-height: 1; }
.marks-standing { flex: 1; min-width: 220px; }
.marks-bar { height: 8px; border: 1px solid var(--ink); margin-top: .35rem; background: var(--card-alt, rgba(0,0,0,.05)); }
.marks-bar > div { height: 100%; background: var(--accent, #a0391c); width: 0; transition: width .4s; }
.marks-redeem { display: flex; gap: .5rem; flex-wrap: wrap; margin: .5rem 0; }
.store-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; }
.store-item { border: 1px solid var(--ink); padding: .8rem; background: var(--card, transparent); margin-bottom: .8rem; }
.store-item h3 { font-size: 1.05rem; margin: .4rem 0 .2rem; }
.store-art { height: 90px; display: flex; align-items: center; justify-content: center; font-family: var(--display, "Big Shoulders Display", Impact, sans-serif); font-size: 2.2rem; font-weight: 800; letter-spacing: .05em; color: var(--accent, #a0391c); }
.store-art-patch { border-radius: 50%; width: 90px; margin: 0 auto; }
.store-art-vault, .store-art-ad { font-size: 1.6rem; }

/* Tier 136 — three doors where one was: guide, escort, lifeguard */
/* Tier 136 — seven doors: five roster doors on the top row, the two employer doors (Contractor, Vendor) stretch across the second */
@media (min-width: 1150px) { .fd-doors { grid-template-columns: repeat(10, minmax(0, 1fr)); } .fd-doors > .fd-door { grid-column: span 2; } .fd-doors > .fd-door-hire, .fd-doors > .fd-door-vendor { grid-column: span 5; } }
@media (max-width: 1149.98px) { .fd-doors { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); } }
.fd-door-escort { border-top-color: #6b4a2e; } .fd-door-lifeguard { border-top-color: #b3261e; }
.landing-pathway-fig { position: relative; padding-right: 7.2rem; min-height: 8rem; }
.landing-pathway-sil { position: absolute; right: .8rem; top: .8rem; width: 6rem; height: 6rem; object-fit: contain; opacity: .9; }

/* Tier 139 — Sectors & Roles directory */
.roles-page { max-width: 1240px; margin: 0 auto; padding: 1.5rem 1rem 3rem; }
.roles-head .lede { max-width: 60ch; }
.roles-counts { font-family: "JetBrains Mono", monospace; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-soft); margin: .4rem 0 .8rem; }
.roles-tools { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; margin: 0 0 .8rem; }
.roles-search { flex: 1 1 320px; }
.roles-search input { width: 100%; font: inherit; padding: .55rem .7rem; border: 1.5px solid var(--ink); background: var(--surface); color: var(--ink); }
.roles-tools label { font-size: .9rem; display: inline-flex; gap: .35rem; align-items: center; }
.roles-jump { display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin: 0 0 1.2rem; font-family: "JetBrains Mono", monospace; font-size: .74rem; letter-spacing: .05em; text-transform: uppercase; }
.roles-jump-link { color: var(--moss); text-decoration: none; border-bottom: 1px solid transparent; }
.roles-jump-link:hover { border-bottom-color: currentColor; }
.roles-n { font-family: "JetBrains Mono", monospace; font-size: .7rem; letter-spacing: .04em; color: var(--ink-soft); font-weight: 400; margin-left: .3em; }
.roles-sector { border-top: 3px solid var(--ink); padding-top: 1.2rem; margin: 0 0 2.4rem; }
.roles-track { margin: 1.2rem 0 1.6rem; }
.roles-track > h3 { font-family: "Big Shoulders Display", Impact, sans-serif; font-size: 1.5rem; text-transform: uppercase; letter-spacing: .01em; margin: 0 0 .2rem; }
.roles-track > h3 a { color: inherit; text-decoration: none; } .roles-track > h3 a:hover { color: var(--rust, #a0391c); }
.roles-track-no { font-family: "JetBrains Mono", monospace; font-size: .72rem; letter-spacing: .1em; color: var(--rust, #a0391c); vertical-align: middle; margin-right: .3rem; }
.roles-family { margin: .9rem 0 0; }
.roles-family > h4 { font-family: "JetBrains Mono", monospace; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .6rem; color: var(--ink-soft); }
.roles-cross { border-left: 3px solid var(--moss); padding-left: .9rem; }
.roles-tree .landing-pathway-grid { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.roles-card.landing-pathway-fig { padding-right: 1.2rem; padding-top: 1rem; }
.roles-card h3 { padding-right: 5.6rem; font-size: 1.15rem; line-height: 1.05; min-height: 3.2rem; }
.roles-card .landing-pathway-sil { width: 5rem; height: 5rem; right: .6rem; top: .6rem; }
.roles-foot { max-width: 70ch; margin-top: 2rem; }

/* Tier 140 — house "Wanted" card + Demand & ad steering block */
.ww-ad-house .ww-ad-link { display: block; border-left: 4px solid var(--rust, #a0391c); }
.ww-ad-house .ww-ad-kicker { color: var(--rust, #a0391c); }
.ww-ad-house-watch .ww-ad-link { border-left-color: var(--moss); }
.dm-summary { display: flex; flex-wrap: wrap; gap: 1.2rem; font-family: "JetBrains Mono", monospace; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 .8rem; }
.dm-summary b { color: var(--ink); font-size: 1.05rem; margin-right: .25rem; }
.dm-pool { display: inline-flex; gap: .4rem; align-items: center; }
.dm-pool input { width: 6.5em; font: inherit; padding: .2rem .4rem; }
.dm-cat { border: 1px solid var(--line); background: var(--surface); margin: 0 0 .8rem; padding: .8rem .9rem; }
.dm-cat-head { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; }
.dm-cat-head h4 { margin: 0; font-family: "Big Shoulders Display", Impact, sans-serif; font-size: 1.25rem; text-transform: uppercase; }
.dm-sev { font-family: "JetBrains Mono", monospace; font-size: .68rem; letter-spacing: .1em; padding: .15rem .45rem; border: 1.5px solid currentColor; }
.dm-sev-critical { color: #a0391c; } .dm-sev-short { color: #8a5a00; } .dm-sev-watch { color: var(--moss); } .dm-sev-covered { color: var(--ink-soft); }
.dm-nums { font-family: "JetBrains Mono", monospace; font-size: .76rem; color: var(--ink-soft); }
.dm-nums b { color: var(--ink); }
.dm-spend { display: inline-flex; gap: .4rem; align-items: center; margin-left: auto; }
.dm-spend input { width: 6em; font: inherit; padding: .25rem .4rem; }
.dm-spend .dm-rec { font-family: "JetBrains Mono", monospace; font-size: .72rem; color: var(--ink-soft); }
.dm-bar { height: 6px; background: var(--line); margin: .5rem 0; position: relative; }
.dm-bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--moss); }
.dm-bar i.gap { background: #a0391c; }
.dm-rows { margin: .4rem 0 0; }
.dm-rows table { width: 100%; font-size: .84rem; }
.dm-trend { font-family: "JetBrains Mono", monospace; font-size: .7rem; color: #8a5a00; }
.dm-conn { font-family: "JetBrains Mono", monospace; font-size: .72rem; color: var(--ink-soft); margin: .3rem 0 0; }
.dm-chan { display: flex; flex-wrap: wrap; gap: .4rem .9rem; font-family: "JetBrains Mono", monospace; font-size: .72rem; margin: .2rem 0 .8rem; }
.dm-chan span::before { content: "●"; margin-right: .3rem; color: var(--ink-soft); } .dm-chan span.on::before { color: var(--moss); }

/* Tier 142 — Wanted landing page */
.wanted-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-top: 1rem; }
@media (min-width: 900px) { .wanted-grid { grid-template-columns: 3fr 2fr; align-items: start; } }
.wanted-reel { width: 100%; max-width: 360px; aspect-ratio: 9 / 16; background: #000; border: 1px solid var(--line); display: block; margin: 0 auto; }
.wanted-fig { display: block; margin: 0 auto; width: 210px; height: 300px; object-fit: contain; opacity: .85; }
.wanted-filled { font-family: "JetBrains Mono", monospace; font-size: .8rem; letter-spacing: .04em; border-left: 4px solid var(--moss); padding: .5rem .8rem; background: var(--surface); }
.dm-reel { font-family: "JetBrains Mono", monospace; font-size: .7rem; color: var(--moss); }
.dm-brief { white-space: pre-wrap; font-family: "JetBrains Mono", monospace; font-size: .74rem; line-height: 1.45; background: var(--surface); border: 1px dashed var(--line); padding: .6rem .8rem; margin: .4rem 0; }
.dm-turnoff { border-left: 4px solid #a0391c; }
.admin-refresh.is-on { background: var(--moss); color: #fff; }

/* Tier 143 — SAR Mission Planner + poster */
.sp-main { max-width: 1240px; }
.sp-head .lede { max-width: 70ch; }
.sp-subject { display: grid; grid-template-columns: 1fr; gap: 1rem; border: 1px solid var(--line); background: var(--surface); padding: .9rem; margin: 0 0 .9rem; }
@media (min-width: 760px) { .sp-subject { grid-template-columns: 220px 1fr; } }
.sp-subject.is-found { opacity: .7; }
.sp-subject h3 { margin: 0 0 .3rem; font-family: "Big Shoulders Display", Impact, sans-serif; font-size: 1.35rem; text-transform: uppercase; }
.sp-subject p { margin: 0 0 .35rem; font-size: .92rem; }
.sp-photo { width: 200px; height: 240px; object-fit: cover; border: 1px solid var(--line); background: var(--bg); display: block; }
.sp-photo-none { display: flex; align-items: center; justify-content: center; font-family: "JetBrains Mono", monospace; font-size: .72rem; color: var(--ink-soft); }
.sp-tread { width: 200px; height: 90px; object-fit: cover; border: 1px solid var(--line); display: block; margin-top: .4rem; }
.sp-photo-form { display: inline-block; margin: .4rem .3rem 0 0; } .sp-photo-form label { cursor: pointer; }
.sp-form { margin: .6rem 0; } .sp-form label { display: block; font-size: .85rem; } .sp-form input, .sp-form select, .sp-form textarea { width: 100%; font: inherit; padding: .3rem .45rem; border: 1px solid var(--line); background: var(--bg); color: var(--ink); }
.sp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .5rem .7rem; align-items: end; margin: .4rem 0; }
.sp-grid label input[type=checkbox] { width: auto; }
.sp-urg label { font-size: .78rem; }
.sp-check { list-style: none; padding: 0; margin: .3rem 0; } .sp-check li { padding: .3rem 0; border-bottom: 1px dashed var(--line); } .sp-check li.is-done label { color: var(--moss); }
.sp-h5 { font-family: "JetBrains Mono", monospace; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; margin: 1rem 0 .4rem; color: var(--ink-soft); }
.sp-pred { border-left: 4px solid var(--moss); padding: .5rem .8rem; background: var(--surface); }
tr.is-missing td { background: rgba(160,57,28,.06); } tr.is-searched td { opacity: .6; } tr.intel-dismissed td { opacity: .5; }
.poster { page-break-inside: avoid; }
.poster-grid { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 760px) { .poster-grid { grid-template-columns: 320px 1fr; } }
.poster-photo img { width: 100%; max-width: 320px; border: 2px solid var(--ink); display: block; }
.poster h1 { font-size: 2.6rem; }
.poster-contact { font-family: "JetBrains Mono", monospace; font-size: 1rem; border: 2px solid var(--rust, #a0391c); padding: .5rem .8rem; display: inline-block; }
@media print { .topbar, footer, .ww-feedback { display: none !important; } }
.sp-main .dm-cat { overflow-x: auto; }
.sp-main .bh-table { min-width: 0; }
@media (max-width: 600px) { .sp-main .bh-table { display: block; overflow-x: auto; max-width: 100%; } .sp-main .bh-table td, .sp-main .bh-table th { font-size: .8rem; } }
/* Tier 144 · mobility models & transport exits */
.sp-models{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.sp-slopes label{font-size:.85rem}.sp-slopes input{width:5em}
.sp-reach td b{color:var(--accent,#c8a24a)}tr.exit-high td:first-child{border-left:3px solid #c0392b}tr.exit-medium td:first-child{border-left:3px solid #d68910}tr.exit-low td:first-child{border-left:3px solid #4a7a4a}
@media (max-width:820px){.sp-models{grid-template-columns:1fr}}
tr.exit-high .landing-tier-code{background:#c0392b;color:#fff}tr.exit-medium .landing-tier-code{background:#d68910;color:#fff}tr.exit-low .landing-tier-code{background:#4a7a4a;color:#fff}
/* Tier 145 · service record & contract ledger */
.sr-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:.75rem 0}.sr-tile{border:1px solid var(--rule,#cfc9b8);border-radius:6px;padding:.6rem .7rem;display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.sr-tile .sr-n{font-family:var(--mono,"JetBrains Mono",monospace);font-size:1.35rem;font-weight:600}
.sr-table tr.is-verified td:first-child{border-left:3px solid #4a7a4a}.sr-list{padding-left:1.2rem}.sr-list li{margin:.35rem 0}.sr-main .bh-table,.sr-page .bh-table{display:block;overflow-x:auto}
/* Tier 146 · production health */
.hm-st{display:inline-block;font-family:var(--mono,"JetBrains Mono",monospace);font-size:.72rem;letter-spacing:.06em;padding:.1rem .45rem;border-radius:3px;color:#fff;background:#4a7a4a}.hm-warn,.hm-degraded{background:#d68910}.hm-fail,.hm-down{background:#c0392b}.hm-skip{background:#7a7a7a}
.hm-dot{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:3px;background:#4a7a4a;vertical-align:middle}.hm-dot.hm-degraded{background:#d68910}.hm-dot.hm-down{background:#c0392b}tr.hm-row-fail td:first-child,tr.hm-row-warn td:first-child{border-left:3px solid #d68910}tr.hm-row-fail td:first-child{border-left-color:#c0392b}
/* Tier 148 · ICS 213RR */
#rr .bh-table{display:block;overflow-x:auto}.rr-line{border:1px solid var(--rule,#cfc9b8);border-radius:6px;padding:.5rem .7rem;margin:.4rem 0}tr.rr-p-urgent td:first-child{border-left:3px solid #c0392b}tr.rr-p-high td:first-child{border-left:3px solid #d68910}tr.rr-filled td{opacity:.75}tr.rr-denied td,tr.rr-cancelled td{opacity:.6}
/* Tier 149 · exercises & AAR */
.ex-main .bh-table{display:block;overflow-x:auto}tr.is-delivered td{opacity:.75}tr.ip-done td{opacity:.6}tr.ip-open td:first-child{border-left:3px solid #d68910}
/* Tier 150 · credential-code matching hint */
.cm-hint{margin:.25rem 0 0;font-size:.85rem}.cm-hint .cm-text{color:#8a6d3b}
/* Tier 151 · volunteer hub */
.vol-tiles{margin-top:1rem}.vol-steps li{margin:.5rem 0}.vol-pack li{margin:.3rem 0}.vol-states a{display:inline-block;margin:.15rem .5rem .15rem 0}.vol-page .bh-table{display:block;overflow-x:auto}
/* Tier 152 · human-in-the-loop */
.hitl-page .bh-table{display:block;overflow-x:auto}tr.hitl-gated td:first-child{border-left:3px solid #4a7a4a}tr.hitl-advisory td:first-child{border-left:3px solid #7a7a7a}tr.hitl-auto td:first-child{border-left:3px solid #d68910}
/* Tier 153 · incident home */
.inc-list{padding-left:1.3rem}.inc-list li{margin:.45rem 0;padding-left:.4rem;border-left:3px solid #7a7a7a}.inc-list li.inc-u1{border-left-color:#c0392b}.inc-list li.inc-u2{border-left-color:#d68910}.inc-list li.inc-u3{border-left-color:#4a7a4a}.sr-tile.inc-warn .sr-n{color:#c0392b}.inc-main .bh-table{display:block;overflow-x:auto}
/* Tier 154 · drill CTAs */
.ww-drill-cta{margin:.2rem 0 .6rem}body:not(.ww-hud) .ww-drill-cta{display:none}.ww-review{border:1px solid var(--rule,#cfc9b8);border-radius:6px;padding:.6rem .8rem;margin-bottom:.6rem}.ww-review p{margin:.2rem 0}

/* Tier 155 — the HUD shell in field mode (body.ww-hud.ww-hud-field): incident home, command, SAR planner, deploy, GIS.
   One column — the page's workspace keeps its full width and Z4 (when anything is promoted) stacks above it; the page's
   own section.dm-cat blocks are the cards; Z5 lists the sections below 768 px. */
.ww-hud.ww-hud-field { grid-template-columns: 100%; grid-template-areas: "z1" "z2" "z4" "z3"; }
.ww-hud.ww-hud-field > .ww-z4 { position: static; }
.ww-hud.ww-hud-field > .ww-z4 .ww-z4-cards { flex-direction: row; flex-wrap: wrap; }
.ww-hud.ww-hud-field > .ww-z4 .ww-card-compact { flex: 1 1 260px; }
@media (max-width: 767px) { .ww-hud.ww-hud-field { grid-template-areas: "z1" "z2" "z4" "z3" "z5"; } }
.dm-cat.ww-card > .dm-cat-head.ww-card-head { margin-bottom: .5rem; }
.dm-cat.ww-card > .dm-cat-head .ww-card-title { display: flex; align-items: baseline; gap: 6px 10px; min-width: 0; }
.dm-cat.ww-card > .dm-cat-head .ww-card-tools { margin-left: auto; }
.ww-hud-field .ww-crumb { margin: .4rem 0 .6rem; }
.ww-z5-tab[data-sec] span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ww-hud.ww-hud-field > header.topbar { flex-wrap: wrap; }
.ww-hud.ww-hud-field > .ww-z4.is-empty { height: 0; padding: 0; overflow: hidden; } /* keeps row 3 occupied so the footer auto-places after main */
.ww-hud.ww-hud-field > main { width: 100%; justify-self: center; } /* auto margins would otherwise size the workspace to its content and overflow a phone */
.ww-z2 > .ww-stamp { position: static; inset: auto; border: 0; padding: 0; font-size: inherit; color: inherit; letter-spacing: 0; transform: none; animation: none; opacity: 1; pointer-events: auto; } /* the Z2 sync stamp is not the ink stamp of the same class */

/* Tier 156 — act from Incident home: the presses that resolve a queue item, and the inline row they open */
.inc-acts { display: inline-flex; flex-wrap: wrap; gap: .3rem; margin-left: .4rem; vertical-align: middle; }
.inc-act { font: 700 .72rem/1 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase; padding: .3rem .55rem; border: 1px solid var(--moss); color: var(--moss); background: var(--surface); border-radius: 4px; cursor: pointer; min-height: 30px; }
.inc-act:hover, .inc-act:focus-visible { background: var(--moss-soft); }
.inc-act.is-danger { border-color: var(--accent-strong); color: var(--accent-strong); }
.inc-act.is-danger:hover { background: #F5DAD0; }
.inc-act-row { margin: .45rem 0 .2rem; padding: .6rem .8rem; border: 1px solid var(--line); background: var(--surface-alt); border-radius: 4px; }
.inc-act-form label { display: block; margin: 0 0 .5rem; font-size: .9rem; }
.inc-act-form input { display: block; width: 100%; max-width: 520px; margin-top: .2rem; }
.inc-act-form p { margin: .3rem 0; }
.inc-act-go { font: 700 .8rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; padding: .65rem 1rem; background: var(--accent-strong); color: #fff; border: 0; border-radius: 4px; cursor: pointer; min-height: 44px; } /* not .btn-accent: the shell must not lift it into Z4 as the card's CTA */
.inc-act-go[disabled] { opacity: .6; cursor: wait; }
.inc-act-btns { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
@media (max-width: 767px) { .inc-acts { display: flex; margin: .35rem 0 0; } .inc-act { min-height: 44px; padding: .5rem .8rem; } }

/* Tier 160 — state-line alert banner (js/state-line.js): fixed, high-contrast, 48 px targets; sits under the HUD rails when present */
.ww-stateline { position: fixed; left: 12px; right: 12px; top: 12px; z-index: 60; max-width: 720px; margin: 0 auto; background: var(--surface); color: var(--ink); border: 2px solid var(--amber, #B8860B); border-left-width: 10px; border-radius: 6px; box-shadow: 0 8px 28px rgba(0,0,0,.25); padding: .8rem 1rem; }
.ww-stateline.is-hud { top: calc(var(--z1-h, 56px) + var(--z2-h, 36px) + 10px); }
.ww-stateline-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem .8rem; } .ww-stateline-head .kicker { margin: 0; width: 100%; } .ww-stateline-head h2 { margin: 0; font-size: 1.5rem; }
.ww-stateline-tag { font: 700 .7rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; padding: .25rem .5rem; border: 1px solid var(--line); border-radius: 4px; color: var(--ink-soft); }
.ww-stateline-tag.is-on { border-color: var(--moss); color: var(--moss); }
.ww-stateline-lines { margin: .5rem 0 .7rem 1.1rem; padding: 0; } .ww-stateline-lines li { margin: .25rem 0; font-size: .95rem; }
.ww-stateline-acts { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; } .ww-stateline-acts button { min-height: 44px; }
@media (max-width: 767px) { .ww-stateline { left: 8px; right: 8px; top: 8px; padding: .7rem .8rem; max-height: calc(100vh - 90px); overflow: auto; } .ww-stateline-acts button { flex: 1 1 100%; } }

/* Tier 161 — old closed crew calls as one-line summaries until opened */
.crew-call-card.is-lite { padding-block: .55rem; opacity: .92; } .crew-call-card.is-lite .ad-admin-head h4 { font-size: 1rem; } .crew-call-card.is-lite .ad-admin-actions { margin: .3rem 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }

/* Tier 162 — the glow (js/ww-glow.js decides who; this only says how). A slow breath in the theme's own accent; never a
   colour change, never a flash. Reduced motion → a still halo. NVG → the phosphor green, not the ember. */
:root { --glow-rgb: 156, 62, 21; }
:root:not([data-theme="light"]) { --glow-rgb: 240, 152, 95; }
:root[data-theme="dark"] { --glow-rgb: 240, 152, 95; }
:root[data-theme="nvg"] { --glow-rgb: 110, 226, 112; }
@keyframes ww-breathe { 0%, 100% { box-shadow: 0 0 0 1px rgba(var(--glow-rgb), .18), 0 0 6px 0 rgba(var(--glow-rgb), .10); } 50% { box-shadow: 0 0 0 1px rgba(var(--glow-rgb), .42), 0 0 22px 3px rgba(var(--glow-rgb), .30); } }
.ww-glow { animation: ww-breathe 2.8s ease-in-out infinite; border-radius: 6px; position: relative; will-change: box-shadow; }
.inc-list li.ww-glow { padding-right: .5rem; }
#ww-bell.ww-glow, button.ww-glow { border-radius: 8px; }
#ww-topalert.ww-glow { border-radius: 4px; padding-inline: .3rem; }
@media (prefers-reduced-motion: reduce) { .ww-glow { animation: none; box-shadow: 0 0 0 1px rgba(var(--glow-rgb), .35), 0 0 16px 2px rgba(var(--glow-rgb), .22); } }
@media print { .ww-glow { animation: none; box-shadow: none; } }

/* Tier 167 — launch board: sign-off buttons are not .btn-accent so the HUD shell never lifts one into Z4 as a one-press CTA */
.launch-sign { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; } .launch-sign input { min-width: 180px; } .launch-sign-btn { min-height: 38px; padding: .45rem .8rem; }

/* Tier 168 — Mission chat: the toggle in the status strip (or a slim foot bar), a right-hand panel on desktop, a bottom
   sheet on phones; a tab per level; callsign bubbles; command lines marked; pinned lines marked "on the 214". */
.mc-toggle { display: inline-flex; align-items: center; gap: .35rem; margin-left: auto; min-height: 30px; padding: .2rem .6rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); font: 700 .72rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.mc-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.mc-toggle.has-unread { border-color: var(--accent); color: var(--accent-strong); }
.mc-count { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--accent-strong); color: #fff; font: 800 .68rem/18px "JetBrains Mono", monospace; text-align: center; }
.mc-bar { position: sticky; bottom: 0; z-index: 30; display: flex; justify-content: flex-end; padding: .4rem 1rem; background: var(--surface-alt); border-top: 1px solid var(--line); }
.mc-panel { position: fixed; right: 0; bottom: 0; width: min(420px, 100vw); height: min(640px, 100vh); z-index: 70; display: flex; flex-direction: column; background: var(--surface); border-left: 1px solid var(--line); border-top: 1px solid var(--line); box-shadow: -8px 0 28px rgba(0,0,0,.22); }
.mc-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; padding: .6rem .9rem .3rem; border-bottom: 1px solid var(--line); } .mc-head .kicker { margin: 0; width: 100%; } .mc-head h2 { margin: 0; font-size: 1.15rem; flex: 1; } .mc-x { background: none; border: 0; font-size: 1.1rem; cursor: pointer; color: var(--ink-soft); min-width: 40px; min-height: 40px; }
.mc-tabs { display: flex; gap: .25rem; padding: .4rem .6rem; border-bottom: 1px solid var(--line); overflow-x: auto; }
.mc-tab { flex: 0 0 auto; min-height: 40px; padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-alt); color: var(--ink); font: 700 .74rem/1 "JetBrains Mono", monospace; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; }
.mc-tab.is-active { background: var(--ink); color: var(--surface); border-color: var(--ink); }
.mc-list { flex: 1; overflow-y: auto; padding: .6rem .8rem; display: flex; flex-direction: column; gap: .45rem; }
.mc-msg { max-width: 88%; padding: .45rem .65rem; border-radius: 10px 10px 10px 2px; background: var(--surface-alt); border: 1px solid var(--line); display: grid; gap: .15rem; }
.mc-msg.is-mine { align-self: flex-end; border-radius: 10px 10px 2px 10px; background: var(--moss-soft, #E3EBDD); }
.mc-msg.is-command { border-left: 4px solid var(--accent-strong); }
.mc-msg.is-logged { box-shadow: inset 0 0 0 1px var(--moss); }
.mc-cs { font: 800 .7rem/1.2 "JetBrains Mono", monospace; letter-spacing: .05em; color: var(--ink-soft); } .mc-cs i { font-style: normal; color: var(--accent-strong); }
.mc-body { font-size: .95rem; overflow-wrap: anywhere; } .mc-meta { font-size: .72rem; color: var(--ink-soft); } .mc-pin { background: none; border: 0; padding: 0; color: var(--accent-strong); font: inherit; cursor: pointer; text-decoration: underline; }
.mc-form { display: flex; gap: .4rem; padding: .5rem .6rem; border-top: 1px solid var(--line); } .mc-form input { flex: 1; min-height: 44px; } .mc-send { min-height: 44px; padding: 0 1rem; background: var(--accent-strong); color: #fff; border: 0; border-radius: 6px; font: 700 .78rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.mc-st { margin: 0; padding: 0 .8rem .4rem; min-height: 1.2em; }
@media (max-width: 767px) { .mc-panel { width: 100vw; height: calc(100vh - 56px - env(safe-area-inset-bottom, 0px)); border-left: 0; } .mc-toggle span { display: none; } body.mc-open .ww-z5 { display: none; } }
/* Tier 169 — direct messages: a callsign is a press; the menu offers a DM; DM tabs carry the @ mark */
.mc-cs-btn { background: none; border: 0; padding: 0; cursor: pointer; text-align: left; text-decoration: underline dotted; text-underline-offset: 3px; min-height: 24px; }
.mc-cs-btn:hover, .mc-cs-btn:focus-visible { color: var(--accent-strong); }
.mc-menu { display: flex; gap: .4rem; flex-wrap: wrap; margin: .25rem 0; } .mc-menu button { min-height: 40px; padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font: 700 .74rem/1 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; } .mc-menu .mc-menu-dm { background: var(--accent-strong); color: #fff; border-color: var(--accent-strong); }
.mc-dm-mark { font-style: normal; font-weight: 800; opacity: .8; margin-right: .15rem; }

/* Tier 171 — the chat window as a black screen over the page: ink surface, ember border, tabs along the top for the units
   synced with the operator; minimised it stays as a tab along the bottom edge. Overrides the Tier 168 panel colours. */
.mc-panel { --mc-ink: #0B0C0B; --mc-ink-2: #161816; --mc-line: #2C2F2B; --mc-text: #ECEAE2; --mc-muted: #A8ABA3; background: var(--mc-ink); color: var(--mc-text); border: 2px solid var(--accent); border-bottom: 0; border-radius: 10px 10px 0 0; box-shadow: 0 -10px 40px rgba(0,0,0,.45), 0 0 0 1px rgba(0,0,0,.6); right: 12px; width: min(440px, calc(100vw - 24px)); }
.mc-head { border-bottom: 1px solid var(--mc-line); } .mc-head .kicker { color: var(--accent); } .mc-head h2 { color: var(--mc-text); } .mc-x, .mc-min { color: var(--mc-muted); } .mc-x:hover, .mc-min:hover { color: var(--mc-text); } .mc-min { font-size: 1rem; min-width: 40px; min-height: 40px; background: none; border: 0; cursor: pointer; }
.mc-tabs { border-bottom: 1px solid var(--mc-line); background: var(--mc-ink-2); }
.mc-tab { background: transparent; color: var(--mc-muted); border-color: var(--mc-line); } .mc-tab.is-active { background: var(--accent); color: #fff; border-color: var(--accent); } .mc-tab .mc-count { background: #fff; color: var(--accent-strong); }
.mc-list { background: var(--mc-ink); }
.mc-msg { background: var(--mc-ink-2); border-color: var(--mc-line); color: var(--mc-text); } .mc-msg.is-mine { background: #1E2A1C; border-color: #2F4A2B; } .mc-msg.is-command { border-left-color: var(--accent); } .mc-msg.is-logged { box-shadow: inset 0 0 0 1px #6EE270; }
.mc-cs { color: var(--mc-muted); } .mc-cs i { color: var(--accent); } .mc-cs-btn:hover, .mc-cs-btn:focus-visible { color: #F3A86E; } .mc-meta { color: var(--mc-muted); } .mc-pin { color: #F3A86E; }
.mc-menu button { background: var(--mc-ink-2); color: var(--mc-text); border-color: var(--mc-line); } .mc-menu .mc-menu-dm { background: var(--accent); border-color: var(--accent); }
.mc-form { border-top: 1px solid var(--mc-line); background: var(--mc-ink-2); } .mc-form input { background: var(--mc-ink); color: var(--mc-text); border: 1px solid var(--mc-line); border-radius: 6px; padding: 0 .6rem; } .mc-form input::placeholder { color: var(--mc-muted); } .mc-form input:focus { outline: 2px solid var(--accent); outline-offset: 0; } .mc-send { background: var(--accent); }
.mc-st { color: var(--mc-muted); background: var(--mc-ink-2); padding-top: .2rem; } .mc-list .jobs-empty { color: var(--mc-muted); }
.mc-dock { position: fixed; right: 12px; bottom: 0; z-index: 69; display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .4rem 1rem .5rem; border: 2px solid var(--accent); border-bottom: 0; border-radius: 10px 10px 0 0; background: #0B0C0B; color: #ECEAE2; font: 700 .74rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; box-shadow: 0 -6px 24px rgba(0,0,0,.35); }
.mc-dock svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; } .mc-dock.has-unread { border-color: #F3A86E; } .mc-dock .mc-count { background: #fff; color: var(--accent-strong); }
@media (max-width: 767px) { .mc-panel { right: 0; width: 100vw; border-radius: 0; border-left: 0; border-right: 0; } .mc-dock { right: 8px; bottom: calc(var(--z5-h, 0px) + env(safe-area-inset-bottom, 0px)); } body.ww-hud .mc-dock { bottom: calc(var(--z5-h, 64px) + env(safe-area-inset-bottom, 0px)); } }
/* Tier 172 — chat date / time stamps: a day divider and a clock time on every line */
.mc-day { display: flex; align-items: center; gap: .6rem; margin: .3rem 0; color: var(--mc-muted, #A8ABA3); font: 700 .68rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; } .mc-day::before, .mc-day::after { content: ""; flex: 1; height: 1px; background: var(--mc-line, #2C2F2B); }
.mc-meta time { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--mc-text, inherit); }

/* ===========================================================================
   Tier 173 — the brand pass: "Field Paper · Ember · Moss". The palette the app already wears, now named as ramps and
   applied as one treatment to every silhouette in the library: the figure stands on a moss horizon, throws a long ember
   shadow across the paper, and carries a halftone grain — the look of a field journal, not a job board. Light, dark
   (journal) and NVG each keep their own tokens; the ramps below are the shared source. No new hues: ember, moss, paper, ink.
   =========================================================================== */
:root {
  --ember-100: #FBE9DC; --ember-300: #F3A86E; --ember-500: #E28249; --ember-700: #C14D1D; --ember-900: #9C3E15;
  --moss-100: #E1E8D6; --moss-300: #B9CBAA; --moss-500: #8DAC78; --moss-700: #4E6546; --moss-900: #2F4A35;
  --paper-100: #FBFBF5; --paper-300: #F5F7EF; --paper-500: #E6EAE0; --paper-700: #DAE0D0; --paper-900: #B7C1AC;
  --ink-900: #0B0C0B; --ink-700: #1A2119; --ink-500: #47534A; --ink-300: #A6B29B;
  --figure-shadow: rgba(156, 62, 21, .22); --figure-horizon: var(--moss-700); --figure-grain: rgba(26, 33, 25, .07);
}
:root[data-theme="dark"] { --figure-shadow: rgba(240, 152, 95, .18); --figure-horizon: var(--moss-500); --figure-grain: rgba(255, 255, 255, .05); }
:root[data-theme="nvg"] { --figure-shadow: rgba(110, 226, 112, .16); --figure-horizon: #6EE270; --figure-grain: rgba(110, 226, 112, .06); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --figure-shadow: rgba(240, 152, 95, .18); --figure-horizon: var(--moss-500); --figure-grain: rgba(255, 255, 255, .05); } }
/* the one treatment, on every silhouette the library draws */
.fd-door-sil, .landing-pathway-sil, .mc-sil, #deploy-sil, .wanted-fig, .ww-figure img, .sr-sil, #callsign-sil { filter: drop-shadow(14px 16px 0 var(--figure-shadow)); }
.fd-door-sil { opacity: .34; right: -4%; bottom: 0; }
.fd-door:hover .fd-door-sil { opacity: .55; }
.fd-door::after, .landing-pathway::after, .ww-figure::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--figure-horizon); clip-path: polygon(0 100%, 0 55%, 14% 35%, 26% 60%, 41% 20%, 55% 55%, 68% 30%, 82% 62%, 100% 25%, 100% 100%); opacity: .9; pointer-events: none; }
.landing-pathway { position: relative; overflow: hidden; }
.landing-pathway-sil { z-index: 1; } /* Tier 204: "position: relative" here had pulled the silhouette into the flow, leaving the reserved right column empty */
/* the figure card: a silhouette presented on its own — the asset library, posters, the store, the ceremony */
.ww-figure { position: relative; overflow: hidden; display: grid; grid-template-rows: 1fr auto; gap: .4rem; min-height: 240px; padding: 1rem 1rem 1.2rem; background: var(--surface); border: 1px solid var(--line); border-radius: 4px; background-image: var(--contour); background-size: 420px; background-position: center bottom; }
.ww-figure::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(var(--figure-grain) 1px, transparent 1.2px); background-size: 6px 6px; pointer-events: none; mix-blend-mode: multiply; }
:root:not([data-theme="light"]) .ww-figure::before, :root[data-theme="dark"] .ww-figure::before, :root[data-theme="nvg"] .ww-figure::before { mix-blend-mode: screen; }
.ww-figure img { position: relative; z-index: 1; display: block; max-height: 190px; width: auto; max-width: 80%; margin: 0 auto; align-self: end; }
.ww-figure figcaption { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; font: 700 .68rem/1.2 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.ww-figure figcaption b { min-width: 0; overflow-wrap: anywhere; font-family: "Big Shoulders Display", Impact, sans-serif; font-size: 1.1rem; letter-spacing: .02em; color: var(--ink); }
.ww-figure-code { color: var(--accent-strong); }
.ww-figure.is-hero { min-height: 360px; } .ww-figure.is-hero img { max-height: 300px; }
/* the store: real art instead of letters */
.store-art { position: relative; overflow: hidden; background: var(--surface-alt); border: 1px solid var(--line); background-image: var(--contour); background-size: 300px; }
.store-art img { position: relative; z-index: 1; height: 80px; width: auto; filter: drop-shadow(8px 9px 0 var(--figure-shadow)); }
.store-art::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--figure-horizon); clip-path: polygon(0 100%, 0 55%, 20% 25%, 40% 60%, 60% 20%, 80% 55%, 100% 30%, 100% 100%); }
.store-art-patch { border-radius: 50%; width: 90px; border: 3px solid var(--accent-strong); } .store-art-patch img { height: 56px; }
.store-art-tee, .store-art-pullover { background: var(--ink-900); background-image: none; } .store-art-lockup { height: 60px !important; filter: none !important; }
.store-art-patch img { filter: drop-shadow(0 3px 4px rgba(0,0,0,.3)) !important; height: 78px !important; }
/* the asset-library page */
.brand-main { max-width: 1180px; }
.br-ramps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8rem; margin: .6rem 0; }
.br-ramp { display: grid; gap: 2px; } .br-ramp b { font: 800 .8rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .3rem; }
.br-ramp i { display: flex; align-items: center; height: 44px; padding: 0 .6rem; font: 700 .7rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; font-style: normal; border: 1px solid rgba(0,0,0,.08); }
.br-type .br-display { font-family: "Big Shoulders Display", Impact, sans-serif; font-weight: 800; font-size: 2rem; text-transform: uppercase; line-height: 1; margin: .4rem 0; }
.br-type .br-mono { font: 700 .95rem/1.4 "JetBrains Mono", monospace; letter-spacing: .06em; margin: .4rem 0; } .br-type .br-serif { font-size: 1.1rem; margin: .4rem 0; }
.br-figures { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .8rem; margin: .6rem 0; }
.br-marks { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin: .6rem 0; }
.br-mark { padding: 1.2rem; border: 1px solid var(--line); background: var(--surface); } .br-mark .wm { font-family: "Big Shoulders Display", Impact, sans-serif; font-weight: 800; font-size: 2rem; line-height: 1; } .br-mark .wm sup { font-size: .8rem; vertical-align: top; } .br-mark .wm .h { font: 400 .9rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; }
.br-mark .voice { display: inline-block; font-family: "Big Shoulders Display", Impact, sans-serif; font-weight: 800; font-size: 3.4rem; line-height: .9; text-transform: uppercase; } .br-mark .voice sup { font-size: 1rem; vertical-align: top; }
.br-mark-voice { background: var(--ink-900); color: var(--paper-300); } .br-mark-voice .small-muted { color: var(--ink-300); }
.br-art { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin: .6rem 0; }
.br-art-item { margin: 0; padding: 1rem; border: 1px solid var(--line); background: var(--surface); display: grid; gap: .5rem; } .br-art-item img { width: 100%; height: auto; max-height: 320px; object-fit: contain; }
.br-art-dark { background: var(--ink-900); color: var(--paper-300); } .br-art-chest img { max-height: 160px; }
.br-art-item figcaption { font-size: .85rem; color: var(--ink-soft); } .br-art-dark figcaption { color: var(--ink-300); }
.br-rules { padding-left: 1.3rem; } .br-rules li { margin: .45rem 0; }
@media (max-width: 600px) { .br-figures { grid-template-columns: 1fr 1fr; gap: .6rem; } }

/* ---- Tier 174 · photos in Mission chat: the camera control, the preview strip, the photo in the room, the lightbox */
.mc-photo-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border: 1px solid var(--mc-line, var(--line)); border-radius: 6px; background: var(--mc-ink, var(--surface)); color: var(--accent); cursor: pointer; flex: 0 0 auto; }
.mc-photo-btn svg { width: 22px; height: 22px; fill: currentColor; } .mc-photo-btn:hover, .mc-photo-btn:focus-within { outline: 2px solid var(--accent); outline-offset: 0; }
.mc-form input[type="text"] { min-width: 0; }
.mc-preview { display: flex; align-items: center; gap: .6rem; padding: .45rem .6rem; border-top: 1px solid var(--mc-line, var(--line)); background: var(--mc-ink-2, var(--surface-alt)); color: var(--mc-text, var(--ink)); }
.mc-preview img { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; border: 1px solid var(--mc-line, var(--line)); flex: 0 0 auto; }
.mc-preview-meta { flex: 1; font: 600 .7rem/1.35 "JetBrains Mono", monospace; letter-spacing: .04em; color: var(--mc-muted, var(--ink-soft)); }
.mc-preview-x { min-width: 40px; min-height: 40px; border: 1px solid var(--mc-line, var(--line)); border-radius: 6px; background: transparent; color: inherit; cursor: pointer; }
.mc-photo { display: block; max-width: 100%; margin: .15rem 0; border-radius: 8px; overflow: hidden; border: 1px solid var(--mc-line, var(--line)); background: #000; }
.mc-photo img { display: block; width: 100%; height: auto; max-height: 260px; object-fit: contain; }
.mc-light { position: fixed; inset: 0; z-index: 90; background: rgba(0, 0, 0, .92); display: grid; place-items: center; padding: 1rem; }
.mc-light img { max-width: 100%; max-height: calc(100vh - 2rem); object-fit: contain; box-shadow: 0 10px 40px rgba(0,0,0,.6); }
.mc-light-x { position: fixed; top: max(12px, env(safe-area-inset-top, 0px)); right: 12px; min-width: 44px; min-height: 44px; border: 1px solid #555; border-radius: 6px; background: #0B0C0B; color: #fff; font-size: 1.1rem; cursor: pointer; }
.mc-light-open { position: fixed; bottom: max(14px, env(safe-area-inset-bottom, 0px)); left: 50%; transform: translateX(-50%); font: 700 .72rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: #F3A86E; padding: .6rem .9rem; border: 1px solid #333; border-radius: 6px; background: #0B0C0B; }

/* ---- Tier 175 · photos on the map: the position toggle on the preview strip, the fix line, the photo card on the GIS page */
.mc-geo-opt { display: inline-flex; align-items: center; gap: .3rem; font: 600 .68rem/1 "JetBrains Mono", monospace; letter-spacing: .04em; color: var(--mc-text, var(--ink)); cursor: pointer; white-space: nowrap; }
.mc-geo-opt input { width: 18px; height: 18px; accent-color: var(--accent); margin: 0; }
.mc-geo { display: inline-block; font: 600 .7rem/1.3 "JetBrains Mono", monospace; letter-spacing: .03em; color: var(--accent); text-decoration: none; margin-top: .1rem; } .mc-geo:hover { text-decoration: underline; }
.gis-photo-card { display: grid; gap: .4rem; padding: .5rem; border: 1px solid var(--line); background: var(--surface); margin-bottom: .5rem; }
.gis-photo-card .gis-photo-full img { display: block; width: 100%; max-height: 220px; object-fit: contain; background: #000; border-radius: 6px; }
.gis-photo-card p { margin: 0; font-size: .9rem; }
.gis-photo-list li button { display: flex; gap: .5rem; align-items: center; text-align: left; width: 100%; }
.gis-photo-list img { width: 48px; height: 36px; object-fit: cover; border-radius: 4px; flex: 0 0 auto; background: #000; }
@media (max-width: 600px) { .mc-preview { flex-wrap: wrap; } .mc-geo-opt { order: 3; flex-basis: 100%; } }

/* ---- Tier 176 · chat without a link: a queued line waits in the room, dashed, until it sends */
.mc-msg.is-queued { border-style: dashed; opacity: .78; } .mc-msg.is-queued .mc-queued-mark { font-weight: 700; color: var(--accent); }
.mc-msg.is-queued .mc-photo img { filter: grayscale(.4); }

/* ---- Tier 177 · who is reachable: the roster strip under the chat tabs */
.mc-roster { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .45rem; padding: .35rem .6rem; border-bottom: 1px solid var(--mc-line, var(--line)); background: var(--mc-ink, var(--surface)); font: 600 .66rem/1 "JetBrains Mono", monospace; letter-spacing: .04em; }
.mc-roster-sum { color: var(--mc-muted, var(--ink-soft)); margin-right: .2rem; } .mc-roster-sum b { color: #6EE270; }
#mc-roster .mc-who { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .5rem; min-height: 28px; border: 1px solid var(--mc-line, var(--line)); border-radius: 999px; background: transparent; color: var(--mc-text, var(--ink)); font: inherit; cursor: pointer; text-transform: uppercase; }
#mc-roster .mc-who.is-me { cursor: default; border-style: dashed; } #mc-roster .mc-who.is-command { border-color: var(--accent); }
#mc-roster .mc-who i { width: 8px; height: 8px; border-radius: 50%; background: #555; flex: 0 0 auto; }
#mc-roster .mc-who.is-live i { background: #6EE270; box-shadow: 0 0 6px #6EE270; } #mc-roster .mc-who.is-recent i { background: #F3A86E; } #mc-roster .mc-who.is-quiet i { background: #8a8d86; } #mc-roster .mc-who.is-never i { background: transparent; border: 1px solid #8a8d86; }
#mc-roster .mc-who.is-quiet, #mc-roster .mc-who.is-never { opacity: .7; }

/* ---- Tier 178 · the chat log link in the window head (command only) */
.mc-log { align-self: center; font: 700 .66rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); text-decoration: none; padding: .4rem .5rem; border: 1px solid var(--mc-line, var(--line)); border-radius: 6px; } .mc-log:hover { text-decoration: underline; }

/* ---- Tier 179/180 · the soundtrack toggle in the operator's Mission Console rail (a switch, not a player) */
.mc-sound { grid-column: 1 / -1; display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; padding-top: .6rem; }
.mc-sound .mc-sw-label { display: inline-flex; align-items: center; gap: .45rem; font: 700 .72rem/1.3 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.ps-bars { display: inline-flex; align-items: flex-end; gap: 2px; height: 12px; } .ps-bars i { width: 2px; height: 3px; background: var(--ink-soft); border-radius: 1px; }
.mc-sound.is-playing .ps-bars i { background: var(--moss-500); animation: ps-bar 1.1s ease-in-out infinite; } .mc-sound.is-playing .ps-bars i:nth-child(2) { animation-delay: .15s; } .mc-sound.is-playing .ps-bars i:nth-child(3) { animation-delay: .3s; }
@keyframes ps-bar { 0%, 100% { height: 3px; } 50% { height: 12px; } }
@media (prefers-reduced-motion: reduce) { .mc-sound.is-playing .ps-bars i { animation: none; height: 8px; } }
.mc-sound.is-armed .mc-sw { border-color: var(--accent); }

/* ---- Tier 181 · radio check: the banner under the roster, the one-tap answer, command's tally */
.mc-radio { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; padding: .55rem .7rem; border-bottom: 2px solid var(--accent); background: linear-gradient(90deg, rgba(193, 77, 29, .22), transparent); color: var(--mc-text, var(--ink)); }
.mc-rc-head { font: 700 .7rem/1.3 "JetBrains Mono", monospace; letter-spacing: .06em; } .mc-rc-tally { color: #6EE270; } .mc-rc-left { color: var(--mc-muted, var(--ink-soft)); }
.mc-rc-ack { flex-basis: 100%; height: 56px; min-height: 56px; border: 0; border-radius: 8px; background: var(--accent); color: #fff; font: 800 1.05rem/1 "Big Shoulders Display", Impact, sans-serif; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; animation: ww-breathe 1.6s ease-in-out infinite; }
.mc-rc-ack:disabled { opacity: .6; animation: none; }
.mc-rc-done { font: 700 .72rem/1 "JetBrains Mono", monospace; color: #6EE270; letter-spacing: .06em; }
.mc-rc-miss { flex: 1; font-size: .82rem; color: var(--mc-muted, var(--ink-soft)); } .mc-rc-close { min-height: 36px; padding: 0 .7rem; border: 1px solid var(--mc-line, var(--line)); border-radius: 6px; background: transparent; color: inherit; font: 700 .68rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.mc-rc-start { border-color: var(--accent) !important; color: var(--accent) !important; } .mc-rc-start::before { content: none; }
#mc-roster .mc-who.is-acked::after { content: '✓'; color: #6EE270; font-weight: 800; margin-left: .15rem; }
@media (prefers-reduced-motion: reduce) { .mc-rc-ack { animation: none; } }

/* ---- Tier 185 · the beta waiting list form */
#beta-waitlist-card .field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .6rem 1rem; }
#beta-waitlist-card .field-row.gear-row { grid-template-columns: auto 1fr; align-items: center; } #beta-waitlist-card .field input, #beta-waitlist-card .field select { width: 100%; min-width: 0; box-sizing: border-box; }

/* ---- Tier 188 · the dispatch chevrons (crew-call alert mark) and the card for the Page */
.rfd-chev { display: inline-flex; align-items: center; gap: .1em; height: 1em; vertical-align: -.1em; --chev: var(--ember-700, #C14D1D); }
.rfd-chev i { display: block; width: .55em; height: .55em; border-top: .17em solid var(--chev); border-right: .17em solid var(--chev); transform: rotate(45deg); margin-right: -.18em; opacity: .5; }
.rfd-chev i:nth-child(2) { opacity: .78; } .rfd-chev i:nth-child(3) { opacity: 1; }
.rfd-chev.on-ember { --chev: var(--paper-300, #F5F7EF); }
.rfd-chev.is-live i { animation: rfd-chev-run 1.6s ease-in-out infinite; } .rfd-chev.is-live i:nth-child(2) { animation-delay: .22s; } .rfd-chev.is-live i:nth-child(3) { animation-delay: .44s; }
@keyframes rfd-chev-run { 0%, 70%, 100% { opacity: .35; } 20%, 40% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .rfd-chev.is-live i { animation: none; } }
.mc-stat .mc-chev { font-size: .9rem; margin-bottom: .15rem; } .ad-admin-head h4 .rfd-chev { font-size: .9em; margin-right: .1em; }
.feed-block h2 .rfd-chev { font-size: .85em; }
.ww-modal:has(.pc-card) { width: min(94vw, 760px); }
.pc-card .pc-canvas { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; border: 1px solid var(--line); background: var(--paper-300, #F5F7EF); }
.pc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; margin: .7rem 0 .5rem; }
.pc-post { width: 100%; box-sizing: border-box; font: 400 .85rem/1.45 "Source Serif 4", Georgia, serif; padding: .5rem .6rem; border: 1px solid var(--line); background: var(--surface-alt); color: inherit; resize: vertical; }
.pc-steps { margin: .7rem 0 .3rem; padding-left: 1.1rem; font-size: .88rem; } .pc-steps li { margin: .3rem 0; } .pc-steps li.is-on { color: var(--accent-strong); }
.pc-note { margin: .4rem 0 0; font-size: .78rem; }

/* ---- Tier 192 · typography rule (Andrew, Oct 27): no runts — the last line of a paragraph carries at least two words;
   headlines balanced; orphans/widows 2 in print. Browsers without text-wrap simply ignore it. */
p, li, dd, blockquote, .lede, .small-muted, .pending-meta { text-wrap: pretty; }
h1, h2, h3, .hero h1, .dm-cat-head h4 { text-wrap: balance; }
@media print { p, li, dd, blockquote { orphans: 2; widows: 2; } h1, h2, h3, h4 { break-after: avoid; } }
/* Tier 197 · two-line minimum across page breaks in print: a card, a figure, a list item or a short block never splits */
@media print { .ww-card, .landing-pathway, article, figure, blockquote, li, dl, .field, tr { break-inside: avoid; } h1, h2, h3, h4 { break-inside: avoid; } p { break-inside: auto; } }

/* ---- Tier 193 · the 02:14 scene on every hero (js/ww-scene.js). The section goes full-bleed ink; its own copy sits on
   top in paper; the helicopter, its searchlight and the pool of light live on the right; chevrons top-right. */
.is-night { position: relative; isolation: isolate; overflow: hidden; margin-inline: calc(50% - 50vw); padding-inline: calc(50vw - 50% + 1rem); padding-block: 3.2rem 2.6rem; background: linear-gradient(180deg, #0B0C0B 0%, #121712 55%, #1A2119 100%); color: #F5F7EF;
  --ink: #F5F7EF; --ink-soft: #DAE0D0; --line: rgba(245,247,239,.22); --accent: #C14D1D; --accent-strong: #E28249; --accent-ink: #FFF6EF; --surface: rgba(11,12,11,.72); --surface-alt: rgba(11,12,11,.6); --shadow: rgba(0,0,0,.6); --contour: none; }
.is-night::before { display: none; }
.is-night > * { position: relative; z-index: 2; }
.is-night .kicker, .is-night .fd-founding-kicker { color: #8DAC78; }
.is-night h1 { color: #F5F7EF; text-wrap: balance; animation: ww-h1-glow 6s ease-in-out infinite; }
.is-night .lede, .is-night .fd-lede, .is-night p { color: #DAE0D0; }
.is-night .hero-cta-secondary { border-color: rgba(245,247,239,.35); color: #F5F7EF; }
.is-night .hero-cta-secondary:hover { border-color: #F5F7EF; }
.is-night a:not(.hero-cta):not(.btn-accent):not(.btn-chev) { color: #F3A86E; }
.is-night .fd-founding { background: rgba(11,12,11,.72); border-color: rgba(245,247,239,.18); backdrop-filter: blur(2px); }
.is-night .fd-founding-num { color: #F5F7EF; } .is-night .fd-founding-bar { background: rgba(245,247,239,.15); }
@keyframes ww-h1-glow { 0%, 100% { text-shadow: 0 0 0 rgba(243,168,110,0); } 50% { text-shadow: 0 0 28px rgba(243,168,110,.22), 0 0 2px rgba(245,247,239,.3); } }
.ww-scene { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.ww-scene-sky { position: absolute; inset: 0; } .ww-scene-sky svg { width: 100%; height: 100%; display: block; }
.ww-scene .ww-s1, .ww-scene .ww-s2, .ww-scene .ww-s3 { animation: ww-twinkle 5s ease-in-out infinite; } .ww-scene .ww-s2 { animation-duration: 7s; animation-delay: -2s; } .ww-scene .ww-s3 { animation-duration: 9s; animation-delay: -5s; }
@keyframes ww-twinkle { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
.ww-scene-land { position: absolute; left: 0; right: 0; bottom: 0; height: 46%; min-height: 140px; }
.ww-scene .ww-ridge { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; display: block; }
.ww-heli { position: absolute; right: 6vw; top: 7%; height: clamp(110px, 24vh, 220px); aspect-ratio: 327 / 420; animation: ww-hover 6s ease-in-out infinite; }
.ww-heli img { position: absolute; left: 0; top: 0; height: 100%; width: auto; opacity: .96; }
.ww-lamp { position: absolute; left: 66%; top: 28%; width: 80px; height: 80px; margin: -40px 0 0 -40px; border-radius: 50%; background: radial-gradient(circle, rgba(251,251,245,.95) 0, rgba(251,251,245,.4) 9%, rgba(251,251,245,0) 60%); animation: ww-lamp 3s ease-in-out infinite; }
.ww-beam { position: absolute; left: 66%; top: 28%; width: 26vw; min-width: 200px; height: 34vh; max-height: 300px; transform-origin: 50% 0; transform: translateX(-50%) rotate(-24deg); background: linear-gradient(180deg, rgba(251,251,245,.34) 0%, rgba(251,251,245,.14) 70%, rgba(251,251,245,.04) 100%); clip-path: polygon(48% 0, 52% 0, 100% 100%, 0 100%); mix-blend-mode: screen; animation: ww-sweep 11s ease-in-out infinite; }
.ww-pool { position: absolute; left: var(--px, 76vw); bottom: 30%; width: 16vw; height: 6vh; margin-left: -8vw; border-radius: 50%; background: radial-gradient(ellipse at center, rgba(251,251,245,.26) 0%, rgba(251,251,245,.08) 45%, rgba(251,251,245,0) 70%); mix-blend-mode: screen; animation: ww-pool 11s ease-in-out infinite; }
@property --px { syntax: '<length>'; inherits: false; initial-value: 76vw; }
@keyframes ww-sweep { 0%, 100% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(-44deg); } }
@keyframes ww-pool { 0%, 100% { --px: 87vw; } 50% { --px: 65vw; } }
@keyframes ww-lamp { 0%, 100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes ww-hover { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.ww-scene-chev { position: absolute; right: 1.2rem; top: 1.1rem; display: inline-flex; align-items: center; gap: .1em; height: 1em; font-size: 1rem; z-index: 1; }
.ww-scene-chev i { display: block; width: .55em; height: .55em; border-top: .17em solid #C14D1D; border-right: .17em solid #C14D1D; transform: rotate(45deg); margin-right: -.18em; opacity: .5; animation: rfd-chev-run 1.6s ease-in-out infinite; }
.ww-scene-chev i:nth-child(2) { animation-delay: .22s; } .ww-scene-chev i:nth-child(3) { animation-delay: .44s; }
.is-night::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, transparent 0, rgba(245,247,239,.03) 50%, transparent 100%); background-size: 100% 220px; animation: ww-scan 9s linear infinite; mix-blend-mode: screen; }
@keyframes ww-scan { 0% { background-position: 0 -220px; } 100% { background-position: 0 100%; } }
.fd-hero.is-night { align-items: end; margin-inline: 0; padding-inline: 1.4rem; border-radius: 6px; }
@media (max-width: 720px) { .is-night { padding-block: 8.2rem 2.2rem; } .ww-heli { right: 4vw; top: 14px; height: 104px; } .ww-beam { width: 50vw; height: 150px; } .ww-pool { bottom: 26%; width: 34vw; margin-left: -17vw; } .ww-scene-chev { font-size: .85rem; } }
@media (prefers-reduced-motion: reduce) { .is-night h1, .is-night::after, .ww-scene .ww-s1, .ww-scene .ww-s2, .ww-scene .ww-s3, .ww-heli, .ww-lamp, .ww-beam, .ww-pool, .ww-scene-chev i { animation: none !important; } }
@media print { .ww-scene, .is-night::after { display: none; } .is-night { background: none; color: inherit; } }
.fd-hero .ww-heli { height: clamp(120px, 18vh, 160px); top: 3%; right: 2vw; }
.fd-hero .ww-beam { height: 46vh; max-height: 420px; }

/* ---- Tier 194 · the band: the scene under the app's page heads (feed, incident home, planner, map tools, ledgers) */
.is-night { max-width: none; }
.is-band { padding-block: 1.5rem 1.3rem; margin-bottom: 1.2rem; }
.is-band .ww-scene-land { height: 42%; min-height: 70px; }
.is-band h1, .is-band h2 { color: #F5F7EF; animation: none; }
.is-band .auth-message, .is-band .feed-sub, .is-band .small-muted, .is-band p { color: #DAE0D0; }
.is-band select, .is-band input, .is-band button.btn-unfeature { color-scheme: dark; background: rgba(11,12,11,.6); color: #F5F7EF; border-color: rgba(245,247,239,.3); }
.is-band .feed-ready.is-ready { color: #6EE270; } .is-band .feed-ready.is-not { color: #F3A86E; }
.is-band .ww-scene-chev { top: .9rem; }
.is-band::after { animation-duration: 14s; }
@media (max-width: 720px) { .is-band { padding-block: 1.3rem 1.1rem; } }

/* ---------- Tier 196 — the chevron button (Andrew, Oct 27: "replace the rectangle submit button with the animated three-chevron button") ----------
   js/ww-chev.js decorates every primary button (.btn-accent, .hero-cta-primary, submit buttons) with the three-chevron
   dispatch mark and cuts the button's right end to a chevron point. The chevrons rise .5/.78/1 at rest and run on hover,
   keyboard focus, and while the button is working (form submitted, or disabled by a script mid-fetch). Still under
   prefers-reduced-motion. The label is unchanged; the mark is aria-hidden. */
.btn-chev { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6em; padding-right: 1.9em !important; border-radius: 2px 0 0 2px !important;
  clip-path: polygon(0 0, calc(100% - .75em) 0, 100% 50%, calc(100% - .75em) 100%, 0 100%); max-width: 100%; text-align: center; }
.btn-chev .rfd-chev { --chev: currentColor; font-size: .9em; margin-left: -.1em; flex: none; }
.btn-chev.has-mark { padding-right: 1.6em !important; }
.btn-chev:hover .rfd-chev i, .btn-chev:focus-visible .rfd-chev i, .btn-chev.is-busy .rfd-chev i, .btn-chev:disabled.is-busy .rfd-chev i { animation: rfd-chev-run 1.6s ease-in-out infinite; }
.btn-chev:hover .rfd-chev i:nth-child(2), .btn-chev:focus-visible .rfd-chev i:nth-child(2), .btn-chev.is-busy .rfd-chev i:nth-child(2) { animation-delay: .22s; }
.btn-chev:hover .rfd-chev i:nth-child(3), .btn-chev:focus-visible .rfd-chev i:nth-child(3), .btn-chev.is-busy .rfd-chev i:nth-child(3) { animation-delay: .44s; }
.btn-chev:focus-visible, .is-night .btn-chev.hero-cta-primary:focus-visible, :root[data-theme="nvg"] .btn-chev:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent-ink, #FFF6EF), inset 0 0 0 4px var(--accent-strong, #9C3E15); } /* Tier 202: the night hero's and NVG's resting inset shadows outranked the ring */ /* clip-path hides an outline, so the ring sits inside */
.btn-chev.is-busy { cursor: progress; }
.btn-chev:disabled .rfd-chev { opacity: .7; }
.btn-chev.hero-cta-primary { padding-right: 2.1em !important; }
/* clip-path clips anything outside the box, so no outer glow: the night hero's CTA gets a paper hairline inside its edge */
.is-night .btn-chev.hero-cta-primary { box-shadow: inset 0 0 0 1px rgba(255, 246, 239, .22); }
:root[data-theme="nvg"] .btn-chev { box-shadow: inset 0 0 16px rgba(210, 133, 31, .45); }
@media (max-width: 767px) { .btn-chev { min-height: 44px; } }
@media (prefers-reduced-motion: reduce) { .btn-chev .rfd-chev i { animation: none !important; } }
@media print { .btn-chev { clip-path: none; } .btn-chev .rfd-chev { display: none; } }

/* ---------- Tier 198 — the desk chip under every hero (js/ww-scene.js chip()): the phosphor page from the under-construction
   site, typing a real line from the desk with the UTC clock ticking in its header. Band pages carry none; data-chip="off" opts out. */
.ww-chip { position: relative; z-index: 2; grid-column: 1 / -1; justify-self: start; width: min(100%, 38rem); margin-top: 1.4rem; padding: .7rem 1rem .8rem; border: 1px solid rgba(110,226,112,.45); border-radius: 6px;
  background: rgba(11,12,11,.72); color: #6EE270; font: 600 .84rem/1.55 "JetBrains Mono", monospace; text-wrap: pretty; backdrop-filter: blur(2px); box-shadow: inset 0 0 18px rgba(110,226,112,.06), 0 0 24px rgba(110,226,112,.08); }
.ww-chip-note { position: absolute; right: .8rem; top: .6rem; font-size: .58rem; letter-spacing: .14em; color: #8DAC78; text-transform: uppercase; font-weight: 500; }
.ww-chip-from { font-size: .62rem; letter-spacing: .2em; color: #8DAC78; margin-bottom: .25rem; text-transform: uppercase; font-weight: 500; }
.ww-chip-clock { font-variant-numeric: tabular-nums; }
.ww-chip-txt { display: inline; white-space: pre-wrap; } .ww-chip-txt .y { color: #F5F7EF; }
.ww-chip-cur { display: inline-block; width: .55em; height: 1em; vertical-align: -.15em; background: #6EE270; margin-left: .1em; animation: ww-chip-blink 1s steps(2, start) infinite; }
@keyframes ww-chip-blink { to { visibility: hidden; } }
.fd-hero.is-night .ww-chip { margin-top: .2rem; }
@media (max-width: 720px) { .ww-chip { width: 100%; font-size: .8rem; margin-top: 1.1rem; } .ww-chip-note { display: none; } }
@media (prefers-reduced-motion: reduce) { .ww-chip-cur { animation: none; } }
@media print { .ww-chip { display: none; } }

/* ---------- Tier 199 — off the map: the 404 and offline pages open on the scene (404 with the searchlight, offline on the quiet band
   with no desk chip — the desk cannot be reached). The card with the links sits under it as before. */
.lost-hero { width: 100%; padding-block: 3rem 2.4rem; text-align: left; }
.lost-hero .kicker { margin: 0 0 .5rem; } .lost-hero h1 { font-size: clamp(2.2rem, 6vw, 3.6rem); line-height: 1; margin: 0 0 .7rem; max-width: 14ch; }
.lost-hero .lede { max-width: 46ch; margin: 0; }
.auth-page-main > .lost-hero + .auth-card { margin-top: -.2rem; }
@media (max-width: 720px) { .lost-hero { padding-block: 8.2rem 1.8rem; } }

/* ---------- Tier 202 — the keyboard: a skip link first in the tab order on every page (hidden until focused, then the
   chevron button at the top-left), and a focus ring on every control that lacked one. */
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 1000; font: 700 .78rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; background: var(--accent); color: var(--accent-ink); padding: .75rem 1.35rem; border-radius: 2px; text-decoration: none; transition: top .15s; }
.skip-link:focus, .skip-link:focus-visible { top: 1rem; outline: 2px solid var(--accent-ink); outline-offset: -5px; }
main:focus { outline: none; }
input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible, label:focus-visible, [role="button"]:focus-visible, [role="tab"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.is-night a:focus-visible, .is-night button:focus-visible, .is-band a:focus-visible, .is-band button:focus-visible { outline-color: #F5F7EF; }

/* ---------- Tier 203 — contrast: what the contrast sweep found on ink. Muted copy, superscripts and links inside the dark footer
   and the night band read in paper; the broadcast pill keeps the day ember behind paper; the feedback pill keeps its own colours. */
footer .small-muted, footer p.small-muted { color: var(--footer-ink); } footer .small-muted a, footer p.small-muted a { color: var(--footer-link); }
.is-night .small-muted, .is-band .small-muted, .is-night sup, .is-band sup, .is-night .muted, .is-band .muted { color: #DAE0D0; }
.is-night .landing-tier-code, .is-band .landing-tier-code { background: #C14D1D; color: #FFF6EF; }
.is-night .cert-option, .is-band .cert-option { color: #F5F7EF; }
.beta-trigger, .is-band .beta-trigger, .is-night .beta-trigger { color: var(--ink); background: var(--surface); }
a.btn-accent, a.btn-chev, a.hero-cta { text-decoration: none; }

/* ---------- Tier 222 — Intent (js/ww-intent.js): the one line at the top of every signed-in page in the desk chip's phosphor,
   the mark opens the palette, ✕ puts the line away for a day on this device. The palette is the same list, typed-to-filter. */
.ww-intent { display: flex; align-items: baseline; flex-wrap: wrap; gap: .35rem .7rem; width: 100%; max-width: 72rem; margin: .9rem auto .2rem; padding: .55rem .8rem .6rem; border: 1px solid rgba(110,226,112,.45); border-radius: 6px;
  background: rgba(11,12,11,.86); color: #6EE270; font: 600 .82rem/1.5 "JetBrains Mono", monospace; text-wrap: pretty; box-shadow: inset 0 0 18px rgba(110,226,112,.06); }
.ww-intent-open { background: none; border: 0; padding: .1rem .2rem; cursor: pointer; line-height: 1; font-size: 1.1rem; border-radius: 3px; }
.ww-intent-open:focus-visible { outline: 2px solid #6EE270; outline-offset: 2px; }
.ww-intent-mark { --chev: #6EE270; }
.ww-intent-from { font-size: .6rem; letter-spacing: .2em; color: #8DAC78; font-weight: 500; }
.ww-intent-line { color: #F5F7EF; text-decoration: none; flex: 1 1 20rem; min-width: 0; }
a.ww-intent-line:hover, a.ww-intent-line:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
a.ww-intent-line:focus-visible { outline: 2px solid #6EE270; outline-offset: 2px; border-radius: 2px; }
.ww-intent-why, .ww-intent-x { background: none; border: 1px solid rgba(110,226,112,.35); color: #8DAC78; border-radius: 3px; cursor: pointer; font: 500 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; padding: .3rem .45rem; min-height: 28px; }
.ww-intent-why:hover, .ww-intent-x:hover, .ww-intent-why:focus-visible, .ww-intent-x:focus-visible { color: #F5F7EF; border-color: #6EE270; outline: none; }
.ww-intent-whytext { flex-basis: 100%; font-weight: 500; font-size: .74rem; color: #8DAC78; }
.ww-intent-pal { position: fixed; inset: 0; z-index: 1200; background: rgba(11,12,11,.62); display: grid; place-items: start center; padding: 12vh 1rem 1rem; backdrop-filter: blur(2px); }
.ww-intent-palbox { width: min(100%, 38rem); background: #0B0C0B; border: 1px solid rgba(110,226,112,.5); border-radius: 8px; box-shadow: 0 0 40px rgba(110,226,112,.12); padding: .8rem .9rem .6rem; color: #6EE270; font: 600 .84rem/1.5 "JetBrains Mono", monospace; display: grid; grid-template-columns: auto 1fr; gap: .4rem .6rem; align-items: center; }
.ww-intent-palbox .ww-intent-mark { --chev: #6EE270; font-size: 1.1rem; }
.ww-intent-q { width: 100%; background: #121712; color: #F5F7EF; border: 1px solid rgba(110,226,112,.35); border-radius: 4px; padding: .55rem .7rem; font: 600 .95rem/1.3 "JetBrains Mono", monospace; min-height: 44px; }
.ww-intent-q:focus { outline: 2px solid #6EE270; outline-offset: 1px; }
.ww-intent-list { grid-column: 1 / -1; list-style: none; margin: .3rem 0 0; padding: 0; max-height: 50vh; overflow: auto; }
.ww-intent-list li a { display: block; padding: .5rem .6rem; color: #F5F7EF; text-decoration: none; border-radius: 4px; border-left: 3px solid transparent; }
.ww-intent-list li.is-sel a, .ww-intent-list li a:hover { background: rgba(110,226,112,.1); border-left-color: #C14D1D; }
.ww-intent-list small { display: block; color: #8DAC78; font-weight: 500; font-size: .7rem; margin-top: .1rem; }
.ww-intent-sub { display: inline-block; min-width: 4.2em; font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: #8DAC78; font-weight: 500; margin-right: .4rem; }
.ww-intent-none { padding: .6rem; color: #8DAC78; font-weight: 500; }
.ww-intent-foot { grid-column: 1 / -1; font-size: .64rem; color: #8DAC78; font-weight: 500; letter-spacing: .04em; margin-top: .3rem; }
body.ww-intent-open { overflow: hidden; }
@media (max-width: 720px) { .ww-intent { margin: .7rem 0 0; border-radius: 0; border-left: 0; border-right: 0; font-size: .78rem; } .ww-intent-from { display: none; } .ww-intent-pal { padding-top: 2rem; } }
@media (prefers-reduced-motion: reduce) { .ww-intent-pal { backdrop-filter: none; } }
@media print { .ww-intent, .ww-intent-pal { display: none !important; } }

/* ---------- Tier 227 — instructor listings: the discipline chips on a card, the destination line under the application. */
.job-chip-discipline { border-color: var(--accent); color: var(--accent); }
#app-destination { margin: .2rem 0 .6rem; font-family: "JetBrains Mono", monospace; font-size: .78rem; }
#pj-disciplines { max-height: 260px; }

/* ---------- Tier 228 — the Mission Ledger card: the rate grid, the equipment rows, the statement's add line and totals. */
.ledger-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .5rem .8rem; }
.ledger-grid label { display: flex; flex-direction: column; gap: .2rem; font-family: "JetBrains Mono", monospace; font-size: .74rem; letter-spacing: .06em; }
.ledger-grid input[type="number"] { width: 100%; }
#lr-equipment { grid-template-columns: 1fr; }
.ledger-eq { display: grid; grid-template-columns: 1fr 7rem 7rem 2.4rem; gap: .4rem; align-items: center; }
.ledger-add { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin: .6rem 0; }
.ledger-add input[type="number"] { width: 6rem; }
.ledger-totals { font-family: "JetBrains Mono", monospace; font-size: .82rem; }
.ledger-frame { display: flex; flex-direction: column; gap: .35rem; margin: .5rem 0; }
.ms-hours { width: 5.5rem; }
@media (max-width: 720px) { .ledger-eq { grid-template-columns: 1fr 1fr; } .ledger-eq .eq-label { grid-column: 1 / -1; } }
.ledger-calls, .ledger-statement { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.ledger-calls table, .ledger-statement table { min-width: 560px; }
#mission-ledger-card { overflow: hidden; }

/* ---------- Tier 229 — the credential wallet (the card's QR on paper, the full-screen view) and the check-in page's result card. */
.wallet-qr-wrap { display: grid; justify-items: center; gap: .4rem; margin: .6rem 0; padding: .8rem; background: #F5F7EF; border-radius: 8px; }
.wallet-qr-wrap canvas { max-width: 100%; height: auto; image-rendering: pixelated; }
.wallet-under { margin: 0; font-family: "JetBrains Mono", monospace; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #0B0C0B; }
.wallet-full { position: fixed; inset: 0; z-index: 1300; background: #FFFFFF; display: grid; place-items: center; align-content: center; gap: .6rem; cursor: pointer; }
.wallet-full canvas { max-width: 96vw; max-height: 80vh; height: auto; image-rendering: pixelated; }
.wallet-full p { margin: 0; font-family: "JetBrains Mono", monospace; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: #0B0C0B; }
.ci-card { margin-top: .8rem; } .ci-card tr.is-lapsed td { color: var(--accent); }
.credential-overall-status.is-verified { color: var(--moss); } .credential-overall-status.is-rejected { color: var(--accent); }

/* ---------- Tier 230 — the gate roster: the gate panel on the check-in page and the desk card. */
.ci-gate { margin-top: 1rem; }
.ci-roster, .gr-calls, .gr-table { width: 100%; }
#ci-gate, #gate-roster-card { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
tr.ci-checked-in td:nth-child(3) { color: var(--accent); font-weight: 600; }
tr.ci-released td:nth-child(3), tr.ci-cleared td:nth-child(3) { color: var(--muted); }
tr.ci-no-show td:nth-child(3) { color: var(--red); font-weight: 600; }
tr.ci-walk-up td:nth-child(3) { font-weight: 600; }

/* ---------- Tier 234 — Horizon: the command seat's one screen on a live call. */
.hz-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.hz-pick select { max-width: 100%; }
.hz-alert { border: 2px solid var(--red); padding: .5rem .8rem; border-radius: 6px; margin: .6rem 0; font-weight: 600; }
.hz-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; margin-top: 1rem; }
.hz-panel { border: 1px solid var(--line); border-radius: 8px; padding: .7rem .9rem; min-width: 0; overflow-x: auto; }
.hz-panel-wide { grid-column: 1 / -1; }
.hz-panel h2 { font-size: 1.05rem; margin: 0 0 .3rem; display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap; align-items: baseline; }
.hz-src { font-family: var(--mono); font-size: .72rem; font-weight: 400; color: var(--muted); letter-spacing: .04em; }
.hz-big { font-family: var(--display); font-size: 1.35rem; font-weight: 700; margin: .2rem 0 .5rem; line-height: 1.15; }
.hz-list { list-style: none; margin: 0; padding: 0; } .hz-list li { padding: .25rem 0; border-top: 1px solid var(--line); font-size: .9rem; }
.hz-table td, .hz-table th { font-size: .86rem; }
tr.hz-sev-extreme td:nth-child(2) > b { color: var(--red); } tr.hz-sev-severe td:nth-child(2) > b { color: var(--accent); }
@media (max-width: 640px) { .hz-grid { grid-template-columns: 1fr; } .hz-panel-wide { grid-column: auto; } }

/* Tier 236 — Forecast card */
.fc-grid { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr 1fr; margin: .5rem 0; }
@media (max-width: 640px) { .fc-grid { grid-template-columns: 1fr; } }
.fc-block { border: 1px solid var(--line); padding: .6rem .75rem; } .fc-block h3 { font-family: var(--display); font-size: .95rem; letter-spacing: .04em; text-transform: uppercase; margin: 0 0 .35rem; }
.fc-block p { margin: 0; font-size: .9rem; } #fc-lapse { grid-column: 1 / -1; }
.fc-list { list-style: none; margin: 0; padding: 0; } .fc-list li { padding: .3rem 0; border-top: 1px solid var(--line); font-size: .9rem; } .fc-list li:first-child { border-top: 0; }
.fc-list li.fc-now, .fc-list li.fc-lapsed { border-left: 3px solid var(--ember, #E28249); padding-left: .5rem; } .fc-list li.fc-window { border-left: 3px solid var(--phosphor, #6EE270); padding-left: .5rem; }
.fc-band { font-family: var(--display); font-size: 1.35rem; font-weight: 700; line-height: 1.15; margin: 0 0 .35rem !important; } .fc-band-busy { color: var(--ember, #E28249); } .fc-band-quiet { opacity: .8; }
.fc-rec { text-decoration: underline; text-underline-offset: 2px; }

/* Tier 237 — seat proposals, tool nudges, the haptics switch */
.cc-propose { margin: .4rem 0 0; } .cc-propose.is-proposed { border-left: 3px solid var(--phosphor, #6EE270); padding-left: .5rem; }
.ww-intent.ww-intent-is-nudge .ww-intent-from { opacity: .7; }
.mc-haptics .mc-sw-label { font: 700 .72rem/1.3 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }

/* Tier 240 — the air-request ledger */
.cmd-air-copy { font-style: italic; }
.cmd-air-table td { vertical-align: top; } .cmd-air-table tr.cmd-air-declined td:nth-child(4) b { color: var(--ember, #E28249); } .cmd-air-table tr.cmd-air-accepted td:nth-child(4) b { color: var(--phosphor-ink, #2f7a35); }
.cmd-air-req, .cmd-air-answer, .cmd-air-est form { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: .5rem; } .cmd-air-answer { border: 1px solid var(--line); padding: .5rem; } .cmd-air-answer-title { font-family: var(--display); font-weight: 700; }
.cmd-air-est { margin-top: .5rem; } .cmd-air-est summary { cursor: pointer; }

/* Tier 241 — the federal seam */
.ar-ics260 summary { cursor: pointer; font-weight: 600; } .ar-ics260[open] { border: 1px solid var(--line); padding: .5rem .75rem; }
.ar-260 { font-family: "JetBrains Mono", monospace; font-size: .8rem; } .bid-vipr em { font-style: italic; opacity: .8; }
.vf-vipr .cc-matrix-grid { margin-top: .5rem; }

/* Tier 244 — the pack follows the call: the Maps line in the Mission Console rail, the call's map line on deploy, the agency response area, the desk card */
.mc-packs { display: block; } .mc-packs details.pf > summary { cursor: pointer; list-style: none; display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; } .mc-packs details.pf > summary::-webkit-details-marker { display: none; }
.mc-packs .mc-sw-label { font: 700 .72rem/1.3 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.mc-packs .pf-cells { margin: .4rem 0 0; padding-left: 1.1rem; } .mc-packs .pf-cells code { font-size: .8rem; } .mc-packs .pf-ctl { margin: .4rem 0 0; display: flex; gap: .9rem; align-items: center; flex-wrap: wrap; }
.deploy-packs { margin: .4rem 0 0; } .deploy-packs .link-btn { margin-left: .4rem; }
.agency-aor { margin-top: .6rem; } .agency-aor .form-row { align-items: end; } .agency-aor code { font-size: .8rem; }
.packs-grid { display: grid; grid-template-columns: auto 1fr auto auto; gap: .25rem .8rem; font-size: .85rem; align-items: baseline; } .packs-grid .pk-st { font: 700 .68rem/1.4 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.packs-grid .pk-st-built { color: var(--moss-600, #4f6b3a); } .packs-grid .pk-st-wanted, .packs-grid .pk-st-building { color: var(--accent); } .packs-grid .pk-st-failed { color: var(--red, #b2412a); } .packs-grid .pk-st-retire { opacity: .6; }
