/* =============================================================================
   agent-dev-toolkit — committed dark design tokens (DESIGN-BRIEF)
   Wave 1 Task B — tokens + chrome + home class API (no motion yet)
   ============================================================================= */

/* -----------------------------------------------------------------------------
   1. Design tokens
   ----------------------------------------------------------------------------- */
:root {
  --bg: oklch(0.16 0.02 250);
  --surface: oklch(0.22 0.025 250);
  --text: oklch(0.93 0.01 250);
  --muted: oklch(0.70 0.02 250);
  --accent: oklch(0.78 0.14 195);
  --accent-dim: oklch(0.45 0.08 195);
  /* Dark ink on filled primary — AA ≥4.5:1 vs --accent (teal L≈0.78) */
  --on-accent: oklch(0.18 0.035 250);
  --danger: oklch(0.65 0.18 25);

  --font-display: "Sora", system-ui, sans-serif;
  --font-body: "Atkinson Hyperlegible", system-ui, sans-serif;
  --font-code: "JetBrains Mono", ui-monospace, monospace;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;

  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --measure: 72ch;
  --focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent-dim);

  /* Material palette bridge — kill default purple/pink */
  --md-default-fg-color: var(--text);
  --md-default-fg-color--light: var(--muted);
  --md-default-fg-color--lighter: color-mix(in oklch, var(--muted) 70%, var(--bg));
  --md-default-fg-color--lightest: color-mix(in oklch, var(--muted) 40%, var(--bg));
  --md-default-bg-color: var(--bg);
  --md-default-bg-color--light: color-mix(in oklch, var(--surface) 80%, var(--bg));
  --md-default-bg-color--lighter: var(--surface);
  --md-default-bg-color--lightest: color-mix(in oklch, var(--surface) 60%, var(--bg));

  --md-primary-fg-color: var(--accent);
  --md-primary-fg-color--light: color-mix(in oklch, var(--accent) 80%, white);
  --md-primary-fg-color--dark: var(--accent-dim);
  --md-primary-bg-color: var(--bg);
  --md-primary-bg-color--light: var(--surface);

  --md-accent-fg-color: var(--accent);
  --md-accent-fg-color--transparent: color-mix(in oklch, var(--accent) 10%, transparent);
  --md-accent-bg-color: var(--bg);

  --md-typeset-color: var(--text);
  --md-typeset-a-color: var(--accent);
  --md-typeset-mark-color: color-mix(in oklch, var(--accent) 35%, transparent);

  --md-code-fg-color: var(--text);
  --md-code-bg-color: var(--surface);
  --md-code-hl-color: color-mix(in oklch, var(--accent) 20%, transparent);
  --md-code-hl-color--light: color-mix(in oklch, var(--accent) 12%, transparent);

  --md-footer-fg-color: var(--muted);
  --md-footer-fg-color--light: var(--text);
  --md-footer-fg-color--lighter: var(--muted);
  --md-footer-bg-color: color-mix(in oklch, var(--bg) 85%, black);
  --md-footer-bg-color--dark: var(--bg);

  --md-typeset-table-color: color-mix(in oklch, var(--muted) 35%, transparent);
  --md-typeset-table-color--light: color-mix(in oklch, var(--muted) 18%, transparent);

  --md-admonition-fg-color: var(--text);
  --md-admonition-bg-color: var(--surface);

  --md-warning-fg-color: var(--danger);
  --md-warning-bg-color: color-mix(in oklch, var(--danger) 12%, var(--surface));
}

/* Force dark scheme tokens even if Material scheme toggles */
[data-md-color-scheme="default"],
[data-md-color-scheme="slate"] {
  --md-default-fg-color: var(--text);
  --md-default-fg-color--light: var(--muted);
  --md-default-bg-color: var(--bg);
  --md-default-bg-color--light: color-mix(in oklch, var(--surface) 80%, var(--bg));
  --md-default-bg-color--lighter: var(--surface);
  --md-primary-fg-color: var(--accent);
  --md-primary-bg-color: var(--bg);
  --md-accent-fg-color: var(--accent);
  --md-typeset-a-color: var(--accent);
  --md-code-bg-color: var(--surface);
  --md-footer-bg-color: color-mix(in oklch, var(--bg) 85%, black);
}

/* -----------------------------------------------------------------------------
   2. Base typography + chrome
   ----------------------------------------------------------------------------- */
html {
  background-color: var(--bg);
  color: var(--text);
}

body {
  font-family: var(--font-body);
  background-color: var(--bg);
  color: var(--text);
}

.md-typeset {
  font-family: var(--font-body);
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.65;
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3 {
  font-family: var(--font-display);
  letter-spacing: -0.03em;
  color: var(--text);
  font-weight: 600;
}

.md-typeset h1 {
  letter-spacing: -0.04em;
  font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
}

.md-typeset code,
.md-typeset pre,
.md-typeset kbd {
  font-family: var(--font-code);
}

.md-typeset a {
  color: var(--accent);
}

.md-typeset a:hover {
  color: color-mix(in oklch, var(--accent) 85%, white);
}

.md-typeset a:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}

/* Article measure guidance */
.md-content__inner > :is(p, ul, ol, dl, blockquote, .admonition) {
  max-width: var(--measure);
}

.md-header,
.md-tabs {
  background-color: var(--bg);
  color: var(--text);
  box-shadow: none;
  border-bottom: 1px solid color-mix(in oklch, var(--accent-dim) 45%, transparent);
}

.md-header__title,
.md-header__topic,
.md-header__button,
.md-tabs__link {
  color: var(--text);
}

.md-tabs__link--active,
.md-tabs__link:focus,
.md-tabs__link:hover {
  color: var(--accent);
}

.md-search__form {
  background-color: var(--surface);
}

.md-search__input {
  color: var(--text);
}

.md-search__input::placeholder {
  color: var(--muted);
}

.md-footer {
  border-top: 1px solid color-mix(in oklch, var(--accent-dim) 40%, transparent);
}

/* Kill Material primary purple header fill leftovers */
.md-header--shadow,
[data-md-color-primary] .md-header {
  background-color: var(--bg);
}

/* Visible focus across Material chrome */
.md-header__button:focus-visible,
.md-nav__link:focus-visible,
.md-tabs__link:focus-visible,
.md-search__input:focus-visible,
.md-footer a:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}

/* -----------------------------------------------------------------------------
   3. Skip link
   ----------------------------------------------------------------------------- */
.adt-skip-link,
.md-skip {
  position: absolute;
  inset-inline-start: var(--space-4);
  top: var(--space-4);
  z-index: 1000;
  padding: var(--space-2) var(--space-4);
  background: var(--surface);
  color: var(--accent);
  border: 1px solid var(--accent-dim);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-200%);
}

.adt-skip-link:focus,
.adt-skip-link:focus-visible,
.md-skip:focus,
.md-skip:focus-visible {
  transform: translateY(0);
  outline: none;
  box-shadow: var(--focus-ring);
}

#adt-main:focus {
  outline: none;
}

#adt-main:focus-visible {
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}

/* -----------------------------------------------------------------------------
   4. Home hero region API (Task D consumers)
   ----------------------------------------------------------------------------- */

/*
  Contract for home page authors
  --------------------------------
  .home-hero                 Outer composition for first viewport (no card chrome)
  .home-brand                Product name — display font, hero-level
  .home-headline             Single H1-scale line under brand
  .home-lead                 One supporting sentence (muted)
  .home-cta                  CTA group wrapper
  .home-cta__primary         Filled primary (Copy) — --accent bg + --on-accent text
  .home-cta__secondary       Outline secondary (Get started)
  .home-cta__copy            Copy-command shell (layout + success/error)
  .home-cta__note            Muted fixture-first hint (full-width under CTAs)
  .home-cta__status          Live region for copy success/error
  .home-diagram              Dominant SVG diagram region
  .agent-switcher            Switcher root (radiogroup)
  .agent-switcher__label     Visible radiogroup legend
  .agent-switcher__options    Flat flex-wrap row of all 8 agent chips
  .agent-switcher__option    Per-agent radio + label (visible without JS)
  .agent-switcher__badge     Optional compact label on an option (unused on home; keep for future)
  .agent-switcher__hint      Live-root install hint (__note aliases same rules)
  .home-secondary-links      Below-fold Skills / Adapters row
  .reveal / .reveal--*       Load reveal hooks (prefers-reduced-motion gated)
*/

.home-hero {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding-block: var(--space-6) var(--space-7);
  max-width: 56rem;
}

.home-brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2rem, 1.4rem + 3vw, 3.25rem);
  letter-spacing: -0.04em;
  line-height: 1.1;
  color: var(--text);
  margin: 0;
}

.home-headline {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.25rem, 1rem + 1.2vw, 1.75rem);
  letter-spacing: -0.04em;
  line-height: 1.25;
  color: var(--text);
  margin: 0;
  max-width: var(--measure);
}

.home-lead {
  font-family: var(--font-body);
  font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
  line-height: 1.6;
  color: var(--muted);
  margin: 0;
  max-width: 42rem;
}

.home-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  margin-block: var(--space-2);
}

/* Shared interactive reset for CTA controls */
.home-cta__primary,
.home-cta__secondary,
.home-cta__copy > .md-button,
.home-cta__copy > button,
.home-cta > .md-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 2.75rem;
  padding: var(--space-3) var(--space-5);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out;
}

/* Filled primary — dark ink on teal (AA); not light-on-teal */
.home-cta__primary,
.home-cta__copy > .md-button,
.home-cta__copy > button {
  background-color: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
}

.home-cta__primary:hover,
.home-cta__copy > .md-button:hover,
.home-cta__copy > button:hover {
  background-color: color-mix(in oklch, var(--accent) 88%, white);
  border-color: color-mix(in oklch, var(--accent) 88%, white);
  color: var(--on-accent);
}

.home-cta__primary:focus-visible,
.home-cta__copy > .md-button:focus-visible,
.home-cta__copy > button:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

/* Pressed: darken accent via color-mix (not --accent-dim) so --on-accent stays AA ≥4.5:1 */
.home-cta__primary:active,
.home-cta__copy > .md-button:active,
.home-cta__copy > button:active {
  background-color: color-mix(in oklch, var(--accent) 82%, black);
  border-color: color-mix(in oklch, var(--accent) 82%, black);
  color: var(--on-accent);
}

.home-cta__primary:disabled,
.home-cta__primary[aria-disabled="true"],
.home-cta__copy > .md-button:disabled,
.home-cta__copy > button:disabled,
.home-cta__copy > .md-button[aria-disabled="true"],
.home-cta__copy > button[aria-disabled="true"] {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

/* Outline secondary — Get started */
.home-cta__secondary,
.home-cta > a.md-button,
.home-cta > a.md-button--primary,
.home-cta > .md-button.md-button--primary {
  background-color: transparent;
  color: var(--accent);
  border-color: var(--accent-dim);
}

.home-cta__secondary:hover,
.home-cta > a.md-button:hover,
.home-cta > a.md-button--primary:hover,
.home-cta > .md-button.md-button--primary:hover {
  background-color: color-mix(in oklch, var(--accent) 10%, var(--surface));
  border-color: var(--accent);
  color: var(--accent);
}

.home-cta__secondary:focus-visible,
.home-cta > a.md-button:focus-visible,
.home-cta > a.md-button--primary:focus-visible,
.home-cta > .md-button.md-button--primary:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.home-cta__secondary:active,
.home-cta > a.md-button:active,
.home-cta > a.md-button--primary:active,
.home-cta > .md-button.md-button--primary:active {
  background-color: color-mix(in oklch, var(--accent-dim) 35%, var(--surface));
  border-color: var(--accent-dim);
  color: var(--accent);
}

.home-cta__secondary:disabled,
.home-cta__secondary[aria-disabled="true"] {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

/* Copy shell — layout only (not a fake button wrapper) */
.home-cta__copy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
}

/* Command code: direct under .home-cta or wrapped in .home-cta__copy */
.home-cta > code,
.home-cta > [data-sync-command],
.home-cta__copy > code,
.home-cta__copy [data-sync-command] {
  font-family: var(--font-code);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
  background-color: var(--surface);
  border: 1px solid color-mix(in oklch, var(--accent-dim) 50%, transparent);
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-3);
  max-width: 100%;
  overflow-x: auto;
}

.home-cta__note {
  font-family: var(--font-body);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--muted);
  margin: 0;
  max-width: var(--measure);
}

.home-cta__note,
.home-cta__status {
  flex-basis: 100%;
  width: 100%;
}

.home-cta__status {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--muted);
  min-height: 1.25em;
}

.home-cta__status:empty {
  display: none;
}

.home-cta__status.is-success,
.home-cta__copy.is-success .home-cta__status,
.home-cta__copy[data-state="success"] .home-cta__status {
  color: var(--accent);
}

.home-cta__status.is-error,
.home-cta__copy.is-error .home-cta__status,
.home-cta__copy[data-state="error"] .home-cta__status {
  color: var(--danger);
}

.home-cta__copy.is-success > .md-button,
.home-cta__copy[data-state="success"] > .md-button,
.home-cta__copy > .md-button.is-success,
.home-cta__copy > .md-button[data-state="success"],
.home-cta__copy > button.is-success,
.home-cta__copy > button[data-state="success"],
.home-cta__primary.is-success,
.home-cta__primary[data-state="success"] {
  background-color: color-mix(in oklch, var(--accent) 22%, var(--surface));
  border-color: var(--accent);
  color: var(--accent);
}

.home-cta__copy.is-error > .md-button,
.home-cta__copy[data-state="error"] > .md-button,
.home-cta__copy > .md-button.is-error,
.home-cta__copy > .md-button[data-state="error"],
.home-cta__copy > button.is-error,
.home-cta__copy > button[data-state="error"],
.home-cta__primary.is-error,
.home-cta__primary[data-state="error"] {
  background-color: color-mix(in oklch, var(--danger) 14%, var(--surface));
  border-color: var(--danger);
  color: var(--danger);
}

.home-diagram {
  width: 100%;
  max-width: 52rem;
  margin-block: var(--space-4);
  color: var(--text);
}

.home-diagram svg {
  display: block;
  width: 100%;
  height: auto;
}

/* Agent switcher — readable without JS; flat 8-chip radiogroup with flex wrap */
.agent-switcher {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  max-width: 52rem;
}

.agent-switcher__label {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text);
  margin: 0;
  letter-spacing: -0.01em;
}

/* Radiogroup options — radios + labels visible without JS */
.agent-switcher__options {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
}

.agent-switcher__option {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  background: transparent;
  border: 1px solid color-mix(in oklch, var(--accent-dim) 55%, transparent);
  border-radius: var(--radius-sm);
  color: var(--muted);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
  min-height: 2.75rem;
  padding: var(--space-2) var(--space-3);
  transition: color 120ms ease-out, border-color 120ms ease-out, background-color 120ms ease-out;
}

/* Native radios stay visible and operable (no clip/sr-only hide) */
.agent-switcher__option input[type="radio"] {
  position: static;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin: 0;
  padding: 0;
  accent-color: var(--accent);
  cursor: pointer;
}

.agent-switcher__option:hover {
  color: var(--text);
  border-color: var(--accent-dim);
  background-color: color-mix(in oklch, var(--surface) 80%, transparent);
}

.agent-switcher__option:focus-within {
  outline: none;
  box-shadow: var(--focus-ring);
}

.agent-switcher__option:has(input:checked) {
  color: var(--accent);
  border-color: var(--accent);
  background-color: color-mix(in oklch, var(--accent) 10%, var(--surface));
}

.agent-switcher__option:has(input:disabled) {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.agent-switcher__badge {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin-inline-start: var(--space-1);
  padding: 0.125rem var(--space-2);
  border-radius: var(--radius-sm);
  background-color: color-mix(in oklch, var(--accent) 18%, var(--surface));
  border: 1px solid color-mix(in oklch, var(--accent) 45%, transparent);
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-transform: uppercase;
}

.agent-switcher__hint,
.agent-switcher__note {
  font-family: var(--font-code);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--muted);
  margin: 0;
  max-width: var(--measure);
}

.home-secondary-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-block: var(--space-6) var(--space-4);
  padding-block-start: var(--space-5);
  border-top: 1px solid color-mix(in oklch, var(--accent-dim) 40%, transparent);
}

.home-secondary-links a {
  font-family: var(--font-body);
  font-weight: 700;
  color: var(--accent);
  text-decoration: none;
}

.home-secondary-links a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.home-secondary-links a:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}

/* -----------------------------------------------------------------------------
   5. Motion — load reveals (Wave 2 Task F)
   ease-out-quart; opacity + translateY only; short stagger
   ----------------------------------------------------------------------------- */
@keyframes adt-reveal-up {
  from {
    opacity: 0;
    transform: translateY(0.75rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.reveal {
  animation: adt-reveal-up 560ms cubic-bezier(0.25, 1, 0.5, 1) both;
}

.reveal--brand {
  animation-delay: 0ms;
}

.reveal--diagram {
  animation-delay: 90ms;
}

.reveal--switcher {
  animation-delay: 180ms;
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal--brand,
  .reveal--diagram,
  .reveal--switcher {
    animation: none !important;
    transition: none !important;
  }
}
