/* ============================================
   KṬP Saikhamakawn — Design Tokens
   Colors extracted from official logo:
   Sky Blue, Gold/Yellow, Red, Black, White
   ============================================ */

:root {
  /* === Brand Colors (from logo) === */
  --brand-sky: #87CEEB;
  --brand-sky-light: #B0E0F6;
  --brand-sky-dark: #5BA3C9;
  --brand-gold: #FFD700;
  --brand-gold-light: #FFE44D;
  --brand-gold-dark: #D4A800;
  --brand-red: #DC143C;
  --brand-red-light: #E8476A;
  --brand-red-dark: #A50E2D;
  --brand-black: #1a1a2e;
  --brand-white: #ffffff;

  /* === Typography === */
  --font-heading: 'Poppins', sans-serif;
  --font-body: 'Inter', sans-serif;

  /* Font Sizes — Mobile First (rem) */
  --fs-xs: 0.875rem;    /* 14px */
  --fs-sm: 0.9375rem;   /* 15px */
  --fs-base: 1.0625rem; /* 17px */
  --fs-md: 1.125rem;    /* 18px */
  --fs-lg: 1.25rem;     /* 20px */
  --fs-xl: 1.5rem;      /* 24px */
  --fs-2xl: 1.75rem;    /* 28px */
  --fs-3xl: 2.25rem;    /* 36px */
  --fs-4xl: 2.75rem;    /* 44px */
  --fs-5xl: 3.5rem;     /* 56px */

  /* Font Weights */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;

  /* Line Heights */
  --lh-tight: 1.2;
  --lh-normal: 1.5;
  --lh-relaxed: 1.75;

  /* === Spacing Scale === */
  --sp-1: 0.25rem;   /* 4px */
  --sp-2: 0.5rem;    /* 8px */
  --sp-3: 0.75rem;   /* 12px */
  --sp-4: 1rem;      /* 16px */
  --sp-5: 1.25rem;   /* 20px */
  --sp-6: 1.5rem;    /* 24px */
  --sp-8: 2rem;      /* 32px */
  --sp-10: 2.5rem;   /* 40px */
  --sp-12: 3rem;     /* 48px */
  --sp-16: 4rem;     /* 64px */
  --sp-20: 5rem;     /* 80px */
  --sp-24: 6rem;     /* 96px */

  /* === Border Radius === */
  --radius-sm: 0.375rem;   /* 6px */
  --radius-md: 0.5rem;     /* 8px */
  --radius-lg: 0.75rem;    /* 12px */
  --radius-xl: 1rem;       /* 16px */
  --radius-2xl: 1.5rem;    /* 24px */
  --radius-full: 9999px;

  /* === Shadows === */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --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.05);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
  --shadow-glow: 0 0 20px rgba(135, 206, 235, 0.3);
  --shadow-gold: 0 0 20px rgba(255, 215, 0, 0.2);

  /* === Transitions === */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 350ms ease;
  --transition-spring: 400ms cubic-bezier(0.34, 1.56, 0.64, 1);

  /* === Z-Index Scale === */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-header: 300;
  --z-overlay: 400;
  --z-modal: 500;
  --z-toast: 600;

  /* === Layout === */
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1280px;
  --header-height: 64px;

  /* === Glass Effect === */
  --glass-bg: rgba(255, 255, 255, 0.7);
  --glass-border: rgba(255, 255, 255, 0.3);
  --glass-blur: blur(12px);
}

/* ========================
   LIGHT THEME
   ======================== */
[data-theme="light"], :root[data-theme="light"] {
  --color-bg: #f8fafc;
  --color-bg-rgb: 248, 250, 252;
  --color-bg-alt: #ffffff;
  --color-bg-card: #ffffff;
  --color-bg-card-rgb: 255, 255, 255;
  --color-bg-elevated: #ffffff;
  --color-bg-hover: #f1f5f9;
  --color-bg-input: #ffffff;
  --color-bg-overlay: rgba(0, 0, 0, 0.5);

  --color-text: #0f172a;
  --color-text-secondary: #334155;
  
  --bg-grid-color: rgba(0, 0, 0, 0.06);
  --bg-glow: rgba(135, 206, 235, 0.2);
  --color-text-tertiary: #64748b;
  --color-text-inverse: #ffffff;
  --color-text-link: #026AA2; /* Deep blue for high contrast */

  --color-primary: #026AA2; /* Deeper sky blue for better contrast on white */
  --color-primary-hover: #034873;
  --color-primary-text: #ffffff;
  --color-secondary: var(--brand-gold-dark); /* Darker gold for better contrast */
  --color-secondary-hover: #b38500;
  --color-accent: var(--brand-red-dark);

  --color-border: #cbd5e1; /* Slightly darker border for visibility */
  --color-border-light: #e2e8f0;
  --color-divider: #e2e8f0;

  --color-success: #16a34a;
  --color-warning: #d97706;
  --color-error: #dc2626;
  --color-info: #026AA2;

  --header-bg: rgba(255, 255, 255, 0.85);
  --header-border: rgba(0, 0, 0, 0.06);
  --footer-bg: var(--brand-black);
  --footer-text: #e2e8f0;

  --card-shadow: var(--shadow-md);
  --card-shadow-hover: 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 0 0 1px var(--brand-sky-light);

  --glass-bg: rgba(255, 255, 255, 0.7);
  --glass-border: rgba(255, 255, 255, 0.3);
}

/* ========================
   DARK THEME (Default)
   ======================== */
[data-theme="dark"], :root[data-theme="dark"], :root {
  --color-bg: #0f172a;
  --color-bg-rgb: 15, 23, 42;
  --color-bg-alt: #1e293b;
  --color-bg-card: #1e293b;
  --color-bg-card-rgb: 30, 41, 59;
  --color-bg-elevated: #273549;
  --color-bg-hover: #334155;
  --color-bg-input: #1e293b;
  --color-bg-overlay: rgba(0, 0, 0, 0.7);

  --bg-grid-color: rgba(255, 255, 255, 0.06);
  --bg-glow: rgba(135, 206, 235, 0.15);

  --color-text: #f1f5f9;
  --color-text-secondary: #cbd5e1;
  --color-text-tertiary: #94a3b8;
  --color-text-inverse: #0f172a;
  --color-text-link: var(--brand-sky-light);

  --color-primary: var(--brand-sky);
  --color-primary-hover: var(--brand-sky-light);
  --color-primary-text: #0f172a;
  --color-secondary: var(--brand-gold);
  --color-secondary-hover: var(--brand-gold-light);
  --color-accent: var(--brand-red-light);

  --color-border: #334155;
  --color-border-light: #1e293b;
  --color-divider: #334155;

  --color-success: #4ade80;
  --color-warning: #fbbf24;
  --color-error: #f87171;
  --color-info: var(--brand-sky-light);

  --header-bg: rgba(15, 23, 42, 0.9);
  --header-border: rgba(255, 255, 255, 0.06);
  --footer-bg: #0a1122;
  --footer-text: #94a3b8;

  --card-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
  --card-shadow-hover: 0 25px 50px -12px rgba(0, 0, 0, 0.9), 0 0 20px rgba(135, 206, 235, 0.15);

  --glass-bg: rgba(30, 41, 59, 0.7);
  --glass-border: rgba(255, 255, 255, 0.08);

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.35);
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.4);
}

/* ========================
   Responsive Typography
   ======================== */
@media (min-width: 768px) {
  :root {
    --fs-base: 1rem;
    --fs-lg: 1.25rem;
    --fs-xl: 1.5rem;
    --fs-2xl: 1.75rem;
    --fs-3xl: 2.25rem;
    --fs-4xl: 3rem;
    --fs-5xl: 3.75rem;
    --header-height: 72px;
  }
}

@media (min-width: 1024px) {
  :root {
    --fs-3xl: 2.5rem;
    --fs-4xl: 3.5rem;
    --fs-5xl: 4.5rem;
  }
}
