/* AXIS Finanças: app pessoal, pensado primeiro para o celular. Paleta AXIS: roxo #8436FE e navy #141534.
   Peças novas da Frente 42 levam o prefixo fx-. As classes antigas continuam valendo porque fin-cartoes, fin-plano e fin-cadastro usam. */
@font-face{font-family:'Switzer';src:url('/static/fontes/switzer-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Switzer';src:url('/static/fontes/switzer-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Switzer';src:url('/static/fontes/switzer-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Switzer';src:url('/static/fontes/switzer-700.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --roxo:#8436FE;--roxo-2:#6E25E0;--roxo-s:#F1EAFF;--roxo-m:#D9C7FF;--navy:#141534;
  --bg:#F5F4FB;--bg-2:#ECEAF5;--card:#FFFFFF;--card-2:#FBFAFE;--fg:#16162E;--fg-2:#3A3954;--mudo:#6F6C90;--linha:rgba(22,22,46,.08);--linha-2:rgba(22,22,46,.15);
  --ok:#13805A;--ok-s:#E0F3EA;--cr:#C0392B;--cr-s:#FBE7E4;--at:#9A5B06;--at-s:#FCF0DB;
  --sombra:0 1px 2px rgba(22,22,46,.04),0 6px 18px rgba(22,22,46,.06);--sombra-2:0 18px 50px rgba(22,22,46,.18);--sombra-fab:0 10px 28px rgba(110,37,224,.42),0 2px 6px rgba(110,37,224,.25);
  --f:'Switzer',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--m:'Geist Mono',ui-monospace,'SF Mono',Consolas,monospace;--n:var(--f);
  --nav:66px;--r:20px;--t:200ms cubic-bezier(.2,.7,.2,1);color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --roxo:#A777FF;--roxo-2:#9461F5;--roxo-s:rgba(167,119,255,.15);--roxo-m:rgba(167,119,255,.35);
  --bg:#0B0C20;--bg-2:#17183F;--card:#14153A;--card-2:#181A44;--fg:#EEECFA;--fg-2:#C9C6E3;--mudo:#9C98C2;--linha:rgba(255,255,255,.07);--linha-2:rgba(255,255,255,.14);
  --ok:#4FD1A0;--ok-s:rgba(79,209,160,.13);--cr:#F28B7D;--cr-s:rgba(242,139,125,.14);--at:#F0B65A;--at-s:rgba(240,182,90,.14);
  --sombra:0 1px 0 rgba(255,255,255,.04) inset,0 8px 24px rgba(0,0,0,.28);--sombra-2:0 20px 60px rgba(0,0,0,.55);--sombra-fab:0 10px 30px rgba(132,54,254,.5),0 2px 8px rgba(0,0,0,.4);color-scheme:dark}}
:root[data-theme="dark"]{
  --roxo:#A777FF;--roxo-2:#9461F5;--roxo-s:rgba(167,119,255,.15);--roxo-m:rgba(167,119,255,.35);
  --bg:#0B0C20;--bg-2:#17183F;--card:#14153A;--card-2:#181A44;--fg:#EEECFA;--fg-2:#C9C6E3;--mudo:#9C98C2;--linha:rgba(255,255,255,.07);--linha-2:rgba(255,255,255,.14);
  --ok:#4FD1A0;--ok-s:rgba(79,209,160,.13);--cr:#F28B7D;--cr-s:rgba(242,139,125,.14);--at:#F0B65A;--at-s:rgba(240,182,90,.14);
  --sombra:0 1px 0 rgba(255,255,255,.04) inset,0 8px 24px rgba(0,0,0,.28);--sombra-2:0 20px 60px rgba(0,0,0,.55);--sombra-fab:0 10px 30px rgba(132,54,254,.5),0 2px 8px rgba(0,0,0,.4);color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font:15px/1.45 var(--f);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain}
button,input,select,textarea{font:inherit;color:inherit}
button,a,label,summary{touch-action:manipulation}
a{color:var(--roxo)}
:focus-visible{outline:2px solid var(--roxo);outline-offset:2px}
.num{font-family:var(--n);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.01em}
.up{color:var(--ok)}.down{color:var(--cr)}
.nota{font-size:12.5px;color:var(--mudo)}
[hidden]{display:none!important}

/* ---------- moldura ---------- */
.app{min-height:100dvh;display:flex;flex-direction:column;max-width:560px;margin:0 auto;position:relative}
.topo{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;min-height:calc(60px + env(safe-area-inset-top,0px));
  padding:calc(8px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));
  background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:saturate(170%) blur(16px);-webkit-backdrop-filter:saturate(170%) blur(16px)}
.marca-p{display:flex;align-items:center;gap:10px;font-weight:650;letter-spacing:-.015em;font-size:16.5px;min-width:0}
.marca-p>div{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.marca-p svg{width:34px;height:34px;border-radius:11px;flex:none;box-shadow:0 4px 12px rgba(132,54,254,.28)}
.marca-p small{display:block;font:500 12px var(--f);letter-spacing:0;text-transform:none;color:var(--mudo);margin-top:1px;overflow:hidden;text-overflow:ellipsis}
.topo-t{font-size:17px;font-weight:650;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topo .esp{flex:1}
.mes-sel{display:flex;align-items:center;gap:0;background:var(--card);border-radius:999px;box-shadow:var(--sombra),0 0 0 1px var(--linha);padding:0 2px;flex:none}
.mes-sel button{border:0;background:none;width:40px;height:44px;border-radius:50%;cursor:pointer;color:var(--fg-2);display:grid;place-items:center;transition:color var(--t),transform var(--t)}
.mes-sel button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mes-sel button:active{transform:scale(.88);color:var(--roxo)}
.mes-sel span{font:600 13px var(--f);min-width:70px;text-align:center;text-transform:capitalize}
.icone-b{border:0;background:var(--card);box-shadow:var(--sombra),0 0 0 1px var(--linha);width:44px;height:44px;border-radius:14px;display:grid;place-items:center;cursor:pointer;color:var(--fg);flex:none;transition:transform var(--t)}
.icone-b:active{transform:scale(.92)}
.icone-b svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
main.conteudo{flex:1;padding:6px max(16px,env(safe-area-inset-right,0px)) calc(var(--nav) + 96px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px;min-width:0}
.fx-entra{animation:fx-entra 260ms cubic-bezier(.2,.7,.2,1) both}
@keyframes fx-entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fx-carregando{display:flex;gap:6px;justify-content:center;padding:48px 0}
.fx-carregando i{width:8px;height:8px;border-radius:50%;background:var(--roxo);animation:pulsa 1s infinite ease-in-out}
.fx-carregando i:nth-child(2){animation-delay:.15s}.fx-carregando i:nth-child(3){animation-delay:.3s}

/* barra de baixo: 4 abas, pílula atrás do ícone da aba aberta */
nav.abas-p{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(560px,100%);z-index:30;display:grid;grid-template-columns:repeat(4,1fr);
  padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));
  background:color-mix(in srgb,var(--card) 90%,transparent);backdrop-filter:saturate(170%) blur(18px);-webkit-backdrop-filter:saturate(170%) blur(18px);box-shadow:0 -1px 0 var(--linha),0 -10px 30px rgba(20,21,52,.06);user-select:none;-webkit-user-select:none}
nav.abas-p a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;text-decoration:none;color:var(--mudo);font:600 11px var(--f);letter-spacing:.01em;transition:color var(--t)}
nav.abas-p .ab-i{display:grid;place-items:center;width:58px;height:30px;border-radius:999px;transition:background var(--t),transform var(--t)}
nav.abas-p a svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
nav.abas-p a[aria-current="page"]{color:var(--roxo)}
nav.abas-p a[aria-current="page"] .ab-i{background:var(--roxo-s)}
nav.abas-p a[aria-current="page"] svg{stroke-width:2.2}
nav.abas-p a:active .ab-i{transform:scale(.9)}

/* botão flutuante de lançar: abre com o rótulo e encolhe para o + ao rolar */
.fab{position:fixed;z-index:31;right:max(16px,calc(50% - 280px + 16px),env(safe-area-inset-right,0px));bottom:calc(var(--nav) + 14px + env(safe-area-inset-bottom,0px));
  height:56px;min-width:56px;padding:0 20px 0 16px;border:0;border-radius:18px;cursor:pointer;display:flex;align-items:center;gap:8px;color:#fff;font:650 15px var(--f);letter-spacing:.01em;
  background:linear-gradient(140deg,#9A5BFF,#6E25E0);box-shadow:var(--sombra-fab),inset 0 1px 0 rgba(255,255,255,.28);
  transition:padding var(--t),transform var(--t),box-shadow var(--t);animation:fx-fab 320ms cubic-bezier(.2,.8,.2,1.2) both}
.fab svg{width:24px;height:24px;flex:none;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round}
.fab span{max-width:80px;overflow:hidden;white-space:nowrap;transition:max-width var(--t),opacity var(--t)}
.fab.mini{padding:0 16px}
.fab.mini span{max-width:0;opacity:0}
.fab:active{transform:scale(.94)}
@keyframes fx-fab{from{opacity:0;transform:scale(.6) translateY(12px)}to{opacity:1;transform:none}}

/* ---------- peças ---------- */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sombra),0 0 0 1px var(--linha);padding:16px;min-width:0}
.card h2{margin:0 0 12px;font-size:15.5px;font-weight:650;letter-spacing:-.015em;display:flex;justify-content:space-between;align-items:center;gap:8px}
.card h2 a,.card h2 button{font:600 13px var(--f);color:var(--roxo);text-decoration:none;background:none;border:0;cursor:pointer;padding:10px 0;margin:-10px 0}
a.card{transition:transform var(--t)}
a.card:active{transform:scale(.985)}
.titulo-t{margin:4px 2px 0;font-size:26px;font-weight:650;letter-spacing:-.03em}
.sub-t{margin:-8px 2px 0;color:var(--mudo);font-size:13.5px}
.btn{border:0;border-radius:14px;min-height:48px;padding:12px 18px;font-weight:650;cursor:pointer;background:linear-gradient(160deg,#9050FF,#6E25E0);color:#fff;box-shadow:0 6px 18px rgba(132,54,254,.32),inset 0 1px 0 rgba(255,255,255,.22);transition:transform var(--t),filter var(--t),box-shadow var(--t)}
.btn:active{transform:scale(.97);filter:brightness(.96)}
.btn.sec{background:var(--bg-2);color:var(--fg);box-shadow:none}
.btn.perigo{background:var(--cr-s);color:var(--cr);box-shadow:none}
.btn.cheio{width:100%}
.btn:disabled{opacity:.6}
.pill{display:inline-block;font:600 11px var(--f);padding:3px 9px;border-radius:999px;background:var(--bg-2);color:var(--fg-2)}
.pill.ok{background:var(--ok-s);color:var(--ok)}.pill.cr{background:var(--cr-s);color:var(--cr)}.pill.at{background:var(--at-s);color:var(--at)}.pill.ro{background:var(--roxo-s);color:var(--roxo)}
.vazio{text-align:center;padding:30px 16px;color:var(--mudo);display:flex;flex-direction:column;align-items:center;gap:2px}
.vazio b{display:block;color:var(--fg);font-size:15px;margin-bottom:2px}
.fx-vazio-i{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:var(--roxo-s);color:var(--roxo);margin-bottom:10px}
.fx-vazio-i svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.aviso{display:flex;gap:12px;align-items:center;padding:13px 14px;min-height:52px;border-radius:16px;background:var(--at-s);color:var(--fg);font-size:13.5px;text-decoration:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--at) 22%,transparent);transition:transform var(--t)}
.aviso:active{transform:scale(.985)}
.aviso b{color:var(--at)}
.aviso>svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--at);stroke-width:1.8;stroke-linecap:round}
.aviso.cr{background:var(--cr-s);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cr) 22%,transparent)}
.aviso.cr b{color:var(--cr)}.aviso.cr>svg{stroke:var(--cr)}
.bp{height:6px;border-radius:5px;background:var(--bg-2);overflow:hidden}
.bp i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#8F47FF,#B48CFF);transform-origin:left;animation:fx-barra 600ms cubic-bezier(.2,.7,.2,1) both}
.bp i.at{background:#E08A2E}.bp i.cr{background:var(--cr)}
@keyframes fx-barra{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ícone de categoria: quadrado arredondado com a cor da categoria em tom suave e o traço na cor cheia */
.fx-ic{display:grid;place-items:center;flex:none;border-radius:13px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.fx-ic svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:root[data-theme="dark"] .fx-ic{color:color-mix(in srgb,var(--c) 62%,#fff);background:color-mix(in srgb,var(--c) 24%,transparent)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fx-ic{color:color-mix(in srgb,var(--c) 62%,#fff);background:color-mix(in srgb,var(--c) 24%,transparent)}}

/* saldo (herói da tela inicial e de contas) */
.saldo{position:relative;overflow:hidden;border-radius:26px;padding:20px 20px 18px;color:#fff;isolation:isolate;
  background:radial-gradient(420px 240px at 100% 0%,rgba(167,119,255,.55),transparent 60%),radial-gradient(320px 220px at 0% 110%,rgba(132,54,254,.38),transparent 70%),linear-gradient(150deg,#221E63,#141534 58%,#0D0E2A);
  box-shadow:0 20px 44px rgba(20,21,52,.32),inset 0 1px 0 rgba(255,255,255,.1)}
.saldo::after{content:"";position:absolute;z-index:-1;right:-34px;top:-36px;width:180px;height:180px;opacity:.09;background:no-repeat center/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 281 251' fill='white'><polygon points='140.46 179.61 124.72 195.35 124.72 250.8 156.2 250.8 156.2 195.36'/><polygon points='281.06 94.76 179.48 94.76 251.3 22.93 228.45 .07 140.46 88.06 52.47 .07 29.61 22.93 101.44 94.76 -.14 94.76 -.14 127.08 101.44 127.08 29.61 198.91 52.47 221.76 140.46 133.77 228.45 221.76 251.3 198.91 179.48 127.08 281.06 127.08 281.06 94.76'/></svg>")}
.saldo::before{content:"";position:absolute;z-index:-1;left:20px;right:20px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(199,166,255,.7),transparent)}
.saldo small{font:600 11px var(--f);letter-spacing:.16em;text-transform:uppercase;opacity:.72}
.saldo .valor{display:flex;align-items:center;gap:10px;margin:6px 0 2px}
.saldo .valor b{font:650 clamp(32px,9.5vw,40px)/1.1 var(--n);letter-spacing:-.035em}
.saldo .olho{border:0;background:rgba(255,255,255,.12);color:#fff;width:44px;height:44px;border-radius:14px;cursor:pointer;display:grid;place-items:center;flex:none;transition:background var(--t),transform var(--t)}
.saldo .olho:active{transform:scale(.9);background:rgba(255,255,255,.2)}
.saldo .olho svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}
.fx-hero-t{display:flex;align-items:center;justify-content:space-between;margin:-6px -6px 0 0;min-height:32px}
.fx-hero-s{display:block;font-size:12.5px;color:rgba(255,255,255,.66)}
.fx-hero-m{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.fx-hero-m span{display:flex;align-items:center;gap:6px;font-size:12.5px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);color:rgba(255,255,255,.8)}
.fx-hero-m b{color:#fff;font-weight:600}
.fx-hero-m i{width:7px;height:7px;border-radius:50%}
.fx-hero-m .up-d{background:#4FD1A0}.fx-hero-m .dn-d{background:#F28B7D}
.oculto .esconde{filter:blur(8px);user-select:none}
.oculto .esconde-g{filter:blur(10px);pointer-events:none}

/* cartões de conta na tela inicial (rolagem para o lado) e na tela de contas (carteira) */
.fx-contas{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding:2px max(16px,env(safe-area-inset-left,0px)) 6px;scrollbar-width:none;scroll-padding:0 16px}
.fx-contas::-webkit-scrollbar{display:none}
.fx-conta,.fx-cc{--b:#8436FE;position:relative;overflow:hidden;isolation:isolate;flex:none;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;gap:10px;
  text-decoration:none;color:#fff;border:0;text-align:left;cursor:pointer;border-radius:18px;padding:13px 14px;
  background:radial-gradient(160px 90px at 100% 0%,rgba(255,255,255,.24),transparent 65%),linear-gradient(145deg,var(--b),color-mix(in srgb,var(--b) 58%,#0B0C20));
  box-shadow:0 10px 22px color-mix(in srgb,var(--b) 28%,transparent),inset 0 1px 0 rgba(255,255,255,.16);transition:transform var(--t)}
.fx-conta{width:152px;min-height:108px}
.fx-conta:active,.fx-cc:active{transform:scale(.96)}
.fx-conta-t{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;min-width:0}
.fx-conta-t>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-banco{flex:none;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font:700 11px var(--f);letter-spacing:.02em;background:rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.fx-conta b,.fx-cc b{font:650 17px var(--n);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.fx-conta small,.fx-cc small{font-size:11.5px;color:rgba(255,255,255,.72)}
.fx-conta-n{width:96px;align-items:center;justify-content:center;gap:6px;color:var(--roxo);background:var(--card);box-shadow:var(--sombra),inset 0 0 0 1.5px var(--roxo-m);font:600 13px var(--f)}
.fx-conta-n svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.fx-sec{display:flex;flex-direction:column;gap:10px}
.fx-sec-t{margin:4px 2px 0;font-size:16px;font-weight:650;letter-spacing:-.015em;display:flex;justify-content:space-between;align-items:center}
.fx-sec-t .chip{display:flex;align-items:center;gap:4px;color:var(--roxo)}
.fx-sec-t .chip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.fx-carteira{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fx-cc{width:auto;min-height:118px;padding:15px}
.fx-cc b{font-size:19px}

.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.trio .card{padding:13px 12px;border-radius:18px}
.trio small{display:block;font:600 10.5px var(--f);letter-spacing:.12em;text-transform:uppercase;color:var(--mudo)}
.trio b{display:block;font:650 clamp(13.5px,3.8vw,17px)/1.2 var(--n);letter-spacing:-.02em;margin-top:5px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.trio .var{font-size:11.5px;margin-top:3px}
.trio .sobra{background:linear-gradient(160deg,var(--roxo-s),var(--card) 80%)}

/* gráficos */
.fx-graf{position:relative;min-width:0;transition:filter var(--t)}
.leg{display:flex;gap:16px;font-size:12px;color:var(--mudo);margin-top:10px}
.leg i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.leg i.tr{height:0;width:14px;border-radius:0;border-top:2px dashed var(--mudo);vertical-align:3px}
.fx-evo h2{margin-bottom:2px}
.fx-evo-r{margin:0 0 10px;display:flex;flex-direction:column;gap:1px}
.fx-evo-r>span:first-child{font-size:12.5px;color:var(--mudo)}
.fx-evo-r b{font:650 24px/1.2 var(--n);letter-spacing:-.025em}
.fx-rosca{position:relative;max-width:240px;margin:0 auto 14px}
.fx-rosca-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center}
.fx-rosca-c small{font:600 10.5px var(--f);letter-spacing:.14em;text-transform:uppercase;color:var(--mudo)}
.fx-rosca-c b{font:650 21px/1.2 var(--n);letter-spacing:-.025em;margin:2px 0}

/* para onde foi / orçamento */
.cats{display:flex;flex-direction:column;gap:13px}
.cat-l{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:5px 12px;align-items:center;color:inherit}
.cat-l .ic{grid-row:span 2;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font:700 13px var(--f);color:#fff}
.cat-l .ic.fx-ic{color:var(--c)}
.cat-l .n{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-l .v{font:650 14px var(--n);font-variant-numeric:tabular-nums;text-align:right;display:flex;align-items:baseline;gap:6px}
.cat-l .v small{font:500 11.5px var(--f);color:var(--mudo);min-width:30px}
.cat-l .bp{grid-column:2/4}
.cat-l .meta{grid-column:2/4;font-size:11.5px;color:var(--mudo);margin-top:-2px}
button.cat-l{transition:transform var(--t)}
button.cat-l:active{transform:scale(.985)}

/* lista de lançamentos: um cartão por dia, linhas separadas por fio fino */
.fx-busca{position:relative;display:block}
.fx-busca svg{position:absolute;left:14px;top:50%;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:var(--mudo);stroke-width:2;stroke-linecap:round;pointer-events:none}
.fx-busca .busca{padding-left:42px}
.filtro-p{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px}
.filtro-p::-webkit-scrollbar{display:none}
.chip{flex:none;border:0;background:var(--card);box-shadow:0 0 0 1px var(--linha-2);min-height:40px;padding:8px 15px;border-radius:999px;font:600 13px var(--f);cursor:pointer;color:var(--fg-2);transition:background var(--t),color var(--t),transform var(--t)}
.chip:active{transform:scale(.95)}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);box-shadow:none}
.busca{width:100%;border:0;background:var(--card);box-shadow:0 0 0 1px var(--linha-2);border-radius:14px;min-height:48px;padding:12px 14px;font-size:16px;transition:box-shadow var(--t)}
.fx-cont{margin:2px 4px -4px}
.dia{display:flex;flex-direction:column;gap:6px}
.dia-cab{display:flex;justify-content:space-between;align-items:baseline;padding:4px 6px 0;font:500 12.5px var(--f);color:var(--mudo)}
.dia-cab>span:first-child::first-letter{text-transform:uppercase}
.dia-cab b{color:var(--fg);font-weight:650;text-transform:capitalize}
.dia-cab .num{font-weight:600;color:var(--fg-2)}.dia-cab .num.up{color:var(--ok)}
.lanc{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:2px 12px;align-items:center;min-height:62px;padding:10px 14px;border-radius:16px;background:var(--card);box-shadow:var(--sombra),0 0 0 1px var(--linha);cursor:pointer;border:0;text-align:left;width:100%;margin-bottom:6px;transition:background var(--t),transform var(--t)}
.lanc:active{background:var(--card-2);transform:scale(.99)}
.lanc .ic{grid-row:span 2;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font:700 13px var(--f);color:#fff}
.lanc .ic.fx-ic{color:var(--c)}
.lanc .d{font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:end}
.lanc .s{font-size:12.5px;color:var(--mudo);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:start;display:flex;align-items:center;gap:4px}
.lanc .v{grid-row:span 2;font:650 15px var(--n);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.lanc .v.tr{color:var(--mudo)}
.lanc.pend{box-shadow:0 0 0 1.5px var(--at)}
.fx-pend{color:var(--at);font-weight:600}
.fx-bk{display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:var(--b);margin-left:2px}
.dia-lista{background:var(--card);border-radius:18px;box-shadow:var(--sombra),0 0 0 1px var(--linha);overflow:hidden}
.dia-lista .lanc{margin:0;border-radius:0;box-shadow:none;background:none;position:relative}
.dia-lista .lanc+.lanc::before{content:"";position:absolute;top:0;left:68px;right:0;height:1px;background:var(--linha)}
.dia-lista .lanc:active{background:var(--bg-2)}
.dia-lista .lanc.pend{background:color-mix(in srgb,var(--at-s) 70%,transparent);box-shadow:inset 3px 0 0 var(--at)}

/* folha (bottom sheet) */
dialog#folha{border:0;padding:0;width:min(560px,100%);max-width:100%;margin:auto auto 0;border-radius:28px 28px 0 0;background:var(--card);color:var(--fg);box-shadow:var(--sombra-2);max-height:92dvh}
dialog#folha[open]{animation:fx-folha 280ms cubic-bezier(.2,.8,.2,1) both}
dialog#folha::backdrop{background:rgba(10,11,32,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fx-fundo 220ms ease both}
@keyframes fx-folha{from{transform:translateY(100%)}to{transform:none}}
@keyframes fx-fundo{from{opacity:0}to{opacity:1}}
@media (min-width:700px){dialog#folha{margin:auto;border-radius:28px}@keyframes fx-folha{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}}
.folha-c{padding:10px 18px calc(18px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px;max-height:92dvh;overflow:auto;overscroll-behavior:contain}
.folha-c .puxador{width:40px;height:5px;border-radius:3px;background:var(--linha-2);margin:2px auto 4px;flex:none}
.folha-c h2{margin:0;font-size:19px;letter-spacing:-.02em}
.campo-p{display:flex;flex-direction:column;gap:6px}
.campo-p span{font-size:12.5px;font-weight:600;color:var(--fg-2)}
.campo-p input,.campo-p select,.campo-p textarea{border:0;background:var(--bg);box-shadow:inset 0 0 0 1px var(--linha-2);border-radius:14px;min-height:48px;padding:12px 14px;width:100%;font-size:16px;transition:box-shadow var(--t)}
.campo-p input[type=checkbox]{min-height:0;width:22px!important;height:22px;accent-color:var(--roxo)}
.campo-p input:focus,.campo-p select:focus,.campo-p textarea:focus,.busca:focus{outline:0;box-shadow:inset 0 0 0 1.5px var(--roxo),0 0 0 4px var(--roxo-s)}
.dupla{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--bg);padding:4px;border-radius:15px}
.seg button{border:0;background:none;border-radius:11px;min-height:44px;padding:10px 6px;font:600 13.5px var(--f);cursor:pointer;color:var(--mudo);transition:background var(--t),color var(--t),box-shadow var(--t)}
.seg button[aria-pressed="true"]{background:var(--card);color:var(--fg);box-shadow:var(--sombra)}
.seg button[data-t="S"][aria-pressed="true"]{color:var(--cr)}.seg button[data-t="E"][aria-pressed="true"]{color:var(--ok)}
.valor-g{display:flex;align-items:baseline;justify-content:center;gap:6px;padding:10px 0 6px}
.valor-g span{font:600 22px var(--n);color:var(--mudo)}
.valor-g input{border:0;background:none;font:650 44px var(--n);font-variant-numeric:tabular-nums;letter-spacing:-.035em;width:100%;max-width:260px;text-align:center;padding:0}
@supports (field-sizing:content){.valor-g input{field-sizing:content;width:auto;min-width:3.2ch;text-align:left}}
.valor-g input:focus{outline:0}
.acoes-f{display:flex;gap:10px;position:sticky;bottom:0;padding-top:4px;background:var(--card)}
.acoes-f .btn{flex:1}

/* contas, menu mais, áxia */
.lista-p{display:flex;flex-direction:column}
.lista-p .it{display:flex;align-items:center;gap:12px;min-height:58px;padding:10px 2px;border-bottom:1px solid var(--linha);text-decoration:none;color:var(--fg);background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;cursor:pointer;font:inherit;transition:opacity var(--t)}
.lista-p .it:active{opacity:.6}
.lista-p .it:last-child{border-bottom:0}
.lista-p .it .ic{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--roxo-s);color:var(--roxo);flex:none}
.lista-p .it .ic.fx-ic{background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c)}
.lista-p .it .ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lista-p .it .t{flex:1;min-width:0}
.lista-p .it .t b{display:block;font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lista-p .it .t small{color:var(--mudo);font-size:12.5px}
.lista-p .it>.num{font-weight:650;white-space:nowrap}
.fx-data{flex-direction:column;gap:0;line-height:1}
.lista-p .it .fx-data b{font:700 15px var(--n)}
.lista-p .it .fx-data small{font:600 9.5px var(--f);letter-spacing:.08em;text-transform:uppercase}
.lista-p .it .fx-data.cr{background:var(--cr-s);color:var(--cr)}
.axia-card{display:flex;flex-direction:column;gap:12px;background:radial-gradient(260px 160px at 100% 0%,var(--roxo-s),transparent 70%),var(--card)}
.axia-topo{display:flex;align-items:center;gap:12px}
.ax-av{flex:none;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(140deg,#9A5BFF,#6E25E0);box-shadow:0 6px 16px rgba(132,54,254,.4)}
.ax-av svg{width:20px;height:20px;fill:#fff}
.sug{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}
.sug::-webkit-scrollbar{display:none}
.sug button{flex:none;border:0;background:var(--card);box-shadow:0 0 0 1px var(--linha-2);min-height:40px;padding:9px 14px;border-radius:999px;font:500 13px var(--f);cursor:pointer;color:var(--fg-2);transition:transform var(--t)}
.sug button:active{transform:scale(.95)}
.chat .sug{margin:0;padding:0}
.chat{display:flex;flex-direction:column;gap:12px;padding-bottom:84px}
.msg{max-width:88%;padding:11px 14px;border-radius:20px;font-size:14.5px;line-height:1.5;overflow-wrap:anywhere;animation:fx-entra 220ms ease both}
.msg.eu{align-self:flex-end;background:linear-gradient(160deg,#9050FF,#7A2FF2);color:#fff;border-bottom-right-radius:6px}
.msg.ax{align-self:flex-start;background:var(--card);box-shadow:var(--sombra),0 0 0 1px var(--linha);border-bottom-left-radius:6px}
.msg.ax p{margin:0 0 6px}.msg.ax p:last-child{margin:0}
.msg.ax ul,.msg.ax ol{margin:4px 0;padding-left:18px}
.msg .cons{display:block;margin-top:6px;font:500 10.5px var(--m);color:var(--mudo)}
.chat-form{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav) + 10px + env(safe-area-inset-bottom,0px));width:min(560px,100%);padding:0 max(14px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));display:flex;gap:8px;z-index:25}
.chat-form textarea{flex:1;border:0;border-radius:20px;min-height:48px;padding:13px 16px;background:var(--card);box-shadow:0 0 0 1px var(--linha-2),var(--sombra);resize:none;max-height:120px;font-size:16px}
.chat-form button{border:0;width:48px;height:48px;align-self:flex-end;border-radius:16px;background:linear-gradient(140deg,#9A5BFF,#6E25E0);color:#fff;cursor:pointer;display:grid;place-items:center;transition:transform var(--t)}
.chat-form button:active{transform:scale(.92)}
.chat-form button svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2}
.pontos i{display:inline-block;width:6px;height:6px;margin-right:3px;border-radius:50%;background:var(--roxo);animation:pulsa 1s infinite ease-in-out}
.pontos i:nth-child(2){animation-delay:.15s}.pontos i:nth-child(3){animation-delay:.3s}
@keyframes pulsa{0%,100%{opacity:.25}50%{opacity:1}}

/* medalhas */
.medalhas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.med{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:14px 10px}
.med b{font-size:13.5px}
.med small{font-size:11.5px;color:var(--mudo)}
.faixa-med{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}

/* tabela DRE compacta */
.dre-p{width:100%;border-collapse:collapse;font-size:13px}
.dre-p td{padding:9px 6px;border-bottom:1px solid var(--linha)}
.dre-p td.v{text-align:right;font-family:var(--n);font-variant-numeric:tabular-nums;white-space:nowrap}
.dre-p tr.t-resultado td{font-weight:650;background:var(--roxo-s)}
.dre-p tr.t-grupo td{font-weight:600}
.dre-p tr.t-titulo td{font:600 10.5px var(--f);letter-spacing:.14em;text-transform:uppercase;color:var(--mudo);padding-top:16px}
.dre-p tr.t-categoria td:first-child{padding-left:16px;color:var(--fg-2)}

/* login antigo (a tela nova é da Frente 33; estas regras ficam para a tela de conta não aberta) */
.login-p{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:24px max(22px,env(safe-area-inset-right,0px)) 24px max(22px,env(safe-area-inset-left,0px));max-width:440px;margin:0 auto;
  color:#fff}
body.no-login{background:radial-gradient(600px 400px at 0% 0%,rgba(132,54,254,.5),transparent 60%),radial-gradient(500px 400px at 100% 100%,rgba(132,54,254,.25),transparent 60%),#0B0C20}
.login-p .lg{display:flex;align-items:center;gap:12px}
.login-p .lg svg{width:54px;height:54px;border-radius:16px;box-shadow:0 12px 30px rgba(132,54,254,.5)}
.login-p .lg b{display:block;font-size:24px;letter-spacing:-.02em}
.login-p .lg small{font:500 10.5px var(--f);letter-spacing:.2em;text-transform:uppercase;opacity:.65}
.login-p h1{margin:0;font-size:28px;line-height:1.15;letter-spacing:-.03em}
.login-p p{margin:0;opacity:.75}
.login-p form{display:flex;flex-direction:column;gap:12px;background:rgba(255,255,255,.05);border-radius:22px;padding:18px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.login-p input{border:0;border-radius:14px;min-height:48px;padding:13px 14px;background:rgba(255,255,255,.08);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);font-size:16px}
.login-p input::placeholder{color:rgba(255,255,255,.45)}
.login-p input:focus{outline:0;box-shadow:inset 0 0 0 1.5px #A777FF}
.login-p .nota{color:rgba(255,255,255,.55)}
.toast-p{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav) + 84px + env(safe-area-inset-bottom,0px));z-index:60;background:#1B1C48;color:#fff;padding:12px 16px;border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.08);font-size:14px;max-width:calc(100% - 32px);animation:fx-toast 260ms cubic-bezier(.2,.8,.2,1) both}
.toast-p.erro{background:#7A1E14}
@keyframes fx-toast{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

/* toque de 44 px nas peças das outras telas que ainda eram menores */
.app .ct-edit{width:44px;height:44px;border-radius:13px}
.app .ct-pg-del{min-width:44px;min-height:44px}
.app .lista-p .it .chip{min-height:40px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
  .pontos i,.fx-carregando i{animation:none;opacity:.7}
}
