:root{--bg:#08101f;--sidebar:#060b17;--panel:#101a31;--panel2:#141f3b;--line:#24314f;--text:#f6f8ff;--muted:#8490aa;--purple:#7957ee;--purple2:#a169ff;--cyan:#14a9ff;--green:#24d7a0;--red:#ff5478;--orange:#ff9d54}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% -10%,#172349 0,var(--bg) 35%);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;min-height:100vh}.sidebar{position:fixed;z-index:5;inset:0 auto 0 0;width:58px;background:var(--sidebar);border-right:1px solid #1c2945;display:flex;align-items:center;flex-direction:column;padding:14px 8px}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--purple),var(--cyan));display:grid;place-items:center;font-weight:900;box-shadow:0 8px 24px #7957ee55}.sidebar nav{display:grid;gap:11px;margin-top:52px}.sidebar nav a{width:38px;height:38px;color:#7f8ba6;text-decoration:none;display:grid;place-items:center;border-radius:9px;font-size:17px;font-weight:800}.sidebar nav a:hover,.sidebar nav a.active{background:#192645;color:#fff;box-shadow:inset 3px 0 var(--cyan)}.api-dot{margin-top:auto;width:9px;height:9px;background:var(--green);border-radius:50%;box-shadow:0 0 0 5px #24d7a020,0 0 14px var(--green)}main{margin-left:58px;padding:18px 22px 38px;max-width:1800px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:5px 4px 16px}.eyebrow{font-size:9px;letter-spacing:1.5px;color:#8e9abb;font-weight:800;margin:0 0 5px}h1{font-size:25px;letter-spacing:-.8px;margin:0}h2{font-size:13px;margin:0;letter-spacing:-.15px}.subtitle{color:var(--muted);font-size:11px;margin:5px 0 0}.filters{display:flex;gap:7px;align-items:end}.filters label{display:grid;gap:4px;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:800}.filters input,.movements input{color:#dfe7ff;background:#101b34;border:1px solid var(--line);border-radius:7px;padding:8px 9px;outline:none}.filters input:focus,.movements input:focus{border-color:var(--cyan)}button{border:0;border-radius:7px;background:linear-gradient(135deg,#147fe8,var(--cyan));color:#fff;padding:9px 13px;font-weight:800;cursor:pointer;box-shadow:0 7px 18px #129eff30}.statusbar{border-top:1px solid var(--line);padding:8px 3px 7px;display:flex;justify-content:space-between;color:var(--muted);font-size:9px}.kpis{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:8px;margin-bottom:8px}.kpi{min-height:88px;background:linear-gradient(145deg,var(--panel2),#0e172b);border:1px solid var(--line);border-radius:9px;padding:12px;position:relative;overflow:hidden;box-shadow:0 8px 22px #0003}.kpi:after{content:"";position:absolute;inset:auto -20px -35px auto;width:75px;height:75px;border-radius:50%;background:var(--purple);filter:blur(28px);opacity:.25}.kpi.negative:after{background:var(--red)}.kpi.warning:after{background:var(--orange)}.kpi small{font-size:8px;text-transform:uppercase;letter-spacing:.8px;color:#9ca8c1;font-weight:800}.kpi strong{display:block;margin:8px 0 4px;font-size:17px;letter-spacing:-.6px}.kpi p{margin:0;color:var(--muted);font-size:8px;line-height:1.35}.dashboard-grid{display:grid;grid-template-columns:1.55fr .8fr .8fr;grid-template-areas:"cash cash pressure" "categories customers insights";gap:8px;margin-bottom:8px}.panel{background:linear-gradient(150deg,var(--panel),#0c1529);border:1px solid var(--line);border-radius:9px;padding:13px;box-shadow:0 10px 30px #0003}.cash-panel{grid-area:cash}.pressure-panel{grid-area:pressure}.categories-panel{grid-area:categories}.customers-panel{grid-area:customers}.insights-panel{grid-area:insights}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.legend{display:flex;gap:10px;color:var(--muted);font-size:8px}.legend span:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.legend .revenue:before{background:var(--cyan)}.legend .expense:before{background:var(--purple2)}.bar-chart{height:235px;display:flex;gap:6px;align-items:stretch;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 24%,#27345155 25%);padding:10px 4px 0}.month{flex:1;display:grid;grid-template-rows:1fr 19px;gap:5px;min-width:26px}.bars{display:flex;align-items:end;justify-content:center;gap:2px}.bar{width:38%;min-width:6px;border-radius:3px 3px 0 0;box-shadow:0 0 10px #0003}.bar.rev{background:linear-gradient(to top,#087acc,var(--cyan))}.bar.exp{background:linear-gradient(to top,#6040ce,var(--purple2))}.month label{text-align:center;color:#77839e;font-size:8px}.pressure{display:grid;gap:8px}.pressure-row{padding:12px;border:1px solid #213659;border-radius:8px;background:linear-gradient(135deg,#102843,#101a31)}.pressure-row.out{background:linear-gradient(135deg,#31203b,#171b35);border-color:#432b50}.pressure-row small,.balance small{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}.pressure-row strong{display:block;font-size:17px;margin-top:6px}.balance{margin-top:3px;padding:12px;border-radius:8px;background:#0b1427}.balance strong{display:block;font-size:19px;margin-top:5px}.positive{color:var(--green)}.negative{color:var(--red)}.ranking{display:grid;gap:9px}.rank-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:9px}.rank-head span{color:#b7c1d8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62%}.rank-head strong{font-size:9px}.track{height:7px;border-radius:2px;background:#182642;overflow:hidden}.track i{display:block;height:100%;background:linear-gradient(90deg,#6240ce,var(--purple2));border-radius:2px}.ranking.cyan .track i{background:linear-gradient(90deg,#087bd0,var(--cyan))}.insights{display:grid;gap:7px}.insight{padding:9px 9px 9px 11px;border-radius:6px;background:#121f38;border-left:3px solid var(--green)}.insight.critical{border-color:var(--red);background:#271b2b}.insight.warning{border-color:var(--orange);background:#282032}.insight strong{font-size:9px;display:block;margin-bottom:3px}.insight p{font-size:8px;line-height:1.4;color:#99a5bc;margin:0}.movements{padding-bottom:4px}.movements input{width:220px;font-size:10px}.table-wrap{overflow:auto;max-height:330px}table{width:100%;border-collapse:collapse;font-size:9px}th{text-align:left;position:sticky;top:0;background:#101a31;color:#8190ae;font-size:8px;text-transform:uppercase;letter-spacing:.8px;padding:8px}td{border-top:1px solid #1c2944;padding:8px;color:#bdc6d9}.amount{text-align:right;font-weight:800;color:var(--green)}.amount.debit{color:var(--red)}.pill{display:inline-block;padding:3px 6px;border-radius:9px;background:#183b36;color:var(--green);font-size:7px;font-weight:800}.pill.vencido{background:#3b1e2d;color:#ff7894}.pill.agendado{background:#352d20;color:#ffb06e}.loading{height:340px;display:grid;place-items:center;align-content:center;gap:14px;color:var(--muted);font-size:11px}.loading span{width:26px;height:26px;border:3px solid #263451;border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite}.error{background:#3b1e2d;border:1px solid #693247;color:#ff9daf;padding:12px;border-radius:8px}.hidden{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1350px){.kpis{grid-template-columns:repeat(4,1fr)}}@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr 1fr;grid-template-areas:"cash cash" "pressure insights" "categories customers"}}@media(max-width:720px){.sidebar{inset:auto 0 0 0;width:auto;height:54px;flex-direction:row;padding:7px 12px;border-top:1px solid var(--line);border-right:0}.brand-mark{width:32px;height:32px}.sidebar nav{display:flex;margin:0 auto;gap:12px}.sidebar nav a{width:34px;height:34px}.api-dot{margin:auto 5px auto 0}main{margin:0;padding:12px 12px 70px}.topbar{align-items:stretch;flex-direction:column}.filters{display:grid;grid-template-columns:1fr 1fr}.filters button{grid-column:1/-1}.kpis{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:3px}.kpi{min-width:170px;scroll-snap-align:start}.dashboard-grid{display:block}.panel{margin-bottom:8px}.bar-chart{overflow-x:auto}.month{min-width:42px}.panel-head{align-items:flex-start}.movements input{width:135px}.statusbar{gap:8px;flex-direction:column}}
