/* ============================================================================
   EMAdvertise Frontend — Theme CSS (Design Tokens)
   Derived from theme.txt spec
   Dark mode by default; light mode via [data-theme="light"]
   ============================================================================ */

/* --- DARK MODE (DEFAULT) --- */
:root,
[data-theme="dark"] {
  /* === COLOR PALETTE === */
  --color-bg-primary: #1a1a2e;
  --color-bg-secondary: #16213e;
  --color-bg-tertiary: #0f3460;
  --color-bg-hover: #1a1a3e;
  --color-bg-overlay: rgba(0, 0, 0, 0.6);

  --color-text-primary: #eaeaea;
  --color-text-secondary: #a0a0b8;
  --color-text-muted: #6a6a80;
  --color-text-inverse: #1a1a2e;

  --color-accent: #4fc3f7;
  --color-accent-hover: #29b6f6;
  --color-accent-subtle: rgba(79, 195, 247, 0.15);

  --color-success: #66bb6a;
  --color-warning: #ffa726;
  --color-error: #ef5350;
  --color-info: #42a5f5;

  --color-border: rgba(255, 255, 255, 0.08);
  --color-border-focus: #4fc3f7;

  --color-gradient-start: #4fc3f7;
  --color-gradient-end: #7c4dff;

  --color-input-bg: rgba(255, 255, 255, 0.05);

  /* === SHADOWS === */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.5);
  --shadow-glow: 0 0 20px rgba(79, 195, 247, 0.3);
  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 1px var(--color-border);
}

/* --- LIGHT MODE --- */
[data-theme="light"] {
  --color-bg-primary: #f5f5f7;
  --color-bg-secondary: #ffffff;
  --color-bg-tertiary: #e8e8ed;
  --color-bg-hover: #ececf0;
  --color-bg-overlay: rgba(0, 0, 0, 0.4);

  --color-text-primary: #1a1a2e;
  --color-text-secondary: #555570;
  --color-text-muted: #8e8ea0;
  --color-text-inverse: #ffffff;

  --color-accent: #0288d1;
  --color-accent-hover: #0277bd;
  --color-accent-subtle: rgba(2, 136, 209, 0.12);

  --color-success: #2e7d32;
  --color-warning: #ed6c02;
  --color-error: #d32f2f;
  --color-info: #1976d2;

  --color-border: rgba(0, 0, 0, 0.1);
  --color-border-focus: #0288d1;

  --color-gradient-start: #0288d1;
  --color-gradient-end: #651fff;

  --color-input-bg: rgba(0, 0, 0, 0.04);

  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.18);
  --shadow-glow: 0 0 20px rgba(2, 136, 209, 0.25);
  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.08), 0 0 1px var(--color-border);
}

/* === TYPOGRAPHY === */
:root {
  --font-family-main: 'Inter', 'Vazirmatn', -apple-system, BlinkMacSystemFont,
    'Segoe UI', sans-serif;
  --font-family-mono: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;

  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-md: 1.125rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: 2rem;
  --font-size-3xl: 2.5rem;

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

  --line-height-tight: 1.25;
  --line-height-normal: 1.6;
  --line-height-relaxed: 1.75;

  --letter-spacing-tight: -0.02em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.05em;

  /* === SPACING SCALE === */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;

  /* === BORDER RADIUS === */
  --radius-none: 0;
  --radius-sm: 0.375rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --radius-full: 9999px;

  /* === TRANSITIONS & ANIMATION === */
  --transition-fast: 150ms ease;
  --transition-normal: 250ms ease;
  --transition-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);

  /* === COMPONENT TOKENS === */
  --btn-padding-y: var(--space-3);
  --btn-padding-x: var(--space-6);
  --btn-radius: var(--radius-lg);
  --btn-font-size: var(--font-size-base);
  --btn-font-weight: var(--font-weight-semibold);

  --card-padding: var(--space-6);
  --card-radius: var(--radius-lg);
  --card-gap: var(--space-4);

  --input-padding-y: var(--space-3);
  --input-padding-x: var(--space-4);
  --input-radius: var(--radius-md);
  --input-border: var(--color-border);

  --navbar-height: 56px;
  --navbar-bg: rgba(26, 26, 46, 0.85);
  --navbar-blur: 12px;

  --container-max-width: 100%;
  --container-padding: var(--space-4);

  --section-card-icon-size: 40px;
  --section-card-min-height: 140px;

  /* === SAFE AREA TOKENS === */
  --safe-area-top: env(safe-area-inset-top, 0px);
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --safe-area-left: env(safe-area-inset-left, 0px);
  --safe-area-right: env(safe-area-inset-right, 0px);

  /* === BREAKPOINTS (documentation only — used via media queries) === */
  /* --breakpoint-sm: 480px */
  /* --breakpoint-md: 768px */
  /* --breakpoint-lg: 1024px */
  /* --breakpoint-xl: 1280px */

  /* === FOCUS RING === */
  --focus-ring: 0 0 0 3px rgba(79, 195, 247, 0.5);

  /* === MOTION === */
  --reduce-motion: false;
}

/* --- TABLET+ OVERRIDES (≥768px) --- */
@media (min-width: 768px) {
  :root {
    --navbar-height: 64px;
    --container-max-width: 720px;
    --container-padding: var(--space-6);
    --section-card-icon-size: 48px;
    --section-card-min-height: 160px;
    --card-gap: var(--space-6);
  }
}

/* --- DESKTOP OVERRIDES (≥1024px) --- */
@media (min-width: 1024px) {
  :root {
    --container-max-width: 960px;
    --container-padding: var(--space-8);
  }
}

/* --- LARGE DESKTOP OVERRIDES (≥1280px) --- */
@media (min-width: 1280px) {
  :root {
    --container-max-width: 1100px;
  }
}

/* --- REDUCED MOTION --- */
@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0s;
    --transition-normal: 0s;
    --transition-slow: 0s;
  }
}
