/* ===========================================================================
   tokens.css — GENERIERT AUS design/tokens.json — NICHT VON HAND AENDERN (build_tokens.py)

   Die einzige Stelle, an der Farbe, Abstand, Radius, Schrift, Bewegung und
   Ebenen definiert werden. theme.css baut ausschliesslich hierauf auf.
   Jedes sichtbare Text/Hintergrund-Paar erfuellt WCAG 2.1 AA (4.5:1) —
   nachgerechnet in test_design_system.py, nicht nach Augenmass.
=========================================================================== */

:root{
  /* ---- Farbe (hell) ---- */
  --accent:#0D6EFD;
  --accent-hover:#0b5ed7;
  --accent-active:#0a53be;
  --accent-soft:#eaf1fe;
  --accent-text:#0b5ed7;
  --text-on-accent:#ffffff;
  --surface-page:#f6f7f9;
  --surface:#ffffff;
  --surface-2:#f1f2f5;
  --surface-3:#e8eaee;
  --border:#e4e6ec;
  --border-strong:#d3d6de;
  --text:#171a21;
  --text-muted:#5b6172;
  --text-faint:#646d84;
  --text-disabled:#9aa1b2;
  --success:#178a4c;
  --success-soft:#e8f8ee;
  --success-text:#136c3c;
  --success-strong:#147a43;
  --warning:#b5680a;
  --warning-soft:#fdf1de;
  --warning-text:#8a4f07;
  --warning-strong:#a35d09;
  --danger:#c22437;
  --danger-soft:#fdeaec;
  --danger-text:#b01e30;
  --danger-strong:#c22437;
  --info:#1d5fd1;
  --info-soft:#eaf1fd;
  --info-text:#1a55bd;
  --focus-ring:#0D6EFD;
  --overlay:rgba(9,13,20,.52);
  --skeleton-base:#eceef2;
  --skeleton-sheen:#f6f7f9;
  --ferien:#d9480f;
  --ferien-soft:#ffe8d9;
  --ferien-text:#a8380b;
  --abwesend:#6741d9;
  --abwesend-soft:#efeafd;
  --abwesend-text:#5130b5;

  /* ---- Abstand ---- */
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:20px;
  --sp-6:24px;
  --sp-7:32px;
  --sp-8:40px;
  --sp-9:48px;
  --sp-10:64px;

  /* ---- Radius ---- */
  --r-sm:8px;
  --r-md:12px;
  --r-lg:16px;
  --r-xl:20px;
  --r-pill:999px;

  /* ---- Schrift ---- */
  --fs-xs:13px;
  --fs-sm:14.5px;
  --fs-base:16px;
  --fs-md:17px;
  --fs-lg:20px;
  --fs-xl:24px;
  --fs-2xl:30px;
  --fs-3xl:38px;
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;
  --fw-black:800;
  --lh-tight:1.25;
  --lh-snug:1.35;
  --lh-normal:1.5;
  --lh-relaxed:1.65;
  --ls-tighter:-.025em;
  --ls-tight:-.015em;
  --ls-normal:0;
  --ls-wide:.05em;
  --ls-wider:.07em;
  --font-ui:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji';
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace;

  /* ---- Groessen (Bedienelemente, Touch-Ziele, Layout) ---- */
  --size-control-sm:32px;
  --size-control-md:40px;
  --size-control-lg:48px;
  --size-touch-min:44px;
  --size-icon-sm:14px;
  --size-icon-md:18px;
  --size-icon-lg:22px;
  --size-sidebar:248px;
  --size-content-max:1280px;

  /* ---- Elevation (hell) ---- */
  --shadow-sm:0 1px 2px rgba(16,24,40,.06), 0 1px 1px rgba(16,24,40,.04);
  --shadow-md:0 4px 10px rgba(16,24,40,.07), 0 2px 4px rgba(16,24,40,.05);
  --shadow-lg:0 16px 36px rgba(16,24,40,.12), 0 4px 10px rgba(16,24,40,.06);
  --shadow-xl:0 28px 72px rgba(16,24,40,.20), 0 8px 20px rgba(16,24,40,.10);

  /* ---- Bewegung ---- */
  --dur-instant:80ms;
  --dur-fast:120ms;
  --dur-normal:180ms;
  --dur-slow:260ms;
  --ease-standard:cubic-bezier(.2,0,0,1);
  --ease-enter:cubic-bezier(0,0,.2,1);
  --ease-exit:cubic-bezier(.4,0,1,1);

  /* ---- Ebenen ---- */
  --z-base:1;
  --z-sticky:100;
  --z-sidebar:200;
  --z-backdrop:300;
  --z-drawer:400;
  --z-dropdown:500;
  --z-modal:600;
  --z-toast:700;
  --z-tooltip:800;

  /* ---- Breakpoints (nur zur Dokumentation — @media kann keine var() lesen) ---- */
  --bp-sm:480px;
  --bp-md:720px;
  --bp-lg:900px;
  --bp-xl:1200px;

  color-scheme: light;
}

[data-theme="dark"]{
  --accent:#3b8bff;
  --accent-hover:#5b9bf5;
  --accent-active:#2f7be6;
  --accent-soft:rgba(59,139,255,.16);
  --accent-text:#8fbaff;
  --text-on-accent:#08111f;
  --surface-page:#0e1015;
  --surface:#161922;
  --surface-2:#1e222c;
  --surface-3:#272c38;
  --border:#2b3040;
  --border-strong:#3a4055;
  --text:#eef0f5;
  --text-muted:#a3aabd;
  --text-faint:#959db2;
  --text-disabled:#6d7690;
  --success:#3ecb7e;
  --success-soft:rgba(62,203,126,.16);
  --success-text:#5fd894;
  --success-strong:#3ecb7e;
  --warning:#f0a83c;
  --warning-soft:rgba(240,168,60,.16);
  --warning-text:#f3b95f;
  --warning-strong:#f0a83c;
  --danger:#ff6b78;
  --danger-soft:rgba(255,107,120,.16);
  --danger-text:#ff8a94;
  --danger-strong:#ff6b78;
  --info:#5b9bf5;
  --info-soft:rgba(91,155,245,.16);
  --info-text:#82b3f8;
  --focus-ring:#7db3ff;
  --overlay:rgba(0,0,0,.62);
  --skeleton-base:#222734;
  --skeleton-sheen:#2b3140;
  --ferien:#ff922b;
  --ferien-soft:rgba(255,146,43,.20);
  --ferien-text:#ffa94d;
  --abwesend:#9775fa;
  --abwesend-soft:rgba(151,117,250,.20);
  --abwesend-text:#b197fc;

  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 6px 16px rgba(0,0,0,.35);
  --shadow-lg:0 20px 44px rgba(0,0,0,.45);
  --shadow-xl:0 32px 80px rgba(0,0,0,.55);

  color-scheme: dark;
}

/* ===========================================================================
   Alt-Namen (Kompatibilitaet)

   Neun Seiten und 752 inline-styles verweisen noch auf die frueheren Namen.
   Diese Zuordnung haelt sie korrekt, waehrend Phase 9 Modul fuer Modul
   migriert. Ein Eintrag darf erst verschwinden, wenn keine Datei ihn mehr
   benutzt — genau das prueft test_design_system.py.
=========================================================================== */
:root,[data-theme="dark"]{
  --gold:var(--accent);
  --gold-soft:var(--accent-hover);
  --ink:var(--text);
  --ink-dim:var(--text-muted);
  --line:var(--border);
  --navy-950:var(--surface-page);
  --navy-900:var(--surface);
  --navy-800:var(--surface);
  --navy-700:var(--surface-2);
  --navy-600:var(--surface-3);
  --card:var(--surface);
  --card-border:var(--border);
  --bg:var(--surface-page);
  --muted:var(--text-muted);
  --dim:var(--text-muted);
  --good:var(--success);
  --ok:var(--success);
  --ok-soft:var(--success-soft);
  --err:var(--danger);
  --err-soft:var(--danger-soft);
  --warn:var(--warning);
  --warn-soft:var(--warning-soft);
  --panel:var(--surface);
  --panel2:var(--surface-2);
  --accent-contrast:var(--text-on-accent);
  --on-accent:var(--text-on-accent);
  --accent-deep:var(--accent-active);
  --header-bg:var(--surface);
  --input-bg:var(--surface);
  --input-border:var(--border-strong);
  --hint-color:var(--text-faint);
  --shadow-card:var(--shadow-sm);
}
