/* Tokens e base. A cor da marca vive SÓ aqui (CHECKLIST: token --cor-primaria em static/css/style.css). */
:root {
  --cor-primaria: #C71B21;
  --cor-primaria-hover: #A3161B;
  --cor-primaria-escura: #761014;
  --cor-primaria-suave: #F8E7E8;
  --cor-primaria-soft: rgba(199, 27, 33, 0.12);
  --cor-primaria-sombra: rgba(199, 27, 33, 0.15);
  --cor-primaria-texto: #C71B21;
  --texto-sobre-cor-primaria: #FFFFFF;

  --rp-grafite: #222222;
  --rp-grafite-2: #2E2E2E;
  --rp-sobre-grafite: #FFFFFF;
  --rp-sobre-grafite-2: #A1A1AA;

  --branco: #FFFFFF;
  --fundo: #F7F7F7;
  --borda: #E4E4E7;
  --texto: #18181B;
  --texto-secundario: #52525C;
  --texto-fraco: #71717A;

  --verde: #22c55e;
  --verde-escuro: #16a34a;
  --verde-suave: #e6f6ec;
  --aviso: #B45309;
  --aviso-suave: #FEF3C7;
  --danger: #b91c1c;
  --danger-suave: #FEE2E2;

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

  --raio-sm: 8px;
  --raio: 12px;
  --raio-lg: 18px;
  --raio-full: 9999px;
  --sombra-sm: 0 1px 2px rgba(15, 23, 42, .06);
  --sombra: 0 4px 12px rgba(15, 23, 42, .08);
  --sombra-md: 0 8px 24px rgba(15, 23, 42, .12);
  --sombra-lg: 0 20px 50px rgba(15, 23, 42, .25);
  --transicao: .15s ease;

  --sidebar-width: 248px;
  --topbar-h: 58px;
  --h-controle: 40px;
  --h-controle-sm: 36px;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.55;
  color: var(--texto);
  background: var(--fundo);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
/* CRÍTICO: sem isso, form vai pra Arial/-apple-system (Font_Inherit_em_Form) */
button, input, select, textarea { font-family: inherit; }
h1, h2, h3, h4, h5 {
  font-family: var(--font-titulo);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--texto);
  line-height: 1.2;
  margin: 0;
}
a { color: var(--cor-primaria-texto); }
:focus-visible { outline: 2px solid var(--cor-primaria); outline-offset: 2px; }
.muted { color: var(--texto-secundario); }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.icon { font-size: 1.1rem; }
.icon-sm { font-size: .9rem; }
.icon-md { font-size: 1.25rem; }
.icon-lg { font-size: 1.75rem; }
.icon-xl { font-size: 2.5rem; }
.icon-danger { color: var(--danger); }
