:root{--bg:#f4f5f7;--card:#fff;--ink:#16191f;--muted:#646b78;--line:#e3e6eb;--brand:#0f2a4a;--accent:#e8731c;--ok:#1d8a4e;--warn:#b7791f;--bad:#c53030;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Inter,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.shell{display:flex;min-height:100vh}.side{width:220px;background:var(--brand);color:#fff;padding:18px 12px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto}.side .logo{font-weight:800;font-size:18px;letter-spacing:.3px;padding:4px 10px 18px}.side .logo span{color:var(--accent)}.side a{display:block;color:#dbe4ef;padding:8px 10px;border-radius:8px;margin-bottom:2px}.side a.on,.side a:hover{background:rgba(255,255,255,.1);color:#fff;text-decoration:none}.side .who{font-size:12px;color:#9fb1c6;padding:16px 10px 4px;border-top:1px solid rgba(255,255,255,.12);margin-top:16px}.main{flex:1 1;padding:22px 28px;min-width:0}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:22px 0 10px}h3{font-size:14px;margin:14px 0 8px}.sub{color:var(--muted);margin:0 0 18px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card,.kpis{margin-bottom:16px}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:12px;gap:12px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.kpi .l{color:var(--muted);font-size:12px}.kpi .v{font-size:22px;font-weight:700;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .h{font-size:11px;color:var(--muted);margin-top:4px}.kpi.bad .v{color:var(--bad)}.kpi.ok .v{color:var(--ok)}table{width:100%;border-collapse:collapse;background:var(--card)}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);font-weight:600;background:#fafbfc}td.n,th.n{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#eef1f5;color:#3a4250;white-space:nowrap}.badge.ok{background:#e3f4ea;color:var(--ok)}.badge.warn{background:#fdf3e1;color:var(--warn)}.badge.bad{background:#fde8e8;color:var(--bad)}.badge.info{background:#e6eefb;color:#2456a6}form.inline{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #cfd5dd;border-radius:8px;background:#fff;color:var(--ink);min-width:0}textarea{width:100%;min-height:60px}.f{display:flex;flex-direction:column}.grid2{grid-template-columns:1fr 1fr;grid-gap:12px}.grid2,.grid3{display:grid;gap:12px}.grid3{grid-template-columns:repeat(3,1fr);grid-gap:12px}.btn,button{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;font-weight:600}.btn.sec,button.sec{background:#fff;color:var(--brand)}button.danger{background:var(--bad);border-color:var(--bad)}.msg{padding:10px 12px;border-radius:8px;margin-bottom:14px}.msg.ok{background:#e3f4ea;color:#14532d}.msg.erro{background:#fde8e8;color:#7f1d1d}.muted{color:var(--muted)}.small{font-size:12px}.row{display:flex;gap:16px;flex-wrap:wrap}.row>*{flex:1 1;min-width:280px}.bar{height:8px;background:#eef1f5;border-radius:6px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.status-line{font-size:12px;color:var(--muted);margin-bottom:12px}img.doc{max-width:100%;border:1px solid var(--line);border-radius:8px}details summary{cursor:pointer;color:var(--brand);font-weight:600}.login{max-width:360px;margin:12vh auto;background:#fff;padding:28px;border-radius:14px;border:1px solid var(--line)}@media(max-width:820px){.shell{flex-direction:column}.side{width:100%;height:auto;position:static;display:flex;flex-wrap:wrap;gap:2px}.side .logo{width:100%;padding-bottom:8px}.side .who{display:none}.main{padding:14px}.grid2,.grid3{grid-template-columns:1fr}}