/* ==========================================================================
   Todo Estudo 2026 — Design Tokens
   Componentes consomem SOMENTE tokens (nunca hex cru). Marca índigo #2F40EA.
   Dark mode reescreve apenas os tokens semânticos + os --disc-* semânticos.
   Cores por disciplina: [data-disciplina="slug"] define --disc-600/700/soft/100/300.
   ========================================================================== */

:root {
  color-scheme: light;

  /* --- Marca (índigo #2F40EA) --- */
  --brand-50:  #EEF0FE;
  --brand-100: #E0E3FD;
  --brand-200: #C4C9FB;
  --brand-300: #9BA4F7;
  --brand-400: #6D78F1;
  --brand-500: #4A56EC;
  --brand-600: #2F40EA;   /* primary (AA c/ branco: ~8.8:1) */
  --brand-700: #2433C0;   /* links / texto sobre branco */
  --brand-800: #1E2A9E;
  --brand-900: #1B2680;

  /* --- Neutros frios (slate) --- */
  --slate-50:  #F8FAFC;
  --slate-100: #F1F5F9;
  --slate-200: #E2E8F0;
  --slate-300: #CBD5E1;
  --slate-400: #94A3B8;
  --slate-500: #64748B;
  --slate-600: #475569;
  --slate-700: #334155;
  --slate-800: #1E293B;
  --slate-900: #0F172A;
  --slate-950: #020617;

  /* --- Fixos de marca (social) --- */
  --c-whatsapp: #25D366;
  --c-facebook: #1877F2;
  --c-danger:   #DC2626;
  --c-success:  #059669;

  /* --- Tokens semânticos (light) — o dark reescreve só estes --- */
  --bg:            var(--slate-50);
  --surface:       #FFFFFF;
  --surface-2:     var(--slate-100);
  --text:          var(--slate-900);
  --text-soft:     var(--slate-700);
  --muted:         var(--slate-500);
  --border:        var(--slate-200);
  --border-strong: var(--slate-300);
  --brand:         var(--brand-600);
  --brand-strong:  var(--brand-700);
  --link:          var(--brand-700);
  --header-bg:     #FFFFFF;
  --on-brand:      #FFFFFF;
  --focus:         #1D4ED8;

  /* --- disciplina: fallback = marca (quando não há data-disciplina) --- */
  --disc-600: var(--brand-600);
  --disc-700: var(--brand-700);
  --disc-soft: var(--brand-50);
  --disc-100: var(--brand-100);
  --disc-300: var(--brand-300);

  /* semânticos derivados (light) — flipam no dark */
  --disc-accent:  var(--disc-600);
  --disc-text:    var(--disc-700);
  --disc-surface: var(--disc-soft);
  --disc-chip-bg: var(--disc-soft);
  --disc-chip-fg: var(--disc-700);

  /* ====================== Tipografia ====================== */
  --font-display: "Roboto Slab", Georgia, "Times New Roman", serif;
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;

  --fs-xs:   0.8125rem;
  --fs-sm:   0.875rem;
  --fs-base: 1.0625rem;                                   /* corpo ~17px */
  --fs-md:   1.125rem;
  --fs-lg:   clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
  --fs-xl:   clamp(1.375rem, 1.1rem + 1.2vw, 1.75rem);
  --fs-2xl:  clamp(1.6rem, 1.25rem + 1.8vw, 2.25rem);
  --fs-3xl:  clamp(2rem, 1.5rem + 2.6vw, 2.9rem);

  --lh-tight: 1.18;
  --lh-snug:  1.35;
  --lh-body:  1.7;
  --tracking-tight: -0.01em;
  --measure: 70ch;

  /* ====================== Espaçamento (base-4) ====================== */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px; --sp-9: 96px;

  /* ====================== Raio ====================== */
  --r-sm: 8px; --r-md: 12px; --r-lg: 16px; --r-pill: 999px;

  /* ====================== Sombras (2 níveis) ====================== */
  --sh-1: 0 1px 2px rgba(15, 23, 42, 0.06);
  --sh-2: 0 6px 24px rgba(15, 23, 42, 0.10);

  /* ====================== Containers ====================== */
  --w-prose:   720px;
  --w-content: 1160px;
  --header-h:  60px;
  --subnav-h:  48px;

  /* ====================== Z-index ====================== */
  --z-base: 1; --z-dropdown: 10; --z-sticky: 20; --z-header: 30;
  --z-overlay: 40; --z-drawer: 50; --z-modal: 60; --z-toast: 70;

  /* ====================== Motion ====================== */
  --ease: cubic-bezier(.2, .7, .3, 1);
  --dur-fast: 150ms; --dur: 220ms;
}

/* ====================== Dark mode ====================== */
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:            #0B1220;
  --surface:       #131C2E;
  --surface-2:     #1B2436;
  --text:          #E7ECF3;
  --text-soft:     #C4CDDA;
  --muted:         #93A0B4;
  --border:        #26324A;
  --border-strong: #33415E;
  --brand:         var(--brand-400);
  --brand-strong:  var(--brand-300);
  --link:          var(--brand-300);
  --header-bg:     #0F1728;
  --focus:         #93C5FD;

  /* disciplina: texto/links sobem para o tom 300 (contraste sobre escuro) */
  --disc-text:    var(--disc-300);
  --disc-accent:  var(--disc-300);
  --disc-surface: var(--surface-2);
  --disc-chip-bg: var(--surface-2);
  --disc-chip-fg: var(--disc-300);
}

/* Aliases re-declarados no elemento com data-disciplina: custom property com var()
   resolve no elemento onde é DEFINIDA — no :root os aliases congelam na cor da marca
   e ignoram o --disc-600 sobrescrito pelo body. Aqui eles re-resolvem por disciplina. */
[data-disciplina] {
  --disc-accent:  var(--disc-600);
  --disc-text:    var(--disc-700);
  --disc-surface: var(--disc-soft);
  --disc-chip-bg: var(--disc-soft);
  --disc-chip-fg: var(--disc-700);
}
:root[data-theme="dark"] [data-disciplina] {
  --disc-text:    var(--disc-300);
  --disc-accent:  var(--disc-300);
  /* superfície tingida pela disciplina sobre o fundo escuro (fallback: surface-2) */
  --disc-surface: var(--surface-2);
  --disc-surface: color-mix(in srgb, var(--disc-600) 14%, var(--bg));
  --disc-chip-bg: var(--disc-surface);
  --disc-chip-fg: var(--disc-300);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Cores por disciplina — só as 5 propriedades cruas por bloco.
   (os semânticos --disc-accent/text/chip já flipam no dark, acima)
   ========================================================================== */
[data-disciplina="portugues"]       { --disc-600:#0284C7; --disc-700:#0369A1; --disc-soft:#F0F9FF; --disc-100:#E0F2FE; --disc-300:#7DD3FC; }
[data-disciplina="literatura"]      { --disc-600:#0E7490; --disc-700:#155E75; --disc-soft:#ECFEFF; --disc-100:#CFFAFE; --disc-300:#67E8F9; }
[data-disciplina="ingles"]          { --disc-600:#DC2626; --disc-700:#B91C1C; --disc-soft:#FEF2F2; --disc-100:#FEE2E2; --disc-300:#FCA5A5; }
[data-disciplina="artes"]           { --disc-600:#C026D3; --disc-700:#A21CAF; --disc-soft:#FDF4FF; --disc-100:#FAE8FF; --disc-300:#F0ABFC; }
[data-disciplina="biologia"]        { --disc-600:#DB2777; --disc-700:#BE185D; --disc-soft:#FDF2F8; --disc-100:#FCE7F3; --disc-300:#F9A8D4; }
[data-disciplina="matematica"]      { --disc-600:#9333EA; --disc-700:#7E22CE; --disc-soft:#FAF5FF; --disc-100:#F3E8FF; --disc-300:#D8B4FE; }
[data-disciplina="fisica"]          { --disc-600:#4F46E5; --disc-700:#4338CA; --disc-soft:#EEF2FF; --disc-100:#E0E7FF; --disc-300:#A5B4FC; }
[data-disciplina="educacao-fisica"] { --disc-600:#65A30D; --disc-700:#4D7C0F; --disc-soft:#F7FEE7; --disc-100:#ECFCCB; --disc-300:#BEF264; }
[data-disciplina="quimica"]         { --disc-600:#EA580C; --disc-700:#C2410C; --disc-soft:#FFF7ED; --disc-100:#FFEDD5; --disc-300:#FDBA74; }
[data-disciplina="historia"]        { --disc-600:#B45309; --disc-700:#92400E; --disc-soft:#FFFBEB; --disc-100:#FEF3C7; --disc-300:#FCD34D; }
[data-disciplina="sociologia"]      { --disc-600:#D97706; --disc-700:#B45309; --disc-soft:#FFFBEB; --disc-100:#FEF3C7; --disc-300:#FBBF24; }
[data-disciplina="geografia"]       { --disc-600:#059669; --disc-700:#047857; --disc-soft:#ECFDF5; --disc-100:#D1FAE5; --disc-300:#6EE7B7; }
[data-disciplina="filosofia"]       { --disc-600:#1D4ED8; --disc-700:#1E40AF; --disc-soft:#EFF6FF; --disc-100:#DBEAFE; --disc-300:#93C5FD; }
[data-disciplina="dicas"]           { --disc-600:#2F40EA; --disc-700:#2433C0; --disc-soft:#EEF0FE; --disc-100:#E0E3FD; --disc-300:#9BA4F7; }
