/* ============================================================================
   GEXA · Gestão Financeira Pessoal IA
   Identidade visual unificada com o ecossistema GEXA.
   Mesma marca (teal-deep #003C3C + lime #C8F86E), tipografia Space Grotesk + Inter,
   superfícies em vidro, brilho lime e acabamento premium da landing GEXA.
   ============================================================================ */

:root{
    /* marca GEXA */
    --teal-deep:#003C3C;--teal-900:#06302A;--teal-700:#0b6b62;--teal-500:#0e7a6e;--teal-300:#2eb6a3;
    --lime:#C8F86E;--lime-bright:#D7FF46;--lime-deep:#9fe04a;
    /* superfícies (tema claro premium) */
    --canvas:#F4F7F5;--card:#FFFFFF;--surface:#FFFFFF;--mint:#D6F0EC;--mint-soft:#EEF3F0;
    --glass:rgba(255,255,255,.72);--glass-line:rgba(8,40,36,.08);
    --ink:#06201D;--text:#0D1B19;--text-2:#3D4F4B;--muted:#7C8B86;
    --line:#E4EAE7;--line-soft:#EEF2F0;--track:#E6ECE9;
    --pos:#159A6A;--pos-bg:#E4F6EE;--neg:#D24B4B;--neg-bg:#FBE9E9;
    --warn:#C58A12;--warn-bg:#FBF0D9;--info:#2F6FED;--info-bg:#E8F0FE;
    --radius:22px;--radius-sm:14px;--radius-lg:26px;
    --shadow:0 1px 2px rgba(2,27,27,.04),0 12px 32px rgba(2,27,27,.08);
    --shadow-lg:0 30px 80px rgba(2,27,27,.30);
    --glow-lime:0 10px 30px -8px rgba(200,248,110,.55);
    --ring:0 0 0 4px rgba(200,248,110,.25);
    --grad-brand:linear-gradient(135deg,#0e7a6e,#04332e 70%);
    --ease:cubic-bezier(.22,1,.36,1);
  }
  [data-theme="dark"]{
    /* superfícies (tema escuro — assinatura GEXA, igual à landing) */
    --canvas:#070E0C;--card:#101816;--surface:#101816;--mint:#16251A;--mint-soft:#16251A;
    --glass:rgba(18,30,26,.66);--glass-line:rgba(200,248,110,.10);
    --ink:#E9F0ED;--text:#E9F0ED;--text-2:#AEC0BA;--muted:#7E928B;
    --line:#1E2925;--line-soft:#18211D;--track:#1E2925;
    --pos:#2BC489;--pos-bg:rgba(43,196,137,.15);--neg:#F06A6A;--neg-bg:rgba(240,106,106,.15);
    --warn:#E0A53A;--warn-bg:rgba(224,165,58,.15);--info:#6CA0FF;--info-bg:rgba(108,160,255,.15);
    --shadow:0 1px 2px rgba(0,0,0,.34),0 16px 40px rgba(0,0,0,.46);
    --shadow-lg:0 30px 80px rgba(0,0,0,.62);
    --glow-lime:0 14px 38px -10px rgba(200,248,110,.40);
    --ring:0 0 0 4px rgba(200,248,110,.20);
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  html{background-color:var(--canvas);transition:background-color .3s var(--ease)}
  body{
    background-color:var(--canvas);color:var(--text);
    font-family:'Manrope',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:-.011em;
    transition:background-color .3s var(--ease),color .3s var(--ease);
    background-image:
      radial-gradient(ellipse 70% 50% at 50% -8%, rgba(200,248,110,.10), transparent 60%),
      radial-gradient(ellipse 46% 38% at 88% 4%, rgba(14,122,110,.16), transparent 70%);
    background-attachment:fixed;
  }
  [data-theme="dark"] body{
    background-image:
      radial-gradient(ellipse 72% 52% at 50% -10%, rgba(200,248,110,.08), transparent 60%),
      radial-gradient(ellipse 46% 40% at 86% 2%, rgba(14,122,110,.20), transparent 70%);
  }
  h1,h2,h3,h4{font-family:'Manrope',sans-serif;letter-spacing:-.02em}
  .num,.money-num{font-family:'Manrope',sans-serif;font-variant-numeric:tabular-nums}
  button{font-family:inherit}
  ::selection{background:var(--lime);color:var(--teal-deep)}
  :focus-visible{outline:none;box-shadow:var(--ring);border-radius:8px}

  /* ===== LAYOUT (sidebar + main) ===== */
  .app{display:flex;min-height:100vh}

  /* ---- SELETOR LATERAL ---- */
  .side{
    width:244px;flex:0 0 244px;
    background:linear-gradient(185deg,#0C1512 0%,#05100D 60%);
    color:#CBD8D3;position:sticky;top:0;height:100vh;align-self:flex-start;
    display:flex;flex-direction:column;
    border-right:1px solid rgba(255,255,255,.04);
    box-shadow:6px 0 30px rgba(0,0,0,.28);z-index:40;
  }
  .brand{padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:10px;align-items:flex-start;position:relative}
  .logo{display:flex;align-items:center;gap:10px;color:var(--lime);flex-shrink:0;line-height:1;user-select:none;font-family:'Manrope',sans-serif}
  .logo .brand-mark{height:30px;width:30px;border-radius:9px;flex-shrink:0;box-shadow:0 0 18px -3px rgba(200,248,110,.55);transition:transform .5s var(--ease)}
  .logo:hover .brand-mark{transform:scale(1.07) rotate(-3deg)}
  .logo svg{height:34px;width:auto;display:block}
  .brand-logo{height:30px;width:auto;display:block;filter:drop-shadow(0 0 16px rgba(200,248,110,.35))}
  .brand small{color:#8fb4ab;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
  .side-x{position:absolute;top:14px;right:12px;background:none;border:0;color:#9fc4bb;font-size:16px;cursor:pointer;line-height:1;padding:4px 6px;border-radius:7px;display:none}
  .side-x:hover{background:rgba(255,255,255,.08);color:#fff}

  .snav{flex:1;overflow-y:auto;padding:14px 12px;scrollbar-width:thin}
  .nav-group{margin-bottom:6px}
  .nav-grp-h{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#5E746D;padding:14px 12px 6px}
  .nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 12px;border-radius:11px;color:#AFC0BA;text-decoration:none;font-size:13.5px;font-weight:500;cursor:pointer;position:relative;transition:background .15s,color .15s;white-space:nowrap;margin-bottom:1px}
  .nav-item:hover{background:rgba(255,255,255,.05);color:#EAF1EE}
  .nav-item.active{background:rgba(200,248,110,.12);color:#fff;font-weight:600;box-shadow:none}
  .nav-item.active::before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:4px;height:20px;border-radius:0 4px 4px 0;background:var(--lime)}
  .nav-item.active .ico{color:var(--lime)}
  .nav-item .ico{width:20px;height:20px;display:grid;place-items:center;flex-shrink:0;opacity:.95}
  .nav-item .ico svg{width:18px;height:18px}
  .side-foot{padding:14px 14px;border-top:1px solid rgba(255,255,255,.08)}
  .side-logout{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:10px 12px;border-radius:11px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#cfe9e1;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.16s var(--ease)}
  .side-logout:hover{border-color:rgba(255,120,120,.5);background:rgba(255,90,90,.14);color:#ffd9d9}
  .side-logout .ico{display:grid;place-items:center}
  .side-logout svg{width:17px;height:17px}
  .side-backdrop{display:none}

  /* ---- ÁREA PRINCIPAL ---- */
  .main{flex:1;min-width:0;display:flex;flex-direction:column}
  .topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding:0 26px;
    background:rgba(244,247,245,.82);backdrop-filter:blur(12px);color:var(--text);
    border-bottom:1px solid var(--line)}
  [data-theme="dark"] .topbar{background:rgba(7,14,12,.82)}
  .tb-left{display:flex;align-items:center;gap:12px;min-width:0}
  .ttl{min-width:0}
  .ttl h1{margin:0;font-size:15.5px;font-family:'Manrope',sans-serif;font-weight:700;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ttl p{margin:1px 0 0;color:var(--muted);font-size:11.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .menu-btn{display:none;font-size:18px}
  .nav-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;position:relative}
  .iconbtn{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--muted);display:grid;place-items:center;cursor:pointer;font-size:16px;transition:.18s var(--ease)}
  .iconbtn:hover{background:var(--mint-soft);border-color:var(--teal-300);color:var(--teal-700);transform:translateY(-1px)}
  [data-theme="dark"] .iconbtn:hover{color:var(--lime);border-color:rgba(200,248,110,.4)}
  .menu-btn{color:var(--text)}
  .iconbtn svg{width:19px;height:19px}
  .avatar{width:39px;height:39px;border-radius:50%;background:var(--lime);color:var(--teal-deep);display:grid;place-items:center;font-weight:800;font-size:15px;flex-shrink:0;cursor:pointer;transition:.18s var(--ease);box-shadow:0 0 0 2px rgba(200,248,110,.25)}
  .avatar:hover{filter:brightness(1.06);transform:translateY(-1px)}
  .ic-sun{display:none}.ic-moon{display:block}
  [data-theme="dark"] .ic-sun{display:block}[data-theme="dark"] .ic-moon{display:none}

  /* ---- seletor de mês no cabeçalho (mesmo padrão do GEXA Crédito) ---- */
  .mes-wrap{position:relative}
  .mes-btn{display:flex;align-items:center;gap:8px;height:39px;padding:0 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.16s var(--ease);white-space:nowrap}
  .mes-btn:hover{border-color:rgba(200,248,110,.45)}
  [data-theme="dark"] .mes-btn:hover{color:var(--lime)}
  .mes-btn .dot{width:8px;height:8px;border-radius:50%;background:var(--lime);flex-shrink:0;box-shadow:0 0 8px -1px rgba(200,248,110,.7)}
  .mes-caret{color:var(--muted);font-size:11px}
  .mes-pop{position:absolute;top:calc(100% + 9px);right:0;z-index:70;width:266px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:12px;display:none}
  [data-theme="dark"] .mes-pop{background:var(--card)}
  .mes-pop.open{display:block;animation:fade .16s var(--ease)}
  .mes-pop-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:800;font-size:14px}
  .mes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
  .mes-cell{padding:10px 0;border-radius:9px;border:1px solid var(--line);background:var(--mint-soft);color:var(--text);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:.12s}
  .mes-cell:hover{border-color:var(--lime);color:var(--teal-700)}
  [data-theme="dark"] .mes-cell:hover{color:var(--lime)}
  .mes-cell.on{background:var(--lime);color:var(--teal-deep);border-color:var(--lime);font-weight:800}
  .mes-nav{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--mint-soft);color:var(--text);font-size:17px;line-height:1;cursor:pointer;transition:.12s}
  .mes-nav:hover{border-color:var(--lime);color:var(--teal-700)}
  [data-theme="dark"] .mes-nav:hover{color:var(--lime)}
  @media(max-width:560px){.mes-btn{padding:0 10px;font-size:12px;gap:6px}.mes-btn .dot{display:none}.ttl h1{font-size:14px}}

  /* ---- responsivo: sidebar deslizante ---- */
  @media(max-width:980px){
    .nav-right #btnSettings{display:none}
    .menu-btn{display:grid}
    .side{position:fixed;left:0;top:0;height:100vh;transform:translateX(-100%);transition:transform .25s var(--ease);z-index:60}
    .side.open{transform:translateX(0)}
    .side-x{display:block}
    .side.open ~ .side-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:55}
    .topbar{padding:12px 16px}
    .ttl p{display:none}
  }

  .wrap{padding:26px 30px 80px;width:100%}
  @media(min-width:1700px){.wrap{padding:28px 46px 84px}}
  @media(min-width:2200px){.wrap{padding:30px 64px 90px}}
  .view{display:none;animation:fade .35s var(--ease)}
  .view.active{display:block}
  @keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .page-h{margin-bottom:20px}
  .page-h h1{font-weight:700;font-size:26px;margin:0;letter-spacing:-.025em}
  .page-h p{margin:5px 0 0;font-size:13.5px;color:var(--muted)}

  /* ===== HERO ===== */
  .hero{
    background:radial-gradient(135% 130% at 82% -12%,#22B06F 0%,#0E5A3F 44%,#06302A 100%);
    border-radius:var(--radius-lg);color:#eafaf6;padding:22px 28px 22px;position:relative;overflow:hidden;
    box-shadow:0 26px 60px -24px rgba(0,40,38,.55),inset 0 1px 0 rgba(255,255,255,.07);
    margin-bottom:24px;border:1px solid rgba(200,248,110,.14);
  }
  .hero::before{content:"";position:absolute;top:-120px;right:-50px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(200,248,110,.20),transparent 66%);pointer-events:none;animation:floaty 9s ease-in-out infinite}
  .hero::after{content:"";position:absolute;left:-80px;bottom:-130px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.06),transparent 70%);pointer-events:none}
  @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
  .hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;position:relative;z-index:2}
  .greet{font-size:13px;color:#bfe8db;font-weight:500}
  .greet b{display:block;font-weight:700;font-size:19px;color:#fff;margin-top:2px;letter-spacing:-.01em;font-family:'Manrope',sans-serif}
  .hero-icon{width:44px;height:44px;border-radius:14px;background:rgba(200,248,110,.18);color:var(--lime);display:grid;place-items:center;flex-shrink:0;border:1px solid rgba(200,248,110,.3)}
  .hero-icon svg{width:22px;height:22px}
  .hero-main{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 30px;flex-wrap:wrap;margin-top:14px;position:relative;z-index:2}
  .hero-bal{min-width:0}
  .balance-lab{font-size:13px;color:#bfe8db;display:flex;align-items:center;gap:8px;justify-content:flex-start;position:relative;z-index:2}
  .eye{background:none;border:none;color:#bfe8db;cursor:pointer;font-size:14px;display:grid;place-items:center;padding:2px}.eye:hover{color:#fff}.eye svg{width:18px;height:18px}
  .balance-big{font-family:'Manrope',sans-serif;font-weight:800;font-size:42px;letter-spacing:-.03em;margin:5px 0 0;text-align:left;position:relative;z-index:2;color:#fff;width:fit-content;line-height:1.04;text-shadow:0 2px 20px rgba(0,28,22,.55),0 1px 2px rgba(0,28,22,.4)}
  .rd{display:flex;gap:12px;margin:0;position:relative;z-index:2;flex-wrap:wrap}
  .rd .item{font-size:12px;color:#cfeee2;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:11px 16px;backdrop-filter:blur(4px);min-width:128px}
  .rd .item b{display:block;font-family:'Manrope',sans-serif;font-weight:700;font-size:20px;margin-top:5px;letter-spacing:-.01em}
  .rd .up b{color:var(--lime)}.rd .dn b{color:#ff9aa2}
  .hero-spark{position:absolute;left:0;right:0;bottom:0;width:100%;height:46%;margin:0;z-index:1;pointer-events:none;opacity:.9}
  @media(max-width:560px){.hero-main{align-items:flex-start}.rd{width:100%}.rd .item{flex:1}}
  .spark-area{fill:url(#sparkGrad);opacity:0;animation:spark-fade 1.1s ease-out .9s forwards}
  .spark-line{fill:none;stroke:var(--lime);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1000;stroke-dashoffset:1000;filter:drop-shadow(0 0 4px rgba(200,248,110,.3));animation:spark-draw 1.7s cubic-bezier(.4,0,.2,1) .2s forwards}
  @keyframes spark-draw{to{stroke-dashoffset:0}}
  @keyframes spark-fade{to{opacity:1}}

  /* ===== QUICK ACTIONS ===== */
  .qa{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
  .qa button{background:var(--glass);border:1px solid var(--line);border-radius:18px;padding:18px 14px;display:flex;flex-direction:column;align-items:center;gap:11px;cursor:pointer;box-shadow:var(--shadow);transition:.2s var(--ease);color:var(--text);backdrop-filter:blur(10px)}
  .qa button:hover{transform:translateY(-4px);border-color:rgba(200,248,110,.45);box-shadow:var(--shadow),0 0 0 1px rgba(200,248,110,.18)}
  .qa .ic{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:20px;font-weight:700;transition:.2s var(--ease)}
  .qa button:hover .ic{transform:scale(1.06)}
  .qa .ic svg{width:22px;height:22px}
  .qa .ic.d{background:var(--neg-bg);color:var(--neg)}.qa .ic.r{background:var(--pos-bg);color:var(--pos)}
  .qa .ic.g{background:var(--mint-soft);color:var(--teal-700)}.qa .ic.i{background:rgba(200,248,110,.20);color:var(--teal-700)}
  [data-theme="dark"] .qa .ic.g{color:var(--teal-300)}
  [data-theme="dark"] .qa .ic.i{background:rgba(200,248,110,.16);color:var(--lime)}
  .qa span{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}

  /* ===== CARDS / GRID ===== */
  .grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}
  @media(max-width:880px){.grid{grid-template-columns:1fr}.qa{grid-template-columns:repeat(2,1fr)}}
  /* cards lado a lado no painel ficam com a MESMA altura, alinhados */
  .grid>.card{display:flex;flex-direction:column}
  .grid>.card .empty-msg{margin:auto 0}
  .card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
  [data-theme="dark"] .card{background:var(--glass);backdrop-filter:blur(14px)}
  .card:hover{border-color:rgba(200,248,110,.30);transform:translateY(-3px);box-shadow:var(--shadow),0 0 0 1px rgba(200,248,110,.12)}
  .card h3{font-weight:700;font-size:16.5px;margin:0;letter-spacing:-.015em}
  .card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:10px}
  .link{font-size:12.5px;color:var(--teal-700);font-weight:700;cursor:pointer;background:none;border:none;transition:.15s}
  [data-theme="dark"] .link{color:var(--teal-300)}
  .link:hover{color:var(--lime-deep)}
  [data-theme="dark"] .link:hover{color:var(--lime)}
  .full{grid-column:1/-1}
  .empty-msg{color:var(--muted);text-align:center;padding:28px 8px;font-size:13.5px}

  /* ===== INSIGHT IA (resumo inteligente) ===== */
  .ai-insight{display:flex;align-items:center;gap:12px;margin:-8px 0 22px;padding:13px 16px;border-radius:16px;
    background:linear-gradient(100deg,rgba(200,248,110,.12),rgba(14,122,110,.08));
    border:1px solid rgba(200,248,110,.22);box-shadow:0 8px 24px -16px rgba(200,248,110,.5)}
  .ai-insight[hidden]{display:none}
  [data-theme="dark"] .ai-insight{background:linear-gradient(100deg,rgba(200,248,110,.10),rgba(18,30,26,.5))}
  .ai-badge{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-weight:800;font-size:11px;letter-spacing:.06em;
    color:var(--teal-deep);background:var(--lime);border-radius:999px;padding:5px 11px 5px 9px;box-shadow:0 0 18px -4px rgba(200,248,110,.6)}
  .ai-badge svg{width:14px;height:14px}
  .ai-text{font-size:13.5px;font-weight:500;color:var(--text-2);line-height:1.4}
  .ai-text b{color:var(--text);font-weight:800}
  .ai-text b.up{color:var(--pos)}.ai-text b.dn{color:var(--neg)}
  [data-theme="dark"] .ai-text b.up{color:var(--lime)}
  .ai-insight{cursor:pointer;user-select:none}
  .ai-text{flex:1;min-width:0;text-align:left}
  .ai-text.out{animation:aiOut .22s var(--ease) forwards}
  .ai-text.in{animation:aiIn .5s var(--ease)}
  @keyframes aiOut{to{opacity:0;transform:translateY(-8px)}}
  @keyframes aiIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .ai-insight.ai-positive{border-color:rgba(43,196,137,.34);background:linear-gradient(100deg,rgba(43,196,137,.14),rgba(43,196,137,.03))}
  .ai-insight.ai-warning{border-color:rgba(224,165,58,.36);background:linear-gradient(100deg,rgba(224,165,58,.14),rgba(224,165,58,.03))}
  .ai-insight.ai-alert{border-color:rgba(240,106,106,.36);background:linear-gradient(100deg,rgba(240,106,106,.14),rgba(240,106,106,.03))}
  [data-theme="dark"] .ai-insight.ai-positive{background:linear-gradient(100deg,rgba(43,196,137,.12),rgba(18,30,26,.45))}
  [data-theme="dark"] .ai-insight.ai-warning{background:linear-gradient(100deg,rgba(224,165,58,.12),rgba(18,30,26,.45))}
  [data-theme="dark"] .ai-insight.ai-alert{background:linear-gradient(100deg,rgba(240,106,106,.12),rgba(18,30,26,.45))}

  /* ===== KPI COCKPIT (visão geral) ===== */
  .pk-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
  @media(max-width:880px){.pk-strip{grid-template-columns:1fr 1fr}}
  .pk{position:relative;display:flex;flex-direction:column;min-height:148px;overflow:hidden;
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:17px 18px 15px;
    box-shadow:var(--shadow);transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease);
    animation:pkIn .55s var(--ease) both}
  [data-theme="dark"] .pk{background:var(--glass);backdrop-filter:blur(14px)}
  .pk:nth-child(2){animation-delay:.06s}.pk:nth-child(3){animation-delay:.12s}.pk:nth-child(4){animation-delay:.18s}
  .pk:hover{transform:translateY(-3px);border-color:rgba(200,248,110,.30);box-shadow:var(--shadow),0 0 0 1px rgba(200,248,110,.14)}
  @keyframes pkIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .pk-lab{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
  .pk-ic{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}
  .pk-ic svg{width:16px;height:16px}
  .pk-ic.neg{background:var(--neg-bg);color:var(--neg)}
  .pk-ic.pos{background:var(--pos-bg);color:var(--pos)}
  .pk-ic.lime{background:rgba(200,248,110,.18);color:var(--teal-700)}
  [data-theme="dark"] .pk-ic.lime{color:var(--lime)}
  .pk-v{font-family:'Manrope',sans-serif;font-weight:700;font-size:24px;letter-spacing:-.025em;margin:13px 0 0;font-variant-numeric:tabular-nums;color:var(--text)}
  .pk-chip{display:inline-flex;align-items:center;gap:4px;width:fit-content;font-size:11px;font-weight:800;letter-spacing:.01em;padding:4px 10px;border-radius:999px;margin-top:9px}
  .pk-chip.pos{background:var(--pos-bg);color:var(--pos)}
  .pk-chip.neg{background:var(--neg-bg);color:var(--neg)}
  .pk-chip.warn{background:var(--warn-bg);color:var(--warn)}
  .pk-chip.lime{background:rgba(200,248,110,.16);color:var(--teal-700)}
  [data-theme="dark"] .pk-chip.lime{color:var(--lime)}
  .pk-chip.mut{background:var(--mint-soft);color:var(--muted)}
  /* card destaque (feature) — padrão "carteira líquida" do ecossistema */
  .pk-feat{background:radial-gradient(130% 130% at 88% -16%,#1c8f5e,#0c4e3b 52%,#06302a);border-color:rgba(200,248,110,.30);
    box-shadow:0 20px 46px -22px rgba(0,40,38,.6),0 0 0 1px rgba(200,248,110,.12)}
  [data-theme="dark"] .pk-feat{background:radial-gradient(130% 130% at 88% -16%,#179055,#0a4636 54%,#05241d);backdrop-filter:none}
  .pk-feat .pk-lab{color:#bfe8db}
  .pk-feat .pk-ic{background:rgba(200,248,110,.18);color:var(--lime);border:1px solid rgba(200,248,110,.3)}
  .pk-feat .pk-v{background:linear-gradient(92deg,#fff 12%,var(--lime));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;width:fit-content}
  .pk-feat .pk-chip{background:rgba(200,248,110,.16);color:var(--lime)}
  .pk-feat:hover{transform:translateY(-3px);box-shadow:0 26px 54px -22px rgba(0,40,38,.7),0 0 0 1px rgba(200,248,110,.28)}
  .pk-feat{min-height:166px}
  .pk-spark{display:block;width:calc(100% + 36px);height:46px;margin:auto -18px -15px;position:relative}
  .pk-spark .pks-area{fill:url(#pkGrad)}
  .pk-spark .pks-line{fill:none;stroke:var(--lime);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(200,248,110,.55))}
  @media(prefers-reduced-motion:reduce){.pk{animation:none}}

  /* ===== RESUMO KPIs ===== */
  .mini-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .mk{background:var(--mint-soft);border-radius:14px;padding:14px 16px;border:1px solid var(--line-soft)}
  .mk .lab{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:5px}
  .mk .v{font-family:'Manrope',sans-serif;font-weight:700;font-size:19px;letter-spacing:-.01em}
  .mk .v.g{color:var(--pos)}.mk .v.r{color:var(--neg)}.mk .v.t{color:var(--teal-700)}
  [data-theme="dark"] .mk .v.t{color:var(--teal-300)}

  /* ===== LIST ROWS (pagar / receber) ===== */
  .alert{background:var(--warn-bg);color:var(--warn);font-weight:700;font-size:12.5px;text-align:center;padding:11px;border-radius:12px;margin-bottom:8px}
  .alert.pos{background:var(--pos-bg);color:var(--pos)}
  .pay{display:flex;align-items:center;gap:13px;padding:12px 10px;border-radius:14px;cursor:pointer;transition:.15s var(--ease)}
  .pay:hover{background:var(--mint-soft);transform:translateX(2px)}
  .pay .ico{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;color:#fff}
  .pay .ico svg{width:19px;height:19px}
  .pay .nm{font-weight:700;font-size:14px}.pay .dt{font-size:12px;color:var(--muted)}
  .pay .amt{margin-left:auto;text-align:right}
  .pay .amt .v{font-family:'Manrope',sans-serif;font-weight:700;font-size:14.5px;color:var(--neg)}
  .stt{font-size:10px;font-weight:800;letter-spacing:.03em;padding:3px 8px;border-radius:999px;display:inline-block;margin-top:3px}
  .stt.pago,.stt.recebido{background:var(--pos-bg);color:var(--pos)}
  .stt.parcial{background:var(--warn-bg);color:var(--warn)}
  .stt.naopago{background:var(--neg-bg);color:var(--neg)}

  /* ===== DONUT ===== */
  .donut-wrap{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
  .donut{position:relative;width:160px;height:160px;flex-shrink:0}
  .donut .center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
  .donut .center small{font-size:11px;color:var(--muted)}.donut .center b{font-family:'Manrope',sans-serif;font-weight:700;font-size:16px}
  .legend{flex:1;min-width:160px;display:flex;flex-direction:column;gap:8px}
  .legend .row{display:flex;align-items:center;gap:9px;font-size:13px}
  .legend .dot{width:11px;height:11px;border-radius:4px;flex-shrink:0}
  .legend .nm{flex:1}.legend .pc{font-family:'Manrope',sans-serif;color:var(--muted);font-size:12.5px}

  /* ===== METAS ===== */
  .goal{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
  .goal:last-child{border-bottom:none}
  .goal .gic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;flex-shrink:0}
  .goal .gic svg{width:21px;height:21px}
  .goal .gbody{flex:1;min-width:0}
  .goal .gtop{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:7px}
  .goal .gnm{font-weight:700;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .goal .gvv{font-family:'Manrope',sans-serif;font-size:12px;color:var(--muted);white-space:nowrap}
  .goal .gpct{font-weight:800;font-size:13px;color:var(--teal-700)}
  [data-theme="dark"] .goal .gpct{color:var(--lime)}
  .track{height:9px;background:var(--track);border-radius:99px;overflow:hidden}
  .track .fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--lime-deep),var(--lime));transition:width .7s var(--ease);box-shadow:0 0 12px -2px rgba(200,248,110,.5)}
  .gactions{display:flex;gap:6px;flex-shrink:0}
  .gbtn{width:33px;height:33px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;display:grid;place-items:center;font-size:15px;transition:.15s var(--ease)}
  .gbtn:hover{border-color:var(--teal-300);color:var(--teal-700);transform:translateY(-1px)}
  .gbtn.add{background:var(--lime);border-color:var(--lime);color:var(--teal-deep);font-weight:800}
  .gbtn.add:hover{background:var(--lime-bright);box-shadow:var(--glow-lime)}
  .gbtn svg{width:15px;height:15px}
  .goal-sum{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-bottom:6px}
  .goal-sum .gring{width:120px;height:120px;flex-shrink:0;position:relative}
  .goal-sum .gring .center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .goal-sum .gring .center b{font-family:'Manrope',sans-serif;font-weight:700;font-size:22px}
  .goal-sum .gring .center small{font-size:11px;color:var(--muted)}
  .goal-sum .ginfo{flex:1;min-width:170px;display:flex;flex-direction:column;gap:14px}
  .goal-sum .gi{font-size:13px;color:var(--muted)}.goal-sum .gi b{display:block;font-family:'Manrope',sans-serif;font-weight:700;font-size:20px;color:var(--text);margin-top:3px}
  /* cards de meta */
  .goal-card{border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:14px;background:var(--surface);transition:.2s var(--ease)}
  [data-theme="dark"] .goal-card{background:var(--mint-soft)}
  .goal-card:hover{border-color:rgba(200,248,110,.4);transform:translateY(-2px);box-shadow:var(--shadow)}
  .goal-card.done{border-color:var(--lime-deep);background:linear-gradient(180deg,rgba(200,248,110,.14),transparent)}
  .gc-head{display:flex;align-items:center;gap:13px;margin-bottom:13px}
  .gc-ic{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;color:#fff;flex-shrink:0}
  .gc-ic svg{width:22px;height:22px}
  .gc-title{flex:1;min-width:0}
  .gc-nm{font-weight:700;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gc-sub{font-size:12px;color:var(--muted);margin-top:2px}
  .gc-pct{font-family:'Manrope',sans-serif;font-weight:700;font-size:17px;color:var(--teal-700);flex-shrink:0}
  [data-theme="dark"] .gc-pct{color:var(--lime)}
  .gc-badge{font-size:11px;font-weight:800;padding:5px 11px;border-radius:999px;background:var(--pos-bg);color:var(--pos);flex-shrink:0}
  .track.big{height:10px}
  .gc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;flex-wrap:wrap}
  .gc-vals{font-size:13px;color:var(--muted)}
  .gc-vals b{color:var(--text);font-weight:700}
  .gc-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
  .gc-guardar{display:inline-flex;align-items:center;gap:5px;background:var(--lime);color:var(--teal-deep);border:none;border-radius:999px;padding:9px 15px;font-weight:800;font-size:13px;cursor:pointer;transition:.18s var(--ease)}
  .gc-guardar:hover{background:var(--lime-bright);box-shadow:var(--glow-lime);transform:translateY(-1px)}
  .gc-guardar svg{width:14px;height:14px}

  /* ===== investimentos (divulgação RCEM Investe) ===== */
  .invest-hero{background:linear-gradient(150deg,#0e7a6e,#064b44 55%,#04332e);border-radius:var(--radius-lg);color:#eafaf6;padding:30px 28px;position:relative;overflow:hidden;box-shadow:0 26px 60px -24px rgba(0,40,38,.55);margin-bottom:20px;border:1px solid rgba(200,248,110,.14)}
  .invest-hero::before{content:"";position:absolute;top:-120px;right:-60px;width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,rgba(200,248,110,.20),transparent 66%);pointer-events:none}
  .ih-tag{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--lime);position:relative;z-index:2}
  .ih-title{font-family:'Manrope',sans-serif;font-weight:700;font-size:29px;line-height:1.12;letter-spacing:-.025em;margin:12px 0 0;position:relative;z-index:2;color:#fff}
  .ih-title span{color:var(--lime)}
  .ih-sub{color:#bfe8db;font-size:14px;margin:14px 0 20px;position:relative;z-index:2;max-width:440px;line-height:1.55}
  .ih-cta{display:inline-flex;align-items:center;gap:8px;background:var(--lime);color:var(--teal-deep);border:none;border-radius:999px;padding:14px 24px;font-weight:800;font-size:15px;cursor:pointer;position:relative;z-index:2;box-shadow:var(--glow-lime);transition:.2s var(--ease)}
  .ih-cta:hover{background:var(--lime-bright);transform:translateY(-2px)}
  .ih-cta svg{width:18px;height:18px}
  .ih-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(200,248,110,.14);color:var(--lime);border:1px solid rgba(200,248,110,.4);border-radius:999px;padding:8px 15px;font-size:12.5px;font-weight:700;position:relative;z-index:2;margin-top:16px}
  .ih-badge svg{width:14px;height:14px}
  .ih-site{margin-top:14px;font-size:13px;font-weight:600;color:#9fd0c4;position:relative;z-index:2}
  .sim-preview{margin-top:16px;background:linear-gradient(150deg,#0e7a6e,#04332e);border-radius:18px;padding:20px 22px;color:#eafaf6;border:1px solid rgba(200,248,110,.16)}
  .sp-lab{font-size:12px;color:#bfe8db}
  .sp-saldo{font-family:'Manrope',sans-serif;font-weight:700;font-size:28px;letter-spacing:-.02em;margin:5px 0 16px;color:#fff}
  .sp-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .sp-box{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);border-radius:13px;padding:12px 14px}
  .sp-box .k{font-size:10.5px;color:#bfe8db;text-transform:uppercase;letter-spacing:.03em;font-weight:700}
  .sp-box .v{font-family:'Manrope',sans-serif;font-weight:700;font-size:16px;color:var(--lime);margin-top:4px}
  .bens{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  @media(max-width:600px){.bens{grid-template-columns:1fr}}
  .ben{display:flex;gap:12px;align-items:flex-start}
  .ben-ic{width:39px;height:39px;border-radius:12px;background:var(--mint-soft);color:var(--teal-700);display:grid;place-items:center;flex-shrink:0}
  [data-theme="dark"] .ben-ic{color:var(--teal-300)}
  .ben-ic svg{width:19px;height:19px}
  .ben b{font-size:14px;font-weight:700}
  .ben p{margin:3px 0 0;font-size:12.5px;color:var(--muted);line-height:1.45}
  .invest-final{text-align:center;padding:8px 0 2px}
  .invest-final h3{font-size:20px;font-weight:700;margin:0;letter-spacing:-.015em}
  .invest-final p{color:var(--muted);font-size:13.5px;margin:8px 0 0}
  .if-site{font-size:13px;font-weight:600;color:var(--teal-700);margin-top:14px}
  [data-theme="dark"] .if-site{color:var(--teal-300)}

  /* ===== auth (login / criar conta) ===== */
  .auth-gate{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:20px;overflow:auto;
    background:radial-gradient(135% 120% at 80% -10%,#0e7a6e,#04241f 58%,#020f0d)}
  .auth-gate::before{content:"";position:absolute;inset:0;pointer-events:none;background:
    radial-gradient(40% 30% at 18% 90%, rgba(200,248,110,.14), transparent 70%);}
  .auth-gate.open{display:flex}
  .auth-card{position:relative;width:100%;max-width:410px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:34px 30px}
  [data-theme="dark"] .auth-card{background:var(--glass);backdrop-filter:blur(18px)}
  .auth-logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:6px;font-family:'Manrope',sans-serif;color:var(--lime)}
  .auth-logo .brand-mark{height:34px;width:34px;border-radius:10px;box-shadow:0 0 22px -4px rgba(200,248,110,.6)}
  .auth-logo svg{height:30px;width:auto}
  .auth-card h2{font-family:'Manrope',sans-serif;font-weight:700;font-size:23px;margin:16px 0 2px;text-align:center;letter-spacing:-.02em}
  .auth-sub{text-align:center;color:var(--muted);font-size:13.5px;margin:0 0 22px}
  .auth-alt{text-align:center;font-size:13.5px;color:var(--muted);margin:18px 0 0}
  .auth-alt .link{font-size:13.5px}
  /* ===== perfil ===== */
  .profile-top{display:flex;align-items:center;gap:16px;margin-bottom:20px}
  .prof-avatar{width:74px;height:74px;border-radius:50%;background:var(--lime);color:var(--teal-deep);display:grid;place-items:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:28px;flex-shrink:0;background-size:cover;background-position:center;box-shadow:0 0 0 3px rgba(200,248,110,.22)}
  .profile-id{min-width:0}
  .prof-name{font-family:'Manrope',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.01em}
  .prof-mail{font-size:13px;color:var(--muted);margin:2px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .how{display:flex;flex-direction:column;gap:16px;margin-bottom:18px}
  .how-step{display:flex;gap:13px;align-items:flex-start}
  .how-ic{width:31px;height:31px;border-radius:50%;background:var(--lime);color:var(--teal-deep);font-weight:800;display:grid;place-items:center;flex-shrink:0;font-size:14px}
  .how-step b{font-size:14.5px;font-weight:700}
  .how-step p{margin:3px 0 0;font-size:13px;color:var(--muted);line-height:1.45}
  @media(max-width:600px){.ih-title{font-size:24px}.sim-out{grid-template-columns:1fr}}

  /* ===== FLUXO BARS ===== */
  .flux{display:flex;align-items:flex-end;gap:12px;height:150px;padding-top:8px}
  .flux .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;height:100%;justify-content:flex-end}
  .flux .bars{display:flex;gap:4px;align-items:flex-end;height:100%;width:100%;justify-content:center}
  .flux .bar{width:14px;border-radius:6px 6px 0 0;transition:height .6s var(--ease)}
  .flux .bar.r{background:linear-gradient(180deg,var(--lime),var(--lime-deep))}
  .flux .bar.d{background:linear-gradient(180deg,#ff8a93,var(--neg))}
  .flux .cl{font-size:11px;color:var(--muted);font-weight:600}
  .flux-leg{display:flex;gap:16px;justify-content:center;margin-top:12px;font-size:12px;color:var(--muted)}
  .flux-leg span{display:flex;align-items:center;gap:6px}.flux-leg i{width:10px;height:10px;border-radius:3px;display:inline-block}

  /* ===== TOOLBAR / LANÇAMENTOS ===== */
  .monthnav{display:flex;width:fit-content;margin:0 auto 20px;align-items:center;gap:4px;background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:6px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}
  .mn-arrow{width:34px;height:34px;border-radius:50%;border:none;background:transparent;cursor:pointer;font-size:17px;color:var(--teal-700);display:grid;place-items:center;transition:.15s var(--ease)}
  [data-theme="dark"] .mn-arrow{color:var(--teal-300)}
  .mn-arrow:hover{background:var(--mint-soft)}
  .mn-label{font-weight:700;font-size:15px;min-width:134px;text-align:center}
  /* cabeçalho de lançamentos */
  .lc-head-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
  .lc-head-top h1{font-weight:700;font-size:26px;margin:0;letter-spacing:-.025em}
  .lc-head-top p{margin:5px 0 0;font-size:13.5px;color:var(--muted)}
  .btn-novo{display:inline-flex;align-items:center;gap:6px;background:var(--lime);color:var(--teal-deep);border:none;border-radius:999px;padding:12px 19px;font-weight:800;font-size:14px;cursor:pointer;flex-shrink:0;box-shadow:var(--glow-lime);transition:.2s var(--ease)}
  .btn-novo:hover{background:var(--lime-bright);transform:translateY(-2px)}
  .btn-novo .plus{font-size:19px;line-height:1;margin-top:-1px}
  @media(max-width:600px){.lc-head-top h1{font-size:22px}.lc-head-top p{display:none}.btn-novo{padding:10px 16px}}
  .lc-tools{display:flex;align-items:center;gap:10px;margin-bottom:14px}
  .lc-search{flex:1;display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:11px 14px;color:var(--muted);transition:.18s var(--ease)}
  .lc-search:focus-within{border-color:var(--teal-300);box-shadow:0 0 0 3px rgba(46,182,163,.14)}
  .lc-search svg{width:17px;height:17px;flex-shrink:0}
  .lc-search input{border:none;outline:none;font-family:inherit;font-size:14px;width:100%;background:transparent;color:var(--text)}
  .addbtn{width:39px;height:39px;border-radius:50%;border:none;background:var(--lime);color:var(--teal-deep);font-size:22px;cursor:pointer;flex-shrink:0;font-weight:800;display:grid;place-items:center;transition:.18s var(--ease)}
  .addbtn:hover{background:var(--lime-bright);box-shadow:var(--glow-lime)}
  .daygroup{margin-top:4px}
  .dayhead{font-size:12px;color:var(--muted);font-weight:700;padding:14px 4px 6px;border-bottom:1px solid var(--line);text-transform:capitalize}
  .lc-row{display:flex;align-items:center;gap:14px;padding:14px 10px;border-radius:14px;cursor:pointer;transition:.15s var(--ease)}
  .lc-row:hover{background:var(--mint-soft);transform:translateX(2px)}
  .lc-row+.lc-row{border-top:1px solid var(--line)}
  .lc-ico{width:41px;height:41px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;color:#fff}
  .lc-ico svg{width:20px;height:20px}
  .lc-main{flex:1;min-width:0}
  .lc-main .nm{font-weight:700;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lc-main .meta{font-size:12px;color:var(--muted)}
  .lc-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap;flex-shrink:0}
  .lc-amt{font-family:'Manrope',sans-serif;font-weight:700;font-size:15px;text-align:right;white-space:nowrap}
  .lc-amt.exp{color:var(--neg)}.lc-amt.inc{color:var(--pos)}
  .lc-row.done .lc-amt{opacity:.7}
  .lc-row.done .lc-ico{opacity:.85}
  .lc-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
  .lcs{background:var(--mint-soft);border-radius:14px;padding:13px 15px;border:1px solid var(--line-soft)}
  .lcs .k{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
  .lcs b{display:block;font-family:'Manrope',sans-serif;font-weight:700;font-size:17px;margin-top:5px;letter-spacing:-.01em}
  .lcs b.r{color:var(--neg)}.lcs b.g{color:var(--pos)}.lcs b.t{color:var(--teal-700)}
  [data-theme="dark"] .lcs b.t{color:var(--teal-300)}
  @media(max-width:600px){.lc-summary{grid-template-columns:1fr;gap:8px}.lcs{display:flex;justify-content:space-between;align-items:center}.lcs b{margin-top:0}}

  /* ===== RELATÓRIOS ===== */
  .rtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto;scrollbar-width:none}
  .rtabs::-webkit-scrollbar{display:none}
  .rtab{background:none;border:none;font-weight:700;font-size:14px;color:var(--muted);padding:11px 15px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:.15s}
  .rtab:hover{color:var(--text)}
  .rtab.active{color:var(--teal-700);border-bottom-color:var(--lime-deep)}
  [data-theme="dark"] .rtab.active{color:var(--lime);border-bottom-color:var(--lime)}
  .rpanel{display:none}.rpanel.active{display:block;animation:fade .3s var(--ease)}
  .repsection{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:6px 0 12px}
  .catrow{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .catrow:last-child{border-bottom:none}
  .cat-body{flex:1;min-width:0}
  .cat-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}
  .cat-top .nm{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cat-val{font-family:'Manrope',sans-serif;font-weight:700;font-size:14px;white-space:nowrap}
  .cat-track{height:7px;background:var(--track);border-radius:99px;overflow:hidden}
  .cat-fill{height:100%;border-radius:99px;transition:width .6s var(--ease)}
  .cat-pc{font-family:'Manrope',sans-serif;font-size:12px;color:var(--muted);min-width:34px;text-align:right;flex-shrink:0}
  .rep-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px}
  @media(max-width:760px){.rep-cols{grid-template-columns:1fr;gap:26px}}
  .rep-donut{display:flex;justify-content:center;margin-bottom:10px}
  .es-foot{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
  .catic{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;flex-shrink:0}
  .catic svg{width:17px;height:17px}
  .rtotal{display:flex;justify-content:flex-end;gap:12px;padding:12px 0;font-family:'Manrope',sans-serif;font-weight:700;font-size:15px}
  .rtotal span{color:var(--muted);font-weight:600;font-size:13px;align-self:center;font-family:'Manrope',sans-serif}
  .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
  @media(max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}}
  .kpi{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:17px 19px;transition:.2s var(--ease)}
  [data-theme="dark"] .kpi{background:var(--glass);backdrop-filter:blur(14px)}
  .kpi:hover{border-color:rgba(200,248,110,.3);transform:translateY(-2px)}
  .kpi .lab{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:6px}
  .kpi .v{font-family:'Manrope',sans-serif;font-weight:700;font-size:21px}
  .kpi .v.g{color:var(--pos)}.kpi .v.r{color:var(--neg)}.kpi .v.t{color:var(--teal-700)}
  [data-theme="dark"] .kpi .v.t{color:var(--teal-300)}
  .cmp{display:flex;align-items:flex-end;gap:18px;height:160px;padding-top:10px}
  .cmp .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}
  .cmp .colbar{width:80px;max-width:70%;border-radius:10px 10px 0 0;transition:height .6s var(--ease)}
  .cmp .cl{font-size:12px;color:var(--muted);font-weight:700;text-align:center}

  /* ===== DRAWER ===== */
  .scrim{position:fixed;inset:0;background:rgba(2,20,18,.55);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:.3s var(--ease);z-index:50}
  .scrim.open{opacity:1;visibility:visible}
  .drawer{position:fixed;top:0;right:0;height:100%;width:410px;max-width:92vw;background:var(--card);z-index:60;transform:translateX(100%);transition:transform .35s var(--ease);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;padding:26px;overflow-y:auto;border-left:1px solid var(--line)}
  [data-theme="dark"] .drawer{background:var(--glass);backdrop-filter:blur(20px)}
  .drawer.open{transform:translateX(0)}
  .drawer .close{align-self:flex-end;background:none;border:none;font-size:22px;color:var(--muted);cursor:pointer;line-height:1}
  .tag-d{display:inline-block;font-size:11px;font-weight:800;padding:4px 11px;border-radius:999px;letter-spacing:.03em}
  .tag-d.exp{background:var(--neg-bg);color:var(--neg)}.tag-d.inc{background:var(--pos-bg);color:var(--pos)}
  .drawer h2{font-family:'Manrope',sans-serif;font-weight:700;font-size:21px;margin:12px 0 16px;letter-spacing:-.015em}
  .recur{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);border-radius:13px;padding:11px;font-size:13px;color:var(--muted);margin-bottom:14px}
  .field{background:var(--mint-soft);border-radius:13px;padding:13px 16px;margin-bottom:10px;border:1px solid var(--line-soft)}
  .field .k{font-size:10.5px;letter-spacing:.06em;color:var(--muted);font-weight:700;margin-bottom:5px}
  .field .v{font-size:15px;font-weight:700;display:flex;align-items:center;gap:9px}
  .field .v .catic{width:26px;height:26px}.field .v .catic svg{width:14px;height:14px}
  .drawer-actions{display:flex;justify-content:space-around;margin-top:20px;border-top:1px solid var(--line);padding-top:20px;gap:6px;flex-wrap:wrap}
  .da{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);font-size:11.5px;font-weight:700;transition:.15s}
  .da .ci{width:47px;height:47px;border-radius:15px;background:var(--mint-soft);display:grid;place-items:center;font-size:18px;color:var(--teal-700);transition:.18s var(--ease)}
  [data-theme="dark"] .da .ci{color:var(--teal-300)}
  .da:hover{color:var(--text)}
  .da:hover .ci{background:var(--mint);transform:translateY(-2px)}
  .da.pay-act .ci{background:var(--pos-bg);color:var(--pos)}.da.del .ci{background:var(--neg-bg);color:var(--neg)}

  /* ===== MODAL ===== */
  .mscrim{position:fixed;inset:0;background:rgba(2,20,18,.58);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.25s var(--ease);z-index:70;display:flex;align-items:center;justify-content:center;padding:18px}
  .mscrim.open{opacity:1;visibility:visible}
  .modal{background:var(--card);width:540px;max-width:100%;max-height:92vh;overflow:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:32px;position:relative;transform:translateY(18px) scale(.97);transition:.28s var(--ease);border:1px solid var(--line)}
  [data-theme="dark"] .modal{background:var(--glass);backdrop-filter:blur(22px)}
  .mscrim.open .modal{transform:none}
  .modal .x{position:absolute;top:18px;right:20px;background:none;border:none;font-size:24px;color:var(--muted);cursor:pointer;line-height:1;transition:.15s}
  .modal .x:hover{color:var(--text)}
  .modal h2{font-family:'Manrope',sans-serif;font-weight:700;font-size:22px;margin:0 0 14px;letter-spacing:-.015em}
  .modal h2 .mtype{color:var(--pos)}
  .modal.expense h2 .mtype{color:var(--neg)}
  .mtype-seg{display:flex;gap:5px;background:var(--mint-soft);border:1px solid var(--line-soft);border-radius:13px;padding:5px;margin:0 0 20px}
  .mtype-seg button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;border:none;background:none;color:var(--muted);font-family:inherit;font-weight:700;font-size:13.5px;padding:10px 12px;border-radius:9px;cursor:pointer;transition:.16s var(--ease)}
  .mtype-seg button span{font-size:16px;line-height:1;font-weight:800}
  .mtype-seg button:hover{color:var(--text)}
  .mtype-seg button.on{background:var(--surface);box-shadow:var(--shadow)}
  [data-theme="dark"] .mtype-seg button.on{background:var(--card)}
  .mtype-seg button[data-mt="despesa"].on{color:var(--neg)}
  .mtype-seg button[data-mt="receita"].on{color:var(--pos)}
  .fl{display:flex;flex-direction:column;gap:6px;margin-bottom:15px}
  .fl>span{font-size:13px;color:var(--muted);font-weight:600}
  .fl input,.fl textarea,.fl select{font-family:inherit;font-size:15px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);width:100%;transition:.18s var(--ease)}
  .fl input:focus,.fl textarea:focus,.fl select:focus{outline:none;border-color:var(--pos);box-shadow:0 0 0 3px rgba(15,158,99,.14)}
  .modal.expense .fl input:focus,.modal.expense .fl textarea:focus,.modal.expense .fl select:focus{border-color:var(--neg);box-shadow:0 0 0 3px rgba(220,75,75,.14)}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  @media(max-width:520px){.row2{grid-template-columns:1fr}}
  .money{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);padding-left:13px;transition:.18s var(--ease)}
  .money span{color:var(--muted);font-size:15px}
  .money input{border:none!important;padding-left:7px;background:transparent;box-shadow:none!important}
  .money:focus-within{border-color:var(--pos);box-shadow:0 0 0 3px rgba(15,158,99,.14)}
  .modal.expense .money:focus-within{border-color:var(--neg);box-shadow:0 0 0 3px rgba(220,75,75,.14)}
  .catpick{position:relative}
  .catfield{display:flex;align-items:center;gap:9px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);padding:11px 14px;cursor:pointer;font-size:15px;color:var(--text)}
  .catfield.empty{color:var(--muted)}
  .catfield .catic{width:26px;height:26px}.catfield .catic svg{width:14px;height:14px}
  .catlist{position:absolute;z-index:5;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);max-height:280px;overflow:auto;display:none}
  .catlist.open{display:block}
  .catsearch{position:sticky;top:0;background:var(--card);padding:10px;border-bottom:1px solid var(--line)}
  .catsearch input{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;background:var(--surface);color:var(--text)}
  .catopt{display:flex;align-items:center;gap:11px;padding:10px 13px;cursor:pointer;font-size:14px;transition:.12s}
  .catopt:hover{background:var(--mint-soft)}
  .catopt .catic{width:26px;height:26px}.catopt .catic svg{width:14px;height:14px}
  .repbox{border-top:1px solid var(--line);margin-top:6px;padding-top:14px;display:none}
  .repbox.open{display:block}
  .repbox .opt{display:flex;align-items:center;gap:9px;font-size:14px;margin-bottom:8px;cursor:pointer}
  .repbox .opt input{width:auto}
  .obsbox,.tagsbox{margin-top:8px;display:none}.obsbox.open,.tagsbox.open{display:block}
  .toggles{display:flex;justify-content:space-around;border-top:1px solid var(--line);margin-top:18px;padding-top:18px}
  .tg{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted);font-size:11.5px;font-weight:700;transition:.15s}
  .tg .tgi{width:47px;height:47px;border-radius:50%;background:var(--mint-soft);display:grid;place-items:center;font-size:18px;transition:.18s var(--ease)}
  .tg.on{color:var(--teal-700)}
  [data-theme="dark"] .tg.on{color:var(--teal-300)}
  .tg.on .tgi{background:var(--mint);color:var(--teal-700)}
  [data-theme="dark"] .tg.on .tgi{color:var(--teal-300)}
  .savewrap{display:flex;justify-content:center;margin-top:24px}
  .savebtn{width:64px;height:64px;border-radius:50%;border:none;background:var(--pos);color:#fff;font-size:26px;cursor:pointer;box-shadow:0 10px 26px -6px rgba(21,154,106,.55);transition:.18s var(--ease)}
  .savebtn:hover{transform:scale(1.06)}
  .modal.expense .savebtn{background:var(--neg);box-shadow:0 10px 26px -6px rgba(210,75,75,.55)}
  .btn-block{width:100%;background:var(--lime);color:var(--teal-deep);border:none;border-radius:999px;padding:15px;font-weight:800;font-size:14.5px;cursor:pointer;margin-top:10px;transition:.2s var(--ease)}
  .btn-block:hover{background:var(--lime-bright);box-shadow:var(--glow-lime);transform:translateY(-1px)}
  .btn-block:disabled{background:var(--track);color:var(--muted);cursor:not-allowed;box-shadow:none;transform:none}

  /* goal modal swatch / icon picker */
  .picker-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:6px}
  .sw{width:31px;height:31px;border-radius:50%;cursor:pointer;border:2px solid transparent;display:grid;place-items:center;color:#fff;transition:.15s}
  .sw:hover{transform:scale(1.08)}
  .sw svg{width:15px;height:15px}
  .sw.sel{border-color:var(--text);box-shadow:0 0 0 2px var(--card) inset}
  .icpk{width:35px;height:35px;border-radius:11px;cursor:pointer;border:1.5px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--muted);transition:.15s}
  .icpk:hover{border-color:var(--teal-300)}
  .icpk svg{width:18px;height:18px}
  .icpk.sel{border-color:var(--teal-300);background:var(--mint-soft);color:var(--teal-700)}
  [data-theme="dark"] .icpk.sel{color:var(--teal-300)}

  /* ===== NAV DROPDOWNS + TOAST ===== */
  .badge-dot{position:absolute;top:6px;right:7px;width:9px;height:9px;border-radius:50%;background:#ff5a5a;border:2px solid var(--teal-deep)}
  .navpop{position:absolute;top:50px;right:0;width:304px;max-width:84vw;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);padding:8px;display:none;z-index:80;color:var(--text)}
  [data-theme="dark"] .navpop{background:var(--glass);backdrop-filter:blur(20px)}
  .navpop.open{display:block;animation:popin .2s var(--ease)}
  @keyframes popin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .navpop h4{font-size:14px;margin:8px 10px 6px;font-weight:700}
  .npitem{display:flex;align-items:center;gap:11px;padding:11px;border-radius:12px;cursor:pointer;font-size:13.5px;transition:.12s}
  .npitem:hover{background:var(--mint-soft)}
  .npitem .npi{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:15px;color:#fff;flex-shrink:0}
  .npitem .npi svg{width:17px;height:17px}
  .npitem .npr{margin-left:auto;font-family:'Manrope',sans-serif;font-size:12.5px;color:var(--neg)}
  .npempty{color:var(--muted);font-size:13px;text-align:center;padding:18px 10px}
  .pp-head{display:flex;align-items:center;gap:12px;padding:16px 14px;margin:-8px -8px 6px;border-radius:18px 18px 0 0;background:linear-gradient(135deg,var(--teal-deep),var(--teal-700))}
  .pp-avatar{width:46px;height:46px;border-radius:50%;background:var(--lime);color:var(--teal-deep);display:grid;place-items:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:19px;flex-shrink:0}
  .pp-name{font-weight:800;font-size:15px;color:#fff}
  .pp-mail{font-size:12px;color:#bfe8db;margin-top:1px}
  .npitem.danger:hover{background:var(--neg-bg)}
  .npitem b{font-weight:700}
  .toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--teal-deep);color:#eafaf6;padding:14px 24px;border-radius:14px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:.28s var(--ease);z-index:200;border:1px solid rgba(200,248,110,.2)}
  .toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

  .tg .tgi svg{width:21px;height:21px}
  .da .ci svg{width:21px;height:21px}
  /* filtros / export em lançamentos */
  .lc-iconbtn{width:43px;height:43px;flex-shrink:0;border-radius:13px;border:1px solid var(--line);background:var(--surface);color:var(--teal-700);cursor:pointer;display:grid;place-items:center;transition:.18s var(--ease)}
  [data-theme="dark"] .lc-iconbtn{color:var(--teal-300)}
  .lc-iconbtn:hover{border-color:var(--teal-300);background:var(--mint-soft);transform:translateY(-1px)}
  .lc-iconbtn svg{width:19px;height:19px}
  .lc-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
  .lcchip{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s var(--ease)}
  .lcchip:hover{border-color:var(--teal-300);color:var(--text)}
  .lcchip.active{background:var(--lime);color:var(--teal-deep);border-color:var(--lime)}
  /* feedback de sucesso */
  .success-pop{position:fixed;inset:0;display:grid;place-items:center;z-index:210;pointer-events:none;opacity:0}
  .success-pop.show{animation:sp .9s ease forwards}
  .success-pop .sp-circle{width:94px;height:94px;border-radius:50%;background:var(--lime);color:var(--teal-deep);display:grid;place-items:center;box-shadow:0 16px 48px rgba(200,248,110,.6);transform:scale(.5)}
  .success-pop .sp-circle svg{width:48px;height:48px}
  .success-pop.show .sp-circle{animation:spc .9s cubic-bezier(.2,1.3,.4,1) forwards}
  @keyframes sp{0%{opacity:0}14%{opacity:1}78%{opacity:1}100%{opacity:0}}
  @keyframes spc{0%{transform:scale(.4)}42%{transform:scale(1.06)}100%{transform:scale(1)}}
  /* ===== mobile clean ===== */
  @media(max-width:600px){
    .wrap{padding:18px 16px 40px}
    .hero{padding:24px 22px;border-radius:24px;margin-bottom:18px}
    .hero-top{gap:14px;align-items:center}
    .greet b{font-size:16px}
    .balance-lab{justify-content:flex-start;margin-top:14px}
    .balance-big{text-align:left;font-size:34px;margin-top:3px}
    .rd{gap:26px;margin-top:16px}
    .hero-spark{margin:14px -22px -24px;width:calc(100% + 44px);height:58px}
    .qa{grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:18px}
    .qa button{padding:13px 4px;gap:8px;border-radius:16px}
    .qa .ic{width:42px;height:42px;border-radius:13px;font-size:17px}
    .qa .ic svg{width:19px;height:19px}
    .qa span{font-size:10px;letter-spacing:.01em;line-height:1.15}
    .grid{gap:14px}
    .card{padding:18px;border-radius:18px}
    .page-h h1{font-size:22px}
    .mini-kpis{gap:10px}
    /* modais e drawer no mobile */
    .mscrim{padding:12px;align-items:flex-end}
    .modal{width:100%;max-width:100%;padding:22px 18px;border-radius:22px 22px 18px 18px;max-height:88vh}
    .modal h2{font-size:20px;margin-bottom:16px}
    .modal .x{top:16px;right:16px}
    .row2{gap:12px}
    .fl input,.fl textarea,.fl select{font-size:16px}
    .toggles{margin-top:14px;padding-top:14px}
    .tg{font-size:10.5px;gap:6px}.tg .tgi{width:43px;height:43px}
    .savewrap{margin-top:16px}
    .savebtn{width:58px;height:58px;font-size:24px}
    .drawer{width:100%;max-width:100%;border-radius:22px 22px 0 0;top:auto;bottom:0;height:auto;max-height:90vh;transform:translateY(100%);border-left:none;border-top:1px solid var(--line)}
    .drawer.open{transform:translateY(0)}
    .picker-row{gap:8px}
  }
  @media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
