/* Loaded after the landing styles; the shared theme script owns .dark. */
:root {
  color-scheme: light;
  --theme-surface: #fff;
  --theme-hover: #edf1f6;
}

.landing-theme-menu { position: relative; z-index: 5; }
.landing-theme-trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 7px;
  list-style: none;
  color: var(--muted);
  font-size: 12px;
  font-weight: 550;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.landing-theme-trigger::-webkit-details-marker { display: none; }
.landing-theme-trigger:hover,
.landing-theme-menu[open] .landing-theme-trigger { background: var(--theme-hover); color: var(--ink); }
.landing-theme-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 160px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--theme-surface);
  box-shadow: 0 12px 32px #0002;
}
.landing-theme-option {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  text-align: left;
}
.landing-theme-option-icon { display: flex; }
.landing-theme-option:hover,
.landing-theme-option[data-theme-active="true"] { background: var(--theme-hover); color: var(--ink); }
.landing-theme-option[data-theme-active="true"]::after { content: "✓"; margin-left: auto; color: var(--blue); }

/* A restrained slate palette keeps source text, forms, and diagram paths readable. */
:root.dark {
  color-scheme: dark;
  color: #e5eaf0;
  background: #111922;
  --ink: #e5eaf0;
  --muted: #a9b6c5;
  --line: #354350;
  --paper: #111922;
  --blue: #91b3ff;
  --theme-surface: #1b2733;
  --theme-hover: #2a3a4d;
  --landing-secondary: #bbc8d5;
  --landing-soft: #a9b6c5;
  --landing-accent: #91b3ff;
  --landing-success: #8bcab2;
  --landing-warning: #e2b978;
}
.dark .hero,
.dark .request-section { background: var(--paper); }
.dark .hero-copy h1 em,
.dark .tools-heading h2 em { color: var(--landing-accent); }
.dark .hero-lead { color: var(--landing-secondary); }
.dark .hero-footnote { color: var(--landing-soft); }
.dark .header-cta { background: #e5eaf0; color: #17202a; }
.dark .header-cta:hover { background: #fff; }
.dark .primary-action { background: #315fe0; color: #fff; }
.dark .primary-action:hover { background: #244fc8; }
.dark :is(a, button, summary, input, select, textarea):focus-visible { outline-color: var(--landing-accent); }
.dark .secondary-action { border-color: #70849a; }
.dark .skip-link { background: var(--theme-surface); }

.dark .agent-tools { background: #172330; }
.dark .tools-heading > p,
.dark .tool-descriptions p { color: var(--landing-secondary); }
.dark .tool-descriptions > div { border-color: var(--line); }
.dark .tool-descriptions > div > span,
.dark .agent-tools .secondary-action { color: var(--landing-accent); }

/* Application, validation, and confirmation must stay readable throughout both steps. */
.dark :is(.numbered-label, .fit-label) { color: var(--landing-accent); }
.dark .request-intro > p,
.dark .application-questions details > p { color: var(--landing-secondary); }
.dark :is(.cohort-fit, .application-questions, .application-questions details) { border-color: var(--line); }
.dark .cohort-fit strong { color: var(--ink); }
.dark :is(.cohort-fit > div > span, .cohort-fit > p, .application-questions summary::after) { color: var(--landing-soft); }
.dark .request-card { background: #1b2733; border-color: var(--line); box-shadow: 0 15px 40px #0002; }
.dark .survey-progress { color: var(--landing-soft); }
.dark .progress-track { background: #354350; }
.dark .progress-track span { background: var(--landing-accent); }
.dark .step-kicker { color: var(--landing-accent); }
.dark :is(.step-description, .completion-description) { color: var(--landing-secondary); }
.dark .text-label { color: var(--ink); }
.dark :is(input:not([type=checkbox]), select, textarea) { background: #15212e; color: var(--ink); border-color: #516273; }
.dark :is(input, textarea)::placeholder { color: #9cadbe; }
.dark :is(input, select, textarea):focus { border-color: var(--landing-accent); }
.dark .extra-details { border-color: var(--line); }
.dark .extra-details summary span,
.dark .extra-details summary::after { color: var(--landing-soft); }
.dark .form-error { background: #462a29; color: #ffc2b8; }
.dark .text-button { color: var(--landing-secondary); }
.dark .text-button:hover { color: var(--landing-accent); }
.dark .request-note { color: var(--landing-soft); border-color: var(--line); }
.dark .completion-mark { background: #213a34; color: var(--landing-success); }
.dark .compatibility-note { background: #223044; color: var(--landing-secondary); }
.dark .site-footer { color: var(--landing-soft); }
.dark .site-footer .brand { color: var(--ink); }
.dark .site-footer a:hover { color: var(--landing-accent); }

@media (max-width: 520px) {
  .landing-theme-trigger { padding-inline: 9px; }
  .header-actions .landing-theme-trigger { width: 36px; padding: 0; border-color: transparent; }
  .landing-theme-trigger > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}
@media (prefers-reduced-motion: reduce) {
  .landing-theme-trigger { transition: none; }
}

.dark .join-main h1 em{color:var(--landing-accent)}
.dark .signup-confirmation p,.dark .signup-note,.dark .preferences-intro,.dark .preferences-status,.dark .join-lead{color:var(--muted)}
.dark .preference-choice:hover>span{background:var(--theme-hover);border-color:#91b3ff}
.dark .preference-choice input:checked+span{background:#253e68;border-color:#91b3ff;box-shadow:inset 0 0 0 1px #91b3ff;color:#e5eaf0}
.dark .preference-choice input:focus-visible+span{outline-color:var(--landing-accent)}
