:root {
  color-scheme: dark;
  --page:      #0d0d0d;
  --surface:   #17171A;
  --surface-2: #1f1f23;
  --ink-1:     #ffffff;
  --ink-2:     #c3c2b7;
  --ink-muted: #8e8d87;
  --grid:      #2c2c2a;
  --baseline:  #3a3a37;
  --ring:      rgba(255,255,255,0.10);
  --mark:      #F5A623;
  --mark-dim:  #8F5A0C;
  --track:     #26262a;
  --good:      #0ca30c;
  --warning:   #fab219;
  --serious:   #ec835a;
  --critical:  #d03b3b;
  --font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
:root[data-tema="claro"] {
  color-scheme: light;
  --page:      #f9f9f7;
  --surface:   #fcfcfb;
  --surface-2: #f2f1ec;
  --ink-1:     #0b0b0b;
  --ink-2:     #52514e;
  --ink-muted: #898781;
  --grid:      #e1e0d9;
  --baseline:  #c3c2b7;
  --ring:      rgba(11,11,11,0.10);
  --mark:      #B0740F;
  --mark-dim:  #D69A2E;
  --track:     #ece9e2;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0; font-family: var(--font); background: var(--page); color: var(--ink-1);
  font-size: 14px; line-height: 1.5;
}
.wrap { max-width: 1180px; margin: 0 auto; padding: 24px 20px 80px; }
a { color: var(--mark); }

/* ---- login ---- */
.login { display: grid; place-items: center; min-height: 100vh; padding: 20px; }
.login-card {
  background: var(--surface); border: 1px solid var(--ring); border-radius: 12px;
  padding: 30px; width: 100%; max-width: 360px;
}
.login-card h1 { font-size: 19px; margin: 0 0 6px; }
.login-card p { color: var(--ink-2); font-size: 13px; margin: 0 0 20px; }

/* ---- topo ---- */
header.topo {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; margin-bottom: 18px;
}
h1.titulo { font-size: 21px; font-weight: 700; margin: 0; letter-spacing: -0.2px; }
h1.titulo span { color: var(--mark); }
.acoes { display: flex; gap: 8px; flex-wrap: wrap; }

button, .btn {
  font: inherit; font-size: 13px; cursor: pointer; border-radius: 8px;
  border: 1px solid var(--ring); background: var(--surface); color: var(--ink-2);
  padding: 8px 14px; text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
button:hover, .btn:hover { color: var(--ink-1); border-color: var(--baseline); }
button.primario {
  background: var(--mark); color: #17171A; border-color: var(--mark); font-weight: 600;
}
:root[data-tema="claro"] button.primario { color: #fff; }
button.primario:hover { filter: brightness(1.08); color: #17171A; }
:root[data-tema="claro"] button.primario:hover { color: #fff; }
button.perigo { color: var(--critical); }
button:disabled { opacity: .5; cursor: default; }

/* ---- separadores ---- */
nav.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--grid); margin-bottom: 20px; overflow-x: auto; }
nav.tabs button {
  border: none; background: none; border-radius: 0; padding: 10px 14px;
  border-bottom: 2px solid transparent; white-space: nowrap;
}
nav.tabs button[aria-selected="true"] { color: var(--ink-1); border-bottom-color: var(--mark); font-weight: 600; }

/* ---- cartões ---- */
.card {
  background: var(--surface); border: 1px solid var(--ring); border-radius: 10px;
  padding: 18px; margin-bottom: 14px;
}
.card h2 { font-size: 14px; margin: 0 0 4px; }
.card .cap { font-size: 12px; color: var(--ink-2); margin: 0 0 16px; }

.tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 14px; }
.tile { background: var(--surface); border: 1px solid var(--ring); border-radius: 10px; padding: 16px; }
.tile .k { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.tile .v { font-size: 28px; font-weight: 700; margin: 6px 0 3px; letter-spacing: -.5px; }
.tile .n { font-size: 11.5px; color: var(--ink-2); }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 880px) { .tiles { grid-template-columns: repeat(2,1fr); } .grid2 { grid-template-columns: 1fr; } }

/* ---- barras ---- */
.bars { display: flex; flex-direction: column; gap: 9px; }
.bar-row { display: grid; grid-template-columns: 96px 1fr 78px; align-items: center; gap: 10px; }
.bar-lab { font-size: 12px; color: var(--ink-2); text-align: right; }
.bar-track { background: var(--track); height: 15px; border-radius: 4px; overflow: hidden; }
.bar-fill { height: 100%; background: var(--mark); border-radius: 4px; }
.bar-val { font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }

/* ---- tabelas ---- */
.tabela-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: 12.5px; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--grid); vertical-align: middle; }
th { color: var(--ink-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; white-space: nowrap; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
tr.total td { font-weight: 700; border-top: 2px solid var(--baseline); border-bottom: none; }
tbody tr:hover { background: var(--surface-2); }

input, select, textarea {
  font: inherit; font-size: 13px; background: var(--surface-2); color: var(--ink-1);
  border: 1px solid var(--ring); border-radius: 6px; padding: 7px 9px; width: 100%;
}
input:focus, select:focus { outline: 2px solid var(--mark); outline-offset: -1px; }
input.celula { background: transparent; border-color: transparent; padding: 4px 6px; }
input.celula:hover { border-color: var(--ring); }
input.celula.num { text-align: right; font-variant-numeric: tabular-nums; max-width: 90px; }
select.celula { min-width: 128px; background: var(--surface-2); }
input.celula[type="date"] { min-width: 148px; }
td.num, th.num { white-space: nowrap; }
table td:first-child { min-width: 190px; }
label { display: block; font-size: 11px; color: var(--ink-muted); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .05em; }
.campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 14px; }

.chip { font-size: 10.5px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--ring);
  color: var(--ink-2); display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.chip .pt { width: 7px; height: 7px; border-radius: 50%; background: var(--st, var(--ink-muted)); }

.aviso { background: var(--surface-2); border-left: 3px solid var(--mark); padding: 10px 14px;
  border-radius: 0 8px 8px 0; font-size: 12.5px; color: var(--ink-2); margin-bottom: 14px; }
.erro { color: var(--critical); font-size: 12.5px; margin-top: 10px; min-height: 18px; }
.toast {
  position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%);
  background: var(--surface); border: 1px solid var(--ring); border-radius: 999px;
  padding: 9px 18px; font-size: 13px; opacity: 0; transition: opacity .18s; pointer-events: none;
  box-shadow: 0 6px 22px rgba(0,0,0,.3); z-index: 50;
}
.toast.on { opacity: 1; }
footer.rodape { margin-top: 28px; font-size: 11px; color: var(--ink-muted); }
