:root{--navy:#1b1c38;--navy2:#2b3567;--blue:#4065ab;--gold:#e08a45;--copper1:#b54e1f;--copper2:#f7b05f;--bg:#f4f6f9;--card:#fff;--txt:#1f2933;--mut:#616e7c;--bd:#e4e7eb;--ok:#1b7f4b;--warn:#b7791f;--err:#c53030;--info:#2b6cb0}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:14px}
a{color:var(--blue)}
.layout{display:flex;min-height:100vh}
nav.side{width:236px;background:linear-gradient(180deg,#1b1c38 0%,#20264a 60%,#283466 100%);color:#fff;padding:22px 0;flex-shrink:0}
nav.side .brand{padding:4px 20px 18px;border-bottom:1px solid rgba(255,255,255,.08)}nav.side .brand img{display:block;width:186px;height:auto}
nav.side .brand small{display:block;color:#aab4d4;font-size:10px;letter-spacing:2.6px;text-transform:uppercase;margin:10px 0 0 2px}
nav.side a{display:block;color:#cbd2d9;text-decoration:none;padding:10px 22px;font-size:14px}
nav.side a:hover,nav.side a.on{background:rgba(64,101,171,.22);color:#fff;border-left:3px solid var(--gold);padding-left:19px}
nav.side .sec{padding:16px 22px 6px;font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:#7b8794}
main{flex:1;padding:26px 32px;max-width:1400px;min-width:0}
h1{font-size:22px;margin:0 0 18px;color:var(--navy);font-weight:700}h2{font-size:16px;margin:0 0 12px;color:var(--navy)}
.card{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:18px 20px;margin-bottom:18px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:#fff;border:1px solid var(--bd);border-radius:10px;padding:14px 16px}
.kpi .l{color:var(--mut);font-size:12px}.kpi .v{font-size:20px;font-weight:700;margin-top:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:1000px){.grid2{grid-template-columns:1fr}.layout{flex-direction:column}nav.side{width:100%}}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 8px;border-bottom:1px solid var(--bd);vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--mut);font-weight:600}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;background:#e4e7eb;color:#3e4c59}
.tag.paga,.tag.pago,.tag.enviada{background:#e3f9e5;color:var(--ok)}.tag.erro,.tag.vencido{background:#ffe3e3;color:var(--err)}
.tag.nfse_emitida,.tag.boleto_emitido,.tag.parcial{background:#fff3c4;color:var(--warn)}.tag.cancelada,.tag.cancelado{background:#f0f0f0;color:#9aa5b1;text-decoration:line-through}
.btn{display:inline-block;border:1px solid var(--navy);background:var(--navy);color:#fff;padding:7px 14px;border-radius:6px;cursor:pointer;font-size:13px;text-decoration:none}
.btn.sec{background:#fff;color:var(--navy)}.btn.red{background:var(--err);border-color:var(--err)}.btn.sm{padding:4px 9px;font-size:12px}
form.inline{display:inline}
.form{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px}.form .w2{grid-column:span 2}.form .w4{grid-column:span 4}
@media(max-width:900px){.form{grid-template-columns:1fr 1fr}.form .w4,.form .w2{grid-column:span 2}}
label{display:block;font-size:12px;color:var(--mut);margin-bottom:4px}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid #cbd2d9;border-radius:6px;font:inherit;background:#fff}
textarea{min-height:70px}input[type=checkbox]{width:auto;margin-right:6px}
.chk{display:flex;align-items:center;font-size:13px;color:var(--txt)}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:16px}.alert.ok{background:#e3f9e5;color:#0e5a32}.alert.err{background:#ffe3e3;color:#8a1c1c;word-break:break-word}
.mut{color:var(--mut)}.mono{font-family:Consolas,monospace;font-size:12px;word-break:break-all}
.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar .sp{flex:1}
.bar{height:8px;border-radius:4px;background:#e4e7eb;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--gold))}
.modo{font-size:11px;padding:3px 8px;border-radius:4px;background:#fff3c4;color:#8d5b00;margin:0 22px 6px;display:block}
.modo.prod{background:#e3f9e5;color:#0e5a32}
/* ---- relatórios ---- */
.rel-wrap{overflow-x:auto;border:1px solid var(--bd);border-radius:10px;background:#fff}
table.rel{font-size:12.5px;min-width:100%}
table.rel th,table.rel td{padding:6px 10px;white-space:nowrap;border-bottom:1px solid #eef0f3}
table.rel td:first-child,table.rel th:first-child{position:sticky;left:0;background:inherit;z-index:1;min-width:300px;white-space:normal}
table.rel tr{background:#fff}
table.rel tr.secao{background:#f0f4f8}table.rel tr.secao td{font-weight:700;color:var(--navy);text-transform:uppercase;font-size:11px;letter-spacing:.8px}
table.rel tr.grupo td{font-weight:600}
table.rel tr.total{background:#f5f7fa}table.rel tr.total td{font-weight:700;border-top:1px solid #cbd2d9}
table.rel tr.saldo{background:var(--navy)}table.rel tr.saldo td{color:#fff;font-weight:700}
table.rel tr.margem td{color:var(--mut);font-style:italic}
table.rel td.n{font-variant-numeric:tabular-nums}
table.rel .l2{padding-left:30px}table.rel .l1{padding-left:16px}
.neg{color:var(--err)}
.filtros{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}
.filtros>div{min-width:130px}
.charts{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:1100px){.charts{grid-template-columns:1fr}}
.chart-box{position:relative;height:280px}
.legenda{display:flex;gap:16px;font-size:12px;color:var(--mut);margin:-4px 0 10px}
.legenda i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.kpi .s{font-size:12px;color:var(--mut);margin-top:4px}
.user{padding:14px 22px;border-top:1px solid rgba(255,255,255,.08);margin-top:14px;font-size:12px;color:#9aa5b1}
.user b{display:block;color:#fff;font-size:13px}
.arvore td.cod{font-family:Consolas,monospace;font-size:12px;color:var(--mut);white-space:nowrap}
@media print{nav.side,.filtros,.toolbar .btn,.noprint{display:none!important}main{padding:0}.rel-wrap{border:0;overflow:visible}table.rel{font-size:10px}}
.grid2 .form{grid-template-columns:1fr 1fr}.grid2 .form .w2,.grid2 .form .w4{grid-column:span 2}

/* ---- marca Sentinel ---- */
.btn:hover{background:var(--navy2);border-color:var(--navy2)}.btn.sec:hover{background:#f1f3f9;color:var(--navy)}
.kpi{border:1px solid var(--bd);border-top:3px solid var(--blue)}
.acesso{margin:0;min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}
.acesso .marca{background:linear-gradient(135deg,#4065ab 0%,#283466 22%,#1b1c38 55%,#283466 85%,#3d5fa3 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#c9d1ea;text-align:center}
.acesso .marca img{width:min(340px,70%);height:auto}
.acesso .marca p{margin:26px 0 0;font-size:13px;letter-spacing:2.8px;text-transform:uppercase;color:#aab4d4}
.acesso .lado{display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--bg)}
.acesso form{width:100%;max-width:380px;padding:32px;border-top:4px solid var(--gold)}
.acesso .logo-mob{display:none}
@media(max-width:820px){.acesso{grid-template-columns:1fr}.acesso .marca{display:none}.acesso .logo-mob{display:block;width:220px;margin:0 0 18px}}
