    :root {
      /* Opt-out af browser auto-dark-mode på CSS-niveau (themes.css smalner det
         derefter til "light" eller "dark" baseret på data-theme). Backup for
         meta name="color-scheme" i index.html/login.html. */
      color-scheme: light dark;
      /* Backgrounds (Brand Manifest v1: #0D0F11) */
      --vyr-bg: #0D0F11;
      --vyr-bg-elevated: #141719;
      --vyr-bg-input: #1B1E22;
      /* Text (Brand Manifest v1: primary #FFFFFF, secondary #A8ADB2) */
      --vyr-text: #FFFFFF;
      --vyr-text-muted: #A8ADB2;
      --vyr-text-subtle: #636972;
      /* Accent (Brand Manifest v1: #00F5CC) */
      --vyr-accent: #00F5CC;
      --vyr-accent-dim: rgba(0, 245, 204, 0.10);
      --vyr-accent-glow: rgba(0, 245, 204, 0.06);
      --vyr-surface-glow: rgba(0, 245, 204, 0.06);
      /* Semantic */
      --vyr-error: #f87171;
      --vyr-danger: #f87171;
      --vyr-warning: #f5a623;
      --vyr-border: rgba(255, 255, 255, 0.06);
      /* Theme-aware overlays — white-on-dark by default; flipped to dark-on-light in themes.css.
         Use these for any subtle bg/border that needs to "lift" relative to the base. */
      --vyr-overlay-1: rgba(255, 255, 255, 0.02);
      --vyr-overlay-2: rgba(255, 255, 255, 0.04);
      --vyr-overlay-3: rgba(255, 255, 255, 0.06);
      --vyr-overlay-4: rgba(255, 255, 255, 0.08);
      --vyr-overlay-5: rgba(255, 255, 255, 0.12);
      --vyr-overlay-6: rgba(255, 255, 255, 0.18);
      /* Typography */
      --vyr-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
      --vyr-font-display: "Sora", var(--vyr-font);
      --vyr-font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;
      --vyr-msg-font-size: 0.9rem;
      /* Type scale */
      --vyr-fs-xs: 0.7rem;
      --vyr-fs-sm: 0.8rem;
      --vyr-fs-base: 0.9rem;
      --vyr-fs-md: 1rem;
      --vyr-fs-lg: 1.15rem;
      --vyr-fs-xl: 1.4rem;
      --register-font-display: var(--vyr-font-display);
      /* Spacing (4px base) */
      --sp-1: 0.25rem;
      --sp-2: 0.5rem;
      --sp-3: 0.75rem;
      --sp-4: 1rem;
      --sp-5: 1.5rem;
      --sp-6: 2rem;
      --sp-8: 3rem;
      /* Radius */
      --radius-xs: 4px;
      --radius-sm: 8px;
      --radius: 8px;
      --radius-md: 10px;
      --radius-lg: 12px;
      --radius-xl: 16px;
      --radius-pill: 9999px;
      /* Shadows */
      --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
      --shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
      --shadow-lg: 0 12px 48px rgba(0, 0, 0, 0.5);
      /* Motion */
      --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
      --ease-spring: cubic-bezier(0.34, 1.3, 0.64, 1);
      --register-ease: var(--ease-out);
      --register-ease-spring: var(--ease-spring);
      /* Data viz */
      --vyr-radar-grid: rgba(255, 255, 255, 0.08);
      --vyr-radar-label: rgba(255, 255, 255, 0.5);
      --vyr-radar-hover-opacity: 0.25;
      --vyr-sev-0: rgba(255, 255, 255, 0.12);
      --vyr-sev-1: #00F5CC;
      --vyr-sev-2: #f5a623;
      --vyr-sev-3: #e74c3c;
    }
