:root {
  --fundo: #f6f7f5; --cartao: #ffffff; --texto: #1c2321; --suave: #5d6b66; --linha: #dfe4e1;
  --marca: #047857; --marca-texto: #ffffff; --aviso: #8a5a00; --aviso-fundo: #fff4d6; --erro: #b42318; --erro-fundo: #fde7e4; --ok-fundo: #e3f4ec;
}
@media (prefers-color-scheme: dark) {
  :root { --fundo: #141917; --cartao: #1c2321; --texto: #e8ede9; --suave: #9aa8a2; --linha: #2f3a36; --marca: #34b27f; --marca-texto: #08140f; --aviso: #f0c36b; --aviso-fundo: #3a2e10; --erro: #ff8a7a; --erro-fundo: #3d1b17; --ok-fundo: #16332a; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fundo); color: var(--texto); font: 15px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif; }
header { background: var(--cartao); border-bottom: 1px solid var(--linha); display: flex; align-items: center; gap: 8px; padding: 10px 16px; flex-wrap: wrap; }
header strong { margin-right: 12px; }
header .espaco { flex: 1; }
main { max-width: 1280px; margin: 0 auto; padding: 16px; }
h1 { font-size: 1.3rem; margin: 0 0 4px; }
h2 { font-size: 1.05rem; margin: 0 0 8px; }
p.suave, .suave { color: var(--suave); margin: 0 0 12px; }
.cartao { background: var(--cartao); border: 1px solid var(--linha); border-radius: 8px; padding: 16px; margin-bottom: 16px; }
.barra { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
button, .botao { font: inherit; border: 1px solid var(--linha); background: var(--cartao); color: var(--texto); border-radius: 6px; padding: 7px 12px; cursor: pointer; text-decoration: none; display: inline-block; }
button:hover, .botao:hover { border-color: var(--marca); }
button.principal { background: var(--marca); color: var(--marca-texto); border-color: var(--marca); }
button.ativo { border-color: var(--marca); font-weight: 600; }
button:disabled { opacity: .55; cursor: wait; }
input, select { font: inherit; border: 1px solid var(--linha); background: var(--cartao); color: var(--texto); border-radius: 6px; padding: 7px 10px; }
label { display: block; font-size: .85rem; color: var(--suave); margin-bottom: 3px; }
.grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; align-items: end; }
.tabela-rolagem { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: .9rem; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--linha); vertical-align: top; white-space: nowrap; }
th { color: var(--suave); font-weight: 600; font-size: .8rem; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
tr.clicavel { cursor: pointer; }
tr.clicavel:hover td { background: var(--ok-fundo); }
td.quebra { white-space: normal; min-width: 220px; }
.etiqueta { display: inline-block; border-radius: 4px; padding: 1px 7px; font-size: .78rem; background: var(--ok-fundo); }
.etiqueta.cancelada { background: var(--erro-fundo); color: var(--erro); }
.aviso { background: var(--aviso-fundo); color: var(--aviso); border-radius: 6px; padding: 6px 10px; margin: 4px 0; font-size: .85rem; white-space: normal; }
.erro { background: var(--erro-fundo); color: var(--erro); border-radius: 6px; padding: 8px 12px; margin-bottom: 12px; }
.ok { background: var(--ok-fundo); border-radius: 6px; padding: 8px 12px; margin-bottom: 12px; }
.login { max-width: 360px; margin: 12vh auto; }
.login .cartao > * + * { margin-top: 12px; }
.login input { width: 100%; }
