:root { --bg:#f6f7f9; --card:#fff; --tx:#1b2430; --mut:#5b6675; --pri:#0b5d3b; --bd:#d9dee5; --err:#b3261e; --ok:#0b5d3b; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#12161b; --card:#1b2129; --tx:#e8ecf1; --mut:#9aa6b5; --pri:#4cc38a; --bd:#2c3540; --err:#ff8a80; --ok:#4cc38a; }
}
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, sans-serif; background:var(--bg); color:var(--tx); }
header { background:var(--card); border-bottom:1px solid var(--bd); padding:.6rem 1rem; display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
header .marca { font-weight:700; color:var(--pri); }
header nav { display:flex; gap:.9rem; flex-wrap:wrap; flex:1; }
header a { color:var(--tx); text-decoration:none; } header a:hover { color:var(--pri); }
main { max-width:1100px; margin:1.2rem auto; padding:0 1rem; }
.card { background:var(--card); border:1px solid var(--bd); border-radius:8px; padding:1rem; margin-bottom:1rem; }
.centro { max-width:420px; margin:8vh auto; }
h1 { font-size:1.4rem; margin:.2rem 0 1rem; } h2 { font-size:1.1rem; margin:.2rem 0 .6rem; }
label { display:block; font-weight:600; margin:.7rem 0 .2rem; }
input, select { width:100%; padding:.5rem; border:1px solid var(--bd); border-radius:6px; background:var(--bg); color:var(--tx); font:inherit; }
input[type=checkbox] { width:auto; }
button, .btn { background:var(--pri); color:#fff; border:0; border-radius:6px; padding:.55rem 1rem; font:inherit; cursor:pointer; margin-top:.9rem; }
button.sec { background:transparent; color:var(--tx); border:1px solid var(--bd); margin:0; }
.erro { color:var(--err); font-weight:600; } .ok { color:var(--ok); font-weight:600; } .mut { color:var(--mut); }
table { width:100%; border-collapse:collapse; } th, td { text-align:left; padding:.45rem .5rem; border-bottom:1px solid var(--bd); }
td.n, th.n { text-align:right; font-variant-numeric: tabular-nums; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.8rem; }
.kpi b { display:block; font-size:1.4rem; }
.tabela { overflow-x:auto; }
.linha { display:flex; gap:.8rem; flex-wrap:wrap; align-items:end; } .linha > div { flex:1; min-width:140px; }
code { background:var(--bg); padding:.1rem .3rem; border-radius:4px; }
.temp { font-size:1.1rem; padding:.6rem; border:2px dashed var(--pri); border-radius:6px; word-break:break-all; }
@media (max-width:600px) { main { margin:.6rem auto; } }
textarea { padding:.5rem; border:1px solid var(--bd); border-radius:6px; background:var(--bg); color:var(--tx); }
hr { border:0; border-top:1px solid var(--bd); margin:1rem 0; }
