/* ═══════════════════════════════════════════════════════════
   MyPeptideApp — Design Tokens
   All visual properties defined as CSS custom properties.
   ═══════════════════════════════════════════════════════════ */

:root {
    /* ─── Primary (Black / White Theme) ───────────────── */
    --color-primary: #000000;
    --color-primary-hover: #1a1a1a;
    --color-primary-active: #333333;
    --color-primary-light: #F3F4F6;
    --color-primary-50: #F9FAFB;
    --color-primary-100: #F3F4F6;
    --color-primary-200: #E5E7EB;
    --color-primary-500: #374151;
    --color-primary-600: #1F2937;
    --color-primary-700: #111827;
    --color-primary-800: #0a0a0a;
    --color-primary-900: #000000;

    /* ─── Neutrals ─────────────────────────────────────── */
    --color-white: #FFFFFF;
    --color-black: #000000;
    --color-bg: #FFFFFF;
    --color-bg-secondary: #F9FAFB;
    --color-bg-tertiary: #F3F4F6;
    --color-bg-elevated: #FFFFFF;
    --color-border: #E5E7EB;
    --color-border-strong: #D1D5DB;
    --color-border-light: #F3F4F6;
    --color-text-primary: #111827;
    --color-text-secondary: #6B7280;
    --color-text-tertiary: #9CA3AF;
    --color-text-inverse: #FFFFFF;
    --color-text-link: #000000;

    /* ─── Semantic ─────────────────────────────────────── */
    --color-success: #10B981;
    --color-success-light: #D1FAE5;
    --color-success-dark: #059669;
    --color-warning: #F59E0B;
    --color-warning-light: #FEF3C7;
    --color-warning-dark: #D97706;
    --color-danger: #EF4444;
    --color-danger-light: #FEE2E2;
    --color-danger-dark: #DC2626;
    --color-info: #6B7280;
    --color-info-light: #F3F4F6;

    /* ─── Chart Colors (for peptide lines) ─────────────── */
    --chart-1: #111827;
    --chart-2: #7C3AED;
    --chart-3: #EC4899;
    --chart-4: #F59E0B;
    --chart-5: #10B981;
    --chart-6: #06B6D4;
    --chart-7: #F97316;
    --chart-8: #8B5CF6;
    --chart-9: #14B8A6;
    --chart-10: #E11D48;

    /* ─── Shadows ──────────────────────────────────────── */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
    --shadow-focus: 0 0 0 3px rgba(0, 0, 0, 0.08);

    /* ─── Dynamic Colors (for overlay, header blur) ────── */
    --color-overlay: rgba(0, 0, 0, 0.4);
    --color-header-blur: rgba(255, 255, 255, 0.6);
    --color-input-bg: #FFFFFF;

    /* ─── Spacing ──────────────────────────────────────── */
    --space-0: 0;
    --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;

    /* ─── Border Radius ────────────────────────────────── */
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-2xl: 20px;
    --radius-full: 9999px;

    /* ─── Typography ───────────────────────────────────── */
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
    --font-mono: 'JetBrains Mono', 'SF Mono', 'Cascadia Code', 'Fira Code', monospace;

    --text-xs: 0.75rem;
    --text-sm: 0.8125rem;
    --text-base: 0.875rem;
    --text-md: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;
    --text-4xl: 2.25rem;

    --leading-tight: 1.25;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;

    --weight-normal: 400;
    --weight-medium: 500;
    --weight-semibold: 600;
    --weight-bold: 700;

    /* ─── Layout ───────────────────────────────────────── */
    --sidebar-width: 256px;
    --sidebar-collapsed-width: 72px;
    --header-height: 64px;
    --bottom-nav-height: 64px;
    --content-max-width: 1200px;
    --fab-size: 56px;
    --fab-bottom-mobile: calc(var(--bottom-nav-height) + var(--space-4));
    --fab-bottom-desktop: var(--space-6);

    /* ─── Z-Index Scale ────────────────────────────────── */
    --z-base: 1;
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-sidebar: 300;
    --z-overlay: 400;
    --z-modal: 500;
    --z-toast: 600;
    --z-fab: 350;

    /* ─── Transitions ──────────────────────────────────── */
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --duration-fast: 150ms;
    --duration-normal: 250ms;
    --duration-slow: 350ms;
    --transition-colors: color var(--duration-fast) var(--ease-in-out),
                          background-color var(--duration-fast) var(--ease-in-out),
                          border-color var(--duration-fast) var(--ease-in-out);
}

/* ═══════════════════════════════════════════════════════════
   Dark Theme Overrides
   Applied via data-theme="dark" on <html>.
   Inspired by Vercel/Linear dark palettes.
   ═══════════════════════════════════════════════════════════ */
[data-theme="dark"] {
    /* ─── Primary (inverted — white becomes primary) ──── */
    --color-primary: #FFFFFF;
    --color-primary-hover: #E5E7EB;
    --color-primary-active: #D1D5DB;
    --color-primary-light: #1F1F1F;
    --color-primary-50: #141414;
    --color-primary-100: #1A1A1A;
    --color-primary-200: #262626;
    --color-primary-500: #A1A1AA;
    --color-primary-600: #D4D4D8;
    --color-primary-700: #E4E4E7;
    --color-primary-800: #F4F4F5;
    --color-primary-900: #FFFFFF;

    /* ─── Neutrals ─────────────────────────────────────── */
    --color-white: #0F0F0F;
    --color-black: #FFFFFF;
    --color-bg: #0A0A0A;
    --color-bg-secondary: #0F0F0F;
    --color-bg-tertiary: #1A1A1A;
    --color-bg-elevated: #141414;
    --color-border: #262626;
    --color-border-strong: #333333;
    --color-border-light: #1A1A1A;
    --color-text-primary: #F5F5F5;
    --color-text-secondary: #A1A1AA;
    --color-text-tertiary: #71717A;
    --color-text-inverse: #0A0A0A;
    --color-text-link: #FFFFFF;

    /* ─── Semantic (adjusted for dark backgrounds) ─────── */
    --color-success: #34D399;
    --color-success-light: rgba(52, 211, 153, 0.15);
    --color-success-dark: #6EE7B7;
    --color-warning: #FBBF24;
    --color-warning-light: rgba(251, 191, 36, 0.15);
    --color-warning-dark: #FCD34D;
    --color-danger: #F87171;
    --color-danger-light: rgba(248, 113, 113, 0.15);
    --color-danger-dark: #FCA5A5;
    --color-info: #A1A1AA;
    --color-info-light: #1A1A1A;

    /* ─── Chart Colors (brighter for dark bg) ──────────── */
    --chart-1: #F5F5F5;
    --chart-2: #A78BFA;
    --chart-3: #F472B6;
    --chart-4: #FBBF24;
    --chart-5: #34D399;
    --chart-6: #22D3EE;
    --chart-7: #FB923C;
    --chart-8: #C4B5FD;
    --chart-9: #2DD4BF;
    --chart-10: #FB7185;

    /* ─── Shadows (stronger on dark) ──────────────────── */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.2);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.3);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
    --shadow-focus: 0 0 0 3px rgba(255, 255, 255, 0.1);

    /* ─── Dynamic Colors ──────────────────────────────── */
    --color-overlay: rgba(0, 0, 0, 0.6);
    --color-header-blur: rgba(15, 15, 15, 0.7);
    --color-input-bg: #141414;

    color-scheme: dark;
}
