/* ═══════════════════════════════════════════════════════
   AI INNOVATION LAB — default design tokens
   ═══════════════════════════════════════════════════════
   Direction: precise, clean lab aesthetic. White paper, near-black ink,
   vivid lab-blue as the single accent. Display in Geist Sans (variable),
   meta/counters in JetBrains Mono. No serif in the default theme.
   The previous warm "Alpine Club" identity lives in themes.css as a
   schedulable drop theme. */

@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300..800&family=JetBrains+Mono:wght@400..600&family=Fraunces:opsz,wght,SOFT@9..144,200..900,0..100&display=swap');

:root {
  /* ── Brand reference (used by Alpine drop-theme overrides too) ── */
  --vertex-blue: #2563EB;
  --vertex-blue-light: #3B82F6;
  --vertex-gold: #2563EB;        /* alias kept for backwards-compat — lab uses blue everywhere gold used to live */
  --vertex-gold-light: #3B82F6;
  --vertex-gray: #6B7280;

  /* ── Typography — no Fraunces in the default ── */
  --font-display: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.5rem;
  --text-2xl: 2rem;
  --text-3xl: 2.75rem;
  --text-4xl: 3.75rem;
  --text-display: 5rem;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;

  --leading-tight: 1.05;
  --leading-snug: 1.25;
  --leading-normal: 1.5;
  --leading-loose: 1.75;

  --tracking-tight: -0.025em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-uber: 0.18em;

  /* ── Color — white lab paper, ink text, blue accent ── */
  --bg-primary: #FFFFFF;
  --bg-paper: #FAFAFA;
  --bg-surface: #FFFFFF;
  --bg-elevated: #FFFFFF;
  --bg-hover: #F3F4F6;
  --bg-input: #FFFFFF;
  --bg-ink: #0A0E14;

  --border-subtle: #F1F3F5;
  --border-default: #E5E7EB;
  --border-strong: #D1D5DB;
  --border-ink: #0A0E14;

  --text-primary: #0A0A0A;
  --text-secondary: #4B5563;
  --text-tertiary: #9CA3AF;
  --text-inverse: #FFFFFF;

  /* ── Single accent (vivid lab blue) + supporting ── */
  --accent-gold: #2563EB;        /* keep token name; value is blue in lab theme */
  --accent-gold-deep: #1D4ED8;
  --accent-gold-soft: rgba(37, 99, 235, 0.10);
  --accent-approve: #059669;
  --accent-approve-soft: rgba(5, 150, 105, 0.10);
  --accent-delete: #DC2626;
  --accent-delete-soft: rgba(220, 38, 38, 0.10);
  --accent-info: #2563EB;

  /* Legacy aliases */
  --accent-archive: var(--accent-gold);
  --accent-archive-dim: var(--accent-gold-soft);
  --accent-archive-glow: rgba(37, 99, 235, 0.32);
  --accent-rename: var(--accent-info);
  --accent-structure: #7C3AED;
  --accent-reject: var(--accent-delete);
  --accent-reject-dim: var(--accent-delete-soft);
  --accent-approve-dim: var(--accent-approve-soft);
  --accent-delete-dim: var(--accent-delete-soft);
  --tier-1: #DC2626;
  --tier-2: #D97706;
  --tier-3: #2563EB;

  --white: #FFFFFF;
  --black: #0A0A0A;

  /* ── Spacing (8pt rhythm) ── */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-8: 3rem;
  --space-10: 4rem;
  --space-12: 5rem;
  --space-16: 6.5rem;
  --space-20: 8rem;

  /* ── Radii (precise / lab) ── */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 12px;
  --radius-full: 9999px;

  /* ── Shadows (precise — paper, not glassy) ── */
  --shadow-sm: 0 1px 2px rgba(10, 14, 20, 0.04);
  --shadow-md: 0 2px 8px rgba(10, 14, 20, 0.06), 0 1px 2px rgba(10, 14, 20, 0.04);
  --shadow-lg: 0 8px 24px rgba(10, 14, 20, 0.08), 0 2px 6px rgba(10, 14, 20, 0.05);
  --shadow-xl: 0 16px 40px rgba(10, 14, 20, 0.10), 0 4px 10px rgba(10, 14, 20, 0.06);
  --shadow-glow-archive: 0 0 0 4px rgba(37, 99, 235, 0.16);
  --shadow-glow-delete: 0 0 0 4px rgba(220, 38, 38, 0.16);
  --shadow-glow-rename: 0 0 0 4px rgba(37, 99, 235, 0.14);
  --shadow-glow-structure: 0 0 0 4px rgba(124, 58, 237, 0.16);

  /* ── Motion ── */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --duration-fast: 150ms;
  --duration-normal: 250ms;
  --duration-slow: 450ms;

  /* ── Z-index ── */
  --z-base: 0;
  --z-above: 10;
  --z-sticky: 100;
  --z-modal: 1000;
  --z-toast: 2000;
  --z-celebrate: 3000;

  /* ── Gradients ── */
  --gradient-hero: linear-gradient(180deg, #0A0E14 0%, #0F1729 100%);
  --gradient-gold: linear-gradient(135deg, #2563EB 0%, #3B82F6 100%);
  --gradient-subtle: linear-gradient(135deg, #FFFFFF 0%, #F3F4F6 100%);
  --gradient-paper: radial-gradient(1200px 600px at 50% -200px, rgba(37, 99, 235, 0.06), transparent 60%);

  --hazard-stripe: repeating-linear-gradient(
    -45deg, var(--accent-gold) 0px, var(--accent-gold) 8px,
    var(--accent-gold-soft) 8px, var(--accent-gold-soft) 16px
  );
  --hazard-stripe-subtle: repeating-linear-gradient(
    -45deg, var(--border-subtle) 0px, var(--border-subtle) 4px,
    transparent 4px, transparent 8px
  );
}

/* Defaults applied site-wide. */
html { font-family: var(--font-body); color: var(--text-primary); background: var(--bg-primary); }
body { font-family: var(--font-body); }

code, kbd, samp, pre { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
