/* ═══════════════════════════════════════════
   Design Tokens — Notes PWA v2
   Merged: TFA-AVA systematic tokens + v8 glassmorphism
   ═══════════════════════════════════════════ */

:root {
  /* ── Color: Brand ── */
  --c-primary: #3B82F6;
  --c-primary-hover: #2563EB;
  --c-primary-soft: rgba(59, 130, 246, 0.12);
  --c-accent: #F59E0B;

  /* ── Color: Semantic ── */
  --c-success: #22C55E;
  --c-success-soft: rgba(34, 197, 94, 0.12);
  --c-warning: #F59E0B;
  --c-warning-soft: rgba(245, 158, 11, 0.12);
  --c-error: #EF4444;
  --c-error-soft: rgba(239, 68, 68, 0.12);
  --c-info: #3B82F6;

  /* ── Color: Surface (Dark — default) ── */
  --c-bg: #0B1120;
  --c-bg-elevated: #1A2332;
  --c-surface: rgba(30, 41, 59, 0.6);
  --c-surface-solid: #1E293B;
  --c-surface-elevated: #263548;
  --c-surface-hover: rgba(38, 53, 72, 0.8);
  --c-glass: rgba(26, 35, 50, 0.7);
  --c-glass-heavy: rgba(15, 23, 42, 0.92);
  --c-border: rgba(71, 85, 105, 0.5);
  --c-border-subtle: rgba(51, 65, 85, 0.35);

  /* ── Color: Text ── */
  --c-text: #F1F5F9;
  --c-text-secondary: #94A3B8;
  --c-text-muted: #64748B;
  --c-text-inverse: #0F172A;

  /* ── Spacing (4px base) ── */
  --sp-2xs: 2px;
  --sp-xs: 4px;
  --sp-sm: 8px;
  --sp-md: 16px;
  --sp-lg: 24px;
  --sp-xl: 32px;
  --sp-2xl: 48px;

  /* ── Typography ── */
  --font: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', system-ui, sans-serif;
  --font-mono: 'SF Mono', 'Fira Code', monospace;
  --fs-2xs: 10px;
  --fs-xs: 11px;
  --fs-sm: 13px;
  --fs-base: 15px;
  --fs-lg: 17px;
  --fs-xl: 20px;
  --fs-2xl: 24px;
  --fs-3xl: 30px;
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --lh-tight: 1.25;
  --lh-normal: 1.5;

  /* ── Radius ── */
  --r-xs: 4px;
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 20px;
  --r-full: 9999px;

  /* ── Shadows ── */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.25);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.4);
  --shadow-fab: 0 6px 20px rgba(59, 130, 246, 0.35);

  /* ── Blur ── */
  --blur: 12px;
  --blur-heavy: 20px;

  /* ── Transitions ── */
  --tr-fast: 100ms ease-out;
  --tr-normal: 200ms ease-out;
  --tr-slow: 300ms ease-out;

  /* ── Layout ── */
  --header-h: 52px;
  --nav-h: 60px;
  --sidebar-w: 240px;
  --sidebar-w-narrow: 64px;
  --fab-size: 56px;
  --content-max: 1200px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --safe-right: env(safe-area-inset-right, 0px);

  /* ── Z-Index Scale ── */
  --z-base: 1;
  --z-header: 100;
  --z-nav: 100;
  --z-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;

  /* ── Status Colors (mapped) ── */
  --c-status-new: var(--c-primary);
  --c-status-inbox: var(--c-primary);
  --c-status-todo: var(--c-warning);
  --c-status-open: var(--c-warning);
  --c-status-in-progress: var(--c-info);
  --c-status-done: var(--c-success);
  --c-status-answered: var(--c-success);
  --c-status-error: var(--c-error);
  --c-status-archived: var(--c-text-muted);
}

/* ── Light Theme ── */
@media (prefers-color-scheme: light) {
  :root:not(.dark) {
    --c-bg: #F8FAFC;
    --c-bg-elevated: #FFFFFF;
    --c-surface: rgba(255, 255, 255, 0.6);
    --c-surface-solid: #FFFFFF;
    --c-surface-hover: rgba(255, 255, 255, 0.85);
    --c-glass: rgba(255, 255, 255, 0.5);
    --c-glass-heavy: rgba(255, 255, 255, 0.9);
    --c-border: rgba(226, 232, 240, 0.8);
    --c-border-subtle: rgba(226, 232, 240, 0.4);
    --c-text: #1E293B;
    --c-text-secondary: #64748B;
    --c-text-muted: #94A3B8;
    --c-text-inverse: #F1F5F9;
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  }
}

/* ── Manual Light Mode (via toggle button → body.light-mode) ── */
body.light-mode {
  --c-bg: #F8FAFC;
  --c-bg-elevated: #FFFFFF;
  --c-surface: rgba(255, 255, 255, 0.6);
  --c-surface-solid: #FFFFFF;
  --c-surface-hover: rgba(255, 255, 255, 0.85);
  --c-glass: rgba(255, 255, 255, 0.5);
  --c-glass-heavy: rgba(255, 255, 255, 0.9);
  --c-border: rgba(226, 232, 240, 0.8);
  --c-border-subtle: rgba(226, 232, 240, 0.4);
  --c-text: #1E293B;
  --c-text-secondary: #64748B;
  --c-text-muted: #94A3B8;
  --c-text-inverse: #F1F5F9;
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* ── Force Dark ── */
:root.dark {
  --c-bg: #0F172A;
  --c-bg-elevated: #1E293B;
  --c-surface: rgba(30, 41, 59, 0.5);
  --c-surface-solid: #1E293B;
  --c-surface-hover: rgba(30, 41, 59, 0.7);
  --c-glass: rgba(30, 41, 59, 0.4);
  --c-glass-heavy: rgba(30, 41, 59, 0.8);
  --c-border: rgba(51, 65, 85, 0.6);
  --c-border-subtle: rgba(51, 65, 85, 0.3);
  --c-text: #F1F5F9;
  --c-text-secondary: #94A3B8;
  --c-text-muted: #64748B;
  --c-text-inverse: #0F172A;
}
