/* ============================================================
   Finanças da Família — Design System
   Paleta "Hearth": verde-pinheiro + âmbar + coral.
   A cor carrega significado: verde = entrada/saldo,
   coral = despesa, âmbar = orçamento/metas.
   Temas: claro (padrão) e escuro via [data-theme="dark"].
   ============================================================ */

/* ---------- TEMA CLARO (padrão) ---------- */
:root {
  --bg:#f2f4f1;
  --bg-2:#e9ede8;
  --surface:#ffffff;
  --surface-2:#f1f4ef;
  --ink:#17211d;
  --ink-soft:#38443e;
  --muted:#5e6b64;
  --line:#e4e8e2;
  --line-strong:#d3dad2;

  --brand:#1c4a3f;            /* evergreen — CTAs, fab, avatar, ativo */
  --brand-2:#2a6355;
  --on-brand:#ffffff;

  --income:#1f9d63;           /* entradas / saldo positivo */
  --income-ink:#0d7a49;
  --income-soft:#e6f6ee;

  --expense:#d94f4f;          /* despesas */
  --expense-ink:#b6382f;
  --expense-soft:#fdece9;

  --amber:#d98420;            /* orçamento / metas */
  --amber-ink:#a6640f;
  --amber-soft:#fbefdb;

  --ring:#2a6355;
  --track:#e6ebe4;            /* trilha de progresso */
  --shadow-sm:0 2px 10px rgba(23,33,29,.05);
  --shadow-md:0 10px 30px rgba(23,33,29,.07);
  --shadow-lg:0 20px 55px rgba(23,33,29,.13);

  --hero-from:#1c4a3f;
  --hero-to:#123a30;
  --hero-ink:#f4f9f6;

  --auth-from:#153c33;
  --auth-to:#0e2b24;

  --radius:22px;
  --radius-sm:14px;
  --sheen:rgba(255,255,255,.07);

  color-scheme: light;
}

/* ---------- TEMA ESCURO ---------- */
[data-theme="dark"] {
  --bg:#0f1512;
  --bg-2:#151c18;
  --surface:#19211d;
  --surface-2:#212b26;
  --ink:#eaf0ec;
  --ink-soft:#c4cdc8;
  --muted:#99a79f;
  --line:#2b352f;
  --line-strong:#3a463f;

  --brand:#38b083;
  --brand-2:#4bcf94;
  --on-brand:#06120c;

  --income:#41c78d;
  --income-ink:#63d6a4;
  --income-soft:rgba(65,199,141,.16);

  --expense:#f0736f;
  --expense-ink:#f79693;
  --expense-soft:rgba(240,115,111,.16);

  --amber:#f2b45e;
  --amber-ink:#f7c983;
  --amber-soft:rgba(242,180,94,.16);

  --ring:#4bcf94;
  --track:#2a332e;
  --shadow-sm:0 2px 10px rgba(0,0,0,.32);
  --shadow-md:0 12px 34px rgba(0,0,0,.44);
  --shadow-lg:0 22px 60px rgba(0,0,0,.55);

  --hero-from:#1c463a;
  --hero-to:#0e2a22;
  --hero-ink:#eafaf3;

  --auth-from:#123a2f;
  --auth-to:#09201a;

  --sheen:rgba(255,255,255,.055);

  color-scheme: dark;
}

/* ---------- BASE ---------- */
*{box-sizing:border-box}
html,body{
  margin:0;min-height:100%;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,system-ui,sans-serif;
  background:var(--bg);color:var(--ink);
  overscroll-behavior:none;
  touch-action:manipulation;
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
/* fundo escuro atrás da tela de login — evita branco vazando nas bordas */
body[data-screen="auth"]{background:var(--auth-to)}
body{transition:background-color .35s ease,color .35s ease}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.hidden{display:none!important}

/* números sempre alinhados */
.balance,.hero-stat strong,.tx-amount,.budget-input,.amount-field,.profile-line strong,.budget-head strong{
  font-variant-numeric:tabular-nums;
}

/* faces com personalidade só onde conta */
.brand-title,.balance,.hero-stat strong,.section-title h2,.auth h1,
.sheet-head h2,.join h1,.month-nav strong,.amount-field,.login-heading{
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-optical-sizing:auto;
}

/* foco visível e acessível em tudo que é interativo */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--ring);outline-offset:2px;border-radius:10px;
}

/* ---------- SHELL ---------- */
.shell{
  max-width:520px;margin:0 auto;background:var(--bg);position:relative;
  display:flex;flex-direction:column;
  min-height:100svh;min-height:100dvh;
}
.topbar{
  padding:calc(16px + env(safe-area-inset-top)) 20px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  position:sticky;top:0;z-index:30;
  background:var(--bg);
}
.topbar>div:first-child{min-width:0}
.brand-title{font-weight:600;font-size:21px;letter-spacing:-.01em;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.brand-sub{font-size:12px;color:var(--muted);margin-top:3px;font-weight:600;letter-spacing:.01em}
.top-actions{display:flex;align-items:center;gap:8px}
.avatar{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:var(--brand);color:var(--on-brand);font-weight:800;font-size:13px;
  box-shadow:var(--shadow-sm);border:0;cursor:pointer;transition:transform .12s;
}
.avatar:active{transform:scale(.92)}

/* botão de tema (sol/lua) */
.theme-toggle{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);
  box-shadow:var(--shadow-sm);transition:transform .15s ease,background .3s,color .3s;
}
.theme-toggle svg{width:19px;height:19px}
.theme-toggle:active{transform:scale(.9)}
.header-btn{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);
  box-shadow:var(--shadow-sm);transition:transform .15s ease,background .3s,color .3s;
}
.header-btn svg{width:19px;height:19px}
.header-btn:active{transform:scale(.9)}
.header-btn.spinning{color:var(--brand)}
.header-btn.spinning svg{animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.top-logout{
  border:1px solid var(--line);background:var(--surface);color:var(--expense-ink);
  border-radius:12px;padding:9px 12px;font-size:12px;font-weight:800;box-shadow:var(--shadow-sm);
}

.page{padding:4px 18px calc(104px + env(safe-area-inset-bottom));flex:1 0 auto}
.stick-head{
  position:sticky;top:var(--topbar-h,66px);z-index:9;
  background:var(--bg);margin:0 -18px 8px;padding:4px 18px 10px;
  box-shadow:0 14px 18px -16px rgba(0,0,0,.28);
  /* compositor próprio evita micro-jitter do sticky no Safari/iOS */
  transform:translateZ(0);backface-visibility:hidden;
}
.stick-head .month-nav{margin-bottom:14px}
.stick-head .hero{margin-bottom:12px}
.stick-head .quick-actions{margin-top:0}
.stick-head .filters{padding-bottom:2px;margin-bottom:0}


/* ---------- MOBILE ESTÁVEL ----------
   Scroll normal da página, cabeçalhos em overlay e rodapé preso ao viewport.
   Evita que a correção do cabeçalho altere a geometria do rodapé. */
@media (max-width:699px){
  body[data-screen="app"]{
    overflow-x:hidden;
  }

  body[data-screen="app"] .shell{
    min-height:100dvh;
    height:auto;
    overflow:visible;
  }

  body[data-screen="app"] .topbar{
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:min(520px,100%);
    margin:0 auto;
    z-index:30;
    transform:translateZ(0);
    backface-visibility:hidden;
  }

  body[data-screen="app"] .page{
    display:block;
    overflow:visible;
    min-height:0;
    padding-top:calc(
      var(--mobile-topbar-h, 104px) +
      var(--mobile-stick-h, 0px) +
      8px
    );
    padding-bottom:96px;
  }

  body[data-screen="app"] .stick-head{
    position:fixed;
    top:var(--mobile-topbar-h,104px);
    left:0;
    right:0;
    width:min(520px,100%);
    margin:0 auto;
    padding:4px 18px 10px;
    z-index:29;
    background:var(--bg);
    box-shadow:0 14px 18px -16px rgba(0,0,0,.28);
    transform:translateZ(0);
    backface-visibility:hidden;
  }

  /* Rodapé sempre relativo ao viewport, nunca à .shell. */
  body[data-screen="app"] .bottom-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    top:auto;
    z-index:40;
    width:min(520px,100%);
    /* O fundo segue até a borda, mas o conteúdo entra na safe-area.
       Em iPhones com ~34px de safe-area, preservamos só ~8px. */
    --nav-bottom-guard:max(6px, calc(env(safe-area-inset-bottom) - 26px));
    height:80px;
    margin:0 auto;
    padding:4px 12px var(--nav-bottom-guard);
    grid-template-columns:repeat(5,1fr);
    align-items:center;
    /* Compensa somente quando o WebKit abre o PWA com o layout viewport
       mais curto que a área realmente visível. */
    transform:translateY(var(--ios-bottom-gap, 0px));
    translate:none;
    will-change:transform;
  }

  body[data-screen="app"] .bottom-nav .nav-btn{
    height:auto;
    gap:5px;
    padding:6px 4px 4px;
    font-size:10px;
  }

  body[data-screen="app"] .bottom-nav .nav-icon{
    height:30px;
    min-width:54px;
  }

  body[data-screen="app"] .bottom-nav .nav-btn svg{
    width:23px;
    height:23px;
  }

  /* O botão + e seu menu também ficam presos ao viewport. */
  body[data-screen="app"] .fab-float{
    position:fixed;
    right:max(16px, calc((100vw - 520px)/2 + 16px));
    bottom:calc(78px - var(--ios-bottom-gap, 0px));
  }

  body[data-screen="app"] .fab-menu{
    position:fixed;
    right:max(16px, calc((100vw - 520px)/2 + 16px));
    bottom:calc(146px - var(--ios-bottom-gap, 0px));
  }
}

/* ---------- HERO (assinatura) ---------- */
.hero{
  background:linear-gradient(150deg,var(--hero-from),var(--hero-to));
  border-radius:26px;padding:22px 22px 20px;color:var(--hero-ink);
  box-shadow:var(--shadow-lg);overflow:hidden;position:relative;isolation:isolate;
}
.hero:before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(120% 80% at 100% 0%,var(--sheen),transparent 60%);
}
.hero:after{
  content:"";position:absolute;width:160px;height:160px;border-radius:50%;
  right:-52px;top:-58px;background:var(--sheen);
}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;opacity:.72;font-weight:700}
.balance{font-size:37px;line-height:1;font-weight:600;letter-spacing:-.02em;margin:10px 0 18px}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-stat{padding:13px 14px;border-radius:16px;background:rgba(255,255,255,.09);display:flex;flex-direction:column;gap:2px}
.hero-stat span{font-size:11px;opacity:.78;display:flex;align-items:center;gap:5px}
.hero-stat span:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.hero-stat.up span{color:#8ee6b8}.hero-stat.down span{color:#f6a9a6}
.hero-stat strong{font-size:18px;font-weight:600;color:var(--hero-ink)}

/* ---------- SEÇÕES ---------- */
.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 2px 11px}
.section-title h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}
.link-btn{border:0;background:transparent;color:var(--brand-2);font-weight:700;font-size:13px;padding:4px}
[data-theme="dark"] .link-btn{color:var(--brand-2)}

.card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow-md);
}

/* ---------- AÇÕES RÁPIDAS ---------- */
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}
.quick{
  border:1px solid transparent;border-radius:18px;padding:15px 14px;text-align:left;
  font-weight:800;font-size:14px;display:flex;flex-direction:column;gap:3px;
  transition:transform .12s ease;
}
.quick:active{transform:scale(.97)}
.quick small{font-weight:600;opacity:.82;font-size:12px}
.quick.expense{background:var(--expense-soft);color:var(--expense-ink);border-color:color-mix(in srgb,var(--expense) 22%,transparent)}
.quick.income{background:var(--income-soft);color:var(--income-ink);border-color:color-mix(in srgb,var(--income) 22%,transparent)}

/* ---------- LISTA DE LANÇAMENTOS ---------- */
.tx-list{overflow:hidden}
.tx{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s}
.tx:last-child{border-bottom:0}
.tx:active{background:var(--surface-2)}
@media (hover:hover){.tx:hover{background:var(--surface-2)}}
.tx-icon{
  width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:20px;
  background:color-mix(in srgb, var(--c,#8C8FA3) 15%, var(--surface));color:color-mix(in srgb, var(--c,#8C8FA3) 72%, var(--ink));
}
[data-theme="dark"] .tx-icon{background:color-mix(in srgb, var(--c,#8C8FA3) 26%, var(--surface));color:color-mix(in srgb, var(--c,#8C8FA3) 80%, var(--ink))}
.tx-main{min-width:0}
.tx-main strong{display:block;font-size:14.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-main span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.tx-author{display:block;color:var(--muted);font-size:10.5px;font-weight:650;margin-top:4px;opacity:.86}
.tx-amount{font-size:14.5px;font-weight:800;text-align:right;white-space:nowrap}
.tx-amount.expense{color:var(--expense-ink)}
.tx-amount.income{color:var(--income-ink)}

/* ---------- ESTADO VAZIO (convite à ação) ---------- */
.empty{padding:30px 22px;text-align:center;color:var(--muted);font-size:14px}
.empty .emoji{font-size:30px;margin-bottom:10px;opacity:.85}
.empty-cta{
  margin-top:14px;border:0;background:var(--brand);color:var(--on-brand);
  border-radius:13px;padding:11px 18px;font-weight:800;font-size:13px;box-shadow:var(--shadow-sm);
}

/* ---------- NAV INFERIOR ---------- */
.bottom-nav{
  position:fixed;z-index:20;left:0;right:0;bottom:0;top:auto;
  transform:none;translate:none;
  width:min(520px,100%);margin:0 auto;
  height:calc(74px + env(safe-area-inset-bottom));
  padding:8px 12px env(safe-area-inset-bottom);
  display:grid;grid-template-columns:repeat(5,1fr);align-items:center;
  background:var(--surface);
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  border-top:1px solid var(--line);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
}
.nav-btn{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:6px 4px 4px;transition:color .22s}
.nav-btn.active{color:var(--brand)}
[data-theme="dark"] .nav-btn.active{color:var(--brand-2)}
.nav-icon{display:grid;place-items:center;height:30px;min-width:54px;border-radius:999px;transition:background .24s ease}
.nav-btn svg{width:23px;height:23px;display:block}
.nav-btn.active .nav-icon{background:color-mix(in srgb,var(--brand) 14%,transparent)}
[data-theme="dark"] .nav-btn.active .nav-icon{background:color-mix(in srgb,var(--brand-2) 22%,transparent)}
.fab-float{
  position:absolute;z-index:45;right:16px;
  bottom:calc(90px + env(safe-area-inset-bottom));
  width:58px;height:58px;border-radius:19px;border:0;
  background:var(--brand);color:var(--on-brand);display:grid;place-items:center;
  box-shadow:0 14px 30px color-mix(in srgb,var(--brand) 46%,transparent);
  transition:transform .18s cubic-bezier(.2,.8,.2,1);
}
.fab-float svg{width:26px;height:26px}
.fab-float:active{transform:scale(.93)}
.fab-float.open{transform:rotate(45deg)}
.fab-menu{
  position:absolute;z-index:45;right:16px;
  bottom:calc(158px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:9px;align-items:flex-end;
  animation:fabIn .16s cubic-bezier(.2,.8,.2,1);
}
.fab-menu[hidden]{display:none}
.fab-opt{
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--line);border-radius:14px;
  background:var(--surface);color:var(--ink);
  font-weight:750;font-size:14px;padding:11px 16px;
  box-shadow:var(--shadow-md);cursor:pointer;
}
.fab-opt:active{transform:scale(.97)}
.fab-opt .fo-ic{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;line-height:1}
.fab-opt.expense .fo-ic{background:var(--expense)}
.fab-opt.income .fo-ic{background:var(--income)}
@keyframes fabIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- FILTROS / CHIPS ---------- */
.filters{display:flex;gap:8px;overflow:auto;padding:2px 0 12px;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.chip{white-space:nowrap;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:700;color:var(--muted);transition:all .18s}
.chip.active{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}

/* ---------- RELATÓRIO ---------- */
.export-btn{border:1px solid var(--line);background:var(--surface);color:var(--brand-2);font-weight:750;font-size:12.5px;padding:7px 12px;border-radius:11px;display:inline-flex;align-items:center;gap:6px;box-shadow:var(--shadow-sm);transition:transform .12s}
.export-btn:active{transform:scale(.96)}
.export-btn svg{width:15px;height:15px}
.report-card{padding:16px}
.report-top{display:flex;align-items:center;gap:16px}
.donut{width:116px;height:116px;flex:0 0 auto}
.legend{list-style:none;margin:0;padding:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
.legend li{display:flex;align-items:center;gap:8px;font-size:12.5px}
.legend .dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.legend .lg-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft);font-weight:600}
.legend .lg-val{flex:0 0 auto;text-align:right;color:var(--muted);font-weight:600;display:flex;flex-direction:column;line-height:1.2;font-variant-numeric:tabular-nums}
.legend .lg-val b{color:var(--ink);font-weight:750}
.report-totals{display:flex;justify-content:space-between;gap:8px;margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.report-totals>div{display:flex;flex-direction:column;gap:3px}
.report-totals span{font-size:11px;color:var(--muted)}
.report-totals strong{font-size:14px;font-variant-numeric:tabular-nums}
.report-totals .pos{color:var(--income-ink)}
.report-totals .neg{color:var(--expense-ink)}

/* ---------- RELATÓRIO: GASTOS POR FORMA DE PAGAMENTO ---------- */
.pay-report-card{padding:4px 16px;overflow:hidden}
.pay-report-row{padding:14px 0;border-bottom:1px solid var(--line)}
.pay-report-row:last-of-type{border-bottom:0}
.pay-report-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.pay-report-head strong{font-size:14px;font-weight:750;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pay-report-head span{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.pay-report-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;font-size:11px;color:var(--muted)}
.pay-report-meta b{font-weight:700;color:var(--ink-soft)}
.pay-report-bar{height:6px;margin-top:8px;background:var(--track);border-radius:999px;overflow:hidden}
.pay-report-bar i{display:block;height:100%;border-radius:999px;background:var(--brand);transition:width .45s cubic-bezier(.2,.8,.2,1)}
.pay-report-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0 13px;border-top:1px solid var(--line);margin-top:1px}
.pay-report-total span{font-size:12px;color:var(--muted);font-weight:650}
.pay-report-total strong{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}

/* ---------- NAVEGAÇÃO DE MÊS ---------- */
.month-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 16px;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:7px 8px;box-shadow:var(--shadow-sm)}
.month-arrow{width:38px;height:38px;border:0;border-radius:11px;background:var(--surface-2);color:var(--ink-soft);display:grid;place-items:center;transition:transform .12s,background .2s,color .2s}
.month-arrow:active{transform:scale(.9)}
.month-arrow:hover{color:var(--brand)}
.month-arrow svg{width:18px;height:18px}
.month-label{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.08;text-align:center;flex:1;min-width:0}
.month-label strong{font-size:17px;font-weight:600}
.month-tag{font-size:11px;color:var(--muted);font-weight:600}
.month-today{border:0;background:transparent;color:var(--brand-2);font-size:11px;font-weight:750;padding:0;cursor:pointer}
.icon-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:12px;width:40px;height:40px;font-size:18px;box-shadow:var(--shadow-sm);transition:transform .12s}
.icon-btn:active{transform:scale(.92)}

/* ---------- ORÇAMENTO ---------- */
.budget-row{padding:16px}
.card>.budget-row{border-bottom:1px solid var(--line)}
.card>.budget-row:last-child{border-bottom:0}
.budget-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.budget-head strong{font-size:14.5px;font-weight:650}
.budget-head span{font-size:12px;color:var(--muted);display:block;margin-top:2px}
.progress{height:9px;background:var(--track);border-radius:999px;margin-top:11px;overflow:hidden}
.progress>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--income),var(--brand-2));transition:width .5s cubic-bezier(.2,.8,.2,1)}
.progress.over>i{background:linear-gradient(90deg,var(--amber),var(--expense))}
.budget-input{width:120px;border:1px solid var(--line);border-radius:12px;padding:9px 11px;text-align:right;background:var(--surface-2);font-weight:700;transition:border-color .15s,box-shadow .15s}
.budget-input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 18%,transparent)}

/* ---------- PERFIL / AJUSTES ---------- */
.profile-card{padding:6px 18px}
.profile-line{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.profile-line:last-child{border-bottom:0}
.profile-line span{color:var(--muted);font-size:13px}
.profile-line strong{font-size:13px;text-align:right;font-weight:700}
.settings-card{padding:18px}
.settings-copy{margin-bottom:16px}
.settings-copy strong{display:block;font-size:15px;font-weight:700}
.settings-copy span{display:block;color:var(--muted);font-size:12.5px;line-height:1.55;margin-top:6px}
.logout{width:100%;margin-top:14px;border:1px solid var(--line);background:var(--surface);border-radius:15px;padding:14px;font-weight:800;color:var(--expense-ink);transition:transform .12s}
.logout:active{transform:scale(.98)}

/* ---------- AUTENTICAÇÃO ---------- */
.auth{
  min-height:100svh;min-height:100dvh;
  padding:calc(46px + env(safe-area-inset-top)) 22px calc(32px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  position:relative;overflow:hidden;isolation:isolate;
  background:radial-gradient(135% 130% at 50% -20%,var(--auth-from),var(--auth-to) 72%);
}
.auth-inner{
  width:100%;max-width:380px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
/* véu animado — dois brilhos que deslizam devagar atrás do conteúdo */
.auth::before,.auth::after{
  content:"";position:absolute;z-index:-1;border-radius:50%;
  filter:blur(64px);pointer-events:none;
}
.auth::before{
  width:78vmax;height:78vmax;left:-24vmax;top:-30vmax;opacity:.7;
  background:radial-gradient(circle,rgba(60,190,134,.5),transparent 62%);
  animation:drift1 22s ease-in-out infinite;
}
.auth::after{
  width:64vmax;height:64vmax;right:-26vmax;bottom:-24vmax;opacity:.62;
  background:radial-gradient(circle,rgba(38,132,110,.55),transparent 62%);
  animation:drift2 28s ease-in-out infinite;
}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(9vmax,7vmax) scale(1.14)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8vmax,-6vmax) scale(1.1)}}
.auth-toggle{
  position:absolute;top:calc(20px + env(safe-area-inset-top));right:22px;
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);color:#fff;
  backdrop-filter:blur(8px);
}
.auth-toggle svg{width:19px;height:19px}
.auth-logo{width:66px;height:66px;border-radius:22px;background:#fff;color:var(--brand);display:grid;place-items:center;font-weight:800;font-size:24px;margin:0 auto 22px;box-shadow:0 14px 34px rgba(0,0,0,.28);font-family:"Fraunces",Georgia,serif}
.auth-logo svg{width:72%;height:72%}
.auth h1{color:#fff;font-size:34px;line-height:1.04;letter-spacing:-.02em;margin:0;font-weight:600}
.auth-inner>p{color:rgba(255,255,255,.78);margin:12px auto 26px;line-height:1.55;max-width:32ch}
.auth-card{width:100%;text-align:left;background:var(--surface);border-radius:26px;padding:20px;box-shadow:var(--shadow-lg)}
.login-heading{font-size:17px;font-weight:600;margin-bottom:16px}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);padding:4px;border-radius:13px;margin-bottom:15px}
.tab{border:0;background:transparent;padding:9px;border-radius:10px;font-size:13px;font-weight:800;color:var(--muted)}
.tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}

/* ---------- CAMPOS DE FORMULÁRIO ---------- */
.field{margin-bottom:13px}
.field label{display:block;font-size:12px;font-weight:700;margin:0 0 6px;color:var(--ink-soft)}
.field input,.field select,.field textarea{
  width:100%;border:1px solid var(--line-strong);border-radius:13px;padding:12px 13px;
  background:var(--surface-2);outline:none;transition:border-color .15s,box-shadow .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 18%,transparent);
}
.field input::placeholder{color:var(--muted);opacity:.7}
.input-wrap{position:relative}
.input-wrap input{width:100%;padding-right:46px}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;border-radius:9px;transition:color .15s}
.pw-toggle:hover{color:var(--ink-soft)}
.pw-toggle svg{width:20px;height:20px}
.primary{border:0;background:var(--brand);color:var(--on-brand);border-radius:14px;padding:14px 16px;font-weight:800;width:100%;box-shadow:var(--shadow-sm);transition:transform .12s,filter .15s}
.primary:active{transform:scale(.98)}
.primary:disabled{opacity:.65}
.helper{font-size:12px;color:var(--muted);line-height:1.5;margin-top:12px}

/* ---------- MODAL / SHEET ---------- */
.modal{position:fixed;z-index:50;inset:0;background:rgba(6,14,11,.55);display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}
.sheet{background:var(--bg);width:min(520px,100%);max-height:92svh;overflow:auto;border-radius:26px 26px 0 0;padding:20px 18px calc(22px + env(safe-area-inset-bottom));animation:up .26s cubic-bezier(.2,.8,.2,1);border:1px solid var(--line);border-bottom:0}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.sheet-head h2{font-size:20px;margin:0;font-weight:600}
.tx-created-by{font-size:11px;color:var(--muted);font-weight:650;margin-top:4px}
.close{width:36px;height:36px;border:0;border-radius:12px;background:var(--surface-2);color:var(--ink);font-size:20px}
.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.type-btn{border:1px solid var(--line);background:var(--surface-2);border-radius:13px;padding:11px;font-weight:800;color:var(--muted);transition:all .16s}
.type-btn.active.expense{background:var(--expense-soft);border-color:color-mix(in srgb,var(--expense) 40%,transparent);color:var(--expense-ink)}
.type-btn.active.income{background:var(--income-soft);border-color:color-mix(in srgb,var(--income) 40%,transparent);color:var(--income-ink)}
.amount-field{font-size:30px;font-weight:600;letter-spacing:-.02em}
.danger-btn{width:100%;margin-top:10px;border:1px solid color-mix(in srgb,var(--expense) 35%,transparent);background:transparent;color:var(--expense-ink);border-radius:14px;padding:13px;font-weight:800;transition:background .15s}
.danger-btn:active{background:var(--expense-soft)}
.confirm-del{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--expense-soft);border:1px solid color-mix(in srgb,var(--expense) 30%,transparent);border-radius:14px;padding:10px 10px 10px 14px;font-size:13px;font-weight:700;color:var(--expense-ink)}
.cd-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.cd-cancel{border:0;background:transparent;color:var(--muted);font-weight:700;padding:8px 10px;border-radius:10px}
.cd-yes{border:0;background:var(--expense);color:#fff;font-weight:800;padding:9px 14px;border-radius:11px}
.cd-yes:disabled{opacity:.7}

/* ---------- TOAST ---------- */
.toast{
  position:fixed;z-index:100;left:50%;bottom:104px;
  transform:translate(-50%,8px) scale(.985);
  max-width:min(90%,520px);
  background:color-mix(in srgb,var(--surface) 96%,var(--brand) 4%);
  color:var(--ink);
  padding:11px 15px;border-radius:14px;font-size:13px;font-weight:650;
  border:1px solid color-mix(in srgb,var(--brand) 14%,var(--line));
  box-shadow:0 10px 30px rgba(8,26,19,.12),0 2px 8px rgba(8,26,19,.06);
  display:flex;align-items:center;gap:14px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,transform .32s cubic-bezier(.22,.72,.3,1),visibility 0s linear .32s;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.toast.is-visible{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translate(-50%,0) scale(1);
  transition-delay:0s;
}
.toast.out{
  opacity:0;visibility:visible;pointer-events:none;
  transform:translate(-50%,4px) scale(.995);
}
.toast[hidden]{display:flex}
.toast-action{border:0;background:transparent;color:var(--brand);font-weight:800;font-size:13px;padding:2px 4px;cursor:pointer;white-space:nowrap}
[data-theme="dark"] .toast{
  background:color-mix(in srgb,var(--surface-2) 94%,var(--brand) 6%);
  color:var(--ink);border-color:color-mix(in srgb,var(--brand) 18%,var(--line));
  box-shadow:0 12px 34px rgba(0,0,0,.28);
}
.logout{display:flex;align-items:center;justify-content:center;gap:8px}
.logout svg{width:18px;height:18px}

/* ---------- BUSCA E FILTRO (Lançamentos) ---------- */
.tx-tools{display:flex;gap:8px;margin:2px 0 10px}
.search-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}
.search-wrap svg{position:absolute;left:11px;width:17px;height:17px;color:var(--muted);pointer-events:none}
.tx-search{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px 10px 34px;background:var(--surface);font-size:13.5px;outline:none;transition:border-color .15s,box-shadow .15s}
.tx-search:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 18%,transparent)}
.tx-cat,.tx-day{border:1px solid var(--line);border-radius:12px;padding:10px 8px;background:var(--surface);font-size:13px;font-weight:600;color:var(--ink)}

/* ---------- CATEGORIAS (Ajustes) ---------- */
.cat-list{overflow:hidden}
.cat-row{width:100%;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer;transition:background .15s}
.cat-row:last-child{border-bottom:0}
.cat-row:active{background:var(--surface-2)}
@media (hover:hover){.cat-row:hover{background:var(--surface-2)}}
.cat-ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:19px;background:color-mix(in srgb, var(--c,#8C8FA3) 15%, var(--surface));color:color-mix(in srgb, var(--c,#8C8FA3) 72%, var(--ink))}
[data-theme="dark"] .cat-ic{background:color-mix(in srgb, var(--c,#8C8FA3) 26%, var(--surface));color:color-mix(in srgb, var(--c,#8C8FA3) 80%, var(--ink))}
.cat-info{min-width:0}
.cat-info strong{display:block;font-size:14.5px;font-weight:650}
.cat-info span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.cat-go{color:var(--brand-2);font-weight:750;font-size:12.5px}
.cat-fields{display:flex;gap:10px}
.field-icon{width:74px;flex:0 0 auto}
.field-icon input{text-align:center;font-size:20px}

/* ---------- TENDÊNCIA (6 meses) ---------- */
.trend-card{padding:16px}
.trend-chart{display:flex;align-items:flex-end;gap:10px;height:132px}
.trend-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%}
.trend-bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:4px;width:100%}
.trend-bar{width:11px;border-radius:5px 5px 0 0;min-height:2px}
.trend-bar.inc{background:var(--income)}
.trend-bar.exp{background:var(--expense)}
.trend-col.cur .trend-label{color:var(--brand-2);font-weight:800}
.trend-label{font-size:11px;color:var(--muted);font-weight:600;text-transform:capitalize}
.trend-legend{display:flex;gap:18px;justify-content:center;margin-top:14px;font-size:12px;color:var(--muted);font-weight:600}
.trend-legend span{display:flex;align-items:center;gap:6px}
.trend-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.trend-legend .d-inc{background:var(--income)}
.trend-legend .d-exp{background:var(--expense)}

/* ---------- ORÇAMENTO: alertas e saldo restante ---------- */
.budget-alert{background:var(--expense-soft);border:1px solid color-mix(in srgb,var(--expense) 30%,transparent);border-radius:14px;padding:12px 14px;margin:0 2px 12px;display:flex;flex-direction:column;gap:2px}
.budget-alert strong{color:var(--expense-ink);font-size:13.5px;font-weight:800}
.budget-alert span{color:var(--muted);font-size:12px}
.budget-ok{color:var(--muted);font-size:12.5px;padding:0 2px 12px;font-weight:600}
.bud-title{min-width:0}
.bud-rem{font-weight:750;color:var(--income-ink)}
.bud-rem.over{color:var(--expense-ink)}
.bud-rem.none{color:var(--muted);font-weight:600}
.budget-row.is-over{background:color-mix(in srgb,var(--expense) 6%,transparent)}
.budget-hint{margin-top:9px;font-size:12.5px;line-height:1.4;color:var(--income-ink);background:var(--income-soft);border-radius:11px;padding:9px 12px;font-weight:600}
.budget-hint.over{color:var(--expense-ink);background:var(--expense-soft)}
.budget-hint b{font-weight:800}

/* ---------- FORMA DE PAGAMENTO (pílula) ---------- */
.pay-pill{display:inline-block;font-size:10.5px;font-weight:700;line-height:1.5;padding:0 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-soft);vertical-align:middle;white-space:nowrap}

/* ---------- SEÇÕES RECOLHÍVEIS ---------- */
.sec{margin-bottom:2px}
.section-title.collapsible{align-items:center;gap:10px}
.sec-toggle{display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;margin:0;cursor:pointer;color:inherit;text-align:left;min-width:0;flex:1}
.sec-toggle h2{margin:0}
.sec-toggle .chev{display:grid;place-items:center;color:var(--muted);flex:0 0 auto;transition:transform .2s ease}
.sec-toggle .chev svg{width:17px;height:17px;display:block}
.sec-toggle.is-collapsed .chev{transform:rotate(-90deg)}
.sec-body[hidden]{display:none}

/* ---------- LINHA DE FILTROS + EXPORTAR (Lançamentos) ---------- */
.filters-row{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.filters-row .filters{flex:1;min-width:0;margin-bottom:0}
.filters-row .export-btn{flex:0 0 auto}

.auth-link{display:block;width:100%;margin-top:2px;padding:6px;border:0;background:transparent;cursor:pointer;color:var(--brand-2);font-size:13px;font-weight:750;text-align:center}
.auth-switch{width:100%;margin-top:14px;padding:11px;border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:13px;font-weight:600}
.auth-switch b{color:var(--brand-2);font-weight:800}

/* ---------- EXCLUSÃO DE CONTA ---------- */
.danger-link{display:block;width:100%;margin:10px 0 2px;padding:10px;border:0;background:transparent;color:var(--expense-ink);font-size:12.5px;font-weight:700;cursor:pointer;text-align:center;opacity:.85}
.danger-copy{font-size:13.5px;line-height:1.6;color:var(--ink-soft);background:var(--expense-soft);border:1px solid color-mix(in srgb,var(--expense) 30%,transparent);border-radius:14px;padding:13px 15px;margin-bottom:14px}
.danger-btn.full{width:100%;padding:14px;border-radius:14px}
.danger-btn.full:disabled{opacity:.45}

/* ---------- SÍMBOLOS v1_95 ---------- */
.sec-toggle h2{display:flex;align-items:center;gap:7px;min-width:0}
.sec-toggle .sec-ic{display:inline-grid;place-items:center;color:var(--muted);flex:0 0 auto}
.sec-toggle .sec-ic svg{width:16px;height:16px;display:block}
.empty-ic{display:grid;place-items:center;color:var(--muted);margin-bottom:8px}
.empty-ic svg{width:30px;height:30px}
.budget-ok{display:flex;align-items:center;gap:7px}
.budget-ok .ok-ic{width:16px;height:16px;color:var(--income);flex:0 0 auto}
.fab-opt{position:relative}
.fab-opt .fo-ic svg{width:13px;height:13px;display:block}
.fab-opt.voice .fo-ic{background:#6E74B8}
.fab-opt.importar .fo-ic{background:#3E7CB1}
.fab-opt.ai-locked{opacity:.62}
.fab-opt.ai-locked::after{content:'';position:absolute;top:-5px;right:-5px;width:16px;height:16px;border-radius:50%;border:1px solid var(--line);box-shadow:var(--shadow-sm);background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C8FA3' stroke-width='2.6' stroke-linecap='round'><rect x='5' y='10.5' width='14' height='9.5' rx='2.5'/><path d='M8 10.5V8a4 4 0 0 1 8 0v2.5'/></svg>") center/9px 9px no-repeat}



/* Saldo no verde da marca, com serifa; Entrou/Saiu com tinta */
.money-strip-main{background:linear-gradient(140deg,var(--hero-from),var(--hero-to))!important;border:0!important;box-shadow:0 12px 28px color-mix(in srgb,var(--hero-to) 42%,transparent)}
.money-strip-main span{color:rgba(255,255,255,.72)!important}
.money-strip-main strong{color:#fff!important;font-family:"Fraunces",Georgia,serif;font-size:22px!important;font-weight:600;letter-spacing:-.02em}
.money-strip-main .strip-eye{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.26);color:rgba(255,255,255,.92)}
.home-money-strip .money-strip-stat.up{background:color-mix(in srgb,var(--income) 9%,var(--surface));border-color:color-mix(in srgb,var(--income) 26%,var(--line))}
.home-money-strip .money-strip-stat.up span{color:color-mix(in srgb,var(--income-ink) 70%,var(--muted))}
.home-money-strip .money-strip-stat.down{background:color-mix(in srgb,var(--expense) 8%,var(--surface));border-color:color-mix(in srgb,var(--expense) 26%,var(--line))}
.home-money-strip .money-strip-stat.down span{color:color-mix(in srgb,var(--expense-ink) 70%,var(--muted))}

/* Refresh discreto no card do Guia */
.guide-refresh-ic{width:40px;height:40px;flex:0 0 auto;border-radius:12px;border:1px solid rgba(255,255,255,.2)!important;background:rgba(255,255,255,.1)!important;color:#fff!important;display:grid;place-items:center;padding:0;cursor:pointer}
.guide-refresh-ic svg{width:17px;height:17px}
.guide-refresh-ic:active{transform:scale(.94)}
.guide-actions{display:flex;gap:9px;align-items:stretch}
.guide-actions .primary{flex:1}

/* Formulários com profundidade (claro): campos brancos sobre papel */
[data-theme="dark"] .sheet{background:var(--surface)}
.field input,.field select,.field textarea{background:var(--surface);box-shadow:0 1px 2px rgba(18,28,22,.05)}
[data-theme="dark"] .field input,[data-theme="dark"] .field select,[data-theme="dark"] .field textarea{background:var(--surface-2);box-shadow:none}
.sheet .sheet-head{margin-bottom:14px}
/* Atalhos de data no lançamento */
.date-quick{display:flex;gap:7px;margin-top:9px}
.date-quick .chip{padding:7px 13px;font-size:12px}

/* Gerenciador de metas */
.goals-list{padding:6px}
.goal-row{display:flex;align-items:stretch;gap:6px;padding:5px 6px;border-bottom:1px solid var(--line)}
.goal-row:last-child{border-bottom:0}
.goal-main{flex:1;min-width:0;background:none;border:0;text-align:left;padding:8px 4px;cursor:pointer;color:inherit;font:inherit}
.goal-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;align-items:baseline;margin-bottom:7px}
.goal-line strong{flex:1 1 auto;min-width:130px}
.goal-line strong{font-size:14.5px;letter-spacing:-.01em}
.goal-line b{font-size:13px;white-space:nowrap}
.goal-line b span{color:var(--muted);font-weight:600;font-size:11.5px}
.goal-progress{margin-bottom:6px}
.goal-main small{color:var(--muted);font-size:11.5px}
.goal-del{flex:0 0 auto;align-self:center;min-width:30px;height:30px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:15px;cursor:pointer}
.goal-del.armed{padding:0 10px;color:#fff;background:var(--expense);border-color:var(--expense);font-size:12px;font-weight:700}

/* Primeiro uso guiado */
.onboard-card{padding:18px 16px;margin-bottom:16px}
.ob-eyebrow{display:block;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-2);margin-bottom:3px}
.onboard-card h3{font-family:"Fraunces",Georgia,serif;font-size:19px;margin:0 0 4px;letter-spacing:-.01em}
.onboard-card p{margin:0 0 13px;color:var(--muted);font-size:13px}
.onboard-opts{display:flex;flex-direction:column;gap:9px}
.onb-opt{position:relative;display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);cursor:pointer}
[data-theme="dark"] .onb-opt{background:var(--surface-2)}
.onb-opt:active{transform:scale(.985)}
.onb-opt strong{display:block;font-size:14px;letter-spacing:-.01em}
.onb-opt small{display:block;color:var(--muted);font-size:11.5px;margin-top:1px}
.onb-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;color:#fff}
.onb-ic svg{width:18px;height:18px}
.onb-new{background:var(--brand)}
.onb-voice{background:#6E74B8}
.onb-import{background:#3E7CB1}
.onb-opt.ai-locked{opacity:.62}
.onb-opt.ai-locked::after{content:'';position:absolute;top:-5px;right:-5px;width:16px;height:16px;border-radius:50%;border:1px solid var(--line);box-shadow:var(--shadow-sm);background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C8FA3' stroke-width='2.6' stroke-linecap='round'><rect x='5' y='10.5' width='14' height='9.5' rx='2.5'/><path d='M8 10.5V8a4 4 0 0 1 8 0v2.5'/></svg>") center/9px 9px no-repeat}

/* Filtro por dia nos lançamentos */
.tx-tools{flex-wrap:wrap}
.tx-tools .search-wrap{flex:1 1 100%}
.tx-tools .tx-cat{flex:1 1 auto;min-width:0}
.tx-tools .tx-day{flex:0 0 auto;width:auto;min-width:104px;font-variant-numeric:tabular-nums}

/* Barra de ações do Orçamento */
.bud-toolbar{display:flex;justify-content:flex-end;margin:2px 2px 10px}

/* ---------- GUIA FIXO NO CABEÇALHO ---------- */
.guide-head-btn{color:#5a58c4}
[data-theme="dark"] .guide-head-btn{color:#a3a1f2}
.guide-head-btn svg{width:20px;height:20px}
.guide-menu{position:absolute;top:calc(100% - 4px);right:12px;z-index:60;display:flex;flex-direction:column;gap:6px;min-width:248px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-md);animation:fabIn .16s cubic-bezier(.2,.8,.2,1)}
.guide-menu[hidden]{display:none}
.guide-mi{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 11px;border:0;border-radius:11px;background:transparent;color:var(--ink);cursor:pointer}
.guide-mi:active{background:var(--surface-2)}
.guide-mi .gm-ic{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:color-mix(in srgb,#5a58c4 12%,var(--surface));color:#5a58c4}
[data-theme="dark"] .guide-mi .gm-ic{background:color-mix(in srgb,#a3a1f2 18%,var(--surface));color:#a3a1f2}
.guide-mi .gm-ic svg{width:16px;height:16px}
.guide-mi strong{display:block;font-size:13.5px;letter-spacing:-.01em}
.guide-mi span{display:block;font-size:11px;color:var(--muted);margin-top:1px}
.guide-kicker{display:inline-flex;align-items:center;gap:5px}
.guide-kicker svg{width:11px;height:11px;flex:0 0 auto}
.sec-ic svg{width:16px;height:16px}

/* ---------- TELA DE RETORNO (correção de viewport no iOS) ---------- */#resume-gate{position:fixed;inset:0;z-index:300;background:var(--bg);display:grid;place-items:center;animation:rgIn .18s ease}
#resume-gate.out{animation:fadeOut .22s ease forwards}
#resume-gate .rg-inner{display:flex;flex-direction:column;align-items:center;gap:12px;transform:translateY(-5vh)}
#resume-gate .rg-logo{width:74px;height:74px;border-radius:23px;background:#fff;display:grid;place-items:center;box-shadow:var(--shadow-md)}
#resume-gate .rg-logo svg{width:70%;height:70%}
#resume-gate strong{font-family:"Fraunces",Georgia,serif;font-size:19px;color:var(--ink)}
#resume-gate span{color:var(--muted);font-size:13px;font-weight:600}
@keyframes rgIn{from{opacity:0}to{opacity:1}}

/* ---------- SPLASH DE CARREGAMENTO ---------- */
.boot-splash{min-height:100svh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg)}
.boot-splash .bs-logo{width:74px;height:74px;border-radius:23px;background:#fff;display:grid;place-items:center;box-shadow:var(--shadow-md)}
.boot-splash .bs-logo svg{width:70%;height:70%}
.boot-splash .bs-spin{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--brand-2);animation:spin .8s linear infinite}
.boot-splash span{color:var(--muted);font-size:13px;font-weight:600}

/* ---------- GRADE DE EMOJIS (categorias) ---------- */
.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;max-height:172px;overflow-y:auto;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.emoji-grid .em{font-size:19px;line-height:1;padding:7px 0;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer;transition:transform .1s}
.emoji-grid .em:active{transform:scale(.88)}
.emoji-grid .em.sel{background:var(--surface);border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 22%,transparent)}

/* ---------- LINHAS DE PAGAMENTO CLICÁVEIS ---------- */
button.pay-report-row{display:block;width:100%;text-align:left;background:none;border:0;font:inherit;color:inherit;cursor:pointer}
button.pay-report-row:active{background:var(--surface-2)}

/* ---------- ANIMAÇÕES ---------- */
.page-enter{animation:pageIn .18s ease}@keyframes pageIn{from{opacity:0}to{opacity:1}}
.modal.closing{animation:fadeOut .2s ease forwards}
.modal.closing .sheet{animation:sheetDown .2s cubic-bezier(.4,0,1,1) forwards}
@keyframes fadeOut{to{opacity:0}}
@keyframes sheetDown{to{transform:translateY(26px);opacity:0}}
.toast.out{animation:toastOut .2s ease forwards}
@keyframes toastOut{to{opacity:0;transform:translate(-50%,10px)}}
.donut{animation:donutIn .55s cubic-bezier(.2,.8,.2,1)}
@keyframes donutIn{from{opacity:0;transform:rotate(-90deg) scale(.92)}to{opacity:1;transform:none}}
.trend-bar{transform-origin:bottom;animation:barGrow .5s cubic-bezier(.2,.8,.2,1)}
@keyframes barGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.theming, .theming *{transition:background-color .3s ease, border-color .3s ease, color .3s ease, fill .3s ease !important}

/* ---------- ACESSO RESTRITO ---------- */
.join{min-height:100svh;padding:50px 22px;background:var(--bg);display:grid;place-items:center}
.join-card{width:min(430px,100%);padding:26px}
.join h1{margin:8px 0;font-size:26px;font-weight:600;letter-spacing:-.01em}
.join p{color:var(--muted);line-height:1.55}
.join .code-input{text-transform:uppercase;letter-spacing:.08em;font-weight:800}

/* ---------- ANIMAÇÕES ---------- */
@keyframes up{from{transform:translateY(22px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ---------- DESKTOP ---------- */
@media (min-width:700px) and (max-width:999px){
  body{padding:18px 0}
  .shell{min-height:calc(100dvh - 36px);border-radius:28px;overflow:hidden;box-shadow:var(--shadow-lg)}
  .bottom-nav{position:sticky;left:auto;right:auto;transform:none;bottom:0;width:100%;margin-top:auto}
}

/* ---------- DESKTOP: barra lateral ---------- */
@media (min-width:1000px){
  body{padding:0;background:var(--bg-2)}
  .shell{
    max-width:none;width:100%;min-height:100dvh;background:var(--bg);
    display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-rows:auto 1fr;
    grid-template-areas:"side topbar" "side page";
  }
  .topbar{grid-area:topbar;border-bottom:1px solid var(--line);padding:16px 40px}
  #page{grid-area:page;max-width:960px;width:100%;margin:0;padding:16px 40px 48px;flex:none}
  .stick-head{margin:0 0 10px;padding:6px 0 10px;box-shadow:none;border-bottom:1px solid var(--line)}

  .bottom-nav{
    grid-area:side;position:sticky;top:0;align-self:start;height:100dvh;
    display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;
    width:auto;padding:18px 14px;margin:0;
    background:var(--surface);border-top:0;border-right:1px solid var(--line);backdrop-filter:none;
  }
  .nav-btn{flex-direction:row;justify-content:flex-start;gap:12px;padding:11px 14px;border-radius:12px;font-size:14px;font-weight:700}
  .nav-btn .nav-icon{min-width:auto;height:auto;border-radius:0;background:none!important;padding:0}
  .nav-btn.active{background:color-mix(in srgb,var(--brand) 12%,transparent)}
  .fab-float{right:24px;bottom:24px}
  .fab-menu{right:24px;bottom:92px}

  .hero{padding:26px 28px 24px}
  .balance{font-size:42px}
  .report-top{gap:26px}
  .donut{width:150px;height:150px}
  .modal{align-items:center}
  .sheet{max-width:460px;border-radius:24px;border-bottom:1px solid var(--line)}
}

/* ---------- RESUMO POR CATEGORIA NA HOME ---------- */
.home-category-card{overflow:hidden;padding:4px 0}
.home-cat-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line)}
.home-cat-row:last-child{border-bottom:0}
.home-cat-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:19px;background:color-mix(in srgb, var(--c,#8C8FA3) 15%, var(--surface));color:color-mix(in srgb, var(--c,#8C8FA3) 72%, var(--ink))}
[data-theme="dark"] .home-cat-icon{background:color-mix(in srgb, var(--c,#8C8FA3) 26%, var(--surface));color:color-mix(in srgb, var(--c,#8C8FA3) 80%, var(--ink))}
.home-cat-main{min-width:0}
.home-cat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.home-cat-head strong{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-cat-head span{font-size:11px;color:var(--muted);font-weight:750;flex:0 0 auto}
.home-cat-bar{height:6px;background:var(--track);border-radius:999px;overflow:hidden}
.home-cat-bar i{display:block;height:100%;border-radius:999px;background:var(--c,#8C8FA3);transition:width .45s cubic-bezier(.2,.8,.2,1)}
.home-cat-value{font-size:13.5px;font-weight:750;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.category-empty{padding:28px 22px 26px;text-align:center;display:flex;flex-direction:column;align-items:center}
.category-empty-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted);margin-bottom:12px}
.category-empty-icon svg{width:24px;height:24px}
.category-empty strong{font-size:14.5px;font-weight:700;color:var(--ink)}
.category-empty span{max-width:300px;font-size:12.5px;line-height:1.5;color:var(--muted);margin-top:5px}

.archived-cat-row{opacity:.78}
.archived-cat-row .cat-ic{filter:saturate(.55)}
.archived-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;margin-left:5px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:800;vertical-align:middle}

/* v1.49 — navegação com ação central e Ajustes no cabeçalho */
.settings-head-btn svg{width:21px;height:21px}
.avatar-static{display:grid;place-items:center;cursor:default}
.bottom-nav{grid-template-columns:1fr 1fr 74px 1fr 1fr}
.nav-fab-wrap{height:100%;display:grid;place-items:center;position:relative;overflow:visible}
.nav-fab{
  width:58px;height:58px;border-radius:20px;border:0;
  background:var(--brand);color:var(--on-brand);display:grid;place-items:center;
  box-shadow:0 12px 28px color-mix(in srgb,var(--brand) 42%,transparent);
  transform:translateY(-12px);transition:transform .18s cubic-bezier(.2,.8,.2,1);
}
.nav-fab svg{width:27px;height:27px}
.nav-fab:active{transform:translateY(-12px) scale(.93)}
.nav-fab.open{transform:translateY(-12px) rotate(45deg)}
.fab-menu-center{
  position:fixed!important;left:50%!important;right:auto!important;
  bottom:calc(88px + env(safe-area-inset-bottom))!important;
  transform:translateX(-50%);align-items:stretch;z-index:46;
}
.password-card{margin-top:10px}
.password-save{width:100%;margin-top:4px}
@media (max-width:699px){
  body[data-screen="app"] .bottom-nav{grid-template-columns:1fr 1fr 74px 1fr 1fr}
  body[data-screen="app"] .fab-menu-center{
    left:50%!important;right:auto!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    transform:translateX(-50%);
  }
}

/* v1.50 — privacidade dos valores */
.values-eye{
  width:42px;height:42px;border:0;border-radius:14px;
  display:grid;place-items:center;
  background:var(--brand);color:var(--on-brand);
  box-shadow:0 10px 22px color-mix(in srgb,var(--brand) 28%,transparent);
  flex:0 0 42px;
}
.values-eye svg{width:22px;height:22px}
.values-eye:active{transform:scale(.94)}
@media (max-width:699px){
  .values-eye{width:40px;height:40px;border-radius:13px;flex-basis:40px}
  .values-eye svg{width:21px;height:21px}
}

/* v1.52 — Contas e cartões */
.account-ic,.card-ic{background:color-mix(in srgb,var(--brand) 10%,var(--surface))}
.source-pill{background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand)}
.optional{font-weight:500;color:var(--muted);font-size:.88em}
.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.source-helper{margin-top:6px}
@media(max-width:380px){.two-fields{grid-template-columns:1fr}}

/* v1.53 — gestão de membros */
.member-manage-card{padding:16px}
.family-members-list{margin-top:12px;border-top:1px solid var(--line)}
.member-loading,.member-error{padding:18px 4px;color:var(--muted);font-size:13px}
.member-row{
  width:100%;border:0;background:transparent;color:inherit;
  display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;
  gap:10px;padding:13px 2px;border-bottom:1px solid var(--line);text-align:left;
}
.member-row:last-child{border-bottom:0}
.member-avatar{
  width:40px;height:40px;border-radius:14px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);
  font-weight:900;font-size:12px;
}
.member-avatar.large{width:50px;height:50px;border-radius:17px;font-size:14px}
.member-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.member-main strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-main strong small{font-size:9px;padding:2px 5px;border-radius:999px;background:var(--surface-2);color:var(--muted);margin-left:4px}
.member-main span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-role{font-size:10px;font-weight:800;padding:5px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.member-role.owner{background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand)}
.member-sheet .member-summary{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:18px}
.member-summary>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.member-summary>div strong{font-size:15px}
.member-summary>div span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.member-delete-zone{margin-top:20px}
.delete-help{display:block;margin-top:8px;font-size:11px;line-height:1.45;color:var(--muted)}
.owner-protection{margin-top:18px;padding:12px;border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:12px;line-height:1.45}
.member-confirm{display:flex;flex-direction:column;gap:8px}
.member-confirm>span:not(.cd-actions){font-size:12px;line-height:1.45;color:var(--muted)}
@media(max-width:430px){
  .member-row{grid-template-columns:40px minmax(0,1fr) auto}
  .member-row>.cat-go{display:none}
  .member-role{font-size:9px}
}

/* v1.54 — parcelamento livre e recorrências */
.installment-custom,.repeat-count-wrap{margin-top:10px}
.sub-label{display:block;margin:0 0 7px;font-size:12px;font-weight:700;color:var(--muted)}
.stepper-field{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;align-items:center}
.stepper-field input{text-align:center;font-weight:800}
.stepper-btn{
  width:44px;height:44px;border-radius:12px;border:1px solid var(--line);
  background:var(--surface-2);color:var(--text);font-size:22px;font-weight:700;
}
.repeat-forever-hint{margin-top:8px}
.recurring-pill{background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand)}
.stop-recurring-btn{width:100%;margin-bottom:10px}

/* v1.57 — menu do + centralizado desde o primeiro frame */
.fab-menu.fab-menu-center,
.fab-menu.fab-menu-center:not([hidden]){
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  transform-origin:center bottom !important;
}

/* v1.58 — corrige o salto das opções Receita/Despesa */
.fab-menu.fab-menu-center{
  animation:fabCenterIn .16s cubic-bezier(.2,.8,.2,1) !important;
}
@keyframes fabCenterIn{
  from{
    opacity:0;
    transform:translateX(-50%) translateY(10px) !important;
  }
  to{
    opacity:1;
    transform:translateX(-50%) translateY(0) !important;
  }
}

/* v1.60 — tema claro fixo e olho no card Saldo do mês */
.hero{position:relative}
.hero-values-eye{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:12px;
  background:rgba(255,255,255,.12);
  color:var(--hero-ink);
  display:grid;
  place-items:center;
  padding:0;
  z-index:3;
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}
.hero-values-eye svg{width:20px;height:20px}
.hero-values-eye:active{transform:scale(.94)}

/* v1.61 — hardening do tema claro e da tela de login */
html[data-theme="light"]{
  --bg:#f2f4f1;
  --bg-2:#e9ede8;
  --surface:#ffffff;
  --surface-2:#f1f4ef;
  --ink:#17211d;
  --ink-soft:#38443e;
  --muted:#5e6b64;
  --line:#e4e8e2;
  --line-strong:#d3dad2;
  --brand:#1c4a3f;
  --brand-2:#2a6355;
  --on-brand:#ffffff;
  --income:#1f9d63;
  --income-ink:#0d7a49;
  --income-soft:#e6f6ee;
  --expense:#d94f4f;
  --expense-ink:#b6382f;
  --expense-soft:#fdece9;
  --amber:#d98420;
  --amber-ink:#a6640f;
  --amber-soft:#fbefdb;
  --ring:#2a6355;
  --track:#e6ebe4;
  --hero-from:#1c4a3f;
  --hero-to:#123a30;
  --hero-ink:#f4f9f6;
  --auth-from:#153c33;
  --auth-to:#0e2b24;
  color-scheme:light;
}
.auth{
  background:
    radial-gradient(135% 130% at 50% -20%,#153c33,#0e2b24 72%) !important;
}
body[data-screen="auth"]{
  background:#0e2b24 !important;
}
.auth h1{color:#fff !important}
.auth > .auth-toggle{display:none !important}
.auth-card{
  background:#fff !important;
  color:#17211d !important;
}
.auth-card input,
.auth-card select,
.auth-card textarea{
  background:#fff;
  color:#17211d;
}


/* v1.66 — experiência de cartão: compra x pagamento */
.section-context{
  font-size:12px;
  color:var(--muted);
  font-weight:600;
  white-space:nowrap;
}
.card-invoice-helper{
  margin-top:10px;
  padding:12px 13px;
  border:1px solid rgba(42,99,85,.18);
  border-radius:14px;
  background:rgba(42,99,85,.07);
  color:var(--ink-soft);
}
.card-flow-title{
  font-size:14px;
  color:var(--ink);
  margin-bottom:4px;
}
.card-flow-sub{
  font-size:12px;
  line-height:1.45;
  color:var(--muted);
}
.invoice-pill{
  background:var(--amber-soft)!important;
  color:var(--amber-ink)!important;
  border-color:rgba(217,132,32,.15)!important;
}
.invoice-summary-card{padding:4px 16px}
.invoice-summary-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.invoice-summary-row:last-of-type{border-bottom:none}
.invoice-card-icon{
  width:38px;height:38px;border-radius:12px;
  display:grid;place-items:center;
  background:var(--surface-2);flex:0 0 auto;
}
.invoice-card-main{
  min-width:0;flex:1;
  display:flex;flex-direction:column;gap:3px;
}
.invoice-card-main strong{
  font-size:14px;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.invoice-card-main span{font-size:12px;color:var(--muted)}
.invoice-total{
  font-size:14px;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.invoice-summary-total{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 0 15px;
  font-size:13px;color:var(--muted);
}
.invoice-summary-total strong{font-size:16px;color:var(--ink)}
.empty-invoice-card{
  padding:16px;display:flex;gap:12px;align-items:center;
}
.empty-invoice-card .invoice-empty-icon{
  width:42px;height:42px;border-radius:13px;
  display:grid;place-items:center;background:var(--surface-2);
  flex:0 0 auto;
}
.empty-invoice-card div:last-child{
  display:flex;flex-direction:column;gap:3px;
}
.empty-invoice-card strong{font-size:14px;color:var(--ink)}
.empty-invoice-card span{
  font-size:12px;color:var(--muted);line-height:1.35;
}


/* v1.67 — subcategorias */
.home-cat-button{
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  font:inherit;
  color:inherit;
  cursor:pointer;
}
.home-cat-button:active{background:var(--surface-2)}
.home-cat-chevron{
  color:var(--muted);
  font-size:25px;
  line-height:1;
  margin-left:2px;
}
.subcategory-manager{
  margin:8px 0 18px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface-2);
}
.subcategory-manager-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:10px;
}
.subcategory-manager-head>div{display:flex;flex-direction:column;gap:2px}
.subcategory-manager-head strong{font-size:14px;color:var(--ink)}
.subcategory-manager-head span{font-size:12px;color:var(--muted)}
.mini-add-btn{
  border:1px solid var(--line-strong);
  background:var(--surface);
  color:var(--brand);
  border-radius:11px;
  padding:8px 10px;
  font-size:12px;
  font-weight:700;
}
.subcategory-manager-list{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface);
}
.subcategory-manage-row{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:11px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  text-align:left;
  color:var(--ink);
}
.subcategory-manage-row:last-child{border-bottom:0}
.subcategory-manage-row span{font-size:13px}
.subcategory-manage-row b{font-size:11px;color:var(--brand)}
.subcategory-manager-list.archived .subcategory-manage-row{opacity:.72}
.subcategory-archived-title{
  margin:12px 2px 6px;
  font-size:11px;
  font-weight:700;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.05em;
}
.subcategory-empty{
  padding:12px;
  font-size:12px;
  color:var(--muted);
}
.compact-sheet{max-width:430px}
.category-breakdown-sheet{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.subcategory-breakdown{
  margin:4px 0 18px;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}
.subcategory-break-row{
  display:flex;
  align-items:center;
  gap:14px;
  padding:13px 14px;
  border-bottom:1px solid var(--line);
}
.subcategory-break-row:last-child{border-bottom:0}
.subcategory-break-main{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.subcategory-break-main strong{font-size:14px;color:var(--ink)}
.subcategory-break-main span{font-size:11px;color:var(--muted)}
.subcategory-break-row>strong{font-size:13px;color:var(--ink)}
.subcategory-break-bar{
  height:4px;
  background:var(--track);
  border-radius:99px;
  overflow:hidden;
  margin-top:2px;
}
.subcategory-break-bar i{
  display:block;
  height:100%;
  border-radius:99px;
  background:var(--c,var(--brand));
}
.modal-section-title{margin-top:4px}

/* v1.68 — importação diária por print */
.import-entry-card{gap:14px}.import-open-btn{width:100%}.import-sheet{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
.import-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;padding:4px;background:var(--surface-2);border-radius:14px}
.import-type{border:0;background:transparent;color:var(--muted);padding:10px 8px;border-radius:11px;font-weight:700;font-size:13px}
.import-type.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-sm)}
.import-drop{min-height:132px;border:1.5px dashed var(--line-strong);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:18px;text-align:center;background:var(--surface-2)}
.import-drop-icon{font-size:25px;color:var(--brand)}.import-drop strong{font-size:14px;color:var(--ink)}.import-drop span:last-child{font-size:12px;color:var(--muted)}
.import-preview{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:14px}.import-preview img{width:58px;height:58px;object-fit:cover;border-radius:10px}
.import-preview>div{display:flex;flex-direction:column;gap:2px}.import-preview strong{font-size:13px}.import-preview span{font-size:11px;color:var(--muted)}
.import-info{display:flex;flex-direction:column;gap:4px;margin:4px 0 14px;padding:12px 13px;border-radius:14px;background:var(--surface-2)}.import-info strong{font-size:13px}.import-info span{font-size:12px;color:var(--muted)}
.import-review-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.import-review-head>div{display:flex;flex-direction:column;gap:3px}.import-review-head strong{font-size:17px}.import-review-head span{font-size:12px;color:var(--muted)}
.import-review-list{display:flex;flex-direction:column;gap:12px}.import-item{border:1px solid var(--line);border-radius:18px;padding:14px}.import-item-top{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}.import-check input{width:18px;height:18px}.import-item-title{flex:1;min-width:0;display:flex;flex-direction:column}.import-item-title strong{font-size:14px}.import-item-title span{font-size:11px;color:var(--muted)}.import-item-value{font-size:13px;white-space:nowrap}
.import-invoice-note{display:inline-flex;margin-top:2px;padding:6px 8px;border-radius:9px;background:var(--amber-soft);color:var(--amber-ink);font-size:11px;font-weight:700}
.import-review-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:10px;margin-top:16px}


/* v1.69 — navegação: Importar no cabeçalho + X em Ajustes */
.import-head-btn{
  font-size:19px;
  font-weight:800;
  line-height:1;
}
.settings-close-bar{
  position:sticky;
  top:0;
  z-index:18;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 2px 12px;
  margin:0 0 6px;
  background:linear-gradient(to bottom,var(--bg) 78%,rgba(242,244,241,0));
}
.settings-close-bar>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.settings-close-bar strong{
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-size:24px;
  line-height:1;
  color:var(--ink);
}
.settings-close-bar span{
  font-size:12px;
  color:var(--muted);
}
.settings-close-btn{
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--ink);
  display:grid;
  place-items:center;
  font-size:25px;
  line-height:1;
  box-shadow:var(--shadow-sm);
}
.settings-close-btn:active{
  transform:scale(.96);
}


/* v1.70 — lançamento por voz */
.voice-head-btn{font-size:17px;line-height:1}
.voice-sheet{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
.voice-orb-wrap{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:5px;padding:12px 8px 18px;
}
.voice-orb{
  width:76px;height:76px;border-radius:50%;border:0;
  display:grid;place-items:center;background:var(--brand);color:white;
  box-shadow:0 9px 26px rgba(28,74,63,.24);margin-bottom:7px;
}
.voice-orb span{font-size:30px}
.voice-orb.listening{
  animation:voicePulse 1.15s ease-in-out infinite;
  outline:8px solid rgba(28,74,63,.10);
}
@keyframes voicePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.voice-orb-wrap strong{font-size:17px;color:var(--ink)}
.voice-orb-wrap>span{font-size:12px;color:var(--muted);line-height:1.4;max-width:310px}
#voice-text{resize:none;min-height:96px}
.voice-examples{
  display:flex;flex-direction:column;gap:5px;
  margin:2px 0 15px;padding:12px 13px;border-radius:14px;background:var(--surface-2);
}
.voice-examples strong{font-size:12px;color:var(--ink);margin-bottom:2px}
.voice-examples span{font-size:11px;color:var(--muted);line-height:1.35}
.voice-prefill-note{
  display:inline-flex;margin-top:3px;padding:4px 7px;
  border-radius:8px;background:rgba(42,99,85,.09);
  color:var(--brand);font-size:11px;font-weight:700;
}

/* v1.71 — seta alinhada à direita */
.home-cat-button{display:flex;align-items:center;gap:12px}
.home-cat-main{flex:1 1 auto;min-width:0}
.home-cat-tail{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;margin-left:auto}
.home-cat-value{white-space:nowrap}
.home-cat-chevron{display:grid;place-items:center;width:18px;min-width:18px;height:28px;margin:0;line-height:1;align-self:center}

/* v1.72 — cabeçalho simplificado + puxar para atualizar */
.top-actions{display:flex;align-items:center;gap:10px}
.header-btn{width:48px;height:48px;display:grid;place-items:center}
.header-btn svg{width:23px;height:23px}
.voice-head-btn,.import-head-btn,.settings-head-btn{font-size:0}
.voice-head-btn{color:var(--brand)}
.import-head-btn,.settings-head-btn{color:var(--ink-soft)}

.pull-refresh{
  height:50px;
  margin-bottom:-50px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  opacity:0;
  transform:translateY(-50px);
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease;
  position:relative;
  z-index:8;
}
.pull-refresh.visible{opacity:1}
.pull-refresh-spinner{
  width:18px;height:18px;border:2px solid var(--line-strong);
  border-top-color:var(--brand);border-radius:50%;
}
.pull-refresh.ready .pull-refresh-spinner{border-color:var(--brand);border-top-color:transparent}
.pull-refresh.refreshing .pull-refresh-spinner{animation:pullSpin .72s linear infinite}
.pull-refresh.success .pull-refresh-spinner{border-color:var(--income)}
.pull-refresh-text{font-size:12px;font-weight:700;color:var(--muted)}
.pull-refresh.ready .pull-refresh-text,.pull-refresh.refreshing .pull-refresh-text{color:var(--brand)}
.pull-refresh.success .pull-refresh-text{color:var(--income)}
.page{transition:transform .18s ease;will-change:transform}
@keyframes pullSpin{to{transform:rotate(360deg)}}
@media(max-width:390px){.top-actions{gap:8px}.header-btn{width:44px;height:44px}}


/* v1.73 — importação: datas lidas pela IA + alinhamento Data/Valor */
.import-item .two-fields{
  align-items:start;
}
.import-item .two-fields > .field{
  margin:0;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.import-item .two-fields > .field > label{
  height:21px;
  display:flex;
  align-items:center;
  margin:0 0 7px;
}
.import-item [data-import-date],
.import-item [data-import-amount]{
  width:100%;
  height:48px;
  min-height:48px;
  box-sizing:border-box;
  margin:0;
  line-height:1.2;
}
.import-item [data-import-amount]{
  -webkit-appearance:none;
  appearance:none;
}
.import-item [data-import-amount]::-webkit-inner-spin-button,
.import-item [data-import-amount]::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}


/* v1.74 — voz com OpenAI */
.ai-voice-orb span{
  display:grid;
  place-items:center;
}
.ai-voice-orb span svg{
  width:31px;
  height:31px;
}
.voice-orb.processing{
  opacity:.75;
  animation:voiceProcessing 1.15s ease-in-out infinite;
}
@keyframes voiceProcessing{0%,100%{transform:scale(1)}50%{transform:scale(.94)}}
.voice-timer{
  margin-top:5px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(217,79,79,.09);
  color:var(--expense);
  font-size:12px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
}
.voice-ai-badge{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 13px;
  margin:0 0 12px;
  border:1px solid rgba(42,99,85,.14);
  border-radius:14px;
  background:rgba(42,99,85,.06);
}
.voice-ai-badge>span{
  width:28px;height:28px;border-radius:9px;
  display:grid;place-items:center;
  background:rgba(42,99,85,.10);
  color:var(--brand);
  flex:0 0 auto;
}
.voice-ai-badge>div{display:flex;flex-direction:column;gap:2px}
.voice-ai-badge strong{font-size:13px;color:var(--ink)}
.voice-ai-badge div span{font-size:11px;color:var(--muted);line-height:1.35}


/* v1.75 — modais estáveis, fundo travado e revisão de importação */
html.modal-open,
body.modal-open{
  overflow:hidden !important;
  overscroll-behavior:none;
}
body.modal-open{
  width:100%;
  height:100dvh;
}
.modal{
  overflow:hidden;
  overscroll-behavior:none;
}
.sheet{
  box-sizing:border-box;
  max-width:100vw;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y pinch-zoom;
}
.sheet form,
.sheet .field,
.sheet .two-fields,
.sheet .import-review-list,
.sheet .import-item{
  min-width:0;
  max-width:100%;
}
.sheet input,
.sheet select,
.sheet textarea{
  box-sizing:border-box;
  max-width:100%;
  font-size:16px; /* evita zoom automático do Safari ao focar */
}
.import-date-value-row{
  align-items:start !important;
}
.import-date-value-row>.field{
  display:flex;
  flex-direction:column;
  margin:0;
  min-width:0;
}
.import-date-value-row>.field>label{
  height:21px;
  margin:0 0 7px;
  display:flex;
  align-items:center;
}
.import-date-value-row input{
  display:block;
  width:100%;
  height:50px;
  min-height:50px;
  padding:0 12px;
  margin:0;
  line-height:normal;
  font-size:16px;
}
.import-date-value-row input[type="date"]{
  -webkit-appearance:none;
  appearance:none;
}
.import-date-value-row input[type="date"]::-webkit-date-and-time-value{
  text-align:left;
  min-height:1.2em;
}
.import-item.is-duplicate{
  border-color:color-mix(in srgb,var(--amber) 35%,var(--line));
  background:color-mix(in srgb,var(--amber-soft) 42%,var(--surface));
}
.import-duplicate-badge{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:4px;
  padding:4px 7px;
  border-radius:999px;
  background:var(--amber-soft);
  color:var(--amber-ink) !important;
  font-size:10px !important;
  font-weight:800;
}
.import-duplicate-summary{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:13px;
  background:var(--amber-soft);
  color:var(--amber-ink);
}
.import-duplicate-summary strong{font-size:12px}
.import-duplicate-summary span{font-size:11px;line-height:1.4}

@media(max-width:430px){
  .sheet{
    width:100%;
    padding-left:16px;
    padding-right:16px;
  }
  .import-date-value-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:8px;
  }
}


/* v1.77 — correção definitiva Data x Valor na revisão de importação */
.import-date-value-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:10px !important;
  align-items:start !important;
}
.import-date-value-row > .field{
  display:grid !important;
  grid-template-rows:22px 54px !important;
  align-content:start !important;
  gap:7px !important;
  margin:0 !important;
  min-width:0 !important;
}
.import-date-value-row > .field > label{
  height:22px !important;
  min-height:22px !important;
  max-height:22px !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  line-height:22px !important;
}
.import-date-value-row input[data-import-date],
.import-date-value-row input[data-import-amount]{
  display:block !important;
  width:100% !important;
  height:54px !important;
  min-height:54px !important;
  max-height:54px !important;
  margin:0 !important;
  padding:0 14px !important;
  border-radius:14px !important;
  box-sizing:border-box !important;
  font-size:16px !important;
  line-height:54px !important;
  vertical-align:middle !important;
}
.import-date-value-row input[data-import-date]{
  -webkit-appearance:none !important;
  appearance:none !important;
  text-align:left !important;
  white-space:nowrap !important;
}
.import-date-value-row input[data-import-date]::-webkit-date-and-time-value{
  display:flex !important;
  align-items:center !important;
  height:54px !important;
  min-height:54px !important;
  line-height:54px !important;
  padding:0 !important;
  margin:0 !important;
  text-align:left !important;
}
.import-date-value-row input[data-import-date]::-webkit-datetime-edit{
  display:flex !important;
  align-items:center !important;
  height:54px !important;
  line-height:54px !important;
  padding:0 !important;
}
.import-date-value-row input[data-import-date]::-webkit-calendar-picker-indicator{
  margin:0 !important;
  padding:0 !important;
}
.import-date-value-row input[data-import-amount]{
  text-align:left !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}


/* v1.78 — correção de abertura dos modais e estabilidade do rodapé */
body.modal-open #app{
  overflow:hidden !important;
  touch-action:none;
}
body.modal-open .bottom-nav{
  pointer-events:none;
}
.modal{
  position:fixed;
  inset:0;
  z-index:1000;
  overscroll-behavior:contain;
}
.modal .sheet{
  overscroll-behavior:contain;
  overflow-x:hidden !important;
}


/* v1.79 — importação por imagem + duplicidade por hash */
.import-image-field{
  margin-top:2px;
}
.import-drop{
  min-height:76px !important;
  display:grid !important;
  grid-template-columns:42px minmax(0,1fr) auto !important;
  align-items:center !important;
  justify-content:stretch !important;
  gap:11px !important;
  padding:12px 13px !important;
  text-align:left !important;
  border-style:solid !important;
  cursor:pointer;
}
.import-drop.has-file{
  border-color:color-mix(in srgb,var(--brand) 32%,var(--line));
  background:color-mix(in srgb,var(--brand) 5%,var(--surface));
}
.import-drop-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb,var(--brand) 9%,var(--surface));
  color:var(--brand);
  font-size:0 !important;
}
.import-drop-icon svg{
  width:22px;
  height:22px;
}
.import-drop-copy{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.import-drop-copy strong{
  font-size:13px !important;
  color:var(--ink);
}
.import-drop-copy span{
  font-size:11px !important;
  color:var(--muted);
  line-height:1.35;
}
.import-drop-action{
  font-size:11px !important;
  font-weight:800;
  color:var(--brand) !important;
  white-space:nowrap;
}
.import-preview{
  margin-top:8px !important;
  background:var(--surface);
}
.import-exact-duplicate{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:10px;
  padding:12px 13px;
  border-radius:14px;
  background:var(--amber-soft);
  color:var(--amber-ink);
}
.import-exact-duplicate strong{font-size:13px}
.import-exact-duplicate span{font-size:11px;line-height:1.45}


/* v1.80 — mesmo card de importação no desktop e no celular */
.import-image-field > label:first-child{
  display:block;
  margin-bottom:7px;
}
.import-drop{
  width:100% !important;
  min-height:78px !important;
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:11px !important;
  padding:12px 14px !important;
  border:1px solid var(--line-strong) !important;
  border-radius:16px !important;
  background:var(--surface2) !important;
  box-sizing:border-box !important;
  text-align:left !important;
}
.import-drop:hover{
  border-color:color-mix(in srgb,var(--brand) 32%,var(--line-strong)) !important;
}
.import-drop-icon{
  width:44px !important;
  height:44px !important;
  border-radius:12px !important;
  display:grid !important;
  place-items:center !important;
  background:color-mix(in srgb,var(--brand) 6%,white) !important;
  color:var(--brand) !important;
  flex:0 0 44px !important;
}
.import-drop-icon svg{
  width:23px !important;
  height:23px !important;
}
.import-drop-copy{
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:2px !important;
}
.import-drop-copy strong{
  display:block !important;
  font-size:14px !important;
  line-height:1.2 !important;
  color:var(--ink) !important;
  font-weight:800 !important;
}
.import-drop-copy span{
  display:block !important;
  font-size:11.5px !important;
  line-height:1.3 !important;
  color:var(--muted) !important;
}
.import-drop-action{
  align-self:center !important;
  justify-self:end !important;
  margin:0 !important;
  padding:0 !important;
  font-size:11.5px !important;
  line-height:1 !important;
  font-weight:800 !important;
  color:var(--brand) !important;
  white-space:nowrap !important;
}
.import-drop.has-file{
  background:color-mix(in srgb,var(--brand) 4%,var(--surface2)) !important;
  border-color:color-mix(in srgb,var(--brand) 34%,var(--line-strong)) !important;
}

@media(max-width:560px){
  .import-image-field{
    width:100% !important;
  }
  .import-drop{
    min-height:82px !important;
    grid-template-columns:42px minmax(0,1fr) auto !important;
    gap:10px !important;
    padding:11px 12px !important;
    border-radius:16px !important;
  }
  .import-drop-icon{
    width:42px !important;
    height:42px !important;
    border-radius:12px !important;
  }
  .import-drop-copy strong{
    font-size:13.5px !important;
  }
  .import-drop-copy span{
    font-size:11px !important;
    line-height:1.28 !important;
  }
  .import-drop-action{
    font-size:11px !important;
  }
}


/* v1.81 — controle administrativo de acesso */
.access-gate{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:24px;
  background:var(--bg);
}
.access-gate-card{
  max-width:430px;
  text-align:center;
  padding:28px 22px;
}
.access-gate-icon{
  width:58px;height:58px;border-radius:18px;
  margin:0 auto 14px;display:grid;place-items:center;
  background:var(--surface2);color:var(--brand);
  font-size:25px;font-weight:900;
}
.access-gate-card .eyebrow{color:var(--brand);font-weight:800;margin-bottom:5px}
.access-gate-card h1{font-size:26px;line-height:1.1;margin:0 0 10px}
.access-gate-card p{color:var(--muted);line-height:1.5;margin:0 0 18px}
.access-preserved{
  text-align:left;display:flex;flex-direction:column;gap:3px;
  padding:12px 13px;border-radius:14px;background:var(--surface2);margin-bottom:16px;
}
.access-preserved strong{font-size:12px}
.access-preserved span{font-size:11px;color:var(--muted);line-height:1.4}

.app-admin-intro{padding:16px}
.admin-summary{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.admin-summary span{padding:6px 9px;border-radius:999px;background:var(--surface2);font-size:10px;color:var(--muted)}
.admin-summary b{color:var(--ink)}
.app-admin-list{display:flex;flex-direction:column;gap:10px}
.admin-user-card{padding:14px}
.admin-user-top{display:flex;align-items:flex-start;gap:10px}
.admin-user-avatar{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:var(--surface2);color:var(--brand);font-weight:900;flex:0 0 auto;
}
.admin-user-main{display:flex;flex-direction:column;min-width:0;flex:1}
.admin-user-main strong{font-size:13px;color:var(--ink)}
.admin-user-main span{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.admin-user-main small{font-size:10px;color:var(--muted);margin-top:2px}
.admin-status{
  padding:5px 7px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap
}
.admin-status.active{background:rgba(31,157,99,.11);color:var(--income)}
.admin-status.pending{background:var(--amber-soft);color:var(--amber-ink)}
.admin-status.blocked,.admin-status.expired{background:rgba(217,79,79,.09);color:var(--expense)}
.admin-user-meta{display:flex;flex-wrap:wrap;gap:9px;margin:10px 0 8px;font-size:10px;color:var(--muted)}
.admin-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.admin-control-grid .field{margin:0}
.admin-control-grid input,.admin-control-grid select{height:44px;min-height:44px}
.admin-complimentary{
  display:flex;align-items:center;gap:7px;margin:10px 0;font-size:11px;color:var(--ink)
}
.admin-complimentary input{width:17px;height:17px}
.admin-card-actions{display:flex;gap:8px}
.admin-card-actions .secondary{flex:1}
.danger-mini{
  border:1px solid rgba(217,79,79,.2);background:rgba(217,79,79,.05);color:var(--expense);
  border-radius:12px;padding:0 11px;font-weight:800;font-size:11px
}
.admin-own-note{margin-top:10px;padding:10px 11px;border-radius:12px;background:var(--surface2);font-size:10px;color:var(--muted)}


/* v1.82 — administração escalável + cobrança */
.access-pay-box{
  display:flex;flex-direction:column;gap:10px;
  padding:14px;border-radius:16px;background:var(--surface2);margin:0 0 14px;text-align:left;
}
.access-pay-box>div{display:flex;align-items:end;justify-content:space-between;gap:10px}
.access-pay-box>div span{font-size:12px;color:var(--muted);font-weight:700}
.access-pay-box>div strong{font-size:20px;color:var(--ink)}
.access-pay-box>div small{font-size:10px;color:var(--muted);font-weight:600}
.access-pay-box .primary{width:100%}
.access-pay-box>small{font-size:10px;color:var(--muted);line-height:1.4;text-align:center}
.access-check-payment{border:0;background:transparent;color:var(--brand);font-weight:800;font-size:11px;padding:4px}

.admin-billing-card{padding:15px;margin-bottom:10px}
.admin-billing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.admin-provider-chip{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap}
.admin-provider-chip.ready{background:rgba(31,157,99,.11);color:var(--income)}
.admin-provider-chip.setup{background:var(--amber-soft);color:var(--amber-ink)}
.admin-billing-controls{display:grid;grid-template-columns:minmax(110px,160px) auto auto;align-items:end;gap:8px;margin-top:12px}
.admin-billing-controls .field{margin:0}
.admin-billing-controls input{height:43px;min-height:43px}
.admin-plan-toggle{height:43px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid var(--line);border-radius:12px;font-size:10.5px;font-weight:800;white-space:nowrap}
.admin-plan-toggle input{width:17px;height:17px}

.admin-filterbar{display:grid;grid-template-columns:minmax(0,1fr) 135px;gap:7px;margin-top:11px}
.admin-filterbar input,.admin-filterbar select{height:42px;min-height:42px;font-size:12px}
.admin-user-card.compact{padding:11px 12px}
.admin-user-card.compact .admin-user-top{align-items:center}
.admin-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.admin-pay-mini{font-size:8.5px;color:var(--muted);white-space:nowrap}
.admin-expand{
  width:31px;height:31px;border:0;border-radius:9px;background:var(--surface2);
  color:var(--muted);font-size:17px;display:grid;place-items:center;flex:0 0 auto
}
.admin-user-details{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.admin-detail-meta{display:flex;flex-wrap:wrap;gap:7px 13px;margin-bottom:10px;font-size:9.5px;color:var(--muted)}
.admin-detail-meta b{color:var(--ink)}
.compact-controls .field label span{font-weight:500;color:var(--muted);font-size:9px}
.admin-user-card.compact.expanded{border-color:color-mix(in srgb,var(--brand) 20%,var(--line))}
.admin-user-card.compact .admin-user-avatar{width:36px;height:36px;border-radius:11px}
.admin-user-card.compact .admin-user-main strong{font-size:12.5px}
.admin-user-card.compact .admin-user-main span{font-size:10px}
.admin-user-card.compact .admin-user-main small{font-size:9px}
.admin-user-card.compact .admin-status{font-size:8.5px;padding:4px 6px}

@media(max-width:560px){
  .admin-billing-head{flex-direction:column}
  .admin-billing-controls{grid-template-columns:1fr 1fr}
  .admin-billing-controls .secondary{grid-column:1/-1}
  .admin-filterbar{grid-template-columns:1fr 116px}
  .admin-user-top{gap:7px}
  .admin-user-main small{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .admin-row-right{max-width:82px}
  .admin-status{max-width:82px;overflow:hidden;text-overflow:ellipsis}
}


/* v1.85 — documentos legais e aceite */
.legal-check{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 13px;border:1px solid var(--line,#dde3df);border-radius:14px;
  background:var(--surface2,#f1f4ef);font-size:13px;line-height:1.45;color:var(--ink,#17211d);
}
.legal-check input{margin-top:3px;min-width:18px;width:18px;height:18px;accent-color:var(--brand,#1c4a3f)}
.legal-check button,.legal-links button{
  border:0;background:none;padding:0;color:var(--brand,#1c4a3f);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer
}
.legal-links{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;font-size:12px;color:var(--muted,#5e6b64)}
.legal-links.compact{margin-top:12px}
.billing-disclosure{font-size:12px;line-height:1.4;color:var(--muted,#5e6b64);margin:-2px 0 4px}
.billing-legal-check{margin:4px 0 2px}
.access-pay-box .primary:disabled{opacity:.48;cursor:not-allowed}
.legal-modal{z-index:9999}
.legal-sheet{max-height:min(88dvh,780px);display:flex;flex-direction:column}
.legal-content{padding:2px 18px 18px;overflow:auto;-webkit-overflow-scrolling:touch}
.legal-content h2{font-size:22px;margin:4px 0 2px}
.legal-content h3{font-size:15px;margin:18px 0 6px}
.legal-content p{font-size:13px;line-height:1.55;margin:0;color:var(--ink,#17211d)}
.legal-content .legal-version{color:var(--muted,#5e6b64);font-size:12px;margin-bottom:14px}
.legal-modal-actions{padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line,#dde3df)}
.legal-modal-actions .primary{width:100%}
.legal-settings-actions{display:grid;gap:9px;margin-top:10px}
.legal-settings-actions .secondary{width:100%;text-align:left}
.legal-note{font-size:12px;line-height:1.4;color:var(--muted,#5e6b64);margin-top:10px}


/* v1.88 — análise mensal com IA */
.ai-monthly-card{padding:18px}
.ai-monthly-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.ai-kicker{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--brand);margin-bottom:4px}
.ai-monthly-head h3{margin:0;font-size:19px;letter-spacing:-.02em}
.ai-spark{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand);font-size:21px;flex:0 0 38px}
.ai-monthly-intro,.ai-summary{font-size:13px;line-height:1.55;color:var(--muted);margin:12px 0 15px}
.ai-summary{color:var(--ink);font-size:14px}
.ai-generate-btn{width:100%;margin-top:2px}
.ai-privacy-note{font-size:10.5px;line-height:1.45;color:var(--muted);margin-top:11px}
.ai-analysis-block{margin-top:13px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,var(--bg))}
.ai-analysis-block strong{display:block;font-size:13px;margin-bottom:7px}
.ai-analysis-block p{margin:6px 0;font-size:12.5px;line-height:1.48}
.ai-analysis-block ol{margin:7px 0 0;padding-left:20px}
.ai-analysis-block li{margin:7px 0;font-size:12.5px;line-height:1.48}
.ai-analysis-block.good strong{color:var(--positive)}
.ai-analysis-block.attention strong{color:var(--negative)}
.ai-analysis-block.actions strong{color:var(--brand)}
.ai-data-note{font-size:11px;line-height:1.45;color:var(--muted);margin-top:12px}
.ai-monthly-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}
.ai-monthly-foot span{font-size:10.5px;color:var(--muted)}
.ai-regenerate-btn{white-space:nowrap;padding:9px 12px}

/* Evita shimmer/subpixel do + central durante rolagem no iOS PWA. */
.nav-fab{backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translate3d(0,-12px,0)}
.nav-fab:active{transform:translate3d(0,-12px,0) scale(.93)}
.nav-fab.open{transform:translate3d(0,-12px,0) rotate(45deg)}
.nav-fab svg{display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden}


/* v1.89 — planos, IA e controle de custo */
.header-btn.ai-locked{opacity:.6;position:relative}
.header-btn.ai-locked::after{content:'';position:absolute;top:-4px;right:-4px;width:15px;height:15px;border-radius:50%;border:1px solid var(--line);box-shadow:var(--shadow-sm);background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C8FA3' stroke-width='2.6' stroke-linecap='round'><rect x='5' y='10.5' width='14' height='9.5' rx='2.5'/><path d='M8 10.5V8a4 4 0 0 1 8 0v2.5'/></svg>") center/8px 8px no-repeat}
.ai-plan-lock{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--surface) 94%,var(--bg))}
.ai-plan-lock strong{font-size:13px;color:var(--ink)}
.ai-plan-lock span{font-size:11.5px;line-height:1.45;color:var(--muted)}
.ai-quota-note{font-size:10.5px;color:var(--muted);text-align:center;margin-top:8px}
.ai-plan-mini-lock{font-size:10.5px;color:var(--muted);font-weight:700}
.admin-ai-card{padding:16px}
.admin-ai-grid{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.admin-ai-row{display:grid;grid-template-columns:minmax(0,1fr) auto 92px;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--surface) 95%,var(--bg))}
.admin-ai-row>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-ai-row>div:first-child strong{font-size:12.5px}
.admin-ai-row>div:first-child span{font-size:10.5px;color:var(--muted)}
.admin-ai-row .field{margin:0}.admin-ai-row .field label{font-size:9px}.admin-ai-row .field input{min-height:38px;padding:8px 9px}
.admin-ai-usage{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}
.admin-ai-usage span{font-size:10.5px;padding:7px 9px;border-radius:999px;background:var(--bg);color:var(--muted)}
.admin-ai-usage b{color:var(--ink)}
@media(max-width:520px){.admin-ai-row{grid-template-columns:minmax(0,1fr) auto}.admin-ai-row .field{grid-column:1/-1}.admin-ai-row .field input{width:100%}}


/* v1.90 — planos Free/Pro e reajuste de mensalidade */
.auth-plans-preview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 2px}
.auth-plan-card{padding:13px;border:1px solid var(--line);border-radius:17px;background:var(--surface);display:flex;flex-direction:column;gap:5px}
.auth-plan-card.pro{border-color:color-mix(in srgb,var(--brand) 26%,var(--line));background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.auth-plan-card .plan-badge{font-size:9px;letter-spacing:.12em;font-weight:900;color:var(--muted)}
.auth-plan-card.pro .plan-badge{color:var(--brand)}
.auth-plan-card strong{font-size:13px}.auth-plan-card span{font-size:10.5px;line-height:1.4;color:var(--muted)}
.auth-plan-card b{font-size:15px;margin-top:3px}.auth-plan-card b small{font-size:9px;color:var(--muted);font-weight:600}
.plan-gate-wrap{max-width:720px;background:transparent;box-shadow:none;border:0;padding-left:0;padding-right:0}
.plan-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}
.plan-choice-card{background:var(--surface);border:1px solid var(--line);border-radius:21px;padding:17px;text-align:left;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.plan-choice-card.pro{border-color:color-mix(in srgb,var(--brand) 26%,var(--line));box-shadow:0 12px 34px color-mix(in srgb,var(--brand) 8%,transparent)}
.plan-choice-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.plan-choice-top>div{display:flex;flex-direction:column;gap:4px}
.plan-choice-badge{font-size:9px;letter-spacing:.12em;font-weight:900;color:var(--muted)}.plan-choice-card.pro .plan-choice-badge{color:var(--brand)}
.plan-choice-top strong{font-size:18px}.plan-choice-top b{font-size:16px}.plan-choice-top b small{font-size:9px;color:var(--muted)}
.plan-choice-card ul{margin:14px 0;padding-left:18px}.plan-choice-card li{font-size:12px;line-height:1.5;margin:6px 0;color:var(--muted)}
.plan-free-btn{width:100%;margin-top:8px}.plan-choice-card .billing-legal-check{margin-top:12px}.plan-choice-card .primary{width:100%}
.admin-price-scope{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--bg)}
.admin-price-scope>strong{font-size:11.5px}.admin-price-scope label{display:flex;gap:9px;align-items:flex-start;cursor:pointer}
.admin-price-scope label span{display:flex;flex-direction:column;gap:2px}.admin-price-scope b{font-size:11.5px}.admin-price-scope small{font-size:10px;line-height:1.35;color:var(--muted)}
.billing-notice-sheet{padding:20px}.billing-notice-sheet h2{margin:2px 0 0}.billing-notice-sheet p{font-size:13px;line-height:1.55;color:var(--muted)}
.billing-notice-effective{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:var(--bg);margin:14px 0}
.billing-notice-effective span{font-size:11px;color:var(--muted)}.billing-notice-effective strong{font-size:13px}.billing-notice-note{font-size:11.5px!important}
.billing-notice-sheet .primary{width:100%;margin-top:10px}
@media(max-width:620px){.auth-plans-preview,.plan-choice-grid{grid-template-columns:1fr}.plan-gate-wrap{padding:18px}.plan-choice-card{padding:16px}}


/* v1.91 — Meu plano */
.my-plan-card{padding:16px;margin-bottom:12px}
.my-plan-current{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding:14px;border:1px solid var(--line);border-radius:17px;background:var(--bg)}
.my-plan-current.pro{border-color:color-mix(in srgb,var(--brand) 25%,var(--line));background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.my-plan-current>div{display:flex;flex-direction:column;gap:3px}
.my-plan-badge{font-size:9px;letter-spacing:.12em;font-weight:900;color:var(--muted)}
.my-plan-current.pro .my-plan-badge{color:var(--brand)}
.my-plan-current strong{font-size:15px}.my-plan-current>b{font-size:15px}
.my-plan-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.my-plan-details>span{padding:10px;border:1px solid var(--line);border-radius:13px;display:flex;flex-direction:column;gap:3px}
.my-plan-details small{font-size:9px;color:var(--muted)}.my-plan-details strong{font-size:11px}
.my-plan-benefits{display:flex;flex-direction:column;gap:6px;font-size:11.5px;color:var(--muted);margin:12px 0}
.my-plan-actions{display:flex;gap:8px;margin-top:12px}.my-plan-actions>*{flex:1}
.plan-upgrade-main{width:100%;margin-top:12px}
.my-plan-note,.my-plan-help{font-size:10.5px;line-height:1.45;color:var(--muted);margin-top:10px}
.danger-outline{border:1px solid color-mix(in srgb,var(--negative) 45%,var(--line));background:transparent;color:var(--negative);border-radius:12px;padding:10px 12px;font-weight:700}
.plan-upgrade-sheet p,.cancel-plan-sheet p{font-size:13px;line-height:1.55;color:var(--muted)}
.upgrade-price{display:flex;align-items:flex-end;gap:5px;margin:15px 0}.upgrade-price strong{font-size:24px}.upgrade-price span{font-size:11px;color:var(--muted);margin-bottom:3px}
.plan-upgrade-sheet .primary,.cancel-plan-sheet .danger,.cancel-plan-sheet .secondary{width:100%;margin-top:10px}
@media(max-width:520px){.my-plan-details{grid-template-columns:1fr}.my-plan-actions{flex-direction:column}}


/* v1.92 — ajuste visual do campo "Acesso até" em Usuários do app */
.admin-control-grid.compact-controls{
  grid-template-columns:minmax(0,1fr) minmax(160px,190px);
  align-items:end;
}
.admin-control-grid.compact-controls .admin-access-until{
  max-width:190px;
  justify-self:end;
  width:100%;
}
.admin-control-grid.compact-controls .admin-access-until input[type="date"]{
  width:100%;
  min-height:48px;
  padding:10px 12px;
  font-size:14px;
  border-radius:14px;
}
.admin-control-grid.compact-controls [data-admin-plan]{
  min-height:48px;
}
@media(max-width:520px){
  .admin-control-grid.compact-controls{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .admin-control-grid.compact-controls .admin-access-until{
    max-width:none;
    justify-self:stretch;
  }
  .admin-control-grid.compact-controls .admin-access-until input[type="date"]{
    font-size:13px;
  }
  .admin-control-grid.compact-controls .field:has([data-admin-plan]){
    grid-column:1/-1;
  }
}


/* v1.93 — correção definitiva do campo "Acesso até" no mobile */
.admin-control-grid.compact-controls{
  min-width:0;
}
.admin-control-grid.compact-controls > .field{
  min-width:0;
}
.admin-control-grid.compact-controls .admin-access-until{
  min-width:0;
  max-width:100%;
  width:100%;
  justify-self:stretch;
}
.admin-control-grid.compact-controls .admin-access-until input[type="date"]{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  overflow:hidden;
}
.admin-control-grid.compact-controls .admin-access-until input[type="date"]::-webkit-date-and-time-value{
  text-align:left;
  min-width:0;
}

@media(max-width:620px){
  .admin-control-grid.compact-controls{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
  }

  .admin-control-grid.compact-controls > .field{
    grid-column:1 / -1;
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .admin-control-grid.compact-controls .admin-access-until{
    grid-column:1 / -1;
    max-width:100%;
    width:100%;
    min-width:0;
  }

  .admin-control-grid.compact-controls .admin-access-until input[type="date"]{
    width:100%;
    max-width:100%;
    min-width:0;
    font-size:14px;
    padding:10px 12px;
  }
}


/* v1.94 — excluir categoria com proteção de histórico */
.category-danger-zone{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.category-danger-zone .category-archive-btn,
.category-danger-zone .category-delete-btn{
  width:100%;
}
.category-delete-confirm{
  grid-column:1/-1;
}
.category-delete-confirm strong{
  color:var(--negative);
}
.danger-confirm{
  background:var(--negative)!important;
  color:#fff!important;
  border-color:var(--negative)!important;
}
.category-delete-blocked{
  grid-column:1/-1;
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:12px 13px;
  border:1px solid color-mix(in srgb,var(--negative) 25%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--negative) 4%,var(--surface));
}
.category-delete-blocked strong{
  font-size:12.5px;
  color:var(--negative);
}
.category-delete-blocked span{
  font-size:11.5px;
  line-height:1.45;
  color:var(--muted);
}
.category-delete-blocked button{
  margin-top:3px;
}
@media(max-width:520px){
  .category-danger-zone{
    grid-template-columns:1fr;
  }
  .category-delete-confirm,
  .category-delete-blocked{
    grid-column:1;
  }
}


/* v1.97 — análise de IA como ação no relatório */
.report-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.ai-report-trigger{
  appearance:none;
  -webkit-appearance:none;
  width:44px;
  height:44px;
  padding:2px;
  border:0;
  background:transparent;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex:0 0 44px;
  transition:transform .16s ease, background .16s ease, box-shadow .16s ease;
}
.ai-report-trigger svg{
  width:42px;
  height:42px;
  display:block;
}
.ai-report-trigger:active{
  transform:scale(.94);
}
.ai-report-trigger:hover{
  background:rgba(139,53,232,.06);
  box-shadow:0 4px 16px rgba(139,53,232,.10);
}
.ai-report-trigger.is-locked{
  opacity:.64;
}
.ai-report-sheet{
  max-width:560px;
}
.ai-report-modal-head{
  align-items:flex-start;
}
.ai-report-modal-title{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.ai-report-modal-icon{
  width:48px;
  height:48px;
  flex:0 0 48px;
  display:inline-flex;
}
.ai-report-modal-icon svg{
  width:48px;
  height:48px;
}
.ai-report-modal-title h2{
  margin:2px 0 0;
}
.ai-report-modal-title small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
}
#ai-monthly-modal-content{
  margin-top:12px;
}
#ai-monthly-modal-content .ai-monthly-card{
  margin:0;
  box-shadow:none;
}
.ai-monthly-loading{
  min-height:130px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:var(--muted);
  text-align:center;
}
.ai-loading-spark{
  font-size:28px;
  line-height:1;
  background:linear-gradient(135deg,#087ddd,#8f35e8,#ff149d);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  animation:aiReportPulse 1.25s ease-in-out infinite;
}
.ai-upgrade-from-report{
  width:100%;
  margin-top:12px;
}
@keyframes aiReportPulse{
  0%,100%{transform:scale(.92);opacity:.6}
  50%{transform:scale(1.08);opacity:1}
}
@media(max-width:520px){
  .section-title .report-head-actions{
    gap:5px;
  }
  .ai-report-trigger{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
  .ai-report-trigger svg{
    width:38px;
    height:38px;
  }
  .report-head-actions .export-btn{
    padding-left:10px;
    padding-right:10px;
  }
}


/* v1.98 — Administração separada de Ajustes */
.admin-head-btn{
  color:var(--brand);
  background:color-mix(in srgb,var(--brand) 6%,var(--surface));
  border-color:color-mix(in srgb,var(--brand) 18%,var(--line));
}
.admin-head-btn svg{
  width:21px;
  height:21px;
}
.admin-close-bar{
  margin-bottom:10px;
}
.admin-area-card{
  margin-bottom:0;
}
.admin-area-card + .app-admin-list{
  margin-top:10px;
}
.section-title .sec-ic svg{
  width:19px;
  height:19px;
}
.section-title .sec-ic > svg{
  display:block;
}
@media(max-width:390px){
  .top-actions{
    gap:6px;
  }
  .admin-head-btn,
  .settings-head-btn{
    width:42px;
    height:42px;
  }
}


/* v1.99 — ícone de Orçamento baseado no anexo */
.budget-nav-mask{
  display:block;
  width:26px;
  height:26px;
  background:currentColor;
  -webkit-mask:url('/assets/budget-pencil.png') center / contain no-repeat;
  mask:url('/assets/budget-pencil.png') center / contain no-repeat;
}
body[data-screen="app"] .bottom-nav .nav-btn .budget-nav-mask{
  width:25px;
  height:25px;
}
@media (min-width:1000px){
  .nav-btn .budget-nav-mask{
    width:24px;
    height:24px;
  }
}


/* v1.101 — relatório mensal mais completo e melhor hierarquia */
.report-head-actions{
  display:flex;
  align-items:center;
  gap:7px;
}
.report-action-btn{
  appearance:none;
  -webkit-appearance:none;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:14px;
  display:inline-grid;
  place-items:center;
  padding:0;
  cursor:pointer;
  transition:transform .14s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.report-action-btn:active{
  transform:scale(.93);
}
.report-export-trigger{
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--brand);
  box-shadow:var(--shadow-sm);
}
.report-export-trigger svg{
  width:20px;
  height:20px;
}
.report-action-btn.ai-report-trigger{
  width:42px;
  height:42px;
  flex-basis:42px;
  border:1px solid color-mix(in srgb,#8c35e8 16%,var(--line));
  background:var(--surface);
  padding:2px;
  border-radius:14px;
}
.report-action-btn.ai-report-trigger svg{
  width:37px;
  height:37px;
}
.report-card .legend{
  gap:10px;
}
.report-card .legend li{
  align-items:center;
  min-height:34px;
}
.report-card .legend .lg-name{
  font-size:12.5px;
}
.report-card .legend .lg-val{
  min-width:92px;
  align-items:flex-end;
  text-align:right;
  line-height:1.15;
  gap:3px;
}
.report-card .legend .lg-val b{
  display:block;
  font-size:12.5px;
  color:var(--ink);
  font-weight:800;
  white-space:nowrap;
}
.report-card .legend .lg-val small{
  display:block;
  font-size:9.5px;
  color:var(--muted);
  font-weight:650;
  white-space:nowrap;
}
.report-all-cats-btn{
  width:100%;
  margin-top:14px;
  padding:11px 12px 2px;
  border:0;
  border-top:1px solid var(--line);
  background:transparent;
  color:var(--brand);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:12px;
  font-weight:800;
}
.report-all-cats-btn span{
  font-size:20px;
  line-height:1;
}
.report-categories-sheet{
  max-width:520px;
}
.report-categories-list{
  margin-top:10px;
  border-top:1px solid var(--line);
}
.report-category-row{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  color:inherit;
  display:grid;
  grid-template-columns:24px 38px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:12px 2px;
  text-align:left;
}
.report-category-row:active{
  background:var(--surface-2);
}
.report-category-rank{
  font-size:10px;
  color:var(--muted);
  text-align:center;
  font-weight:800;
}
.report-category-icon{
  width:36px;
  height:36px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb,var(--c,#8C8FA3) 13%,var(--surface));
  font-size:16px;
}
.report-category-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:7px;
}
.report-category-main strong{
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.report-category-main>span{
  height:5px;
  background:var(--track);
  border-radius:999px;
  overflow:hidden;
}
.report-category-main i{
  display:block;
  height:100%;
  border-radius:999px;
  background:var(--c,#8C8FA3);
}
.report-category-value{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  font-variant-numeric:tabular-nums;
}
.report-category-value strong{
  font-size:12.5px;
  white-space:nowrap;
}
.report-category-value small{
  font-size:10px;
  color:var(--muted);
  font-weight:700;
}
.report-categories-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 2px 2px;
}
.report-categories-total span{
  font-size:12px;
  color:var(--muted);
  font-weight:650;
}
.report-categories-total strong{
  font-size:15px;
  font-weight:850;
}

@media(max-width:520px){
  .section-title{
    gap:8px;
  }
  .section-title .sec-toggle{
    min-width:0;
  }
  .section-title .sec-toggle h2{
    white-space:nowrap;
  }
  .report-head-actions{
    gap:5px;
  }
  .report-action-btn,
  .report-action-btn.ai-report-trigger{
    width:39px;
    height:39px;
    flex-basis:39px;
    border-radius:13px;
  }
  .report-action-btn.ai-report-trigger svg{
    width:34px;
    height:34px;
  }
  .report-export-trigger svg{
    width:19px;
    height:19px;
  }
  .report-top{
    align-items:flex-start;
    gap:12px;
  }
  .donut{
    width:104px;
    height:104px;
  }
  .report-card .legend .lg-val{
    min-width:84px;
  }
  .report-card .legend .lg-val b{
    font-size:11.5px;
  }
  .report-card .legend .lg-val small{
    font-size:9px;
  }
}
@media(max-width:390px){
  .report-card{
    padding:14px;
  }
  .report-top{
    gap:9px;
  }
  .donut{
    width:92px;
    height:92px;
  }
  .report-card .legend{
    gap:8px;
  }
  .report-card .legend li{
    gap:6px;
  }
  .report-card .legend .dot{
    width:8px;
    height:8px;
  }
  .report-card .legend .lg-name{
    font-size:11.5px;
  }
  .report-card .legend .lg-val{
    min-width:74px;
  }
  .report-card .legend .lg-val b{
    font-size:10.5px;
  }
  .report-card .legend .lg-val small{
    font-size:8.5px;
  }
}


/* v1.103 — Planos em botão no login */
.login-heading-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:2px;
}
.login-heading-row .login-heading{
  margin:0;
}
.auth-plans-btn{
  border:1px solid var(--line);
  background:var(--surface-2);
  color:var(--brand);
  border-radius:12px;
  padding:8px 12px;
  font-size:12px;
  font-weight:800;
  flex:0 0 auto;
}
.auth-plans-btn:active{
  transform:scale(.96);
}
.auth-plans-sheet{
  max-width:560px;
}
.auth-plans-intro{
  margin:4px 0 14px;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.5;
}
.auth-plans-modal-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.auth-plans-modal-grid .auth-plan-card{
  margin:0;
  min-width:0;
}
.auth-plans-modal-grid .auth-plan-card ul{
  margin:12px 0 0;
  padding-left:18px;
  display:flex;
  flex-direction:column;
  gap:6px;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
.auth-plans-create{
  width:100%;
  margin-top:14px;
}
.auth-plans-note{
  display:block;
  margin-top:8px;
  text-align:center;
  color:var(--muted);
  font-size:10.5px;
  line-height:1.4;
}
@media(max-width:520px){
  .auth-plans-modal-grid{
    grid-template-columns:1fr;
  }
  .auth-plans-sheet{
    max-height:min(82dvh,720px);
  }
}


/* v1.104 — pull-to-refresh visível e sem "travada" */
.pull-refresh{
  --pull-y:0px;
  --pull-scale:.94;
}

@media(max-width:699px){
  body[data-screen="app"] .pull-refresh{
    position:fixed;
    top:calc(var(--mobile-topbar-h,104px) + 8px);
    left:50%;
    z-index:36;
    width:max-content;
    max-width:calc(100vw - 32px);
    height:auto;
    min-height:38px;
    margin:0;
    padding:8px 13px;
    border:1px solid var(--line);
    border-radius:999px;
    background:color-mix(in srgb,var(--surface) 96%,transparent);
    box-shadow:0 8px 24px rgba(0,0,0,.13);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    opacity:0;
    transform:translate(-50%,calc(-18px + var(--pull-y))) scale(var(--pull-scale));
    pointer-events:none;
    transition:opacity .14s ease,transform .16s ease;
  }

  body[data-screen="app"] .pull-refresh.visible{
    opacity:1;
  }

  body[data-screen="app"] .pull-refresh-spinner{
    width:20px;
    height:20px;
    flex:0 0 20px;
    box-sizing:border-box;
    border:2.5px solid color-mix(in srgb,var(--brand) 24%,var(--line-strong));
    border-top-color:var(--brand);
    border-radius:50%;
    transition:border-color .15s ease;
  }

  body[data-screen="app"] .pull-refresh.ready .pull-refresh-spinner{
    border-color:var(--brand);
    border-right-color:transparent;
  }

  body[data-screen="app"] .pull-refresh.refreshing .pull-refresh-spinner{
    border-color:color-mix(in srgb,var(--brand) 24%,var(--line-strong));
    border-top-color:var(--brand);
    animation:pullSpin .68s linear infinite;
  }

  body[data-screen="app"] .pull-refresh.success .pull-refresh-spinner{
    border-color:var(--income);
    animation:none;
    position:relative;
  }

  body[data-screen="app"] .pull-refresh.success .pull-refresh-spinner:after{
    content:"";
    position:absolute;
    left:5px;
    top:2px;
    width:5px;
    height:9px;
    border-right:2px solid var(--income);
    border-bottom:2px solid var(--income);
    transform:rotate(42deg);
  }

  body[data-screen="app"] .pull-refresh-text{
    font-size:12px;
    font-weight:800;
    color:var(--ink-soft);
    white-space:nowrap;
  }

  body[data-screen="app"] .pull-refresh.ready .pull-refresh-text,
  body[data-screen="app"] .pull-refresh.refreshing .pull-refresh-text{
    color:var(--brand);
  }

  body[data-screen="app"] .pull-refresh.success .pull-refresh-text{
    color:var(--income);
  }

  /* O conteúdo não é mais deslocado durante o gesto. */
  body[data-screen="app"] .page{
    will-change:auto;
  }
}


/* v1.105 — proteção de cancelamento antes da exclusão da conta */
.delete-account-sheet{
  max-width:500px;
}
.delete-subscription-protection{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:12px 0 16px;
  padding:12px 13px;
  border:1px solid color-mix(in srgb,var(--income) 24%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--income) 6%,var(--surface));
}
.delete-protection-icon{
  width:27px;
  height:27px;
  flex:0 0 27px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb,var(--income) 14%,var(--surface));
  color:var(--income-ink);
  font-weight:900;
}
.delete-subscription-protection>div{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.delete-subscription-protection strong{
  font-size:12.5px;
  color:var(--ink);
}
.delete-subscription-protection span{
  font-size:11px;
  line-height:1.45;
  color:var(--muted);
}


/* v1.106 — cobrança Mercado Pago: ambiente e histórico */
.admin-provider-chip.test{
  background:color-mix(in srgb,#d98420 12%,var(--surface));
  color:#9a5b12;
  border-color:color-mix(in srgb,#d98420 25%,var(--line));
}
.admin-payment-environment{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:12px 0 4px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface-2);
}
.admin-payment-environment strong{
  font-size:12.5px;
}
.admin-payment-environment span{
  font-size:11px;
  line-height:1.42;
  color:var(--muted);
}
.admin-payment-environment.production{
  border-color:color-mix(in srgb,var(--income) 27%,var(--line));
  background:color-mix(in srgb,var(--income) 6%,var(--surface));
}
.admin-payment-environment.production strong{
  color:var(--income-ink);
}
.admin-payment-environment.test{
  border-color:color-mix(in srgb,#d98420 30%,var(--line));
  background:color-mix(in srgb,#d98420 7%,var(--surface));
}
.admin-payment-environment.test strong{
  color:#9a5b12;
}
.admin-payment-environment.setup{
  border-color:color-mix(in srgb,var(--negative) 22%,var(--line));
}
.admin-billing-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.admin-sync-payments{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}
.admin-sync-payments svg{
  width:16px;
  height:16px;
}
.admin-recent-payments-wrap{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.admin-recent-payments-head{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-bottom:8px;
}
.admin-recent-payments-head strong{
  font-size:13px;
}
.admin-recent-payments-head span{
  font-size:10.5px;
  color:var(--muted);
}
.admin-recent-payments{
  display:flex;
  flex-direction:column;
}
.admin-payment-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.admin-payment-row:last-child{
  border-bottom:0;
}
.admin-payment-main{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.admin-payment-main strong{
  font-size:12.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-payment-main span{
  font-size:9.5px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-payment-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  flex:0 0 auto;
}
.admin-payment-right>strong{
  font-size:12.5px;
  font-variant-numeric:tabular-nums;
}
.admin-payment-status{
  font-size:9px;
  font-weight:800;
  padding:3px 6px;
  border-radius:999px;
  background:var(--surface-2);
  color:var(--muted);
}
.admin-payment-status.approved{
  background:color-mix(in srgb,var(--income) 10%,var(--surface));
  color:var(--income-ink);
}
.admin-payment-status.pending{
  background:color-mix(in srgb,#d98420 10%,var(--surface));
  color:#9a5b12;
}
.admin-payment-status.failed{
  background:color-mix(in srgb,var(--negative) 8%,var(--surface));
  color:var(--negative);
}
.admin-payment-empty{
  padding:12px 0 4px;
  font-size:11px;
  color:var(--muted);
  line-height:1.45;
}
@media(max-width:420px){
  .admin-billing-actions{
    grid-template-columns:1fr;
  }
}


/* v1.107 — cancelamento administrativo + fechamento dos documentos legais */
.legal-sheet{
  position:relative;
}
.legal-sheet-head{
  position:relative;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  min-height:54px;
  padding:14px 58px 12px 18px;
  border-bottom:1px solid var(--line,#dde3df);
  background:var(--surface,#fff);
}
.legal-sheet-head>strong{
  font-size:15px;
  font-weight:850;
  color:var(--ink,#17211d);
}
.legal-sheet .legal-close{
  position:absolute;
  top:10px;
  right:12px;
  z-index:5;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid var(--line,#dde3df);
  border-radius:11px;
  background:var(--surface,#fff);
  color:var(--ink-soft,#34443d);
  display:grid;
  place-items:center;
  font-size:24px;
  line-height:1;
  font-weight:400;
  box-shadow:var(--shadow-sm);
}
.legal-sheet .legal-close:active{
  transform:scale(.93);
}
.admin-card-actions{
  flex-wrap:wrap;
}
.admin-card-actions .secondary{
  min-width:120px;
}
.cancel-subscription-mini{
  min-height:38px;
  border:1px solid color-mix(in srgb,#d98420 30%,var(--line));
  background:color-mix(in srgb,#d98420 7%,var(--surface));
  color:#9a5b12;
  border-radius:12px;
  padding:0 11px;
  font-weight:800;
  font-size:11px;
  flex:1 1 142px;
}
.cancel-subscription-mini:disabled{
  opacity:.58;
}
.admin-card-actions .danger-mini{
  min-height:38px;
  flex:0 1 auto;
}
@media(max-width:420px){
  .admin-card-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .admin-card-actions .secondary,
  .cancel-subscription-mini,
  .admin-card-actions .danger-mini{
    width:100%;
    min-height:41px;
  }
  .legal-sheet-head{
    padding-top:14px;
    padding-right:58px;
  }
}


/* v1.108 — campo "Acesso até" compacto */
.admin-control-grid.compact-controls .admin-access-until{
  width:210px;
  max-width:210px;
  min-width:0;
  justify-self:start;
  align-self:end;
}
.admin-control-grid.compact-controls .admin-access-until input[type="date"]{
  display:block;
  width:210px;
  max-width:210px;
  min-width:0;
  height:48px !important;
  min-height:48px !important;
  max-height:48px !important;
  padding:0 12px !important;
  line-height:48px;
  box-sizing:border-box;
  border-radius:14px;
  -webkit-appearance:none;
  appearance:none;
}
.admin-control-grid.compact-controls .admin-access-until input[type="date"]::-webkit-date-and-time-value{
  min-height:0;
  height:auto;
  line-height:normal;
  text-align:left;
  padding:0;
}
.admin-control-grid.compact-controls .admin-access-until input[type="date"]::-webkit-calendar-picker-indicator{
  margin:0;
}

@media(max-width:620px){
  .admin-control-grid.compact-controls .admin-access-until{
    grid-column:1 / -1;
    width:min(210px,100%);
    max-width:210px;
    justify-self:start;
  }
  .admin-control-grid.compact-controls .admin-access-until input[type="date"]{
    width:100%;
    max-width:210px;
    height:48px !important;
    min-height:48px !important;
    max-height:48px !important;
  }
}


/* v1.109 — pull-to-refresh mais acima, sem sobrepor o mês */
@media(max-width:699px){
  body[data-screen="app"] .pull-refresh{
    top:calc(env(safe-area-inset-top) + 8px) !important;
  }
}


/* v1.110 — confirmação visual de e-mail e pagamento */
.flow-status-page{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:24px 18px calc(24px + env(safe-area-inset-bottom));
  background:var(--bg);
}
.flow-status-card{
  width:min(420px,100%);
  text-align:center;
  padding:28px 24px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--surface);
  box-shadow:var(--shadow-lg);
}
.flow-status-card .auth-logo{
  margin:0 auto 20px;
}
.flow-status-card h1{
  margin:14px 0 8px;
  font-size:24px;
  line-height:1.12;
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
}
.flow-status-card p{
  margin:0 auto;
  max-width:330px;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}
.flow-status-spinner{
  width:38px;
  height:38px;
  margin:0 auto;
  border-radius:50%;
  border:3px solid color-mix(in srgb,var(--brand) 18%,var(--line));
  border-top-color:var(--brand);
  animation:flowSpin .72s linear infinite;
}
.flow-status-icon{
  width:42px;
  height:42px;
  margin:0 auto;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:22px;
  font-weight:900;
}
.flow-status-icon.success{
  background:color-mix(in srgb,var(--income) 12%,var(--surface));
  color:var(--income-ink);
}
.flow-status-icon.error{
  background:color-mix(in srgb,var(--negative) 10%,var(--surface));
  color:var(--negative);
}
@keyframes flowSpin{to{transform:rotate(360deg)}}

.flow-result-sheet{
  max-width:430px;
  text-align:center;
  padding-top:24px;
}
.flow-result-icon{
  width:48px;
  height:48px;
  margin:0 auto 12px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:24px;
  font-weight:900;
}
.flow-result-icon.success{
  background:color-mix(in srgb,var(--income) 12%,var(--surface));
  color:var(--income-ink);
}
.flow-result-icon.info{
  background:color-mix(in srgb,var(--brand) 10%,var(--surface));
  color:var(--brand);
}
.flow-result-sheet h2{
  margin:0 0 7px;
  font-size:21px;
}
.flow-result-sheet p{
  margin:0 0 18px;
  color:var(--muted);
  font-size:13px;
  line-height:1.52;
}
.flow-result-sheet .primary{
  width:100%;
}


/* v1.111 — suporte dentro de Ajustes */
.support-card{
  padding:18px;
}
.support-form{
  display:flex;
  flex-direction:column;
}
.support-contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,.8fr);
  gap:10px;
}
.support-form textarea{
  resize:vertical;
  min-height:120px;
  line-height:1.45;
}
.support-form .helper{
  margin-top:6px;
  font-size:10.5px;
  line-height:1.4;
  color:var(--muted);
}
.support-submit{
  margin-top:2px;
}
.support-form-status{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:2px 0 12px;
  padding:11px 12px;
  border-radius:13px;
  border:1px solid var(--line);
  background:var(--surface-2);
}
.support-form-status strong{
  font-size:12px;
}
.support-form-status span{
  font-size:10.5px;
  line-height:1.42;
  color:var(--muted);
}
.support-form-status.success{
  border-color:color-mix(in srgb,var(--income) 26%,var(--line));
  background:color-mix(in srgb,var(--income) 6%,var(--surface));
}
.support-form-status.success strong{
  color:var(--income-ink);
}
.support-form-status.error{
  border-color:color-mix(in srgb,var(--negative) 24%,var(--line));
  background:color-mix(in srgb,var(--negative) 5%,var(--surface));
}
.support-form-status.error strong{
  color:var(--negative);
}
.support-privacy-note{
  margin-top:9px;
  text-align:center;
  font-size:9.5px;
  line-height:1.42;
  color:var(--muted);
}
@media(max-width:520px){
  .support-contact-grid{
    grid-template-columns:1fr;
    gap:0;
  }
}


/* v1.113 — suporte sem caixa vazia e criação de membro sob demanda */
.support-form-status[hidden]{
  display:none !important;
}

.add-member-btn{
  white-space:nowrap;
}

.add-member-sheet{
  max-width:430px;
}

.add-member-sheet .sheet-head{
  align-items:flex-start;
}

.add-member-sheet .sheet-head h2{
  margin:0;
}

.add-member-sheet .sheet-head p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}

.add-member-form{
  margin-top:8px;
}

.add-member-form .primary{
  width:100%;
}

@media(max-width:520px){
  .add-member-btn{
    font-size:11px;
    padding:7px 10px;
  }
}


/* v1.116 — tipo de acesso administrativo sem ambiguidade */
.admin-access-help{
  margin:2px 0 12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-2);
  color:var(--muted);
  font-size:10.5px;
  line-height:1.45;
}
.admin-access-help.paid{
  border-color:color-mix(in srgb,var(--income) 22%,var(--line));
  background:color-mix(in srgb,var(--income) 5%,var(--surface));
}
.admin-access-type select:disabled{
  opacity:.82;
  cursor:not-allowed;
}


/* V2 — Guia Financeiro e Orçamento Inteligente */
.guide-today-card,.smart-budget-card{margin-top:14px;padding:18px;border:1px solid rgba(99,102,241,.14);background:linear-gradient(145deg,#fff 0%,#f7f8ff 100%)}
.guide-head,.smart-budget-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.guide-kicker{display:block;font-size:12px;font-weight:800;letter-spacing:.02em;color:#5b5bd6;margin-bottom:4px}.guide-head h3,.smart-budget-head h3{margin:0;font-size:19px}.guide-badge,.guide-status{border-radius:999px;padding:6px 9px;background:#eef0ff;color:#5556b9;font-size:11px;font-weight:800;white-space:nowrap}.guide-summary,.smart-budget-card p{color:#596173;line-height:1.5}.guide-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.guide-metrics>div{padding:11px;border-radius:14px;background:#fff;border:1px solid #eceef7;min-width:0}.guide-metrics span{display:block;font-size:10px;color:#81889a;margin-bottom:4px}.guide-metrics strong{font-size:14px}.guide-attention{display:grid;gap:6px;padding:12px;border-radius:14px;background:#fff8e8;font-size:12px;color:#71561c}.guide-action{display:grid;gap:4px;margin-top:10px;padding:12px;border-radius:14px;background:#eef8f3}.guide-action strong{font-size:11px;color:#2d7a54}.guide-action span{font-size:13px}.guide-actions,.smart-budget-actions{display:flex;gap:9px;margin-top:14px}.guide-actions button,.smart-budget-actions button{flex:1}.ask-guide-examples{display:grid;gap:7px;margin:8px 0 14px}.ask-guide-examples button{text-align:left;border:1px solid #e6e8f0;background:#fff;border-radius:12px;padding:10px;font-size:12px}.ask-guide-answer{margin-top:14px;padding:14px;border-radius:15px;background:#f4f5ff;border:1px solid #e3e5ff}.ask-guide-answer p{line-height:1.55;margin:7px 0 0}.financial-profile-card button{width:100%;margin-top:12px}.profile-count-grid{grid-template-columns:repeat(3,1fr)}.guide-privacy{font-size:11px;color:#838a99;text-align:center;margin-top:10px}.budget-scenarios{display:grid;gap:8px;margin:8px 0 14px}.scenario-btn{text-align:left;border:1px solid #e1e4ed;background:#fff;border-radius:14px;padding:13px}.scenario-btn strong,.scenario-btn span{display:block}.scenario-btn span{font-size:12px;color:#777f90;margin-top:3px}.scenario-btn.active{border-color:#7778df;background:#f4f4ff;box-shadow:0 0 0 2px rgba(91,91,214,.08)}.smart-budget-result{margin-top:15px}.smart-budget-summary{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:13px;background:#f6f7fb;border-radius:14px}.smart-budget-summary span{font-size:12px;color:#72798a}.smart-budget-lines{display:grid;gap:0;margin:12px 0}.smart-budget-lines>div{display:flex;justify-content:space-between;gap:15px;padding:11px 2px;border-bottom:1px solid #edf0f4}.smart-budget-lines span{display:grid;gap:2px}.smart-budget-lines small{color:#858c9b;font-size:10px;line-height:1.3}.smart-budget-lines b{white-space:nowrap}.guide-today-card.guide-critical{border-color:rgba(220,38,38,.18);background:linear-gradient(145deg,#fff,#fff6f6)}.guide-today-card.guide-attention{border-color:rgba(217,119,6,.18);background:linear-gradient(145deg,#fff,#fffbf2)}
@media(max-width:420px){.guide-metrics{grid-template-columns:1fr 1fr}.guide-metrics>div:last-child{grid-column:1/-1}.guide-actions,.smart-budget-actions{flex-direction:column}}

/* V2 camada 2 — onboarding, metas e recomendações proativas */
.onboarding-card,.goals-card{margin-top:14px;padding:18px}.onboarding-head,.goals-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.onboarding-head h3,.goals-head h3{margin:0;font-size:18px}.onboarding-progress{min-width:42px;text-align:center;padding:6px 9px;border-radius:999px;background:#f0f1ff;color:#5859bf;font-weight:800;font-size:11px}.onboarding-card>p,.goals-empty>p{margin:9px 0 14px;color:var(--muted);font-size:12px;line-height:1.5}.onboarding-steps{display:grid;gap:8px}.onboarding-steps button{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:11px;text-align:left}.onboarding-steps button>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eff0ff;color:#5a5bc1;font-weight:800;flex:0 0 auto}.onboarding-steps button>div{display:grid;gap:2px}.onboarding-steps strong{font-size:12px}.onboarding-steps small{font-size:10px;color:var(--muted);line-height:1.35}.onboarding-steps button.done{opacity:.72}.onboarding-steps button.done>span{background:#e9f7ef;color:#287b53}.guide-recommendations{margin-top:4px}.guide-rec{display:flex;align-items:flex-start;gap:11px;padding:14px;margin-top:8px}.guide-rec-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:#f0f1ff;color:#5a5bc1;font-weight:900;flex:0 0 auto}.guide-rec.warning .guide-rec-icon{background:#fff3d8;color:#9a6500}.guide-rec strong{font-size:12px}.guide-rec p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.goal-add-mini{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.goal-list{display:grid;gap:9px;margin-top:12px}.goal-row{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:12px;text-align:left}.goal-row-head,.goal-values{display:flex;align-items:center;justify-content:space-between;gap:12px}.goal-row-head span{display:grid;gap:2px}.goal-row-head strong{font-size:12px}.goal-row-head small,.goal-values span{font-size:10px;color:var(--muted)}.goal-row-head b{font-size:12px;color:#5b5bd6}.goal-progress{height:7px;border-radius:999px;background:#edf0f4;overflow:hidden;margin:9px 0 7px}.goal-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6065df,#8d63e8)}.goal-values strong{font-size:11px}.goals-empty .secondary{width:100%}.goal-sheet{max-width:460px}
@media(max-width:420px){.onboarding-card,.goals-card{padding:15px}}

/* V2 layer 3 — identidade e conversão do Guia */
.pro-value-card{position:relative;overflow:hidden;padding:22px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 8%,var(--card)),var(--card) 58%)}
.pro-value-card:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-75px;top:-90px;background:color-mix(in srgb,var(--accent) 10%,transparent);pointer-events:none}
.pro-value-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.pro-value-top h3{margin:5px 0 0;font-size:1.18rem}.pro-value-badge{font-size:.72rem;font-weight:800;letter-spacing:.08em;border-radius:999px;padding:6px 9px;background:var(--accent);color:#fff}.pro-value-card>p{margin:12px 0 16px;color:var(--muted);line-height:1.5}.pro-value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 16px}.pro-value-grid div{padding:11px;border-radius:14px;background:color-mix(in srgb,var(--card) 88%,transparent);border:1px solid var(--line)}.pro-value-grid strong{display:block;font-size:.86rem;margin-bottom:4px}.pro-value-grid span{font-size:.75rem;line-height:1.25;color:var(--muted)}.pro-value-card .primary{width:100%}.pro-value-card>small{display:block;text-align:center;color:var(--muted);margin-top:9px}
.upgrade-benefits{display:grid;gap:9px;margin:16px 0}.upgrade-benefits>div{display:flex;gap:11px;align-items:flex-start;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.upgrade-benefits>div>span{flex:0 0 28px;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:.7rem;font-weight:800;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent)}.upgrade-benefits p{margin:0}.upgrade-benefits strong{display:block;font-size:.9rem}.upgrade-benefits small{display:block;margin-top:2px;color:var(--muted);line-height:1.3}.upgrade-reassurance{padding:10px 12px;margin:0 0 12px;border-radius:12px;background:color-mix(in srgb,var(--success,#16a34a) 8%,var(--surface));font-size:.8rem;line-height:1.35;color:var(--muted)}
@media(max-width:520px){.pro-value-grid{grid-template-columns:1fr}.pro-value-grid div{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:8px}.pro-value-grid strong{margin:0}.pro-value-grid span{font-size:.78rem}}


/* v1.120 — Premium UX/UI refinement */
:root{--v2-ink:#172033;--v2-muted:#6f7788;--v2-soft:#f6f7fb;--v2-accent:#5757d9;--v2-accent2:#7774ef}
#page{max-width:760px;margin-inline:auto;width:100%}
.home-month-head{background:transparent!important;backdrop-filter:none!important;padding-bottom:2px!important}
.home-money-strip{position:relative;display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px;margin:12px 0 22px;background:transparent;border:0;border-radius:0;overflow:visible;box-shadow:none}
.home-money-strip>div{background:var(--surface);padding:15px 14px;min-width:0;border:1px solid var(--line);border-radius:16px}.home-money-strip span{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:5px}.home-money-strip strong{font-size:19px;letter-spacing:-.03em;color:var(--text)}.home-money-strip b{font-size:14px;letter-spacing:-.02em;white-space:nowrap}.home-money-strip .up b{color:var(--income)}.home-money-strip .down b{color:var(--expense)}
.money-strip-main .strip-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px}
.money-strip-main .strip-head span{margin-bottom:0;white-space:nowrap}
.strip-eye{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);display:grid;place-items:center;padding:0;cursor:pointer;flex:0 0 auto;transition:transform .1s}
.strip-eye svg{width:15px;height:15px;display:block}
.strip-eye:active{transform:scale(.9)}
.guide-today-card{position:relative;overflow:hidden;margin-top:8px!important;border:0!important;border-radius:24px!important;padding:22px!important;background:linear-gradient(145deg,#29285d 0%,#4c4bb2 56%,#6765d6 100%)!important;color:#fff;box-shadow:0 18px 44px rgba(61,59,148,.20)!important}
.guide-today-card:after{content:"";position:absolute;width:190px;height:190px;border-radius:50%;right:-80px;top:-95px;background:rgba(255,255,255,.09);pointer-events:none}.guide-today-card:before{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:20px;bottom:-100px;background:rgba(255,255,255,.06);pointer-events:none}
.guide-today-card>*{position:relative;z-index:1}.guide-orb{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);font-size:18px;margin-bottom:18px}.guide-today-card .guide-kicker{color:#d9d9ff!important;font-size:10px;letter-spacing:.12em;margin-bottom:7px}.guide-today-card h3{font-size:25px!important;line-height:1.08;letter-spacing:-.035em;color:#fff!important;max-width:440px}.guide-today-card p,.guide-today-card .guide-summary{color:rgba(255,255,255,.80)!important;line-height:1.5;font-size:14px;max-width:580px}.guide-today-card .guide-badge,.guide-today-card .guide-status{background:rgba(255,255,255,.12)!important;color:#fff!important;border:1px solid rgba(255,255,255,.16)!important;font-size:9px!important;letter-spacing:.08em}.guide-welcome-points{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0 18px}.guide-welcome-points span{padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.10);font-size:10px;font-weight:700;color:rgba(255,255,255,.86)}
.guide-today-card .guide-generate,.guide-today-card .guide-actions .primary{background:#fff!important;color:#34337c!important;border-color:#fff!important;box-shadow:none!important}.guide-today-card .guide-actions .secondary,.guide-today-card #guide-refresh-btn{background:rgba(255,255,255,.09)!important;color:#fff!important;border-color:rgba(255,255,255,.18)!important}
.guide-metrics{gap:8px!important;margin-top:17px!important}.guide-metrics>div{background:rgba(255,255,255,.09)!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:14px!important;padding:12px!important}.guide-metrics span{color:rgba(255,255,255,.66)!important;font-size:10px!important}.guide-metrics strong{color:#fff!important;font-size:17px!important}.guide-attention,.guide-action{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.11)!important;color:#fff!important}.guide-action span,.guide-attention span{color:rgba(255,255,255,.82)!important}
.section-title{margin-top:27px!important;margin-bottom:10px!important}.section-title h2{font-size:15px!important;letter-spacing:-.01em}.section-context{font-size:10px!important;color:var(--muted)!important}
.smart-onboarding-card,.goals-card,.pro-value-card,.smart-budget-card{border-radius:20px!important;border:1px solid color-mix(in srgb,var(--line) 82%,transparent)!important;box-shadow:0 7px 26px rgba(24,32,51,.035)!important}.smart-onboarding-card{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 91%,#eef0ff))!important}.onboarding-steps button{border-radius:14px!important}.onboarding-steps button span:first-child{box-shadow:none!important}.goal-row{border-radius:15px!important;background:var(--v2-soft)!important;border:0!important}.goal-progress{height:6px!important}.guide-recommendations{margin-top:3px}.guide-rec{border-radius:17px!important;box-shadow:none!important;border-left:3px solid color-mix(in srgb,var(--v2-accent) 55%,transparent)!important}.guide-rec.warning{border-left-color:#e6a23c!important}.guide-rec p{line-height:1.45!important}.pro-value-card{background:linear-gradient(145deg,#fbfbff,#f3f3ff)!important}.pro-value-grid>div{border-radius:14px!important;background:rgba(255,255,255,.72)!important}.budget-row,.home-category-card{border-radius:18px!important;box-shadow:none!important}.home-cat-row{padding-block:13px!important}.home-cat-icon{border-radius:11px!important}.progress,.home-cat-bar{overflow:hidden}
@media(max-width:560px){.guide-today-card{margin-inline:0!important;padding:20px!important;border-radius:22px!important}.guide-today-card h3{font-size:23px!important}.home-money-strip{grid-template-columns:1.25fr 1fr 1fr}.home-money-strip>div{padding:13px 10px}.home-money-strip strong{font-size:17px}.home-money-strip b{font-size:12px}.guide-metrics{grid-template-columns:1.35fr 1fr 1fr!important}.guide-metrics>div{padding:10px 8px!important}.guide-metrics strong{font-size:15px!important}.pro-value-grid{grid-template-columns:1fr!important}}


/* v1.121 — correções de contraste, fechamento de sheets e scroll no iOS */
.home-month-head{
  background:var(--bg)!important;
  box-shadow:0 12px 18px -17px rgba(23,32,51,.30)!important;
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  padding-bottom:8px!important;
}

/* Todo conteúdo de modal volta a ter contraste próprio, independentemente
   do card/gradiente que disparou a abertura. */
.modal .sheet{
  background:var(--surface)!important;
  color:var(--text,var(--ink))!important;
}
.modal .sheet h1,
.modal .sheet h2,
.modal .sheet h3,
.modal .sheet strong{
  color:var(--text,var(--ink))!important;
}
.modal .sheet p,
.modal .sheet span:not(.plan-badge):not(.guide-kicker):not(.ai-kicker),
.modal .sheet small{
  color:var(--muted)!important;
}
.modal .sheet input,
.modal .sheet textarea,
.modal .sheet select{
  color:var(--text,var(--ink))!important;
  background:var(--surface)!important;
}

/* Cabeçalho do sheet permanece visível: usuário sempre consegue fechar. */
.modal .sheet > .sheet-head{
  position:sticky;
  top:0;
  z-index:30;
  margin:-20px -18px 16px;
  padding:18px 18px 12px;
  background:var(--bg)!important;
  border-bottom:1px solid var(--line);
  border-radius:26px 26px 0 0;
}
[data-theme="dark"] .modal .sheet > .sheet-head{background:var(--surface)!important}
.modal .sheet > .sheet-head .close,
.modal .sheet > .sheet-head .icon-btn,
.modal .sheet [data-close]{
  flex:0 0 auto;
  display:grid!important;
  place-items:center!important;
  visibility:visible!important;
  opacity:1!important;
  background:var(--surface-2)!important;
  color:var(--text,var(--ink))!important;
  border:1px solid var(--line)!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  border-radius:12px!important;
  font-size:22px!important;
  line-height:1!important;
  z-index:40!important;
}

/* Modal de análise/resumo: contraste explícito. */
.ai-report-sheet,
.ai-report-sheet .card,
#ai-monthly-modal-content{
  background:var(--surface)!important;
  color:var(--text,var(--ink))!important;
}
.ai-report-sheet .ai-kicker{color:var(--brand-2)!important}
.ai-report-sheet .ai-monthly-intro,
.ai-report-sheet .ai-data-note,
.ai-report-sheet li,
.ai-report-sheet .ai-quota-note,
.ai-report-sheet .ai-privacy-note{
  color:var(--muted)!important;
}

/* Fundo realmente imóvel enquanto modal/sheet estiver aberto. */
html.modal-open{overflow:hidden!important;height:100%!important}
body.modal-open{
  overflow:hidden!important;
  height:100%!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
body.modal-open .modal{touch-action:auto!important}
body.modal-open .modal .sheet{touch-action:pan-y!important}

/* Evita que conteúdo da página apareça por baixo do seletor de mês fixo. */
@media(max-width:699px){
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    background:var(--bg)!important;
    isolation:isolate;
    overflow:hidden;
  }
  .modal .sheet > .sheet-head{
    top:-16px;
    margin:-16px -16px 14px;
    padding:16px 16px 11px;
  }
}


/* v1.122 — Leitura do Dia: contraste correto no card premium.
   A v1.121 aplicava as cores de modal ao conteúdo do Guia quando a leitura
   era exibida dentro de um sheet, deixando texto branco sobre fundo claro. */
.modal .sheet .guide-today-card{
  background:linear-gradient(145deg,#29285d 0%,#4c4bb2 56%,#6765d6 100%)!important;
  color:#fff!important;
}
.modal .sheet .guide-today-card h1,
.modal .sheet .guide-today-card h2,
.modal .sheet .guide-today-card h3,
.modal .sheet .guide-today-card strong{
  color:#fff!important;
}
.modal .sheet .guide-today-card p,
.modal .sheet .guide-today-card span,
.modal .sheet .guide-today-card small,
.modal .sheet .guide-today-card .guide-summary{
  color:rgba(255,255,255,.84)!important;
}
.modal .sheet .guide-today-card .guide-kicker{
  color:#d9d9ff!important;
}
.modal .sheet .guide-today-card .guide-status,
.modal .sheet .guide-today-card .guide-badge{
  color:#fff!important;
  background:rgba(255,255,255,.12)!important;
}
.modal .sheet .guide-today-card .guide-metrics>div,
.modal .sheet .guide-today-card .guide-attention,
.modal .sheet .guide-today-card .guide-action{
  background:rgba(255,255,255,.09)!important;
  border-color:rgba(255,255,255,.11)!important;
}
.modal .sheet .guide-today-card .guide-metrics span{
  color:rgba(255,255,255,.66)!important;
}
.modal .sheet .guide-today-card .guide-metrics strong{
  color:#fff!important;
}
.modal .sheet .guide-today-card .guide-action strong{
  color:#bff1d3!important;
}
.modal .sheet .guide-today-card .primary{
  background:#fff!important;
  color:#34337c!important;
  border-color:#fff!important;
}
.modal .sheet .guide-today-card .secondary{
  background:rgba(255,255,255,.09)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.18)!important;
}

/* Se a leitura estiver em um container próprio, ele também recebe superfície
   neutra e separação visual do seletor de mês. */
.ai-report-sheet #guide-today-card,
#guide-today-modal .guide-today-card{
  margin-top:0!important;
}


/* v1.123 — arquitetura simplificada: um único Guia Financeiro */
.home-summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 2px 8px}
.home-summary-head>div{display:flex;flex-direction:column;gap:2px}.home-summary-head>div>span{font-size:16px;font-weight:800;color:var(--text,var(--ink));letter-spacing:-.015em}.home-summary-head>div>small{font-size:11px;color:var(--muted)}
.home-guide-trigger{flex:0 0 auto;background:var(--surface)!important;border-color:var(--line)!important}
.home-money-strip{margin-top:0!important}

.guide-hub-sheet,.guide-analysis-sheet{max-width:540px}
.guide-hub-context{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 18px}.guide-hub-context>div{padding:11px 10px;border-radius:13px;background:var(--surface-2);min-width:0}.guide-hub-context span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.guide-hub-context strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guide-hub-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.guide-hub-actions>button{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;text-align:left;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:inherit;font:inherit;cursor:pointer}.guide-hub-actions>button>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--brand-2) 10%,var(--surface));color:var(--brand-2)!important;font-size:16px;font-weight:900}.guide-hub-actions>button>div{min-width:0}.guide-hub-actions strong{display:block;font-size:13px;margin-bottom:3px}.guide-hub-actions small{display:block;font-size:10.5px;line-height:1.35;color:var(--muted)}
.guide-hub-pro{margin-top:14px;padding:14px;border-radius:15px;background:linear-gradient(145deg,#f6f5ff,#efefff);border:1px solid rgba(87,87,217,.12)}.guide-hub-pro strong{display:block;font-size:13px;margin-bottom:4px}.guide-hub-pro span{display:block;font-size:11px;line-height:1.45;color:var(--muted);margin-bottom:10px}.guide-hub-pro .primary{width:100%}

.guide-analysis-empty{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:18px 2px}.guide-analysis-empty strong{font-size:17px}.guide-analysis-empty span{font-size:12px;line-height:1.5;color:var(--muted);max-width:430px}.guide-analysis-empty .primary{margin-top:7px}
.guide-analysis-result{padding:2px 0 6px}.guide-analysis-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.guide-analysis-status span{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--brand-2)}.guide-analysis-status b{font-size:10px;padding:5px 8px;border-radius:999px;background:var(--surface-2)}.guide-analysis-result h3{font-size:22px;margin:0 0 8px;letter-spacing:-.025em}.guide-analysis-result>p{font-size:13px;line-height:1.55;color:var(--muted);margin:0}.guide-analysis-metrics{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px;margin:16px 0}.guide-analysis-metrics>div{padding:12px 10px;border-radius:13px;background:var(--surface-2)}.guide-analysis-metrics span{display:block;font-size:9.5px;color:var(--muted);margin-bottom:4px}.guide-analysis-metrics strong{font-size:15px}.guide-analysis-list{display:flex;flex-direction:column;gap:7px;padding:12px;border-radius:13px;background:var(--surface-2);margin-bottom:10px}.guide-analysis-list span{font-size:11px;line-height:1.45}.guide-analysis-next{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:13px;background:color-mix(in srgb,var(--income) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--income) 15%,var(--line))}.guide-analysis-next strong{font-size:11px;color:var(--income)}.guide-analysis-next span{font-size:12px;line-height:1.45}.guide-analysis-refresh{width:100%;margin-top:12px}

@media(max-width:560px){.guide-hub-actions{grid-template-columns:1fr}.guide-hub-context{grid-template-columns:1fr 1fr 1fr}.guide-analysis-metrics{grid-template-columns:1.3fr 1fr 1fr}.guide-hub-actions>button{padding:12px}.home-summary-head{margin-top:12px}}


/* v1.136 — cabeçalhos de TODOS os formulários/modais estáveis no iOS
   Corrige regras legadas com top/margens negativas que permitiam o conteúdo
   passar visualmente por trás do cabeçalho. */
.modal{
  overflow:hidden !important;
  overscroll-behavior:none !important;
}

.modal .sheet{
  position:relative !important;
  box-sizing:border-box !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  -webkit-overflow-scrolling:touch;
  /* o cabeçalho ocupa espaço real; não usamos mais compensação negativa */
  padding-top:0 !important;
}

/* Regra global para todo sheet que tenha cabeçalho padrão */
.modal .sheet > .sheet-head{
  position:sticky !important;
  top:0 !important;
  z-index:100 !important;
  box-sizing:border-box !important;

  /* remove todas as margens negativas das versões anteriores */
  margin:0 -18px 16px !important;
  padding:calc(18px + env(safe-area-inset-top, 0px)) 18px 13px !important;

  min-height:64px;
  flex:0 0 auto;

  background:var(--surface) !important;
  background-color:var(--surface) !important;
  border-bottom:1px solid var(--line) !important;
  border-radius:26px 26px 0 0 !important;
  box-shadow:0 7px 16px -13px rgba(18,28,22,.58) !important;

  /* cria camada própria no Safari/PWA e impede bleed-through do conteúdo */
  isolation:isolate;
  transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* superfície opaca adicional atrás do cabeçalho, útil no Safari durante
   rolagem com momentum */
.modal .sheet > .sheet-head::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--surface);
  border-radius:inherit;
  pointer-events:none;
}

[data-theme="dark"] .modal .sheet > .sheet-head,
[data-theme="dark"] .modal .sheet > .sheet-head::before{
  background:var(--surface) !important;
}

/* Botão de fechar sempre acima do conteúdo e sempre clicável */
.modal .sheet > .sheet-head .close,
.modal .sheet > .sheet-head .icon-btn,
.modal .sheet > .sheet-head [data-close],
.modal .sheet > .sheet-head [aria-label="Fechar"]{
  position:relative !important;
  z-index:110 !important;
  flex:0 0 40px !important;
  width:40px !important;
  min-width:40px !important;
  height:40px !important;
  display:grid !important;
  place-items:center !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

/* O primeiro bloco após o cabeçalho começa abaixo dele sem sobreposição */
.modal .sheet > .sheet-head + *{
  position:relative;
  z-index:1;
}

/* Safari/iPhone */
@media(max-width:699px){
  .modal .sheet{
    padding-top:0 !important;
  }
  .modal .sheet > .sheet-head{
    top:0 !important;
    margin:0 -16px 14px !important;
    padding:16px 16px 12px !important;
    border-radius:26px 26px 0 0 !important;
  }
}

/* Teclado aberto: mantém o cabeçalho acessível, conteúdo é que rola */
@supports (height:100dvh){
  .modal .sheet{
    max-height:min(92dvh,92svh) !important;
  }
}

/* Enquanto houver formulário/modal aberto, somente o sheet pode rolar */
html.modal-open,
body.modal-open{
  overflow:hidden !important;
  overscroll-behavior:none !important;
}
body.modal-open #app{
  overflow:hidden !important;
  touch-action:none !important;
}
body.modal-open .modal{
  touch-action:none !important;
}
body.modal-open .modal .sheet{
  touch-action:pan-y !important;
}


/* v1.137 — Performance: otimizações seguras para iPhone/PWA */
@media(max-width:699px){
  /* Blur contínuo em elementos fixed custa composição a cada frame no Safari. */
  body[data-screen="app"] .bottom-nav{
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    background:color-mix(in srgb,var(--surface) 98%,var(--bg)) !important;
  }
  .hero-values-eye,
  .auth-toggle{
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
  }

  /* Transições curtas mantêm feedback sem segurar frames durante navegação. */
  .page-enter{animation:none !important}
  .modal{animation-duration:.12s !important}
  .modal .sheet{animation-duration:.16s !important}
  .modal.closing{animation-duration:.12s !important}
  .modal.closing .sheet{animation-duration:.12s !important}
  .nav-btn,.nav-icon,.header-btn,.theme-toggle,.avatar{
    transition-duration:.10s !important;
  }

  /* As listas mais pesadas só são pintadas quando entram no viewport. */
  .home-category-card,
  .invoice-summary-card,
  .goals-list,
  .admin-list,
  .report-payment-card{
    content-visibility:auto;
    contain-intrinsic-size:auto 320px;
  }

  /* Feedback de toque imediato e menos trabalho visual nativo. */
  button,[role="button"]{
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
}

/* Respeita aparelhos/configurações que pedem menos movimento. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto !important;
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}

/* Evita repintura desnecessária fora da tela em blocos longos. */
@supports(content-visibility:auto){
  .settings-group,
  .report-section{
    content-visibility:auto;
    contain-intrinsic-size:auto 260px;
  }
}


/* v1.138 — rodapé estável ao abrir/fechar formulários no iPhone */
@media(max-width:699px){
  /* O rodapé continua na mesma camada/composição mesmo com modal aberto.
     O overlay fica acima dele, mas sua geometria não é destruída/recriada. */
  body[data-screen="app"] .bottom-nav{
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    will-change:transform;
  }

  body.modal-open .bottom-nav{
    display:flex !important;
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    transform:translateZ(0) !important;
    -webkit-transform:translateZ(0) !important;
    pointer-events:none !important;
  }

  /* Não muda altura/posição do documento durante o modal. */
  html.modal-open,
  body.modal-open{
    position:static !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    width:auto !important;
    max-width:none !important;
  }

  /* A máscara continua acima de todo o app. */
  body.modal-open .modal{
    z-index:1000 !important;
  }
}


/* v1.139 — Desktop layout reset
   Esta seção vem por último para impedir que ajustes mobile/premium globais
   sobrescrevam a geometria de telas grandes. */
@media (min-width:1000px){
  html,body{
    min-width:1000px;
    min-height:100%;
    overflow-x:hidden;
  }

  body[data-screen="app"]{
    padding:0 !important;
    background:var(--bg-2) !important;
  }

  body[data-screen="app"] .shell{
    width:100% !important;
    max-width:none !important;
    min-height:100dvh !important;
    margin:0 !important;
    display:grid !important;
    grid-template-columns:240px minmax(0,1fr) !important;
    grid-template-rows:72px minmax(0,1fr) !important;
    grid-template-areas:
      "side topbar"
      "side page" !important;
    background:var(--bg) !important;
    overflow:visible !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  body[data-screen="app"] .topbar{
    grid-area:topbar !important;
    position:sticky !important;
    top:0 !important;
    left:auto !important;
    right:auto !important;
    width:auto !important;
    height:72px;
    min-height:72px;
    margin:0 !important;
    padding:14px clamp(28px,3vw,48px) !important;
    z-index:35 !important;
    border-bottom:1px solid var(--line);
    background:color-mix(in srgb,var(--bg) 97%,var(--surface)) !important;
    transform:none !important;
  }

  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    grid-area:page !important;
    width:100% !important;
    max-width:1180px !important;
    min-width:0 !important;
    margin:0 auto !important;
    padding:24px clamp(28px,3vw,48px) 56px !important;
    overflow:visible !important;
  }

  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:sticky !important;
    top:72px !important;
    left:auto !important;
    right:auto !important;
    width:auto !important;
    z-index:20 !important;
    margin:0 0 18px !important;
    padding:8px 0 12px !important;
    background:var(--bg) !important;
    box-shadow:none !important;
    border-bottom:1px solid var(--line) !important;
    transform:none !important;
    overflow:visible !important;
  }

  /* A navegação inferior vira uma sidebar real. */
  body[data-screen="app"] .bottom-nav{
    grid-area:side !important;
    position:sticky !important;
    top:0 !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    width:240px !important;
    height:100dvh !important;
    min-height:100dvh !important;
    margin:0 !important;
    padding:22px 14px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:5px !important;
    z-index:30 !important;
    border:0 !important;
    border-right:1px solid var(--line) !important;
    background:var(--surface) !important;
    transform:none !important;
    -webkit-transform:none !important;
    translate:none !important;
    will-change:auto !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn{
    width:100%;
    min-height:46px;
    padding:10px 12px !important;
    flex:0 0 auto !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:12px !important;
    border-radius:12px !important;
    font-size:13px !important;
    text-align:left;
  }

  body[data-screen="app"] .bottom-nav .nav-icon{
    width:28px !important;
    min-width:28px !important;
    height:28px !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    border-radius:8px !important;
    background:transparent !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn.active{
    background:color-mix(in srgb,var(--brand) 11%,transparent) !important;
  }

  body[data-screen="app"] .fab-float{
    position:fixed !important;
    right:28px !important;
    bottom:28px !important;
    left:auto !important;
    transform:none !important;
    z-index:45 !important;
  }
  body[data-screen="app"] .fab-menu{
    position:fixed !important;
    right:28px !important;
    bottom:96px !important;
    left:auto !important;
  }

  /* Home: usa melhor a largura sem esticar demais os cards. */
  .home-summary-head{margin-top:4px}
  .home-money-strip{
    grid-template-columns:minmax(260px,1.45fr) minmax(180px,.8fr) minmax(180px,.8fr) !important;
    gap:12px !important;
    margin-bottom:26px !important;
  }
  .home-money-strip>div{padding:18px !important}
  .home-money-strip strong{font-size:22px !important}

  .home-category-card,
  .invoice-summary-card,
  .budget-row,
  .card{
    max-width:none;
  }

  /* Relatórios e áreas com duas colunas ganham respiro no desktop. */
  .report-top{gap:28px !important}
  .report-head-actions{gap:8px}
  .two-fields{grid-template-columns:1fr 1fr !important}
  .three-fields{grid-template-columns:repeat(3,1fr) !important}
  .guide-hub-actions{grid-template-columns:1fr 1fr !important}

  /* Modais no desktop ficam centralizados, não como bottom sheet de celular. */
  .modal{
    align-items:center !important;
    justify-content:center !important;
    padding:32px !important;
  }
  .modal .sheet{
    width:min(620px,calc(100vw - 64px)) !important;
    max-width:620px !important;
    max-height:min(86dvh,860px) !important;
    border:1px solid var(--line) !important;
    border-radius:22px !important;
    padding:0 22px 24px !important;
    box-shadow:0 24px 70px rgba(18,28,22,.22) !important;
    animation:fade .14s ease !important;
  }
  .modal .sheet > .sheet-head{
    margin:0 -22px 18px !important;
    padding:18px 22px 14px !important;
    border-radius:22px 22px 0 0 !important;
  }
  .modal .sheet.auth-plans-sheet,
  .modal .sheet.ai-report-sheet,
  .modal .sheet.guide-hub-sheet{
    width:min(760px,calc(100vw - 64px)) !important;
    max-width:760px !important;
  }

  /* Enquanto modal estiver aberto, sidebar não muda de geometria. */
  body.modal-open .bottom-nav{
    position:sticky !important;
    top:0 !important;
    width:240px !important;
    height:100dvh !important;
    transform:none !important;
    -webkit-transform:none !important;
  }
}

@media (min-width:1400px){
  body[data-screen="app"] .shell{
    grid-template-columns:260px minmax(0,1fr) !important;
  }
  body[data-screen="app"] .bottom-nav{
    width:260px !important;
    padding-left:18px !important;
    padding-right:18px !important;
  }
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    max-width:1240px !important;
  }
  body.modal-open .bottom-nav{width:260px !important}
}


/* v1.140 — Desktop: scroll nativo + ação "+" fora da sidebar */
@media (min-width:1000px){
  /* A página volta a participar do fluxo normal do documento.
     Isso restaura wheel/mouse e gesto de dois dedos do trackpad. */
  html{
    height:auto !important;
    min-height:100% !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior-y:auto !important;
    touch-action:auto !important;
  }

  body,
  body[data-screen="app"]{
    height:auto !important;
    min-height:100dvh !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior-y:auto !important;
    touch-action:auto !important;
  }

  body[data-screen="app"] .shell{
    height:auto !important;
    min-height:100dvh !important;
    overflow:visible !important;
    grid-template-rows:72px auto !important;
    align-content:start !important;
  }

  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    height:auto !important;
    min-height:calc(100dvh - 72px) !important;
    overflow:visible !important;
    overscroll-behavior:auto !important;
    touch-action:auto !important;
  }

  body[data-screen="app"] .topbar{
    position:sticky !important;
    top:0 !important;
  }

  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:sticky !important;
    top:72px !important;
  }

  /* O "+" deixa de ser o terceiro item visual da sidebar.
     Continua com a mesma função, mas vira uma ação flutuante do conteúdo. */
  body[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:fixed !important;
    right:32px !important;
    bottom:28px !important;
    left:auto !important;
    top:auto !important;
    width:60px !important;
    height:60px !important;
    margin:0 !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    z-index:48 !important;
    pointer-events:none;
  }

  body[data-screen="app"] .bottom-nav .nav-fab{
    width:58px !important;
    height:58px !important;
    border-radius:18px !important;
    transform:none !important;
    -webkit-transform:none !important;
    pointer-events:auto !important;
    box-shadow:0 14px 30px color-mix(in srgb,var(--brand) 34%,transparent) !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab:active{
    transform:scale(.94) !important;
    -webkit-transform:scale(.94) !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab.open{
    transform:rotate(45deg) !important;
    -webkit-transform:rotate(45deg) !important;
  }

  /* Menu acompanha o botão no canto inferior direito. */
  body[data-screen="app"] .fab-menu.fab-menu-center,
  body[data-screen="app"] .fab-menu.fab-menu-center:not([hidden]){
    position:fixed !important;
    left:auto !important;
    right:32px !important;
    bottom:98px !important;
    transform:none !important;
    transform-origin:right bottom !important;
    align-items:flex-end !important;
    z-index:49 !important;
  }

  body[data-screen="app"] .fab-menu.fab-menu-center{
    animation:fabDesktopIn .13s ease-out !important;
  }

  @keyframes fabDesktopIn{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:none}
  }

  /* Sidebar fica apenas com as quatro áreas de navegação. */
  body[data-screen="app"] .bottom-nav{
    overflow:visible !important;
  }

  /* Evita qualquer herança do bloqueio de modal depois de fechar um formulário. */
  body:not(.modal-open)[data-screen="app"]{
    position:static !important;
  }
}

@media (min-width:1400px){
  body[data-screen="app"] .bottom-nav .nav-fab-wrap{
    right:38px !important;
    bottom:32px !important;
  }
  body[data-screen="app"] .fab-menu.fab-menu-center,
  body[data-screen="app"] .fab-menu.fab-menu-center:not([hidden]){
    right:38px !important;
    bottom:104px !important;
  }
}


/* v1.141 — Desktop com a mesma arquitetura visual do telefone:
   cabeçalho fixo + conteúdo rolável + rodapé fixo com ação central. */
@media (min-width:1000px){
  html{
    min-width:0 !important;
    height:auto !important;
    min-height:100% !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior-y:auto !important;
    touch-action:auto !important;
  }

  body,
  body[data-screen="app"]{
    min-width:0 !important;
    width:100% !important;
    height:auto !important;
    min-height:100dvh !important;
    margin:0 !important;
    padding:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior-y:auto !important;
    touch-action:auto !important;
    background:var(--bg) !important;
  }

  body[data-screen="app"] .shell{
    width:100% !important;
    max-width:none !important;
    min-height:100dvh !important;
    height:auto !important;
    margin:0 !important;
    display:block !important;
    background:var(--bg) !important;
    overflow:visible !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  /* Cabeçalho fixo */
  body[data-screen="app"] .topbar{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:76px !important;
    min-height:76px !important;
    margin:0 !important;
    padding:14px max(32px,calc((100vw - 1180px)/2)) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    z-index:60 !important;
    background:color-mix(in srgb,var(--bg) 97%,var(--surface)) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:0 8px 22px -22px rgba(18,28,22,.45) !important;
    transform:none !important;
  }

  body[data-screen="app"] .brand-title{
    font-size:23px !important;
  }

  /* Conteúdo centralizado e com espaço real para header/footer fixos */
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    width:100% !important;
    max-width:1180px !important;
    min-height:100dvh !important;
    height:auto !important;
    margin:0 auto !important;
    padding:106px 32px 122px !important;
    overflow:visible !important;
    touch-action:auto !important;
  }

  /* Navegação de mês permanece presa logo abaixo do cabeçalho */
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:sticky !important;
    top:76px !important;
    left:auto !important;
    right:auto !important;
    width:auto !important;
    margin:0 0 22px !important;
    padding:8px 0 14px !important;
    z-index:45 !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:none !important;
    transform:none !important;
    overflow:visible !important;
  }

  /* Rodapé fixo, seguindo a lógica do telefone */
  body[data-screen="app"] .bottom-nav{
    position:fixed !important;
    left:50% !important;
    right:auto !important;
    bottom:18px !important;
    top:auto !important;
    width:min(880px,calc(100vw - 64px)) !important;
    height:76px !important;
    min-height:76px !important;
    margin:0 !important;
    padding:7px 16px !important;
    display:grid !important;
    grid-template-columns:1fr 1fr 86px 1fr 1fr !important;
    align-items:center !important;
    gap:4px !important;
    z-index:70 !important;
    border:1px solid var(--line) !important;
    border-radius:22px !important;
    background:color-mix(in srgb,var(--surface) 98%,var(--bg)) !important;
    box-shadow:0 16px 44px rgba(18,28,22,.16) !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    translate:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    overflow:visible !important;
    will-change:auto !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn{
    width:100% !important;
    height:58px !important;
    min-height:58px !important;
    padding:7px 8px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
    border-radius:14px !important;
    font-size:11px !important;
    text-align:center !important;
    flex:none !important;
  }

  body[data-screen="app"] .bottom-nav .nav-icon{
    width:auto !important;
    min-width:42px !important;
    height:28px !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    border-radius:999px !important;
    background:transparent !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn.active{
    background:color-mix(in srgb,var(--brand) 9%,transparent) !important;
  }

  /* "+" volta a ocupar o centro do rodapé, como no telefone */
  body[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:relative !important;
    right:auto !important;
    left:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:86px !important;
    height:76px !important;
    margin:0 !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    z-index:3 !important;
    pointer-events:auto !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab{
    width:62px !important;
    height:62px !important;
    border-radius:20px !important;
    transform:translateY(-13px) !important;
    -webkit-transform:translateY(-13px) !important;
    box-shadow:0 14px 32px color-mix(in srgb,var(--brand) 35%,transparent) !important;
    pointer-events:auto !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab:active{
    transform:translateY(-13px) scale(.94) !important;
    -webkit-transform:translateY(-13px) scale(.94) !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab.open{
    transform:translateY(-13px) rotate(45deg) !important;
    -webkit-transform:translateY(-13px) rotate(45deg) !important;
  }

  /* Menu do "+" centralizado acima do dock */
  body[data-screen="app"] .fab-menu.fab-menu-center,
  body[data-screen="app"] .fab-menu.fab-menu-center:not([hidden]){
    position:fixed !important;
    left:50% !important;
    right:auto !important;
    bottom:105px !important;
    transform:translateX(-50%) !important;
    transform-origin:center bottom !important;
    align-items:stretch !important;
    z-index:72 !important;
    animation:fabCenterDesktopIn .13s ease-out !important;
  }

  @keyframes fabCenterDesktopIn{
    from{opacity:0;transform:translateX(-50%) translateY(8px)}
    to{opacity:1;transform:translateX(-50%) translateY(0)}
  }

  /* Pull to refresh é uma interação de toque; no desktop não precisa aparecer. */
  body[data-screen="app"] .pull-refresh{
    display:none !important;
  }

  /* Modais continuam centralizados no desktop */
  .modal{
    align-items:center !important;
    justify-content:center !important;
    padding:32px !important;
  }

  .modal .sheet{
    width:min(620px,calc(100vw - 64px)) !important;
    max-width:620px !important;
    max-height:min(86dvh,860px) !important;
    border:1px solid var(--line) !important;
    border-radius:22px !important;
    padding:0 22px 24px !important;
    box-shadow:0 24px 70px rgba(18,28,22,.22) !important;
  }

  .modal .sheet > .sheet-head{
    margin:0 -22px 18px !important;
    padding:18px 22px 14px !important;
    border-radius:22px 22px 0 0 !important;
  }

  .modal .sheet.auth-plans-sheet,
  .modal .sheet.ai-report-sheet,
  .modal .sheet.guide-hub-sheet{
    width:min(760px,calc(100vw - 64px)) !important;
    max-width:760px !important;
  }

  /* Modal aberto não altera a posição do dock */
  body.modal-open[data-screen="app"] .bottom-nav{
    position:fixed !important;
    left:50% !important;
    bottom:18px !important;
    width:min(880px,calc(100vw - 64px)) !important;
    height:76px !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
  }

  /* O scroll continua nativo com mouse e trackpad */
  body:not(.modal-open)[data-screen="app"]{
    position:static !important;
    overflow-y:auto !important;
  }
}

@media (min-width:1400px){
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    max-width:1240px !important;
  }

  body[data-screen="app"] .topbar{
    padding-left:max(40px,calc((100vw - 1240px)/2)) !important;
    padding-right:max(40px,calc((100vw - 1240px)/2)) !important;
  }

  body[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav{
    width:920px !important;
  }
}


/* v1.142 — Desktop: navegação central dentro do cabeçalho */
@media (min-width:1000px){
  body[data-screen="app"] .topbar{
    display:grid !important;
    grid-template-columns:minmax(260px,1fr) auto minmax(220px,1fr) !important;
    align-items:center !important;
    column-gap:28px !important;
    height:76px !important;
    min-height:76px !important;
    padding-left:max(32px,calc((100vw - 1320px)/2)) !important;
    padding-right:max(32px,calc((100vw - 1320px)/2)) !important;
  }

  body[data-screen="app"] .topbar > div:first-child{
    grid-column:1 !important;
    justify-self:start !important;
  }

  body[data-screen="app"] .topbar .top-actions{
    grid-column:3 !important;
    justify-self:end !important;
  }

  /* A antiga bottom-nav deixa de ser rodapé e vira a navegação do centro
     do cabeçalho. */
  body[data-screen="app"] .bottom-nav{
    position:fixed !important;
    top:9px !important;
    left:50% !important;
    right:auto !important;
    bottom:auto !important;
    width:auto !important;
    min-width:460px !important;
    height:58px !important;
    min-height:58px !important;
    margin:0 !important;
    padding:4px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
    z-index:75 !important;
    border:0 !important;
    border-radius:16px !important;
    background:transparent !important;
    box-shadow:none !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    overflow:visible !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn{
    width:auto !important;
    min-width:104px !important;
    height:48px !important;
    min-height:48px !important;
    padding:8px 14px !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    border-radius:13px !important;
    font-size:12px !important;
    font-weight:750 !important;
    white-space:nowrap !important;
  }

  body[data-screen="app"] .bottom-nav .nav-icon{
    width:24px !important;
    min-width:24px !important;
    height:24px !important;
    display:grid !important;
    place-items:center !important;
    border-radius:0 !important;
    background:transparent !important;
  }

  body[data-screen="app"] .bottom-nav .nav-icon svg,
  body[data-screen="app"] .bottom-nav .nav-btn svg{
    width:21px !important;
    height:21px !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn.active{
    color:var(--brand) !important;
    background:color-mix(in srgb,var(--brand) 10%,var(--surface)) !important;
  }

  /* O + não participa da navegação: vira ação flutuante. */
  body[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:fixed !important;
    right:30px !important;
    bottom:28px !important;
    left:auto !important;
    top:auto !important;
    width:62px !important;
    height:62px !important;
    margin:0 !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    z-index:78 !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab{
    width:60px !important;
    height:60px !important;
    border-radius:19px !important;
    transform:none !important;
    -webkit-transform:none !important;
    box-shadow:0 14px 32px color-mix(in srgb,var(--brand) 34%,transparent) !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab:active{
    transform:scale(.94) !important;
    -webkit-transform:scale(.94) !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab.open{
    transform:rotate(45deg) !important;
    -webkit-transform:rotate(45deg) !important;
  }

  body[data-screen="app"] .fab-menu.fab-menu-center,
  body[data-screen="app"] .fab-menu.fab-menu-center:not([hidden]){
    position:fixed !important;
    left:auto !important;
    right:30px !important;
    bottom:100px !important;
    transform:none !important;
    transform-origin:right bottom !important;
    align-items:flex-end !important;
    z-index:79 !important;
    animation:fabHeaderNavIn .13s ease-out !important;
  }

  @keyframes fabHeaderNavIn{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:none}
  }

  /* Como não há mais dock no rodapé, reduzimos o espaço inferior extra. */
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    padding-bottom:72px !important;
  }

  /* Modal aberto: preserva a navegação no cabeçalho sem reposicionamento. */
  body.modal-open[data-screen="app"] .bottom-nav{
    position:fixed !important;
    top:9px !important;
    left:50% !important;
    bottom:auto !important;
    width:auto !important;
    height:58px !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
  }

  body.modal-open[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:fixed !important;
    top:auto !important;
    left:auto !important;
    right:30px !important;
    bottom:28px !important;
  }
}

/* Em notebooks menores, compacta os rótulos sem esconder funções. */
@media (min-width:1000px) and (max-width:1199px){
  body[data-screen="app"] .topbar{
    grid-template-columns:minmax(220px,1fr) auto minmax(180px,1fr) !important;
    column-gap:14px !important;
    padding-left:24px !important;
    padding-right:24px !important;
  }

  body[data-screen="app"] .bottom-nav{
    min-width:410px !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn{
    min-width:92px !important;
    padding-left:10px !important;
    padding-right:10px !important;
    gap:6px !important;
    font-size:11px !important;
  }

  body[data-screen="app"] .brand-title{
    font-size:20px !important;
  }
}


/* v1.143 — Desktop: cabeçalho fixo até abaixo do seletor de mês */
@media (min-width:1000px){

  /* Cabeçalho principal permanece fixo */
  body[data-screen="app"] .topbar{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:76px !important;
    min-height:76px !important;
    z-index:90 !important;
    background:var(--bg) !important;
    border-bottom:0 !important;
    box-shadow:none !important;
  }

  /* O seletor de mês passa a fazer parte visual do cabeçalho fixo */
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:fixed !important;
    top:76px !important;
    left:50% !important;
    right:auto !important;
    width:min(1180px,calc(100vw - 64px)) !important;
    height:auto !important;
    margin:0 !important;
    padding:10px 0 14px !important;
    z-index:88 !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:none !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    overflow:visible !important;
  }

  /* Fundo contínuo atrás do topo e do seletor de mês */
  body[data-screen="app"]::before{
    content:"";
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:170px;
    z-index:40;
    background:var(--bg);
    border-bottom:1px solid var(--line);
    pointer-events:none;
  }

  /* Todo conteúdo começa abaixo do cabeçalho + mês */
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    padding-top:184px !important;
  }

  /* Como o mês saiu do fluxo, evita espaço residual no topo da página */
  body[data-screen="app"] .stick-head + *,
  body[data-screen="app"] .home-month-head + *{
    margin-top:0 !important;
  }

  /* Mantém a navegação do cabeçalho acima do fundo fixo */
  body[data-screen="app"] .bottom-nav{
    z-index:95 !important;
  }

  body[data-screen="app"] .top-actions{
    position:relative;
    z-index:96;
  }

  body[data-screen="app"] .topbar > div:first-child{
    position:relative;
    z-index:96;
  }

  /* Modal sempre acima de todo o cabeçalho fixo */
  body[data-screen="app"] .modal{
    z-index:1000 !important;
  }

  /* Durante modal, topo fixo mantém geometria sem reposicionamento */
  body.modal-open[data-screen="app"] .topbar{
    position:fixed !important;
    top:0 !important;
  }

  body.modal-open[data-screen="app"] .stick-head,
  body.modal-open[data-screen="app"] .home-month-head{
    position:fixed !important;
    top:76px !important;
  }
}

/* Em telas desktop maiores, amplia o seletor mantendo alinhamento */
@media (min-width:1400px){
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    width:min(1240px,calc(100vw - 80px)) !important;
  }
}


/* v1.144 — download em Lançamentos igual ao Relatório + Guia mais visível */
.tx-export-trigger{
  flex:0 0 42px !important;
}

/* O Guia/IA ganha identidade própria no cabeçalho sem competir com Ajustes. */
.guide-head-btn{
  color:#6d3fe8 !important;
  background:linear-gradient(145deg,#f7f2ff,#eee7ff) !important;
  border-color:#d9c9ff !important;
  box-shadow:0 6px 16px rgba(109,63,232,.16) !important;
}
.guide-head-btn svg{
  color:#6d3fe8 !important;
  fill:currentColor !important;
}
.guide-head-btn:active{
  background:linear-gradient(145deg,#efe7ff,#e5dbff) !important;
  transform:scale(.94) !important;
}
[data-theme="dark"] .guide-head-btn{
  color:#c6b2ff !important;
  background:linear-gradient(145deg,rgba(112,72,220,.28),rgba(92,60,190,.18)) !important;
  border-color:rgba(170,145,255,.34) !important;
  box-shadow:0 6px 18px rgba(105,70,220,.22) !important;
}
[data-theme="dark"] .guide-head-btn svg{
  color:#c6b2ff !important;
}

/* No telefone, o download em Lançamentos fica idêntico ao botão de Relatório. */
@media(max-width:699px){
  .filters-row{
    align-items:center !important;
  }
  .filters-row .filters{
    min-width:0;
    flex:1 1 auto;
  }
  .tx-export-trigger{
    width:39px !important;
    height:39px !important;
    flex:0 0 39px !important;
    border-radius:13px !important;
    padding:0 !important;
  }
  .tx-export-trigger svg{
    width:19px !important;
    height:19px !important;
  }

  .guide-head-btn{
    color:#7546ee !important;
    background:linear-gradient(145deg,#f5efff,#ebe2ff) !important;
    border-color:#d7c6ff !important;
    box-shadow:0 5px 14px rgba(117,70,238,.18) !important;
  }
}

/* No desktop mantém o mesmo ícone de download, sem o rótulo "Excel". */
@media(min-width:700px){
  .tx-export-trigger{
    width:42px !important;
    height:42px !important;
  }
}


/* v1.145 — CORREÇÃO DEFINITIVA DO DESKTOP
   Cabeçalho horizontal + mês visível + FAB fora do header */
@media (min-width:1000px){

  html,
  body,
  body[data-screen="app"]{
    min-width:0 !important;
    width:100% !important;
    height:auto !important;
    min-height:100% !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  body[data-screen="app"] .shell{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-height:100dvh !important;
    height:auto !important;
    margin:0 !important;
    overflow:visible !important;
    background:var(--bg) !important;
  }

  /* ---------- CABEÇALHO PRINCIPAL ---------- */
  body[data-screen="app"] .topbar{
    position:fixed !important;
    inset:0 0 auto 0 !important;
    width:100% !important;
    height:82px !important;
    min-height:82px !important;
    margin:0 !important;
    padding:0 34px !important;

    display:grid !important;
    grid-template-columns:minmax(240px,1fr) auto minmax(220px,1fr) !important;
    align-items:center !important;
    gap:24px !important;

    z-index:110 !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:0 4px 16px rgba(18,28,22,.035) !important;
    transform:none !important;
  }

  body[data-screen="app"] .topbar > div:first-child{
    grid-column:1 !important;
    justify-self:start !important;
    min-width:0 !important;
    position:relative !important;
    z-index:112 !important;
  }

  body[data-screen="app"] .brand-title{
    font-size:22px !important;
    line-height:1.05 !important;
  }

  body[data-screen="app"] .brand-sub{
    margin-top:4px !important;
  }

  body[data-screen="app"] .topbar .top-actions{
    grid-column:3 !important;
    justify-self:end !important;
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    position:relative !important;
    z-index:112 !important;
  }

  /* ---------- NAVEGAÇÃO HORIZONTAL NO CENTRO ---------- */
  body[data-screen="app"] .bottom-nav{
    position:fixed !important;
    top:12px !important;
    left:50% !important;
    right:auto !important;
    bottom:auto !important;

    width:auto !important;
    min-width:0 !important;
    height:58px !important;
    min-height:58px !important;
    margin:0 !important;
    padding:4px !important;

    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;

    border:0 !important;
    border-radius:16px !important;
    background:transparent !important;
    box-shadow:none !important;
    z-index:115 !important;

    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    overflow:visible !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn{
    position:relative !important;
    width:auto !important;
    min-width:108px !important;
    height:50px !important;
    min-height:50px !important;
    margin:0 !important;
    padding:8px 14px !important;

    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;

    flex:0 0 auto !important;
    border-radius:13px !important;
    font-size:12px !important;
    font-weight:750 !important;
    white-space:nowrap !important;
    text-align:center !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn .nav-icon{
    display:grid !important;
    place-items:center !important;
    width:23px !important;
    min-width:23px !important;
    height:23px !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:0 !important;
    background:transparent !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn svg,
  body[data-screen="app"] .bottom-nav .nav-btn .budget-nav-mask{
    width:21px !important;
    height:21px !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn.active{
    background:color-mix(in srgb,var(--brand) 9%,var(--surface)) !important;
    color:var(--brand) !important;
  }

  /* ---------- "+" NÃO ENTRA NO CABEÇALHO ---------- */
  body[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:fixed !important;
    top:auto !important;
    left:auto !important;
    right:28px !important;
    bottom:28px !important;

    width:62px !important;
    height:62px !important;
    margin:0 !important;
    padding:0 !important;

    display:grid !important;
    place-items:center !important;
    flex:none !important;
    z-index:120 !important;
    pointer-events:none !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab{
    width:60px !important;
    height:60px !important;
    border-radius:19px !important;
    margin:0 !important;

    transform:none !important;
    -webkit-transform:none !important;
    pointer-events:auto !important;
    box-shadow:0 14px 32px color-mix(in srgb,var(--brand) 34%,transparent) !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab:active{
    transform:scale(.94) !important;
    -webkit-transform:scale(.94) !important;
  }

  body[data-screen="app"] .bottom-nav .nav-fab.open{
    transform:rotate(45deg) !important;
    -webkit-transform:rotate(45deg) !important;
  }

  body[data-screen="app"] .fab-menu.fab-menu-center,
  body[data-screen="app"] .fab-menu.fab-menu-center:not([hidden]){
    position:fixed !important;
    top:auto !important;
    left:auto !important;
    right:28px !important;
    bottom:100px !important;
    transform:none !important;
    -webkit-transform:none !important;
    transform-origin:right bottom !important;
    align-items:flex-end !important;
    z-index:121 !important;
  }

  /* ---------- MÊS FIXO LOGO ABAIXO DO HEADER ---------- */
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:fixed !important;
    top:82px !important;
    left:50% !important;
    right:auto !important;

    width:min(1180px,calc(100vw - 64px)) !important;
    height:auto !important;
    margin:0 !important;
    padding:12px 0 14px !important;

    z-index:105 !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:none !important;

    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    overflow:visible !important;
  }

  body[data-screen="app"] .stick-head .month-nav,
  body[data-screen="app"] .home-month-head .month-nav{
    margin:0 !important;
    width:100% !important;
  }

  /* Fundo fixo contínuo do topo até abaixo do mês */
  body[data-screen="app"]::before{
    content:"" !important;
    position:fixed !important;
    inset:0 0 auto 0 !important;
    height:170px !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    z-index:80 !important;
    pointer-events:none !important;
  }

  /* ---------- CONTEÚDO ROLA ABAIXO ---------- */
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    width:100% !important;
    max-width:1180px !important;
    min-height:100dvh !important;
    height:auto !important;
    margin:0 auto !important;
    padding:188px 32px 80px !important;
    overflow:visible !important;
  }

  /* O stick-head permanece no DOM, mas como fixed não ocupa espaço */
  body[data-screen="app"] .stick-head + *,
  body[data-screen="app"] .home-month-head + *{
    margin-top:0 !important;
  }

  /* ---------- MODAL ---------- */
  body[data-screen="app"] .modal{
    z-index:1000 !important;
  }

  body.modal-open[data-screen="app"] .bottom-nav{
    top:12px !important;
    left:50% !important;
    right:auto !important;
    bottom:auto !important;
    height:58px !important;
    width:auto !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
  }

  body.modal-open[data-screen="app"] .bottom-nav .nav-fab-wrap{
    top:auto !important;
    left:auto !important;
    right:28px !important;
    bottom:28px !important;
  }
}

/* Notebook: reduz levemente os itens para caber em uma linha */
@media (min-width:1000px) and (max-width:1199px){
  body[data-screen="app"] .topbar{
    grid-template-columns:minmax(200px,1fr) auto minmax(190px,1fr) !important;
    gap:12px !important;
    padding-left:20px !important;
    padding-right:20px !important;
  }

  body[data-screen="app"] .bottom-nav .nav-btn{
    min-width:92px !important;
    padding-left:10px !important;
    padding-right:10px !important;
    gap:6px !important;
    font-size:11px !important;
  }

  body[data-screen="app"] .brand-title{
    font-size:19px !important;
  }

  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    width:calc(100vw - 48px) !important;
  }
}

@media (min-width:1400px){
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    max-width:1240px !important;
  }

  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    width:min(1240px,calc(100vw - 80px)) !important;
  }
}


/* v1.146 — desktop estabilizado: nav horizontal, mês visível, + menor ao centro */
@media (min-width:1000px){
  body[data-screen="app"] .shell{
    display:block !important;
    min-height:100dvh !important;
    overflow:visible !important;
  }

  /* Header principal */
  body[data-screen="app"] .topbar{
    position:fixed !important;
    inset:0 0 auto 0 !important;
    height:78px !important;
    min-height:78px !important;
    padding:0 34px !important;
    display:grid !important;
    grid-template-columns:minmax(240px,1fr) auto minmax(220px,1fr) !important;
    align-items:center !important;
    gap:20px !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:0 3px 14px rgba(18,28,22,.03) !important;
    z-index:120 !important;
  }
  body[data-screen="app"] .topbar > div:first-child{grid-column:1 !important; z-index:122 !important;}
  body[data-screen="app"] .topbar .top-actions{grid-column:3 !important; justify-self:end !important; z-index:122 !important;}

  /* Navegação horizontal ao centro */
  body[data-screen="app"] .bottom-nav{
    position:fixed !important;
    top:13px !important;
    left:50% !important;
    bottom:auto !important;
    right:auto !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    width:auto !important;
    height:52px !important;
    min-height:52px !important;
    padding:3px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    z-index:125 !important;
    overflow:visible !important;
  }
  body[data-screen="app"] .bottom-nav .nav-btn{
    width:auto !important;
    min-width:108px !important;
    height:46px !important;
    min-height:46px !important;
    padding:7px 13px !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    font-size:12px !important;
    font-weight:750 !important;
    white-space:nowrap !important;
    border-radius:13px !important;
    flex:0 0 auto !important;
  }
  body[data-screen="app"] .bottom-nav .nav-icon{
    width:22px !important;
    min-width:22px !important;
    height:22px !important;
    display:grid !important;
    place-items:center !important;
    padding:0 !important;
    background:transparent !important;
    border-radius:0 !important;
  }
  body[data-screen="app"] .bottom-nav .nav-btn.active{
    background:color-mix(in srgb,var(--brand) 9%,var(--surface)) !important;
    color:var(--brand) !important;
  }

  /* + menor e centralizado na base, como no mobile */
  body[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:fixed !important;
    left:50% !important;
    right:auto !important;
    bottom:18px !important;
    top:auto !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    width:58px !important;
    height:58px !important;
    display:grid !important;
    place-items:center !important;
    margin:0 !important;
    padding:0 !important;
    z-index:130 !important;
    pointer-events:none !important;
  }
  body[data-screen="app"] .bottom-nav .nav-fab{
    width:54px !important;
    height:54px !important;
    border-radius:18px !important;
    transform:none !important;
    -webkit-transform:none !important;
    box-shadow:0 12px 28px color-mix(in srgb,var(--brand) 30%,transparent) !important;
    pointer-events:auto !important;
  }
  body[data-screen="app"] .bottom-nav .nav-fab:active{
    transform:scale(.95) !important;
    -webkit-transform:scale(.95) !important;
  }
  body[data-screen="app"] .bottom-nav .nav-fab.open{
    transform:rotate(45deg) !important;
    -webkit-transform:rotate(45deg) !important;
  }
  body[data-screen="app"] .fab-menu.fab-menu-center,
  body[data-screen="app"] .fab-menu.fab-menu-center:not([hidden]){
    position:fixed !important;
    left:50% !important;
    right:auto !important;
    bottom:84px !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    align-items:center !important;
    z-index:131 !important;
  }

  /* Mês visível logo abaixo do cabeçalho */
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:fixed !important;
    top:78px !important;
    left:50% !important;
    right:auto !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    width:min(1180px, calc(100vw - 64px)) !important;
    margin:0 !important;
    padding:10px 0 14px !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:none !important;
    z-index:118 !important;
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  body[data-screen="app"] .stick-head .month-nav,
  body[data-screen="app"] .home-month-head .month-nav{
    width:100% !important;
    margin:0 !important;
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  /* Faixa de fundo do bloco fixo superior */
  body[data-screen="app"]::before{
    content:"" !important;
    position:fixed !important;
    left:0; right:0; top:0;
    height:156px !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    pointer-events:none !important;
    z-index:100 !important;
  }

  /* Conteúdo começa após cabeçalho + mês */
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    max-width:1180px !important;
    margin:0 auto !important;
    padding:168px 32px 96px !important;
    min-height:100dvh !important;
    overflow:visible !important;
  }

  /* modal above all */
  body[data-screen="app"] .modal{z-index:1000 !important;}
}

@media (min-width:1000px) and (max-width:1199px){
  body[data-screen="app"] .topbar{
    padding-left:20px !important;
    padding-right:20px !important;
    grid-template-columns:minmax(190px,1fr) auto minmax(180px,1fr) !important;
    gap:12px !important;
  }
  body[data-screen="app"] .bottom-nav .nav-btn{
    min-width:92px !important;
    font-size:11px !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{width:calc(100vw - 48px) !important;}
}
@media (min-width:1400px){
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{max-width:1240px !important;}
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{width:min(1240px, calc(100vw - 80px)) !important;}
}

/* ================================================================
   v1_147 — CORREÇÃO DESKTOP (sobrepõe os blocos anteriores)
   1. FAB: o transform da pílula de navegação sequestrava o position:fixed
      do botão (ancestral transformado vira containing block). Centraliza
      a pílula por margens automáticas, sem transform.
   2. Mês: abandona o esquema "fixo + faixa ::before" (o conteúdo ficava
      pintado atrás da faixa). O mês volta ao fluxo, logo abaixo do topo,
      e rola junto com a página — sempre visível.
   ================================================================ */
@media (min-width:1000px){
  body[data-screen="app"]::before{content:none !important;}

  body[data-screen="app"] .bottom-nav{
    left:0 !important; right:0 !important;
    margin-inline:auto !important;
    width:fit-content !important;
    transform:none !important; -webkit-transform:none !important;
  }

  /* will-change:transform no #page criava containing block e prendia o fixed */
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{ will-change:auto !important; }

  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:static !important;
    top:auto !important; left:auto !important; right:auto !important;
    width:100% !important;
    transform:none !important; -webkit-transform:none !important;
    margin:0 0 16px !important;
    padding:0 0 14px !important;
    background:transparent !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:none !important;
    z-index:auto !important;
  }
  body[data-screen="app"] .stick-head .month-nav,
  body[data-screen="app"] .home-month-head .month-nav{
    max-width:640px !important;
    margin:0 auto !important;
  }

  body[data-screen="app"] #page,
  body[data-screen="app"] .page{
    padding-top:108px !important;
  }
}

/* ================================================================
   v1_148 — MÊS NO CABEÇALHO FIXO + FAB AO LADO DE "INÍCIO" (desktop)
   - O seletor de mês vira uma faixa fixa logo abaixo do topo (82px),
     com fundo próprio (sem ::before global). O bloco original reserva
     a altura no fluxo, então Lançamentos etc. não pulam.
   - O "+" entra na pílula de navegação, antes de "Início" (order:-1).
   ================================================================ */
@media (min-width:1000px){
  /* Reserva o espaço da faixa no fluxo; conteúdo real fica fixo */
  /* will-change:transform no #page criava containing block e prendia o fixed */
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{ will-change:auto !important; }

  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{
    position:static !important;
    margin:0 !important;
    padding:64px 0 0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    width:100% !important;
    transform:none !important;
    -webkit-transform:none !important;
  }

  body[data-screen="app"] .stick-head .month-nav,
  body[data-screen="app"] .home-month-head .month-nav{
    position:fixed !important;
    top:90px !important;
    left:0 !important; right:0 !important;
    margin:0 auto !important;
    max-width:560px !important;
    width:min(560px, calc(100vw - 64px)) !important;
    z-index:108 !important;
  }
  /* Faixa de fundo do bloco fixo (agora funciona: o will-change saiu) */
  body[data-screen="app"]::before{
    content:"" !important;
    position:fixed !important;
    top:0 !important; left:0 !important; right:0 !important;
    height:146px !important;
    background:var(--bg) !important;
    border-bottom:1px solid var(--line) !important;
    z-index:100 !important;
    pointer-events:none !important;
  }

  /* FAB dentro da pílula, antes de Início */
  body[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:static !important;
    order:-1 !important;
    width:auto !important; height:auto !important;
    margin:0 4px 0 0 !important; padding:0 !important;
    display:flex !important; align-items:center !important;
    transform:none !important; -webkit-transform:none !important;
    pointer-events:auto !important;
  }
  body[data-screen="app"] .bottom-nav .nav-fab{
    width:42px !important; height:42px !important;
    border-radius:14px !important;
    transform:none !important; -webkit-transform:none !important;
    box-shadow:0 8px 18px color-mix(in srgb,var(--brand) 26%,transparent) !important;
  }
  /* Menu do + abre logo abaixo do cabeçalho */
  body[data-screen="app"] .fab-menu.fab-menu-center,
  body[data-screen="app"] .fab-menu.fab-menu-center:not([hidden]){
    position:fixed !important;
    top:88px !important; bottom:auto !important;
    left:50% !important; right:auto !important;
    transform:translateX(-50%) !important;
    -webkit-transform:translateX(-50%) !important;
    z-index:150 !important;
  }
}

/* ================================================================
   v1_149 — FORMULÁRIOS COM VIDA + RODAPÉ SEM SALTO (mobile)
   ================================================================ */
/* Papel com tinta da marca no claro; campos brancos saltam de verdade */
.sheet{background:color-mix(in srgb, var(--brand) 5%, var(--bg))}
[data-theme="dark"] .sheet{background:var(--surface)}
.modal .sheet > .sheet-head{background:color-mix(in srgb, var(--brand) 5%, var(--bg)) !important}
[data-theme="dark"] .modal .sheet > .sheet-head{background:var(--surface) !important}

.field input,.field select,.field textarea{
  border-color:color-mix(in srgb, var(--brand) 15%, var(--line));
}
.field label{color:color-mix(in srgb, var(--brand-2) 55%, var(--ink-soft));font-weight:750}
[data-theme="dark"] .field label{color:var(--ink-soft)}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--brand-2);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-2) 16%, transparent);
}

/* No celular, o cabeçalho da folha rola junto com o conteúdo
   (nada de barra "perseguindo" o dedo; o fundo escurecido fecha no toque) */
@media (max-width:699px){
  .modal .sheet > .sheet-head{
    position:static;
    margin:0 0 14px;
    padding:0;
    background:transparent !important;
    border-bottom:0;
    border-radius:0;
  }
}

/* Rodapé: some suave sob o modal e SÓ reaparece depois do realinhamento
   do iOS (o salto acontecia porque ele voltava visível e era ajustado
   na frente do usuário). Transform fica intocado (compensação do iOS). */
body.modal-open .bottom-nav{
  pointer-events:none;
}
/* O "leg" do realinhamento pós-teclado vira um deslize suave */
@media (max-width:699px){
  .bottom-nav{transition:transform .16s ease}
}

/* ================================================================
   v1_150 — DESKTOP: linha única abaixo do mês + Guia sem sumiço/salto
   ================================================================ */
@media (min-width:1000px){
  /* Sem salto de layout quando o modal trava a rolagem */
  html{scrollbar-gutter:stable}

  /* A divisória vive só abaixo do mês (borda da faixa, em 146px) */
  body[data-screen="app"] .topbar{border-bottom:0 !important;box-shadow:none !important}

  /* Com a faixa global, o espaçamento é da página (não do bloco do mês) */
  body[data-screen="app"] .stick-head,
  body[data-screen="app"] .home-month-head{padding:0 !important}
  body[data-screen="app"] #page,
  body[data-screen="app"] .page{padding-top:152px !important}

  /* A pílula do cabeçalho (com o +) NÃO some sob modais — regra era do celular */
  body.modal-open[data-screen="app"] .bottom-nav{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:none;
  }
}

/* ================================================================
   v1_152 — DESKTOP: o mês não pisca na troca de aba
   (o fade de entrada passa para o conteúdo, exceto o bloco do mês)
   ================================================================ */
@media (min-width:1000px){
  .page-enter{animation:none !important}
  .page-enter > *:not(.stick-head):not(.home-month-head){animation:pageIn .18s ease}
}

/* ================================================================
   v1_153 — DESKTOP: modal aberto não mexe na pílula nem no "+"
   (regras antigas do FAB flutuante empurravam-no para o canto)
   ================================================================ */
@media (min-width:1000px){
  body.modal-open[data-screen="app"] .bottom-nav{
    top:12px !important;
    left:0 !important; right:0 !important;
    bottom:auto !important;
    margin-inline:auto !important;
    width:fit-content !important;
    min-width:0 !important;
    transform:none !important; -webkit-transform:none !important;
  }
  body.modal-open[data-screen="app"] .bottom-nav .nav-fab-wrap{
    position:static !important;
    order:-1 !important;
    top:auto !important; left:auto !important; right:auto !important; bottom:auto !important;
    width:auto !important; height:auto !important;
    margin:0 4px 0 0 !important;
    transform:none !important; -webkit-transform:none !important;
    pointer-events:none !important;
  }
  body.modal-open[data-screen="app"] .bottom-nav .nav-fab{
    transform:none !important; -webkit-transform:none !important;
  }
}

/* ================================================================
   v1_154 — DESKTOP: pílula sem deslize ao abrir modal + travas relaxadas
   ================================================================ */
@media (min-width:1000px){
  body[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav{ top:12px !important; }

  /* Travas de modal herdadas do mobile causavam repaint do bloco fixo */
  html.modal-open{height:auto !important}
  body.modal-open{height:auto !important; position:static !important; width:auto !important}
}

/* ================================================================
   v1_156 — FORMULÁRIOS COM COR E ASSINATURA
   ================================================================ */
/* Papel com gradiente da marca (vence o var(--surface)!important antigo) */
.modal .sheet,
.sheet{
  background:linear-gradient(180deg,
    color-mix(in srgb, var(--brand) 11%, var(--bg)) 0,
    color-mix(in srgb, var(--brand) 5%, var(--bg)) 170px,
    color-mix(in srgb, var(--brand) 5%, var(--bg))) !important;
}
[data-theme="dark"] .modal .sheet,
[data-theme="dark"] .sheet{background:var(--surface) !important}
/* Máscara antiga sobre o cabeçalho: fora */
.modal .sheet > .sheet-head::before{content:none !important; display:none !important}
/* Cabeçalho das folhas: faixa verde da marca, título branco, traço âmbar */
.modal .sheet > .sheet-head{
  background:linear-gradient(135deg, var(--hero-from), var(--hero-to)) !important;
  border-bottom:0 !important;
}
[data-theme="dark"] .modal .sheet > .sheet-head{background:linear-gradient(135deg, var(--hero-from), var(--hero-to)) !important;border-bottom:0 !important}
.modal .sheet > .sheet-head h2{color:#fff !important;font-size:21px}
.modal .sheet > .sheet-head h2::after{
  content:"";
  display:block;
  width:36px; height:4px;
  border-radius:3px;
  margin-top:7px;
  background:linear-gradient(90deg, #F2C566, #E2A63D);
}
.modal .sheet > .sheet-head .guide-kicker,
.modal .sheet > .sheet-head .tx-created-by,
.modal .sheet > .sheet-head span,
.modal .sheet > .sheet-head small{color:rgba(255,255,255,.78) !important}
.modal .sheet > .sheet-head .guide-kicker svg{color:#F2C566}
.modal .sheet > .sheet-head .close{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.28);
  color:#fff;
}
/* No mobile o cabeçalho é estático — a faixa sangra até as bordas da folha */
@media (max-width:699px){
  .modal .sheet > .sheet-head{
    position:static !important;
    top:auto !important;
    margin:-20px -18px 20px !important;
    padding:18px 18px 16px !important;
    border-radius:26px 26px 0 0 !important;
  }
}

/* Campos: presença mais firme; o Valor é a estrela */
.field input,.field select,.field textarea{
  border-color:color-mix(in srgb, var(--brand) 22%, var(--line));
}
.amount-field{
  border-width:2px !important;
  border-color:color-mix(in srgb, var(--brand) 32%, var(--line)) !important;
}

/* Ação principal com o gradiente da marca */
.sheet .primary{
  background:linear-gradient(135deg, var(--hero-from), var(--hero-to));
  box-shadow:0 10px 22px color-mix(in srgb, var(--hero-to) 30%, transparent);
}


/* ================================================================
   v1.157 — formulários estáveis + Guia Pro centralizado
   ================================================================ */

/* Cabeçalho de qualquer sheet permanece dentro da própria área de rolagem.
   Isso vale para receita, despesa, Guia, perfil, metas, cartões, contas etc. */
.modal .sheet{
  position:relative !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-top:0 !important;
  overscroll-behavior:contain !important;
  -webkit-overflow-scrolling:touch;
}

.modal .sheet > .sheet-head{
  position:sticky !important;
  top:0 !important;
  z-index:120 !important;
  margin:0 -18px 18px !important;
  padding:16px 18px 14px !important;
  min-height:68px !important;

  background:linear-gradient(135deg,var(--hero-from),var(--hero-to)) !important;
  border-bottom:2px solid color-mix(in srgb,#F2C566 72%,transparent) !important;
  border-radius:26px 26px 0 0 !important;
  box-shadow:0 8px 18px -15px rgba(0,0,0,.55) !important;

  isolation:isolate !important;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* Camada opaca real: conteúdo nunca aparece por trás do título durante scroll. */
.modal .sheet > .sheet-head::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  border-radius:inherit !important;
  background:linear-gradient(135deg,var(--hero-from),var(--hero-to)) !important;
  pointer-events:none !important;
}

.modal .sheet > .sheet-head h1,
.modal .sheet > .sheet-head h2,
.modal .sheet > .sheet-head h3,
.modal .sheet > .sheet-head strong{
  color:#fff !important;
}
.modal .sheet > .sheet-head .tx-created-by,
.modal .sheet > .sheet-head .guide-kicker,
.modal .sheet > .sheet-head span,
.modal .sheet > .sheet-head small{
  color:rgba(255,255,255,.82) !important;
}

/* X de fechar: área maior, alinhamento consistente e sempre acima da faixa. */
.modal .sheet > .sheet-head .close,
.modal .sheet > .sheet-head [data-close],
.modal .sheet > .sheet-head .icon-btn{
  position:relative !important;
  z-index:130 !important;
  flex:0 0 42px !important;
  width:42px !important;
  min-width:42px !important;
  height:42px !important;
  margin:0 !important;
  padding:0 !important;

  display:grid !important;
  place-items:center !important;

  border:1px solid rgba(255,255,255,.30) !important;
  border-radius:13px !important;
  background:rgba(255,255,255,.15) !important;
  color:#fff !important;

  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  font-size:25px !important;
  font-weight:400 !important;
  line-height:1 !important;

  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
.modal .sheet > .sheet-head .close:active,
.modal .sheet > .sheet-head [data-close]:active,
.modal .sheet > .sheet-head .icon-btn:active{
  transform:scale(.92) !important;
  background:rgba(255,255,255,.23) !important;
}

/* Cards bloqueados do Guia deixam claro que pertencem ao Pro. */
.guide-hub-actions > button.guide-pro-locked{
  opacity:.72;
}
.guide-hub-actions > button.guide-pro-locked > span{
  background:color-mix(in srgb,#7546ee 12%,var(--surface)) !important;
  color:#7546ee !important;
}

/* ---------- telefone / PWA ---------- */
@media(max-width:699px){
  :root{
    --form-footer-clearance:80px;
  }

  /* O overlay termina exatamente acima do rodapé.
     Assim o rodapé não some, não é recriado e não dá salto ao fechar. */
  body[data-screen="app"] .modal{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    bottom:var(--form-footer-clearance) !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 !important;

    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;

    z-index:1000 !important;
    overflow:hidden !important;
  }

  body[data-screen="app"] .modal .sheet{
    width:min(520px,100%) !important;
    max-width:100% !important;
    max-height:calc(100dvh - var(--form-footer-clearance) - 10px) !important;
    margin:0 !important;
    padding:0 18px calc(20px + env(safe-area-inset-bottom)) !important;
    border-radius:26px 26px 0 0 !important;
  }

  body[data-screen="app"] .modal .sheet > .sheet-head{
    position:sticky !important;
    top:0 !important;
    margin:0 -18px 18px !important;
    padding:16px 18px 13px !important;
    border-radius:26px 26px 0 0 !important;
  }

  /* Rodapé permanece no mesmo compositor e local enquanto o formulário abre. */
  body[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav{
    display:grid !important;
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    width:min(520px,100%) !important;
    margin:0 auto !important;
    z-index:1100 !important;
    transform:translateY(var(--ios-bottom-gap,0px)) !important;
    -webkit-transform:translateY(var(--ios-bottom-gap,0px)) !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  /* Durante formulário ele fica visível, porém não recebe toques acidentais. */
  body.modal-open[data-screen="app"] .bottom-nav{
    pointer-events:none !important;
  }

  /* Não permitimos que regras antigas voltem a transformar o cabeçalho em static. */
  .modal .sheet > .sheet-head{
    position:sticky !important;
    top:0 !important;
  }
}

/* ---------- desktop/tablet ---------- */
@media(min-width:700px){
  .modal .sheet{
    padding-top:0 !important;
  }
  .modal .sheet > .sheet-head{
    margin:0 -22px 18px !important;
    padding:17px 22px 14px !important;
    border-radius:22px 22px 0 0 !important;
  }
}

/* X da página Ajustes mais coerente com os demais fechamentos. */
.settings-close-btn{
  display:grid !important;
  place-items:center !important;
  font-size:23px !important;
  line-height:1 !important;
}


/* ================================================================
   v1.158 — iPhone/PWA: formulário abaixo da status bar + rodapé imóvel
   ================================================================ */
@media(max-width:699px){

  :root{
    /* altura visual reservada ao dock inferior do app */
    --form-nav-height:80px;
    /* folga abaixo da Dynamic Island/status bar */
    --form-top-safe:calc(env(safe-area-inset-top, 0px) + 14px);
  }

  /* O rodapé não muda de posição quando um formulário abre. */
  body[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;

    width:min(520px,100%) !important;
    height:var(--form-nav-height) !important;
    min-height:var(--form-nav-height) !important;
    margin:0 auto !important;

    z-index:1150 !important;

    /* remove qualquer correção dinâmica de viewport enquanto o modal existe */
    transform:none !important;
    -webkit-transform:none !important;
    translate:none !important;

    visibility:visible !important;
    opacity:1 !important;
  }

  body.modal-open[data-screen="app"] .bottom-nav{
    pointer-events:none !important;
  }

  /* O overlay ocupa só a área entre a status bar e o rodapé. */
  body[data-screen="app"] .modal{
    position:fixed !important;
    top:var(--form-top-safe) !important;
    left:0 !important;
    right:0 !important;
    bottom:var(--form-nav-height) !important;

    width:100% !important;
    height:auto !important;
    min-height:0 !important;

    margin:0 !important;
    padding:0 !important;

    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;

    overflow:hidden !important;
    z-index:1000 !important;
  }

  /* A folha termina no topo do rodapé e nunca invade a status bar. */
  body[data-screen="app"] .modal .sheet{
    position:relative !important;
    width:min(520px,100%) !important;
    max-width:100% !important;

    /* não deixa o sheet alcançar a bateria/relógio */
    max-height:calc(
      100dvh
      - var(--form-nav-height)
      - var(--form-top-safe)
    ) !important;

    height:auto !important;
    margin:0 !important;

    padding:0 18px 22px !important;
    border-radius:26px 26px 0 0 !important;

    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;

    /* não desloca o sheet durante scroll */
    transform:none !important;
    -webkit-transform:none !important;
  }

  /* Cabeçalho permanece preso ao topo DO FORMULÁRIO.
     Os campos rolam por baixo; título e X não acompanham o scroll. */
  body[data-screen="app"] .modal .sheet > .sheet-head{
    position:sticky !important;
    top:0 !important;
    z-index:200 !important;

    min-height:72px !important;
    margin:0 -18px 18px !important;
    padding:17px 18px 14px !important;

    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;

    border-radius:26px 26px 0 0 !important;
    background:linear-gradient(135deg,var(--hero-from),var(--hero-to)) !important;
    border-bottom:2px solid color-mix(in srgb,#F2C566 72%,transparent) !important;
    box-shadow:0 8px 18px -15px rgba(0,0,0,.60) !important;

    isolation:isolate !important;
    transform:translateZ(0) !important;
    -webkit-transform:translateZ(0) !important;
  }

  body[data-screen="app"] .modal .sheet > .sheet-head::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    z-index:-1 !important;
    border-radius:inherit !important;
    background:linear-gradient(135deg,var(--hero-from),var(--hero-to)) !important;
    pointer-events:none !important;
  }

  /* X mais afastado das bordas, com alvo de toque confortável. */
  body[data-screen="app"] .modal .sheet > .sheet-head .close,
  body[data-screen="app"] .modal .sheet > .sheet-head [data-close],
  body[data-screen="app"] .modal .sheet > .sheet-head .icon-btn{
    position:relative !important;
    top:auto !important;
    right:auto !important;

    flex:0 0 44px !important;
    width:44px !important;
    min-width:44px !important;
    height:44px !important;

    margin:0 !important;
    padding:0 0 2px !important;

    display:grid !important;
    place-items:center !important;

    border-radius:14px !important;
    border:1px solid rgba(255,255,255,.32) !important;
    background:rgba(255,255,255,.16) !important;
    color:#fff !important;

    font-size:26px !important;
    font-weight:400 !important;
    line-height:1 !important;

    z-index:220 !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
  }

  /* Evita que regras antigas de modal-open alterem a geometria da tela. */
  html.modal-open,
  body.modal-open{
    height:auto !important;
  }

  body.modal-open{
    position:static !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    width:auto !important;
  }

  /* O app atrás permanece sem interação, mas não é reposicionado. */
  body.modal-open #app{
    touch-action:none !important;
  }
}


/* ================================================================
   v1.159 — cabeçalho realmente imóvel + navegação bloqueada no modal
   ================================================================ */
@media(max-width:699px){

  /* O modal vira o referencial do cabeçalho fixo. */
  body[data-screen="app"] .modal{
    --modal-head-h:74px;
  }

  body[data-screen="app"] .modal .sheet{
    /* cria espaço real para o header absoluto e rola só o corpo */
    padding-top:var(--modal-head-h) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    position:relative !important;
  }

  /* Header fora do fluxo de scroll: não sobe, não desce e não acompanha momentum. */
  body[data-screen="app"] .modal .sheet > .sheet-head{
    position:absolute !important;
    top:0 !important;
    left:18px !important;
    right:18px !important;

    width:auto !important;
    height:var(--modal-head-h) !important;
    min-height:var(--modal-head-h) !important;

    margin:0 !important;
    padding:16px 18px 13px !important;

    z-index:300 !important;
    border-radius:26px 26px 0 0 !important;
    background:linear-gradient(135deg,var(--hero-from),var(--hero-to)) !important;
    border-bottom:2px solid color-mix(in srgb,#F2C566 72%,transparent) !important;
    box-shadow:0 8px 18px -15px rgba(0,0,0,.60) !important;

    transform:none !important;
    -webkit-transform:none !important;
    backface-visibility:hidden !important;
    -webkit-backface-visibility:hidden !important;
  }

  /* Como o sheet tem padding lateral, o cabeçalho precisa “sangrar” até a borda visual. */
  body[data-screen="app"] .modal .sheet > .sheet-head{
    left:0 !important;
    right:0 !important;
  }

  /* O primeiro elemento do formulário nunca fica escondido sob o header. */
  body[data-screen="app"] .modal .sheet > .sheet-head + *{
    margin-top:18px !important;
  }

  /* Rodapé e FAB continuam visíveis, mas ficam totalmente inertes. */
  body.modal-open[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav *,
  body.modal-open[data-screen="app"] #fab,
  body.modal-open[data-screen="app"] #fab-menu,
  body.modal-open[data-screen="app"] #fab-menu *{
    pointer-events:none !important;
  }

  body.modal-open[data-screen="app"] #fab{
    opacity:.92 !important;
  }

  body.modal-open[data-screen="app"] #fab-menu{
    display:none !important;
  }
}


/* ================================================================
   v1.160 — correção estrutural do modal no iPhone
   Cabeçalho fora do scroll + rodapé visível porém completamente inerte
   ================================================================ */
@media(max-width:699px){

  body[data-screen="app"] .modal .sheet{
    position:relative !important;
    display:flex !important;
    flex-direction:column !important;

    padding:0 !important;
    overflow:hidden !important;

    max-height:calc(
      100dvh
      - var(--form-nav-height,80px)
      - var(--form-top-safe,calc(env(safe-area-inset-top,0px) + 14px))
    ) !important;

    border-radius:26px 26px 0 0 !important;
  }

  /* Cabeçalho é uma área física separada e nunca participa da rolagem. */
  body[data-screen="app"] .modal .sheet > .sheet-head{
    position:relative !important;
    inset:auto !important;

    width:100% !important;
    height:auto !important;
    min-height:74px !important;

    margin:0 !important;
    padding:16px 18px 13px !important;

    flex:0 0 auto !important;

    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;

    z-index:20 !important;
    background:linear-gradient(135deg,var(--hero-from),var(--hero-to)) !important;
    border-bottom:2px solid color-mix(in srgb,#F2C566 72%,transparent) !important;
    border-radius:26px 26px 0 0 !important;
    box-shadow:0 8px 18px -15px rgba(0,0,0,.60) !important;

    transform:none !important;
    -webkit-transform:none !important;
  }

  body[data-screen="app"] .modal .sheet > .sheet-head::before{
    content:none !important;
    display:none !important;
  }

  /* Apenas esta área rola. */
  body[data-screen="app"] .modal .sheet > .sheet-scroll-body{
    position:relative !important;
    flex:1 1 auto !important;
    min-height:0 !important;

    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;

    padding:18px 18px 22px !important;

    background:linear-gradient(
      180deg,
      color-mix(in srgb,var(--brand) 5%,var(--bg)),
      color-mix(in srgb,var(--brand) 5%,var(--bg))
    ) !important;
  }

  body[data-screen="app"] .modal .sheet > .sheet-head + .sheet-scroll-body{
    margin-top:0 !important;
  }

  body[data-screen="app"] .modal .sheet > .sheet-head .close,
  body[data-screen="app"] .modal .sheet > .sheet-head [data-close],
  body[data-screen="app"] .modal .sheet > .sheet-head .icon-btn{
    position:relative !important;
    inset:auto !important;

    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    flex:0 0 44px !important;

    margin:0 !important;
    padding:0 0 2px !important;

    z-index:30 !important;
  }

  /* Rodapé/FAB continuam visíveis, mas nenhum filho pode receber toque. */
  body.modal-open[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav *,
  body.modal-open[data-screen="app"] #fab,
  body.modal-open[data-screen="app"] #fab-menu,
  body.modal-open[data-screen="app"] #fab-menu *{
    pointer-events:none !important;
    user-select:none !important;
    -webkit-user-select:none !important;
  }

  body.modal-open[data-screen="app"] #fab-menu{
    display:none !important;
  }
}

@media(min-width:700px){
  .sheet-scroll-body{display:contents;}
}


/* ================================================================
   v1.161 — corrige click-through do rodapé no Safari/iPhone
   ================================================================ */
@media(max-width:699px){

  /* IMPORTANTE: o rodapé precisa continuar recebendo hit-test.
     Se pointer-events:none, o Safari manda o toque para a tela por trás. */
  body.modal-open[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav *,
  body.modal-open[data-screen="app"] #fab{
    pointer-events:auto !important;
  }

  /* O menu do FAB permanece fechado. */
  body.modal-open[data-screen="app"] #fab-menu{
    display:none !important;
    pointer-events:none !important;
  }

  /* Sinaliza estado bloqueado sem esconder nem deslocar o dock. */
  body.modal-open[data-screen="app"] .bottom-nav.nav-modal-blocked{
    cursor:default !important;
  }

  /* Não deixa :active produzir feedback enganoso durante formulário. */
  body.modal-open[data-screen="app"] .bottom-nav.nav-modal-blocked .nav-btn:active,
  body.modal-open[data-screen="app"] .bottom-nav.nav-modal-blocked .nav-fab:active{
    transform:none !important;
  }

  /* Mantém a separação estrutural do v1.160:
     sheet não rola; somente sheet-scroll-body rola. */
  body[data-screen="app"] .modal .sheet{
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
  }

  body[data-screen="app"] .modal .sheet > .sheet-head{
    position:relative !important;
    flex:0 0 auto !important;
    transform:none !important;
    -webkit-transform:none !important;
  }

  body[data-screen="app"] .modal .sheet > .sheet-scroll-body{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
  }
}


/* v1.162 — microfone por voz com mais contraste */
.ai-voice-orb{
  background:linear-gradient(145deg,var(--brand),color-mix(in srgb,var(--brand) 78%, black)) !important;
  box-shadow:0 10px 28px rgba(28,74,63,.28), inset 0 1px 0 rgba(255,255,255,.08) !important;
}

.ai-voice-orb span{
  color:#ffffff !important;
}

.ai-voice-orb span svg{
  width:32px !important;
  height:32px !important;
  display:block !important;
  color:#ffffff !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2.1 !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.18));
}

.ai-voice-orb:active{
  transform:scale(.97) !important;
}

.ai-voice-orb.listening,
.ai-voice-orb.processing{
  box-shadow:0 10px 28px rgba(28,74,63,.28), 0 0 0 4px rgba(255,255,255,.18) !important;
}


/* ================================================================
   v1.163 — Home: redesign de "Entrou" e "Saiu"
   Mantém o saldo como protagonista e eleva os cards secundários.
   ================================================================ */
.home-money-strip{
  grid-template-columns:1.4fr 1fr 1fr !important;
  gap:8px !important;
  margin-bottom:16px !important;
}

.home-money-strip > .money-strip-main{
  min-height:112px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
  gap:8px !important;
}

.home-money-strip > .money-strip-stat{
  position:relative !important;
  overflow:hidden !important;
  min-height:112px !important;
  padding:14px 10px 13px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
  gap:10px !important;
  border-radius:18px !important;
  box-shadow:0 10px 24px rgba(18,28,22,.06) !important;
}

.home-money-strip > .money-strip-stat::after{
  content:"" !important;
  position:absolute !important;
  width:86px !important;
  height:86px !important;
  right:-22px !important;
  top:-24px !important;
  border-radius:999px !important;
  opacity:.55 !important;
  pointer-events:none !important;
}

.home-money-strip > .money-strip-stat span{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  margin:0 !important;
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
}

.home-money-strip > .money-strip-stat span::before{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  border-radius:999px !important;
  display:grid !important;
  place-items:center !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.home-money-strip > .money-strip-stat b{
  font-size:clamp(12px, 3.7vw, 16px) !important;
  font-variant-numeric:tabular-nums !important;
  line-height:1.05 !important;
  letter-spacing:-.03em !important;
  font-weight:800 !important;
}

.home-money-strip > .money-strip-stat.up{
  background:linear-gradient(180deg,#f4fbf6 0%, #edf8f0 100%) !important;
  border:1px solid rgba(63,158,91,.18) !important;
}
.home-money-strip > .money-strip-stat.up::after{
  background:rgba(63,158,91,.10) !important;
}
.home-money-strip > .money-strip-stat.up span{
  color:#2e6a42 !important;
}
.home-money-strip > .money-strip-stat.up span::before{
  content:"↗" !important;
  color:#2f8d4d !important;
  background:rgba(63,158,91,.13) !important;
}
.home-money-strip > .money-strip-stat.up b{
  color:#1f6c39 !important;
}

.home-money-strip > .money-strip-stat.down{
  background:linear-gradient(180deg,#fff6f5 0%, #fff0ef 100%) !important;
  border:1px solid rgba(214,98,86,.18) !important;
}
.home-money-strip > .money-strip-stat.down::after{
  background:rgba(214,98,86,.10) !important;
}
.home-money-strip > .money-strip-stat.down span{
  color:#8a433e !important;
}
.home-money-strip > .money-strip-stat.down span::before{
  content:"↘" !important;
  color:#c2574b !important;
  background:rgba(214,98,86,.13) !important;
}
.home-money-strip > .money-strip-stat.down b{
  color:#a3473e !important;
}

/* Ajustes finos para o cartão principal, para manter contraste visual coerente */
.home-money-strip > .money-strip-main{
  border-radius:20px !important;
  padding:17px 16px !important;
}

.home-money-strip > .money-strip-main strong{
  font-size:clamp(17px, 5vw, 21px) !important;
}

@media(max-width:699px){
  .home-money-strip{
    gap:10px !important;
  }
  .home-money-strip > .money-strip-main,
  .home-money-strip > .money-strip-stat{
    min-height:104px !important;
  }
  .home-money-strip > .money-strip-stat{
    padding:13px 10px 12px !important;
    border-radius:17px !important;
  }
  .home-money-strip > .money-strip-stat span{
    font-size:11.5px !important;
  }
  .home-money-strip > .money-strip-stat span::before{
    width:22px !important;
    min-width:22px !important;
    height:22px !important;
    font-size:13px !important;
  }
}

[data-theme="dark"] .home-money-strip > .money-strip-stat.up{
  background:linear-gradient(180deg,rgba(52,112,74,.26) 0%, rgba(44,95,64,.21) 100%) !important;
  border-color:rgba(98,191,130,.22) !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.up::after{
  background:rgba(111,220,147,.10) !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.up span{
  color:#b7e7c5 !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.up span::before{
  color:#ccf5d7 !important;
  background:rgba(115,208,145,.18) !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.up b{
  color:#effcf3 !important;
}

[data-theme="dark"] .home-money-strip > .money-strip-stat.down{
  background:linear-gradient(180deg,rgba(122,61,56,.28) 0%, rgba(110,52,48,.22) 100%) !important;
  border-color:rgba(224,121,111,.22) !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.down::after{
  background:rgba(229,128,119,.10) !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.down span{
  color:#f1c5bf !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.down span::before{
  color:#ffd8d3 !important;
  background:rgba(229,128,119,.18) !important;
}
[data-theme="dark"] .home-money-strip > .money-strip-stat.down b{
  color:#fff0ee !important;
}


/* ================================================================
   v1.165 — Resumo financeiro: valores mais centralizados para cima
   ================================================================ */
.home-money-strip > .money-strip-main,
.home-money-strip > .money-strip-stat{
  justify-content:flex-start !important;
}

.home-money-strip > .money-strip-main{
  gap:10px !important;
  padding-top:15px !important;
}

.home-money-strip > .money-strip-stat{
  gap:12px !important;
  padding-top:15px !important;
}

.home-money-strip > .money-strip-main strong,
.home-money-strip > .money-strip-stat b{
  align-self:center !important;
  text-align:center !important;
  margin-top:4px !important;
}

@media(max-width:699px){
  .home-money-strip > .money-strip-main,
  .home-money-strip > .money-strip-stat{
    padding-top:14px !important;
  }
  .home-money-strip > .money-strip-main strong,
  .home-money-strip > .money-strip-stat b{
    margin-top:2px !important;
  }
}


/* ================================================================
   v1.166 — Saldo do mês também centralizado para cima
   ================================================================ */
.home-money-strip > .money-strip-main{
  align-items:stretch !important;
}

.home-money-strip > .money-strip-main .strip-head{
  margin-bottom:2px !important;
}

.home-money-strip > .money-strip-main strong{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  align-self:center !important;
  margin-top:6px !important;
}

@media(max-width:699px){
  .home-money-strip > .money-strip-main .strip-head{
    margin-bottom:1px !important;
  }
  .home-money-strip > .money-strip-main strong{
    margin-top:4px !important;
  }
}


/* ================================================================
   v1.167 — Saldo do mês alinhado com o próprio card e com os vizinhos
   ================================================================ */
.home-money-strip > .money-strip-main{
  min-height:124px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:12px !important;
  padding:16px 16px 15px !important;
}

.home-money-strip > .money-strip-main .strip-head{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  margin:0 !important;
}

.home-money-strip > .money-strip-main span{
  text-align:center !important;
}

.home-money-strip > .money-strip-main strong{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:48px !important;
  text-align:center !important;
  line-height:1.05 !important;
  margin:0 !important;
}

@media(max-width:699px){
  .home-money-strip > .money-strip-main{
    min-height:118px !important;
    gap:10px !important;
    padding:15px 14px 14px !important;
  }
  .home-money-strip > .money-strip-main strong{
    min-height:44px !important;
  }
}


/* ================================================================
   v1.168 — Saldo do mês: valor mais alto dentro do card
   ================================================================ */
.home-money-strip > .money-strip-main{
  justify-content:flex-start !important;
  gap:6px !important;
}

.home-money-strip > .money-strip-main .strip-head{
  margin-bottom:0 !important;
}

.home-money-strip > .money-strip-main strong{
  min-height:0 !important;
  margin-top:0 !important;
  padding-top:0 !important;
  transform:translateY(-2px) !important;
  -webkit-transform:translateY(-2px) !important;
}

@media(max-width:699px){
  .home-money-strip > .money-strip-main{
    gap:5px !important;
  }
  .home-money-strip > .money-strip-main strong{
    transform:translateY(-3px) !important;
    -webkit-transform:translateY(-3px) !important;
  }
}


/* v1.169 — saldo levemente mais abaixo */
.home-money-strip > .money-strip-main strong{
  transform:translateY(3px) !important;
}

@media(max-width:699px){
  .home-money-strip > .money-strip-main strong{
    transform:translateY(3px) !important;
  }
}

/* v1.170 — convite por e-mail, exportação de dados e ações de cartão */
.invite-explainer{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:12px 13px;
  border:1px solid rgba(42,99,85,.16);
  border-radius:14px;
  background:rgba(42,99,85,.06);
  margin-bottom:14px;
}
.invite-explainer strong{font-size:13px;color:var(--ink)}
.invite-explainer span{font-size:12px;line-height:1.45;color:var(--muted)}
.data-export-card{display:flex;flex-direction:column;gap:14px}
.data-export-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}
.data-export-btn svg{width:18px;height:18px}
.card-danger-zone{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.card-danger-zone .confirm-del{grid-column:1/-1}
@media(max-width:520px){
  .card-danger-zone{grid-template-columns:1fr}
  .card-danger-zone .confirm-del{grid-column:1}
}

/* iOS/PWA: o body é fixado em JS enquanto qualquer modal está aberto.
   O modal continua preso ao visual viewport, e apenas o sheet pode rolar. */
body.modal-open{
  overscroll-behavior:none!important;
}
body.modal-open .modal{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
}
body.modal-open .modal .sheet-scroll-body{
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch;
}
/* v1.171 · plano Pro e teste grátis */
.trial-note{display:block;margin-top:6px;color:var(--green,#1c4a3f);font-weight:800;font-size:.78rem;line-height:1.25}
.upgrade-trial{display:flex;flex-direction:column;gap:3px;margin:10px 0 2px;padding:12px 14px;border-radius:14px;background:#edf7f2;color:#173f35}
.upgrade-trial strong{font-size:1rem}.upgrade-trial span{font-size:.82rem;line-height:1.35;color:#527068}


/* ================================================================
   v1.172 — formulários e Guia acima do teclado no iPhone/PWA
   Usa a altura real do VisualViewport, não o layout viewport.
   ================================================================ */
@media(max-width:699px){
  /* Navegação do app não participa do modal. Isso libera toda a área útil
     e evita que o botão final pareça preso atrás do dock/teclado. */
  body.modal-open[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] #fab,
  body.modal-open[data-screen="app"] #fab-menu{
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  body.modal-open .modal{
    top:var(--modal-vv-top,0px) !important;
    bottom:auto !important;
    height:var(--modal-vv-height,100dvh) !important;
    min-height:0 !important;
    max-height:var(--modal-vv-height,100dvh) !important;
    align-items:flex-end !important;
  }

  body[data-screen="app"] .modal .sheet{
    max-height:calc(var(--modal-vv-height,100dvh) - max(8px, env(safe-area-inset-top,0px))) !important;
    min-height:0 !important;
  }

  body.modal-open .modal .sheet-scroll-body{
    min-height:0 !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
    scroll-padding-top:18px !important;
    scroll-padding-bottom:120px !important;
    padding-bottom:calc(38px + env(safe-area-inset-bottom,0px)) !important;
  }

  /* Folga real depois da última ação: o usuário consegue puxar o botão para
     cima do teclado em Receita/Despesa e alcançar o último campo do Guia. */
  #transaction-modal .sheet-scroll-body form,
  #ask-guide-modal .sheet-scroll-body form{
    padding-bottom:52px !important;
  }

  #transaction-modal .sheet-scroll-body form > :last-child,
  #ask-guide-modal .sheet-scroll-body form > :last-child{
    margin-bottom:12px !important;
  }
}



/* ================================================================
   v1.174 — dock fixo atrás dos modais
   O rodapé e o botão + permanecem renderizados o tempo todo; o overlay
   fica acima e os eventos do dock são bloqueados pelo JS enquanto aberto.
   ================================================================ */
@media(max-width:699px){
  body.modal-open[data-screen="app"] .bottom-nav{
    visibility:visible !important;
    opacity:1 !important;
    display:grid !important;
    pointer-events:auto !important;
    transition:none !important;
  }
  body.modal-open[data-screen="app"] .bottom-nav,
  body.modal-open[data-screen="app"] .bottom-nav *{
    -webkit-tap-highlight-color:transparent !important;
  }
  body.modal-open[data-screen="app"] #fab-menu{
    display:none !important;
  }
  body.modal-open[data-screen="app"] .modal{
    z-index:10000 !important;
  }
}

/* ================================================================
   v1.176 — botão + permanece renderizado atrás do modal
   Corrige regra residual da v1.172 que ainda ocultava #fab.
   ================================================================ */
@media(max-width:699px){
  body.modal-open[data-screen="app"] #fab{
    visibility:visible !important;
    opacity:1 !important;
    display:grid !important;
    pointer-events:none !important;
    transition:none !important;
    animation:none !important;
    backface-visibility:hidden !important;
    -webkit-backface-visibility:hidden !important;
    transform:translate3d(0,-12px,0) !important;
    will-change:auto !important;
  }
  body.modal-open[data-screen="app"] .bottom-nav .nav-fab-wrap{
    visibility:visible !important;
    opacity:1 !important;
  }
}
/* v1.179 — Análise com IA: mês atual, mês fechado e ano */
.guide-analysis-v2{max-width:620px;background:var(--surface);}
.guide-analysis-head{padding-bottom:12px}.guide-analysis-head h2{font-family:Georgia,serif;font-size:28px;letter-spacing:-.02em;margin-top:3px}
.guide-period-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:5px;background:var(--surface-2);border-radius:15px;margin:2px 0 12px}.guide-period-tabs button{border:0;background:transparent;padding:10px 6px;border-radius:11px;font-weight:750;font-size:11px;color:var(--muted)}.guide-period-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 6px rgba(0,0,0,.07)}
.guide-period-picker{margin:0 0 12px}.guide-period-picker label{font-size:10px;font-weight:800;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:12px}.guide-period-picker select{min-width:180px;border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:var(--surface);color:var(--ink);font:inherit}
.guide-analysis-premium .guide-analysis-status{margin-top:4px}.guide-analysis-premium h3{font-size:23px}.guide-period-summary{font-size:13.5px!important;line-height:1.6!important;color:var(--ink)!important}
.guide-analysis-metrics.four{grid-template-columns:repeat(2,1fr)}.guide-analysis-metrics.four>div{background:var(--surface-2);border:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.guide-analysis-block{margin-top:11px;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.guide-analysis-block>strong{display:block;font-size:13px;margin-bottom:7px}.guide-analysis-block p{font-size:12.5px;line-height:1.5;margin:6px 0;color:var(--ink)}.guide-analysis-block ol{margin:7px 0 0;padding-left:20px}.guide-analysis-block li{font-size:12.5px;line-height:1.5;margin:7px 0}.guide-analysis-block.good>strong{color:var(--positive)}.guide-analysis-block.attention>strong{color:var(--negative)}.guide-analysis-block.goals>strong,.guide-analysis-block.actions>strong{color:var(--brand-2)}
@media(max-width:560px){.guide-analysis-v2{border-radius:28px 28px 0 0}.guide-analysis-head h2{font-size:26px}.guide-period-tabs button{font-size:10.5px}.guide-analysis-metrics.four{grid-template-columns:repeat(2,1fr)}}

/* v1.180 — Meu Guia: identidade, bloqueios Pro e leitura de próximos meses */
.guide-head-btn{
  width:54px !important;
  min-width:54px !important;
  height:48px !important;
  padding:4px 5px 3px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  border-radius:15px !important;
}
.guide-head-symbol{display:flex;align-items:center;justify-content:center;height:27px;line-height:0}
.guide-head-symbol svg{width:27px !important;height:27px !important}
.guide-head-label{font-size:8.5px;font-weight:800;line-height:1;letter-spacing:-.15px;white-space:nowrap;color:currentColor}
.guide-kicker-brand{display:inline-flex !important;align-items:center;gap:5px}
.guide-kicker-brand svg{width:20px;height:20px;flex:0 0 20px;color:#7546ee}
.guide-action-pro{display:inline-flex;align-items:center;margin-left:5px;padding:2px 5px;border-radius:999px;font-size:8px;font-weight:850;letter-spacing:.3px;color:#7042db;background:rgba(117,70,238,.10);vertical-align:2px}
.guide-hub-actions > button.guide-pro-locked{opacity:1 !important;background:color-mix(in srgb,#7546ee 3%,var(--surface)) !important;border-color:color-mix(in srgb,#7546ee 14%,var(--border)) !important}
.guide-hub-actions > button.guide-pro-locked small{color:var(--muted)}
.guide-analysis-block.watch{background:color-mix(in srgb,#3f7ad6 6%,var(--surface));border:1px solid color-mix(in srgb,#3f7ad6 15%,var(--border));}
.guide-analysis-block.watch strong{color:color-mix(in srgb,#2d66ba 88%,var(--text))}
.upgrade-benefits-full{display:grid;gap:9px}
.upgrade-benefits-full > div{align-items:flex-start}
.upgrade-benefits-full small{line-height:1.4}
@media(max-width:699px){
  .guide-head-btn{width:51px !important;min-width:51px !important;height:47px !important;padding:3px 4px !important}
  .guide-head-symbol svg{width:26px !important;height:26px !important}
  .guide-head-label{font-size:8px}
}


/* v1.181 — onboarding de instalação PWA */
.install-onboarding-modal{z-index:1700}
.install-onboarding-sheet{max-width:540px;padding:26px 22px 24px;border-radius:28px;max-height:min(88dvh,780px);overflow:auto}
.install-app-mark{width:70px;height:70px;border-radius:20px;margin:0 auto 12px;overflow:hidden;box-shadow:0 12px 34px rgba(28,74,63,.16)}
.install-app-mark img{width:100%;height:100%;display:block}
.install-kicker{text-align:center;font-size:11px;letter-spacing:.14em;font-weight:800;color:#688078;margin-bottom:6px}
.install-onboarding-sheet>h2{text-align:center;font-family:Fraunces,serif;font-size:25px;line-height:1.08;margin:0 auto 9px;max-width:430px;color:#173f36}
.install-lead{text-align:center;color:#66736f;font-size:14px;line-height:1.45;margin:0 auto 18px;max-width:450px}
.install-platform{border:1px solid #e3e9e6;border-radius:18px;padding:15px 16px;margin:10px 0;background:#fff}
.install-platform.recommended{border-color:#9cc8b9;background:#f4faf7;box-shadow:0 0 0 2px rgba(75,132,112,.06)}
.install-platform-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-weight:800;color:#244f44}
.install-platform-head b{font-size:10px;letter-spacing:.05em;text-transform:uppercase;background:#dcefe7;color:#285f4e;padding:5px 8px;border-radius:999px}
.install-platform ol{margin:0;padding-left:20px;color:#53645e;font-size:13.5px;line-height:1.45}
.install-platform li+li{margin-top:5px}
.install-share{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid #d9e2df;border-radius:7px;color:#285f4e;font-weight:900}
.install-native-btn{width:100%;margin-top:12px}
.install-tip{display:flex;gap:10px;align-items:flex-start;background:#f5f7f6;border-radius:15px;padding:12px 13px;margin:14px 0;color:#52605c;font-size:13px;line-height:1.4}
.install-tip strong{white-space:nowrap;color:#2f5148}
.install-done-btn{width:100%}
.install-settings-card .secondary{margin-top:14px;width:100%}
@media(max-width:520px){.install-onboarding-sheet{padding:22px 16px 20px;border-radius:24px}.install-onboarding-sheet>h2{font-size:23px}.install-platform{padding:14px}}


/* v1.185 · aportes e objetivos */
.investment-link-field{border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:color-mix(in srgb,var(--card) 94%,#eef8f1 6%)}
.investment-toggle{display:flex!important;align-items:flex-start;gap:10px;font-weight:700;line-height:1.3;cursor:pointer}
.investment-toggle input{width:19px;height:19px;margin:1px 0 0;flex:0 0 auto;accent-color:var(--green,#24835b)}
.investment-link-field #goal-link-wrap{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.goal-linked-helper{margin:-4px 0 12px;padding:10px 12px;border-radius:12px;background:rgba(70,145,98,.08);color:var(--text)}
.report-totals-investment{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.report-totals-investment>div:last-child{grid-column:1/-1}
@media(min-width:700px){.report-totals-investment{grid-template-columns:repeat(5,minmax(0,1fr))!important}.report-totals-investment>div:last-child{grid-column:auto}}

.investment-report-card{padding:14px 16px}
.investment-report-top{padding:4px 0 12px;border-bottom:1px solid var(--line);margin-bottom:4px}
.investment-report-top span{display:flex;flex-direction:column;gap:2px}.investment-report-top strong{font-size:1.45rem}.investment-report-top small{color:var(--muted)}
.investment-report-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.investment-report-row:last-of-type{border-bottom:0}.investment-report-row span{display:flex;flex-direction:column;gap:2px}.investment-report-row small{color:var(--muted)}


/* v1.188 — Manual do app + hierarquia visual dos botões de salvar */
.sec-ic svg{width:20px;height:20px;display:block}
.manual-open-btn{
  width:100%;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));
  border-radius:16px;padding:13px 14px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 8%,var(--surface)),var(--surface));
  color:var(--ink);display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;text-align:left;
  box-shadow:0 8px 22px rgba(20,54,45,.06);transition:transform .14s,box-shadow .16s,border-color .16s;
}
.manual-open-btn>span{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand)
}
.manual-open-btn>span svg{width:20px;height:20px}
.manual-open-btn div{display:flex;flex-direction:column;gap:3px;min-width:0}
.manual-open-btn strong{font-size:13px;font-weight:850}
.manual-open-btn small{font-size:10.5px;color:var(--muted);line-height:1.35}
.manual-open-btn>b{font-size:25px;font-weight:400;color:var(--brand)}
.manual-open-btn:active{transform:scale(.985)}

.app-manual-sheet{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
.manual-head{align-items:flex-start}
.manual-head>div{min-width:0}
.manual-head h2{margin:2px 0 4px}
.manual-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.manual-kicker{display:block;color:var(--brand);font-size:9.5px;font-weight:900;letter-spacing:.14em}
.manual-intro{display:flex;gap:12px;padding:15px;border-radius:17px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 10%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--brand) 16%,var(--line));margin-bottom:14px}
.manual-intro-mark{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;background:var(--brand);color:var(--on-brand)}
.manual-intro-mark svg{width:22px;height:22px}
.manual-intro>div:last-child{display:flex;flex-direction:column;gap:5px}
.manual-intro strong{font-size:14px}
.manual-intro span{font-size:11.5px;color:var(--muted);line-height:1.5}
.manual-grid{display:flex;flex-direction:column;gap:8px}
.manual-topic{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
.manual-topic-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);color:var(--brand);font-size:18px;font-weight:900}
.manual-topic strong{font-size:13px;display:block;margin:1px 0 4px}
.manual-topic p{margin:0;font-size:11.3px;color:var(--muted);line-height:1.48}
.manual-install-box{margin-top:12px;padding:15px;border-radius:17px;background:var(--brand);color:var(--on-brand);display:flex;flex-direction:column;gap:12px}
.manual-install-box strong{display:block;font-size:14px;margin-bottom:4px}
.manual-install-box span{display:block;font-size:11.5px;line-height:1.45;opacity:.88}
.manual-install-btn{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:inherit;border-radius:12px;padding:11px 13px;font-weight:850}
.manual-done-btn{margin-top:12px}

/* Botões de confirmação/salvar: mais nítidos e premium que os botões secundários comuns */
.sheet form button.secondary[type="submit"],
.settings-card form button.secondary[type="submit"],
.sheet button[type="submit"]:not(.danger-btn):not(.primary),
.settings-card button[type="submit"]:not(.danger-btn):not(.primary){
  border:0!important;
  background:linear-gradient(145deg,var(--brand),color-mix(in srgb,var(--brand) 82%,#000))!important;
  color:var(--on-brand)!important;
  min-height:48px;
  border-radius:15px!important;
  font-weight:850!important;
  box-shadow:0 10px 22px color-mix(in srgb,var(--brand) 24%,transparent)!important;
  transition:transform .12s ease,filter .15s ease,box-shadow .15s ease!important;
}
.sheet form button.secondary[type="submit"]:active,
.settings-card form button.secondary[type="submit"]:active,
.sheet button[type="submit"]:not(.danger-btn):not(.primary):active,
.settings-card button[type="submit"]:not(.danger-btn):not(.primary):active{
  transform:scale(.985);
  filter:brightness(.97);
}
.sheet form button[type="submit"]:disabled,
.settings-card form button[type="submit"]:disabled{opacity:.62;box-shadow:none!important}


/* v1.190 — onboarding simples, direcionado ao Manual do app */
.onboard-manual-card p strong{color:var(--ink);font-weight:800}
.onb-manual-btn{
  width:100%;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));
  border-radius:16px;padding:13px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 9%,var(--surface)),var(--surface));
  display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:11px;align-items:center;text-align:left;color:var(--ink);
  box-shadow:0 8px 20px rgba(20,54,45,.05)
}
.onb-manual-btn .onb-ic{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--brand);color:var(--on-brand)}
.onb-manual-btn .onb-ic svg{width:21px;height:21px}
.onb-manual-btn>div{display:flex;flex-direction:column;gap:3px}
.onb-manual-btn strong{font-size:13px;font-weight:850}
.onb-manual-btn small{font-size:10.8px;color:var(--muted);line-height:1.35}
.onb-manual-btn>b{font-size:25px;font-weight:400;color:var(--brand)}
.onb-manual-btn:active{transform:scale(.985)}


/* v1.191 — cabeçalho dos Termos/Privacidade na identidade visual do app */
body[data-screen="auth"] .legal-sheet-head{
  background:linear-gradient(145deg,var(--brand),color-mix(in srgb,var(--brand) 84%,#000));
  border-bottom-color:color-mix(in srgb,var(--brand) 55%,#000);
}
body[data-screen="auth"] .legal-sheet-head>strong{
  color:var(--on-brand);
}
body[data-screen="auth"] .legal-sheet .legal-close{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.24);
  color:#fff;
  box-shadow:none;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
body[data-screen="auth"] .legal-sheet .legal-close:active{
  background:rgba(255,255,255,.2);
}


/* v1.192 — instalação com melhor contraste e ação final sempre acessível */
.manual-install-box,
.manual-install-box strong,
.manual-install-box span{
  color:#f4fbf7 !important;
}
.manual-install-box span{opacity:.86!important}
.manual-install-btn{
  color:#fff!important;
  background:rgba(255,255,255,.14)!important;
  border-color:rgba(255,255,255,.34)!important;
}
.manual-install-btn:active{background:rgba(255,255,255,.22)!important}

/* O guia de instalação não joga mais o "Entendi" para fora/abaixo da tela */
.install-onboarding-sheet{
  max-height:min(90dvh,760px)!important;
  padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;
  overscroll-behavior:contain;
}
.install-tip{margin:10px 0 8px!important}
.install-done-btn{
  position:sticky;
  bottom:0;
  z-index:4;
  width:100%;
  min-height:48px;
  margin-top:8px!important;
  border:0!important;
  border-radius:15px!important;
  background:var(--brand)!important;
  color:#fff!important;
  font-weight:850!important;
  box-shadow:0 8px 20px color-mix(in srgb,var(--brand) 22%,transparent)!important;
}
.install-onboarding-sheet::after{
  content:"";
  position:sticky;
  bottom:-12px;
  display:block;
  height:calc(4px + env(safe-area-inset-bottom));
  background:var(--bg);
}
@media(max-width:520px){
  .install-onboarding-sheet{
    max-height:88dvh!important;
    padding:18px 14px calc(10px + env(safe-area-inset-bottom))!important;
  }
  .install-app-mark{margin-bottom:8px!important}
  .install-onboarding-sheet>h2{margin-bottom:8px!important}
  .install-lead{margin-bottom:12px!important}
  .install-platform{padding:12px!important}
  .install-tip{padding:10px 11px!important}
}

/* Documentos legais: mesmo vocabulário visual do cabeçalho do Manual do app */
.legal-sheet{
  overflow:hidden!important;
  padding:0!important;
  border-radius:26px 26px 0 0!important;
}
.legal-sheet-head{
  position:relative!important;
  flex:0 0 auto!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
  min-height:auto!important;
  padding:22px 58px 22px 22px!important;
  margin:0!important;
  background:linear-gradient(145deg,#15513f,#0e3f32)!important;
  border-bottom:1px solid rgba(235,190,78,.5)!important;
  color:#fff!important;
}
.legal-sheet-head>div{min-width:0}
.legal-sheet-head .legal-kicker{
  display:block!important;
  margin-bottom:7px!important;
  color:#94a79f!important;
  font-size:9.5px!important;
  font-weight:900!important;
  letter-spacing:.15em!important;
}
.legal-sheet-head h2{
  margin:0!important;
  color:#fff!important;
  font-family:"Fraunces","Iowan Old Style",Georgia,serif!important;
  font-size:25px!important;
  line-height:1.08!important;
  font-weight:600!important;
}
.legal-accent-line{
  display:block;
  width:38px;
  height:4px;
  margin:11px 0 10px;
  border-radius:999px;
  background:#e7b84d;
}
.legal-sheet-head p{
  margin:0!important;
  color:rgba(233,242,238,.66)!important;
  font-size:12.5px!important;
  line-height:1.45!important;
}
.legal-sheet .legal-close{
  position:absolute!important;
  top:20px!important;
  right:18px!important;
  width:42px!important;
  height:42px!important;
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  font-size:28px!important;
  box-shadow:none!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.legal-content{
  padding:18px 20px 20px!important;
  background:var(--bg)!important;
}
.legal-modal-actions{
  background:var(--bg)!important;
  padding:10px 20px calc(14px + env(safe-area-inset-bottom))!important;
}
.legal-modal-actions .primary{
  min-height:48px;
  border-radius:15px;
}


/* v1.193 — relatório responsivo após inclusão de investimentos/aportes */
.report-card{
  overflow:hidden;
}
.report-top{
  align-items:flex-start;
}
.report-totals,
.report-totals-investment{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:12px 14px !important;
  align-items:start !important;
}
.report-totals>div,
.report-totals-investment>div{
  min-width:0;
}
.report-totals span,
.report-totals-investment span{
  font-size:11px;
  line-height:1.2;
}
.report-totals strong,
.report-totals-investment strong{
  font-size:13px;
  line-height:1.15;
  word-break:break-word;
}
.report-totals-investment>div:last-child{
  grid-column:auto !important;
}
@media (min-width:700px){
  .report-totals-investment{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
  .report-totals-investment strong{
    font-size:14px;
  }
}

/* v1.194 — saldos reais e faturas sem duplicidade */
.available-balance-card{margin-top:10px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 7%,var(--surface)),var(--surface))}
.available-balance-card>div{display:flex;flex-direction:column;gap:3px;min-width:0}.available-balance-card span{font-size:11px;color:var(--muted);font-weight:700}.available-balance-card strong{font-size:20px}.available-balance-card small{font-size:10px;color:var(--muted);line-height:1.35}.available-balance-card button{border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:850;white-space:nowrap}
.balance-start-box,.opening-invoice-box{border:1px solid var(--line);border-radius:16px;padding:13px 14px;margin-bottom:14px;background:var(--surface-2)}.balance-start-fields{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.current-balance-preview{display:flex;justify-content:space-between;padding:11px 12px;border-radius:12px;background:color-mix(in srgb,var(--brand) 8%,var(--surface))}.current-balance-preview span{font-size:11px;color:var(--muted)}.current-balance-preview strong{color:var(--brand)}
.opening-invoice-box>strong{display:block;font-size:13px;margin-bottom:4px}.opening-invoice-box>span{display:block;font-size:11px;line-height:1.45;color:var(--muted);margin-bottom:11px}
.reference-month-field{border:1px solid color-mix(in srgb,var(--brand) 16%,var(--line));border-radius:15px;padding:12px;background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.planning-income-card{padding:14px 16px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.planning-income-card>div{display:flex;flex-direction:column;gap:3px}.planning-income-card span{font-size:11px;color:var(--muted);font-weight:700}.planning-income-card strong{font-size:19px;color:var(--brand)}.planning-income-card small{font-size:10.5px;color:var(--muted);line-height:1.35}.planning-income-chip{padding:7px 9px;border-radius:999px;background:var(--surface-2);font-size:9.5px!important}
.invoice-card-main small{display:block;margin-top:3px;color:var(--muted);font-size:9.5px}.invoice-row-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.invoice-pay-btn{border:1px solid color-mix(in srgb,var(--brand) 22%,var(--line));background:color-mix(in srgb,var(--brand) 6%,var(--surface));color:var(--brand);border-radius:10px;padding:6px 8px;font-size:9.5px;font-weight:850}
.card-payment-note{display:flex;flex-direction:column;gap:5px;padding:13px 14px;border-radius:15px;background:color-mix(in srgb,var(--brand) 8%,var(--surface));margin-bottom:14px}.card-payment-note span{font-size:11px;color:var(--muted);line-height:1.45}
@media(max-width:390px){.planning-income-card{align-items:flex-start;flex-direction:column}.invoice-summary-row-v2{align-items:flex-start}.invoice-row-actions{align-items:flex-start}}


/* v1.195 — simplificação de UX e ativação */
.money-today-card{margin-top:10px;padding:15px 16px}
.money-today-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:11px}
.money-today-title>div{display:flex;flex-direction:column;gap:2px}
.money-today-title span{font-size:13px;font-weight:850;color:var(--ink)}
.money-today-title small{font-size:10px;color:var(--muted)}
.money-today-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.money-today-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;color:var(--ink);min-width:0}
button.money-today-item{width:100%}
.money-today-item span{font-size:10px;color:var(--muted);font-weight:750}
.money-today-item strong{font-size:15px;font-weight:850;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.money-today-item small{font-size:9.5px;color:var(--muted);line-height:1.35}
button.money-today-item:active{transform:scale(.985)}

.activation-insight-card{margin-top:12px;padding:14px 15px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 8%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--brand) 18%,var(--line))}
.activation-kicker{display:block;font-size:8.5px;letter-spacing:.13em;font-weight:900;color:var(--brand);margin-bottom:5px}
.activation-insight-card>strong{display:block;font-size:14px}
.activation-insight-card p{margin:6px 0 10px;font-size:11.5px;line-height:1.45;color:var(--muted)}
.activation-insight-card button{border:0;background:transparent;padding:0;color:var(--brand);font-size:11px;font-weight:850}

.income-planning-details{border:1px solid var(--line);border-radius:15px;background:var(--surface-2);margin-bottom:12px;overflow:hidden}
.income-planning-details>summary{list-style:none;cursor:pointer;padding:12px 13px;font-size:12px;font-weight:800;color:var(--ink);display:flex;justify-content:space-between;gap:8px}
.income-planning-details>summary::-webkit-details-marker{display:none}
.income-planning-details>summary:after{content:"+";color:var(--brand);font-size:18px;font-weight:500;line-height:1}
.income-planning-details[open]>summary:after{content:"−"}
.income-planning-details>summary span{font-size:10px;color:var(--muted);font-weight:650;margin-left:auto}
.income-planning-details .reference-month-field{border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 13px;background:var(--surface)}
.reference-other-month{margin-top:10px}

.balance-start-reassurance,.opening-invoice-reassurance{margin-top:2px;padding:10px 11px;border-radius:11px;background:color-mix(in srgb,var(--brand) 7%,var(--surface));font-size:10.5px;line-height:1.4;color:var(--muted)}
.opening-invoice-fields{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}

.guide-profile-secondary{margin-top:3px!important;background:var(--surface-2)!important}
.guide-profile-secondary>span:first-child{background:transparent!important;border:1px solid var(--line)!important;color:var(--muted)!important}

.settings-group-label{margin:18px 3px 8px;padding-top:3px}
.settings-group-label:first-of-type{margin-top:8px}
.settings-group-label span{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:900}

@media(max-width:390px){
  .money-today-grid{grid-template-columns:1fr}
}

.card-payment-detail{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.card-payment-detail>div{border:1px solid var(--line);border-radius:13px;padding:11px;background:var(--surface-2);display:flex;flex-direction:column;gap:3px}
.card-payment-detail span{font-size:9.5px;color:var(--muted);font-weight:700}
.card-payment-detail strong{font-size:13px}
.card-payment-explain{padding:11px 12px;border-radius:13px;background:color-mix(in srgb,var(--brand) 7%,var(--surface));font-size:10.5px;color:var(--muted);line-height:1.45;margin-bottom:12px}

.invoice-mini-actions{display:flex;flex-direction:column;gap:5px;align-items:stretch}
.invoice-payments-btn{border:0;background:transparent;color:var(--muted);padding:3px 4px;font-size:9px;font-weight:800;text-decoration:underline}
.invoice-payments-list{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-bottom:12px}
.invoice-payment-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line)}
.invoice-payment-history-row>div{display:flex;flex-direction:column;gap:3px}
.invoice-payment-history-row strong{font-size:13px}
.invoice-payment-history-row span{font-size:10px;color:var(--muted)}
.invoice-payment-history-row button{width:30px;height:30px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--negative);font-size:18px}

/* v1.196 — produto focado no mês, não no saldo bancário */
.month-outflow-card{margin-top:10px;padding:13px 15px}
.month-outflow-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.month-outflow-head span{font-size:11px;color:var(--muted);font-weight:750}
.month-outflow-head strong{font-size:14px}
.month-outflow-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:10px}
.month-outflow-grid>div{display:flex;flex-direction:column;gap:3px}
.month-outflow-grid span{font-size:9.5px;color:var(--muted);font-weight:700}
.month-outflow-grid strong{font-size:13px}
.account-purpose-note{display:flex;flex-direction:column;gap:5px;padding:12px 13px;margin-bottom:14px;border-radius:14px;background:color-mix(in srgb,var(--brand) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--brand) 13%,var(--line))}
.account-purpose-note strong{font-size:12.5px}
.account-purpose-note span{font-size:10.5px;line-height:1.45;color:var(--muted)}
.optional-sec{font-size:8px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-left:5px}
@media(max-width:390px){
  .month-outflow-grid{grid-template-columns:1fr 1fr;gap:8px}
}


/* v1.197 — acabamento comercial */
.home-money-strip-v2 .money-strip-main small{
  display:block;margin-top:3px;font-size:9px;font-weight:650;color:var(--muted);opacity:.9
}
.tx-essential-note,.card-setup-note,.budget-scope-note{
  display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--brand) 14%,var(--line));
  border-radius:14px;background:color-mix(in srgb,var(--brand) 5%,var(--surface));margin-bottom:13px
}
.tx-essential-note strong,.card-setup-note strong,.budget-scope-note strong{font-size:11.5px;color:var(--ink)}
.tx-essential-note span,.card-setup-note span,.budget-scope-note span{font-size:10px;line-height:1.42;color:var(--muted)}
.budget-scope-note{margin:0 0 12px}

.tx-advanced-details{
  margin:2px 0 12px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2);overflow:hidden
}
.tx-advanced-details>summary{
  cursor:pointer;list-style:none;padding:12px 13px;font-size:11.5px;font-weight:850;color:var(--ink);
  display:flex;align-items:center;justify-content:space-between;gap:10px
}
.tx-advanced-details>summary::-webkit-details-marker{display:none}
.tx-advanced-details>summary span{font-size:9px;color:var(--muted);font-weight:650}
.tx-advanced-details>summary:after{content:"+";font-size:18px;line-height:1;color:var(--brand);font-weight:500}
.tx-advanced-details[open]>summary:after{content:"−"}
.tx-advanced-body{border-top:1px solid var(--line);padding:12px 13px 2px;background:var(--surface)}
.tx-submit-dock{
  position:sticky;bottom:0;z-index:3;margin:8px -2px 0;padding:9px 2px calc(6px + env(safe-area-inset-bottom));
  background:linear-gradient(to bottom,transparent 0,var(--surface) 18%,var(--surface) 100%)
}
.tx-submit-dock .primary{box-shadow:0 9px 20px color-mix(in srgb,var(--brand) 18%,transparent)}

.auth-value-row{
  display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px 0 3px
}
.auth-value-row span{
  padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);
  font-size:9px;font-weight:800;letter-spacing:.02em
}
.auth-form-intro{font-size:10.5px;line-height:1.42;color:var(--muted);margin:-2px 0 13px}
.investment-ink{color:var(--brand)!important}


/* v1.198 — identidade visual Meu Guia */
.guide-inline-emblem{
  display:block;
  width:1em;
  height:1em;
  object-fit:cover;
  border-radius:50%;
  flex:0 0 auto;
  box-shadow:0 0 0 1px rgba(116,88,238,.15),0 2px 8px rgba(83,61,190,.18)
}
.guide-head-symbol{
  height:29px!important;
}
.guide-head-symbol .guide-inline-emblem{
  width:29px!important;
  height:29px!important;
  border-radius:50%!important;
  box-shadow:0 2px 9px rgba(62,51,154,.28),0 0 0 1px rgba(101,211,206,.18)!important;
}
.guide-head-btn{
  color:#463f7e!important;
  background:linear-gradient(145deg,#f7fbfa,#f3f0fb)!important;
  border-color:color-mix(in srgb,#5f58b8 18%,var(--line))!important;
  box-shadow:0 5px 14px rgba(58,67,94,.10)!important;
}
.guide-head-btn:active{
  background:linear-gradient(145deg,#f1f7f5,#ece8f8)!important;
}
.guide-head-label{
  color:#49456e!important;
  font-weight:850!important;
}
.guide-kicker .guide-inline-emblem{
  width:16px;
  height:16px;
}
.guide-kicker-brand .guide-inline-emblem{
  width:21px!important;
  height:21px!important;
}

.guide-brand-top{
  position:relative;
  padding:18px 18px 8px;
}
.guide-brand-close{
  position:absolute!important;
  top:16px!important;
  right:16px!important;
  z-index:2;
}
.guide-brand-hero{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:4px 48px 10px;
}
.guide-brand-hero>img{
  width:94px;
  height:94px;
  border-radius:50%;
  object-fit:cover;
  box-shadow:
    0 16px 38px rgba(43,32,102,.22),
    0 0 0 1px rgba(101,211,206,.16);
}
.guide-brand-hero>strong{
  margin-top:9px;
  font-family:"Fraunces",Georgia,serif;
  font-size:28px;
  line-height:1;
  font-weight:600;
  letter-spacing:-.025em;
  background:linear-gradient(90deg,#168f76,#6454b9 58%,#864fba);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.guide-brand-hero>span{
  margin-top:6px;
  color:var(--muted);
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.035em;
}
.guide-hub-intro{
  padding:0 20px 14px;
  text-align:center;
}
.guide-hub-intro h2{
  margin:0 0 5px;
  font-family:"Fraunces",Georgia,serif;
  font-size:22px;
  color:var(--ink);
}
.guide-hub-intro p{
  margin:0 auto;
  max-width:420px;
  font-size:11.5px;
  line-height:1.45;
  color:var(--muted);
}
.guide-hub-context,
.guide-hub-actions,
.guide-hub-pro{
  margin-left:18px;
  margin-right:18px;
}
.guide-hub-pro{margin-bottom:18px}

.guide-card-brand{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:15px;
}
.guide-card-brand>img{
  width:42px;
  height:42px;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 8px 18px rgba(28,18,80,.26);
}
.guide-card-brand>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.guide-card-brand strong{
  color:#fff!important;
  font-family:"Fraunces",Georgia,serif;
  font-size:18px!important;
  line-height:1;
}
.guide-card-brand span{
  color:rgba(255,255,255,.68)!important;
  font-size:9.5px!important;
  font-weight:750;
}
.manual-guide-emblem{
  width:27px;
  height:27px;
  display:block;
  border-radius:50%;
  object-fit:cover;
}
@media(max-width:699px){
  .guide-head-symbol .guide-inline-emblem{
    width:28px!important;
    height:28px!important;
  }
  .guide-brand-hero>img{
    width:86px;
    height:86px;
  }
  .guide-brand-hero>strong{font-size:26px}
  .guide-hub-context,
  .guide-hub-actions,
  .guide-hub-pro{
    margin-left:14px;
    margin-right:14px;
  }
}


/* v1.199 — Personalizar meu Guia acima das ações, preservando a identidade visual nova */
.guide-profile-top{
  width:100%;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 18px;
  align-items:center;
  gap:10px;
  margin:-6px 0 11px;
  padding:9px 11px;
  border:1px solid color-mix(in srgb,var(--brand) 15%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--brand) 5%,var(--surface));
  color:inherit;
  text-align:left;
  font:inherit;
}
.guide-profile-top>span{
  width:36px;height:36px;display:grid;place-items:center;border-radius:11px;
  background:color-mix(in srgb,var(--brand) 9%,var(--surface));
  color:var(--brand)!important;
}
.guide-profile-top>div{min-width:0}
.guide-profile-top strong{display:block;font-size:12px;margin-bottom:2px}
.guide-profile-top small{display:block;font-size:9.5px;line-height:1.3;color:var(--muted)}
.guide-profile-top>b{font-size:20px;font-weight:500;color:var(--muted);text-align:right}
.guide-profile-top:active{transform:scale(.992)}


/* v1.200 — Meu Guia: sobe os campos sem alterar o visual */
@media (max-width:560px){
  #guide-hub-modal .guide-hub-sheet > .sheet-head{
    margin-bottom:11px !important;
  }
  #guide-hub-modal .guide-hub-context{
    margin-top:0 !important;
    margin-bottom:10px !important;
  }
  #guide-hub-modal .guide-profile-top{
    margin:-4px 0 8px !important;
  }
  #guide-hub-modal .guide-hub-actions{
    gap:7px !important;
  }
}


/* v1.201 — Meu Guia mais alto no viewport, sem mudar o layout */
@media (max-width:560px){
  #guide-hub-modal{
    align-items:flex-end !important;
  }
  #guide-hub-modal .guide-hub-sheet{
    margin-bottom:14px !important;
    max-height:calc(92svh - 14px) !important;
  }
  #guide-hub-modal .guide-brand-top{
    padding:12px 16px 4px !important;
  }
  #guide-hub-modal .guide-brand-hero{
    padding:0 46px 6px !important;
  }
  #guide-hub-modal .guide-hub-intro{
    margin-top:-2px !important;
    margin-bottom:8px !important;
  }
  #guide-hub-modal .guide-hub-context{
    margin:0 0 8px !important;
  }
  #guide-hub-modal .guide-profile-top{
    margin:-2px 0 7px !important;
  }
  #guide-hub-modal .guide-hub-actions{
    gap:7px !important;
  }
}


/* v1.202 — Meu Guia: sobe somente os campos, mantendo o restante idêntico */
@media (max-width:560px){
  #guide-hub-modal .guide-hub-context,
  #guide-hub-modal .guide-profile-top,
  #guide-hub-modal .guide-hub-actions,
  #guide-hub-modal .guide-hub-pro{
    transform:translateY(-26px) !important;
  }
}


/* v1.203 — Meu Guia no mobile: mais respiro sem afastar a janela do rodapé */
@media (max-width:560px){
  /* remove os hacks anteriores que apertavam os cards */
  #guide-hub-modal .guide-hub-context,
  #guide-hub-modal .guide-profile-top,
  #guide-hub-modal .guide-hub-actions,
  #guide-hub-modal .guide-hub-pro{
    transform:none !important;
    margin-left:18px !important;
    margin-right:18px !important;
  }

  /* o sheet continua encostando visualmente acima do rodapé, sem a faixa estranha */
  #guide-hub-modal .guide-hub-sheet{
    margin:0 !important;
    max-height:calc(100dvh - var(--form-nav-height,80px) - var(--form-top-safe,calc(env(safe-area-inset-top,0px) + 14px))) !important;
    padding:0 0 calc(28px + env(safe-area-inset-bottom)) !important;
    background:var(--surface) !important;
    border-radius:26px 26px 0 0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    scroll-padding-bottom:120px !important;
  }

  /* compacta um pouco o topo para ganhar altura útil */
  #guide-hub-modal .guide-brand-top{
    padding:10px 16px 2px !important;
  }
  #guide-hub-modal .guide-brand-close{
    top:14px !important;
    right:14px !important;
  }
  #guide-hub-modal .guide-brand-hero{
    padding:0 46px 4px !important;
  }
  #guide-hub-modal .guide-brand-hero>img{
    width:80px !important;
    height:80px !important;
  }
  #guide-hub-modal .guide-brand-hero>strong{
    font-size:24px !important;
    margin-top:8px !important;
  }
  #guide-hub-modal .guide-brand-hero>span{
    margin-top:4px !important;
  }
  #guide-hub-modal .guide-hub-intro{
    padding:0 18px 10px !important;
  }
  #guide-hub-modal .guide-hub-intro h2{
    margin-bottom:4px !important;
    font-size:21px !important;
  }
  #guide-hub-modal .guide-hub-intro p{
    font-size:11px !important;
    line-height:1.42 !important;
  }

  /* respiro bom nas laterais e no fim do modal */
  #guide-hub-modal .guide-hub-context{
    gap:9px !important;
    margin-top:2px !important;
    margin-bottom:12px !important;
  }
  #guide-hub-modal .guide-hub-context > div{
    padding:12px 11px !important;
    border-radius:14px !important;
  }

  #guide-hub-modal .guide-profile-top{
    margin:0 18px 10px !important;
    padding:11px 12px !important;
    border-radius:15px !important;
  }

  #guide-hub-modal .guide-hub-actions{
    gap:9px !important;
    margin-bottom:0 !important;
  }
  #guide-hub-modal .guide-hub-actions > button{
    padding:13px 12px !important;
    border-radius:16px !important;
  }

  /* cria um respiro real abaixo do último card */
  #guide-hub-modal .guide-hub-actions::after{
    content:'';
    display:block;
    height:26px;
  }

  #guide-hub-modal .guide-hub-pro{
    margin-top:12px !important;
    margin-bottom:0 !important;
    padding:14px !important;
  }
}

/* ================================================================
   v1_204 — MEU GUIA (hub): cartões alinhados, ícones uniformes,
   faixa de contexto pela base, rodapé sem vão fantasma
   ================================================================ */
/* Faixa Renda / Meta / Objetivos: caixas iguais, valores na mesma base */
#guide-hub-modal .guide-hub-context{align-items:stretch !important}
#guide-hub-modal .guide-hub-context > div{
  display:flex !important; flex-direction:column !important;
  justify-content:space-between !important; gap:6px !important;
}
#guide-hub-modal .guide-hub-context > div span{font-size:10.5px !important; line-height:1.2 !important; letter-spacing:.01em !important}
#guide-hub-modal .guide-hub-context > div{padding:11px 9px !important}
#guide-hub-modal .guide-hub-context > div strong{
  font-size:clamp(11.5px, 3.4vw, 14px) !important; white-space:nowrap !important;
  overflow:visible !important; text-overflow:clip !important;
  font-variant-numeric:tabular-nums !important; letter-spacing:-.01em !important;
}

/* "Personalizar" e as 4 ações: mesma linguagem */
#guide-hub-modal .guide-profile-top,
#guide-hub-modal .guide-hub-actions > button{
  display:flex !important; align-items:center !important; gap:12px !important;
  width:100% !important; text-align:left !important;
  background:var(--surface) !important;
  border:1px solid color-mix(in srgb, #5a58c4 22%, var(--line)) !important;
  border-radius:16px !important;
  padding:13px 13px !important;
  box-shadow:0 4px 14px rgba(20,30,25,.05) !important;
  color:var(--ink) !important;
  transform:none !important;
}
#guide-hub-modal .guide-profile-top{
  width:calc(100% - 36px) !important; box-sizing:border-box !important;
  background:color-mix(in srgb, #5a58c4 7%, var(--surface)) !important;
  border-color:color-mix(in srgb, #5a58c4 30%, var(--line)) !important;
}
#guide-hub-modal .guide-profile-top > span,
#guide-hub-modal .guide-hub-actions > button > span{
  width:40px !important; height:40px !important; flex:0 0 40px !important;
  border-radius:12px !important;
  display:grid !important; place-items:center !important;
  background:color-mix(in srgb, #5a58c4 12%, var(--surface)) !important;
  color:#5a58c4 !important;
  font-size:17px !important;
}
#guide-hub-modal .guide-profile-top > span svg,
#guide-hub-modal .guide-hub-actions > button > span svg{width:19px !important; height:19px !important; display:block}
#guide-hub-modal .guide-profile-top > div,
#guide-hub-modal .guide-hub-actions > button > div{flex:1 1 auto !important; min-width:0 !important}
#guide-hub-modal .guide-profile-top strong,
#guide-hub-modal .guide-hub-actions > button strong{
  display:flex !important; align-items:center !important; flex-wrap:wrap !important; gap:4px 7px !important;
  font-size:15px !important; line-height:1.25 !important; margin:0 0 3px !important; letter-spacing:-.01em !important;
}
#guide-hub-modal .guide-profile-top small,
#guide-hub-modal .guide-hub-actions > button small{
  display:block !important; font-size:12.5px !important; line-height:1.35 !important; color:var(--muted) !important;
}
#guide-hub-modal .guide-action-pro{
  font-size:9.5px !important; padding:2px 7px !important; border-radius:999px !important;
  line-height:1.4 !important; letter-spacing:.04em !important; white-space:nowrap !important;
}
#guide-hub-modal .guide-profile-top > b{color:var(--muted) !important; font-size:20px !important; flex:0 0 auto !important; font-weight:400 !important}
#guide-hub-modal .guide-hub-actions{gap:10px !important}

/* Rodapé: fora o espaçador fantasma; bloco Pro compacto; fecho justo */
#guide-hub-modal .guide-hub-actions::after{content:none !important; display:none !important}
#guide-hub-modal .guide-hub-sheet{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px)) !important}
#guide-hub-modal .guide-hub-pro{
  margin:14px 18px 0 !important; padding:16px 16px 15px !important; border-radius:18px !important;
}
#guide-hub-modal .guide-hub-pro strong{display:block !important; font-size:15px !important; margin:0 0 5px !important}
#guide-hub-modal .guide-hub-pro span{display:block !important; font-size:12.5px !important; line-height:1.4 !important; margin:0 0 12px !important}
#guide-hub-modal .guide-hub-pro .primary{padding:13px 16px !important; font-size:15px !important; width:100% !important}

[data-theme="dark"] #guide-hub-modal .guide-profile-top,
[data-theme="dark"] #guide-hub-modal .guide-hub-actions > button{box-shadow:none !important}

/* ================================================================
   v1_205 — LANÇAMENTO: "Salvar" como rodapé fixo da folha
   (fora da rolagem, mesma cor do papel — sem tira branca, sem deslizar)
   ================================================================ */
#transaction-modal .sheet{display:flex !important; flex-direction:column !important; padding-bottom:0 !important}
#transaction-modal .sheet-scroll-body{padding-bottom:12px !important; scroll-padding-bottom:24px !important}
#transaction-modal .sheet-scroll-body form{padding-bottom:8px !important}
#transaction-modal .sheet-scroll-body form > :last-child{margin-bottom:0 !important}
#transaction-modal .tx-dock-fixed{
  position:static !important; flex:0 0 auto !important; z-index:5 !important;
  margin:0 !important;
  padding:10px 20px calc(12px + env(safe-area-inset-bottom,0px)) !important;
  background:color-mix(in srgb, var(--brand) 5%, var(--bg)) !important;
  border-top:1px solid color-mix(in srgb, var(--brand) 14%, var(--line)) !important;
}
[data-theme="dark"] #transaction-modal .tx-dock-fixed{background:var(--surface) !important}
#transaction-modal .tx-dock-fixed .primary{margin:0 !important; width:100% !important}
@media (min-width:700px){
  #transaction-modal .tx-dock-fixed{border-radius:0 0 26px 26px !important}
}

/* ================================================================
   v1_206 — LANÇAMENTO: painel "Planejamento desta entrada" no mesmo
   padrão dos campos; subtítulos dos painéis mais legíveis
   ================================================================ */
#transaction-modal .income-planning-details .reference-month-field{margin:0 !important; padding:12px 13px 4px !important}
#transaction-modal .income-planning-details .reference-month-field > label{margin-bottom:6px}
#transaction-modal .income-planning-details .reference-other-month{margin-top:10px}
#transaction-modal .income-planning-details .reference-other-month input[type="month"]{width:100%}
#transaction-modal .tx-advanced-details > summary span,
#transaction-modal .income-planning-details > summary span{font-size:10.5px !important}


/* ================================================================
   v1.207 — MEU GUIA PROATIVO
   Sinais automáticos do mês, sem chamada extra de IA a cada abertura
   ================================================================ */
.guide-head-btn{position:relative!important}
.guide-head-pulse{
  position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;
  display:grid;place-items:center;border-radius:999px;background:#b5473c;color:#fff;
  border:2px solid var(--bg);font-size:9px;font-weight:900;line-height:1;
  box-shadow:0 3px 10px rgba(104,34,27,.24);
}
.proactive-guide-home{
  position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 30px;
  gap:11px;align-items:center;margin-top:10px;padding:12px 12px 12px 13px;
  border-color:color-mix(in srgb,var(--brand) 18%,var(--line));
  background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 6%,var(--surface)),var(--surface));
}
.proactive-guide-home.attention{border-color:color-mix(in srgb,#b7791f 26%,var(--line));background:linear-gradient(135deg,#fffaf0,var(--surface))}
.proactive-guide-home.critical{border-color:color-mix(in srgb,#b5473c 27%,var(--line));background:linear-gradient(135deg,#fff7f5,var(--surface))}
.proactive-guide-home.positive{border-color:color-mix(in srgb,#23856d 23%,var(--line));background:linear-gradient(135deg,#f3fbf8,var(--surface))}
.proactive-guide-mark{position:relative;width:44px;height:44px}
.proactive-guide-mark img{width:44px;height:44px;border-radius:50%;display:block;object-fit:cover}
.proactive-guide-mark span{
  position:absolute;right:-2px;bottom:-2px;width:18px;height:18px;display:grid;place-items:center;
  border-radius:50%;background:var(--surface);border:1px solid var(--line);font-size:10px;font-weight:900;
}
.proactive-guide-copy{min-width:0}
.proactive-guide-copy small{display:block;font-size:8px;letter-spacing:.11em;font-weight:900;color:var(--brand);margin-bottom:3px}
.proactive-guide-copy strong{display:block;font-size:12.5px;line-height:1.25;color:var(--ink);margin-bottom:2px}
.proactive-guide-copy p{margin:0;font-size:10.5px;line-height:1.36;color:var(--muted)}
.proactive-guide-open{
  width:30px;height:30px;border:0;border-radius:10px;background:var(--surface-2);
  color:var(--muted);font-size:20px;display:grid;place-items:center;
}
.guide-hub-proactive-line{
  width:100%;margin:1px auto 0;padding:7px 10px;border:1px solid color-mix(in srgb,var(--brand) 14%,var(--line));
  border-radius:12px;background:color-mix(in srgb,var(--brand) 4%,var(--surface));color:inherit;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;text-align:left;font:inherit;
}
.guide-hub-proactive-line>span{font-size:8.5px;font-weight:900;color:var(--brand);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}
.guide-hub-proactive-line>strong{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guide-hub-proactive-line>b{font-size:9px;color:var(--brand)}
.proactive-guide-sheet{max-width:520px}
.guide-signals-list{display:flex;flex-direction:column;gap:9px}
.guide-signal-row{
  display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:12px;
  border:1px solid var(--line);border-radius:14px;background:var(--surface);
}
.guide-signal-row.attention{border-color:color-mix(in srgb,#b7791f 23%,var(--line));background:#fffaf5}
.guide-signal-row.critical{border-color:color-mix(in srgb,#b5473c 24%,var(--line));background:#fff8f7}
.guide-signal-row.positive{border-color:color-mix(in srgb,#23856d 22%,var(--line));background:#f6fcfa}
.guide-signal-icon{
  width:32px;height:32px;border-radius:10px;display:grid;place-items:center;
  background:var(--surface-2);font-size:13px;font-weight:900;color:var(--brand);
}
.guide-signal-row.attention .guide-signal-icon{color:#9b6515;background:#fff1d6}
.guide-signal-row.critical .guide-signal-icon{color:#a23b31;background:#ffe8e4}
.guide-signal-row.positive .guide-signal-icon{color:#1f735f;background:#e3f6ef}
.guide-signal-row>div>strong{display:block;font-size:12.5px;line-height:1.3;margin-bottom:3px}
.guide-signal-row p{margin:0;font-size:10.5px;line-height:1.42;color:var(--muted)}
.guide-signal-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.guide-signal-actions button{
  border:0;border-radius:9px;padding:7px 9px;background:var(--surface-2);color:var(--brand);
  font-size:9.5px;font-weight:850;
}
.guide-signal-actions button.ask{background:color-mix(in srgb,var(--brand) 9%,var(--surface))}
.guide-signal-empty{padding:24px 8px;text-align:center;display:flex;flex-direction:column;gap:5px}
.guide-signal-empty strong{font-size:14px}
.guide-signal-empty span{font-size:11px;color:var(--muted)}

@media(max-width:560px){
  .proactive-guide-home{grid-template-columns:40px minmax(0,1fr) 28px;gap:9px}
  .proactive-guide-mark,.proactive-guide-mark img{width:40px;height:40px}
  .guide-hub-proactive-line{grid-template-columns:auto minmax(0,1fr) auto;padding:6px 9px}
}


/* v1.209 — preços Pro mensal/anual, sobre a base correta v1.208 */
.billing-cycle-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}
.billing-cycle-card{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:11px 10px;text-align:left;color:inherit;font:inherit;display:flex;flex-direction:column;gap:4px}
.billing-cycle-card.selected{border-color:color-mix(in srgb,var(--brand) 52%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 9%,transparent);background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.billing-cycle-top{display:flex;gap:6px;align-items:center;justify-content:space-between}
.billing-cycle-top strong{font-size:12px}.billing-cycle-top b{font-size:7px;letter-spacing:.06em;border-radius:999px;padding:4px 6px;background:var(--brand);color:#fff;white-space:nowrap}
.billing-cycle-price{font-size:15px;font-weight:900;color:var(--ink)}.billing-cycle-price small{font-size:9px;font-weight:700;color:var(--muted)}
.billing-cycle-eq{font-size:9.5px;color:var(--muted);line-height:1.25}
.public-pro-prices{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.public-pro-prices>span{font-size:9px;color:var(--muted)}.public-pro-prices b{font-size:15px}.public-pro-prices small{font-size:9px}
@media(max-width:420px){.billing-cycle-options{grid-template-columns:1fr}.billing-cycle-card{padding:10px}}

/* ================================================================
   v1_210 — FORMULÁRIOS DO MEU GUIA (voz e print): identidade índigo
   ================================================================ */
:root{--guia:#5a58c4; --guia-2:#4744a8; --guia-deep:#33318a;}
[data-theme="dark"]{--guia:#a3a1f2; --guia-2:#8c8ae6; --guia-deep:#2b2a6e;}

/* Papel lavanda: "aqui a IA trabalha" */
#voice-modal .sheet,#import-modal .sheet{
  background:linear-gradient(180deg,
    color-mix(in srgb, var(--guia) 12%, var(--bg)) 0,
    color-mix(in srgb, var(--guia) 5%, var(--bg)) 180px,
    color-mix(in srgb, var(--guia) 5%, var(--bg))) !important;
}
[data-theme="dark"] #voice-modal .sheet,[data-theme="dark"] #import-modal .sheet{background:var(--surface) !important}

/* Cabeçalho de marca em índigo */
#voice-modal .sheet-head,#import-modal .sheet-head{
  background:linear-gradient(135deg, #4f4dbd, #33318a) !important;
}
#voice-modal .sheet-head h2::after,#import-modal .sheet-head h2::after{
  background:linear-gradient(90deg, #cfcdff, #9d9bf0) !important;
}
.gm-brand{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.gm-brand img{width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.28)}
.gm-brand span{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.88) !important}
#voice-modal .sheet-head .tx-created-by,#import-modal .sheet-head .tx-created-by{color:rgba(255,255,255,.8) !important;font-size:12.5px;line-height:1.4;margin-top:4px}

/* VOZ: orbe índigo com halo pulsante */
#voice-modal .voice-orb-wrap{padding:14px 0 6px}
#voice-modal .voice-orb{
  position:relative;
  background:linear-gradient(145deg, var(--guia), var(--guia-deep)) !important;
  color:#fff !important; border:0 !important;
  box-shadow:0 14px 32px color-mix(in srgb, var(--guia) 38%, transparent) !important;
}
#voice-modal .voice-orb::after{
  content:""; position:absolute; inset:-10px; border-radius:50%;
  border:2px solid color-mix(in srgb, var(--guia) 45%, transparent);
  animation:guiaHalo 2.2s ease-out infinite;
}
#voice-modal .voice-orb.listening::after{animation-duration:1s; border-color:color-mix(in srgb, var(--guia) 80%, transparent)}
@keyframes guiaHalo{0%{transform:scale(.92);opacity:.85}100%{transform:scale(1.25);opacity:0}}
#voice-modal .voice-orb-wrap strong{color:var(--ink);font-size:17px}
#voice-modal .voice-timer{color:var(--guia);font-weight:800}
#voice-modal .voice-ai-badge{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--surface);border:1px solid color-mix(in srgb, var(--guia) 24%, var(--line));
  border-radius:16px;padding:12px 13px;margin:12px 0 10px;
}
#voice-modal .voice-ai-badge > span{
  width:36px;height:36px;flex:0 0 36px;border-radius:11px;display:grid;place-items:center;
  background:color-mix(in srgb, var(--guia) 12%, var(--surface));color:var(--guia);
}
#voice-modal .voice-ai-badge svg{width:17px;height:17px}
#voice-modal .voice-ai-badge strong{display:block;font-size:14px;margin-bottom:2px}
#voice-modal .voice-ai-badge div > span{font-size:12.5px;color:var(--muted);line-height:1.35}
/* exemplos como balões de fala */
#voice-modal .voice-examples{display:flex;flex-direction:column;gap:8px;background:transparent;border:0;padding:0}
#voice-modal .voice-examples strong{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--guia);margin:4px 0 2px}
#voice-modal .voice-examples span{
  display:block;align-self:flex-start;max-width:92%;
  background:color-mix(in srgb, var(--guia) 9%, var(--surface));
  border:1px solid color-mix(in srgb, var(--guia) 20%, var(--line));
  border-radius:16px 16px 16px 6px;padding:9px 13px;
  font-size:13px;line-height:1.35;color:var(--ink);
}

/* PRINT: alternador, área de soltar e passos numerados */
#import-modal .import-type-switch{
  display:flex;gap:6px;padding:5px;border-radius:14px;
  background:color-mix(in srgb, var(--guia) 9%, var(--surface));
  border:1px solid color-mix(in srgb, var(--guia) 18%, var(--line));margin-bottom:14px;
}
#import-modal .import-type{flex:1;border:0;background:transparent;border-radius:10px;padding:10px 8px;font-weight:700;font-size:13px;color:var(--muted)}
#import-modal .import-type.active{background:var(--surface);color:var(--guia);box-shadow:0 2px 8px rgba(30,30,80,.08)}
#import-modal .import-drop{
  border:1.5px dashed color-mix(in srgb, var(--guia) 45%, var(--line)) !important;
  background:color-mix(in srgb, var(--guia) 7%, var(--surface)) !important;
  border-radius:18px !important;
}
#import-modal .import-drop-icon{
  background:color-mix(in srgb, var(--guia) 14%, var(--surface)) !important;color:var(--guia) !important;
  border-radius:12px !important;
}
#import-modal .import-drop-action{background:var(--guia) !important;color:#fff !important;border-radius:999px;padding:7px 12px;font-weight:800;font-size:12px}
#import-modal .import-info{
  counter-reset:passo;display:flex;flex-direction:column;gap:9px;
  background:var(--surface);border:1px solid color-mix(in srgb, var(--guia) 22%, var(--line));
  border-radius:16px;padding:13px 14px;margin:12px 0 14px;
}
#import-modal .import-info strong{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--guia);margin-bottom:2px}
#import-modal .import-info span{
  counter-increment:passo;display:flex;gap:10px;align-items:flex-start;
  font-size:13px;line-height:1.35;color:var(--ink);
}
#import-modal .import-info span::before{
  content:counter(passo);flex:0 0 22px;width:22px;height:22px;border-radius:50%;
  display:grid;place-items:center;font-size:11.5px;font-weight:800;
  background:color-mix(in srgb, var(--guia) 14%, var(--surface));color:var(--guia);
}
/* ação principal dos dois: índigo */
#voice-modal .primary,#import-modal .primary{
  background:linear-gradient(135deg, var(--guia), var(--guia-deep)) !important;
  box-shadow:0 10px 22px color-mix(in srgb, var(--guia) 32%, transparent) !important;
}
#voice-modal .field label,#import-modal .field label{color:color-mix(in srgb, var(--guia) 65%, var(--ink-soft)) !important}
#voice-modal .field input:focus,#voice-modal .field select:focus,
#import-modal .field input:focus,#import-modal .field select:focus{
  border-color:var(--guia) !important;box-shadow:0 0 0 3px color-mix(in srgb, var(--guia) 18%, transparent) !important;
}
#voice-modal .gm-brand span,#import-modal .gm-brand span{color:#fff !important;opacity:.9}
#voice-modal .sheet-head,#import-modal .sheet-head{border-bottom:0 !important;box-shadow:none !important}
/* prévia da imagem só aparece depois de escolher o arquivo */
#import-modal .import-preview[hidden]{display:none !important}

/* v1.211 — destaque lilás apenas nos atalhos Voz e Print do botão + */
.fab-opt.voice,
.fab-opt.importar{
  background:color-mix(in srgb, var(--guia) 12%, var(--surface));
  border-color:color-mix(in srgb, var(--guia) 28%, var(--line));
  color:var(--guia-deep);
}
.fab-opt.voice .fo-ic,
.fab-opt.importar .fo-ic{
  background:var(--guia);
}


/* build v1.213 */

.danger-confirm:disabled,
.cd-yes:disabled{
  opacity:1 !important;
  background:color-mix(in srgb,var(--negative) 14%,#fff) !important;
  color:#101010 !important;
  border:1px solid color-mix(in srgb,var(--negative) 32%,#fff) !important;
  box-shadow:none !important;
}
.account-media{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px}
.institution-avatar{min-width:42px;height:42px;padding:0 10px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:var(--inst-bg,#eef1f4);color:var(--inst-fg,#223);border:1px solid var(--inst-border,#d8dde3);font-weight:900;font-size:12px;line-height:1;letter-spacing:-0.02em;text-transform:none}
.institution-badge{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}
.institution-badge b{color:var(--ink);font-size:13px;line-height:1.2}
.institution-badge .institution-avatar{min-width:30px;height:30px;padding:0 8px;border-radius:10px;font-size:10px}
.institution-placeholder{display:inline-block;color:var(--muted);font-size:12px;line-height:1.4}
.institution-preview{margin-top:10px}
.institution-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.institution-option{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 11px;display:flex;align-items:center;gap:10px;text-align:left;color:var(--ink);font-weight:700}
.institution-option span{font-size:13px;line-height:1.2}
.institution-option .institution-avatar{min-width:36px;height:36px;padding:0 8px;border-radius:11px;font-size:10px}
.institution-option.active{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:color-mix(in srgb,var(--brand) 6%,var(--surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 18%,transparent) inset}
.field-help{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.35}
@media (max-width:420px){.institution-picker-grid{grid-template-columns:1fr}}


/* v1.215 bancos reais nas contas */
.institution-avatar{min-width:42px;height:42px;padding:0 10px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:var(--inst-bg,#eef1f4);color:var(--inst-fg,#223);border:1px solid var(--inst-border,#d8dde3);font-weight:900;font-size:12px;line-height:1;letter-spacing:-0.02em;text-transform:none;overflow:hidden;box-shadow:0 2px 10px rgba(16,24,40,.05)}
.institution-avatar.is-logo{padding:3px;background:#fff}
.institution-avatar.is-logo img{display:block;width:100%;height:100%;object-fit:contain;border-radius:10px}
.institution-badge .institution-avatar{min-width:30px;height:30px;padding:0 8px;border-radius:10px;font-size:10px}
.institution-badge .institution-avatar.is-logo{padding:2px}
.account-media .institution-avatar{min-width:46px;height:46px;border-radius:14px}
.account-type-meta{font-weight:600;color:var(--muted)}
.institution-preview{margin-top:10px}
.institution-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;max-height:340px;overflow:auto;padding-right:2px}
.institution-option{min-height:64px;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 11px;display:flex;align-items:center;gap:10px;text-align:left;color:var(--ink);font-weight:700}
.institution-option .institution-avatar{min-width:44px;height:44px;padding:0 8px;border-radius:12px;font-size:10px;flex:0 0 auto}
.institution-option span{font-size:13px;line-height:1.2}
@media (max-width:420px){.institution-picker-grid{grid-template-columns:1fr;max-height:280px}}


/* v1.216 ajuste de logos dos bancos no seletor */
.institution-picker-grid{gap:12px}
.institution-option{overflow:hidden;align-items:center}
.institution-option .institution-avatar{width:112px;min-width:112px;max-width:112px;height:44px;padding:4px 8px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:0 0 112px;background:#fff}
.institution-option .institution-avatar img{width:100%;height:100%;object-fit:contain}
.institution-option span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:420px){
  .institution-picker-grid{grid-template-columns:1fr}
  .institution-option{min-height:68px;padding:10px 12px}
  .institution-option .institution-avatar{width:104px;min-width:104px;max-width:104px;height:40px;flex-basis:104px}
}


/* v1.217 logos sem nome + busca por banco */
.institution-picker{margin-top:12px}
.institution-search-wrap{margin-bottom:10px}
.institution-search{width:100%;height:48px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:0 16px;font:inherit;color:var(--ink);outline:none}
.institution-search::placeholder{color:var(--muted)}
.institution-search:focus{border-color:color-mix(in srgb,var(--brand) 38%,var(--line));box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 10%,transparent)}
.institution-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:0;max-height:340px;overflow:auto;padding-right:2px}
.institution-option{min-height:76px;border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:10px;display:flex;align-items:center;justify-content:center;gap:0;text-align:center;color:var(--ink);font-weight:700;overflow:hidden}
.institution-option span{display:none !important}
.institution-option .institution-avatar{width:100%;min-width:0;max-width:160px;height:52px;padding:6px 10px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:0 1 auto;background:#fff;margin:0 auto}
.institution-option .institution-avatar img{width:100%;height:100%;object-fit:contain}
.institution-option.active{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:color-mix(in srgb,var(--brand) 7%,var(--surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 18%,transparent) inset}
.institution-option[hidden]{display:none !important}
@media (max-width:420px){
  .institution-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:300px;gap:10px}
  .institution-option{min-height:72px;padding:9px}
  .institution-option .institution-avatar{max-width:132px;height:46px}
}

/* v1.220 — acompanhamento opcional de saldo das contas */
.account-balance-home{
  width:100%;display:flex;align-items:center;gap:12px;text-align:left;margin-top:12px;padding:13px 14px;
  border:1px solid color-mix(in srgb,var(--brand) 16%,var(--line));background:color-mix(in srgb,var(--brand) 3%,var(--surface));
  border-radius:18px;box-shadow:none;color:var(--ink)
}
.account-balance-home:active{transform:translateY(1px)}
.account-balance-home-icon,.account-bank-generic{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:0 0 40px;
  background:color-mix(in srgb,var(--brand) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--brand) 12%,var(--line));font-size:18px
}
.account-balance-home-copy{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}
.account-balance-home-copy small{font-size:11px;color:var(--muted);font-weight:750}
.account-balance-home-copy strong{font-size:18px;letter-spacing:-.25px;color:var(--ink)}
.account-balance-home-copy>span{font-size:11px;color:var(--muted)}
.account-balance-home-go{font-size:22px;color:var(--muted);font-weight:500}

.account-track-toggle{
  display:flex;align-items:flex-start;gap:11px;margin:6px 0 12px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)
}
.account-track-toggle input{margin-top:3px;width:18px;height:18px;accent-color:var(--brand);flex:0 0 auto}
.account-track-toggle>span{display:flex;flex-direction:column;gap:3px}
.account-track-toggle strong{font-size:13px;color:var(--ink)}
.account-track-toggle small{font-size:11px;line-height:1.35;color:var(--muted);font-weight:500}
.account-balance-capture{margin:-2px 0 14px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--brand) 4%,var(--surface));border:1px solid color-mix(in srgb,var(--brand) 12%,var(--line))}
.account-balance-capture[hidden]{display:none!important}
.account-balance-capture .field{margin:0}
.account-balance-helper{margin-top:8px;font-size:11px;line-height:1.42;color:var(--muted)}

.account-balances-sheet{padding-bottom:max(24px,env(safe-area-inset-bottom))}
.account-balances-total{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:14px 15px;margin:4px 0 12px;border-radius:16px;background:color-mix(in srgb,var(--brand) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--brand) 14%,var(--line))}
.account-balances-total span{font-size:12px;color:var(--muted);font-weight:700}
.account-balances-total strong{font-size:21px;color:var(--ink);letter-spacing:-.35px}
.account-balances-list{display:flex;flex-direction:column;gap:9px}
.account-balance-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.account-balance-row>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.account-balance-row>div strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-balance-row>div small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-balance-row>b{font-size:14px;white-space:nowrap}
.account-balance-footnote{font-size:11px;line-height:1.45;color:var(--muted);margin:12px 2px 0;padding-top:11px;border-top:1px solid var(--line)}

/* remove da interface os estilos do antigo seletor de logos de bancos */
.institution-picker,.institution-search-wrap,.institution-picker-grid,.institution-preview{display:none!important}


/* v1.223 — lembretes financeiros do Meu Guia */
.financial-reminders-sheet{padding-bottom:calc(26px + env(safe-area-inset-bottom))}
.reminder-top-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 14px}
.reminder-top-actions .primary,.reminder-top-actions .secondary{width:100%;min-height:44px}
.reminder-notification-on{display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--line));background:color-mix(in srgb,var(--brand) 6%,var(--surface));border-radius:13px;padding:10px;color:var(--brand);font-size:12px;font-weight:800}
.financial-reminders-list{display:flex;flex-direction:column;gap:10px}
.financial-reminder-row{display:grid;grid-template-columns:70px minmax(0,1fr);gap:11px;padding:13px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 5px 18px rgba(26,35,50,.035)}
.financial-reminder-row.due{border-color:color-mix(in srgb,var(--negative) 25%,var(--line));background:color-mix(in srgb,var(--negative) 3%,var(--surface))}
.reminder-date-badge{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:13px;background:color-mix(in srgb,var(--brand) 8%,var(--surface));padding:7px 5px;min-height:58px;text-align:center}
.financial-reminder-row.due .reminder-date-badge{background:color-mix(in srgb,var(--negative) 8%,var(--surface));color:var(--negative)}
.reminder-date-badge strong{font-size:10px;letter-spacing:.04em}.reminder-date-badge span{font-size:11px;margin-top:3px;color:var(--muted)}
.reminder-main{min-width:0}.reminder-main>strong{display:block;font-size:15px;line-height:1.25;color:var(--ink)}.reminder-main>span{display:block;margin-top:4px;font-size:13px;font-weight:750}.reminder-main>small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.reminder-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:1px}.reminder-actions button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;min-height:38px;padding:7px 9px;font-weight:750;font-size:12px}.reminder-actions .paid{background:color-mix(in srgb,var(--brand) 8%,var(--surface));color:var(--brand);border-color:color-mix(in srgb,var(--brand) 18%,var(--line))}.reminder-actions .edit{width:42px;font-size:15px}
.reminder-empty{padding:28px 18px;text-align:center;border:1px dashed var(--line);border-radius:18px}.reminder-empty>span{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 9px;border-radius:50%;background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--brand);font-weight:900}.reminder-empty strong{display:block}.reminder-empty p{margin:6px auto 0;max-width:310px;color:var(--muted);font-size:13px;line-height:1.45}
.reminder-footnote{margin-top:13px;padding:11px 12px;border-radius:13px;background:var(--soft);color:var(--muted);font-size:12px;line-height:1.45}
.reminder-edit-sheet .reminder-delete-btn{width:100%;margin-top:9px}.reminder-edit-sheet .guide-kicker,.financial-reminders-sheet .guide-kicker{color:#5a58c4}
@media(max-width:430px){.reminder-top-actions{grid-template-columns:1fr}.financial-reminder-row{grid-template-columns:62px minmax(0,1fr);padding:12px}.reminder-actions{grid-template-columns:1fr 1fr auto}}

/* v1.224 autorização de notificações no formulário de lembretes */
.reminder-notification-field{
  margin:2px 0 14px;
  padding:13px 14px;
  border:1px solid color-mix(in srgb,var(--brand) 14%,var(--line));
  border-radius:15px;
  background:color-mix(in srgb,var(--brand) 3%,var(--surface));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.reminder-notification-field>div{min-width:0}
.reminder-notification-field strong{display:block;font-size:13px;color:var(--ink);margin-bottom:3px}
.reminder-notification-field span{display:block;font-size:12px;line-height:1.38;color:var(--muted)}
.reminder-notification-inline-btn{flex:0 0 auto;white-space:nowrap;padding:9px 11px!important;font-size:12px!important}
.reminder-notification-field.granted{border-color:color-mix(in srgb,var(--positive,#2e8b57) 24%,var(--line));background:color-mix(in srgb,var(--positive,#2e8b57) 5%,var(--surface))}
.reminder-notification-field.denied{border-color:color-mix(in srgb,var(--negative) 22%,var(--line));background:color-mix(in srgb,var(--negative) 4%,var(--surface))}
.reminder-notification-field.unavailable{opacity:.84}
.reminder-notification-status{display:flex;align-items:center;gap:10px}
.reminder-notification-dot{
  width:30px;height:30px;border-radius:50%;display:grid!important;place-items:center;
  background:color-mix(in srgb,var(--positive,#2e8b57) 12%,#fff);
  color:var(--positive,#2e8b57)!important;font-weight:900;font-size:14px!important;flex:0 0 30px
}
@media(max-width:420px){
  .reminder-notification-field{align-items:flex-start;flex-direction:column}
  .reminder-notification-inline-btn{width:100%}
}

/* v1.227 — instalação com contraste neutro/lilás, sem bloco verde */
.manual-install-box{
  background:#f7f4ff!important;
  color:#2d2738!important;
  border:1px solid #ded5f2!important;
  box-shadow:none!important;
}
.manual-install-box strong{
  color:#2d2738!important;
}
.manual-install-box span{
  color:#665f73!important;
  opacity:1!important;
}
.manual-install-btn{
  background:#ffffff!important;
  color:#5a477f!important;
  border:1px solid #cfc3e8!important;
  box-shadow:none!important;
}
.manual-install-btn:active{
  background:#eee8fb!important;
}
.install-platform.recommended{
  border-color:#d6cbea!important;
  background:#faf7ff!important;
  box-shadow:0 0 0 2px rgba(94,72,134,.05)!important;
}
.install-platform-head{
  color:#332d40!important;
}
.install-platform-head b{
  background:#eee7fb!important;
  color:#5a477f!important;
}
.install-share{
  color:#5a477f!important;
  border-color:#d9d0e8!important;
}
.install-native-btn,
.install-done-btn{
  background:#5a477f!important;
  color:#fff!important;
  border-color:#5a477f!important;
  box-shadow:0 8px 20px rgba(90,71,127,.18)!important;
}
.install-tip strong{
  color:#3f374c!important;
}


/* v1.229 — cabeçalho do manual com texto branco e melhor contraste */
.manual-header,
.manual-hero,
.manual-top,
.manual-screen .topbar,
.manual-page-header{
  color:#ffffff !important;
}
.manual-header h1,
.manual-header h2,
.manual-header h3,
.manual-header strong,
.manual-header .title,
.manual-header .subtitle,
.manual-header p,
.manual-header span,
.manual-header .muted,
.manual-header .topbar-title,
.manual-hero h1,
.manual-hero h2,
.manual-hero h3,
.manual-hero strong,
.manual-hero p,
.manual-hero span,
.manual-hero .muted,
.manual-hero .topbar-title,
.manual-top h1,
.manual-top h2,
.manual-top h3,
.manual-top strong,
.manual-top p,
.manual-top span,
.manual-top .muted,
.manual-top .topbar-title,
.manual-screen .topbar,
.manual-screen .topbar *,
.manual-page-header,
.manual-page-header *{
  color:#ffffff !important;
}
.manual-header .close,
.manual-hero .close,
.manual-top .close,
.manual-screen .topbar .close,
.manual-page-header .close{
  color:#ffffff !important;
  border-color:rgba(255,255,255,.26) !important;
}


/* v1.230 — Meu Guia em conversa contínua */
#ask-guide-modal{align-items:stretch}
#ask-guide-modal .guide-chat-sheet{display:flex;flex-direction:column;width:min(680px,100%);height:min(760px,92dvh);max-height:92dvh;padding:0;overflow:hidden;background:var(--surface);border-radius:28px}
.guide-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,#7546ee 6%)}
.guide-chat-brand{display:flex;align-items:center;gap:10px;min-width:0}.guide-chat-brand img{width:40px;height:40px;border-radius:50%;object-fit:cover;box-shadow:0 5px 16px rgba(117,70,238,.18)}
.guide-chat-brand div{min-width:0}.guide-chat-brand strong,.guide-chat-brand span{display:block}.guide-chat-brand strong{font-size:16px}.guide-chat-brand span{font-size:10.5px;color:var(--muted);margin-top:2px}
.guide-chat-head-actions{display:flex;align-items:center;gap:5px}.guide-new-chat{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 10px;font-size:10px;font-weight:800}.guide-chat-head .close{position:static!important;flex:0 0 auto}
.guide-chat-context{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 18px;background:var(--surface-2);border-bottom:1px solid var(--line)}.guide-chat-context span{font-size:10.5px;font-weight:800;color:var(--ink)}.guide-chat-context small{font-size:9.5px;color:var(--muted);text-align:right}
.guide-chat-scroll{flex:1;min-height:0;overflow:auto;padding:18px 16px 12px;scroll-behavior:smooth}.guide-chat-messages{display:grid;gap:12px}
.guide-chat-welcome{max-width:520px;margin:16px auto 8px;text-align:center;padding:22px 20px;border:1px solid color-mix(in srgb,#7546ee 14%,var(--line));border-radius:22px;background:color-mix(in srgb,#7546ee 4%,var(--surface))}.guide-chat-welcome-mark img{width:54px;height:54px;border-radius:50%;margin-bottom:8px}.guide-chat-welcome strong{display:block;font-size:18px;margin-bottom:7px}.guide-chat-welcome p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.55}
.guide-chat-row{display:flex;align-items:flex-end;gap:7px}.guide-chat-row.user{justify-content:flex-end}.guide-chat-row.guide{justify-content:flex-start}.guide-chat-avatar{width:27px;height:27px;flex:0 0 27px}.guide-chat-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.guide-chat-bubble{max-width:min(82%,520px);padding:11px 13px;border-radius:17px;font-size:13px;line-height:1.52;word-break:break-word}.guide-chat-row.user .guide-chat-bubble{background:#7546ee;color:#fff;border-bottom-right-radius:5px}.guide-chat-row.guide .guide-chat-bubble{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:5px}.guide-chat-row.guide .guide-chat-bubble.error{border-color:color-mix(in srgb,#b5473c 28%,var(--line));background:color-mix(in srgb,#b5473c 5%,var(--surface));color:var(--ink)}
.guide-chat-typing{display:flex;align-items:center;gap:4px;margin:12px 0 0 34px;color:var(--muted);font-size:10px}.guide-chat-typing span{width:6px;height:6px;border-radius:50%;background:currentColor;animation:guideTyping 1.1s infinite ease-in-out}.guide-chat-typing span:nth-child(2){animation-delay:.15s}.guide-chat-typing span:nth-child(3){animation-delay:.3s}.guide-chat-typing em{font-style:normal;margin-left:4px}@keyframes guideTyping{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.guide-chat-bottom{flex:0 0 auto;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 97%,#7546ee 3%)}
.guide-chat-suggestions{display:flex;gap:7px;overflow-x:auto;padding:0 1px 9px;scrollbar-width:none}.guide-chat-suggestions::-webkit-scrollbar{display:none}.guide-chat-suggestions button{flex:0 0 auto;max-width:260px;border:1px solid color-mix(in srgb,#7546ee 18%,var(--line));background:var(--surface);color:color-mix(in srgb,#7546ee 80%,var(--ink));border-radius:999px;padding:8px 11px;font-size:10.5px;font-weight:750;white-space:nowrap}
.guide-chat-composer{display:flex;align-items:flex-end;gap:7px;border:1px solid color-mix(in srgb,#7546ee 22%,var(--line));background:var(--surface);border-radius:20px;padding:6px;box-shadow:0 5px 18px rgba(30,32,50,.06)}.guide-chat-composer textarea{flex:1;min-width:0;min-height:42px;max-height:112px;resize:none;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:10px 5px!important;font:inherit;font-size:13px;line-height:1.4;color:var(--ink)}
.guide-chat-mic,.guide-chat-send{width:40px;height:40px;flex:0 0 40px;border:0;border-radius:50%;display:grid;place-items:center}.guide-chat-mic{background:color-mix(in srgb,#7546ee 9%,var(--surface));color:#7546ee}.guide-chat-mic svg{width:19px;height:19px}.guide-chat-send{background:#7546ee;color:#fff;font-size:20px;font-weight:800}.guide-chat-send:disabled{opacity:.45}.guide-chat-footnote{display:block;text-align:center;color:var(--muted);font-size:8.7px;line-height:1.3;margin-top:7px}
[data-theme="dark"] .guide-chat-row.user .guide-chat-bubble{background:#8358f3}.guide-chat-mic:active,.guide-chat-send:active,.guide-chat-suggestions button:active,.guide-new-chat:active{transform:scale(.98)}
@media(max-width:560px){#ask-guide-modal{align-items:flex-end}#ask-guide-modal .guide-chat-sheet{width:100%;height:94dvh;max-height:94dvh;border-radius:28px 28px 0 0}.guide-chat-head{padding:13px 14px 10px}.guide-chat-brand img{width:37px;height:37px}.guide-chat-context{padding:8px 14px}.guide-chat-context small{display:none}.guide-chat-scroll{padding:14px 12px 10px}.guide-chat-bubble{max-width:86%;font-size:12.7px}.guide-chat-welcome{margin:8px 2px 4px;padding:18px 15px}.guide-chat-bottom{padding-left:9px;padding-right:9px}.guide-new-chat{padding:6px 8px;font-size:9px}}

/* v1.231 — Meu Guia agente: ações dentro da conversa */
.guide-chat-message-wrap{min-width:0;max-width:min(84%,540px)}
.guide-chat-row.user .guide-chat-message-wrap{display:flex;justify-content:flex-end}
.guide-chat-message-wrap .guide-chat-bubble{max-width:100%}
.guide-chat-message-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.guide-chat-message-actions button{border:1px solid color-mix(in srgb,#7546ee 20%,var(--line));background:var(--surface);color:color-mix(in srgb,#7546ee 82%,var(--ink));border-radius:12px;padding:8px 10px;font-size:10.5px;font-weight:800;text-align:left;line-height:1.25;max-width:100%}
.guide-chat-message-actions button.primary-action{background:color-mix(in srgb,#7546ee 9%,var(--surface));border-color:color-mix(in srgb,#7546ee 32%,var(--line));color:#7546ee}
.guide-chat-message-actions button:active{transform:scale(.985)}
.guide-delete-focus{border:1px solid color-mix(in srgb,#b5473c 45%,var(--line));border-radius:14px;padding:10px;animation:guideDeletePulse 1.2s ease-out}
@keyframes guideDeletePulse{0%{box-shadow:0 0 0 0 rgba(181,71,60,.26)}100%{box-shadow:0 0 0 12px rgba(181,71,60,0)}}
@media(max-width:560px){.guide-chat-message-wrap{max-width:88%}.guide-chat-message-actions{display:grid;grid-template-columns:1fr}.guide-chat-message-actions button{width:100%}}

/* ================================================================
   v1.232 — DESIGN SYSTEM PREMIUM UNIFICADO
   Verde = produto / ações · Roxo = IA · Dourado = Pro
   ================================================================ */
:root{
  --bg:#f5f6f3;
  --bg-2:#eef1ec;
  --surface:#ffffff;
  --surface-2:#f7f8f5;
  --ink:#14201b;
  --ink-soft:#33413a;
  --muted:#68756e;
  --line:#e4e9e4;
  --line-strong:#d8e0da;

  --brand:#1c4a3f;
  --brand-2:#285f51;
  --brand-deep:#12382f;
  --brand-soft:#edf5f1;
  --on-brand:#ffffff;

  --ai:#6c55d9;
  --ai-2:#5944bd;
  --ai-deep:#443397;
  --ai-soft:#f3f0ff;
  --ai-line:#ddd5fa;

  --pro:#b88932;
  --pro-2:#d2a64d;
  --pro-soft:#fbf5e8;
  --pro-line:#ead8ab;

  --amber:#d18a29;
  --amber-ink:#9a6118;
  --amber-soft:#fbf1df;

  --ring:var(--brand-2);
  --hero-from:#1c4a3f;
  --hero-to:#12382f;
  --shadow-sm:0 2px 10px rgba(20,32,27,.045);
  --shadow-md:0 12px 32px rgba(20,32,27,.075);
  --shadow-lg:0 24px 60px rgba(20,32,27,.14);

  --guia:var(--ai);
  --guia-2:var(--ai-2);
  --guia-deep:var(--ai-deep);
  --v2-accent:var(--brand);
  --v2-accent2:var(--brand-2);
}
[data-theme="dark"]{
  --bg:#101713;
  --bg-2:#151e19;
  --surface:#19221d;
  --surface-2:#202b25;
  --ink:#edf3ef;
  --ink-soft:#cbd5cf;
  --muted:#99a69f;
  --line:#2b3730;
  --line-strong:#3a4940;
  --brand:#48bd91;
  --brand-2:#68d1a9;
  --brand-deep:#1a5b47;
  --brand-soft:rgba(72,189,145,.13);
  --ai:#aaa0f4;
  --ai-2:#9185e7;
  --ai-deep:#7569ce;
  --ai-soft:rgba(170,160,244,.12);
  --ai-line:rgba(170,160,244,.26);
  --pro:#e4bd65;
  --pro-2:#f0cf82;
  --pro-soft:rgba(228,189,101,.12);
  --pro-line:rgba(228,189,101,.28);
  --ring:var(--brand-2);
}

/* Base visual mais silenciosa e sofisticada */
.card,.month-nav,.settings-card,.profile-card,.report-card,.pay-report-card{
  border-color:var(--line) !important;
  box-shadow:var(--shadow-sm) !important;
}
.field label{color:var(--ink-soft);font-weight:750;letter-spacing:.005em}
.field input,.field select,.field textarea,
.sheet input,.sheet select,.sheet textarea{
  background:var(--surface) !important;
  border:1px solid var(--line-strong) !important;
  border-radius:14px !important;
  min-height:48px;
  box-shadow:0 1px 0 rgba(20,32,27,.02);
}
.field textarea,.sheet textarea{min-height:auto}
.field input:focus,.field select:focus,.field textarea:focus,
.sheet input:focus,.sheet select:focus,.sheet textarea:focus{
  border-color:color-mix(in srgb,var(--brand) 58%,var(--line)) !important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 10%,transparent) !important;
}
.amount-field{
  background:var(--surface) !important;
  border:1.5px solid color-mix(in srgb,var(--brand) 36%,var(--line)) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35) !important;
}
.primary,.sheet .primary{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep)) !important;
  color:#fff !important;
  border:0 !important;
  border-radius:14px !important;
  box-shadow:0 9px 20px color-mix(in srgb,var(--brand-deep) 18%,transparent) !important;
}
.secondary{
  border-color:var(--line-strong) !important;
  background:var(--surface) !important;
  color:var(--ink-soft) !important;
}
.chip.active{
  background:var(--brand) !important;
  border-color:var(--brand) !important;
  color:#fff !important;
}

/* Formulários comuns: papel neutro e cabeçalho verde da marca */
.modal .sheet,.sheet{
  background:linear-gradient(180deg,var(--surface) 0,var(--bg) 150px,var(--bg) 100%) !important;
}
.modal .sheet > .sheet-head{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep)) !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  box-shadow:0 10px 24px -20px rgba(0,0,0,.55) !important;
}
.modal .sheet > .sheet-head::before{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep)) !important;
}
.modal .sheet > .sheet-head h2::after{
  width:30px !important;
  height:3px !important;
  background:rgba(255,255,255,.34) !important;
}
.modal .sheet > .sheet-head .guide-kicker svg{
  color:rgba(255,255,255,.86) !important;
}

/* IA: uma única família roxa e somente em superfícies inteligentes */
.guide-kicker,
.guide-head-btn,
.guide-mi .gm-ic,
.guide-kicker-brand svg,
.ai-kicker{
  color:var(--ai) !important;
}
.guide-mi .gm-ic{
  background:color-mix(in srgb,var(--ai) 10%,var(--surface)) !important;
}
.guide-badge,.guide-status{
  background:var(--ai-soft) !important;
  color:var(--ai-2) !important;
  border:1px solid var(--ai-line) !important;
}
.guide-today-card{
  background:linear-gradient(145deg,var(--ai-deep) 0,var(--ai-2) 58%,var(--ai) 100%) !important;
  box-shadow:0 18px 44px color-mix(in srgb,var(--ai-deep) 20%,transparent) !important;
}
.guide-today-card .guide-kicker{color:rgba(255,255,255,.74) !important}
.guide-rec-icon{
  background:var(--ai-soft) !important;
  color:var(--ai) !important;
}
.guide-rec.warning .guide-rec-icon{background:var(--amber-soft) !important;color:var(--amber-ink) !important}

/* Chat, voz e importação são experiências de IA: roxo consistente */
#ask-guide-modal .guide-chat-sheet,
#voice-modal .sheet,
#import-modal .sheet{
  background:linear-gradient(180deg,color-mix(in srgb,var(--ai) 4%,var(--surface)) 0,var(--surface) 180px,var(--bg) 100%) !important;
}
#voice-modal .sheet-head,#import-modal .sheet-head{
  background:linear-gradient(135deg,var(--ai-2),var(--ai-deep)) !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
}
#voice-modal .sheet-head::before,#import-modal .sheet-head::before{
  background:linear-gradient(135deg,var(--ai-2),var(--ai-deep)) !important;
}
#voice-modal .sheet-head h2::after,#import-modal .sheet-head h2::after{
  background:rgba(255,255,255,.35) !important;
}
#voice-modal .voice-orb{
  background:linear-gradient(145deg,var(--ai),var(--ai-deep)) !important;
  box-shadow:0 14px 32px color-mix(in srgb,var(--ai) 28%,transparent) !important;
}
#voice-modal .voice-timer,
#voice-modal .voice-examples strong{color:var(--ai) !important}
#voice-modal .voice-ai-badge > span,
#import-modal .import-type-switch{
  background:var(--ai-soft) !important;
}
#voice-modal .voice-ai-badge > span{color:var(--ai) !important}
#voice-modal .voice-ai-badge,
#import-modal .import-type-switch{border-color:var(--ai-line) !important}
#import-modal .import-type.active{color:var(--ai) !important}

.guide-chat-head{
  background:linear-gradient(180deg,color-mix(in srgb,var(--ai) 7%,var(--surface)),var(--surface)) !important;
}
.guide-chat-brand img{box-shadow:0 5px 16px color-mix(in srgb,var(--ai) 20%,transparent) !important}
.guide-chat-welcome{
  border-color:var(--ai-line) !important;
  background:color-mix(in srgb,var(--ai) 4%,var(--surface)) !important;
}
.guide-chat-row.user .guide-chat-bubble{
  background:linear-gradient(135deg,var(--ai),var(--ai-2)) !important;
  color:#fff !important;
}
.guide-chat-bottom{background:color-mix(in srgb,var(--ai) 2.5%,var(--surface)) !important}
.guide-chat-suggestions button,
.guide-chat-message-actions button{
  border-color:var(--ai-line) !important;
  color:var(--ai-2) !important;
  background:var(--surface) !important;
}
.guide-chat-message-actions button.primary-action,
.guide-chat-mic{
  background:var(--ai-soft) !important;
  color:var(--ai) !important;
  border-color:var(--ai-line) !important;
}
.guide-chat-composer{
  border-color:var(--ai-line) !important;
  background:var(--surface) !important;
  box-shadow:0 6px 22px rgba(30,32,50,.055) !important;
}
.guide-chat-send{
  background:linear-gradient(135deg,var(--ai),var(--ai-2)) !important;
  color:#fff !important;
}

/* Orçamento e metas: sem roxo; usam semântica própria */
.smart-budget-card{
  border-color:color-mix(in srgb,var(--amber) 18%,var(--line)) !important;
  background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--amber) 3%,var(--surface))) !important;
}
.smart-budget-card .guide-kicker{color:var(--amber-ink) !important}
.scenario-btn.active{
  border-color:color-mix(in srgb,var(--amber) 52%,var(--line)) !important;
  background:var(--amber-soft) !important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--amber) 8%,transparent) !important;
}
.goal-row-head b{color:var(--amber-ink) !important}
.goal-progress{background:color-mix(in srgb,var(--amber) 12%,var(--surface-2)) !important}
.goal-progress i{background:linear-gradient(90deg,var(--amber),#e5ad54) !important}
.goal-add-mini{color:var(--brand) !important}
.onboarding-progress{
  background:var(--brand-soft) !important;
  color:var(--brand) !important;
}
.onboarding-steps button>span{
  background:var(--brand-soft) !important;
  color:var(--brand) !important;
}

/* Instalação/manual: volta para a identidade do produto, não IA */
.manual-install-box{
  background:var(--surface-2) !important;
  color:var(--ink) !important;
  border-color:var(--line) !important;
}
.manual-install-box strong{color:var(--ink) !important}
.manual-install-box span{color:var(--muted) !important}
.manual-install-btn{
  background:var(--surface) !important;
  color:var(--brand) !important;
  border-color:color-mix(in srgb,var(--brand) 24%,var(--line)) !important;
}
.install-platform.recommended{
  border-color:color-mix(in srgb,var(--brand) 24%,var(--line)) !important;
  background:var(--brand-soft) !important;
  box-shadow:none !important;
}
.install-platform-head{color:var(--ink) !important}
.install-platform-head b{background:var(--brand-soft) !important;color:var(--brand) !important}
.install-share{color:var(--brand) !important;border-color:color-mix(in srgb,var(--brand) 22%,var(--line)) !important}
.install-native-btn,.install-done-btn{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep)) !important;
  color:#fff !important;
  border-color:var(--brand) !important;
  box-shadow:0 8px 20px color-mix(in srgb,var(--brand) 18%,transparent) !important;
}
.install-tip strong{color:var(--ink-soft) !important}

/* Pro: dourado restrito a plano, acesso e benefícios premium */
.pro-value-card,
.auth-plan-card.pro,
.plan-choice-card.pro,
.my-plan-current.pro{
  border-color:var(--pro-line) !important;
  background:linear-gradient(145deg,var(--surface),var(--pro-soft)) !important;
}
.pro-value-badge,
.plan-choice-card.pro .plan-choice-badge,
.auth-plan-card.pro .plan-badge,
.my-plan-current.pro .my-plan-badge{
  color:var(--pro) !important;
}
.pro-value-badge{
  background:linear-gradient(135deg,var(--pro),var(--pro-2)) !important;
  color:#fff !important;
  box-shadow:0 6px 14px color-mix(in srgb,var(--pro) 18%,transparent);
}
.billing-cycle-card.selected{
  border-color:var(--pro-line) !important;
  background:var(--pro-soft) !important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--pro) 8%,transparent) !important;
}
.billing-cycle-top b{
  background:linear-gradient(135deg,var(--pro),var(--pro-2)) !important;
  color:#fff !important;
}
.guide-hub-actions > button.guide-pro-locked{
  background:linear-gradient(145deg,var(--surface),var(--pro-soft)) !important;
  border-color:var(--pro-line) !important;
}
.guide-hub-actions > button.guide-pro-locked > span{
  background:var(--pro-soft) !important;
  color:var(--pro) !important;
}

/* Lembretes, metas e lançamentos são ações do produto: nunca viram formulário roxo */
#transaction-modal .sheet-head,
#goal-modal .sheet-head,
#goals-manager .sheet-head,
#account-balances-modal .sheet-head,
.reminder-edit-sheet > .sheet-head,
.financial-reminders-sheet > .sheet-head{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep)) !important;
}
#transaction-modal .sheet-head::before,
#goal-modal .sheet-head::before,
#goals-manager .sheet-head::before,
#account-balances-modal .sheet-head::before,
.reminder-edit-sheet > .sheet-head::before,
.financial-reminders-sheet > .sheet-head::before{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep)) !important;
}
.reminder-edit-sheet .guide-kicker,
.financial-reminders-sheet .guide-kicker{
  color:rgba(255,255,255,.82) !important;
}

/* Microinterações premium, sem exagero */
.primary,.secondary,.chip,.close,.type-btn,.guide-chat-send,.guide-chat-mic,
.guide-chat-suggestions button,.guide-chat-message-actions button{
  transition:transform .12s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease !important;
}
@media(hover:hover){
  .primary:hover{filter:brightness(1.035)}
  .guide-chat-send:hover{filter:brightness(1.035)}
  .secondary:hover,.chip:hover{border-color:color-mix(in srgb,var(--brand) 26%,var(--line))}
}


/* v1.233 — Meu Guia conversation-first */
.guide-conversation-home{
  position:relative;overflow:hidden;padding:16px;
  border:1px solid color-mix(in srgb,var(--ai) 18%,var(--line)) !important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--ai) 6%,var(--surface)),var(--surface) 58%) !important;
  box-shadow:0 12px 34px rgba(27,35,48,.08) !important;
}
.guide-conversation-home:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-80px;top:-105px;background:color-mix(in srgb,var(--ai) 9%,transparent);pointer-events:none}
.guide-conversation-home-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;position:relative}
.guide-conversation-home-brand{display:flex;align-items:center;gap:11px;min-width:0}
.guide-conversation-home-brand img{width:46px;height:46px;border-radius:50%;object-fit:cover;box-shadow:0 6px 18px color-mix(in srgb,var(--ai) 20%,transparent)}
.guide-conversation-home-brand div{min-width:0}.guide-conversation-home-brand span,.guide-conversation-home-brand strong,.guide-conversation-home-brand small{display:block}
.guide-conversation-home-brand span{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--ai)}
.guide-conversation-home-brand strong{font-size:15px;line-height:1.28;margin-top:2px;color:var(--ink)}
.guide-conversation-home-brand small{font-size:10.5px;line-height:1.4;color:var(--muted);margin-top:4px}
.guide-conversation-ai-badge{font-size:9px;font-weight:900;color:var(--ai);background:var(--ai-soft);border:1px solid color-mix(in srgb,var(--ai) 18%,var(--line));border-radius:999px;padding:5px 7px}
.guide-conversation-entry{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--ai) 20%,var(--line));border-radius:16px;background:var(--surface);color:var(--muted);text-align:left;box-shadow:0 5px 16px rgba(30,32,50,.05)}
.guide-conversation-entry span{font-size:12px}.guide-conversation-entry b{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--ai-soft);color:var(--ai)}
.guide-conversation-entry b svg{width:17px;height:17px}
.guide-conversation-prompts{display:flex;gap:6px;overflow-x:auto;margin-top:9px;scrollbar-width:none}.guide-conversation-prompts::-webkit-scrollbar{display:none}
.guide-conversation-prompts button{flex:0 0 auto;border:1px solid color-mix(in srgb,var(--ai) 14%,var(--line));background:color-mix(in srgb,var(--ai) 3%,var(--surface));color:color-mix(in srgb,var(--ai) 76%,var(--ink));border-radius:999px;padding:7px 9px;font-size:9.5px;font-weight:800;white-space:nowrap}
.guide-conversation-home-locked .guide-conversation-entry,.guide-conversation-home-locked .guide-conversation-prompts button{opacity:.82}

.guide-hub-conversation-first{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
.guide-hub-conversation-intro{padding:15px 16px 6px}.guide-hub-conversation-intro h2{margin:5px 0 5px;font-size:22px}.guide-hub-conversation-intro p{margin:0;color:var(--muted);font-size:11.5px;line-height:1.5}
.guide-hub-start-chat,.guide-hub-manage button{width:calc(100% - 32px);margin:10px 16px 0;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;border:1px solid color-mix(in srgb,var(--ai) 18%,var(--line));background:color-mix(in srgb,var(--ai) 5%,var(--surface));border-radius:17px;padding:12px;color:var(--ink)}
.guide-hub-start-chat>span,.guide-hub-manage button>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--ai-soft);color:var(--ai)}
.guide-hub-start-chat svg,.guide-hub-manage button svg{width:19px;height:19px}.guide-hub-start-chat strong,.guide-hub-start-chat small,.guide-hub-manage strong,.guide-hub-manage small{display:block}.guide-hub-start-chat strong,.guide-hub-manage strong{font-size:12.5px}.guide-hub-start-chat small,.guide-hub-manage small{font-size:9.5px;color:var(--muted);margin-top:3px}.guide-hub-start-chat>b,.guide-hub-manage button>b{color:var(--muted);font-size:19px}
.guide-hub-prompt-title{padding:16px 16px 7px}.guide-hub-prompt-title span{font-size:9.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.guide-hub-prompt-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px}
.guide-hub-prompt-grid button{min-width:0;min-height:94px;border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:12px;text-align:left;color:var(--ink);box-shadow:0 5px 16px rgba(30,32,50,.035)}
.guide-hub-prompt-grid button>span{font-size:20px;display:block;margin-bottom:8px}.guide-hub-prompt-grid strong,.guide-hub-prompt-grid small{display:block}.guide-hub-prompt-grid strong{font-size:11.5px}.guide-hub-prompt-grid small{font-size:9.5px;color:var(--muted);margin-top:3px}
.guide-hub-manage{margin-top:10px;padding-top:2px;border-top:1px solid var(--line)}.guide-hub-manage button{border-color:var(--line);background:var(--surface)}.guide-hub-manage button>span{background:var(--surface-2);color:var(--brand)}
@media(max-width:560px){.guide-conversation-home{padding:14px}.guide-conversation-home-brand img{width:43px;height:43px}.guide-conversation-home-brand strong{font-size:14px}.guide-hub-prompt-grid{gap:7px}.guide-hub-prompt-grid button{min-height:90px;padding:11px}}


/* v1.234 — Meu Guia: Conversar + Gerenciar */
.guide-hub-unified .guide-hub-conversation-intro{padding-bottom:8px}
.guide-hub-start-chat-main{margin-top:6px;padding:14px 13px;background:linear-gradient(145deg,color-mix(in srgb,var(--ai) 8%,var(--surface)),var(--surface));box-shadow:0 8px 24px color-mix(in srgb,var(--ai) 9%,transparent)}
.guide-hub-unified-prompts{display:flex;gap:7px;overflow-x:auto;padding:9px 16px 4px;scrollbar-width:none}
.guide-hub-unified-prompts::-webkit-scrollbar{display:none}
.guide-hub-unified-prompts button{flex:0 0 auto;border:1px solid color-mix(in srgb,var(--ai) 14%,var(--line));background:color-mix(in srgb,var(--ai) 3%,var(--surface));color:color-mix(in srgb,var(--ai) 76%,var(--ink));border-radius:999px;padding:8px 10px;font-size:9.5px;font-weight:800;white-space:nowrap}
.guide-hub-manage-title{padding:17px 16px 5px}
.guide-hub-manage-title span{font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.guide-hub-manage-unified{margin-top:0;border-top:0;padding-top:0}
.guide-hub-manage-unified button{margin-top:7px}
.guide-hub-manage-unified button>span{font-size:18px}


/* v1.235 — Motion & microinterações premium */
:root{
  --motion-fast:160ms;
  --motion-base:220ms;
  --motion-slow:280ms;
  --motion-ease:cubic-bezier(.22,.8,.24,1);
  --motion-exit:cubic-bezier(.4,0,.7,.2);
}

/* Modal: backdrop e sheet entram de forma independente e suave */
.modal{
  animation:modalBackdropIn var(--motion-base) ease-out both !important;
  backdrop-filter:saturate(1.02);
  -webkit-backdrop-filter:saturate(1.02);
}
.modal>.sheet{
  transform-origin:50% 100%;
  animation:premiumSheetIn var(--motion-slow) var(--motion-ease) both !important;
  will-change:transform,opacity;
  backface-visibility:hidden;
}
.modal.closing{
  animation:modalBackdropOut var(--motion-base) ease-in both !important;
  pointer-events:none;
}
.modal.closing>.sheet{
  animation:premiumSheetOut var(--motion-base) var(--motion-exit) both !important;
}
@keyframes modalBackdropIn{
  from{opacity:0;background:rgba(6,14,11,0)}
  to{opacity:1;background:rgba(6,14,11,.55)}
}
@keyframes modalBackdropOut{
  from{opacity:1}
  to{opacity:0}
}
@keyframes premiumSheetIn{
  0%{opacity:0;transform:translate3d(0,24px,0) scale(.992)}
  55%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes premiumSheetOut{
  from{opacity:1;transform:translate3d(0,0,0) scale(1)}
  to{opacity:0;transform:translate3d(0,18px,0) scale(.994)}
}

/* Controles respondem ao toque sem "pular" */
button,.btn,.primary,.secondary,.close,.fab{
  transition:
    transform var(--motion-fast) var(--motion-ease),
    box-shadow var(--motion-fast) ease,
    background-color var(--motion-fast) ease,
    border-color var(--motion-fast) ease,
    opacity var(--motion-fast) ease;
}
button:active,.btn:active,.primary:active,.secondary:active,.close:active{
  transform:scale(.985);
}
.fab:active{transform:scale(.96)}

/* Home: conversa e voz deixam de parecer a mesma ação */
.guide-conversation-entry-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:8px;
  align-items:stretch;
  margin-top:14px;
}
.guide-conversation-entry-wrap .guide-conversation-entry{
  margin-top:0;
  min-width:0;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.guide-conversation-entry-copy{
  display:block;
  min-width:0;
}
.guide-conversation-entry-copy small{
  display:block;
  margin-bottom:3px;
  font-size:8px;
  line-height:1;
  font-weight:900;
  letter-spacing:.09em;
  color:var(--ai);
}
.guide-conversation-entry-copy strong{
  display:block;
  font-size:11px;
  line-height:1.35;
  font-weight:720;
  color:var(--ink);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.guide-conversation-entry-arrow{
  flex:0 0 auto;
  font-size:21px;
  line-height:1;
  color:var(--ai);
  margin-left:8px;
}
.guide-conversation-voice{
  width:44px;
  min-width:44px;
  height:auto;
  border:1px solid color-mix(in srgb,var(--ai) 20%,var(--line));
  border-radius:15px;
  background:var(--ai-soft);
  color:var(--ai);
  display:grid;
  place-items:center;
  box-shadow:0 5px 16px color-mix(in srgb,var(--ai) 8%,transparent);
}
.guide-conversation-voice svg{width:18px;height:18px}
.guide-conversation-entry:hover,
.guide-conversation-entry:focus-visible{
  border-color:color-mix(in srgb,var(--ai) 35%,var(--line));
  box-shadow:0 7px 20px color-mix(in srgb,var(--ai) 8%,transparent);
}
.guide-conversation-voice:hover,
.guide-conversation-voice:focus-visible{
  background:color-mix(in srgb,var(--ai) 13%,var(--surface));
  border-color:color-mix(in srgb,var(--ai) 35%,var(--line));
}

/* Evita animações que prejudiquem acessibilidade */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}


/* v1.236 — respostas do Guia mais objetivas */
.guide-chat-bubble{line-height:1.48}
.guide-chat-row.guide .guide-chat-bubble{max-width:100%}


/* v1.237 — orçamento preparado pelo Meu Guia */
.guide-budget-review-sheet{max-height:94svh}
.guide-budget-previous{margin:2px 0 12px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--ai) 14%,var(--line));border-radius:15px;background:color-mix(in srgb,var(--ai) 4%,var(--surface))}
.guide-budget-previous span,.guide-budget-previous strong,.guide-budget-previous small{display:block}
.guide-budget-previous span{font-size:8.5px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--ai)}
.guide-budget-previous strong{font-size:13px;margin-top:3px;color:var(--ink)}
.guide-budget-previous small{font-size:9.5px;line-height:1.45;color:var(--muted);margin-top:4px}
.guide-budget-review-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}
.guide-budget-review-summary>div{padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.guide-budget-review-summary span,.guide-budget-review-summary strong{display:block}
.guide-budget-review-summary span{font-size:8px;color:var(--muted);margin-bottom:4px}
.guide-budget-review-summary strong{font-size:11px;color:var(--ink)}
.guide-budget-review-list{display:grid;gap:7px;margin-bottom:13px}
.guide-budget-review-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:10px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.guide-budget-review-row strong,.guide-budget-review-row small{display:block}
.guide-budget-review-row strong{font-size:11px;color:var(--ink)}
.guide-budget-review-row small{font-size:8.8px;line-height:1.35;color:var(--muted);margin-top:3px}
.guide-budget-review-row input{width:100%;text-align:right;font-weight:800;padding:9px 8px;border-radius:11px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.guide-budget-review-row input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 10%,transparent)}
@media(max-width:420px){
  .guide-budget-review-summary{grid-template-columns:1fr 1fr}
  .guide-budget-review-summary>div:last-child{grid-column:1/-1}
  .guide-budget-review-row{grid-template-columns:minmax(0,1fr) 96px}
}


/* v1.238 — Meu Guia mais limpo na Home */
.guide-conversation-home-simple{
  padding:15px 15px 13px;
}
.guide-conversation-home-simple .guide-conversation-home-brand small{
  max-width:310px;
}
.guide-home-converse{
  width:100%;
  margin-top:13px;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px 10px 13px;
  border:1px solid color-mix(in srgb,var(--ai) 20%,var(--line));
  border-radius:16px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--ai) 6%,var(--surface)),var(--surface));
  color:var(--ink);
  text-align:left;
  box-shadow:0 6px 18px color-mix(in srgb,var(--ai) 7%,transparent);
}
.guide-home-converse span{min-width:0}
.guide-home-converse small,.guide-home-converse strong{display:block}
.guide-home-converse small{
  font-size:8px;
  line-height:1;
  letter-spacing:.09em;
  font-weight:900;
  color:var(--ai);
  margin-bottom:4px;
}
.guide-home-converse strong{
  font-size:12px;
  line-height:1.25;
  font-weight:800;
  color:var(--ink);
}
.guide-home-converse b{
  flex:0 0 auto;
  width:30px;height:30px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--ai-soft);
  color:var(--ai);
  font-size:21px;
  font-weight:500;
}
.guide-home-converse:active{transform:scale(.99)}
.guide-conversation-prompts-simple{
  margin-top:8px;
}
.guide-conversation-prompts-simple button{
  padding:7px 10px;
  font-size:9.5px;
}
/* regra antiga da Home com microfone não é mais usada */
.guide-conversation-entry-wrap,
.guide-conversation-voice{display:none}


/* v1.239 — escolha do tipo de orçamento pelo Meu Guia */
.guide-budget-mode-sheet{max-height:92svh}
.guide-budget-mode-list{display:grid;gap:8px;margin:4px 0 12px}
.guide-budget-mode-list>button{
  width:100%;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 24px;
  align-items:center;
  gap:10px;
  min-height:72px;
  padding:11px 12px;
  text-align:left;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  color:var(--ink);
}
.guide-budget-mode-list>button.active{
  border-color:color-mix(in srgb,var(--brand) 45%,var(--line));
  background:color-mix(in srgb,var(--brand) 5%,var(--surface));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 7%,transparent);
}
.guide-budget-mode-list>button div{min-width:0}
.guide-budget-mode-list strong,.guide-budget-mode-list small{display:block}
.guide-budget-mode-list strong{font-size:12px;line-height:1.2}
.guide-budget-mode-list small{font-size:9.5px;line-height:1.4;color:var(--muted);margin-top:4px}
.guide-budget-mode-icon{
  width:40px;height:40px;
  display:grid;place-items:center;
  border-radius:12px;
  background:var(--surface-2);
  color:var(--brand);
  font-size:20px;font-weight:800;
}
.guide-budget-mode-list>button.active .guide-budget-mode-icon{
  background:color-mix(in srgb,var(--brand) 11%,var(--surface));
}
.guide-budget-mode-list>button i{
  width:22px;height:22px;
  display:grid;place-items:center;
  border-radius:50%;
  border:1px solid var(--line);
  color:transparent;
  font-size:11px;font-style:normal;font-weight:900;
}
.guide-budget-mode-list>button.active i{
  background:var(--brand);border-color:var(--brand);color:white;
}
.guide-budget-mode-note{
  margin:3px 0 13px;
  padding:11px 12px;
  border:1px solid color-mix(in srgb,var(--ai) 13%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--ai) 3%,var(--surface));
}
.guide-budget-mode-note strong,.guide-budget-mode-note span{display:block}
.guide-budget-mode-note strong{font-size:10.5px;color:var(--ink)}
.guide-budget-mode-note span{font-size:9.2px;line-height:1.45;color:var(--muted);margin-top:3px}


/* v1.240 — voz como comando universal */
.voice-ai-badge strong{letter-spacing:-.01em}
.voice-examples span{line-height:1.4}


/* v1.241 — clareza entre renda, aportes e total planejado */
.budget-planning-summary{
  margin-bottom:12px;
  padding:15px;
}
.budget-planning-main{
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.budget-planning-main>span,
.budget-planning-main>strong,
.budget-planning-main>small{display:block}
.budget-planning-main>span{
  font-size:9.5px;
  font-weight:850;
  color:var(--muted);
  margin-bottom:4px;
}
.budget-planning-main>strong{
  font-size:24px;
  line-height:1.05;
  color:var(--brand);
  letter-spacing:-.02em;
}
.budget-planning-main>small{
  margin-top:5px;
  font-size:9.5px;
  line-height:1.4;
  color:var(--muted);
}
.budget-planning-breakdown{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
.budget-planning-breakdown>div{
  min-width:0;
  padding:9px 10px;
  border-radius:12px;
  background:var(--surface-2);
}
.budget-planning-breakdown span,
.budget-planning-breakdown strong{display:block}
.budget-planning-breakdown span{
  font-size:8.5px;
  line-height:1.25;
  color:var(--muted);
}
.budget-planning-breakdown strong{
  margin-top:4px;
  font-size:11.5px;
  color:var(--ink);
}
.budget-planning-total{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding-top:11px;
}
.budget-planning-total>div{
  min-width:0;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface);
}
.budget-planning-total span,
.budget-planning-total strong{display:block}
.budget-planning-total span{
  font-size:8.5px;
  color:var(--muted);
  font-weight:750;
}
.budget-planning-total strong{
  margin-top:4px;
  font-size:13px;
  color:var(--ink);
}
.budget-planning-gap strong{color:var(--brand)}
.budget-planning-gap.exact{
  background:var(--income-soft);
  border-color:color-mix(in srgb,var(--income) 25%,var(--line));
}
.budget-planning-gap.exact strong{color:var(--income-ink)}
.budget-planning-gap.over{
  background:var(--expense-soft);
  border-color:color-mix(in srgb,var(--expense) 25%,var(--line));
}
.budget-planning-gap.over strong{color:var(--expense-ink)}
.budget-planning-foot{
  margin-top:10px;
  padding-top:9px;
  border-top:1px dashed var(--line);
  font-size:8.8px;
  line-height:1.4;
  color:var(--muted);
}
.budget-planning-foot strong{color:var(--ink)}
@media(max-width:360px){
  .budget-planning-breakdown,
  .budget-planning-total{grid-template-columns:1fr}
}


/* v1.242 — planejamento do mês separado do fluxo de caixa realizado */
.budget-planning-breakdown small{
  display:block;
  margin-top:4px;
  font-size:8px;
  line-height:1.35;
  color:var(--muted);
}
.budget-realized-strip{
  margin-top:11px;
  padding-top:10px;
  border-top:1px dashed var(--line);
  display:grid;
  grid-template-columns:auto repeat(3,minmax(0,1fr));
  gap:7px;
  align-items:center;
}
.budget-realized-strip>span{
  font-size:8.5px;
  line-height:1.2;
  font-weight:850;
  color:var(--muted);
}
.budget-realized-strip>div{
  min-width:0;
  padding:7px 8px;
  border-radius:10px;
  background:var(--surface-2);
}
.budget-realized-strip b,
.budget-realized-strip strong{display:block}
.budget-realized-strip b{
  font-size:7.5px;
  color:var(--muted);
  font-weight:750;
}
.budget-realized-strip strong{
  margin-top:2px;
  font-size:9.5px;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:390px){
  .budget-realized-strip{
    grid-template-columns:repeat(3,1fr);
  }
  .budget-realized-strip>span{grid-column:1/-1}
}


/* v1.243 — Planejamento mensal separado do Meu Guia */
.monthly-planning-intro{
  display:flex;flex-direction:column;gap:4px;
  padding:12px 13px;margin-bottom:13px;
  border:1px solid color-mix(in srgb,var(--brand) 16%,var(--line));
  border-radius:14px;background:color-mix(in srgb,var(--brand) 5%,var(--surface));
}
.monthly-planning-intro strong{font-size:12px;color:var(--ink)}
.monthly-planning-intro span{font-size:10px;line-height:1.45;color:var(--muted)}
.monthly-planning-preview{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 14px;margin:4px 0 14px;
  border:1px solid color-mix(in srgb,var(--brand) 20%,var(--line));
  border-radius:14px;background:var(--surface-2);
}
.monthly-planning-preview span{font-size:10px;font-weight:750;color:var(--muted)}
.monthly-planning-preview strong{font-size:17px;color:var(--brand);white-space:nowrap}

.guide-profile-planning-link{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 12px;margin-bottom:13px;
  border:1px solid var(--line);border-radius:14px;background:var(--surface-2)
}
.guide-profile-planning-link>div{min-width:0}
.guide-profile-planning-link span,.guide-profile-planning-link strong,.guide-profile-planning-link small{display:block}
.guide-profile-planning-link span{font-size:7.5px;font-weight:900;letter-spacing:.08em;color:var(--brand)}
.guide-profile-planning-link strong{font-size:10.5px;margin-top:3px;color:var(--ink)}
.guide-profile-planning-link small{font-size:8.5px;line-height:1.35;margin-top:3px;color:var(--muted)}
.guide-profile-planning-link button{
  flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--brand);
  border-radius:10px;padding:8px 10px;font-size:9px;font-weight:850
}

.monthly-planning-settings-values{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px
}
.monthly-planning-settings-values>div{
  padding:10px 11px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)
}
.monthly-planning-settings-values span,.monthly-planning-settings-values strong{display:block}
.monthly-planning-settings-values span{font-size:8.5px;color:var(--muted)}
.monthly-planning-settings-values strong{font-size:12px;margin-top:4px;color:var(--ink)}
.monthly-planning-settings-btn{width:100%}

.budget-edit-planning{
  width:100%;margin-top:10px;padding:9px 2px 0;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  border:0;border-top:1px dashed var(--line);background:transparent;color:var(--brand);
  font-size:9.5px;font-weight:850;text-align:left
}
.budget-edit-planning span{font-size:17px;font-weight:500}

@media(max-width:360px){
  .monthly-planning-settings-values{grid-template-columns:1fr}
  .monthly-planning-preview{align-items:flex-start;flex-direction:column}
}


/* v1.244 — lembretes para membros da família */
.reminder-recipient-field{
  padding:11px 12px;
  border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--brand) 4%,var(--surface));
}
.reminder-recipient-field label{font-weight:850}
.reminder-notification-field.family-target{
  border-color:color-mix(in srgb,var(--brand) 20%,var(--line));
  background:color-mix(in srgb,var(--brand) 4%,var(--surface));
}
.reminder-notification-field.family-target .reminder-notification-dot{
  color:var(--brand);
  background:color-mix(in srgb,var(--brand) 10%,var(--surface));
}


/* v1.245 — lembrete para toda a família */
.reminder-notification-field.household-target{
  border-color:color-mix(in srgb,var(--brand) 26%,var(--line));
  background:color-mix(in srgb,var(--brand) 6%,var(--surface));
}
.reminder-recipient-field select optgroup{font-weight:800}

/* v1.248 — orçamento do Guia: rascunho reabrível e considerações */
.budget-smart-resume{display:flex;justify-content:flex-end;margin:-2px 0 14px}
.budget-smart-resume .export-btn{width:auto}
.guide-budget-consideration{margin:14px 0;padding:14px;border:1px solid var(--line,#e6e9e7);border-radius:16px;background:var(--surface-soft,#f7f9f8)}
.guide-budget-consideration label{display:block}
.guide-budget-consideration label>span{display:block;font-size:13px;font-weight:800;margin-bottom:8px}
.guide-budget-consideration textarea{width:100%;resize:vertical;min-height:78px;border:1px solid var(--line,#dfe4e1);border-radius:12px;padding:11px 12px;font:inherit;background:#fff;color:inherit}
.guide-budget-consideration button{width:100%;margin-top:10px}

/* v1.249 — ações com hierarquia visual clara */
.guide-ai-action{
  width:100%;margin-top:10px;border:0;border-radius:14px;padding:13px 15px;
  background:linear-gradient(135deg,#6f3fd5,#8b4ee8);color:#fff;font-weight:850;
  box-shadow:0 8px 20px rgba(111,63,213,.22);transition:transform .12s,filter .15s,box-shadow .15s
}
.guide-ai-action span{margin-right:5px}
.guide-ai-action:active{transform:scale(.985);box-shadow:0 4px 12px rgba(111,63,213,.18)}
.guide-ai-action:disabled{opacity:.68;box-shadow:none}
.guide-save-action{background:var(--brand);color:var(--on-brand);box-shadow:0 8px 20px color-mix(in srgb,var(--brand) 23%,transparent)}
.danger-btn{
  background:var(--expense)!important;color:#fff!important;border-color:var(--expense)!important;
  box-shadow:0 7px 16px color-mix(in srgb,var(--expense) 18%,transparent)
}
.danger-btn:active{filter:brightness(.94);background:var(--expense)!important}
.cd-yes{box-shadow:0 5px 12px color-mix(in srgb,var(--expense) 18%,transparent)}

/* v1.250 — toast suave, discreto e sem salto visual */
@media (prefers-reduced-motion:reduce){
  .toast,.toast.is-visible,.toast.out{transition:none!important;transform:translate(-50%,0)!important}
}

/* v1.251 — lembretes da família */
.reminder-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.reminder-type-switch button{
  min-height:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);
  color:var(--muted);font-weight:800;padding:10px 12px;transition:all .16s ease
}
.reminder-type-switch button.active{
  background:color-mix(in srgb,var(--brand) 12%,var(--surface));border-color:color-mix(in srgb,var(--brand) 34%,var(--line));color:var(--brand)
}
.reminder-type-switch button[data-reminder-type="financial"].active{
  background:color-mix(in srgb,var(--amber,#d29c35) 12%,var(--surface));border-color:color-mix(in srgb,var(--amber,#d29c35) 34%,var(--line));color:var(--amber-ink,#7a5310)
}
.reminder-financial-help{margin:-4px 0 12px}
.reminder-edit-sheet input[type="time"]{font-variant-numeric:tabular-nums}

/* v1.253 — diagnóstico de Web Push */
.reminder-push-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reminder-push-tools .reminder-notification-on{margin-right:2px}
.reminder-push-tools .reminder-notification-btn{min-height:36px;padding:8px 11px;font-size:12px}

/* v1.254 — saldos, transferências e importação de fatura */
.fab-opt.transfer .fo-ic{font-size:18px}
.tx-transfer .tx-icon{background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand);font-weight:800}
.tx-amount.transfer{color:var(--text);font-weight:750}
.transfer-note,.import-payment-fields .helper,.import-transfer-fields .helper{border:1px solid var(--line);background:color-mix(in srgb,var(--brand) 4%,var(--surface));border-radius:14px;padding:12px 14px}
.transfer-note{display:grid;gap:4px;margin-bottom:14px}
.transfer-note span{font-size:12px;color:var(--muted);line-height:1.45}
.transfer-arrow{text-align:center;font-size:20px;color:var(--muted);margin:-4px 0 2px}
.balance-effect-field{margin:-2px 0 14px}
.balance-effect-toggle{background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.account-recalibrate-toggle{margin-top:8px}
.import-kind-field{margin-top:10px}
.import-transfer-fields,.import-payment-fields{margin-top:8px}
.import-transfer-fields[hidden],.import-payment-fields[hidden],.import-normal-fields[hidden]{display:none!important}
