:root{--bg:#f6f7f9;--card:#fff;--ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;--brand:#1e40af;--brand-d:#1e3a8a;--ok:#166534;--err:#b91c1c}
*{box-sizing:border-box}
body{margin:0;font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink)}
body.guest{display:flex;min-height:100vh;align-items:center;justify-content:center}
body.guest main{width:100%}
a{color:var(--brand)}
/* Cabeçalho */
.top{background:#fff;border-bottom:1px solid var(--line)}
.top-in{max-width:1100px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:28px;flex-wrap:wrap;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:700;font-size:17px}
.logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:6px;background:var(--brand);color:#fff;font-weight:700;font-size:15px}
.top nav{display:flex;gap:6px;flex:1;flex-wrap:wrap}
.top nav a{color:var(--muted);text-decoration:none;padding:19px 12px 16px;border-bottom:3px solid transparent;font-weight:500}
.top nav a:hover{color:var(--ink)}
.top nav a.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
.who{display:flex;gap:14px;align-items:center;color:var(--muted);font-size:15px}
.who a{color:var(--ink);text-decoration:none;border:1px solid #d1d5db;padding:6px 14px;border-radius:6px;background:#fff}
.who a:hover{background:#f3f4f6}
main{max-width:1100px;margin:0 auto;padding:32px 24px 56px}
h1{font-size:28px;margin:0 0 4px;font-weight:700}
h2{font-size:19px;margin:36px 0 12px;font-weight:600;color:var(--ink)}
.sub{color:var(--muted);margin:0 0 24px}
/* Indicadores */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px 24px}
.kpi .lbl{font-size:15px;color:var(--muted);margin-bottom:6px}
.kpi .val{font-size:30px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
/* Cartões e tabelas */
.card{background:var(--card);border-radius:8px;padding:24px;border:1px solid var(--line)}
.narrow{max-width:480px;margin:20px auto}
.narrow h1{font-size:24px;margin-bottom:14px}.narrow h2{margin-top:24px}
.tablewrap{overflow-x:auto;background:var(--card);border-radius:8px;border:1px solid var(--line)}
table{border-collapse:collapse;width:100%}
th,td{padding:13px 18px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums}
th{background:#f9fafb;font-size:14px;color:var(--muted);font-weight:600}
tbody tr:last-child td,tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#fafafa}
table.big td{font-size:18px;padding:16px 20px}
table.big th{font-size:15px;padding:14px 20px}
.r{text-align:right}.neg{color:var(--err);font-weight:600}.pos{color:var(--ok)}
tr.low td{background:#fef2f2}
tr.tot td{font-weight:700;background:#f3f4f6;border-top:2px solid #d1d5db}
tr.tot:hover td{background:#f3f4f6}
/* Formulários */
label{display:block;margin:14px 0;font-weight:600;font-size:15px}
label input,label select,label textarea,textarea{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:var(--brand)}
button,.btn{padding:10px 18px;border:0;border-radius:6px;background:var(--brand);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:var(--brand-d)}button.danger{background:var(--err)}
.card button{margin-top:8px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:center}
.filters input,.filters select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font:inherit;background:#fff}
.filters input[name=q]{min-width:260px}
form.inline{display:inline-flex;gap:6px;margin:2px 6px 2px 0}form.inline input{padding:7px 9px;border:1px solid #d1d5db;border-radius:6px}
.flash{padding:13px 16px;border-radius:6px;margin:0 0 20px;border:1px solid}
.flash.ok{background:#f0fdf4;color:#14532d;border-color:#bbf7d0}.flash.err{background:#fef2f2;color:#7f1d1d;border-color:#fecaca}
.flash.warn{background:#fffbeb;color:#78350f;border-color:#fde68a}
.muted{color:var(--muted);font-weight:400}small.muted{font-size:13px}
@media(max-width:640px){main{padding:20px 14px 40px}h1{font-size:24px}.kpi .val{font-size:26px}.top-in{gap:6px;padding:8px 14px}.top nav a{padding:10px 9px}.who{margin-left:auto}table.big td{font-size:16px;padding:13px 14px}th,td{padding:11px 12px}}
@media print{.top,.filters,button,.btn{display:none}body{background:#fff}}
