/* ═══════════════════════════════════════════════════════════════════
   StoryCut — Design Token System (Single Source of Truth)

   ALL colors, spacing, radius, shadows, and typography tokens live here.
   To rebrand: change values in this file ONLY — everything else inherits.

   Inspired by Linear / Raycast / Vercel premium design systems.
   ═══════════════════════════════════════════════════════════════════ */

/* ─── Mode-Independent Tokens (Brand + Layout) ────────────────────── */
:root {
    /* Brand / Primary — SAME in light and dark */
    --primary-rgb: 124, 92, 255;
    --sc-primary: #7C5CFF;
    --sc-primary-hover: #6A4DF4;
    --sc-primary-active: #5A3EEA;
    --sc-primary-glow: #9B7CFF;
    --sc-primary-soft: rgba(124, 92, 255, 0.12);
    --sc-primary-soft-hover: rgba(124, 92, 255, 0.18);
    --sc-primary-shadow: rgba(124, 92, 255, 0.25);

    /* Gradient signature */
    --sc-gradient: linear-gradient(135deg, #7C5CFF, #9B7CFF);
    --sc-gradient-hover: linear-gradient(135deg, #6A4DF4, #8B6CFF);

    /* Feedback — SAME in both modes */
    --sc-success: #22C55E;
    --sc-success-soft: rgba(34, 197, 94, 0.12);
    --sc-error: #EF4444;
    --sc-error-soft: rgba(239, 68, 68, 0.12);
    --sc-warning: #F59E0B;
    --sc-warning-soft: rgba(245, 158, 11, 0.12);

    /* Radius System */
    --sc-radius-xs: 6px;
    --sc-radius-sm: 8px;
    --sc-radius-md: 10px;
    --sc-radius-lg: 12px;
    --sc-radius-xl: 16px;
    --sc-radius-2xl: 20px;
    --sc-radius-full: 999px;

    /* Spacing System (strict multiples) */
    --sc-space-1: 4px;
    --sc-space-2: 8px;
    --sc-space-3: 12px;
    --sc-space-4: 16px;
    --sc-space-6: 24px;
    --sc-space-8: 32px;
    --sc-space-12: 48px;
    --sc-space-16: 64px;

    /* Typography */
    --sc-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
    --sc-font-display: 48px;
    --sc-font-h1: 36px;
    --sc-font-h2: 28px;
    --sc-font-h3: 20px;
    --sc-font-body: 14px;
    --sc-font-small: 12px;

    /* Shadows */
    --sc-shadow-sm: 0px 4px 14px rgba(0, 0, 0, 0.16);
    --sc-shadow-md: 0px 10px 30px rgba(0, 0, 0, 0.25);
    --sc-shadow-glow: 0 0 20px rgba(124, 92, 255, 0.25);

    /* Component Heights */
    --sc-height-input: 42px;
    --sc-height-topbar: 64px;
    --sc-height-sidebar-item: 40px;
    --sc-height-icon-btn: 36px;
}

/* ─── Light Mode Tokens ───────────────────────────────────────────── */
:root,
[data-mantine-color-scheme="light"] {
    --sc-bg: #FFFFFF;
    --sc-surface: #F6F6F8;
    --sc-surface-hover: #EEEEF2;
    --sc-surface-elevated: #FFFFFF;
    --sc-border: #E4E4E7;
    --sc-border-subtle: rgba(0, 0, 0, 0.06);
    --sc-text: #09090B;
    --sc-text-secondary: #52525B;
    --sc-text-muted: #A1A1AA;
    --sc-overlay: rgba(0, 0, 0, 0.5);
    --sc-bg-hover: rgba(0, 0, 0, 0.02);
    --sc-bg-active: rgba(0, 0, 0, 0.04);
    --sc-dot-pattern: rgba(0, 0, 0, 0.08);
    --sc-upload-gradient: linear-gradient(135deg, #F5F3FF 0%, #F0EEFF 50%, #F0F9FF 100%);
    --sc-overlay-btn-bg: rgba(255, 255, 255, 0.9);
    --sc-overlay-btn-text: #09090B;
    --sc-overlay-btn-border: rgba(0, 0, 0, 0.1);
    --sc-overlay-btn-shadow: rgba(0, 0, 0, 0.15);
    --sc-sidebar-active-bg: rgba(124, 92, 255, 0.08);
    --sc-toggle-off: #D4D4D8;
    --sc-input-placeholder: #A1A1AA;
    --sc-timeline-bg: #F3F4F6;
    --sc-timeline-clip: #EEEEF2;
    --sc-timeline-clip-border: #E4E4E7;
    --sc-card-hover-transform: translateY(-2px);
    --sc-scrollbar-thumb: rgba(0, 0, 0, 0.15);
    --sc-scrollbar-thumb-hover: rgba(0, 0, 0, 0.25);
}

/* ─── Dark Mode Tokens ────────────────────────────────────────────── */
[data-mantine-color-scheme="dark"] {
    --sc-bg: #0F0F14;
    --sc-surface: #18181F;
    --sc-surface-hover: #1F1F27;
    --sc-surface-elevated: #1F1F27;
    --sc-border: #26262F;
    --sc-border-subtle: rgba(255, 255, 255, 0.06);
    --sc-text: #F5F5F7;
    --sc-text-secondary: #A1A1AA;
    --sc-text-muted: #6B6B75;
    --sc-overlay: rgba(0, 0, 0, 0.6);
    --sc-bg-hover: rgba(255, 255, 255, 0.04);
    --sc-bg-active: rgba(255, 255, 255, 0.07);
    --sc-dot-pattern: rgba(255, 255, 255, 0.06);
    --sc-upload-gradient: linear-gradient(135deg, #1A1525 0%, #1A1830 50%, #141825 100%);
    --sc-overlay-btn-bg: rgba(255, 255, 255, 0.12);
    --sc-overlay-btn-text: rgba(255, 255, 255, 0.9);
    --sc-overlay-btn-border: rgba(255, 255, 255, 0.15);
    --sc-overlay-btn-shadow: rgba(0, 0, 0, 0.3);
    --sc-sidebar-active-bg: rgba(124, 92, 255, 0.15);
    --sc-toggle-off: #26262F;
    --sc-input-placeholder: #6B6B75;
    --sc-timeline-bg: #141419;
    --sc-timeline-clip: #2A2A33;
    --sc-timeline-clip-border: #34343D;
    --sc-card-hover-transform: translateY(-2px);
    --sc-scrollbar-thumb: rgba(255, 255, 255, 0.12);
    --sc-scrollbar-thumb-hover: rgba(255, 255, 255, 0.2);
}

/* ─── Backward-Compat Aliases ───────────────────────────────────────
   Maps old variable names → new tokens so existing CSS keeps working
   while we migrate. Can be removed once migration is complete. */
:root,
[data-mantine-color-scheme="light"] {
    --primary-color: var(--sc-primary);
    --primary-hover: var(--sc-primary-hover);
    --primary-light: var(--sc-primary-soft);
    --primary-light-hover: var(--sc-primary-soft-hover);
    --primary-light-color: var(--sc-primary);
    /* Purple shade aliases used by inline gradients (Export button, etc.) */
    --primary-0: #F3EEFF;
    --primary-1: #E5DEFF;
    --primary-2: #C9B8FF;
    --primary-3: #AD93FF;
    --primary-4: #9B7CFF;
    --primary-5: #8A6BFF;
    --primary-6: #7C5CFF;
    --primary-7: #6A4DF4;
    --primary-8: #5A3EEA;
    --primary-9: #4A2ED4;
    --success-color: var(--sc-success);
    --warning-color: var(--sc-warning);
    --danger-color: var(--sc-error);
    --text-primary: var(--sc-text);
    --text-secondary: var(--sc-text-secondary);
    --text-tertiary: var(--sc-text-muted);
    --bg-primary: var(--sc-bg);
    --bg-secondary: var(--sc-surface);
    --bg-tertiary: var(--sc-surface-hover);
    --border-color: var(--sc-border);
    --border-radius: var(--sc-radius-md);
    --border-radius-lg: var(--sc-radius-lg);
    --border-radius-xl: var(--sc-radius-xl);
    --app-surface: var(--sc-bg);
    --app-surface-alt: var(--sc-surface);
    --app-surface-dim: var(--sc-surface-hover);
    --app-text: var(--sc-text);
    --app-text-secondary: var(--sc-text-secondary);
    --app-text-dimmed: var(--sc-text-muted);
    --app-border: var(--sc-border);
    --app-border-light: var(--sc-border);
    --app-border-subtle: var(--sc-border-subtle);
    --app-border-subtler: var(--sc-border-subtle);
    --app-bg-hover: var(--sc-bg-hover);
    --app-bg-active: var(--sc-bg-active);
    --app-shadow-subtle: rgba(0, 0, 0, 0.06);
    --app-overlay-btn-bg: var(--sc-overlay-btn-bg);
    --app-overlay-btn-text: var(--sc-overlay-btn-text);
    --app-overlay-btn-border: var(--sc-overlay-btn-border);
    --app-overlay-btn-shadow: var(--sc-overlay-btn-shadow);
    --app-dot-pattern: var(--sc-dot-pattern);
    --app-upload-gradient: var(--sc-upload-gradient);
}

[data-mantine-color-scheme="dark"] {
    --primary-color: var(--sc-primary);
    --primary-hover: var(--sc-primary-hover);
    --primary-light: var(--sc-primary-soft);
    --primary-light-hover: var(--sc-primary-soft-hover);
    --primary-light-color: var(--sc-primary);
    /* Purple shade aliases (same in both modes) */
    --primary-0: #F3EEFF;
    --primary-1: #E5DEFF;
    --primary-2: #C9B8FF;
    --primary-3: #AD93FF;
    --primary-4: #9B7CFF;
    --primary-5: #8A6BFF;
    --primary-6: #7C5CFF;
    --primary-7: #6A4DF4;
    --primary-8: #5A3EEA;
    --primary-9: #4A2ED4;
    --success-color: var(--sc-success);
    --warning-color: var(--sc-warning);
    --danger-color: var(--sc-error);
    --text-primary: var(--sc-text);
    --text-secondary: var(--sc-text-secondary);
    --text-tertiary: var(--sc-text-muted);
    --bg-primary: var(--sc-bg);
    --bg-secondary: var(--sc-surface);
    --bg-tertiary: var(--sc-surface-hover);
    --border-color: var(--sc-border);
    --app-surface: var(--sc-surface);
    --app-surface-alt: var(--sc-bg);
    --app-surface-dim: var(--sc-surface-hover);
    --app-text: var(--sc-text);
    --app-text-secondary: var(--sc-text-secondary);
    --app-text-dimmed: var(--sc-text-muted);
    --app-border: var(--sc-border);
    --app-border-light: var(--sc-surface-hover);
    --app-border-subtle: var(--sc-border-subtle);
    --app-border-subtler: var(--sc-border-subtle);
    --app-bg-hover: var(--sc-bg-hover);
    --app-bg-active: var(--sc-bg-active);
    --app-shadow-subtle: rgba(0, 0, 0, 0.2);
    --app-overlay-btn-bg: var(--sc-overlay-btn-bg);
    --app-overlay-btn-text: var(--sc-overlay-btn-text);
    --app-overlay-btn-border: var(--sc-overlay-btn-border);
    --app-overlay-btn-shadow: var(--sc-overlay-btn-shadow);
    --app-dot-pattern: var(--sc-dot-pattern);
    --app-upload-gradient: var(--sc-upload-gradient);
}

