/* custom.css */
:root, body.light {
  /* Hex oficial exato — fonte da verdade, nunca gerado */
  --primary: #0093dd;
  --on-primary: #FFFFFF;

  --primary-container: oklch(from var(--primary) 0.92 calc(c * 0.35) h);
  --on-primary-container: oklch(from var(--primary) 0.20 c h);

  --secondary: oklch(from var(--primary) l calc(c * 0.35) h);
  --on-secondary: #FFFFFF;
  --secondary-container: oklch(from var(--secondary) 0.90 calc(c * 0.5) h);
  --on-secondary-container: oklch(from var(--secondary) 0.20 c h);

  --tertiary: oklch(from var(--primary) l calc(c * 0.6) calc(h + 60));
  --on-tertiary: #FFFFFF;
  --tertiary-container: oklch(from var(--tertiary) 0.90 calc(c * 0.5) h);
  --on-tertiary-container: oklch(from var(--tertiary) 0.20 c h);

  /* Erro: mantém a matiz semântica padrão (vermelho), não deriva do primary */
  --error: #ba1a1a;
  --on-error: #ffffff;
  --error-container: #ffdad6;
  --on-error-container: #410002;

  /* Fundo e superfície base */
  --background: oklch(from var(--primary) 0.985 calc(c * 0.03) h);
  --on-background: oklch(from var(--primary) 0.15 calc(c * 0.03) h);
  --surface: oklch(from var(--primary) 0.98 calc(c * 0.04) h);
  --on-surface: oklch(from var(--primary) 0.15 calc(c * 0.04) h);
  --surface-variant: oklch(from var(--primary) 0.90 calc(c * 0.12) h);
  --on-surface-variant: oklch(from var(--primary) 0.30 calc(c * 0.1) h);

  --outline: oklch(from var(--primary) 0.55 calc(c * 0.15) h);
  --outline-variant: oklch(from var(--primary) 0.80 calc(c * 0.1) h);
  --shadow: #000000;
  --scrim: #000000;

  --inverse-surface: oklch(from var(--primary) 0.20 calc(c * 0.05) h);
  --inverse-on-surface: oklch(from var(--primary) 0.95 calc(c * 0.05) h);
  --inverse-primary: oklch(from var(--primary) 0.80 c h);

  /* A família que estava faltando — é ela que pinta os cards (article) */
  --surface-dim: oklch(from var(--primary) 0.87 calc(c * 0.06) h);
  --on-surface-dim: oklch(from var(--primary) 0.48 calc(c * 0.08) h);
  --surface-bright: oklch(from var(--primary) 0.98 calc(c * 0.04) h);
  --surface-container-lowest: oklch(from var(--primary) 1.00 0 h);
  --surface-container-low: oklch(from var(--primary) 0.96 calc(c * 0.04) h);
  --surface-container: oklch(from var(--primary) 0.94 calc(c * 0.05) h);
  --surface-container-high: oklch(from var(--primary) 0.92 calc(c * 0.06) h);
  --surface-container-highest: oklch(from var(--primary) 0.90 calc(c * 0.07) h);
}

[data-theme="dark"], body.dark {
  --primary: oklch(from #0093dd 0.80 c h);
  --on-primary: oklch(from var(--primary) 0.20 c h);

  --surface: oklch(from #0093dd 0.12 calc(c * 0.06) h);
  --on-surface: oklch(from #0093dd 0.92 calc(c * 0.06) h);

  --surface-container-lowest: oklch(from #0093dd 0.08 calc(c * 0.05) h);
  --surface-container-low: oklch(from #0093dd 0.12 calc(c * 0.06) h);
  --surface-container: oklch(from #0093dd 0.16 calc(c * 0.06) h);
  --surface-container-high: oklch(from #0093dd 0.20 calc(c * 0.07) h);
  --surface-container-highest: oklch(from #0093dd 0.24 calc(c * 0.08) h);

  --on-surface-dim: oklch(from #0093dd 0.65 calc(c * 0.08) h);
}


.helper-text { 
  color: var(--on-surface-dim); 
  font-size:.9rem; 
}

nav.responsive {
    max-inline-size: min(100vw, 75rem);
    margin: 0 auto;
}

.field {
  margin-block-start: 1.5rem !important;
}

.field-hint {
    font-size: 0.75rem;
    color: var(--on-surface-variant);
    margin-block-start: 0.25rem !important;
    padding: 0 1.25rem;
}