:root {
  --fundo: #f3f5f7;
  --cartao: #ffffff;
  --tinta: #1f2933;
  --suave: #66717d;
  --linha: #dde2e7;
  --marca: #0c4a6e;
  --marca-forte: #083a57;
  --ok: #18794e;
  --erro: #b02020;
  --erro-fundo: #fdecec;
  --raio: 10px;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--fundo);
  color: var(--tinta);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
.faixa { height: 4px; background: var(--marca); }
.pagina { max-width: 440px; margin: 0 auto; padding: 32px 16px 48px; }
.pagina.larga { max-width: 960px; }

h1 { font-size: 22px; margin: 0 0 4px; color: var(--marca); letter-spacing: -0.01em; }
.sub { color: var(--suave); font-size: 14px; margin: 0 0 24px; }

.cartao {
  background: var(--cartao);
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  padding: 20px;
  margin-bottom: 16px;
}
.selo {
  display: inline-flex; gap: 6px; align-items: baseline;
  background: #e8f1f6; color: var(--marca-forte);
  padding: 6px 10px; border-radius: 999px; font-size: 13px; margin-bottom: 18px;
}
.selo strong { font-size: 14px; }

label { display: block; font-size: 13px; font-weight: 600; margin: 14px 0 6px; }
label:first-child { margin-top: 0; }
label.marcar { display: flex; align-items: center; gap: 8px; font-weight: 400; margin: 10px 0 0; cursor: pointer; }
label.marcar input { width: 18px; height: 18px; margin: 0; }
select, input[type="password"], input[type="text"] {
  width: 100%; font: inherit; font-size: 16px;
  padding: 11px 12px; border: 1px solid var(--linha); border-radius: 8px;
  background: #fff; color: var(--tinta);
}
select:focus, input:focus { outline: 2px solid var(--marca); outline-offset: 0; border-color: transparent; }

button {
  font: inherit; font-weight: 600; font-size: 15px;
  border: 0; border-radius: 8px; padding: 12px 16px; cursor: pointer;
  background: var(--marca); color: #fff; width: 100%; margin-top: 20px;
}
button:hover { background: var(--marca-forte); }
button:disabled { opacity: .55; cursor: wait; }
button.secundario { background: #fff; color: var(--marca); border: 1px solid var(--linha); width: auto; margin-top: 0; padding: 8px 12px; font-size: 13px; }
button.secundario:hover { background: var(--fundo); }

.msg { margin-top: 14px; font-size: 14px; padding: 10px 12px; border-radius: 8px; display: none; }
.msg.erro { display: block; background: var(--erro-fundo); color: var(--erro); }
.msg.ok { display: block; background: #e7f5ee; color: var(--ok); }
.msg.info { display: block; background: #eef2f6; color: var(--tinta); }

.rodape { color: var(--suave); font-size: 12px; text-align: center; margin-top: 24px; }

/* Admin */
.passos { display: grid; gap: 16px; }
.passo h2 { font-size: 15px; margin: 0 0 4px; }
.passo p { color: var(--suave); font-size: 13px; margin: 0 0 12px; }
.arquivo { display: block; width: 100%; font-size: 14px; padding: 10px; border: 1px dashed var(--linha); border-radius: 8px; background: var(--fundo); }
.resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 12px; }
.resumo div { background: var(--fundo); border-radius: 8px; padding: 10px 12px; }
.resumo span { display: block; font-size: 11px; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.resumo strong { font-size: 18px; }
.tabela-wrap { overflow-x: auto; margin-top: 12px; }
table { border-collapse: collapse; width: 100%; font-size: 13px; }
th, td { text-align: left; padding: 7px 8px; border-bottom: 1px solid var(--linha); white-space: nowrap; }
th { color: var(--suave); font-weight: 600; font-size: 12px; }
td.num { text-align: right; font-variant-numeric: tabular-nums; }
.tag-erro { color: var(--erro); font-weight: 600; }
.acoes { display: flex; gap: 8px; flex-wrap: wrap; }

.opcional { font-weight: 400; color: var(--suave); font-size: 13px; }
.linha-form { display: flex; gap: 8px; flex-wrap: wrap; }
.linha-form input { flex: 1 1 180px; width: auto; }
.manual { margin-top: 12px; font-size: 13px; }
.manual summary { cursor: pointer; color: var(--marca); }
.manual label { margin-top: 10px; }
