/*
 * Vacation Finder — Design tokens
 * Source of truth for color, type, spacing, radius and elevation.
 * Do not hardcode colors/spacing/radii anywhere else — reference these
 * custom properties so every screen stays consistent with the approved
 * design system.
 */

:root {
  /* Color — light (default) */
  --bg: #F4F9F9;
  --surface: #FFFFFF;
  --surface-raised: #FFFFFF;
  --text-primary: #0F2529;
  --text-secondary: #4C6367;
  --text-tertiary: #7C9295;
  --border: #DCE7E8;
  --border-strong: #B9CBCC;
  --accent: #0B6E85;
  --accent-hover: #095A6E;
  --accent-active: #07495A;
  --accent-soft: #DEF0F2;
  --accent-contrast: #FFFFFF;
  --success: #1E8A5F;
  --success-soft: #E1F3E9;
  --success-text: #146245;
  --warning: #B8720F;
  --warning-soft: #FBEDD9;
  --warning-text: #8A5308;
  --critical: #C13D3D;
  --critical-soft: #FBE4E4;
  --critical-text: #8F2A2A;

  /* Elevation */
  --shadow-sm: 0 1px 2px rgba(15, 55, 60, .08);
  --shadow-md: 0 4px 14px rgba(15, 55, 60, .10);
  --shadow-lg: 0 16px 36px rgba(15, 55, 60, .16);

  /* Shape */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 22px;
  --radius-pill: 999px;

  /* Spacing (4px base) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 48px;

  /* Type */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Consolas, monospace;

  /* Layout */
  --nav-height: 64px;
  --sidebar-width: 248px;
  --header-height: 56px;
  --content-max-width: 960px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0A1517;
    --surface: #101E21;
    --surface-raised: #142529;
    --text-primary: #EAF4F4;
    --text-secondary: #9FB7BA;
    --text-tertiary: #6E8688;
    --border: #1F3237;
    --border-strong: #2C4247;
    --accent: #37B7CC;
    --accent-hover: #57C6D8;
    --accent-active: #2A97A8;
    --accent-soft: #133139;
    --accent-contrast: #052226;
    --success: #3FBE86;
    --success-soft: #123726;
    --success-text: #7BDDAB;
    --warning: #E4A23D;
    --warning-soft: #3A2A10;
    --warning-text: #F0BE72;
    --critical: #E5696A;
    --critical-soft: #3A1616;
    --critical-text: #F3A2A2;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
    --shadow-md: 0 4px 14px rgba(0, 0, 0, .45);
    --shadow-lg: 0 16px 36px rgba(0, 0, 0, .55);
  }
}

:root[data-theme="dark"] {
  --bg: #0A1517;
  --surface: #101E21;
  --surface-raised: #142529;
  --text-primary: #EAF4F4;
  --text-secondary: #9FB7BA;
  --text-tertiary: #6E8688;
  --border: #1F3237;
  --border-strong: #2C4247;
  --accent: #37B7CC;
  --accent-hover: #57C6D8;
  --accent-active: #2A97A8;
  --accent-soft: #133139;
  --accent-contrast: #052226;
  --success: #3FBE86;
  --success-soft: #123726;
  --success-text: #7BDDAB;
  --warning: #E4A23D;
  --warning-soft: #3A2A10;
  --warning-text: #F0BE72;
  --critical: #E5696A;
  --critical-soft: #3A1616;
  --critical-text: #F3A2A2;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
  --shadow-md: 0 4px 14px rgba(0, 0, 0, .45);
  --shadow-lg: 0 16px 36px rgba(0, 0, 0, .55);
}

:root[data-theme="light"] {
  --bg: #F4F9F9;
  --surface: #FFFFFF;
  --surface-raised: #FFFFFF;
  --text-primary: #0F2529;
  --text-secondary: #4C6367;
  --text-tertiary: #7C9295;
  --border: #DCE7E8;
  --border-strong: #B9CBCC;
  --accent: #0B6E85;
  --accent-hover: #095A6E;
  --accent-active: #07495A;
  --accent-soft: #DEF0F2;
  --accent-contrast: #FFFFFF;
  --success: #1E8A5F;
  --success-soft: #E1F3E9;
  --success-text: #146245;
  --warning: #B8720F;
  --warning-soft: #FBEDD9;
  --warning-text: #8A5308;
  --critical: #C13D3D;
  --critical-soft: #FBE4E4;
  --critical-text: #8F2A2A;
  --shadow-sm: 0 1px 2px rgba(15, 55, 60, .08);
  --shadow-md: 0 4px 14px rgba(15, 55, 60, .10);
  --shadow-lg: 0 16px 36px rgba(15, 55, 60, .16);
}
