/* Virtus Finance IA v10.2 - Dashboard Master profissional seguro
   CSS + JS isolados. Não altera rotas, login, pagamentos, WhatsApp ou backend. */
:root{
  --vf-side-w:242px;
  --vf-bg:#06111d;
  --vf-panel:#0b1726;
  --vf-panel-2:#07131f;
  --vf-line:rgba(148,163,184,.13);
  --vf-text:#edf8ff;
  --vf-muted:rgba(205,220,234,.62);
  --vf-green:#22c55e;
  --vf-cyan:#38bdf8;
  --vf-purple:#8b5cf6;
  --vf-yellow:#f59e0b;
  --vf-red:#ef4444;
}
html,body{overflow-x:hidden!important;background:#050c16!important;}
.app-shell{grid-template-columns:var(--vf-side-w) minmax(0,1fr)!important;background:linear-gradient(120deg,#050c16,#06160f 42%,#07101c)!important;}
.content-area{min-width:0!important;padding:22px 24px 28px!important;}
.sidebar{
  width:var(--vf-side-w)!important;min-width:var(--vf-side-w)!important;max-width:var(--vf-side-w)!important;
  height:100vh!important;position:sticky!important;top:0!important;overflow:hidden!important;
  padding:18px 14px!important;background:linear-gradient(180deg,#071625,#04101b)!important;
  border-right:1px solid rgba(148,163,184,.12)!important;box-shadow:18px 0 52px rgba(0,0,0,.28)!important;
}
.sidebar *{box-sizing:border-box!important;max-width:100%!important;}
.sidebar .brand-block{display:grid!important;grid-template-columns:32px minmax(0,1fr)!important;gap:10px!important;align-items:center!important;margin:0 0 20px!important;padding:0 0 16px!important;border-bottom:1px solid rgba(148,163,184,.12)!important;}
.sidebar .brand-mark{width:32px!important;height:32px!important;border-radius:10px!important;background:linear-gradient(135deg,#4ade80,#16a34a)!important;color:#05200f!important;font-size:12px!important;font-weight:950!important;box-shadow:0 14px 28px rgba(34,197,94,.23)!important;}
.sidebar .brand-block strong{font-size:13px!important;line-height:1.05!important;color:#f7fff9!important;font-weight:900!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.sidebar .brand-block span{display:block!important;margin-top:3px!important;font-size:9.5px!important;color:rgba(203,213,225,.60)!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.sidebar .nav-list{display:flex!important;flex-direction:column!important;gap:5px!important;margin:0!important;padding:0!important;}
.sidebar .nav-list button{height:36px!important;min-height:36px!important;border:1px solid transparent!important;border-radius:10px!important;background:transparent!important;color:rgba(226,237,247,.78)!important;box-shadow:none!important;padding:0 10px!important;display:flex!important;align-items:center!important;gap:10px!important;justify-content:flex-start!important;font-size:11.5px!important;font-weight:700!important;letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease!important;}
.sidebar .nav-list button span:first-child{width:16px!important;min-width:16px!important;height:16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;opacity:.8!important;font-size:12px!important;filter:saturate(.8)!important;}
.sidebar .nav-list button:hover{background:rgba(34,197,94,.075)!important;border-color:rgba(34,197,94,.14)!important;color:#f8fff9!important;transform:translateX(1px)!important;}
.sidebar .nav-list button.active{background:linear-gradient(90deg,rgba(34,197,94,.20),rgba(34,197,94,.045))!important;border-color:rgba(34,197,94,.22)!important;color:#ffffff!important;box-shadow:inset 2px 0 0 #22c55e!important;}
.sidebar .sidebar-footer{margin-top:auto!important;padding-top:16px!important;border-top:1px solid rgba(148,163,184,.11)!important;display:flex!important;flex-direction:column!important;gap:8px!important;}
.sidebar .plan-badge{border:0!important;background:transparent!important;box-shadow:none!important;color:#5cff91!important;font-size:9px!important;font-weight:950!important;letter-spacing:.12em!important;text-transform:uppercase!important;padding:0 2px!important;}
.sidebar .user-card{min-height:50px!important;padding:9px 10px!important;border-radius:12px!important;background:rgba(2,9,18,.42)!important;border:1px solid rgba(148,163,184,.12)!important;box-shadow:none!important;overflow:hidden!important;}
.sidebar .user-card strong{display:block!important;color:#f8fafc!important;font-size:11.3px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.sidebar .user-card span{display:block!important;margin-top:4px!important;color:rgba(203,213,225,.62)!important;font-size:9.5px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.sidebar .btn.full,.sidebar .btn-ghost.full{width:100%!important;height:34px!important;min-height:34px!important;border-radius:10px!important;background:rgba(2,9,18,.38)!important;border:1px solid rgba(148,163,184,.14)!important;color:rgba(226,237,247,.80)!important;box-shadow:none!important;font-size:10.5px!important;font-weight:800!important;}
.vf102-hidden{display:none!important;}
.vf102-shell{position:relative;color:var(--vf-text);display:grid;gap:16px;animation:vf102In .28s ease both;}
@keyframes vf102In{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.vf102-shell:before{content:"";position:fixed;inset:0 0 0 var(--vf-side-w);pointer-events:none;background:radial-gradient(circle at 78% 12%,rgba(34,197,94,.10),transparent 28%),radial-gradient(circle at 28% 42%,rgba(59,130,246,.08),transparent 33%);z-index:-1;}
.vf102-topbar{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;border:1px solid var(--vf-line);border-radius:24px;padding:20px 22px;background:linear-gradient(135deg,rgba(12,24,39,.95),rgba(3,22,16,.83));box-shadow:0 24px 65px rgba(0,0,0,.26);overflow:hidden;position:relative;}
.vf102-topbar:after{content:"";position:absolute;right:-130px;top:-160px;width:380px;height:380px;border-radius:50%;background:conic-gradient(from 160deg,rgba(34,197,94,.32),rgba(56,189,248,.11),transparent,rgba(139,92,246,.12));filter:blur(26px);opacity:.72;}
.vf102-eyebrow{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(34,197,94,.28);background:rgba(34,197,94,.09);color:#8dfb9b;border-radius:999px;padding:7px 12px;text-transform:uppercase;letter-spacing:.16em;font-size:10.5px;font-weight:950;position:relative;z-index:1;}
.vf102-title{position:relative;z-index:1;}
.vf102-title h1{margin:12px 0 6px;font-size:clamp(29px,3.2vw,42px);line-height:1;letter-spacing:-.055em;}
.vf102-title p{margin:0;color:var(--vf-muted);max-width:680px;font-size:13.5px;line-height:1.45;}
.vf102-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;position:relative;z-index:1;}
.vf102-tabs{display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.vf102-btn,.vf102-tabs button{height:40px;border:1px solid rgba(148,163,184,.14);background:rgba(2,9,18,.70);color:#eafff3;border-radius:13px;padding:0 14px;font-weight:900;cursor:pointer;white-space:nowrap;transition:.16s ease;}
.vf102-btn:hover,.vf102-tabs button:hover{transform:translateY(-1px);border-color:rgba(34,197,94,.42);box-shadow:0 12px 26px rgba(34,197,94,.10);}
.vf102-tabs button.active{background:linear-gradient(135deg,#22c55e,#a3e635);color:#05120a;border-color:transparent;}
.vf102-btn.icon{width:42px;padding:0;text-align:center;}
.vf102-kpis{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:12px;}
.vf102-kpi{position:relative;overflow:hidden;border:1px solid rgba(148,163,184,.14);border-radius:19px;background:linear-gradient(180deg,rgba(14,25,40,.93),rgba(5,16,26,.83));min-height:112px;padding:15px 15px 13px;box-shadow:0 17px 44px rgba(0,0,0,.22);transition:.18s ease;}
.vf102-kpi:hover{transform:translateY(-3px);border-color:rgba(34,197,94,.35);}
.vf102-kpi:after{content:"";position:absolute;right:-36px;bottom:-40px;width:115px;height:115px;background:radial-gradient(circle,rgba(34,197,94,.17),transparent 67%);}
.vf102-kpi .ico{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;margin-bottom:10px;background:rgba(34,197,94,.12);box-shadow:inset 0 0 0 1px rgba(34,197,94,.16);}
.vf102-kpi small{display:block;color:rgba(226,252,239,.58);font-size:11.5px;font-weight:850;}
.vf102-kpi strong{display:block;margin-top:5px;font-size:clamp(21px,2vw,29px);line-height:1.05;letter-spacing:-.035em;}
.vf102-kpi em{display:block;margin-top:8px;font-size:11.5px;font-style:normal;color:rgba(226,252,239,.54);}
.vf102-up{color:#58f27e!important}.vf102-down{color:#fb7185!important}.vf102-flat{color:#a7f3d0!important}
.vf102-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.9fr);gap:14px;}
.vf102-stack{display:grid;gap:14px;}
.vf102-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.vf102-card{border:1px solid rgba(148,163,184,.14);border-radius:20px;background:linear-gradient(180deg,rgba(12,23,38,.90),rgba(5,16,25,.80));box-shadow:0 20px 54px rgba(0,0,0,.22);padding:16px;overflow:hidden;position:relative;}
.vf102-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 36%);pointer-events:none;}
.vf102-card-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
.vf102-card h3{margin:0;font-size:15.5px;letter-spacing:-.015em;}
.vf102-card p{margin:3px 0 0;color:rgba(226,252,239,.52);font-size:12.5px;line-height:1.35;}
.vf102-chart{position:relative;z-index:1;height:300px;}
.vf102-svg{width:100%;height:300px;display:block;overflow:visible;}
.vf102-grid-line{stroke:rgba(148,163,184,.085)}.vf102-axis{stroke:rgba(148,163,184,.13)}.vf102-line{fill:none;stroke:#65f872;stroke-width:4;filter:drop-shadow(0 0 9px rgba(34,197,94,.45))}.vf102-area{fill:url(#vf102Area)}.vf102-dot{fill:#eafff3;stroke:#22c55e;stroke-width:3;cursor:pointer}.vf102-label{fill:rgba(226,252,239,.48);font-size:11px;font-weight:800}
.vf102-tip{position:fixed;z-index:99999;display:none;pointer-events:none;max-width:250px;padding:9px 11px;border:1px solid rgba(34,197,94,.32);border-radius:13px;background:rgba(2,9,18,.96);box-shadow:0 18px 42px rgba(0,0,0,.35);color:#effff6;font-size:12px}.vf102-tip strong{display:block;color:#8dfb9b;margin-bottom:3px;font-size:13px}
.vf102-donut-row{position:relative;z-index:1;display:grid;grid-template-columns:145px 1fr;gap:12px;align-items:center;min-height:155px;}
.vf102-donut{width:138px;height:138px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#22c55e 0deg 160deg,#38bdf8 160deg 240deg,#8b5cf6 240deg 315deg,#f59e0b 315deg 360deg);box-shadow:0 20px 40px rgba(0,0,0,.23),0 0 0 1px rgba(255,255,255,.05)}
.vf102-donut:before{content:"";position:absolute;inset:29px;border-radius:50%;background:#07131f;box-shadow:inset 0 0 18px rgba(0,0,0,.44)}
.vf102-donut span{position:relative;text-align:center;font-weight:950;font-size:14px}.vf102-donut span small{display:block;color:rgba(226,252,239,.54);font-size:10px}
.vf102-legend{display:grid;gap:8px}.vf102-legend .item{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:12px;color:rgba(226,252,239,.76)}.vf102-legend i{width:9px;height:9px;border-radius:50%;background:#22c55e}.vf102-legend strong{font-size:12px;color:#f3fff6}
.vf102-funnel{position:relative;z-index:1;display:grid;gap:8px;padding-top:2px}.vf102-funnel-row{display:grid;grid-template-columns:1fr 92px;gap:10px;align-items:center}.vf102-funnel-shape{height:30px;border-radius:9px;background:linear-gradient(90deg,#0ea5e9,#22c55e);box-shadow:0 12px 24px rgba(34,197,94,.12)}.vf102-funnel-row:nth-child(2) .vf102-funnel-shape{margin-inline:8%}.vf102-funnel-row:nth-child(3) .vf102-funnel-shape{margin-inline:17%;background:linear-gradient(90deg,#22c55e,#eab308)}.vf102-funnel-row:nth-child(4) .vf102-funnel-shape{margin-inline:27%;background:linear-gradient(90deg,#eab308,#ef4444)}.vf102-funnel-row strong{text-align:right;font-size:12px}
.vf102-table{position:relative;z-index:1;width:100%;border-collapse:collapse}.vf102-table th,.vf102-table td{padding:11px 9px;border-bottom:1px solid rgba(148,163,184,.10);text-align:left;font-size:12px}.vf102-table th{text-transform:uppercase;letter-spacing:.09em;font-size:10px;color:rgba(226,252,239,.45)}.vf102-status{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:950;border:1px solid rgba(148,163,184,.14)}.vf102-status.paid{background:rgba(34,197,94,.13);color:#8dfb9b}.vf102-status.pending{background:rgba(250,204,21,.12);color:#fde68a}.vf102-status.canceled{background:rgba(248,113,113,.12);color:#fda4af}
.vf102-activity{position:relative;z-index:1;display:grid;gap:10px}.vf102-activity-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:11px}.vf102-activity-row i{width:32px;height:32px;display:grid;place-items:center;border-radius:11px;background:rgba(34,197,94,.12)}.vf102-activity-row small{display:block;color:rgba(226,252,239,.50);font-size:11px}.vf102-activity-row strong{font-size:16px}
.vf102-shortcuts{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.vf102-shortcut{border:1px solid rgba(148,163,184,.13);background:rgba(2,9,18,.50);border-radius:15px;padding:12px 9px;text-align:center;cursor:pointer;transition:.16s ease}.vf102-shortcut:hover{transform:translateY(-2px);border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.075)}.vf102-shortcut b{display:block;margin-top:6px;font-size:11px}
.vf102-empty{position:relative;z-index:1;border:1px dashed rgba(148,163,184,.17);border-radius:15px;padding:16px;color:rgba(226,252,239,.56);text-align:center}.vf102-loading{border:1px solid rgba(148,163,184,.14);border-radius:18px;background:rgba(8,17,30,.72);padding:24px;color:rgba(226,252,239,.68)}
@media(max-width:1280px){.vf102-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.vf102-grid{grid-template-columns:1fr}.vf102-row{grid-template-columns:1fr 1fr}.vf102-topbar{grid-template-columns:1fr}.vf102-actions{justify-content:flex-start}.content-area{padding:18px!important}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr!important}.sidebar{position:fixed!important;z-index:70!important;left:0!important;top:0!important;transform:translateX(-105%)!important;transition:transform .2s ease!important}.sidebar.open{transform:translateX(0)!important}.content-area{padding:14px!important}.vf102-kpis,.vf102-row{grid-template-columns:1fr}.vf102-donut-row{grid-template-columns:1fr}.vf102-donut{margin:auto}.vf102-shortcuts{grid-template-columns:repeat(2,1fr)}}
