* { box-sizing: border-box; margin: 0; padding: 0; }

html { color-scheme: light; }
[data-theme="dark"] { color-scheme: dark; }

body {
  font-family: var(--font);
  font-size: var(--fs-base);
  line-height: 1.55;
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* CRITICO (Sistema_de_Estilos): sem esta linha o form cai pra Arial/-apple-system,
   porque o browser NAO herda font-family nesses elementos por padrao. */
button, input, select, textarea { font-family: inherit; }

/* Sora so nos titulos. Corpo, label, botao e menu ficam em Inter. */
h1, h2, h3, h4, h5 {
  font-family: var(--font-titulo);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--text);
  line-height: 1.2;
}

h1 { font-size: var(--fs-2xl); }
h2 { font-size: var(--fs-xl); }
h3 { font-size: var(--fs-lg); }
h4 { font-size: var(--fs-base); }
h5 { font-size: var(--fs-sm); }

a { color: var(--accent); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--accent-hover); }

/* Foco visivel por teclado em toda a UI (acessibilidade) */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

img, svg { max-width: 100%; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-elev); }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: var(--radius-full); }
::-webkit-scrollbar-thumb:hover { background: var(--text-faint); }

/* Utilitarios de texto usados pelas telas (evita style= inline no template) */
.texto-centro { text-align: center; }
.texto-dim { color: var(--text-dim); }
.texto-sm { font-size: var(--fs-sm); }
.texto-xs { font-size: var(--fs-xs); }
.texto-positivo { color: var(--success); }
.texto-negativo { color: var(--danger); }
.card-estreito { max-width: 640px; }
.mt-3 { margin-top: var(--sp-3); }
.mt-4 { margin-top: var(--sp-4); }
.mt-5 { margin-top: var(--sp-5); }
.mb-2 { margin-bottom: var(--sp-2); }
.mb-3 { margin-bottom: var(--sp-3); }
.mb-4 { margin-bottom: var(--sp-4); }
.mb-5 { margin-bottom: var(--sp-5); }
.valor-destaque { font-weight: 700; font-size: var(--fs-lg); }
.data-vencida { color: var(--danger); font-weight: 600; }
.ml-2 { margin-left: var(--sp-2); }
.card-estreito-sm { max-width: 450px; }
.auth-subtitulo { text-align: center; color: var(--text-dim); font-size: var(--fs-sm); margin-bottom: var(--sp-5); }
.radio-grupo { display: flex; gap: var(--sp-3); margin-top: var(--sp-2); }
.radio-opcao { display: flex; align-items: center; gap: var(--sp-2); cursor: pointer; color: var(--text); }
.selecao-org-form { margin-bottom: var(--sp-3); }
.selecao-org-btn { justify-content: space-between; padding: var(--sp-4); }
