﻿*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --acc:#10B981;--acc-dark:#059669;--acc2:#3B82F6;--acc3:#F59E0B;--danger:#EF4444;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;--mono:'JetBrains Mono',monospace;
  --fs-xs:11px;--fs-sm:13px;--fs-base:15px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:36px;
  --lh-tight:1.2;--lh-snug:1.4;--lh-base:1.55;--lh-relaxed:1.7;
  --fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;
  --r-xs:6px;--r-sm:10px;--r-md:14px;--r:14px;--r-lg:18px;--r-xl:24px;--r-2xl:32px;
  --sh-xs:0 1px 4px rgba(0,0,0,.06);--sh-sm:0 2px 10px rgba(0,0,0,.08);--sh-md:0 4px 20px rgba(0,0,0,.1);--sh-lg:0 8px 32px rgba(0,0,0,.15);
}
body.light{
  --acc:#1A9B4E;--acc-dark:#157A3E;
  --bg:#EDF3EE;--bg2:#E4EDE5;--sur:#F5FAF5;--sur2:#EAF2EA;--sur3:#DDEADD;
  --bor:rgba(0,60,20,.07);--bor2:rgba(0,60,20,.13);--bor3:rgba(0,60,20,.22);
  --txt:#1A2B1E;--txt2:#4A6652;--txt3:#5E7B68;
  --shadow:0 1px 10px rgba(0,40,15,.07);--shadow-acc:0 4px 20px rgba(26,155,78,.18);
  --track:#C8DFC9;color-scheme:light;
}
body.dark{
  --bg:#0F172A;--bg2:#111827;--sur:#1E293B;--sur2:#263245;--sur3:#2D3A52;
  --bor:rgba(255,255,255,.07);--bor2:rgba(255,255,255,.12);--bor3:rgba(255,255,255,.2);
  --txt:#F1F5F9;--txt2:#94A3B8;--txt3:#8D9AAE;
  --shadow:0 2px 20px rgba(0,0,0,.5);--shadow-acc:0 4px 24px rgba(16,185,129,.2);
  --track:rgba(255,255,255,.1);color-scheme:dark;
}
body{font-family:var(--font);background:var(--bg);color:var(--txt);font-size:var(--fs-base);line-height:var(--lh-base);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s,color .3s}
::-webkit-scrollbar{width:0;height:0;display:none}
*{scrollbar-width:none;-ms-overflow-style:none}

/* AUTH */
#authScreen{position:fixed;inset:0;z-index:9000;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--sp-8) + env(safe-area-inset-top,0px)) var(--sp-6) var(--sp-8);overflow-y:auto;overflow-x:hidden;gap:0}
#authScreen::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(26,155,78,.13) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(16,185,129,.08) 0%,transparent 60%);pointer-events:none;z-index:0}
#authScreen>.auth-logo,#authScreen>.auth-title,#authScreen>.auth-sub,#authScreen>.auth-tabs,#authScreen>.auth-form,#authScreen>button{position:relative;z-index:1}
#authScreen .auth-bg-rings{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.auth-logo{width:96px;height:96px;background:none;border:none;border-radius:0;display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-4)}
.auth-logo svg{width:96px;height:96px;filter:drop-shadow(0 4px 16px rgba(26,155,78,.25))}
.auth-title{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);text-align:center;margin-bottom:var(--sp-1);letter-spacing:-.4px;line-height:var(--lh-tight)}
.auth-sub{font-size:var(--fs-sm);color:var(--txt2);text-align:center;margin-bottom:var(--sp-8);line-height:var(--lh-snug)}
.auth-tabs{display:flex;background:var(--sur2);border-radius:14px;padding:4px;margin-bottom:var(--sp-6);width:100%;max-width:380px;border:1px solid var(--bor)}
.auth-tab{flex:1;padding:10px var(--sp-3);border-radius:10px;font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer;text-align:center;color:var(--txt3);transition:all .2s;border:none;background:none;font-family:var(--font);line-height:1}
.auth-tab.active{background:var(--acc);color:#fff;box-shadow:0 3px 12px rgba(16,185,129,.35)}
.auth-form{width:100%;max-width:380px}
.auth-group{margin-bottom:var(--sp-4)}
.auth-label{font-size:var(--fs-xs);color:var(--txt2);font-weight:var(--fw-bold);margin-bottom:6px;display:block;letter-spacing:.4px;text-transform:uppercase}
.auth-input{width:100%;padding:14px var(--sp-4);background:var(--sur);border:1.5px solid var(--bor2);border-radius:14px;font-family:var(--font);font-size:var(--fs-base);color:var(--txt);outline:none;transition:border-color .15s,box-shadow .15s;box-shadow:var(--sh-xs)}
.auth-input:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.auth-input::placeholder{color:var(--txt3)}
.auth-btn{width:100%;padding:15px;background:var(--acc);border:none;border-radius:14px;font-family:var(--font);font-size:var(--fs-md);font-weight:var(--fw-bold);color:#fff;cursor:pointer;margin-top:var(--sp-2);transition:all .2s;box-shadow:0 4px 20px rgba(16,185,129,.35)}
.auth-btn:hover{background:var(--acc-dark);box-shadow:0 6px 28px rgba(16,185,129,.45)}
.auth-btn:active{transform:scale(.98)}
.auth-err{font-size:var(--fs-sm);color:var(--danger);text-align:center;min-height:20px;margin-bottom:var(--sp-2)}
.auth-users{width:100%;max-width:380px;margin-top:var(--sp-5)}
.auth-users-label{font-size:var(--fs-xs);color:var(--txt3);letter-spacing:.7px;text-transform:uppercase;margin-bottom:var(--sp-2);text-align:center;font-weight:var(--fw-bold)}
.auth-user-chip{display:inline-flex;align-items:center;gap:6px;padding:7px var(--sp-3);background:var(--sur);border:1px solid var(--bor2);border-radius:99px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--txt2);cursor:pointer;margin:3px;transition:all .15s;box-shadow:var(--sh-xs)}
.auth-user-chip:hover{border-color:var(--acc);color:var(--acc);background:rgba(16,185,129,.05)}
.recovery-link{font-size:12px;color:var(--acc);cursor:pointer;font-weight:600;text-align:right;display:block;margin-top:4px}
.recovery-link:hover{text-decoration:underline}

/* APP SHELL */
#app{display:none;height:100dvh;overflow:hidden;flex-direction:column}
#app.visible{display:flex}
.top-nav{display:flex;align-items:center;padding:env(safe-area-inset-top,0px) 16px 0;height:calc(60px + env(safe-area-inset-top,0px));background:var(--sur);border-bottom:1px solid var(--bor);flex-shrink:0;gap:10px;position:sticky;top:0;z-index:600;box-shadow:0 1px 8px rgba(0,0,0,.06)}
.nav-logo{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.nav-logo-mark{width:36px;height:36px;background:none;border:none;border-radius:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(16,185,129,.35));position:relative}
.nav-avatar-circle{position:absolute;width:46%;height:46%;top:27%;left:27%;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#064E3B,#10B981);display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:800;color:#fff}
.nav-avatar-circle img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.nav-logo-mark svg{width:36px;height:36px}
.nav-brand{font-size:var(--fs-md);font-weight:var(--fw-extrabold);letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-brand span{color:var(--acc)}
.nav-user{font-size:var(--fs-xs);color:var(--txt3);white-space:nowrap}
.nav-actions{display:flex;gap:var(--sp-2);align-items:center;flex-shrink:0}
.nav-btn{width:40px;height:40px;background:var(--sur2);border:1px solid var(--bor);border-radius:10px;color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.nav-btn:hover{background:var(--sur3);color:var(--txt)}
.nav-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}

/* Pages */
.pages{flex:1;overflow:hidden;position:relative}
.page{position:absolute;inset:0;overflow-y:auto;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px));opacity:0;pointer-events:none;transform:translateY(6px) scale(.99);transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1);will-change:opacity,transform}
.page.active{opacity:1;pointer-events:auto;transform:none}

/* TAB BAR */
.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:2px;padding:3px 8px calc(3px + env(safe-area-inset-bottom,0px));border-radius:0;background:var(--sur);border-top:1px solid var(--bor);border-left:none;border-right:none;border-bottom:none;box-shadow:0 -1px 8px rgba(0,0,0,.08);z-index:100;width:100%;max-width:100%;align-items:center;overflow:visible}
.tab-add{display:flex;align-items:center;justify-content:center;width:58px;height:58px;flex-shrink:0;background:var(--acc);border:none;border-radius:50%;color:#fff;cursor:pointer;margin:0 4px;box-shadow:0 4px 20px rgba(16,185,129,.45),0 0 0 3px rgba(16,185,129,.15);transition:all .18s cubic-bezier(.32,.72,0,1);margin-top:-16px}
.tab-add:active{transform:scale(.88)}
.tab-add:hover{background:var(--acc-dark);box-shadow:0 6px 24px rgba(16,185,129,.5)}
.tab-add svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.5}
.tab-add-wrap{position:relative;display:flex;align-items:center;justify-content:center;margin:0 4px;z-index:101}
.fab-menu{position:absolute;bottom:calc(100% + 22px);left:50%;transform:translateX(-50%);display:flex;flex-direction:row;gap:10px;align-items:flex-end;pointer-events:none;opacity:0;transition:opacity .2s ease;z-index:101;white-space:nowrap}
.fab-menu.open{opacity:1;pointer-events:auto}
.fab-option{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--sur);border:1px solid var(--bor);border-radius:16px;padding:12px 14px 10px;cursor:pointer;color:var(--txt);box-shadow:0 4px 16px rgba(0,0,0,.22);white-space:nowrap;transform:translateY(12px) scale(.92);transition:transform .22s cubic-bezier(.32,.72,0,1),opacity .2s ease;opacity:0;min-width:90px}
.fab-menu.open .fab-option{transform:translateY(0) scale(1);opacity:1}
.fab-menu.open .fab-option:nth-child(1){transition-delay:.05s}
.fab-menu.open .fab-option:nth-child(2){transition-delay:0s}
.fab-option:active{transform:scale(.93)!important}
.fab-opt-icon{width:32px;height:32px;border-radius:50%;background:var(--acc);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fab-opt-icon svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2.5}
.fab-opt-label{font-size:13px;font-weight:700;color:var(--txt)}
.fab-overlay{position:fixed;inset:0;z-index:99;background:rgba(0,0,0,.35);backdrop-filter:blur(2px);display:none}
.fab-overlay.open{display:block}
.tab-item{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;cursor:pointer;padding:10px 4px;border-radius:16px;transition:color .2s,background .2s;color:var(--txt3);user-select:none;flex:1;min-width:0;min-height:48px;background:none;border:none;font-family:inherit}
.tab-bar .tab-item span{font-size:10px;font-weight:700;letter-spacing:.2px;line-height:1;opacity:.55;transition:opacity .2s;display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tab-item.active span{opacity:1}
.tab-item:active{transform:scale(.92)}
.tab-item.active{color:var(--acc);background:rgba(16,185,129,.1)}
.tab-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;transition:transform .2s}
.tab-item.active .tab-icon svg{transform:scale(.9)}
body.light .tab-item{color:rgba(30,42,58,.4)}
body.light .tab-item.active{color:var(--acc);background:rgba(16,185,129,.1)}

/* FAB */
.fab{display:none!important;position:fixed;bottom:calc(88px + env(safe-area-inset-bottom,0px));right:var(--sp-4);z-index:110;width:52px;height:52px;background:var(--acc);border:none;border-radius:var(--r);color:#fff;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(16,185,129,.4);transition:transform .14s,box-shadow .2s}
.fab:active{transform:scale(.91)}
.fab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.5}

/* HOME HERO — Wallet Card */
.home-hero{margin:14px;background:linear-gradient(135deg,#064E3B 0%,#065F46 30%,#059669 65%,#10B981 100%);border:none;border-radius:24px;padding:24px 20px 20px;position:relative;overflow:hidden;box-shadow:0 8px 32px rgba(5,150,105,.3)}
.home-hero::before{content:'';position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.1);pointer-events:none}
.home-hero::after{content:'';position:absolute;bottom:-80px;left:-30px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.05);pointer-events:none;display:block}
.hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.hero-left{flex:1;min-width:0}
.hero-right{flex-shrink:0}
.hero-pbar-wrap{background:rgba(255,255,255,.2);border-radius:99px;height:4px;overflow:hidden;margin-top:14px}
.hero-pbar{height:100%;border-radius:99px;background:rgba(255,255,255,.75);transition:width .7s}
.hero-greeting{font-size:var(--fs-xs);color:rgba(255,255,255,.72);margin-bottom:6px;font-weight:var(--fw-medium);letter-spacing:.3px;text-transform:uppercase}
.hero-total-label{font-size:var(--fs-xs);color:rgba(255,255,255,.62);letter-spacing:.8px;text-transform:uppercase;margin-bottom:6px;font-weight:var(--fw-bold)}
.hero-total{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:#fff;line-height:var(--lh-tight);letter-spacing:-.5px}
.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-stat{background:rgba(255,255,255,.15);border-radius:14px;padding:10px 12px;border:none;backdrop-filter:blur(10px)}
.hero-stat-label{font-size:var(--fs-xs);color:rgba(255,255,255,.65);margin-bottom:4px;letter-spacing:.2px;text-transform:uppercase}
.hero-stat-val{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.light .home-hero{background:linear-gradient(135deg,#064E3B 0%,#065F46 30%,#059669 65%,#10B981 100%);border:none;box-shadow:0 8px 32px rgba(5,150,105,.28)}
body.light .home-hero .hero-greeting{color:rgba(255,255,255,.75)}
body.light .home-hero .hero-total{color:#fff}
body.light .home-hero .hero-total-label{color:rgba(255,255,255,.62)}
body.light .home-hero .hero-stat{background:rgba(255,255,255,.18);border:none}
body.light .home-hero .hero-stat-label{color:rgba(255,255,255,.65)}
body.light .home-hero .hero-stat-val{color:#fff}

/* Donut card */
.donut-card{margin:0 14px 12px;background:var(--sur);border:1px solid var(--bor);border-radius:20px;padding:var(--sp-5);display:flex;align-items:center;gap:var(--sp-5);box-shadow:var(--sh-sm)}
.donut-svg-wrap{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.donut-center{position:absolute;text-align:center}
.donut-pct{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);color:var(--acc)}
.donut-pct-label{font-size:var(--fs-xs);color:var(--txt3);letter-spacing:.3px}
.donut-info{flex:1}
.donut-info-row{display:flex;justify-content:space-between;margin-bottom:var(--sp-2)}
.donut-pbar-wrap{background:var(--sur3);border-radius:99px;height:5px;overflow:hidden}
.donut-pbar{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--acc),var(--acc-dark));transition:width .7s}

/* Section header */
.sec-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-2)}
.sec-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--txt);letter-spacing:-.2px}
.sec-action{font-size:var(--fs-sm);color:var(--acc);cursor:pointer;font-weight:var(--fw-bold)}

/* Plan card */
.plan-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:var(--sp-4);cursor:pointer;transition:all .18s;position:relative;overflow:hidden;box-shadow:var(--sh-sm)}
.plan-card:active{transform:scale(.98)}
.plan-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:2px 0 0 2px;background:var(--plan-color,var(--acc));opacity:0;transition:opacity .22s}
.plan-card:hover::before,.plan-card.active-plan::before{opacity:1}
.plan-card:hover{box-shadow:var(--sh-md);border-color:var(--bor2)}
.plan-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-2);gap:var(--sp-2)}
.plan-card-name{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--txt);letter-spacing:-.1px;line-height:var(--lh-snug)}
.plan-card-meta{font-size:var(--fs-sm);color:var(--txt3);margin-top:2px;display:flex;gap:var(--sp-2);flex-wrap:wrap;line-height:var(--lh-snug)}
.plan-card-badges{display:flex;gap:var(--sp-1);flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.badge{font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:3px var(--sp-2);border-radius:99px;white-space:nowrap;letter-spacing:.3px}
.badge-active{background:rgba(16,185,129,.12);color:var(--acc)}
.badge-done{background:rgba(59,130,246,.12);color:var(--acc2)}
.plan-card-pbar-wrap{background:var(--sur3);border-radius:99px;height:4px;overflow:hidden;margin-bottom:var(--sp-2)}
.plan-card-pbar{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--acc),var(--acc-dark));transition:width .6s}
.plan-card-bottom{display:flex;justify-content:space-between;align-items:baseline}
.plan-card-saved{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--txt)}
.plan-card-goal{font-size:var(--fs-sm);color:var(--txt3);margin-top:1px}
.plan-card-pct{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--acc)}

/* Challenge picker */
.challenge-picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);max-height:240px;overflow-y:auto;padding-right:2px}
.ch-opt{padding:var(--sp-3) var(--sp-2);background:var(--sur2);border:1.5px solid var(--bor2);border-radius:12px;cursor:pointer;transition:all .14s;position:relative}
.ch-opt:hover{border-color:var(--bor3)}
.ch-opt.on{border-color:var(--acc);background:rgba(16,185,129,.06)}
.ch-opt-icon{font-size:20px;margin-bottom:var(--sp-1);line-height:1}
.ch-opt-name{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--txt);margin-bottom:2px}
.ch-opt-desc{font-size:var(--fs-xs);color:var(--txt3);line-height:var(--lh-snug)}
.ch-opt-dur{font-size:var(--fs-xs);color:var(--acc);font-weight:var(--fw-semibold);margin-top:var(--sp-1)}
.ch-difficulty{position:absolute;top:6px;right:6px;font-size:9px;font-weight:var(--fw-bold);padding:2px 6px;border-radius:99px}
.diff-easy{background:rgba(16,185,129,.12);color:var(--acc)}
.diff-medium{background:rgba(245,158,11,.12);color:var(--acc3)}
.diff-hard{background:rgba(239,68,68,.12);color:var(--danger)}
.ch-fields{display:flex;flex-direction:column;gap:0}
.freq-pills{display:flex;gap:var(--sp-2);margin-top:var(--sp-1)}
.freq-pill{flex:1;padding:var(--sp-2);background:var(--sur2);border:1.5px solid var(--bor2);border-radius:10px;font-family:var(--font);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--txt2);cursor:pointer;text-align:center;transition:all .13s}
.freq-pill:hover{border-color:var(--bor3);color:var(--txt)}
.freq-pill.on{background:rgba(16,185,129,.08);border-color:var(--acc);color:var(--acc)}
.sub-mode-pills{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-1)}
.sm-pill{padding:7px var(--sp-3);background:var(--sur2);border:1.5px solid var(--bor2);border-radius:99px;font-family:var(--font);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--txt2);cursor:pointer;transition:all .13s;white-space:nowrap}
.sm-pill.on{background:rgba(16,185,129,.08);border-color:var(--acc);color:var(--acc)}
.denom-chips{display:flex;gap:var(--sp-1);flex-wrap:wrap;margin-top:var(--sp-1)}
.denom-chip{padding:6px var(--sp-3);background:var(--sur2);border:1.5px solid var(--bor2);border-radius:99px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--txt2);cursor:pointer;transition:all .13s}
.denom-chip.on{background:rgba(16,185,129,.08);border-color:var(--acc);color:var(--acc)}
.bank-chip{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--sur2);border:1px solid var(--bor2);border-radius:var(--r-sm);margin-top:var(--sp-2);cursor:default}
.bank-chip-logo{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--fw-extrabold);flex-shrink:0;color:#fff;overflow:hidden}
.bank-chip-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--txt2)}

/* Bank dropdown */
.bank-select-wrap{position:relative}
.bank-select-trigger{width:100%;padding:11px 13px;min-height:42px;background:var(--sur2);border:1.5px solid var(--bor2);border-radius:12px;font-family:var(--font);font-size:var(--fs-base);color:var(--txt);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);outline:none;transition:border-color .15s;text-align:left;box-sizing:border-box}
.bank-select-trigger:focus,.bank-select-trigger.open{border-color:var(--acc);box-shadow:0 0 0 3px rgba(16,185,129,.1)}
.bank-select-trigger .bst-left{display:flex;align-items:center;gap:var(--sp-2);flex:1;min-width:0}
.bank-select-trigger .bst-logo{width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--fw-extrabold);color:#fff;flex-shrink:0;overflow:hidden}
.bank-select-trigger .bst-name{font-size:var(--fs-base);color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bst-chevron{width:14px;height:14px;stroke:var(--txt3);fill:none;stroke-width:2;flex-shrink:0;transition:transform .18s}
.bank-select-trigger.open .bst-chevron{transform:rotate(180deg)}
.bank-dd{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--sur);border:1px solid var(--bor2);border-radius:14px;z-index:400;max-height:220px;overflow-y:auto;box-shadow:var(--sh-lg);display:none}
.bank-dd.show{display:block}
.bank-dd-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);cursor:pointer;transition:background .12s;font-size:var(--fs-base);color:var(--txt)}
.bank-dd-item:hover{background:var(--sur2)}
.bank-dd-item.selected{background:rgba(16,185,129,.08)}
.bank-dd-logo{width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden}

/* Password */
.pwd-wrap{position:relative}
.pwd-wrap .form-input,.pwd-wrap .auth-input{padding-right:44px}
.eye-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--txt3);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .14s}
.eye-btn:hover{color:var(--txt)}
.eye-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}

/* Misc */
.pulse-dot-red{width:8px;height:8px;border-radius:50%;background:#EF4444;animation:rdot 1.4s infinite}
@keyframes rdot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@keyframes border-blink{0%,100%{border-color:rgba(239,68,68,.45);box-shadow:var(--sh-sm)}50%{border-color:rgba(239,68,68,.9);box-shadow:0 0 0 3px rgba(239,68,68,.12),var(--sh-sm)}}
.next-card.overdue{animation:border-blink 1.4s infinite}
@keyframes btn-red-pulse{0%,100%{box-shadow:0 2px 10px rgba(239,68,68,.35)}50%{box-shadow:0 4px 18px rgba(239,68,68,.65)}}
.btn-mark-pill.overdue{background:#EF4444!important;box-shadow:0 2px 10px rgba(239,68,68,.35)!important;animation:btn-red-pulse 1.4s infinite}
.btn-mark-pill.overdue:hover{background:#dc2626!important}
.btn-mark-pill{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;background:var(--acc);color:#fff;border:none;border-radius:99px;font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;transition:all .18s;box-shadow:0 2px 10px rgba(16,185,129,.3)}
.btn-mark-pill:active{transform:scale(.95)}
.btn-mark-pill:hover{background:var(--acc-dark);box-shadow:0 6px 20px rgba(16,185,129,.4)}
.btn-mark-pill svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.5}
.demo-banner{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2);border-radius:12px;padding:9px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 14px 10px;font-size:12px;color:var(--acc3)}
.demo-banner-btn{padding:5px 12px;background:var(--acc);border:none;border-radius:99px;font-family:var(--font);font-size:11px;font-weight:700;color:#fff;cursor:pointer;white-space:nowrap}
.motiv-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:16px;position:relative;overflow:hidden;box-shadow:var(--sh-xs)}
.motiv-card::before{content:'';position:absolute;bottom:-30px;right:-30px;width:100px;height:100px;background:radial-gradient(circle,rgba(16,185,129,.06) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.motiv-quote{font-size:13px;line-height:1.65;color:var(--txt2);font-style:italic;margin-bottom:9px}
.motiv-source{font-size:10px;color:var(--acc);font-weight:700;letter-spacing:.4px}
.mi-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;overflow:hidden;box-shadow:var(--sh-xs)}
.mi-tabs{display:flex;border-bottom:1px solid var(--bor)}
.mi-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 16px;font-size:12px;font-weight:700;color:var(--txt3);cursor:pointer;letter-spacing:.2px;transition:all .18s;border:none;background:none;font-family:var(--font);position:relative;user-select:none}
.mi-tab:first-child{border-right:1px solid var(--bor)}
.mi-tab.active{color:var(--txt);background:var(--sur2)}
.mi-tab.active::after{content:'';position:absolute;bottom:0;left:16px;right:16px;height:2px;background:var(--acc);border-radius:2px 2px 0 0}
.mi-panel{display:none}
.mi-panel.active{display:block}
.mi-motiv-inner{background:var(--sur);padding:18px 18px 16px;position:relative;overflow:hidden}
.mi-insights-inner{padding:16px}
.bar-chart-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:16px;box-shadow:var(--sh-xs)}
.bc-title{font-size:var(--fs-sm);font-weight:700;color:var(--txt);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.bc-legend{display:flex;gap:14px;margin-bottom:12px}
.bc-leg-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0;margin-top:3px}
.bc-leg-lbl{font-size:10px;color:var(--txt2)}
.bc-bars{display:flex;gap:7px;align-items:flex-end;height:160px;overflow-x:hidden;padding-bottom:2px;width:100%}
.bc-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:0}
.bc-pair{display:flex;gap:3px;align-items:flex-end;height:140px}
.bc-bar-wrap{display:flex;flex-direction:column;align-items:center;gap:2px}
.bc-bar{width:clamp(12px,4vw,28px);border-radius:4px 4px 0 0;transition:height .5s ease;min-height:2px}
.bc-bar-lbl{font-size:8px;font-weight:700;color:var(--txt3);writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);white-space:nowrap;line-height:1;max-height:52px;overflow:hidden}
.bc-month{font-size:9px;color:var(--txt3);white-space:nowrap}
.month-mini-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:18px 20px;box-shadow:var(--sh-xs)}
.mmc-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--txt);margin-bottom:14px;letter-spacing:-.2px}
.mmc-body{display:flex;align-items:center;gap:18px}
.mmc-donut{flex-shrink:0}
.mmc-vals{flex:1}
.mmc-row{display:flex;justify-content:space-between;margin-bottom:10px}
.mmc-item .mmc-lbl{font-size:var(--fs-xs);color:var(--txt3);margin-bottom:3px;letter-spacing:.6px;text-transform:uppercase;font-weight:var(--fw-bold)}
.mmc-item .mmc-val{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--txt);line-height:1.2;letter-spacing:-.2px}
.mfmt-chips{display:flex;gap:6px;flex-wrap:wrap}
.mfmt-chip{padding:6px 12px;background:var(--sur2);border:1.5px solid var(--bor2);border-radius:99px;font-size:11px;font-weight:700;color:var(--txt2);cursor:pointer;transition:all .13s}
.mfmt-chip.on{background:rgba(16,185,129,.08);border-color:var(--acc);color:var(--acc)}
.lang-chips{display:flex;gap:5px}
.lang-chip{padding:5px 11px;background:var(--sur2);border:1.5px solid var(--bor2);border-radius:99px;font-size:11px;font-weight:700;color:var(--txt2);cursor:pointer;transition:all .13s;letter-spacing:.3px}
.lang-chip.on{background:rgba(16,185,129,.08);border-color:var(--acc);color:var(--acc)}
.avatar-circle{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#064E3B,#10B981);border:2px solid rgba(16,185,129,.25);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden;cursor:pointer}
.avatar-circle img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.avatar-lg{width:72px;height:72px;font-size:26px;border-width:3px;margin:0 auto 12px}
.profile-field{margin-bottom:14px}
.profile-field label{font-size:11px;color:var(--txt2);font-weight:600;letter-spacing:.2px;display:block;margin-bottom:5px}
.profile-section-divider{height:1px;background:var(--bor);margin:16px 0}
.profile-change-row{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:6px 0}
.profile-change-row span{font-size:13px;font-weight:600;color:var(--txt2)}
.profile-change-row svg{width:13px;height:13px;stroke:var(--txt3);fill:none;stroke-width:2;transition:transform .2s}
.profile-change-row.open svg{transform:rotate(90deg)}
.profile-expand{display:none;padding-top:8px}
.alert-banner{margin:0 14px 10px;background:rgba(245,158,11,.07);border:1px solid rgba(245,158,11,.2);border-radius:14px;padding:11px 13px;display:flex;align-items:center;gap:9px;font-size:13px;color:var(--acc3)}
.alert-banner svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}
.info-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:15px;box-shadow:var(--sh-xs)}
.streak-display{display:flex;align-items:center;gap:10px}
.streak-num{font-size:var(--fs-xl);font-weight:700;color:var(--acc3)}
.streak-label{font-size:12px;color:var(--txt3)}
.sim-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--bor);font-size:13px}
.sim-row:last-child{border:none}
.sim-month{color:var(--txt2)}
.sim-val{font-weight:600;color:var(--txt)}
.empty-state{display:flex;flex-direction:column;align-items:center;padding:48px 24px;text-align:center}
.empty-icon{width:64px;height:64px;background:var(--sur2);border:1px solid var(--bor2);border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:28px}

/* DETAIL HERO */
.detail-hero{margin:10px 14px 10px;background:linear-gradient(135deg,#064E3B 0%,#065F46 40%,#059669 100%);border:none;border-radius:18px;padding:8px 12px;position:relative;overflow:hidden;box-shadow:0 6px 24px rgba(5,150,105,.25)}
.detail-back{display:flex;align-items:center;gap:5px;font-size:12px;color:rgba(255,255,255,.6);margin-bottom:8px;cursor:pointer;width:fit-content}
.detail-back:hover{color:rgba(255,255,255,.9)}
.detail-back svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.detail-plan-name{font-size:17px;font-weight:700;color:#fff;margin-bottom:2px}
.detail-dates{font-size:10px;color:rgba(255,255,255,.45)}
.detail-badges{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}
.detail-badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:99px}
.icon-btn-sm{transition:color .15s,background .15s,border-color .15s}
.icon-btn-sm:hover{color:rgba(255,255,255,.9)!important;background:rgba(255,255,255,.15)!important;border-color:rgba(255,255,255,.3)!important}
.db-green{background:rgba(16,185,129,.25);color:#fff}
.db-blue{background:rgba(59,130,246,.25);color:#fff}
.db-amber{background:rgba(245,158,11,.25);color:#fff}
.db-white{background:rgba(255,255,255,.15);color:rgba(255,255,255,.8)}
.detail-donut-row{display:flex;align-items:center;gap:12px;margin-top:10px}
.detail-prog-info{flex:1}
.detail-saved{font-size:var(--fs-lg);font-weight:700;color:#fff}
.detail-goal-txt{font-size:11px;color:rgba(255,255,255,.5);margin-bottom:3px}
body.light .detail-hero{background:linear-gradient(135deg,#064E3B 0%,#065F46 40%,#059669 100%);border:none;box-shadow:0 6px 24px rgba(5,150,105,.22)}
body.light .detail-back{color:rgba(255,255,255,.65)}
body.light .detail-plan-name{color:#fff}
body.light .detail-dates{color:rgba(255,255,255,.5)}
body.light .detail-goal-txt{color:rgba(255,255,255,.5)}
body.light .detail-hero button[onclick*="openModal"]{background:rgba(255,255,255,.15)!important;border:1px solid rgba(255,255,255,.25)!important;color:rgba(255,255,255,.85)!important}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 14px 12px}
.stat-chip{background:var(--sur);border:1px solid var(--bor);border-radius:14px;padding:11px 9px;text-align:center;box-shadow:var(--sh-xs)}
.stat-chip-val{font-size:var(--fs-sm);font-weight:700;color:var(--txt);margin-bottom:2px}
.stat-chip-label{font-size:9px;color:var(--txt3);line-height:1.3}

/* Currency */
.currency-option{display:flex;align-items:center;padding:12px 14px;gap:12px;cursor:pointer;border-bottom:1px solid var(--bor);transition:background .14s;user-select:none}
.currency-option:last-child{border-bottom:none}
.currency-option:active{background:var(--sur2)}
.cur-badge{width:38px;height:38px;border-radius:10px;background:var(--sur3);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--txt2);flex-shrink:0;transition:background .15s,color .15s}
.currency-option.selected .cur-badge{background:rgba(16,185,129,.15);color:var(--acc)}
.cur-info{flex:1;min-width:0}
.cur-name{font-size:14px;font-weight:600;color:var(--txt);line-height:1.2}
.cur-region{font-size:12px;color:var(--txt2);margin-top:2px}
.cur-check{width:16px;height:16px;opacity:0;stroke:var(--acc);fill:none;stroke-width:2.5;flex-shrink:0;transition:opacity .15s}
.currency-option.selected .cur-check{opacity:1}

/* Next card */
.next-card{margin:0 14px 12px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:16px;position:relative;overflow:hidden;box-shadow:var(--sh-sm)}
.next-card-label{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--acc);font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:10px}
.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--acc);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}
.next-amount{font-size:var(--fs-2xl);font-weight:700;color:var(--acc);margin-bottom:12px;line-height:1}
.next-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:13px}
.nm-key{font-size:11px;color:var(--txt3);margin-bottom:3px}
.nm-val{font-size:13px;font-weight:600;color:var(--txt)}
.btn-mark-next{width:100%;padding:13px;background:var(--acc);color:#fff;border:none;border-radius:14px;font-family:var(--font);font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:all .18s;box-shadow:0 4px 16px rgba(16,185,129,.35)}
.btn-mark-next:active{transform:scale(.97)}
.btn-mark-next:hover{background:var(--acc-dark);box-shadow:0 6px 24px rgba(16,185,129,.45)}
.btn-mark-next svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.5}
.next-done-state{display:flex;align-items:center;justify-content:center;gap:7px;padding:11px;background:rgba(16,185,129,.08);border-radius:12px;font-size:14px;font-weight:600;color:var(--acc)}

/* Month/week list */
.month-groups-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:14px;box-shadow:var(--sh-xs)}
.month-groups-card .month-block{margin:0 0 10px}
.month-block{margin:0 14px 10px}
.month-header{display:flex;align-items:center;justify-content:space-between;padding:9px 0 7px;cursor:pointer;border-bottom:1px solid var(--bor)}
.month-title-wrap{display:flex;align-items:center;gap:8px}
.month-title-text{font-size:13px;font-weight:700;color:var(--txt)}
.month-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--sur3);color:var(--txt2)}
.month-totals{font-size:11px;color:var(--txt3);text-align:right;line-height:1.5}
.month-totals strong{color:var(--txt2)}
.month-chevron{width:15px;height:15px;stroke:var(--txt3);fill:none;stroke-width:2;transition:transform .2s;flex-shrink:0}
.month-header.collapsed .month-chevron{transform:rotate(-90deg)}
.month-weeks{display:flex;flex-direction:column;gap:4px;padding-top:6px}
.month-weeks.hidden{display:none}
.week-row{display:flex;align-items:center;padding:10px 11px;background:var(--sur);border:1px solid var(--bor);border-radius:12px;cursor:pointer;transition:background .14s,border-color .14s,transform .1s;user-select:none;gap:9px}
.week-row:active{transform:scale(.98)}
.week-row:hover{background:var(--sur2);border-color:var(--bor2)}
.week-row.done{background:rgba(16,185,129,.05);border-color:rgba(16,185,129,.18)}
.week-row.is-next{background:rgba(59,130,246,.05);border-color:rgba(59,130,246,.2)}
@keyframes rowMarkFlash{0%{background:rgba(16,185,129,.22);transform:scale(1.012)}60%{background:rgba(16,185,129,.1)}100%{background:rgba(16,185,129,.05);transform:scale(1)}}
.week-row.mark-flash{animation:rowMarkFlash .45s cubic-bezier(.4,0,.2,1) forwards}
.wk-num{width:28px;height:28px;border-radius:8px;background:var(--sur3);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--txt2);flex-shrink:0;transition:background .14s,color .14s}
.week-row.done .wk-num{background:var(--acc);color:#fff}
.week-row.is-next .wk-num{background:var(--acc2);color:#fff}
.wk-info{flex:1;min-width:0}
.wk-date{font-size:11px;color:var(--txt3);margin-bottom:1px}
.wk-status{font-size:11px;font-weight:600;color:var(--txt2)}
.week-row.done .wk-status{color:var(--acc)}
.week-row.is-next .wk-status{color:var(--acc2)}
.wk-amounts{text-align:right;flex-shrink:0}
.wk-val{font-size:13px;font-weight:700;color:var(--txt)}
.week-row.done .wk-val{color:var(--acc)}
.wk-cumul{font-size:11px;color:var(--txt3);margin-top:1px}
.week-row.done .wk-cumul{color:rgba(16,185,129,.6)}
.wk-check{flex-shrink:0;width:16px;height:16px}
.wk-check svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.5}

/* Settings */
.page-title-row{display:flex;align-items:center;justify-content:space-between;padding:16px 14px 10px}
.page-title{font-size:20px;font-weight:700;color:var(--txt);margin:0}
.settings-section{margin:0 14px 20px}
.settings-label{font-size:11px;color:var(--txt3);letter-spacing:.5px;text-transform:uppercase;padding:14px 2px 8px;font-weight:700}
.settings-group{background:var(--sur);border:1px solid var(--bor);border-radius:16px;overflow:hidden;box-shadow:var(--sh-xs)}
.settings-row{display:flex;align-items:center;padding:14px;border-bottom:1px solid var(--bor);gap:12px;cursor:default}
.settings-row:last-child{border:none}
.settings-row.clickable{cursor:pointer;transition:background .15s}
.settings-row.clickable:hover{background:var(--sur2)}
.sr-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.sr-green{background:rgba(16,185,129,.1)}
.sr-blue{background:rgba(59,130,246,.1)}
.sr-amber{background:rgba(245,158,11,.1)}
.sr-red{background:rgba(239,68,68,.1)}
.sr-info{flex:1}
.sr-title{font-size:13px;font-weight:600;color:var(--txt)}
.sr-sub{font-size:11px;color:var(--txt3);margin-top:1px}
.toggle{width:44px;height:26px;background:var(--track);border-radius:99px;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0;border:none}
.toggle.on{background:var(--acc)}
.toggle::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.toggle.on::after{transform:translateX(18px)}

/* Modal */
.modal-backdrop{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0);display:flex;align-items:flex-end;pointer-events:none;transition:background .3s}
.modal-backdrop.open{background:rgba(0,0,0,.5);pointer-events:auto}
.modal-sheet{width:100%;max-width:520px;margin:0 auto;background:var(--sur);border-radius:24px 24px 0 0;border-top:1px solid var(--bor);box-shadow:0 -4px 40px rgba(0,0,0,.15);padding:calc(12px + env(safe-area-inset-top,0px)) 20px max(env(safe-area-inset-bottom,0px),20px);transform:translateY(110%);transition:transform .4s cubic-bezier(.32,.72,0,1);max-height:calc(96vh - env(safe-area-inset-top,0px));overflow-y:auto;will-change:transform}
.modal-backdrop.open .modal-sheet{transform:translateY(0)}
.modal-handle-area{width:100%;padding:6px 0 0;margin-bottom:14px;cursor:grab;touch-action:none;display:flex;justify-content:center}
.modal-handle-area:active{cursor:grabbing}
.modal-handle{width:36px;height:4px;background:var(--bor3);border-radius:2px;margin:0;transition:background .15s,width .15s}
.modal-handle-area:active .modal-handle{background:var(--txt3);width:44px}
.modal-title{font-size:18px;font-weight:700;margin-bottom:18px;color:var(--txt)}
.modal-nav-hdr{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.modal-nav-hdr .modal-title{margin-bottom:0;flex:1;text-align:center}
.modal-nav-spacer{width:32px;flex-shrink:0}
.modal-close-btn,.modal-back-btn{width:44px;height:44px;border-radius:50%;border:none;background:var(--sur2);color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s;padding:0}
.modal-close-btn:active,.modal-back-btn:active{background:var(--bor3);color:var(--txt)}
.form-group{margin-bottom:14px}
.form-label{font-size:12px;color:var(--txt2);margin-bottom:6px;display:block;font-weight:600;letter-spacing:.2px}
.form-input{width:100%;padding:12px 14px;background:var(--sur2);border:1.5px solid var(--bor2);border-radius:12px;font-family:var(--font);font-size:14px;color:var(--txt);outline:none;transition:border-color .15s;box-sizing:border-box;-webkit-appearance:none;appearance:none}
.form-input:focus{border-color:var(--acc)}
.form-input::placeholder{color:var(--txt3)}
input[type="date"].form-input{line-height:1.4;min-height:42px;display:flex;align-items:center}
input[type="date"].form-input::-webkit-date-and-time-value{text-align:left;color:var(--txt);min-height:1.4em;padding:0;margin:0}
input[type="date"].form-input::-webkit-inner-spin-button{display:none}
input[type="date"].form-input::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer;padding:0;margin-left:auto}
body.dark input[type="date"].form-input::-webkit-calendar-picker-indicator{filter:invert(1) opacity(.45)}
body.light input[type="date"].form-input::-webkit-calendar-picker-indicator{filter:opacity(.45)}
.form-row{display:grid;grid-template-columns:1fr;gap:9px}
.form-row .form-group{min-width:0}
.form-row .form-input,.form-row .bank-select-trigger{width:100%;box-sizing:border-box;min-width:0}
@media(min-width:520px){.form-row{grid-template-columns:1fr 1fr}}
.form-select{width:100%;padding:11px 13px;background:var(--sur2);border:1.5px solid var(--bor2);border-radius:12px;font-family:var(--font);font-size:14px;color:var(--txt);outline:none;-webkit-appearance:none;cursor:pointer}
.form-select:focus{border-color:var(--acc)}
.opt-pills{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.opt-pill{padding:10px 8px;background:var(--sur2);border:1.5px solid var(--bor2);border-radius:12px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--txt2);cursor:pointer;text-align:center;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:3px;user-select:none}
.opt-pill:hover{border-color:var(--bor3);color:var(--txt)}
.opt-pill.selected{background:rgba(16,185,129,.08);border-color:var(--acc);color:var(--acc)}
.opt-pill-icon{font-size:17px;line-height:1}
.opt-pill-sub{font-size:10px;opacity:.65;margin-top:-1px}
.preview-box{background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.18);border-radius:12px;padding:11px 13px;display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.preview-label{font-size:11px;color:rgba(16,185,129,.7)}
.preview-val{font-size:15px;font-weight:700;color:var(--acc)}
.btn-row{display:flex;gap:10px;margin-top:16px}
.btn-cancel{flex:1;padding:13px;background:var(--sur2);border:1px solid var(--bor2);border-radius:12px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--txt);cursor:pointer;transition:all .2s}
.btn-cancel:hover{background:var(--sur3);border-color:var(--bor3)}
.btn-cancel:active{transform:scale(.97)}
.btn-save{flex:2;padding:13px;background:var(--acc);border:none;border-radius:12px;font-family:var(--font);font-size:14px;font-weight:700;color:#fff;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px rgba(16,185,129,.3)}
.btn-save:hover{background:var(--acc-dark);box-shadow:0 6px 24px rgba(16,185,129,.4)}
.btn-save:active{transform:scale(.97)}
.btn-full{width:100%;padding:13px;border-radius:12px;font-family:var(--font);font-size:14px;font-weight:700;cursor:pointer;margin-top:8px;transition:all .2s}
.btn-danger-full{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.22);color:var(--danger)}
.btn-danger-full:hover{background:rgba(239,68,68,.15)}
.form-divider{height:1px;background:var(--bor);margin:4px 0 12px}
.toast{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%) translateY(-120px);background:var(--sur);color:var(--txt);padding:10px 18px;border-radius:99px;font-size:13px;font-weight:600;z-index:9999;transition:transform .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;border:1px solid var(--bor2);max-width:92vw;display:flex;align-items:center;gap:10px;box-shadow:var(--sh-lg)}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast.success{border-color:rgba(16,185,129,.3)}
.toast.warning{border-color:rgba(245,158,11,.3)}
.toast-undo{background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.25);border-radius:99px;font-size:11px;font-weight:800;color:var(--acc);padding:3px 10px;cursor:pointer;white-space:nowrap;flex-shrink:0;letter-spacing:.3px}
.toast-undo:hover{background:rgba(16,185,129,.2)}
#modalDanger .modal-sheet{max-height:60vh}
.danger-icon{font-size:36px;text-align:center;margin-bottom:12px}
.danger-title{font-size:16px;font-weight:800;text-align:center;margin-bottom:8px;color:var(--txt)}
.danger-desc{font-size:13px;color:var(--txt3);text-align:center;line-height:1.6;margin-bottom:24px}
.btn-danger{width:100%;padding:14px;border-radius:12px;font-size:14px;font-weight:800;font-family:var(--font);background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#ef4444;cursor:pointer;transition:all .15s}
.btn-danger:hover{background:rgba(239,68,68,.2)}
#ptrContainer{height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;pointer-events:none}
#pullIndicator{display:flex;align-items:center;gap:8px;background:var(--sur);border:1px solid var(--bor2);border-radius:99px;padding:8px 16px 8px 10px;box-shadow:var(--sh-md);font-size:12px;font-weight:600;color:var(--txt2);white-space:nowrap}
.ptr-spinner{width:20px;height:20px;border:1px solid rgba(16,185,129,.25);border-top-color:var(--acc);border-radius:50%;flex-shrink:0;transition:transform .1s linear}
.ptr-spinner.spin{animation:ptr-spin .65s linear infinite;transition:none}
.ptr-spinner.ready{border-color:var(--acc);box-shadow:0 0 0 2px rgba(16,185,129,.18)}
@keyframes ptr-spin{to{transform:rotate(360deg)}}
.excel-info{background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.18);border-radius:12px;padding:12px 13px;font-size:12px;color:var(--txt2);line-height:1.6;margin-bottom:14px}
.excel-info strong{color:var(--acc2)}
.excel-steps{list-style:none;counter-reset:steps}
.excel-steps li{counter-increment:steps;display:flex;gap:10px;margin-bottom:10px;font-size:12px;color:var(--txt2);line-height:1.5}
.excel-steps li::before{content:counter(steps);width:20px;height:20px;background:var(--acc2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;margin-top:1px}
.plan-cards-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:0 14px;margin-bottom:4px}
.plan-cards-grid .plan-card{margin:0}
.bank-list-wrap>div:last-child{border-bottom:none!important}
.plan-list-wrap>div:last-child{border-bottom:none!important}

/* Sidebar */
.sidebar{display:none;flex-direction:column;width:220px;flex-shrink:0;height:100vh;background:var(--sur);border-right:1px solid var(--bor);padding:20px 10px 20px;overflow-y:auto;position:sticky;top:0}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px;border-bottom:1px solid var(--bor);margin-bottom:12px}
.sidebar-logo-mark{width:32px;height:32px;background:linear-gradient(135deg,#064E3B,#10B981);border:none;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sidebar-logo-mark svg{width:17px;height:17px}
.sidebar-title-wrap{min-width:0}
.sidebar-title{font-size:14px;font-weight:800;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-title span{color:var(--acc)}
.sidebar-username{font-size:11px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;cursor:pointer;color:var(--txt3);font-size:13px;font-weight:600;transition:all .15s;user-select:none}
.sidebar-item svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0}
.sidebar-item:hover{background:var(--sur2);color:var(--txt)}
.sidebar-item.active{background:rgba(16,185,129,.1);color:var(--acc)}
.sidebar-bottom{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--bor);padding-top:12px;margin-top:12px}
.sidebar-btn{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;border:none;background:none;color:var(--txt2);text-align:left;width:100%}
.sidebar-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0}
.sidebar-btn:hover{background:var(--sur2);color:var(--txt)}
.sidebar-btn.primary{background:rgba(16,185,129,.1);color:var(--acc)}
.sidebar-btn.primary:hover{background:rgba(16,185,129,.18)}

.home-grid{display:grid;grid-template-columns:1fr;gap:0}
.hc-span{grid-column:1/-1}
.plans-bank-row{display:grid;grid-template-columns:1fr;gap:0}

/* Responsive */
@media(max-width:360px){.tab-bar .tab-item span{font-size:9px;padding:3px 2px}.hero-total{font-size:24px}.home-hero{padding:16px 14px}}
@media(min-width:640px){.fab{right:20px;bottom:20px}}
@media(min-width:768px){
  .top-nav{display:none}.sidebar{display:flex}.tab-bar{display:none!important}.fab{display:none!important}
  #app.visible{flex-direction:row}.pages{overflow-y:auto}
  .home-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:12px}
  .hc-span,.home-grid .home-hero,.home-grid .hc-alert-wrap,.home-grid .motiv-card,.home-grid>.info-card{grid-column:1/-1}
  .home-grid .home-hero,.home-grid .motiv-card,.home-grid .next-action-card,.home-grid .info-card,.home-grid .bar-chart-card,.home-grid .next-card,.home-grid .month-mini-card,.home-grid .alert-banner,.home-grid .serie-card,.home-grid .plan-list-wrap,.home-grid .plans-home-card,.home-grid .bank-list-wrap{margin:0!important}
  #homeCalBody{max-width:400px;margin:0 auto}
  .plans-bank-row{grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}
  .plans-bank-row .plans-home-card,.plans-bank-row .bank-list-wrap,.plans-bank-row .info-card{margin:0!important}
  .home-hero{padding:22px 24px}
}
@media(min-width:1200px){.sidebar{width:240px}.home-hero{padding:30px 28px}.hero-total{font-size:40px}}

/* Intel */
.disc-calc-banner{display:flex;align-items:center;gap:12px;margin:14px 14px 6px;padding:14px 16px;background:linear-gradient(135deg,rgba(16,185,129,.12),rgba(16,185,129,.06));border:1px solid rgba(16,185,129,.25);border-radius:16px;cursor:pointer;transition:all .15s;color:var(--txt)}
.disc-calc-banner:active{transform:scale(.98);background:rgba(16,185,129,.18)}
.dcb-icon{font-size:24px;flex-shrink:0}
.dcb-info{flex:1;min-width:0}
.dcb-title{font-size:14px;font-weight:700;color:var(--txt);margin-bottom:2px}
.dcb-sub{font-size:12px;color:var(--txt2);line-height:1.4}
.disc-calc-banner svg{flex-shrink:0;opacity:.45}
.intel-tabs{display:flex;overflow-x:auto;gap:0;border-bottom:1px solid var(--bor);padding:0 14px;scrollbar-width:none}
.intel-tabs::-webkit-scrollbar{display:none}
.intel-tab{flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:700;color:var(--txt3);cursor:pointer;border:none;background:none;font-family:var(--font);position:relative;letter-spacing:.2px;white-space:nowrap;transition:color .15s}
.intel-tab.active{color:var(--acc)}
.intel-tab.active::after{content:'';position:absolute;bottom:0;left:10px;right:10px;height:2px;background:var(--acc);border-radius:2px 2px 0 0}
.intel-panel{display:none;padding:14px}
.intel-panel.active{display:block}
.intel-section-lbl{font-size:10px;font-weight:700;color:var(--txt3);letter-spacing:.8px;text-transform:uppercase;margin-bottom:10px}
.intel-card{background:var(--sur2);border:1px solid var(--bor);border-radius:14px;padding:13px 14px;margin-bottom:8px}
.intel-card-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.intel-card-icon{font-size:18px;flex-shrink:0}
.intel-card-title{font-size:13px;font-weight:700;color:var(--txt);flex:1}
.intel-card-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:99px;flex-shrink:0}
.intel-card-body{font-size:12px;color:var(--txt2);line-height:1.6}
.intel-card-body strong{color:var(--txt);font-weight:700}
.intel-card-body .acc{color:var(--acc)}
.intel-card-body .warn{color:var(--acc3)}
.intel-card-body .danger{color:var(--danger)}
.intel-action-btn{display:inline-flex;align-items:center;gap:5px;margin-top:9px;padding:5px 12px;background:var(--acc);color:#fff;border:none;border-radius:99px;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--font)}
.intel-divider{height:1px;background:var(--bor);margin:12px 0}
.score-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:99px;font-size:10px;font-weight:700;opacity:.7;letter-spacing:-.3px}
.turbo-card{background:var(--sur);border:1px solid var(--bor);border-radius:14px;padding:14px}
.turbo-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}
.turbo-btn{padding:9px 4px;border-radius:9px;border:1px solid rgba(160,100,255,.3);background:rgba(160,100,255,.1);color:#c9a8ff;font-size:12px;font-weight:800;cursor:pointer;font-family:var(--font);transition:all .15s}
.turbo-btn.active{background:rgba(160,100,255,.35);border-color:#c9a8ff;color:#fff}
.turbo-result{background:rgba(255,255,255,.05);border-radius:10px;padding:12px;margin-top:8px;font-size:12px;color:var(--txt2);line-height:1.6}
.turbo-result strong{color:#c9a8ff}
body.light .turbo-result{background:rgba(0,0,0,.04)}
.alert-item{display:flex;gap:10px;padding:11px 12px;border-radius:14px;margin-bottom:7px;align-items:flex-start}
.alert-item.warning{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2)}
.alert-item.critical{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2)}
.alert-item.positive{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2)}
.alert-item-icon{font-size:16px;flex-shrink:0}
.alert-item-title{font-size:12px;font-weight:700;color:var(--txt);margin-bottom:2px}
.alert-item-msg{font-size:11px;color:var(--txt2);line-height:1.5}
.next-action-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:16px;box-shadow:var(--sh-xs)}
.next-action-lbl{font-size:10px;font-weight:700;color:var(--acc);letter-spacing:.6px;text-transform:uppercase;margin-bottom:8px;opacity:.7}
.next-action-msg{font-size:14px;font-weight:700;color:var(--txt);margin-bottom:12px}
.next-action-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--acc);color:#fff;border:none;border-radius:99px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font);box-shadow:0 3px 12px rgba(16,185,129,.3)}
body.light .next-action-card{background:#fff;border:1px solid rgba(0,0,0,.07);box-shadow:var(--sh-sm)}
.bds-header{padding:18px 16px 10px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--bor)}
.bds-logo{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;flex-shrink:0}
.bds-name{font-size:16px;font-weight:700;color:var(--txt)}
.bds-saved{font-size:13px;font-weight:600}
.bds-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px;border-bottom:1px solid var(--bor)}
.bds-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;border-radius:12px;border:1px solid var(--bor);background:var(--sur2);cursor:pointer;font-family:var(--font)}
.bds-btn-icon{font-size:20px}
.bds-btn-lbl{font-size:11px;font-weight:700;color:var(--txt)}
.bds-btn-sub{font-size:10px;color:var(--txt3)}
/* ── Bank Invest Tip ── */
.bit-wrap{margin:14px 14px 0;background:linear-gradient(135deg,rgba(71,212,90,.06),rgba(26,93,200,.06));border:1px solid rgba(71,212,90,.22);border-radius:14px;overflow:hidden}
.bit-header{display:flex;align-items:center;gap:10px;padding:14px 14px 10px;border-bottom:1px solid rgba(71,212,90,.15)}
.bit-cards{padding:10px 10px 4px;display:flex;flex-direction:column;gap:8px}
.bit-card{display:flex;align-items:flex-start;gap:10px;background:var(--sur);border-radius:11px;padding:11px 12px}
.bit-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.bit-body{flex:1;min-width:0}
.bit-title{font-size:12px;font-weight:800;color:var(--txt);margin-bottom:2px}
.bit-sub{font-size:11px;color:var(--txt3)}
.bit-proj-row{display:flex;gap:8px;margin-top:7px}
.bit-proj{flex:1;background:var(--sur2);border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:1px}
.bit-proj-lbl{font-size:10px;color:var(--txt3);font-weight:600}
.bit-proj-val{font-size:13px;font-weight:800;color:var(--acc);font-family:var(--font)}
.bit-proj-gain{font-size:10px;font-weight:700;color:#47D45A}
.bit-how{font-size:10px;color:var(--txt3);line-height:1.5;margin-top:6px}
.bit-disclaimer{font-size:9px;color:var(--txt3);padding:8px 14px 12px;line-height:1.5;opacity:.75}
/* ── Dep Simulator ── */
.dsp-bank-hdr{display:flex;align-items:center;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--bor)}
.dsp-bank-logo{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden}
.dsp-bank-name{font-size:16px;font-weight:700;color:var(--txt)}
.dsp-bank-sub{font-size:11px;color:var(--txt3)}
.dsp-amount-section{padding:14px 16px 8px}
.dsp-amount-lbl{font-size:11px;color:var(--txt3);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
.dsp-amount-inp{width:100%;padding:10px 12px;background:var(--sur2);border:1px solid var(--bor2);border-radius:10px;color:var(--txt);font-family:var(--font);font-size:16px;font-weight:700;box-sizing:border-box;outline:none}
.dsp-amount-inp:focus{border-color:var(--acc)}
.dsp-presets{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.dsp-preset{padding:5px 11px;background:var(--sur2);border:1px solid var(--bor2);border-radius:99px;font-size:11px;font-weight:700;color:var(--txt2);cursor:pointer;font-family:var(--font);transition:all .15s}
.dsp-preset.on,.dsp-preset:active{background:var(--acc);color:#fff;border-color:var(--acc)}
.dsp-products{padding:0 10px 10px;display:flex;flex-direction:column;gap:10px}
.dsp-product{background:var(--sur);border:1px solid var(--bor);border-radius:13px;overflow:hidden}
.dsp-prod-hdr{display:flex;align-items:flex-start;gap:10px;padding:12px 12px 8px}
.dsp-prod-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.dsp-prod-name{font-size:12px;font-weight:800;color:var(--txt)}
.dsp-prod-desc{font-size:10px;color:var(--txt3);margin-top:1px}
.dsp-terms-hdr{display:grid;grid-template-columns:62px 1fr 88px 68px 44px;gap:3px;padding:5px 12px 6px;font-size:9px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.4px;border-top:1px solid var(--bor)}
.dsp-term{display:grid;grid-template-columns:62px 1fr 88px 68px 44px;gap:3px;align-items:center;padding:8px 12px;border-top:1px solid var(--bor2)}
.dsp-term-lbl{font-size:11px;font-weight:700;color:var(--txt2)}
.dsp-bar-wrap{height:6px;background:var(--sur2);border-radius:99px;overflow:hidden}
.dsp-bar{height:100%;border-radius:99px;transition:width .35s ease}
.dsp-term-val{font-size:12px;font-weight:700;color:var(--acc);font-family:var(--font);text-align:right}
.dsp-term-gain{font-size:11px;font-weight:700;color:#47D45A;font-family:var(--font);text-align:right}
.dsp-term-rate{font-size:10px;font-weight:600;color:var(--txt3);text-align:right}
.dsp-prod-how{font-size:10px;color:var(--txt3);line-height:1.5;padding:8px 12px 10px;border-top:1px solid var(--bor2)}
.dsp-term-min{font-size:9px;color:var(--txt3);font-weight:500;line-height:1.2}
.dsp-term-apply-row{grid-column:1/-1;margin-top:6px}
.dsp-term-apply-btn{display:block;width:100%;padding:7px;background:rgba(71,212,90,.12);border:1px solid rgba(71,212,90,.3);border-radius:8px;color:var(--acc);font-family:var(--font);font-size:11px;font-weight:700;cursor:pointer}
.dsp-term-apply-btn:active{transform:scale(.98)}
.dsp-product-locked{opacity:.7}
.dsp-locked-note{margin:0 12px 8px;padding:7px 10px;background:rgba(255,179,71,.12);border:1px solid rgba(255,179,71,.3);border-radius:8px;font-size:10px;color:var(--acc3);line-height:1.4}
.dsp-locked-note strong{color:var(--acc3)}
.dsp-term-dim{opacity:.45}
.dsp-disclaimer{font-size:9px;color:var(--txt3);padding:8px 16px 20px;line-height:1.5}
/* Simuladores: Carro / Imóvel / Plano de Negócio */
.car-cards{padding:0 14px;display:flex;flex-direction:column;gap:10px}
.car-card{border:1px solid var(--bor);border-radius:14px;padding:12px;background:var(--sur2);transition:opacity .2s}
.car-card-dim{opacity:.55}
.car-hdr{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.car-icon{font-size:22px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--sur);border-radius:10px}
.car-name{font-size:13px;font-weight:800;color:var(--txt)}
.car-cat{font-size:11px;color:var(--txt3);margin-top:1px}
.car-price{font-size:13px;font-weight:800;color:var(--acc);flex-shrink:0}
.car-need{font-size:11px;color:var(--danger);background:rgba(239,68,68,.1);border-radius:8px;padding:6px 10px;margin-bottom:8px;font-weight:600}
.car-costs{display:flex;flex-direction:column;gap:4px}
.car-cost-row{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--txt2);padding:3px 0}
.car-cost-row span:last-child{font-weight:700;color:var(--txt)}
.car-cost-total{border-top:1px solid var(--bor2);margin-top:4px;padding-top:6px}
.car-biz-box{margin-top:10px;padding:10px;border-radius:10px;background:rgba(16,185,129,.07);border:1px solid rgba(16,185,129,.2)}
.car-biz-title{font-size:12px;font-weight:800;color:var(--txt);margin-bottom:6px}
.biz-desc{font-size:11.5px;color:var(--txt2);line-height:1.5;margin-bottom:8px}
.biz-breakdown{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--bor2)}
.biz-breakdown-title{font-size:11.5px;font-weight:800;color:var(--txt);margin-bottom:4px}
.bds-extrato{padding:0 0 80px}
.bds-search-row{padding:10px 16px 4px;position:sticky;top:0;background:var(--bg);z-index:2}
.bds-search-wrap{position:relative}
.bds-search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:var(--txt3);fill:none;stroke-width:2;pointer-events:none}
.bds-search-input{width:100%;padding:9px 12px 9px 34px;background:var(--sur2);border:1px solid var(--bor2);border-radius:10px;font-family:var(--font);font-size:13px;color:var(--txt);outline:none;transition:border-color .15s}
.bds-search-input:focus{border-color:var(--acc)}
.bds-search-input::placeholder{color:var(--txt3)}
.bds-filter-chips{display:flex;gap:6px;padding:6px 16px 2px;overflow-x:auto}
.bds-filter-chips::-webkit-scrollbar{display:none}
.bds-filter-chip{padding:4px 11px;border-radius:99px;font-size:11px;font-weight:700;cursor:pointer;border:1px solid var(--bor2);background:var(--sur2);color:var(--txt2);white-space:nowrap;transition:all .13s;flex-shrink:0}
.bds-filter-chip.on{background:rgba(16,185,129,.1);border-color:var(--acc);color:var(--acc)}
.bds-ext-rows{padding:0 16px}
.bds-ext-lbl{font-size:10px;font-weight:700;color:var(--txt3);letter-spacing:.6px;text-transform:uppercase;padding:14px 16px 8px}
.bds-ext-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--bor)}
.bds-ext-row:last-child{border-bottom:none}
.bds-ext-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;background:var(--sur2)}
.bds-ext-info{flex:1;min-width:0}
.bds-ext-desc{font-size:12px;font-weight:600;color:var(--txt)}
.bds-ext-date{font-size:10px;color:var(--txt3)}
.bds-ext-val{font-size:13px;font-weight:700}
#onboardOverlay{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .35s;overflow-y:auto;overflow-x:hidden}
#onboardOverlay.visible{opacity:1;pointer-events:auto}
.ob-card{width:100%;max-width:380px;text-align:center}
.ob-step{display:none}.ob-step.active{display:block}
.ob-icon{font-size:64px;margin-bottom:20px;line-height:1}
.ob-title{font-size:24px;font-weight:800;color:#fff;margin-bottom:10px;letter-spacing:-.4px}
.ob-sub{font-size:14px;color:rgba(255,255,255,.55);line-height:1.65;margin-bottom:28px}
.ob-bullets{text-align:left;margin-bottom:28px;display:flex;flex-direction:column;gap:14px}
.ob-bullet{display:flex;align-items:flex-start;gap:12px}
.ob-bullet-ico{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.ob-bullet-text{flex:1}.ob-bullet-title{font-size:13px;font-weight:700;color:#fff;margin-bottom:2px}
.ob-bullet-sub{font-size:12px;color:rgba(255,255,255,.45);line-height:1.5}
.ob-btn{width:100%;padding:15px;background:var(--acc);border:none;border-radius:14px;font-family:var(--font);font-size:15px;font-weight:700;color:#fff;cursor:pointer;margin-bottom:10px;transition:background .2s;box-shadow:0 4px 20px rgba(16,185,129,.3)}
.ob-btn:hover{background:var(--acc-dark)}
.ob-skip{font-size:12px;color:rgba(255,255,255,.3);cursor:pointer;padding:8px;margin-top:2px}
.ob-skip:hover{color:rgba(255,255,255,.55)}
.ob-dots{display:flex;gap:7px;justify-content:center;margin-bottom:28px}
.ob-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.18);transition:all .25s}
.ob-dot.active{background:var(--acc);width:20px;border-radius:4px}
.ic-row{margin-bottom:14px}
.ic-row-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ic-row-name{font-size:12px;font-weight:700;color:var(--txt);display:flex;align-items:center;gap:6px}
.ic-row-val{font-size:12px;font-weight:800;color:var(--txt)}
.ic-bar-bg{height:28px;border-radius:8px;background:var(--sur3);overflow:hidden;position:relative}
.ic-bar-fill{height:100%;border-radius:8px;transition:width .6s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;min-width:24px}
.ic-bar-fill span{font-size:9px;font-weight:700;color:#fff;opacity:.9}
.ic-row-gain{font-size:10px;color:var(--txt3);margin-top:3px;text-align:right}
.ic-row-gain strong{color:var(--acc);font-weight:700}
.fh-card{overflow:hidden}
.fh-header{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.fh-score-ring{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fh-score-num{font-size:20px;font-weight:800;font-family:var(--font)}
.fh-header-info{flex:1}
.fh-status{font-size:15px;font-weight:800;letter-spacing:-.2px}
.fh-status-sub{font-size:11px;color:var(--txt3);margin-top:2px}
.fh-dims{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.fh-dim-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.fh-dim-icon{font-size:13px}
.fh-dim-label{flex:1;font-size:11px;font-weight:700;color:var(--txt2)}
.fh-dim-score{font-size:11px;font-weight:800;font-family:var(--font)}
.fh-dim-bar{height:6px;border-radius:99px;background:var(--sur3);overflow:hidden}
.fh-dim-fill{height:100%;border-radius:99px;transition:width .6s ease}
.fh-tips-title{font-size:10px;font-weight:700;color:var(--txt3);letter-spacing:.6px;text-transform:uppercase;margin-bottom:8px}
.fh-tip{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:var(--sur2);border:1px solid var(--bor);border-radius:10px;margin-bottom:6px}
.fh-tip-icon{font-size:14px;flex-shrink:0;line-height:1.4}
.fh-tip-text{font-size:11px;color:var(--txt2);line-height:1.5}
.hist-section{margin:0 14px 14px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;overflow:hidden;box-shadow:var(--sh-xs)}
.hist-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer}
.hist-header-title{font-size:13px;font-weight:700;color:var(--txt)}
.hist-header-badge{font-size:11px;font-weight:700;color:var(--acc);background:rgba(16,185,129,.1);padding:2px 8px;border-radius:99px}
.hist-chevron{width:14px;height:14px;stroke:var(--txt3);fill:none;stroke-width:2;transition:transform .2s}
.hist-chevron.open{transform:rotate(180deg)}
.hist-body{display:none;padding:0 16px 14px}
.hist-body.open{display:block}
.hist-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--bor)}
.hist-row:last-child{border-bottom:none}
.hist-num{width:26px;height:26px;border-radius:7px;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.2);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:var(--acc);flex-shrink:0}
.hist-info{flex:1;min-width:0}
.hist-val{font-size:13px;font-weight:700;color:var(--txt)}
.hist-date-row{font-size:10px;color:var(--txt3);margin-top:1px}
.hist-marked{font-size:10px;font-weight:600;color:var(--acc);flex-shrink:0;text-align:right}
#modalReport{z-index:210}
.rep-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.rep-month-label{font-size:16px;font-weight:800;color:var(--txt);letter-spacing:-.3px}
.rep-nav-btn{width:34px;height:34px;background:var(--sur2);border:1px solid var(--bor2);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--txt2)}
.rep-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.rep-stat{background:var(--sur2);border:1px solid var(--bor);border-radius:12px;padding:12px 14px}
.rep-stat-lbl{font-size:10px;color:var(--txt3);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.rep-stat-val{font-size:18px;font-weight:800;color:var(--txt)}
.rep-stat-val.green{color:var(--acc)}
.rep-stat-val.amber{color:var(--acc3)}
.rep-plan-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--bor)}
.rep-plan-row:last-child{border-bottom:none}
.rep-plan-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.rep-plan-name{flex:1;font-size:13px;font-weight:600;color:var(--txt);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rep-plan-kz{font-size:12px;font-weight:700;color:var(--acc)}
.rep-compliance-bar{height:6px;background:var(--sur3);border-radius:99px;overflow:hidden;margin:12px 0 6px}
.rep-compliance-fill{height:100%;border-radius:99px;transition:width .6s;background:var(--acc)}
.rep-empty{text-align:center;padding:28px 16px;color:var(--txt3);font-size:13px}
.notif-time-row{display:flex;align-items:center;gap:8px}
.notif-time-input{padding:6px 10px;background:var(--sur2);border:1.5px solid var(--bor2);border-radius:8px;font-family:var(--font);font-size:13px;color:var(--txt);outline:none;width:90px;text-align:center}
#offlineBanner{position:fixed;top:0;left:0;right:0;z-index:99990;background:#F59E0B;color:#1a0f00;font-size:12px;font-weight:700;text-align:center;padding:10px 16px calc(10px + env(safe-area-inset-top,0px));letter-spacing:.2px;transform:translateY(-110%);transition:transform .35s cubic-bezier(.32,.72,0,1);display:flex;align-items:center;justify-content:center;gap:8px}
#offlineBanner.show{transform:translateY(0)}
#installBanner{position:fixed;left:10px;right:10px;top:calc(10px + env(safe-area-inset-top,0px));z-index:99989;background:#13161c;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px 10px 10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 8px 28px rgba(0,0,0,.45);transform:translateY(-140%);opacity:0;transition:transform .35s cubic-bezier(.32,.72,0,1),opacity .3s ease}
#installBanner.show{transform:translateY(0);opacity:1}
.install-banner-info{display:flex;align-items:center;gap:10px;min-width:0}
.install-banner-icon{width:38px;height:38px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--sur2)}
.install-banner-icon img{width:100%;height:100%;object-fit:cover}
.install-banner-text{min-width:0}
.install-banner-title{font-size:13px;font-weight:800;color:#E8C766;letter-spacing:.2px}
.install-banner-sub{font-size:11px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.install-banner-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.install-banner-btn{background:#E8C766;color:#1a1306;border:none;border-radius:10px;padding:9px 16px;font-family:var(--font);font-size:12px;font-weight:800;letter-spacing:.3px;cursor:pointer}
.install-banner-btn:active{transform:scale(.96)}
.install-banner-close{background:transparent;border:none;color:var(--txt3);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.install-banner-close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.3}
#modalCalc .modal-sheet{max-height:85vh;overflow-y:auto}
.calc-row{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.calc-label{font-size:11px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.5px}
.calc-input{background:var(--sur2);border:1.5px solid var(--bor2);border-radius:12px;padding:12px 14px;font-family:var(--font);font-size:16px;color:var(--txt);outline:none;width:100%;box-sizing:border-box;transition:border-color .2s}
.calc-input:focus{border-color:var(--acc)}
.calc-result{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.22);border-radius:16px;padding:20px;text-align:center;margin-top:4px}
.calc-result-val{font-size:28px;font-weight:900;color:var(--acc);letter-spacing:-1px}
.calc-result-lbl{font-size:12px;color:var(--txt3);margin-top:4px}
.calc-freq-row{display:flex;gap:8px;flex-wrap:wrap}
.calc-freq-btn{flex:1;padding:8px 6px;border-radius:10px;font-size:12px;font-weight:700;border:1.5px solid var(--bor2);background:var(--sur2);color:var(--txt3);cursor:pointer;transition:all .15s;font-family:var(--font)}
.calc-freq-btn.active{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.4);color:var(--acc)}
.archive-section{margin:16px 0 0}
.archive-toggle-row{display:flex;align-items:center;gap:8px;padding:10px 18px;cursor:pointer;color:var(--txt3);font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.archive-toggle-row svg{transition:transform .2s}
.archive-toggle-row.open svg{transform:rotate(180deg)}
.archive-body{overflow:hidden;max-height:0;transition:max-height .3s ease}
.archive-body.open{max-height:9999px}
.archive-chip{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.18);color:rgba(245,158,11,.85);font-size:9px;font-weight:700;padding:2px 7px;border-radius:99px;letter-spacing:.3px;text-transform:uppercase}
#confettiCanvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:99999}
.milestone-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.85);background:var(--sur);border:1px solid rgba(16,185,129,.3);border-radius:20px;padding:24px 32px;text-align:center;z-index:99998;opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-shadow:var(--sh-lg)}
.milestone-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.milestone-toast-icon{font-size:40px;margin-bottom:8px}
.milestone-toast-val{font-size:var(--fs-xl);font-weight:900;color:var(--acc)}
.milestone-toast-lbl{font-size:13px;color:var(--txt3);margin-top:4px}
/* WELCOME SPLASH */
#welcomeSplash{position:fixed;inset:0;z-index:99998;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility .4s ease}
#welcomeSplash.show{opacity:1;visibility:visible;pointer-events:auto}
#welcomeSplash.hide{opacity:0;visibility:hidden}
.ws-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%, #0d4a3a 0%, #062e22 45%, #020f09 100%)}
.ws-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:0}
.ws-avatar-ring{width:120px;height:120px;border-radius:50%;padding:4px;background:conic-gradient(from 180deg, rgba(16,185,129,.6) 0deg, rgba(5,150,105,.2) 180deg, rgba(16,185,129,.6) 360deg);box-shadow:0 0 40px rgba(16,185,129,.15);margin-bottom:28px;animation:wsRingSpin 6s linear infinite}
@keyframes wsRingSpin{to{transform:rotate(360deg)}}
.ws-avatar{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#064E3B,#10B981);border:3px solid #020f09;display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:800;color:#fff;overflow:hidden;animation:wsRingSpin 6s linear infinite reverse}
.ws-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.ws-greeting{font-size:14px;color:rgba(255,255,255,.5);font-weight:400;letter-spacing:.5px;margin-bottom:8px}
.ws-name{font-size:28px;font-weight:800;color:#fff;letter-spacing:-.5px;text-align:center;padding:0 24px}
/* Lock screen */
#lockScreen{position:fixed;inset:0;z-index:99997;display:none;flex-direction:column;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top,0px)) 24px 24px;overflow-y:auto;overflow-x:hidden}
#lockScreen.show{display:flex}
.lock-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 25%, #0d4a3a 0%, #062e22 45%, #020f09 100%)}
.lock-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;max-width:320px}
.lock-logo{width:72px;height:72px;margin-bottom:18px;filter:drop-shadow(0 0 18px rgba(16,185,129,.3))}
.lock-logo svg{width:100%;height:100%}
.lock-title{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.3px;margin-bottom:4px}
.lock-sub{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:22px;text-align:center}
.pin-dots{display:flex;gap:14px;justify-content:center;margin-bottom:14px;min-height:16px}
.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.3);transition:all .15s}
.pin-dot.filled{background:#22C55E;border-color:#22C55E;transform:scale(1.05)}
.pin-err{font-size:12px;color:#ff6b6b;min-height:16px;margin-bottom:8px;text-align:center;font-weight:600}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%;max-width:260px}
.pin-key{aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);color:#fff;font-size:24px;font-weight:600;font-family:var(--font);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;user-select:none;-webkit-tap-highlight-color:transparent}
.pin-key:active{background:rgba(16,185,129,.25);transform:scale(.93)}
.pin-key.pin-key-blank{background:none;border:none;cursor:default}
.pin-key.pin-key-action{font-size:14px;font-weight:700;color:rgba(255,255,255,.6)}
.pin-key svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2}
.lock-bio-btn{margin-top:22px;display:flex;align-items:center;gap:8px;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.3);border-radius:99px;color:#22C55E;font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;padding:10px 20px}
.lock-bio-btn svg{width:18px;height:18px}
.lock-logout{margin-top:14px;background:none;border:none;color:rgba(255,255,255,.4);font-family:var(--font);font-size:12px;font-weight:500;cursor:pointer;padding:6px}
/* PIN modal uses dark pad on light/dark via theme vars */
#modalPin .pin-key{background:var(--sur2);border:1px solid var(--bor2);color:var(--txt)}
#modalPin .pin-key:active{background:rgba(16,185,129,.2)}
#modalPin .pin-dot{border-color:var(--bor3)}
#modalPin .pin-dot.filled{background:var(--acc);border-color:var(--acc)}
/* Balance visibility */
.val-mask{filter:blur(8px);user-select:none;transition:filter .25s}
.val-mask:hover{filter:blur(0)}
/* Auth screen theme + biometric btns */
.auth-top-actions{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:16px;display:flex;gap:8px;z-index:2}
.auth-top-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--bor2);background:var(--sur2);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--txt2);transition:all .18s}
.auth-top-btn:hover{background:var(--sur3);color:var(--txt)}
.auth-top-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-lang-row{display:flex;gap:6px;justify-content:center;margin-bottom:var(--sp-5)}
/* Swipe-to-mark feedback */
.plan-card{transition:transform .15s,box-shadow .15s}
.plan-card.swiping-right{background:rgba(16,185,129,.08)!important}
/* Template cards on empty state */
.tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:340px;margin-bottom:20px}
.tpl-card{background:var(--sur2);border:1px solid var(--bor2);border-radius:14px;padding:14px 12px;cursor:pointer;text-align:left;transition:all .18s;position:relative;overflow:hidden}
.tpl-card:hover{border-color:var(--acc);background:rgba(26,155,78,.06);transform:translateY(-2px)}
.tpl-card-icon{font-size:24px;margin-bottom:8px}
.tpl-card-name{font-size:12px;font-weight:700;color:var(--txt);margin-bottom:3px}
.tpl-card-desc{font-size:10px;color:var(--txt3);line-height:1.4}
/* Biometric button */
@media print{body{background:#fff!important;color:#000!important}#app>*:not(#pageDetail){display:none!important}.tab-bar,.fab,.detail-back,.modal-backdrop:not(#modalReport){display:none!important}#modalReport{position:static!important;display:block!important;background:none!important}#modalReport .modal-sheet{box-shadow:none!important;max-height:none!important;border:none!important}#modalReport .btn-cancel,.rep-month-nav button{display:none!important}}
.next-bank-action-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.next-bank-action-row .btn-mark-pill{flex-shrink:0}
.form-row-3{display:grid;grid-template-columns:1fr;gap:9px}
@media(min-width:520px){.form-row-3{grid-template-columns:1fr 1fr}}
.tab-spacer{height:80px;flex-shrink:0}
.insight-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:16px;box-shadow:var(--sh-xs)}
.insight-header{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.insight-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.insight-title{font-size:13px;font-weight:700;color:var(--txt)}
.insight-item{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--bor)}
.insight-item:last-child{border:none;padding-bottom:0}
.insight-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}
.insight-text{font-size:12px;color:var(--txt2);line-height:1.5}
.insight-text strong{color:var(--txt)}
.insight-status{font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;white-space:nowrap;flex-shrink:0;margin-top:1px}
.is-great{background:rgba(16,185,129,.12);color:var(--acc)}
.is-ok{background:rgba(245,158,11,.12);color:var(--acc3)}
.is-warn{background:rgba(239,68,68,.12);color:var(--danger)}
.motiv-history-list{max-height:280px;overflow-y:auto;margin-top:12px}
.motiv-history-item{padding:10px 0;border-bottom:1px solid var(--bor);font-size:12px;color:var(--txt2);line-height:1.5}
.motiv-history-item:last-child{border:none}
.motiv-history-date{font-size:10px;color:var(--txt3);margin-bottom:3px}
.expand-all-btn{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--acc);cursor:pointer;padding:2px 0;background:none;border:none;font-family:var(--font)}
.expand-all-btn:hover{opacity:.8}
.wrow-detail{padding:12px 13px}
.wrow-detail .wnum{width:32px;height:32px;font-size:12px;border-radius:9px}
.wrow-detail .wstatus{font-size:12px}
.wrow-detail .wdate{font-size:11px}
.wrow-detail .wval{font-size:13px}
.hero-total,.hero-stat-val,.detail-saved,.next-amount,.donut-pct,.plan-card-saved,.stat-chip-val,.wk-val,.wk-cumul,.hist-val,.rep-stat-val,.sim-val,.streak-num,.calc-result-val,.milestone-toast-val,.mmc-val{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.serie-card{margin:0 14px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:18px;padding:16px;box-shadow:var(--sh-xs)}
/* ══ ACESSIBILIDADE ══ */
/* Foco visível por teclado (não afeta clique de rato) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,
[tabindex]:focus-visible,[role="tab"]:focus-visible,[role="button"]:focus-visible,[role="switch"]:focus-visible,
.tab-item:focus-visible,.nav-btn:focus-visible,.tab-add:focus-visible,.plan-card:focus-visible,
.bank-select-trigger:focus-visible,.sec-action:focus-visible,.intel-action-btn:focus-visible{
  outline:2.5px solid var(--acc);outline-offset:2px
}
/* Texto-só para leitores de ecrã */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Respeitar preferência de movimento reduzido */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
/* Prevenir zoom automático do iOS Safari em inputs — exige font-size >= 16px */
input,select,textarea{font-size:16px!important;touch-action:manipulation}

/* ── ASSISTENTE DE INVESTIMENTO ── */
.invest-cta{display:block;width:calc(100% - 28px);margin:0 14px 14px;padding:13px;background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;border:none;border-radius:var(--r-sm);font-size:14px;font-weight:700;cursor:pointer;font-family:var(--font);box-shadow:var(--sh-sm)}
.invest-cta:active{transform:scale(.98)}
.inv-steps{display:flex;gap:6px;justify-content:center;margin:4px 0 16px}
.inv-step-dot{width:28px;height:4px;border-radius:99px;background:var(--bor2)}
.inv-step-dot.on{background:var(--acc)}
.inv-step-dot.done{background:var(--acc);opacity:.55}
.inv-chips{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.inv-chip{display:flex;align-items:center;gap:10px;padding:14px 12px;background:var(--sur2);border:1px solid var(--bor2);border-radius:var(--r-sm);color:var(--txt);font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font);text-align:left}
.inv-chip:active{transform:scale(.97);border-color:var(--acc)}
.inv-chip-ic{font-size:20px;line-height:1}
.inv-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.inv-field>span{font-size:12px;font-weight:700;color:var(--txt3)}
.inv-field input{width:100%;padding:12px 14px;background:var(--sur2);border:1px solid var(--bor2);border-radius:var(--r-sm);color:var(--txt);font-family:var(--font);outline:none}
.inv-field input:focus{border-color:var(--acc)}
.inv-risk{display:flex;gap:8px}
.inv-risk-btn{flex:1;padding:11px 4px;background:var(--sur2);border:1px solid var(--bor2);border-radius:var(--r-sm);color:var(--txt2);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font)}
.inv-risk-btn.on{background:var(--acc);border-color:var(--acc);color:#fff}
.inv-bar{display:flex;height:18px;border-radius:99px;overflow:hidden;margin:4px 0 12px;background:var(--sur2)}
.inv-bar>div{height:100%}
.inv-legend{display:flex;flex-direction:column;gap:6px}
.inv-leg-item{font-size:12px;color:var(--txt2);display:flex;align-items:center;gap:7px}
.inv-leg-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}

/* ── Perfil de Investidor ── */
.ip-options{display:flex;flex-direction:column;gap:8px}
.ip-opt{background:var(--sur3);border:1.5px solid var(--bor2);border-radius:12px;padding:14px 16px;font-size:13px;color:var(--txt);cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px;transition:border-color .15s,background .15s}
.ip-opt.on{border-color:var(--acc);background:rgba(71,212,90,.08)}
.ip-sel{border-color:var(--acc)!important;background:rgba(71,212,90,.08)!important}
.ip-horizon-chips{display:flex;gap:6px;flex-wrap:wrap}
.ip-hz-chip{padding:8px 14px;border-radius:20px;border:1.5px solid var(--bor2);background:var(--sur3);font-size:12px;color:var(--txt);cursor:pointer;transition:all .15s}
.ip-hz-chip.on{border-color:var(--acc);background:rgba(71,212,90,.08);color:var(--acc);font-weight:700}

/* ── Tools Grid ── */
.ip-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.ip-tool-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;border-radius:14px;border:1.5px solid var(--bor2);background:var(--sur3);cursor:pointer;transition:border-color .15s}
.ip-tool-btn:active{border-color:var(--acc);transform:scale(.97)}
.ip-tool-ic{font-size:24px}
.ip-tool-lbl{font-size:11px;font-weight:600;color:var(--txt2);text-align:center}

/* ── Simulador de meta ── */
.sim-scenario{border:1.5px solid var(--bor2);border-radius:14px;padding:14px;margin-bottom:10px;background:var(--sur3)}
.sim-scenario.sim-rec{border-color:rgba(59,130,246,.4);background:rgba(59,130,246,.04)}
.sim-scenario-hdr{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.sim-badge{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700}
.sim-rec-badge{padding:2px 8px;border-radius:20px;background:rgba(59,130,246,.15);color:#3b82f6;font-size:10px;font-weight:700;margin-left:auto}
.sim-scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sim-metric-label{font-size:10px;color:var(--txt3);margin-bottom:2px}
.sim-metric-val{font-size:13px;font-weight:700;font-family:var(--font)}
.sim-bar-wrap{height:6px;background:var(--sur3);border-radius:99px;overflow:hidden}
.sim-bar-fill{height:100%;border-radius:99px;transition:width .6s}

/* ── Comparador visual ── */
.comp-card{border:1.5px solid var(--bor2);border-radius:14px;padding:12px;margin-bottom:8px;background:var(--sur3)}
.comp-card-hdr{display:flex;align-items:center;gap:8px}
.comp-metrics{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:8px}
.comp-metric-lbl{font-size:10px;color:var(--txt3);margin-right:6px}
