/* dashboard financeiro rota prime: azul-noite e dourado. a csp do app proibe style inline, por isso tudo vive aqui. by lions intelligence */
:root{--fundo:#060d1a;--cartao:#0b1626;--cartao2:#0e1b2e;--borda:#22344d;--texto:#f2f5f9;--suave:#b6c1d0;--dourado:#e8ae3a;--dourado2:#b9832a;--verde:#2bc765;--vermelho:#f0505c;--azul:#1f8fff}
*{box-sizing:border-box}
html,body{margin:0;background:var(--fundo)}
body{color:var(--texto);font:400 15px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;min-height:100vh;background:radial-gradient(1100px 500px at 0 100%,rgba(232,174,58,.13),transparent 60%),var(--fundo)}
svg{display:block}
.topo{position:relative;display:flex;align-items:center;min-height:clamp(120px,10.3vw,205px);padding:0 clamp(16px,2vw,40px) 12px clamp(20px,4vw,80px);overflow:hidden;gap:clamp(16px,2.2vw,46px)}
.logo{width:clamp(190px,23vw,450px);height:auto;position:relative;z-index:2}
.titulo{border-left:2px solid var(--dourado);padding-left:clamp(14px,2vw,40px);position:relative;z-index:2}
.titulo h1{margin:0;font-size:clamp(22px,2.3vw,46px);font-weight:600;letter-spacing:.2px}
.titulo p{margin:6px 0 0;color:#dfe5ee;font-size:clamp(12px,1.1vw,22px);display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.titulo p i{width:5px;height:5px;border-radius:50%;background:var(--dourado)}
.banner{position:absolute;right:0;top:0;width:41%;aspect-ratio:820/205;background:url(/assets/rota-financeiro-banner.jpg) right top/cover no-repeat;-webkit-mask-image:none}
.banner::before{content:"";position:absolute;inset:0;width:22%;background:linear-gradient(90deg,var(--fundo),transparent)}
.periodo{position:absolute;left:4%;top:56%;width:29.5%;height:31%;min-width:160px;display:flex;align-items:center;gap:10px;padding:0 12px;background:#0b1626;border:1px solid #5b6474;border-radius:9px;cursor:pointer}
.periodo svg{width:28px;height:28px;flex:none;fill:none;stroke:#f3f5f8;stroke-width:1.6;stroke-linecap:round}
.periodo span{display:block;flex:1;min-width:0}
.periodo small{display:block;font-size:12px;color:#d6dce5;line-height:1.1}
.periodo select{width:100%;appearance:auto;background:#0b1626;color:#fff;border:0;font:600 clamp(14px,1.05vw,20px) inherit;padding:0;cursor:pointer}
.corpo{display:grid;grid-template-columns:clamp(190px,10.8vw,216px) minmax(0,1fr);gap:clamp(10px,1vw,18px);padding:0 10px 22px 0}
.menu{display:flex;flex-direction:column;gap:6px;padding-top:18px}
.menu button{display:flex;align-items:center;gap:16px;width:100%;padding:15px 16px 15px 28px;border:0;border-radius:0 12px 12px 0;background:transparent;color:#dfe5ee;font:inherit;font-size:17px;text-align:left;cursor:pointer}
.menu button svg{width:28px;height:28px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.menu button:hover{background:rgba(255,255,255,.06)}
.menu button[aria-current=page]{background:linear-gradient(90deg,#8e6524,#d4a24a 55%,#a97c31);color:#fff;font-weight:600}
.menu hr{width:88%;margin:20px 0 12px 8%;border:0;border-top:1px solid #3a4a60}
main{min-width:0;outline:0}
.carregando,.aviso{padding:24px;color:var(--suave)}
.erro{color:#ff9aa2}
.linha{display:grid;gap:12px;margin-bottom:12px}
.kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.kpis .cartao:nth-child(n+3){}
.meio{grid-template-columns:1.32fr 1.12fr .95fr}
.baixo{grid-template-columns:1.52fr 1.13fr .77fr}
.dois{grid-template-columns:1fr 1fr}
.cartao{background:linear-gradient(180deg,var(--cartao2),var(--cartao));border:1px solid var(--borda);border-radius:12px;padding:13px 16px;min-width:0}
.cartao h2{margin:0 0 12px;font-size:clamp(17px,1.2vw,23px);font-weight:600}
.cartao h2 small{font-size:.86em;font-weight:400;color:#e6ebf2}
.cartao h2 span{display:block;font-size:.88em;font-weight:400}
.kpi{display:flex;gap:14px;align-items:flex-start;padding:16px 14px}
.kpi>svg{width:clamp(34px,2.7vw,52px);height:clamp(34px,2.7vw,52px);flex:none;margin-top:2px}
.kpi>div{min-width:0}
.kpi h3{margin:0;font-size:clamp(13px,.95vw,18px);font-weight:400;color:#e8ecf2}
.kpi strong{display:block;font-size:clamp(17px,1.38vw,28px);font-weight:600;margin:4px 0;white-space:nowrap}
.kpi p{margin:0;font-size:clamp(11px,.83vw,16px);color:var(--suave)}
.sobe{color:var(--verde)} .desce{color:var(--verde)} .ruim{color:var(--vermelho)} .neutro{color:var(--suave)}
.kpi p b{font-weight:600}
.legenda{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 24px;font-size:13px;color:#e4e9ef;margin-bottom:8px}
.legenda i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:7px;vertical-align:-1px}
.c-rec{background:var(--dourado)} .c-cus{background:var(--vermelho)} .c-luc{background:var(--verde)}
.grafico{width:100%;height:auto}
.grafico text{fill:#e4e9ef;font-size:13px}
.grafico .atual{fill:var(--dourado);font-weight:700}
.grafico .grade{stroke:#25364e;stroke-width:1}
.grafico .barra:hover{opacity:.78}
.comp{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,1.1fr);gap:16px;align-items:center}
.rosca text{fill:#fff;text-anchor:middle}
.rosca .valor{font-size:15px;font-weight:600}
.rosca .rotulo{font-size:11px}
.comp ul{list-style:none;margin:0;padding:0}
.comp li{display:grid;grid-template-columns:14px 1fr auto;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid #1d2c42;font-size:14px}
.comp li:last-child{border:0}
.comp li i{width:12px;height:12px;border-radius:3px}
.dre{list-style:none;margin:0;padding:0;font-size:14px}
.dre li{display:grid;grid-template-columns:20px 1fr auto;gap:10px;padding:6px 12px;border-bottom:1px solid #1d2c42}
.dre li.dest{margin:5px 0;border:1px solid var(--dourado2);border-radius:9px;background:linear-gradient(90deg,#3c2f18,#5c4620 60%,#2d2615);color:#f9d680;font-weight:600}
.dre li.dest b{color:#fff;font-weight:700}
.dre li.fim{background:linear-gradient(90deg,#a97c31,#dcae57 55%,#a97c31);color:#191204;border-color:#e8ae3a}
.dre li.fim b{color:#191204}
.dre li b{font-weight:500;text-align:right;white-space:nowrap}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-weight:600;padding:9px 10px;background:rgba(255,255,255,.04);border-bottom:1px solid #2a3b53;white-space:nowrap}
td{padding:7px 10px;border-bottom:1px solid #1d2c42;font-size:13.5px}
.num{text-align:right;white-space:nowrap}
.verde{color:var(--verde);font-weight:600}
.verm{color:var(--vermelho);font-weight:600}
tfoot td{background:linear-gradient(90deg,#b98b36,#e0b35b 55%,#b98b36);color:#191204;font-weight:700;border:0}
tfoot td:first-child{border-radius:8px 0 0 8px} tfoot td:last-child{border-radius:0 8px 8px 0}
.rolagem{overflow-x:auto}
.pino{display:inline-block;width:9px;height:9px;border-radius:50% 50% 50% 0;background:var(--dourado);transform:rotate(-45deg);margin:0 10px 0 2px}
.ind{list-style:none;margin:0;padding:0}
.ind li{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #1d2c42;font-size:14px}
.ind li svg{width:26px;height:26px;fill:none;stroke:var(--dourado);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ind li b{font-size:16px;font-weight:600;white-space:nowrap}
.vazio{padding:26px 8px;text-align:center;color:var(--suave)}
.filtros{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.filtros input,.filtros select{background:#0a1423;border:1px solid var(--borda);color:var(--texto);padding:9px 12px;border-radius:8px;font:inherit;min-width:180px}
.botao{display:inline-block;background:linear-gradient(90deg,#a97c31,#dcae57);border:0;color:#191204;font:600 14px inherit;padding:11px 16px;border-radius:8px;cursor:pointer;text-decoration:none;margin:0 10px 10px 0}
.botao.sec{background:transparent;color:var(--texto);border:1px solid var(--borda)}
.frota{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.dados{display:grid;grid-template-columns:1fr auto;gap:8px 16px;font-size:14px;margin:0}
.dados dd{margin:0;font-weight:600;text-align:right}
.dados dt{color:var(--suave)}
.nota{color:var(--suave);font-size:13.5px;margin:10px 0 0}
@media (max-width:1450px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.meio{grid-template-columns:1fr 1fr}.meio>:last-child{grid-column:1/-1}.baixo{grid-template-columns:1fr 1fr}.baixo>:first-child{grid-column:1/-1}}
@media (max-width:1000px){.banner{opacity:.55}}
@media (max-width:820px){
 .topo{flex-direction:column;align-items:flex-start;padding:16px 16px 12px;gap:12px}
 .titulo{border:0;padding:0}
 .banner{position:static;width:100%;aspect-ratio:auto;background:none;opacity:1}
 .banner::before{display:none}
 .periodo{position:static;width:100%;height:58px}
 .corpo{display:block;padding:0 12px 20px}
 .menu{flex-direction:row;overflow-x:auto;padding:0 0 10px;gap:4px}
 .menu button{width:auto;white-space:nowrap;padding:10px 14px;border-radius:9px;font-size:14px;gap:8px}
 .menu button svg{width:20px;height:20px}
 .menu hr{display:none}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .meio,.baixo,.dois{grid-template-columns:minmax(0,1fr)}
 .meio>:last-child,.baixo>:first-child{grid-column:auto}
 .kpi{flex-direction:column;gap:6px}
 .comp{grid-template-columns:1fr}
}
@media print{.menu,.periodo,.filtros,.botao{display:none}.corpo{display:block}body{background:#fff;color:#000}.cartao{background:#fff;color:#000;border-color:#999;break-inside:avoid}}
/* tela de entrada do dashboard: mesma cara do painel, com o formulario sempre visivel */
.tela-login{min-height:100vh}
.entrada{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);min-height:100vh}
.entrada-foto{position:relative;overflow:hidden}
.entrada-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.entrada-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,13,26,.05) 62%,var(--fundo))}
.entrada-painel{display:flex;align-items:center;justify-content:center;padding:32px 24px}
.entrada-cartao{width:100%;max-width:420px}
.entrada-logo{width:100%;max-width:360px;height:auto;display:block;margin:0 0 30px}
.entrada-cartao h1{margin:0;font-size:32px;font-weight:600;border-left:3px solid var(--dourado);padding-left:14px}
.entrada-cartao>p{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin:12px 0 26px;color:#dfe5ee;font-size:14px}
.entrada-cartao>p i{width:5px;height:5px;border-radius:50%;background:var(--dourado)}
.entrada form{display:grid;gap:16px}
.entrada label{display:grid;gap:7px;font-size:14px;color:#dfe5ee}
.entrada input{width:100%;background:#0a1423;border:1px solid var(--borda);color:var(--texto);padding:13px 14px;border-radius:9px;font:inherit;font-size:16px}
.entrada input:focus{outline:2px solid var(--dourado);outline-offset:1px;border-color:transparent}
.entrada .botao{width:100%;margin:6px 0 0;padding:14px;font-size:16px}
.entrada .botao:disabled{opacity:.6;cursor:wait}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#3a1218;border:1px solid var(--vermelho);color:#fff;padding:12px 18px;border-radius:9px;font-size:14px;pointer-events:none;max-width:90vw}
.toast:empty{display:none}
@media (max-width:820px){.entrada{display:block}.entrada-foto{height:190px}.entrada-foto::after{background:linear-gradient(180deg,transparent 55%,var(--fundo))}.entrada-painel{padding:20px 16px 32px}.entrada-logo{max-width:280px;margin-bottom:22px}}
