:root{--bg:#f6f7f9;--card:#fff;--tx:#14181f;--mut:#4a5565;--bd:#d5dae1;--pri:#0b5cd5;--ok:#0a6b3a;--bad:#b3261e;--cinza:#e8eaee}
*{box-sizing:border-box}body{margin:0;font:16px/24px system-ui,sans-serif;background:var(--bg);color:var(--tx)}
header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}h1{font-size:24px;line-height:32px;margin:0}h2{font-size:20px;line-height:24px;margin:24px 0 8px}
nav{display:flex;gap:8px;padding:0 24px;border-bottom:1px solid var(--bd)}nav button{border:0;background:none;padding:12px 16px;font:inherit;cursor:pointer;color:var(--mut);border-bottom:3px solid transparent}nav button[aria-selected=true]{color:var(--pri);border-color:var(--pri);font-weight:600}
.filtros{display:flex;gap:16px;align-items:center;padding:16px 24px;flex-wrap:wrap}section{padding:0 24px 32px}
input{font:inherit;padding:8px;border:1px solid var(--bd);border-radius:8px}button{font:inherit;padding:8px 16px;border-radius:8px;border:1px solid var(--bd);background:#fff;cursor:pointer}button.primario{background:var(--pri);color:#fff;border-color:var(--pri)}
button:focus-visible,input:focus-visible{outline:3px solid #7aa7f0;outline-offset:2px}
.pill{padding:4px 16px;border-radius:16px;background:var(--cinza);font-size:14px}.pill.ok{background:#d7f0e1;color:var(--ok)}.pill.bad{background:#fbdcd9;color:var(--bad)}
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.cartao{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:16px}.cartao.cinza{background:var(--cinza);color:var(--mut)}
.cartao .n{font-size:32px;line-height:40px;font-weight:700;font-variant-numeric:tabular-nums}.cartao .n.sobe{animation:sobe .9s}@keyframes sobe{0%{color:var(--ok);transform:scale(1.15)}100%{transform:none}}
@media (prefers-reduced-motion:reduce){.cartao .n.sobe{animation:none}}
.cartao .r,small,.nota{color:var(--mut);font-size:14px;line-height:24px}.aviso{background:#fff4d6;border:1px solid #e3c25b;border-radius:8px;padding:16px;margin:16px 0}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--bd);border-radius:8px}th,td{padding:8px 16px;text-align:right;border-bottom:1px solid var(--bd)}th:first-child,td:first-child{text-align:left}
tr.maior{background:#fde7e5;font-weight:600}.vaza{color:var(--bad)}
.caixa{max-width:360px;margin:96px auto;background:#fff;padding:32px;border-radius:8px;border:1px solid var(--bd);display:grid;gap:16px}#erro{color:var(--bad);margin:0;min-height:24px}
