:root{--ink:#13223A;--navy:#0B2A55;--blue:#0A63C2;--blue2:#0A3AA8;--muted:#4A5A70;--line:#DCE5F2;--soft:#F3F6FA;--card:#FFFFFF;--tint:#EEF4FC;
--g1:#DFF4EA;--g2:#0B5E40;--b1:#E3EEFC;--b2:#0A4FA0;--w1:#FFF1D6;--w2:#7A4E00;--r1:#FDE4E1;--r2:#8F1D12;--x1:#ECEFF3;--x2:#33445C;--p1:#EFE6FA;--p2:#5A2E8C}
*{box-sizing:border-box}
body{margin:0;background:var(--soft);color:var(--ink);font-family:"Segoe UI",system-ui,-apple-system,sans-serif;font-size:14px}
a{color:var(--blue)}a:hover{color:var(--navy)}
header.top{background:#fff;border-bottom:1px solid var(--line);padding:10px 20px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand .ico{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#1A7CF5,#0B5FEA 55%,#0AA4F5);display:flex;align-items:center;justify-content:center}
.brand b{font-size:20px;letter-spacing:-.02em;font-weight:800}.brand b span{color:var(--blue2)}.brand b i{font-style:normal;color:#1466F2}
.brand small{color:var(--muted);font-size:14px;margin-left:6px}
.corte{font-size:12.5px;color:var(--muted)}
.wrap{display:flex;flex-wrap:wrap;gap:16px;padding:16px;max-width:1500px;margin:0 auto;align-items:flex-start}
nav.side{flex:1 1 190px;max-width:220px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:3px}
nav.side a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--x2);font-weight:500}
nav.side a.on{background:#E8F1FE;color:var(--blue2);font-weight:600}
nav.side .sep{border-top:1px solid #EDF2F9;margin:6px 0}
main{flex:999 1 600px;min-width:0;display:flex;flex-direction:column;gap:14px}
h1{margin:0;font-size:24px;color:var(--navy)}h2{margin:0;font-size:16px;color:var(--navy)}
p.lead{margin:4px 0 0;color:var(--muted)}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:900px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2{grid-template-columns:1fr}}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.kpi .l{font-size:12px;color:var(--muted)}.kpi .v{font-size:24px;font-weight:700;color:var(--navy)}.kpi .n{font-size:12px;color:var(--muted)}
.bar{display:grid;grid-template-columns:120px 1fr 110px;gap:10px;align-items:center;margin:6px 0}
.bar .t{background:var(--tint);border-radius:5px;height:14px}.bar .f{height:14px;border-radius:5px;background:#1466F2}.bar .f.red{background:#B23A2E}.bar .f.navy{background:var(--navy)}
.bar .m{text-align:right;font-weight:700;color:var(--navy)}
table{width:100%;border-collapse:collapse}
th{background:var(--tint);text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--x2);padding:9px 10px}
td{padding:9px 10px;border-top:1px solid #EDF2F9;vertical-align:top}
.tbl{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:14px}
.num{text-align:right;white-space:nowrap}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;white-space:nowrap}
.t-g{background:var(--g1);color:var(--g2)}.t-b{background:var(--b1);color:var(--b2)}.t-w{background:var(--w1);color:var(--w2)}.t-r{background:var(--r1);color:var(--r2)}.t-x{background:var(--x1);color:var(--x2)}.t-p{background:var(--p1);color:var(--p2)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--blue);background:var(--blue);color:#fff;font-weight:600;font-size:13.5px;text-decoration:none;cursor:pointer;font-family:inherit}
.btn:hover{color:#fff;background:var(--navy);border-color:var(--navy)}
.btn.sec{background:#fff;color:var(--b2)}.btn.sec:hover{background:var(--tint);color:var(--navy)}
.btn.dark{background:var(--navy);border-color:var(--navy)}
.btn:disabled{background:#B8C7DA;border-color:#B8C7DA;cursor:not-allowed}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid #C9D6E8;background:#fff;color:var(--x2);text-decoration:none;font-weight:600;font-size:13px}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.chip small{font-weight:500;margin-left:6px;opacity:.85}
.flash{padding:10px 14px;border-radius:10px;font-size:14px}
.flash.ok{background:var(--g1);color:var(--g2)}.flash.error{background:var(--r1);color:var(--r2)}.flash.aviso{background:var(--w1);color:var(--w2)}.flash.info{background:var(--b1);color:var(--b2)}
form.f{display:flex;flex-direction:column;gap:10px}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--x2)}
input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid #C9D6E8;border-radius:8px;background:#fff;color:var(--ink)}
textarea{resize:vertical}
label.ck{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.muted{color:var(--muted)}.small{font-size:12.5px}
.head-fam{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
.box{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:10px}
.box .l{font-size:11px;text-transform:uppercase;letter-spacing:.05em;opacity:.85}.box .v{font-size:15px;font-weight:700}
.cols{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.cols>.a{flex:3 1 420px;min-width:0;display:flex;flex-direction:column;gap:12px}.cols>.b{flex:2 1 320px;min-width:0;display:flex;flex-direction:column;gap:12px}
.rule{font-size:13px;padding:8px 10px;border-radius:8px}
.rule.ok{background:var(--g1);color:var(--g2)}.rule.no{background:var(--w1);color:var(--w2)}
pre.msg{white-space:pre-wrap;font-family:inherit;background:#F7F9FC;border:1px solid #E2E9F2;border-radius:10px;padding:12px;margin:0}
footer{text-align:center;color:var(--muted);font-size:12px;padding:16px}

.demo-band{background:#FFF1D6;color:#7A4E00;text-align:center;font-size:13px;padding:7px 12px;border-bottom:1px solid #F2DDB0}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(160deg,#F3F6FA,#E3EEFC)}
.login-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px 28px;width:100%;max-width:400px;box-shadow:0 10px 30px rgba(11,42,85,.08)}
.login-card img{width:100%;max-width:260px;display:block;margin:0 auto 6px}
.login-card p.sub{text-align:center;color:var(--muted);margin:0 0 20px}
.login-card label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:13px;margin-bottom:12px}
.login-card input{padding:11px 12px;border:1px solid var(--line);border-radius:9px;font-size:15px}
.login-card button{width:100%;padding:12px;font-size:15px;margin-top:6px}
