/* Nova Design System: Tokens + Basis (Quelle: ../Design/Nova Hausverwaltung Design System/tokens/).
   Abweichung vom Design System: Manrope wird selbst gehostet statt von Google Fonts geladen
   (keine IP-Übermittlung an Dritte). Schriftdatei:
     Quelle  github.com/google/fonts ofl/manrope/Manrope[wght].ttf (SIL OFL 1.1, s. fonts/OFL.txt)
             SHA-256 d0639be45d0af36e798172419d7bd173c4bd4f29e2b76cbb69db1d11bf8b0a40
     Subset  fonts/manrope-latin.woff2 (Latin-1, typografische Zeichen, €, ✓; Befehl im README)
             SHA-256 f50ee9b48423e3fdbcd071f42ee7963b406547ca288f3c35f20a67fcaff01a0c
   Fremde Seiten können die Datei nicht einbinden: /fonts/* wird ohne CORS-Freigabe ausgeliefert. */

@font-face {
  font-family: "Manrope";
  src: url("/fonts/manrope-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Brand */
  --nova-marine: #0B2545;
  --nova-accent: #FCA92C;
  --nova-accent-light: #FCA92C;
  --nova-text-2: #475569;
  --nova-bg: #F6F8FC;
  --nova-blue-pale: #E8EEF7;
  --nova-slate-300: #CBD5E1;
  /* Neutral */
  --gray-50: #F8FAFC; --gray-100: #F1F5F9; --gray-200: #E2E8F0; --gray-300: #CBD5E1; --gray-400: #94A3B8;
  --gray-500: #64748B; --gray-600: #475569; --gray-700: #334155; --gray-800: #1E293B; --gray-900: #0F172A;
  /* Akzent (Nova-Orange #FCA92C, seit 16.09.2026 statt Nova-Blau #2D5BFF). Zu hell für weiße Schrift
     und für Text auf Weiß: Schrift auf Akzentflächen ist Marine, Text in Akzentfarbe nimmt --accent-text. */
  --accent-50: #FFF8EE; --accent-100: #FFF1DD; --accent-200: #FEE1B5; --accent-300: #FDC46F;
  --accent-500: #FCA92C; --accent-600: #F0981A; --accent-700: #E08A10;
  --accent-800: #B87812; --accent-900: #8F5F14; --accent-950: #734C10;
  /* Status (nur für Vorgangs-Status) */
  --green-50: #ECFDF5; --green-500: #10B981; --green-700: #047857;
  --amber-50: #FFFBEB; --amber-500: #F59E0B; --amber-700: #B45309;
  --red-50: #FEF2F2; --red-500: #EF4444; --red-700: #B91C1C;
  /* Semantik */
  --surface-page: var(--nova-bg);
  --surface-card: #FFFFFF;
  --surface-sunken: var(--gray-100);
  --surface-inverse: var(--nova-marine);
  --surface-brand: var(--nova-accent);
  --surface-brand-soft: var(--accent-50);
  --text-heading: var(--nova-marine);
  --text-body: var(--gray-700);
  --text-secondary: var(--nova-text-2);
  --text-muted: var(--gray-400);
  --text-on-brand: var(--nova-marine);
  --text-on-inverse: #FFFFFF;
  --text-on-inverse-muted: var(--nova-slate-300);
  --text-link: var(--accent-text);
  --text-link-hover: var(--accent-950);
  --border-default: var(--gray-200);
  --border-strong: var(--gray-300);
  --border-focus: var(--accent-800);
  --accent: var(--nova-accent);
  --accent-hover: var(--accent-600);
  --accent-active: var(--accent-700);
  --accent-light: var(--nova-accent-light);
  --accent-text: var(--accent-900);
  /* „In Bearbeitung" bleibt blau: in Akzentfarbe wäre es neben „Läuft" (Amber) nicht unterscheidbar */
  --status-progress-bg: #EEF3FF; --status-progress-fg: #1F47E0;
  --status-done-bg: var(--green-50); --status-done-fg: var(--green-700);
  --status-running-bg: var(--amber-50); --status-running-fg: var(--amber-700);
  --status-planned-bg: var(--gray-100); --status-planned-fg: var(--gray-600);
  --status-error-bg: var(--red-50); --status-error-fg: var(--red-700);

  /* Typografie */
  --font-display: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --text-display: clamp(40px, 5vw, 64px); --lh-display: 1.02; --ls-display: -0.03em;
  --text-h1: 44px; --lh-h1: 1.08; --ls-h1: -0.025em;
  --text-h2: 32px; --lh-h2: 1.15; --ls-h2: -0.02em;
  --text-h3: 22px; --lh-h3: 1.25; --ls-h3: -0.01em;
  --text-h4: 18px; --lh-h4: 1.3;
  --text-lead: 20px; --lh-lead: 1.5;
  --text-base: 16px; --lh-body: 1.6;
  --text-small: 14px; --lh-small: 1.5;
  --text-caption: 12px; --lh-caption: 1.4;
  --text-eyebrow: 12px; --ls-eyebrow: 0.14em;
  --text-tagline: 11px; --ls-tagline: 0.22em;

  /* Abstände */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px;
  --space-8: 32px; --space-10: 40px; --space-12: 48px; --space-16: 64px; --space-20: 80px; --space-24: 96px;
  --container: 1180px; --container-narrow: 760px; --gutter: 24px;
  --section-y: var(--space-20);

  /* Effekte */
  --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-pill: 999px;
  --shadow-xs: 0 1px 2px rgba(11,37,69,.06);
  --shadow-sm: 0 1px 3px rgba(11,37,69,.08), 0 1px 2px rgba(11,37,69,.04);
  --shadow-md: 0 8px 24px -8px rgba(11,37,69,.14), 0 2px 6px rgba(11,37,69,.05);
  --shadow-lg: 0 24px 48px -16px rgba(11,37,69,.22), 0 4px 12px rgba(11,37,69,.06);
  --accent-rgb: 252,169,44;
  --shadow-brand: 0 8px 20px -8px rgba(var(--accent-rgb),.6);
  --focus-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--accent-800);
  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-inout: cubic-bezier(.65,0,.35,1);
  --dur-fast: 120ms; --dur-base: 200ms; --dur-slow: 360ms;
  --blur-glass: 12px;
}

html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--accent-200); color: var(--nova-marine); }
