/* ============================================================
   BASE — reset, defaults do documento, tipografia e utilitários
   de layout (as pilhas/linhas flex que se repetem em toda view).
   ============================================================ */

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

body {
  font-family:
    'Inter',
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    Roboto,
    sans-serif;
  font-size: 14px;
  line-height: 120%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--texto);
  background: var(--fundo);
  min-height: 100vh;
}

a {
  text-decoration: none;
  color: inherit;
}

/* hidden vence display inline (ex: modais com display:flex no style=) */
[hidden] {
  display: none !important;
}

/* ── Tipografia recorrente ─────────────────────────────── */
.titulo-pagina {
  font-size: 24px;
  font-weight: 700;
  color: var(--texto);
  margin: 0;
  line-height: 1.3;
}

.subtitulo-pagina {
  font-size: 13px;
  color: var(--texto-suave);
  margin: 0;
}

.titulo-card {
  font-size: 16px;
  font-weight: 600;
  color: var(--texto);
  margin: 0;
}

.texto-suave {
  font-size: 13px;
  color: var(--texto-suave);
  margin: 0;
}

/* ── Utilitários de layout (top dos 934 styles inline) ────
   pilha-N = coluna com gap N · linha-N = row centrada com gap N */
.pilha-4  { display: flex; flex-direction: column; gap: 4px; }
.pilha-6  { display: flex; flex-direction: column; gap: 6px; }
.pilha-8  { display: flex; flex-direction: column; gap: 8px; }
.pilha-12 { display: flex; flex-direction: column; gap: 12px; }
.pilha-16 { display: flex; flex-direction: column; gap: 16px; }
.pilha-20 { display: flex; flex-direction: column; gap: 20px; }
.pilha-24 { display: flex; flex-direction: column; gap: 24px; }

.linha-6  { display: flex; align-items: center; gap: 6px; }
.linha-8  { display: flex; align-items: center; gap: 8px; }
.linha-10 { display: flex; align-items: center; gap: 10px; }
.linha-12 { display: flex; align-items: center; gap: 12px; }
.linha-16 { display: flex; align-items: center; gap: 16px; }

.entre  { display: flex; align-items: center; justify-content: space-between; }
.fim    { display: flex; justify-content: flex-end; }
.centro { display: flex; justify-content: center; }

/* Form que não quebra linha (button_to dentro de células/ações) */
.form-inline {
  display: inline;
}
