:root {
  /* Sprint 15.2 (C-01): informa ao navegador que os controles nativos
     (select, date, scrollbar) devem seguir o tema ativo — sem isso, o
     menu suspenso de um <select> e o ícone do calendário do <input
     type=date> renderizam com o esquema claro do SO mesmo no tema
     escuro do produto. */
  color-scheme: light;
  --bg: #FAFAFA;
  --bg-subtle: #F0F0F2;
  --surface: #FFFFFF;
  --border: #E0E0E3;
  --text-primary: #18181B;
  --text-secondary: #52525B;
  --text-tertiary: #71717A;
  --accent: #5B5FEF;
  --accent-contrast: #FFFFFF;
  --danger: #EF4444;
  --success: #22C55E;
  --card-shadow: 0 1px 2px rgba(0,0,0,.04), 0 1px 3px rgba(0,0,0,.05);

  --status-andamento: #3B82F6;
  --status-aguardando: #F59E0B;
  --status-bloqueado: #EF4444;
  --status-pausado: #71717A;
  --status-concluido: #22C55E;

  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px;

  --radius: 8px;
  --radius-sm: 6px;
  --radius-pill: 999px;

  /* Sprint 15 (RF11): escala única de altura de controle. Antes havia
     5 alturas ad-hoc (36/40/32/30/28) espalhadas pelo CSS. */
  --control-sm: 28px;
  --control-md: 36px;
  --control-lg: 40px;
  /* Largura confortável de leitura para blocos textuais (RF2). */
  --readable: 72ch;

  /* Sprint 15.2 (R-05): escala única de line-height — antes 1.5 e 1.6
     coexistiam para o mesmo tipo de conteúdo (texto de leitura) em
     telas diferentes, sem token nenhum por trás. */
  --lh-tight: 1.25;
  --lh-base: 1.5;

  --shadow-md: 0 4px 12px rgba(0,0,0,.08);

  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --fs-meta: 12px; --fs-label: 13px; --fs-body: 14px;
  --fs-lg: 16px; --fs-title: 20px; --fs-page: 26px;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0B0B0D;
  --bg-subtle: #151517;
  --surface: #1C1C1F;
  --border: #2A2A2E;
  --text-primary: #F4F4F5;
  --text-secondary: #A1A1AA;
  --text-tertiary: #8B8B94;
  --accent: #818CF8;
  --accent-contrast: #0B0B0D;
  --danger: #F87171;
  --success: #4ADE80;
  --card-shadow: none;
  --shadow-md: 0 4px 12px rgba(0,0,0,.5);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #0B0B0D;
    --bg-subtle: #151517;
    --surface: #1C1C1F;
    --border: #2A2A2E;
    --text-primary: #F4F4F5;
    --text-secondary: #A1A1AA;
    --text-tertiary: #8B8B94;
    --accent: #818CF8;
    --accent-contrast: #0B0B0D;
    --danger: #F87171;
    --success: #4ADE80;
    --card-shadow: none;
    --shadow-md: 0 4px 12px rgba(0,0,0,.5);
  }
}

/* Sprint 15.2 (I-05): o botão de alternância de tema mostrava sempre o
   mesmo ícone (lua), em claro e em escuro — ambíguo sobre qual é o
   estado atual. O botão renderiza os dois ícones (base.html) e o CSS
   mostra só o que representa a AÇÃO disponível: lua ("mudar para
   escuro") no tema claro, sol ("mudar para claro") no tema escuro.
   Mesmo padrão de 3 blocos (explícito escuro / explícito claro /
   preferência do sistema) já usado acima para as cores. */
.theme-toggle-sun { display: none; }
:root[data-theme="dark"] .theme-toggle-moon { display: none; }
:root[data-theme="dark"] .theme-toggle-sun { display: inline-flex; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .theme-toggle-moon { display: none; }
  :root:not([data-theme="light"]) .theme-toggle-sun { display: inline-flex; }
}
