:root{--cereja:#e50145;--laranja:#f15a22;--amarelo:#efd600;--verde:#0c893e;--roxo:#6b4e9e;--fundo:#fff8f2;--cartao:#fff;--texto:#2b2b2b;--suave:#7a7a7a;--borda:#f0e4d8}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--fundo);color:var(--texto);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.container{max-width:1180px;margin:0 auto;padding:24px 20px 72px}.topo{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}.topo h1{font-size:24px;line-height:1.2}.topo p{color:var(--suave);font-size:13px;margin-top:4px}.abas{display:flex;gap:6px;border-bottom:2px solid var(--borda);margin-bottom:20px;flex-wrap:wrap}.aba{background:none;cursor:pointer;font-size:14px;font-weight:700;color:var(--suave);padding:10px 16px;border:none;border-bottom:3px solid transparent;margin-bottom:-2px}.aba:hover{color:var(--texto)}.aba.ativa{color:var(--cereja);border-bottom-color:var(--cereja)}.cartao{background:var(--cartao);border:1px solid var(--borda);border-radius:14px;padding:20px;margin-bottom:18px}.cartao h2{font-size:16px;margin-bottom:4px}.cartao .sub{color:var(--suave);font-size:12.5px;margin-bottom:16px;line-height:1.5}.filtros{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end}.campo{display:flex;flex-direction:column;gap:5px}.campo label{font-size:11px;font-weight:700;color:var(--suave);text-transform:uppercase;letter-spacing:.04em}.campo select{border:1px solid var(--borda);border-radius:8px;padding:7px 10px;font-size:13.5px;background:#fff;color:var(--texto);min-width:110px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--borda);background:#fff;color:var(--suave);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600;cursor:pointer}.chip.on{background:var(--cereja);border-color:var(--cereja);color:#fff}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.kpi{background:var(--cartao);border:1px solid var(--borda);border-radius:12px;padding:14px 16px}.kpi .rot{font-size:11px;font-weight:700;color:var(--suave);text-transform:uppercase;letter-spacing:.04em}.kpi .val{font-size:22px;font-weight:800;margin-top:5px}.kpi .obs{font-size:11.5px;color:var(--suave);margin-top:3px}.legenda{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px}.legenda span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--texto)}.legenda i{width:11px;height:11px;border-radius:3px;display:inline-block}.rolagem{overflow-x:auto}.grafico{height:auto;display:block}.grafico,table{width:100%;min-width:620px}table{border-collapse:collapse;font-size:12.5px}td,th{padding:7px 10px;text-align:right;border-bottom:1px solid var(--borda);white-space:nowrap}td:first-child,th:first-child{text-align:left;position:-webkit-sticky;position:sticky;left:0;background:var(--cartao)}thead th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--suave);border-bottom:2px solid var(--borda)}tbody tr:hover td{background:#fffaf6}tfoot td{font-weight:800;border-top:2px solid var(--borda);border-bottom:none}.btn{background:var(--cereja);color:#fff;border:none;border-radius:999px;padding:10px 20px;font-weight:700;font-size:13.5px;cursor:pointer}.btn:disabled{background:#d9cfc6;cursor:not-allowed}.btn-secundario{background:#fff;color:var(--texto);border:1px solid var(--borda)}.dropzone{border:2px dashed var(--borda);border-radius:14px;padding:34px 20px;text-align:center;background:#fffdfb;transition:border-color .15s,background .15s}.dropzone.sobre{border-color:var(--cereja);background:#fff5f7}.dropzone p{color:var(--suave);font-size:13px;margin-top:8px}.barra{height:9px;background:var(--borda);border-radius:999px;overflow:hidden;margin-top:14px}.barra>i{display:block;height:100%;background:var(--cereja);transition:width .18s}.aviso{border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.55;margin-top:14px}.aviso.erro{background:#fdecef;color:#a1002f;border:1px solid #f5c2ce}.aviso.ok{background:#eaf7ef;color:#0a6b32;border:1px solid #bfe4cd}.nota{font-size:12.5px;color:var(--suave);line-height:1.65}.nota strong{color:var(--texto)}.nota ul{margin:8px 0 0 18px}.nota li{margin-bottom:5px}.vazio{text-align:center;padding:48px 20px;color:var(--suave);font-size:14px;line-height:1.6}