/* ----------------------------------------
   CSS CUSTOM PROPERTIES - Light Theme
   ---------------------------------------- */
:root {
  /* Typography */
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', Consolas, monospace;

  /* Font sizes - fluid typography */
  --text-xs: clamp(0.7rem, 0.65rem + 0.25vw, 0.75rem);
  --text-sm: clamp(0.8rem, 0.75rem + 0.25vw, 0.875rem);
  --text-base: clamp(0.95rem, 0.9rem + 0.25vw, 1rem);
  --text-lg: clamp(1.1rem, 1rem + 0.5vw, 1.25rem);
  --text-xl: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);
  --text-2xl: clamp(1.5rem, 1.25rem + 1.25vw, 2rem);
  --text-3xl: clamp(1.875rem, 1.5rem + 1.875vw, 2.5rem);

  /* Line heights */
  --leading-tight: 1.25;
  --leading-snug: 1.375;
  --leading-normal: 1.5;
  --leading-relaxed: 1.625;

  /* Letter spacing */
  --tracking-tight: -0.025em;
  --tracking-normal: 0;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --tracking-widest: 0.1em;

  /* ---- Color Palette: Light Theme ---- */

  /* Paper & Background */
  --color-paper: #faf8f5;
  --color-paper-warm: #f5f0e8;
  --color-paper-dark: #ebe5d9;
  --color-cream: #fefcf8;

  /* River Blues */
  --color-river: #1e3a5f;
  --color-river-light: #2d5a87;
  --color-river-dark: #152840;
  --color-river-muted: #4a6d8c;

  /* Weathered Brass */
  --color-brass: #b8956e;
  --color-brass-light: #d4b896;
  --color-brass-dark: #8c6d4a;
  --color-brass-muted: #c9a882;

  /* Ink & Text */
  --color-ink: #2d3436;
  --color-ink-light: #4a4f51;
  --color-ink-muted: #636e72;
  --color-ink-faint: #6b6e71;

  /* Accent Colors */
  --color-sage: #6b8e6b;
  --color-sage-light: #8fb08f;
  --color-rust: #a85d3b;
  --color-rust-light: #c9836a;

  /* Semantic Colors */
  --color-success: #5a7c5a;
  --color-success-bg: rgba(90, 124, 90, 0.1);
  --color-success-text: #3d5a3d;
  --color-success-border: rgba(90, 124, 90, 0.3);
  --color-warning: #b8860b;
  --color-warning-bg: rgba(184, 134, 11, 0.1);
  --color-error: #a85d3b;
  --color-error-bg: rgba(168, 93, 59, 0.1);
  --color-error-text: #8b4a2f;
  --color-error-border: rgba(168, 93, 59, 0.3);
  --color-info: #4a6d8c;
  --color-info-bg: rgba(74, 109, 140, 0.1);

  /* ---- Mapped Semantic Tokens ---- */

  /* Backgrounds */
  --bg-primary: var(--color-paper);
  --bg-secondary: var(--color-cream);
  --bg-tertiary: var(--color-paper-warm);
  --bg-elevated: #ffffff;
  --bg-sunken: var(--color-paper-dark);
  --bg-overlay: rgba(45, 52, 54, 0.6);

  /* Text */
  --text-primary: var(--color-ink);
  --text-secondary: var(--color-ink-light);
  --text-tertiary: var(--color-ink-muted);
  --text-muted: var(--color-ink-faint);
  --text-inverse: var(--color-cream);
  --text-accent: var(--color-river);
  --text-link: var(--color-river-light);

  /* Borders */
  --border-light: rgba(45, 52, 54, 0.08);
  --border-default: rgba(45, 52, 54, 0.15);
  --border-strong: rgba(45, 52, 54, 0.25);
  --border-accent: var(--color-brass);
  --border-focus: var(--color-river);

  /* Shadows */
  --shadow-xs: 0 1px 2px rgba(45, 52, 54, 0.05);
  --shadow-sm: 0 2px 4px rgba(45, 52, 54, 0.08);
  --shadow-md: 0 4px 12px rgba(45, 52, 54, 0.1);
  --shadow-lg: 0 8px 24px rgba(45, 52, 54, 0.12);
  --shadow-xl: 0 16px 48px rgba(45, 52, 54, 0.15);
  --shadow-inner: inset 0 2px 4px rgba(45, 52, 54, 0.06);

  /* Interactive states */
  --hover-overlay: rgba(45, 52, 54, 0.04);
  --active-overlay: rgba(45, 52, 54, 0.08);
  --focus-ring: 0 0 0 3px rgba(30, 58, 95, 0.25);

  /* Component-specific */
  --header-bg: rgba(250, 248, 245, 0.95);
  --sidebar-bg: var(--color-paper-warm);
  --card-bg: var(--bg-elevated);
  --input-bg: var(--bg-elevated);
  --button-primary-bg: var(--color-river);
  --button-primary-text: var(--color-cream);
  --button-secondary-bg: transparent;
  --button-secondary-text: var(--color-river);

  /* Chat specific */
  --message-user-bg: linear-gradient(135deg, var(--color-paper-warm) 0%, var(--color-paper-dark) 100%);
  --message-user-border: var(--color-brass-muted);
  --message-bot-bg: var(--bg-elevated);
  --message-bot-border: var(--border-default);

  /* Spacing scale */
  --space-1: 0.25rem;   /* 4px */
  --space-2: 0.5rem;    /* 8px */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */
  --space-16: 4rem;     /* 64px */

  /* Spacing aliases for legacy compatibility */
  --space-xs: var(--space-1);
  --space-sm: var(--space-2);
  --space-md: var(--space-4);
  --space-lg: var(--space-6);
  --space-xl: var(--space-8);

  /* Border aliases */
  --border-medium: var(--border-default);

  /* Background aliases */
  --bg-input: var(--input-bg);
  --bg-card: var(--card-bg);

  /* Typography aliases */
  --font-heading: var(--font-display);

  /* Duration aliases */
  --duration-fast: 150ms;
  --duration-base: 200ms;

  /* Accent aliases */
  --accent-primary: var(--color-brass);

  /* Border radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* Animation timing system */
  --duration-fast: 150ms;    /* micro-interactions, toggles */
  --duration-normal: 250ms;  /* most transitions */
  --duration-slow: 400ms;    /* modals, page transitions */

  /* Easing functions */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);      /* natural deceleration */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);  /* symmetrical, smooth */
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); /* bouncy, playful */

  /* Composed transitions (for convenience) */
  --transition-fast: var(--duration-fast) var(--ease-out);
  --transition-base: var(--duration-normal) var(--ease-out);
  --transition-slow: var(--duration-slow) var(--ease-out);
  --transition-slower: var(--duration-slow) var(--ease-in-out);

  /* Z-index scale */
  --z-base: 0;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;

  /* Layout */
  --header-height: 64px;
  --sidebar-width: 300px;
  --chat-max-width: 720px;
  --content-max-width: 1200px;

  /* Icon sizes - standardized scale */
  --icon-xs: 14px;   /* inline text, badges */
  --icon-sm: 18px;   /* small buttons, form elements */
  --icon-md: 22px;   /* navigation, standard buttons */
  --icon-lg: 28px;   /* feature highlights, cards */
  --icon-xl: 36px;   /* hero, empty states */

  /* Modal system */
  --modal-width: min(600px, 90vw);
  --modal-width-sm: min(500px, 90vw);
  --modal-width-lg: min(800px, 95vw);
  --modal-backdrop-blur: 8px;
  --modal-border-radius-mobile: 20px;
}

/* ----------------------------------------
   CSS CUSTOM PROPERTIES - Dark Theme
   ---------------------------------------- */
[data-theme="dark"] {
  /* Dark backgrounds */
  --color-paper: #0f1a1f;
  --color-paper-warm: #152025;
  --color-paper-dark: #0a1215;
  --color-cream: #1a272e;

  /* Adjusted blues for dark */
  --color-river: #5b8ab8;
  --color-river-light: #7aa5cc;
  --color-river-dark: #3d6a94;
  --color-river-muted: #4a7a9e;

  /* Muted brass for dark */
  --color-brass: #c9a882;
  --color-brass-light: #d9c4a8;
  --color-brass-dark: #a88b62;
  --color-brass-muted: #b89b70;

  /* Light text for dark */
  --color-ink: #e8e4dc;
  --color-ink-light: #d4d0c8;
  --color-ink-muted: #a8a49c;
  --color-ink-faint: #918f87;

  /* Semantic colors adjusted */
  --color-success: #7ab07a;
  --color-success-bg: rgba(122, 176, 122, 0.15);
  --color-success-text: #9cd09c;
  --color-success-border: rgba(122, 176, 122, 0.4);
  --color-warning: #d4a84b;
  --color-warning-bg: rgba(212, 168, 75, 0.15);
  --color-error: #c9836a;
  --color-error-bg: rgba(201, 131, 106, 0.15);
  --color-error-text: #e9a38a;
  --color-error-border: rgba(201, 131, 106, 0.4);
  --color-info: #7aa5cc;
  --color-info-bg: rgba(122, 165, 204, 0.15);

  /* Backgrounds */
  --bg-primary: var(--color-paper);
  --bg-secondary: var(--color-cream);
  --bg-tertiary: var(--color-paper-warm);
  --bg-elevated: #1e2a30;
  --bg-sunken: var(--color-paper-dark);
  --bg-overlay: rgba(0, 0, 0, 0.7);

  /* Text */
  --text-primary: var(--color-ink);
  --text-secondary: var(--color-ink-light);
  --text-tertiary: var(--color-ink-muted);
  --text-muted: var(--color-ink-faint);
  --text-inverse: var(--color-paper-dark);
  --text-accent: var(--color-river-light);
  --text-link: var(--color-river);

  /* Borders */
  --border-light: rgba(232, 228, 220, 0.06);
  --border-default: rgba(232, 228, 220, 0.12);
  --border-strong: rgba(232, 228, 220, 0.2);
  --border-accent: var(--color-brass-muted);
  --border-focus: var(--color-river);

  /* Shadows - more subtle in dark mode */
  --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.35);
  --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.4);
  --shadow-inner: inset 0 2px 4px rgba(0, 0, 0, 0.2);

  /* Interactive states */
  --hover-overlay: rgba(232, 228, 220, 0.04);
  --active-overlay: rgba(232, 228, 220, 0.08);
  --focus-ring: 0 0 0 3px rgba(91, 138, 184, 0.35);

  /* Component-specific */
  --header-bg: rgba(15, 26, 31, 0.95);
  --sidebar-bg: var(--color-paper-warm);
  --card-bg: var(--bg-elevated);
  --input-bg: var(--bg-sunken);
  --button-primary-bg: var(--color-river);
  --button-primary-text: var(--color-paper-dark);
  --button-secondary-bg: transparent;
  --button-secondary-text: var(--color-river);

  /* Chat specific */
  --message-user-bg: linear-gradient(135deg, rgba(184, 149, 110, 0.15) 0%, rgba(184, 149, 110, 0.08) 100%);
  --message-user-border: var(--color-brass-dark);
  --message-bot-bg: var(--bg-elevated);
  --message-bot-border: var(--border-default);
}

