/* ============================================
   Kids App - Global Theme
   Tablet-first • Dark/Light • Strict palette
   Font: Inter
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ---------- Color palette: 6 shades × 9 colors ---------- */
:root {
  /* Primary (blue) */
  --primary-50: #eff6ff;
  --primary-100: #dbeafe;
  --primary-200: #bfdbfe;
  --primary-300: #93c5fd;
  --primary-400: #60a5fa;
  --primary-500: #3b82f6;
  --primary-600: #2563eb;

  /* Secondary (indigo) */
  --secondary-50: #eef2ff;
  --secondary-100: #e0e7ff;
  --secondary-200: #c7d2fe;
  --secondary-300: #a5b4fc;
  --secondary-400: #818cf8;
  --secondary-500: #6366f1;
  --secondary-600: #4f46e5;

  /* Accent (amber - playful) */
  --accent-50: #fffbeb;
  --accent-100: #fef3c7;
  --accent-200: #fde68a;
  --accent-300: #fcd34d;
  --accent-400: #fbbf24;
  --accent-500: #f59e0b;
  --accent-600: #d97706;

  /* Success (green) */
  --success-50: #f0fdf4;
  --success-100: #dcfce7;
  --success-200: #bbf7d0;
  --success-300: #86efac;
  --success-400: #4ade80;
  --success-500: #22c55e;
  --success-600: #16a34a;

  /* Warning (yellow) */
  --warning-50: #fefce8;
  --warning-100: #fef9c3;
  --warning-200: #fef08a;
  --warning-300: #fde047;
  --warning-400: #facc15;
  --warning-500: #eab308;
  --warning-600: #ca8a04;

  /* Error (red) */
  --error-50: #fef2f2;
  --error-100: #fee2e2;
  --error-200: #fecaca;
  --error-300: #fca5a5;
  --error-400: #f87171;
  --error-500: #ef4444;
  --error-600: #dc2626;

  /* Sky */
  --sky-50: #f0f9ff;
  --sky-100: #e0f2fe;
  --sky-200: #bae6fd;
  --sky-300: #7dd3fc;
  --sky-400: #38bdf8;
  --sky-500: #0ea5e9;
  --sky-600: #0284c7;

  /* Violet */
  --violet-50: #f5f3ff;
  --violet-100: #ede9fe;
  --violet-200: #ddd6fe;
  --violet-300: #c4b5fd;
  --violet-400: #a78bfa;
  --violet-500: #8b5cf6;
  --violet-600: #7c3aed;

  /* Coral */
  --coral-50: #fff7ed;
  --coral-100: #ffedd5;
  --coral-200: #fed7aa;
  --coral-300: #fdba74;
  --coral-400: #fb923c;
  --coral-500: #f97316;
  --coral-600: #ea580c;

  /* Neutrals - 6 shades */
  --neutral-50: #fafafa;
  --neutral-100: #f4f4f5;
  --neutral-200: #e4e4e7;
  --neutral-300: #d4d4d8;
  --neutral-400: #a1a1aa;
  --neutral-500: #71717a;
  --neutral-600: #52525b;
}

/* ---------- Light mode (default) ---------- */
:root,
[data-theme="light"] {
  --bg: var(--neutral-50);
  --bg-elevated: #ffffff;
  --bg-card: #ffffff;
  --text-main: var(--neutral-600);
  --text-dim: var(--neutral-500);
  --text-inverse: #ffffff;
  --border: var(--neutral-200);
  --border-strong: var(--neutral-300);
  --header-bg: var(--primary-500);
  --header-text: #ffffff;
  --points-bg: var(--accent-100);
  --points-text: var(--accent-600);
  --gems-bg: var(--sky-100);
  --gems-text: var(--sky-600);
  --pin-overlay-bg: var(--primary-500);
  --pin-key-bg: rgba(255, 255, 255, 0.2);
  --pin-key-active: rgba(255, 255, 255, 0.35);
  --card-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  --card-hover: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* ---------- Dark mode ---------- */
[data-theme="dark"] {
  --bg: var(--neutral-600);
  --bg-elevated: var(--neutral-500);
  --bg-card: var(--neutral-500);
  --text-main: var(--neutral-100);
  --text-dim: var(--neutral-200);
  --text-inverse: var(--neutral-600);
  --border: var(--neutral-400);
  --border-strong: var(--neutral-300);
  --header-bg: var(--primary-600);
  --header-text: #ffffff;
  --points-bg: var(--accent-600);
  --points-text: var(--accent-100);
  --gems-bg: var(--sky-600);
  --gems-text: var(--sky-100);
  --pin-overlay-bg: var(--primary-600);
  --pin-key-bg: rgba(255, 255, 255, 0.15);
  --pin-key-active: rgba(255, 255, 255, 0.25);
  --card-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
  --card-hover: 0 4px 16px rgba(0, 0, 0, 0.4);
}

/* ---------- Base ---------- */
* {
  box-sizing: border-box;
}

body {
  font-family: 'Inter', sans-serif;
  background-color: var(--bg);
  color: var(--text-main);
  margin: 0;
  padding: 0;
  min-height: 100vh;
  min-height: 100dvh;
  transition: background-color 0.2s ease, color 0.2s ease;
}

/* Safe area for notched devices / PWA */
body {
  padding-top: env(safe-area-inset-top, 0);
  padding-bottom: env(safe-area-inset-bottom, 0);
  padding-left: env(safe-area-inset-left, 0);
  padding-right: env(safe-area-inset-right, 0);
}
