:root{
  --ink:#07111d;
  --ink-2:#0a1828;
  --ink-3:#0d1e31;
  --ink-4:#122640;
  --line:#183650;
  --line-strong:#265472;
  --text:#f7fbff;
  --text-soft:#c9dff2;
  --muted:#7899b7;
  --accent:#63c6ff;
  --accent-strong:#3db5ff;
  --accent-dim:#102c46;
  --cream:#fffaf4;
  --paper:#fffaf4;
  --paper-2:#f1e8db;
  --paper-text:#17202b;
  --paper-muted:#6f8194;
  --danger:#ff6f70;
  --warning:#ffc857;
  --shadow:0 18px 45px rgba(0,0,0,.22);
  --radius:16px;
  --radius-sm:11px;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color-scheme:dark;
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--ink);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--ink);color:var(--text);font-size:14px;line-height:1.45}
body.finance-app{padding-bottom:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img,svg{max-width:100%}
h1,h2,h3,p{margin-top:0}
h1,h2,h3,strong,b,.section-metric,.auth-number{font-variant-numeric:tabular-nums}
[hidden],.hidden{display:none!important}

.brand{display:inline-flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.025em}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--accent);color:#07111d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.brand-glyph{width:17px;height:17px;display:block}
.app-icon{width:18px;height:18px;display:block;flex:0 0 auto}
.context-label{display:block;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.quiet{color:var(--muted);font-size:.75rem}
.optional{color:var(--muted);font-size:.72rem;font-weight:500}
.center{text-align:center}
.money-positive{color:var(--accent)!important}
.money-negative{color:#ff8a84!important}
.danger-text{color:var(--danger)!important}

/* app shell */
.app-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:var(--ink);padding-top:env(safe-area-inset-top);backdrop-filter:none;-webkit-backdrop-filter:none}
.app-header-inner{height:58px;max-width:1320px;margin:0 auto;padding:0 22px;display:flex;align-items:center;gap:24px}
.desktop-nav{display:flex;align-items:center;gap:4px;min-width:0;flex:1}
.desktop-nav a{color:#87a8c4;font-size:.78rem;font-weight:700;padding:8px 10px;border-radius:8px;white-space:nowrap;transition:background .15s,color .15s}
.desktop-nav a:hover{background:#0c1b2c;color:var(--text)}
.desktop-nav a.active{background:var(--accent-dim);color:#d8f1ff}
.account-strip{display:flex;align-items:center;gap:10px;margin-left:auto;min-width:0}
.account-copy{display:grid;text-align:right;min-width:0}
.account-copy strong{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.account-copy small{font-size:.64rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.account-avatar,.member-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#122640;border:1px solid var(--line-strong);font-size:.74rem;font-weight:800;color:#c7e2f5}
.icon-button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);padding:0}
.icon-button:hover{background:#0e2034;color:var(--text)}
.icon-button.danger{color:var(--danger)}.icon-button.success{color:var(--income)}
.app-content{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:28px 0 72px}
.mobile-nav{display:none}

/* generic page structure */
.page-titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}
.page-titlebar h1{margin:3px 0 3px;font-size:1.9rem;line-height:1.05;letter-spacing:-.045em}
.page-titlebar p{margin:0;color:var(--muted);font-size:.82rem}
.surface{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 0 rgba(255,255,255,.015)}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.section-title h2{margin:2px 0 0;font-size:1rem;letter-spacing:-.02em}
.section-title-link>a{color:var(--accent);font-size:.76rem;font-weight:700}
.section-metric{font-size:.9rem;color:var(--text-soft)}

.btn{min-height:36px;border:1px solid transparent;border-radius:10px;padding:8px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:.79rem;transition:transform .12s,background .12s,border-color .12s,color .12s}
.btn .app-icon{width:16px;height:16px}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--accent);color:#07111d;border-color:#ff8bc4}
.btn-primary:hover{background:#ff75b8}
.btn-secondary{background:#0e2034;color:var(--text);border-color:var(--line-strong)}
.btn-secondary:hover{background:#122640}
.btn-full{width:100%}
.action-btn{border:1px solid var(--line-strong);background:#0d1e31;color:var(--text-soft);border-radius:8px;padding:6px 9px;font-size:.7rem;font-weight:800}
.action-btn:hover{border-color:#6f91ad;color:var(--text)}
.status-tag{display:inline-flex;align-items:center;border:1px solid var(--line);background:#0d1e31;border-radius:999px;padding:5px 8px;color:var(--text-soft);font-size:.68rem;font-weight:700}

/* forms */
.form-stack{display:grid;gap:13px}
.form-stack label{display:grid;gap:6px;color:#a8c5dc;font-size:.73rem;font-weight:700}
.field-grid{display:grid;gap:12px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
input,select,textarea{width:100%;border:1px solid #1b405d;border-radius:9px;background:#07111d;color:var(--text);padding:9px 10px;outline:none;font-size:.82rem;transition:border-color .12s,box-shadow .12s,background .12s}
input,select{min-height:38px}
textarea{resize:vertical;min-height:74px}
input::placeholder,textarea::placeholder{color:#6789a6}
input:focus,select:focus,textarea:focus{border-color:#63c6ff;box-shadow:0 0 0 3px rgba(61,181,255,.13);background:#14081b}
label small{color:var(--muted);font-size:.68rem;font-weight:500}
.money-input,.inline-money{position:relative}
.money-input input{padding-right:42px}
.money-input>span,.inline-money>span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#7899b7;font-size:.72rem;font-weight:800;pointer-events:none}
.money-input-large input{font-size:1.35rem;font-weight:800;min-height:48px;letter-spacing:-.02em}
.amount-label{gap:7px!important}
.inline-money{display:inline-flex}
.inline-money input{width:112px;padding-right:34px}
.form-actions{display:flex;justify-content:flex-end;margin-top:2px}
.notice{border:1px solid #285a78;background:#0c1b2c;color:#a7c3d7;border-radius:10px;padding:10px 12px;font-size:.77rem;line-height:1.55}

/* dashboard */
.daily-budget-card{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);gap:0;border:1px solid #234d6a;border-radius:18px;background:linear-gradient(135deg,#0d1f33,#0a1828 70%);overflow:hidden;margin-bottom:12px}
.daily-budget-main{padding:20px 22px;display:grid;gap:3px}
.daily-budget-main>span,.daily-budget-main>small{color:#89aac6}
.daily-budget-main>span{font-size:.75rem;font-weight:700}
.daily-budget-main>strong{font-size:2.7rem;line-height:1.02;letter-spacing:-.055em;color:#f1f9ff}
.daily-budget-main>small{font-size:.72rem}
.daily-budget-side{border-left:1px solid #173650;display:grid;grid-template-rows:1fr 1fr}
.daily-budget-side>div{padding:15px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px}
.daily-budget-side>div+div{border-top:1px solid #173650}
.daily-budget-side span{color:var(--muted);font-size:.73rem}.daily-budget-side b{font-size:.95rem}
.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px;background:var(--ink-2)}
.metric-cell{padding:14px 16px;display:grid;gap:2px;min-width:0;transition:background .12s}
.metric-cell+.metric-cell{border-left:1px solid var(--line)}
.metric-cell:hover{background:#0c1b2c}
.metric-cell>span,.metric-cell>small{color:var(--muted)}
.metric-cell>span{font-size:.7rem;font-weight:700}.metric-cell>small{font-size:.64rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric-cell>strong{font-size:1.08rem;letter-spacing:-.025em}
.dashboard-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:12px}
.dashboard-grid>.surface{padding:17px 18px}
.flow-list{display:grid;gap:15px}.flow-row{display:grid;gap:7px}.flow-copy{display:flex;justify-content:space-between;gap:12px;font-size:.75rem}.flow-copy span{color:var(--muted)}.flow-copy b{font-size:.76rem}
.meter{height:6px;border-radius:999px;background:#30122f;overflow:hidden}.meter i{display:block;height:100%;border-radius:inherit;background:var(--accent)}

/* data lists */
.data-list{display:grid}
.data-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid #30122f;min-width:0}
.data-row:first-child{border-top:0}
.row-icon{width:30px;height:30px;flex:0 0 30px;border-radius:9px;background:#0e2034;border:1px solid #1b3d59;color:#9dbbd2;display:grid;place-items:center;font-size:.72rem;font-weight:800}
.row-icon .app-icon{width:15px;height:15px}
.row-copy{min-width:0;flex:1;display:grid;gap:2px}.row-copy strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-copy small{color:var(--muted);font-size:.67rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-copy .row-note{white-space:normal;color:#7395b3}
.data-row>b{font-size:.78rem;white-space:nowrap}
.row-actions{display:flex;align-items:center;gap:5px}
.empty-state{padding:16px 2px;color:var(--muted);font-size:.78rem;line-height:1.55}

/* content pages */
.work-grid{display:grid;grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);gap:12px;align-items:start}
.transactions-grid{grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr)}
.form-surface,.list-surface{padding:17px 18px}
.savings-summary{display:grid;grid-template-columns:1.4fr .6fr;border:1px solid var(--line);border-radius:14px;background:var(--ink-2);margin-bottom:12px;overflow:hidden}
.savings-summary>div{padding:15px 18px;display:grid;gap:2px}.savings-summary>div+div{border-left:1px solid var(--line)}.savings-summary span,.savings-summary small{color:var(--muted);font-size:.7rem}.savings-summary strong{font-size:1.25rem}
.goal-list{display:grid}.goal-row{padding:14px 0;border-top:1px solid #30122f}.goal-row:first-child{border-top:0}.goal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:9px}.goal-head>div{min-width:0;display:grid;gap:3px}.goal-head strong{font-size:.8rem}.goal-head small{font-size:.67rem;color:var(--muted)}.goal-head>b{font-size:.78rem;color:var(--accent)}.goal-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.inline-form{display:flex;align-items:center;gap:6px}
.pending-list{display:grid;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.pending-list>div{display:flex;justify-content:space-between;gap:12px;font-size:.72rem}.pending-list small{color:var(--muted)}

/* settings */
.settings-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:12px;align-items:start}
.settings-main{padding:18px}
.settings-side{display:grid;gap:12px}
.preference-card,.account-card{padding:16px}
.preference-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.preference-row>div{display:grid;gap:3px}.preference-row strong{font-size:.8rem}
.segmented{display:inline-flex;align-items:center;gap:2px;border:1px solid #d6e7f5;background:#f7fbff;border-radius:9px;padding:2px;color:#5f7f9d}
.segmented button{border:0;background:transparent;color:inherit;border-radius:7px;padding:5px 8px;font-size:.68rem;font-weight:800;min-width:34px}
.segmented button.active{background:#0e2034;color:#fff1f7}
.account-card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.account-card-head>div:last-child{display:grid;gap:1px;min-width:0}.account-card-head strong{font-size:.8rem}.account-card-head small{color:var(--muted);font-size:.67rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* more */
.more-list{display:grid;max-width:760px;overflow:hidden}.more-list>a{display:grid;grid-template-columns:30px 1fr 18px;align-items:center;gap:11px;padding:13px 15px;border-top:1px solid var(--line)}.more-list>a:first-child{border-top:0}.more-list>a:hover{background:#0c1a2b}.more-list>a>div{display:grid;gap:2px}.more-list strong{font-size:.78rem}.more-list small{font-size:.67rem;color:var(--muted)}.more-list>a>b{color:var(--muted)}.more-list>a>b .app-icon{width:15px;height:15px}

/* setup */
.setup-shell{width:min(1050px,calc(100% - 36px));margin:0 auto;padding:24px 0 56px}
.setup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:42px}
.setup-intro{max-width:620px;margin-bottom:18px}.setup-intro h1{font-size:2rem;letter-spacing:-.045em;margin:4px 0 6px}.setup-intro p{margin:0;color:var(--muted);font-size:.82rem}
.setup-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.5fr);gap:12px;align-items:start}
.setup-form{padding:18px}.setup-section{padding:18px 0;border-top:1px solid var(--line)}.setup-section:first-child{padding-top:0;border-top:0}.setup-step{display:flex;gap:12px;align-items:flex-start;margin-bottom:13px}.setup-step>span{font-size:.68rem;font-weight:900;color:var(--accent);padding-top:3px}.setup-step h2{font-size:.94rem;margin:0 0 2px}.setup-step p{margin:0;color:var(--muted);font-size:.72rem}
.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.choice{position:relative;border:1px solid #1a3a55;border-radius:10px;padding:11px;background:#0a1828;cursor:pointer}.choice input{position:absolute;opacity:0;pointer-events:none}.choice>span{display:grid;gap:3px}.choice strong{font-size:.76rem}.choice small{color:var(--muted);font-size:.65rem;line-height:1.4}.choice:has(input:checked){border-color:#63c6ff;background:#10253b;box-shadow:0 0 0 1px rgba(99,198,255,.14)}
.setup-aside{border-left:1px solid var(--line);padding:16px 0 16px 20px;position:sticky;top:82px}.setup-aside h3{font-size:.95rem;margin:5px 0 10px}.setup-aside ul{margin:0;padding-left:18px;color:var(--muted);font-size:.72rem;line-height:1.7}

/* marketing / public */
.public-content{min-height:100vh}
.marketing-shell{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:22px 0 60px}
.marketing-header{height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.marketing-actions{display:flex;align-items:center;gap:8px}.marketing-actions .segmented{background:#1e0d25;border-color:#193751;color:#9cbad2}.marketing-actions .segmented button.active{background:var(--accent);color:#07111d}
.marketing-grid{min-height:calc(100vh - 112px);display:grid;grid-template-columns:1fr .72fr;gap:70px;align-items:center}
.marketing-copy h1{font-size:clamp(3rem,6vw,5.4rem);line-height:.94;letter-spacing:-.075em;max-width:720px;margin:8px 0 18px}.marketing-copy p{max-width:590px;color:var(--muted);font-size:1rem;line-height:1.7;margin-bottom:22px}.hero-actions{display:flex;align-items:center;gap:14px}.text-action{font-size:.77rem;color:#a8c5d9}.text-action:hover{color:var(--text)}
.marketing-preview{background:var(--paper);color:var(--paper-text);border-radius:22px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.25);transform:rotate(-1deg)}.preview-label{color:var(--paper-muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.marketing-preview>strong{display:block;font-size:3.4rem;letter-spacing:-.06em;margin:4px 0 18px}.preview-rule{height:1px;background:#e2eff9;margin-bottom:4px}.preview-row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #edf6fc;font-size:.78rem}.preview-row span{color:var(--paper-muted)}

/* auth */
.auth-page{min-height:100vh;display:grid;place-items:center;padding:26px;background:#09040d}
.auth-frame{width:min(980px,100%);min-height:590px;display:grid;grid-template-columns:.86fr 1.14fr;border-radius:24px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.34);border:1px solid #10283e}
.auth-data-panel{background:#14081b;color:var(--text);padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;position:relative;overflow:hidden}.auth-data-panel::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(99,198,255,.14),transparent 65%);right:-130px;bottom:-130px}.auth-dark-brand{position:relative;z-index:1}.auth-data-copy{position:relative;z-index:1;display:grid;gap:8px}.auth-data-copy h2{font-size:1.55rem;letter-spacing:-.04em;margin:0}.auth-number{font-size:3.5rem;letter-spacing:-.06em;color:#fff1f7}.auth-data-list{margin-top:12px;border-top:1px solid #183650}.auth-data-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #183650;font-size:.74rem}.auth-data-list span{color:var(--muted)}.auth-data-list b{font-size:.74rem}.auth-data-panel>small{position:relative;z-index:1;color:#6f91ad;line-height:1.55;font-size:.68rem}.feature-list b{color:var(--accent);font-weight:700}
.auth-form-panel{background:var(--paper);color:var(--paper-text);padding:30px 34px;display:flex;flex-direction:column;justify-content:center}.auth-utility{display:flex;justify-content:flex-end;margin-bottom:30px}.auth-segmented{background:#f3f8fc;border-color:#d7e4ef}.auth-form-copy{margin-bottom:20px}.auth-form-copy .context-label{color:#6f91ad}.auth-form-copy h1{font-size:2rem;letter-spacing:-.05em;margin:4px 0 6px}.auth-form-copy p{margin:0;color:var(--paper-muted);font-size:.8rem;line-height:1.55}.auth-form label{color:#6f91ad}.auth-form input{background:#fff;border-color:#ccdce9;color:#17202b}.auth-form input:focus{background:#fff;border-color:#63c6ff;box-shadow:0 0 0 3px rgba(61,181,255,.18)}.auth-form-meta{display:flex;justify-content:flex-end;margin-top:-2px}.auth-form-meta a,.auth-switch a,.back-link{color:#377aa8;font-size:.73rem;font-weight:700}.auth-switch{margin:18px 0 0;color:#6c879f;font-size:.73rem}.auth-switch a:hover,.auth-form-meta a:hover,.back-link:hover{text-decoration:underline}
.auth-page-simple{background:#09040d}.auth-simple-card{width:min(430px,100%);background:var(--paper);color:var(--paper-text);border-radius:22px;padding:26px;box-shadow:0 28px 80px rgba(0,0,0,.32)}.auth-simple-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.auth-simple-card .brand-mark{background:#0a1828;color:var(--accent)}.auth-simple-card .form-stack label{color:#6f91ad}.auth-simple-card input{background:#fff;border-color:#ccdce9;color:#17202b}.auth-simple-card input:focus{background:#fff;border-color:#63c6ff;box-shadow:0 0 0 3px rgba(61,181,255,.18)}.back-link{display:inline-block;margin-top:16px}.verify-card .btn-secondary{background:#fff;border-color:#dce7f0;color:#182330}.verify-icon{width:46px;height:46px;margin:0 auto 14px;display:grid;place-items:center;border-radius:14px;background:#e4f3ff;color:#377aa8}.verify-icon .app-icon{width:21px;height:21px}.error-card .btn{margin-top:6px}

/* toast */
.toast{position:fixed;z-index:100;left:50%;top:18px;transform:translateX(-50%);max-width:min(520px,calc(100% - 28px));border:1px solid var(--line-strong);background:#0e2034;color:var(--text);border-radius:10px;padding:10px 13px;font-size:.75rem;font-weight:700;box-shadow:var(--shadow);transition:opacity .2s,transform .2s}.toast.success{border-color:#2c668c}.toast.error{border-color:#7b3036;color:#ffd9d7}

@media(max-width:1120px){
  .desktop-nav{gap:1px}.desktop-nav a{padding:8px 7px;font-size:.72rem}.account-copy{display:none}
}

@media(max-width:900px){
  .app-header-inner{height:54px;padding:0 16px}.desktop-nav{display:none}.account-strip{gap:6px}.account-avatar{width:28px;height:28px}
  .app-content{width:min(100% - 28px,760px);padding:20px 0 calc(84px + env(safe-area-inset-bottom))}
  .mobile-nav{position:fixed;z-index:60;left:12px;right:12px;bottom:calc(9px + env(safe-area-inset-bottom));height:62px;border:1px solid #1a3e5a;border-radius:16px;background:#0a1828;display:grid;grid-template-columns:repeat(5,1fr);box-shadow:0 16px 40px rgba(0,0,0,.34);padding:5px}
  .mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:11px;color:#6f91ad}.mobile-nav a.active{background:#10263c;color:#dff3ff}.mobile-nav span{display:grid;place-items:center}.mobile-nav .app-icon{width:18px;height:18px}.mobile-nav small{font-size:.58rem;font-weight:800}.mobile-nav .mobile-add{background:var(--accent);color:#07111d;margin:-9px 5px 2px}.mobile-nav .mobile-add .app-icon{width:22px;height:22px}
  .page-titlebar{align-items:center}.page-titlebar h1{font-size:1.65rem}
  .daily-budget-card{grid-template-columns:1fr}.daily-budget-side{border-left:0;border-top:1px solid #173650;grid-template-columns:1fr 1fr;grid-template-rows:none}.daily-budget-side>div+div{border-top:0;border-left:1px solid #173650}.daily-budget-main>strong{font-size:2.35rem}
  .metric-strip{grid-template-columns:repeat(2,1fr)}.metric-cell:nth-child(3){border-left:0;border-top:1px solid var(--line)}.metric-cell:nth-child(4){border-top:1px solid var(--line)}
  .dashboard-grid,.work-grid,.transactions-grid,.settings-layout,.setup-layout{grid-template-columns:1fr}.setup-aside{position:static;border-left:0;border-top:1px solid var(--line);padding:15px 0 0}
  .marketing-grid{grid-template-columns:1fr;gap:36px;padding-top:50px}.marketing-preview{max-width:420px;transform:none}
  .auth-frame{grid-template-columns:1fr;max-width:560px}.auth-data-panel{display:none}.auth-form-panel{padding:28px;min-height:560px}
}

@media(max-width:600px){
  body{font-size:13px}.app-content{width:calc(100% - 24px);padding-top:16px}.app-header-inner{padding:0 12px}.brand span:last-child{font-size:.9rem}.brand-mark{width:28px;height:28px}.brand-glyph{width:16px;height:16px}
  .page-titlebar{margin-bottom:14px}.page-titlebar h1{font-size:1.48rem}.page-titlebar p{font-size:.72rem}.page-titlebar .btn{padding:7px 10px}.page-titlebar .btn span{display:none}
  .daily-budget-main{padding:17px}.daily-budget-main>strong{font-size:2.15rem}.daily-budget-side>div{padding:12px}.metric-cell{padding:12px}.metric-cell>strong{font-size:1rem}.metric-cell>small{display:none}
  .dashboard-grid>.surface,.form-surface,.list-surface,.settings-main,.preference-card,.account-card{padding:14px}.section-title{margin-bottom:11px}.section-title h2{font-size:.9rem}.surface{border-radius:13px}
  .field-grid.two{grid-template-columns:1fr}.data-row{gap:8px;padding:10px 0}.row-icon{width:28px;height:28px;flex-basis:28px}.row-copy strong{font-size:.75rem}.data-row>b{font-size:.74rem}.row-actions{gap:2px}
  .savings-summary{grid-template-columns:1fr 1fr}.savings-summary>div{padding:12px}.savings-summary strong{font-size:1.05rem}.goal-actions{align-items:flex-end}.inline-form{flex:1}.inline-money{flex:1}.inline-money input{width:100%}
  .settings-side{gap:10px}.preference-row{align-items:center}.segmented button{padding:5px 7px}
  .setup-shell{width:calc(100% - 24px);padding-top:16px}.setup-header{margin-bottom:28px}.setup-intro h1{font-size:1.65rem}.setup-form{padding:14px}.setup-section{padding:15px 0}.choice-grid{grid-template-columns:1fr}.choice{padding:10px}
  .marketing-shell{width:calc(100% - 28px);padding-top:14px}.marketing-header{height:auto}.marketing-actions .btn{display:none}.marketing-grid{min-height:auto;padding:72px 0 32px}.marketing-copy h1{font-size:3.1rem}.marketing-copy p{font-size:.88rem}.marketing-preview{padding:18px}.marketing-preview>strong{font-size:2.8rem}.hero-actions{align-items:flex-start;flex-direction:column}
  .auth-page{padding:12px}.auth-frame{min-height:0;border-radius:18px}.auth-form-panel{min-height:calc(100vh - 24px);padding:22px 18px;justify-content:flex-start}.auth-utility{margin-bottom:54px}.auth-form-copy h1{font-size:1.8rem}.auth-simple-card{border-radius:18px;padding:20px}.auth-simple-top{margin-bottom:44px}
}
.preference-card .segmented,.setup-header .segmented{background:#081420;border-color:#1a3e5a;color:#7899b7}
.preference-card .segmented button.active,.setup-header .segmented button.active{background:var(--accent);color:#07111d}
.metric-positive strong{color:var(--accent)}
.compact-list .data-row{padding:9px 0}
.transaction-line{min-height:48px}
.language-control{margin:0}

/* 0.2.1 iOS header clarity */
@media(max-width:900px){.app-header{background:#07111d;padding-top:env(safe-area-inset-top);backdrop-filter:none;-webkit-backdrop-filter:none}.app-header-inner{background:#07111d}.app-content{position:relative;z-index:1}}

/* 0.2.2 persistent sign-in */
.auth-form-options{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:-2px}.auth-form-options>a{color:#377aa8;font-size:.73rem;font-weight:700}.auth-form-options>a:hover{text-decoration:underline}.remember-option{display:inline-flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;color:#62839f!important;font-size:.72rem!important;font-weight:650!important;cursor:pointer}.remember-option input{appearance:none;-webkit-appearance:none;width:16px;height:16px;min-height:0;margin:0;padding:0;border:1px solid #bad1e2;border-radius:5px;background:#fff;display:grid;place-items:center;cursor:pointer}.remember-option input::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);margin-top:-2px;transition:transform .1s ease}.remember-option input:checked{background:var(--accent);border-color:var(--accent-strong)}.remember-option input:checked::after{transform:rotate(-45deg) scale(1)}.remember-option input:focus-visible{outline:3px solid rgba(61,181,255,.20);outline-offset:2px}
@media(max-width:600px){.auth-form-options{align-items:flex-start;gap:10px}.remember-option{font-size:.7rem!important}}

/* 0.2.3 household invitation flow */
.invitation-public{background:#09040d}.invitation-card{width:min(470px,100%)}.invite-badge{width:48px;height:48px;margin:0 auto 16px;border-radius:14px;display:grid;place-items:center;background:#e1f4ff;color:#377aa8}.invite-badge .app-icon{width:22px;height:22px}.invite-summary{display:grid;gap:0;border:1px solid #c7dcea;border-radius:12px;background:#fff;margin:18px 0}.invite-summary>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 12px}.invite-summary>div+div{border-top:1px solid #e9f3fa}.invite-summary span{color:#6f91ad;font-size:.7rem}.invite-summary strong{color:#122b42;font-size:.73rem;text-align:right;overflow-wrap:anywhere}.invite-help{color:#6f8194;font-size:.76rem;line-height:1.6;margin:0 0 16px}.invitation-inapp{max-width:680px;padding:20px}.invitation-inapp .invite-badge{margin:0 0 16px;background:var(--accent-dim);color:#e7f6ff;border:1px solid #214b68}.invitation-inapp .invite-summary{background:#0a1828;border-color:var(--line);margin:0 0 16px}.invitation-inapp .invite-summary>div+div{border-color:var(--line)}.invitation-inapp .invite-summary span{color:var(--muted)}.invitation-inapp .invite-summary strong{color:var(--text)}.invite-actions{display:flex;gap:8px;align-items:center;margin-top:16px}.leave-household-surface{margin-top:12px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.leave-household-surface h2{font-size:.92rem;margin:2px 0 4px}.leave-household-surface p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.5}
@media(max-width:600px){.invitation-inapp{padding:14px}.invite-summary>div{align-items:flex-start;flex-direction:column;gap:4px}.invite-summary strong{text-align:left}.invite-actions{display:grid;grid-template-columns:1fr}.leave-household-surface{align-items:flex-start;flex-direction:column}.leave-household-surface form,.leave-household-surface .btn{width:100%}}

/* 0.2.4 finance behavior additions */
.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-help{margin:0;color:var(--muted);font-size:.68rem;line-height:1.55}
.check-row{display:flex!important;align-items:flex-start;gap:10px!important;border:1px solid var(--line);background:#14081b;border-radius:10px;padding:10px 11px;cursor:pointer}.check-row input{appearance:none;-webkit-appearance:none;width:17px;height:17px;min-height:0;margin:1px 0 0;padding:0;border:1px solid #2a5c77;border-radius:5px;background:#0e0613;display:grid;place-items:center;flex:0 0 17px}.check-row input::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);margin-top:-2px}.check-row input:checked{background:var(--accent);border-color:var(--accent)}.check-row input:checked::after{transform:rotate(-45deg) scale(1)}.check-row>span{display:grid;gap:3px}.check-row strong{font-size:.75rem}.check-row small{font-size:.65rem;color:var(--muted);line-height:1.45}
.salary-grid{margin-bottom:12px}.salary-row{align-items:center}.salary-edit-form{display:flex;align-items:center;gap:6px;margin-left:auto}.salary-edit-form .inline-money input{width:118px}.recurring-income-surface{padding:17px 18px}.recurring-income-layout{display:grid;grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr);gap:20px}.compact-income-form{display:grid;grid-template-columns:1fr 150px auto auto;align-items:end;gap:8px}.compact-income-form label{margin:0}
.notification-row{align-items:flex-start}.notification-row>div{display:grid;gap:3px}.notification-row small{color:var(--muted);font-size:.66rem;line-height:1.45;max-width:280px}.notification-card [data-push-status]:empty{display:none}.notification-card [data-push-status]{margin-top:10px}
@media(max-width:900px){.field-grid.three{grid-template-columns:1fr 1fr}.recurring-income-layout{grid-template-columns:1fr}.compact-income-form{grid-template-columns:1fr 1fr}.salary-edit-form{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:600px){.field-grid.three{grid-template-columns:1fr}.compact-income-form{grid-template-columns:1fr}.salary-row{align-items:flex-start;flex-wrap:wrap}.salary-edit-form{width:100%;margin-left:39px;justify-content:flex-start}.salary-edit-form .inline-money{flex:1}.salary-edit-form .inline-money input{width:100%}.notification-row{display:grid!important}.notification-row .btn{justify-self:start}}

/* 0.2.5 start-later, positive transactions, charts and faster live activity */
:root{--chart-empty:#30122f;--chart-expense:#ff746d;--chart-income:#ffc857}
.start-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.setup-salary-fields{margin-top:12px}.setup-saving-field{max-width:320px;margin-top:12px}.setup-saving-field>label{display:grid;gap:6px;color:#a8c5dc;font-size:.73rem;font-weight:700}.setup-salary-fields[hidden]{display:none!important}
.start-later-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #24526e;background:linear-gradient(120deg,#0f2237,#0a1929);border-radius:14px;padding:14px 16px;margin-bottom:12px}.start-later-banner[hidden]{display:none!important}.start-later-banner>div{display:grid;gap:3px}.start-later-banner h2{font-size:.9rem;margin:0}.start-later-banner p{margin:0;color:var(--muted);font-size:.7rem;line-height:1.5;max-width:720px}.daily-budget-card.is-pending{border-color:#1b405d;background:#091724}.daily-budget-card.is-pending .daily-budget-main>strong,.daily-budget-card.is-pending .daily-budget-side b{color:#a2c0d6}.salary-start-notice{display:grid;gap:3px}.salary-start-notice strong{font-size:.74rem}.salary-start-notice span{color:var(--muted);font-size:.67rem}
.transaction-kind{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#0e0613;border:1px solid #1a3c57;border-radius:10px}.transaction-kind label{display:block!important;position:relative;cursor:pointer}.transaction-kind input{position:absolute;opacity:0;pointer-events:none}.transaction-kind span{display:flex;align-items:center;justify-content:center;min-height:34px;border-radius:7px;color:#7f9fba;font-size:.72rem;font-weight:800}.transaction-kind label:has(input:checked) span{background:#102c46;color:#f1f9ff;box-shadow:inset 0 0 0 1px #285979}.row-icon-positive{color:#dff5ff;background:#10283f;border-color:#24516d}.data-row .money-positive{white-space:nowrap}
.analytics-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:12px;margin:12px 0}.chart-surface{padding:16px 17px;min-width:0}.chart-legend{display:flex;gap:14px;align-items:center;margin:-3px 0 6px;color:var(--muted);font-size:.64rem}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend i{width:8px;height:8px;border-radius:2px}.legend-expense{background:var(--chart-expense)}.legend-income{background:var(--chart-income)}.trend-chart{width:100%;height:210px;overflow:hidden}.trend-chart svg{display:block;width:100%;height:100%}.chart-grid-line{stroke:#3a173c;stroke-width:1}.chart-bar-expense{fill:var(--chart-expense);opacity:.9}.chart-bar-income{fill:var(--chart-income);opacity:.95}.chart-axis-label{fill:#7292ad;font-size:10px;font-family:inherit}.chart-stat-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:4px}.chart-stat-strip>div{display:grid;gap:3px;padding:10px 10px 0}.chart-stat-strip>div:first-child{padding-left:0}.chart-stat-strip>div+div{border-left:1px solid var(--line)}.chart-stat-strip span{color:var(--muted);font-size:.62rem}.chart-stat-strip b{font-size:.76rem}.category-chart-layout{display:grid;grid-template-columns:145px 1fr;gap:18px;align-items:center;min-height:238px}.donut-wrap{display:grid;place-items:center}.donut-chart{width:132px;height:132px;border-radius:50%;background:var(--chart-empty);position:relative;display:grid;place-items:center}.donut-chart::after{content:"";position:absolute;inset:22px;border-radius:50%;background:var(--ink-2);border:1px solid #3a173c}.donut-chart>div{position:relative;z-index:1;display:grid;text-align:center;gap:1px;width:74px;max-width:74px;overflow:visible}.donut-chart strong{font-size:.82rem;line-height:1.05;white-space:nowrap;display:block;max-width:100%;transform-origin:center center}.donut-chart span{font-size:.6rem;color:var(--muted)}.category-legend{display:grid;gap:0;min-width:0}.category-legend>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid #102a41;font-size:.68rem}.category-legend>div:first-child{border-top:0}.category-legend span{display:flex;align-items:center;gap:7px;min-width:0;color:#a9c6dc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-legend i{width:8px;height:8px;flex:0 0 8px;border-radius:2px}.category-legend b{font-size:.67rem;white-space:nowrap}.compact-empty{padding:8px 0;text-align:left}.dashboard-lower-grid{margin-top:0}
[data-live-indicator]{position:relative;padding-left:12px}[data-live-indicator]::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;border-radius:50%;transform:translateY(-50%);background:var(--accent);box-shadow:0 0 0 3px rgba(99,198,255,.12)}
@media(max-width:900px){.analytics-grid{grid-template-columns:1fr}.category-chart-layout{grid-template-columns:160px 1fr}.start-later-banner{align-items:flex-start}}
@media(max-width:600px){.start-choice-grid{grid-template-columns:1fr}.setup-saving-field{max-width:none}.start-later-banner{flex-direction:column;padding:13px}.start-later-banner .btn{width:100%}.analytics-grid{gap:10px}.chart-surface{padding:13px}.trend-chart{height:185px}.chart-stat-strip{grid-template-columns:1fr}.chart-stat-strip>div{padding:8px 0}.chart-stat-strip>div+div{border-left:0;border-top:1px solid var(--line)}.category-chart-layout{grid-template-columns:116px 1fr;gap:12px;min-height:190px}.donut-chart{width:105px;height:105px}.donut-chart::after{inset:17px}.donut-chart>div{width:59px;max-width:59px}.category-legend>div{padding:6px 0}.transaction-kind span{min-height:32px}.data-row.transaction-line{align-items:flex-start;flex-wrap:wrap}.data-row.transaction-line form{margin-left:auto}.data-row.transaction-line>b{margin-left:auto}}


/* 0.2.8 — balanced midnight identity with semantic multicolor accents */
:root{
  --accent:#63c6ff;
  --accent-strong:#3db5ff;
  --accent-dim:#102b45;
  --warm:#ffc857;
  --coral:#ff756d;
  --violet:#a994ff;
  --focus-ring:rgba(99,198,255,.18);
}
::selection{background:#63c6ff;color:#07111d}
body{background:
  radial-gradient(circle at 92% -12%,rgba(99,198,255,.10),transparent 28rem),
  radial-gradient(circle at -10% 72%,rgba(255,118,87,.055),transparent 31rem),
  var(--ink)}
.app-header{background:#07111d;border-bottom-color:#112d46}
.desktop-nav a{color:#83a7c3}
.desktop-nav a:hover{background:#0b1b2d;color:#f7fbff}
.desktop-nav a.active{background:#10283e;color:#dff4ff;box-shadow:inset 0 0 0 1px #26566f}
.brand-mark{background:linear-gradient(135deg,#63c6ff,#ff756d);color:#07111d;box-shadow:0 8px 24px rgba(99,198,255,.18),inset 0 0 0 1px rgba(255,255,255,.16)}
.btn-primary{background:linear-gradient(135deg,#63c6ff,#ff756d);color:#180713;border-color:#9bdcff;box-shadow:0 8px 22px rgba(99,198,255,.12)}
.btn-primary:hover{background:linear-gradient(135deg,#80d1ff,#ffc857);box-shadow:0 10px 28px rgba(99,198,255,.20)}
.btn-secondary{background:#0d1e31;border-color:#204961}.btn-secondary:hover{background:#10243a;border-color:#306987}
input:focus,select:focus,textarea:focus{border-color:#63c6ff;box-shadow:0 0 0 3px var(--focus-ring);background:#16091d}
.money-positive{color:#ffd166!important}
.meter i{background:linear-gradient(90deg,#63c6ff,#a994ff)}
.daily-budget-card{border-color:#244e68;background:linear-gradient(135deg,#0c1c2e,#07111d 72%)}
.daily-budget-main>strong{color:#f1f9ff}
.row-icon-positive{color:#dff4ff;background:#10283f;border-color:#2b607d}
.transaction-kind label:has(input:checked) span{background:#112940;color:#e7f6ff;box-shadow:inset 0 0 0 1px #316d8d}
[data-live-indicator]::before{background:#63c6ff;box-shadow:0 0 0 3px rgba(99,198,255,.14);animation:livePulse 1.8s ease-in-out infinite}

.site-footer{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:18px 0 32px;border-top:1px solid #102a42;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#7898b3}
.site-footer-app{padding-bottom:34px}.site-footer-brand{display:flex;align-items:center;gap:10px;min-width:0}.site-footer-brand>div{display:grid;gap:2px}.site-footer-brand strong{color:#e4f1fa;font-size:.72rem}.site-footer-brand small{font-size:.62rem}.footer-brand-mark{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(135deg,#63c6ff,#ff756d);color:#07111d}.footer-brand-mark .brand-glyph{width:14px;height:14px}.site-footer-links{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;font-size:.66rem}.site-footer-links a{color:#8aacc7;transition:color .15s,transform .15s}.site-footer-links a:hover{color:#f5fbff;transform:translateY(-1px)}.site-footer-links span{padding:4px 7px;border:1px solid #1c405b;border-radius:999px;color:#9fbcd3;background:#0a1828}

.cookie-notice{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:90;width:min(720px,calc(100% - 28px));transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px 13px 16px;background:#f7fbff;color:#17202b;border:1px solid #bfdcf1;border-radius:14px;box-shadow:0 22px 70px rgba(15,2,10,.42);animation:cookieIn .38s cubic-bezier(.2,.8,.2,1) both}.cookie-notice[hidden]{display:none}.cookie-notice-copy{display:grid;gap:3px}.cookie-notice-copy strong{font-size:.76rem}.cookie-notice-copy p{margin:0;color:#607991;font-size:.67rem;line-height:1.45}.cookie-notice-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.cookie-notice-actions>a{font-size:.68rem;font-weight:800;color:#3b78a1}.cookie-notice .btn{min-height:32px;padding:6px 11px}

.legal-shell{width:min(900px,100%);margin:0 auto}.legal-heading{margin-bottom:18px}.legal-heading h1{font-size:clamp(1.75rem,5vw,2.55rem);letter-spacing:-.05em;margin:5px 0 6px}.legal-heading>p{margin:0;color:var(--muted);font-size:.78rem}.legal-document{padding:clamp(20px,4vw,34px);line-height:1.72}.legal-document h2{font-size:1rem;margin:28px 0 8px;color:#f7fbff}.legal-document h2:first-child{margin-top:0}.legal-document p{color:#91b0c8;font-size:.78rem;margin:0 0 12px}.legal-document strong{color:#dff4ff}.contact-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:12px}.contact-form-card,.contact-aside{padding:20px}.contact-form-card textarea{min-height:170px}.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.contact-aside{display:flex;flex-direction:column;align-items:flex-start;min-height:300px;background:linear-gradient(145deg,#0a1828,#07111d)}.contact-aside h2{font-size:1.35rem;margin:18px 0 8px}.contact-aside p{color:#85a7c1;font-size:.76rem;line-height:1.6}.contact-brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#63c6ff,#ff756d);color:#091725;box-shadow:0 12px 35px rgba(99,198,255,.2)}.contact-brand-mark .brand-glyph{width:22px;height:22px}.contact-meta{margin-top:auto;display:grid;gap:4px;color:#688aa6;font-size:.65rem}

.route-loader{position:fixed;inset:0;z-index:120;background:rgba(11,6,16,.76);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .16s}.route-loader[hidden]{display:none}.route-loader.active{opacity:1;pointer-events:auto}.route-loader-pill{display:flex;align-items:center;gap:13px;padding:11px 15px;border:1px solid #24516c;border-radius:16px;background:#16091d;box-shadow:0 18px 60px rgba(0,0,0,.34)}.route-loader-brand{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#63c6ff,#ff756d);color:#07111d}.route-loader-brand .brand-glyph{width:16px;height:16px}.route-loader-dots{display:flex;gap:5px}.route-loader-dots i{width:6px;height:6px;border-radius:999px;background:#a994ff;animation:routeDot .8s ease-in-out infinite}.route-loader-dots i:nth-child(2){animation-delay:.12s}.route-loader-dots i:nth-child(3){animation-delay:.24s}

.app-content,.public-content{animation:pageEnter .32s cubic-bezier(.2,.8,.2,1) both}.data-row.row-enter{animation:rowEnter .28s cubic-bezier(.2,.8,.2,1) both}.value-pop{animation:valuePop .32s ease both}.chart-bar-expense,.chart-bar-income{transform-box:fill-box;transform-origin:center bottom;animation:chartRise .45s cubic-bezier(.2,.8,.2,1) both}.donut-chart{animation:chartReveal .42s cubic-bezier(.2,.8,.2,1) both}.surface{transition:border-color .18s,transform .18s,box-shadow .18s}.surface:hover{border-color:#1b3e59}.btn:active,.icon-button:active,.action-btn:active{transform:scale(.97)}[data-submit-loading].is-submitting button[type="submit"]{position:relative;color:transparent!important;pointer-events:none}[data-submit-loading].is-submitting button[type="submit"]::after{content:"";position:absolute;width:14px;height:14px;border:2px solid rgba(24,7,19,.28);border-top-color:#180713;border-radius:50%;animation:spin .7s linear infinite}

@keyframes pageEnter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes rowEnter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes valuePop{0%{transform:translateY(0)}45%{transform:translateY(-2px);color:#ffd166}100%{transform:none}}
@keyframes chartRise{from{transform:scaleY(.05);opacity:.2}to{transform:scaleY(1);opacity:1}}
@keyframes chartReveal{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes routeDot{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-4px);opacity:1}}
@keyframes cookieIn{from{opacity:0;transform:translate(-50%,12px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes livePulse{0%,100%{transform:translateY(-50%) scale(1);opacity:.75}50%{transform:translateY(-50%) scale(1.22);opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:760px){.contact-layout{grid-template-columns:1fr}.contact-aside{min-height:210px}.site-footer{align-items:flex-start;flex-direction:column}.site-footer-links{justify-content:flex-start}.cookie-notice{align-items:stretch;flex-direction:column;gap:10px}.cookie-notice-actions{justify-content:space-between}.site-footer-app{padding-bottom:108px}}
@media(max-width:600px){.site-footer{width:min(100% - 24px,1240px);padding-top:16px}.legal-document{border-radius:14px}.contact-form-card,.contact-aside{padding:15px}.cookie-notice{bottom:calc(88px + env(safe-area-inset-bottom))}.finance-public .cookie-notice{bottom:max(14px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.app-content,.public-content,.data-row.row-enter,.value-pop,.chart-bar-expense,.chart-bar-income,.donut-chart,.route-loader-dots i,[data-live-indicator]::before,.cookie-notice{animation:none!important}.surface,.btn,.site-footer-links a{transition:none!important}}


/* 0.2.8 semantic color system — color supports meaning, never floods the whole UI */
:root{
  --sky:#63c6ff;
  --sky-strong:#3db5ff;
  --amber:#ffc857;
  --coral:#ff756d;
  --lavender:#a994ff;
  --ice:#b9e8ff;
  --peach:#ff9d72;
  --focus-ring:rgba(99,198,255,.18);
  --chart-empty:#10283f;
  --chart-expense:#ff756d;
  --chart-income:#63c6ff;
}
body{background:
  radial-gradient(circle at 95% -16%,rgba(99,198,255,.07),transparent 29rem),
  radial-gradient(circle at -12% 78%,rgba(255,200,87,.035),transparent 32rem),
  var(--ink)}
::selection{background:var(--sky);color:#07111d}
.brand-mark,.footer-brand-mark,.route-loader-brand{background:var(--sky);color:#07111d;box-shadow:0 8px 24px rgba(99,198,255,.13),inset 0 0 0 1px rgba(255,255,255,.18)}
.btn-primary{background:var(--sky);color:#07111d;border-color:#9bdcff;box-shadow:0 8px 22px rgba(99,198,255,.10)}
.btn-primary:hover{background:#80d1ff;box-shadow:0 10px 28px rgba(99,198,255,.16)}
.btn-secondary{background:#0d2034;border-color:#214863}.btn-secondary:hover{background:#112942;border-color:#2c5e7d}
input:focus,select:focus,textarea:focus{border-color:var(--sky);box-shadow:0 0 0 3px var(--focus-ring);background:#0a1929}
.money-positive{color:var(--sky)!important}.money-negative{color:var(--coral)!important}

/* Navigation gets restrained per-section color cues. */
.desktop-nav a:nth-child(1),.mobile-nav a:nth-child(1){--nav-accent:var(--sky)}
.desktop-nav a:nth-child(2),.mobile-nav a:nth-child(2){--nav-accent:var(--coral)}
.desktop-nav a:nth-child(3){--nav-accent:var(--amber)}
.desktop-nav a:nth-child(4),.mobile-nav a:nth-child(4){--nav-accent:var(--lavender)}
.desktop-nav a:nth-child(5){--nav-accent:var(--ice)}
.desktop-nav a:nth-child(6){--nav-accent:var(--peach)}
.desktop-nav a:nth-child(7),.mobile-nav a:nth-child(5){--nav-accent:var(--sky)}
.desktop-nav a.active{color:var(--nav-accent);box-shadow:inset 0 0 0 1px var(--nav-accent);background:#0f2236}
.mobile-nav a.active{color:var(--nav-accent);background:#102439}
.mobile-nav .mobile-add{background:var(--amber);color:#171006}

/* Route labels and data values use different accents instead of one theme color. */
.route-dashboard .page-titlebar .context-label{color:var(--sky)}
.route-transactions .page-titlebar .context-label{color:var(--coral)}
.route-fixed .page-titlebar .context-label{color:var(--amber)}
.route-savings .page-titlebar .context-label{color:var(--lavender)}
.route-income .page-titlebar .context-label{color:var(--ice)}
.route-household .page-titlebar .context-label{color:var(--peach)}
.route-settings .page-titlebar .context-label{color:var(--sky)}

.metric-cell:nth-child(1) span,.metric-cell:nth-child(1) strong{color:var(--sky)}
.metric-cell:nth-child(2) span,.metric-cell:nth-child(2) strong{color:var(--amber)}
.metric-cell:nth-child(3) span,.metric-cell:nth-child(3) strong{color:var(--lavender)}
.metric-cell:nth-child(4) span,.metric-cell:nth-child(4) strong{color:var(--ice)}
.metric-cell small{color:#7899b7!important}
.analytics-grid>article:nth-child(1) .context-label{color:var(--coral)}
.analytics-grid>article:nth-child(2) .context-label{color:var(--lavender)}
.dashboard-lower-grid>article:nth-child(1) .context-label{color:var(--amber)}
.dashboard-lower-grid>article:nth-child(2) .context-label{color:var(--sky)}
.chart-stat-strip>div:nth-child(1) b{color:var(--amber)}
.chart-stat-strip>div:nth-child(2) b{color:var(--coral)}
.chart-stat-strip>div:nth-child(3) b{color:var(--sky)!important}
.flow-row:nth-child(1) .meter i{background:var(--amber)}
.flow-row:nth-child(2) .meter i{background:var(--lavender)}
.flow-row:nth-child(3) .meter i{background:var(--coral)}
.route-savings .meter i{background:linear-gradient(90deg,var(--lavender),var(--sky))}
.route-income .row-icon,.row-icon-positive{color:#07111d;background:var(--sky);border-color:#9bdcff}
.route-fixed .row-icon{color:#171006;background:var(--amber);border-color:#ffe09b}
.route-savings .row-icon{color:#0b1020;background:var(--lavender);border-color:#c7bdff}

/* Public/legal areas stay neutral with occasional accent, not a full-color wash. */
.auth-data-panel{background:#081522}.auth-data-panel::after{background:radial-gradient(circle,rgba(99,198,255,.10),transparent 65%)}
.auth-data-list{border-top-color:#183650}.auth-data-list>div{border-bottom-color:#183650}
.auth-form-panel,.auth-simple-card{background:#f8fbff}.auth-segmented{background:#eef7fc;border-color:#cfe4f2}
.auth-form-copy .context-label{color:#3b78a1}.auth-form-meta a,.auth-switch a,.back-link{color:#256f9e}
.verify-icon{background:#e0f3ff;color:#256f9e}
.contact-brand-mark{background:var(--sky);color:#07111d;box-shadow:0 12px 35px rgba(99,198,255,.16)}
.legal-document h2{color:var(--ice)}.legal-document strong{color:#e6f6ff}
.cookie-notice{background:#f8fbff;color:#17202b;border-color:#c5deef}.cookie-notice-copy p{color:#607991}.cookie-notice-actions>a{color:#256f9e}
.site-footer-links a:nth-child(1){color:var(--sky)}.site-footer-links a:nth-child(2){color:var(--amber)}.site-footer-links a:nth-child(3){color:var(--lavender)}.site-footer-links a:nth-child(4){color:var(--peach)}
.site-footer-links a:hover{color:#f7fbff}.site-footer-links span{color:var(--ice);border-color:#214863;background:#0b1a2b}

.route-loader-dots i:nth-child(1){background:var(--sky)}.route-loader-dots i:nth-child(2){background:var(--amber)}.route-loader-dots i:nth-child(3){background:var(--lavender)}
[data-live-indicator]::before{background:var(--sky);box-shadow:0 0 0 3px rgba(99,198,255,.13)}
@keyframes valuePop{0%{transform:translateY(0)}45%{transform:translateY(-2px);color:var(--amber)}100%{transform:none}}

/* Finance Manager 1.0.0 — official visual system */
:root{
  --fm-bg:#080b12;
  --fm-surface:#0e1320;
  --fm-surface-2:#121927;
  --fm-surface-3:#172032;
  --fm-line:#242d3d;
  --fm-line-strong:#344158;
  --fm-text:#f5f7fb;
  --fm-soft:#c7d0dd;
  --fm-muted:#8793a5;
  --fm-green:#2bd47d;
  --fm-red:#ff5f6d;
  --fm-cyan:#39c6f4;
  --fm-amber:#ffb020;
  --fm-violet:#7c6cff;
  --fm-magenta:#d65cff;
  --fm-orange:#ff7a45;
  --ink:var(--fm-bg);
  --ink-2:var(--fm-surface);
  --ink-3:var(--fm-surface-2);
  --ink-4:var(--fm-surface-3);
  --line:var(--fm-line);
  --line-strong:var(--fm-line-strong);
  --text:var(--fm-text);
  --text-soft:var(--fm-soft);
  --muted:var(--fm-muted);
  --accent:var(--fm-cyan);
  --accent-strong:#6bd8fa;
  --accent-dim:#102a36;
  --danger:var(--fm-red);
  --warning:var(--fm-amber);
  --chart-expense:var(--fm-red);
  --chart-income:var(--fm-green);
  --chart-empty:#1a2230;
}
html,body{background:var(--fm-bg)}
body{background:
  radial-gradient(circle at 12% -10%,rgba(57,198,244,.055),transparent 26rem),
  radial-gradient(circle at 88% 32%,rgba(124,108,255,.04),transparent 32rem),
  var(--fm-bg);color:var(--fm-text)}
::selection{background:var(--fm-cyan);color:#071016}

/* shell + navigation */
.app-header{background:#080b12;border-bottom-color:#202838}
.app-header-inner{height:58px}
.brand-mark,.route-loader-brand{background:linear-gradient(135deg,var(--fm-cyan),#8a79ff);color:#071016;box-shadow:0 8px 28px rgba(57,198,244,.12),inset 0 0 0 1px rgba(255,255,255,.18)}
.desktop-nav a{color:#8f9bad;position:relative;background:transparent!important;box-shadow:none!important}
.desktop-nav a::after{content:"";position:absolute;left:10px;right:10px;bottom:2px;height:2px;border-radius:999px;background:var(--nav-accent,var(--fm-cyan));transform:scaleX(0);transition:transform .2s ease}
.desktop-nav a:hover{color:#eef3f9}
.desktop-nav a.active{color:var(--nav-accent,var(--fm-cyan))}
.desktop-nav a.active::after{transform:scaleX(1)}
.desktop-nav a:nth-child(1){--nav-accent:var(--fm-cyan)}
.desktop-nav a:nth-child(2){--nav-accent:var(--fm-violet)}
.desktop-nav a:nth-child(3){--nav-accent:var(--fm-amber)}
.desktop-nav a:nth-child(4){--nav-accent:var(--fm-magenta)}
.desktop-nav a:nth-child(5){--nav-accent:var(--fm-green)}
.desktop-nav a:nth-child(6){--nav-accent:var(--fm-orange)}
.desktop-nav a:nth-child(7){--nav-accent:#a7b0bf}
.account-avatar,.member-avatar,.profile-avatar,.greeting-avatar{display:grid;place-items:center;overflow:hidden;background:#141b29;border:1px solid #303b50;color:#e6edf6;line-height:1;text-align:center}
.account-avatar.has-photo,.member-avatar.has-photo,.profile-avatar.has-photo,.greeting-avatar.has-photo{padding:0}
.account-avatar img,.member-avatar img,.profile-avatar img,.greeting-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.profile-avatar{width:64px;height:64px;border-radius:20px;font-size:1.1rem}
.greeting-avatar{width:48px;height:48px;border-radius:15px;font-size:1rem;flex:0 0 auto}
.dashboard-greeting{display:flex;align-items:center;gap:13px}
.dashboard-greeting h1{margin-top:2px}

/* surfaces + typography */
.surface{background:linear-gradient(180deg,#101622,#0d121d);border-color:#232d3e;box-shadow:0 10px 28px rgba(0,0,0,.10)}
.surface:hover{border-color:#334156;transform:translateY(-1px)}
.page-titlebar h1{color:#f8fafc}
.page-titlebar p,.quiet,.optional,.form-help{color:#8995a7}
.context-label{color:#8b97a9}
.route-dashboard .page-titlebar .context-label{color:var(--fm-cyan)}
.route-transactions .page-titlebar .context-label{color:var(--fm-violet)}
.route-fixed .page-titlebar .context-label{color:var(--fm-amber)}
.route-savings .page-titlebar .context-label{color:var(--fm-magenta)}
.route-income .page-titlebar .context-label{color:var(--fm-green)}
.route-household .page-titlebar .context-label{color:var(--fm-orange)}
.route-settings .page-titlebar .context-label{color:#b5bdc9}
.section-title h2{color:#edf2f8}

/* forms + semantic money */
input,select,textarea{background:#090e17;border-color:#293449;color:#f3f6fa}
input::placeholder,textarea::placeholder{color:#657185}
input:focus,select:focus,textarea:focus{background:#0b111c;border-color:var(--fm-cyan);box-shadow:0 0 0 3px rgba(57,198,244,.13)}
.form-stack label{color:#aab4c2}
.btn-primary{background:var(--fm-cyan);border-color:#70dafa;color:#071016;box-shadow:0 8px 24px rgba(57,198,244,.12)}
.btn-primary:hover{background:#68d6f7;box-shadow:0 12px 30px rgba(57,198,244,.16)}
.btn-secondary{background:#141b28;border-color:#303b4e;color:#e7edf5}
.btn-secondary:hover{background:#1a2332;border-color:#46536b}
.money-positive{color:var(--fm-green)!important}
.money-negative{color:var(--fm-red)!important}
.row-icon-positive{background:rgba(43,212,125,.12)!important;border-color:rgba(43,212,125,.38)!important;color:var(--fm-green)!important}
.row-icon-negative{background:rgba(255,95,109,.11)!important;border-color:rgba(255,95,109,.34)!important;color:var(--fm-red)!important}
.transaction-kind{background:#090e17;border-color:#293449}
.transaction-kind span{color:#8c98aa;transition:background .18s,color .18s,box-shadow .18s,transform .18s}
.transaction-kind label:first-child:has(input:checked) span{background:rgba(255,95,109,.14);color:#ff98a1;box-shadow:inset 0 0 0 1px rgba(255,95,109,.42)}
.transaction-kind label:last-child:has(input:checked) span{background:rgba(43,212,125,.13);color:#71e8a9;box-shadow:inset 0 0 0 1px rgba(43,212,125,.42)}
.transaction-kind label:active span{transform:scale(.985)}

/* dashboard */
.daily-budget-card{border-color:#2a3c50;background:linear-gradient(135deg,#101b28,#0d131e 72%)}
.daily-budget-main>strong{color:#f8fafc}
.daily-budget-side{border-left-color:#273347}
.daily-budget-side>div:first-child b{color:var(--fm-cyan)}
.metric-cell{transition:background .18s,transform .18s}
.metric-cell:hover{background:#141c29;transform:translateY(-1px)}
.metric-income span,.metric-income strong{color:var(--fm-green)!important}
.metric-fixed span,.metric-fixed strong{color:var(--fm-amber)!important}
.metric-savings span,.metric-savings strong{color:var(--fm-violet)!important}
.metric-saved span,.metric-saved strong{color:var(--fm-magenta)!important}
.metric-cell small{color:#7f8b9c!important}
.planned-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:center;gap:1px;margin:0 0 12px;border:1px solid #3d3420;border-radius:13px;background:#15130e;overflow:hidden}
.planned-summary>div{padding:10px 13px;display:grid;gap:2px}.planned-summary>div+div{border-left:1px solid #3d3420}
.planned-summary span{font-size:.65rem;color:#a69b83}.planned-summary strong{font-size:.78rem}.planned-summary>a{padding:10px 14px;color:var(--fm-amber);font-size:.68rem;font-weight:800;white-space:nowrap}
.start-later-banner{border-color:#2c3e50;background:#101721}

/* transaction planning */
.timeline-group-label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 2px 6px;border-bottom:1px solid #222b3b;color:#909cac}
.timeline-group-label span{font-size:.66rem;text-transform:uppercase;letter-spacing:.11em;font-weight:900}
.timeline-group-label small{font-size:.63rem;color:#6f7b8e}
.timeline-group-label.planned-label span{color:var(--fm-amber)}
.transaction-line.is-planned,.data-row.is-planned{background:linear-gradient(90deg,rgba(255,176,32,.055),transparent 55%)}
.planned-badge{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;border:1px solid rgba(255,176,32,.38);background:rgba(255,176,32,.10);color:#ffc45a;font-size:.56rem!important;font-weight:900!important;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}
.row-title-line{display:flex;align-items:center;gap:7px;min-width:0}.row-title-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* charts — explicit colors so WebKit cannot inherit stale theme values */
.chart-surface{overflow:hidden}
.trend-chart{height:220px;min-height:180px;opacity:1!important;visibility:visible!important}
.trend-chart svg{display:block!important;width:100%!important;height:100%!important;overflow:visible;opacity:1!important}
.chart-bar-expense{fill:#ff5f6d!important;animation:none!important;transform:none!important;opacity:.94}
.chart-bar-income{fill:#2bd47d!important;animation:none!important;transform:none!important;opacity:.94}
.chart-grid-line{stroke:#26364b!important}
.chart-axis-label{fill:#8493a8!important}
.legend-expense{background:#ff5f6d!important}.legend-income{background:#2bd47d!important}
.chart-legend{color:#8995a7}.chart-legend span:first-child{color:#ff9ca4}.chart-legend span:last-child{color:#73e8aa}
.donut-chart{background:var(--chart-empty);animation:chartPanelIn .38s ease both;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)}
.donut-chart::after{background:#101622;border-color:#293449}
.category-legend>div{border-top-color:#232d3e}.category-legend span{color:#aab5c5}
.chart-stat-strip{border-top-color:#232d3e}.chart-stat-strip>div+div{border-left-color:#232d3e}
.chart-stat-strip>div:nth-child(1) b,.chart-stat-strip>div:nth-child(2) b{color:var(--fm-red)!important}.chart-stat-strip>div:nth-child(3) b{color:var(--fm-green)!important}
.flow-fixed-reserved .meter i{background:var(--fm-amber)!important}.flow-planned-savings .meter i{background:var(--fm-violet)!important}.flow-variable-spent .meter i{background:var(--fm-red)!important}.flow-planned-out .meter i{background:linear-gradient(90deg,var(--fm-amber),var(--fm-red))!important}

/* profile */
.profile-card{padding:16px}.profile-card .account-card-head{align-items:center;margin-bottom:14px}.profile-upload-form{display:grid;gap:9px}.file-picker{display:grid;gap:5px;color:#aab4c2;font-size:.7rem;font-weight:800}.file-picker input{padding:7px}.file-picker small{font-weight:500;color:#7f8a9a}.signout-card{margin-top:0}

/* footer intentionally neutral grey */
.site-footer{border-top-color:#2a3039;color:#7d838d}
.site-footer-brand strong{color:#aeb3bb}.site-footer-brand small{color:#747b85}
.footer-brand-mark{background:#252b34!important;color:#aeb5bf!important;box-shadow:none!important;border:1px solid #363d48}
.site-footer-links a,.site-footer-links a:nth-child(1),.site-footer-links a:nth-child(2),.site-footer-links a:nth-child(3),.site-footer-links a:nth-child(4){color:#858b95!important}
.site-footer-links a:hover{color:#d0d4da!important}
.site-footer-links span{color:#8d939d!important;border-color:#343b46!important;background:#181d25!important}

/* public home */
.finance-public.route-landing{background:#080b12}
.finance-home{width:min(1180px,calc(100% - 40px));margin:0 auto;padding-bottom:70px}
.home-header{width:100%;padding:22px 0;display:flex;align-items:center;gap:26px;border-bottom:1px solid #1d2532}
.home-nav{display:flex;gap:19px;margin-left:auto}.home-nav a{color:#8d98a9;font-size:.74rem;font-weight:700;transition:color .16s}.home-nav a:hover{color:#f2f5f9}
.home-header .marketing-actions{margin-left:0}.btn-large{min-height:44px;padding:10px 16px}
.home-hero{min-height:610px;display:grid;grid-template-columns:1.02fr .98fr;gap:72px;align-items:center;padding:68px 0 76px}
.release-chip{display:inline-flex;padding:6px 9px;border:1px solid #2d394c;border-radius:999px;color:#9ba7b8;font-size:.65rem;font-weight:800;letter-spacing:.05em;margin-bottom:18px}
.home-hero-copy h1{max-width:650px;margin:0 0 18px;font-size:clamp(3rem,6vw,5.4rem);line-height:.94;letter-spacing:-.072em;color:#f8fafc}.home-hero-copy p{max-width:610px;margin:0 0 25px;color:#9aa6b7;font-size:1rem;line-height:1.7}.home-trust-row{display:flex;gap:15px;flex-wrap:wrap;margin-top:26px;color:#7f8b9d;font-size:.69rem;font-weight:700}.home-trust-row span{display:inline-flex;align-items:center;gap:6px}.home-trust-row .app-icon{width:14px;height:14px;color:#aeb8c6}
.home-product-demo{position:relative;padding:18px;border:1px solid #2a3446;border-radius:24px;background:linear-gradient(160deg,#121927,#0c111b);box-shadow:0 30px 80px rgba(0,0,0,.28);transform:rotate(1.2deg);animation:demoFloat 6s ease-in-out infinite}.home-product-demo::before{content:"";position:absolute;inset:-70px -40px;z-index:-1;background:radial-gradient(circle,rgba(57,198,244,.09),transparent 62%);filter:blur(8px)}.demo-window-bar{display:flex;align-items:center;gap:5px;color:#7f8999;font-size:.63rem;border-bottom:1px solid #242d3c;padding-bottom:12px}.demo-window-bar span{width:7px;height:7px;border-radius:50%;background:#3b4658}.demo-window-bar b{margin-left:auto;font-size:.67rem;color:#b8c2d0}.demo-greeting{display:flex;align-items:center;gap:10px;padding:17px 0 13px}.demo-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#39c6f4,#7c6cff);color:#071016;font-weight:900}.demo-greeting div:last-child{display:grid}.demo-greeting small{color:#7d899a;font-size:.6rem}.demo-greeting strong{font-size:.83rem}.demo-safe{padding:18px;border:1px solid #2a384b;border-radius:16px;background:#0c141f;display:grid;gap:2px}.demo-safe span,.demo-safe small{color:#8190a3;font-size:.64rem}.demo-safe strong{font-size:2.3rem;letter-spacing:-.055em}.demo-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.demo-metrics>div{padding:11px;border:1px solid #242d3d;border-radius:12px;background:#0b1019;display:grid;gap:3px}.demo-metrics span{font-size:.57rem;color:#7c8797}.demo-metrics b{font-size:.68rem}.demo-bars{height:85px;margin-top:10px;display:flex;align-items:flex-end;gap:7px;padding:10px 8px 0;border-top:1px solid #222b3a}.demo-bars span{flex:1;height:var(--bar);background:var(--bar-color);border-radius:4px 4px 2px 2px;opacity:.88;animation:barBreathe 4s ease-in-out infinite;transform-origin:bottom}.demo-bars span:nth-child(2n){animation-delay:.45s}
.home-feature-section{padding:76px 0;border-top:1px solid #1d2532}.home-section-heading{max-width:680px;margin-bottom:28px}.home-section-heading h2,.shared-copy h2,.home-privacy h2,.home-cta h2{margin:5px 0 10px;font-size:clamp(1.8rem,4vw,3rem);line-height:1.05;letter-spacing:-.05em}.home-section-heading p,.shared-copy p,.home-privacy p,.home-cta p{color:#8e9aab;line-height:1.65}.home-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.home-feature{padding:20px;border:1px solid #242e3f;border-radius:18px;background:#0d121c;transition:transform .2s,border-color .2s}.home-feature:hover{transform:translateY(-3px);border-color:#39475e}.feature-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;margin-bottom:24px}.feature-salary .feature-icon{background:rgba(43,212,125,.12);color:var(--fm-green)}.feature-plan .feature-icon{background:rgba(255,176,32,.12);color:var(--fm-amber)}.feature-chart .feature-icon{background:rgba(124,108,255,.13);color:#9a8cff}.home-feature h3{font-size:1rem;margin-bottom:7px}.home-feature p{margin:0;color:#8591a2;font-size:.78rem;line-height:1.6}
.home-shared{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;padding:84px 0;border-top:1px solid #1d2532}.shared-preview{border:1px solid #293447;background:#0d121c;border-radius:20px;padding:16px}.shared-person,.shared-event{display:flex;align-items:center;gap:11px}.shared-person{padding:5px 4px 15px;border-bottom:1px solid #242d3d}.shared-person>div:nth-child(2){display:grid}.shared-person small,.shared-event small{font-size:.62rem;color:#7f8999}.online-dot{width:8px;height:8px;border-radius:50%;background:var(--fm-green);margin-left:auto;box-shadow:0 0 0 4px rgba(43,212,125,.1)}.shared-event{padding:14px 3px;border-bottom:1px solid #222b3a}.shared-event>div{display:grid;flex:1}.shared-event>b{font-size:.72rem}.event-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;font-weight:900}.event-icon.money-out{background:rgba(255,95,109,.11);color:var(--fm-red)}.event-icon.money-in{background:rgba(43,212,125,.11);color:var(--fm-green)}.live-chip{display:inline-flex;align-items:center;gap:7px;margin:14px 3px 1px;color:#8d98a8;font-size:.63rem}.live-chip i{width:7px;height:7px;border-radius:50%;background:var(--fm-green);animation:softPulse 1.7s ease-in-out infinite}
.home-privacy{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:end;padding:70px 0;border-top:1px solid #1d2532}.privacy-actions{display:flex;gap:18px;margin-top:18px}.privacy-actions a{color:#a3adba;font-size:.7rem;font-weight:800}.privacy-actions a:hover{color:#fff}.home-cta{margin-top:24px;padding:28px 30px;border:1px solid #2c3749;border-radius:20px;background:linear-gradient(120deg,#101722,#0c111a);display:flex;align-items:center;justify-content:space-between;gap:30px}.home-cta h2{font-size:2rem}.home-cta p{margin-bottom:0}

/* motion */
.app-content>.page-titlebar,.app-content>[data-live-dashboard]>.page-titlebar{animation:sectionIn .36s cubic-bezier(.2,.8,.2,1) both}
.app-content .surface,.app-content .daily-budget-card,.app-content .metric-strip,.app-content .planned-summary,.app-content .start-later-banner{animation:sectionIn .42s cubic-bezier(.2,.8,.2,1) both}
.app-content .surface:nth-of-type(2){animation-delay:.035s}.app-content .surface:nth-of-type(3){animation-delay:.07s}
.trend-chart{animation:chartPanelIn .42s cubic-bezier(.2,.8,.2,1) both}.category-legend>div{animation:rowEnter .28s ease both}.planned-badge{animation:badgeIn .28s ease both}.greeting-avatar{animation:avatarIn .42s cubic-bezier(.2,.9,.2,1) both}
.route-loader{background:rgba(8,11,18,.82)}.route-loader-pill{background:#101620;border-color:#303c50}.route-loader-dots i:nth-child(1){background:var(--fm-red)}.route-loader-dots i:nth-child(2){background:var(--fm-green)}.route-loader-dots i:nth-child(3){background:var(--fm-cyan)}
@keyframes sectionIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes chartPanelIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes badgeIn{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}
@keyframes avatarIn{from{opacity:0;transform:scale(.85) rotate(-4deg)}to{opacity:1;transform:none}}
@keyframes demoFloat{0%,100%{transform:rotate(1.2deg) translateY(0)}50%{transform:rotate(.6deg) translateY(-7px)}}
@keyframes barBreathe{0%,100%{transform:scaleY(.92);opacity:.78}50%{transform:scaleY(1);opacity:1}}
@keyframes softPulse{0%,100%{opacity:.55;box-shadow:0 0 0 3px rgba(43,212,125,.08)}50%{opacity:1;box-shadow:0 0 0 6px rgba(43,212,125,.02)}}

@media(max-width:900px){
  .home-nav{display:none}.home-hero{grid-template-columns:1fr;gap:42px;min-height:0;padding:54px 0}.home-product-demo{max-width:620px;width:100%;margin:auto;transform:none}.home-feature-grid{grid-template-columns:1fr}.home-shared,.home-privacy{grid-template-columns:1fr;gap:32px}.home-cta{align-items:flex-start;flex-direction:column}.home-register{display:none}
}
@media(max-width:600px){
  .finance-home{width:min(100% - 24px,1180px)}.home-header{padding:15px 0}.home-hero{padding:42px 0 56px}.home-hero-copy h1{font-size:3.1rem}.home-hero-copy p{font-size:.88rem}.home-trust-row{display:grid;gap:8px}.demo-metrics{grid-template-columns:1fr}.demo-bars{height:70px}.home-feature-section,.home-shared,.home-privacy{padding:54px 0}.home-cta{padding:20px}.planned-summary{grid-template-columns:1fr 1fr}.planned-summary>a{grid-column:1/-1;border-top:1px solid #3d3420}.planned-summary>div+div{border-left:1px solid #3d3420}.dashboard-greeting{align-items:flex-start}.greeting-avatar{width:42px;height:42px;border-radius:13px}.page-titlebar.dashboard-titlebar{align-items:flex-start}.page-titlebar.dashboard-titlebar .btn{margin-top:3px}.profile-avatar{width:58px;height:58px}.trend-chart{height:190px!important}.site-footer{color:#777e87}
}
@media(prefers-reduced-motion:reduce){.home-product-demo,.demo-bars span,.live-chip i,.app-content .surface,.app-content .daily-budget-card,.app-content .metric-strip,.app-content .planned-summary,.app-content .start-later-banner,.trend-chart,.category-legend>div,.planned-badge,.greeting-avatar{animation:none!important}}


/* Finance Manager 1.0.1 — profile, legal navigation and activity polish */
.row-icon{border-radius:10px!important}.row-icon .app-icon{width:15px;height:15px;stroke-width:2.15}
.compact-list .data-row,.transaction-timeline .data-row{border-bottom-color:#242d3a!important}
.compact-list .data-row:last-child,.transaction-timeline .data-row:last-child{border-bottom-color:transparent!important}
.data-row.is-planned{background:linear-gradient(90deg,rgba(255,176,32,.045),rgba(255,176,32,0) 62%)!important}
.planned-meta{color:#ffc45a;font-weight:800}.row-copy>small{display:block;color:#7f8b9b}.row-copy>strong{color:#edf2f8}
.row-copy .row-note{margin-top:2px;color:#727f90}
.profile-details-form{margin:4px 0 0}.profile-divider{height:1px;background:#252e3d;margin:14px 0}.profile-card .field-grid.two{gap:8px}

.public-legal-header{position:sticky;top:0;z-index:50;background:#080b12;border-bottom:1px solid #242b36;padding-top:env(safe-area-inset-top)}
.public-legal-header-inner{width:min(1180px,calc(100% - 40px));min-height:58px;margin:0 auto;display:flex;align-items:center;gap:22px}
.public-legal-header .brand{flex:0 0 auto}.public-legal-nav{display:flex;align-items:center;gap:4px;flex:1}
.public-legal-nav a{padding:8px 10px;border-radius:8px;color:#8b939f;font-size:.68rem;font-weight:800;transition:background .16s,color .16s}
.public-legal-nav a:hover,.public-legal-nav a.active{background:#141a23;color:#eef2f6}
.public-legal-actions{display:flex;align-items:center;gap:8px}.legal-language{margin:0}.legal-app-link{min-height:34px;padding:7px 11px}
.public-content-legal{padding-top:34px;min-height:calc(100vh - 59px - 96px)}
.route-cookies .legal-heading .context-label{color:var(--fm-amber)}.route-terms .legal-heading .context-label{color:var(--fm-violet)}.route-contact .legal-heading .context-label{color:var(--fm-cyan)}

@media(max-width:760px){
  .public-legal-header-inner{width:min(100% - 24px,1180px);min-height:56px;gap:10px}.public-legal-nav{display:none}.public-legal-actions{margin-left:auto}.legal-app-link{display:none}.public-content-legal{padding-top:22px}
  .profile-card .field-grid.two{grid-template-columns:1fr}
}

/* Finance 1.1.0 — in-app notification center */
.notification-center{position:relative;display:grid;place-items:center}
.notification-toggle{position:relative;color:#a9b4c4}
.notification-toggle.active,.notification-toggle:hover{color:#f4f7fb;background:#141b28}
.notification-count{position:absolute;right:1px;top:0;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:#ff5b66;color:#fff;border:2px solid #080b12;font-size:.52rem;font-weight:900;line-height:11px;text-align:center;box-sizing:border-box}
.notification-popover{position:absolute;right:-48px;top:42px;width:min(380px,calc(100vw - 24px));background:#0d121c;border:1px solid #293347;border-radius:16px;box-shadow:0 26px 70px rgba(0,0,0,.42);overflow:hidden;z-index:90;animation:notificationPanelIn .2s cubic-bezier(.2,.8,.2,1) both}
.notification-popover[hidden]{display:none!important}
.notification-popover-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 14px 11px;border-bottom:1px solid #202838}
.notification-popover-head>div{display:grid;gap:1px}.notification-popover-head strong{font-size:.84rem}.notification-popover-head .context-label{font-size:.55rem}
.notification-mark-all{border:0;background:transparent;color:#67cdf7;padding:5px;font-size:.62rem;font-weight:800;cursor:pointer}.notification-mark-all:hover{color:#9ee3ff}
.notification-popover-list{max-height:420px;overflow:auto;overscroll-behavior:contain}
.notification-item{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;color:inherit;border-bottom:1px solid #1b2331;transition:background .16s,border-color .16s,transform .16s}
.notification-item:hover{background:#121926}.notification-item.unread{background:#101a29}.notification-item.unread:hover{background:#142033}
.notification-event-dot{width:9px;height:9px;flex:0 0 9px;margin-top:6px;border-radius:999px;background:#7d8da4;box-shadow:0 0 0 4px rgba(125,141,164,.09)}
.notification-event-dot.transaction-expense,.notification-event-dot.planned-expense{background:#ff6670;box-shadow:0 0 0 4px rgba(255,102,112,.09)}
.notification-event-dot.transaction-income,.notification-event-dot.planned-income,.notification-event-dot.salary,.notification-event-dot.income-source{background:#4fd39b;box-shadow:0 0 0 4px rgba(79,211,155,.09)}
.notification-event-dot.fixed-paid,.notification-event-dot.fixed-added{background:#f4b856;box-shadow:0 0 0 4px rgba(244,184,86,.09)}
.notification-event-dot.savings-contribution,.notification-event-dot.savings-goal{background:#a98cff;box-shadow:0 0 0 4px rgba(169,140,255,.09)}
.notification-copy{min-width:0;display:grid;gap:2px;flex:1}.notification-copy strong{font-size:.66rem;color:#f5f7fb}.notification-copy>span{font-size:.72rem;line-height:1.42;color:#c7cfda}.notification-copy small{font-size:.58rem;color:#737f91}
.notification-unread-dot{width:6px;height:6px;flex:0 0 6px;margin-top:6px;border-radius:999px;background:#61cfff;box-shadow:0 0 12px rgba(97,207,255,.5)}
.notification-popover-footer{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 12px;color:#9eabbc;font-size:.65rem;font-weight:800;background:#0a0f18}.notification-popover-footer:hover{color:#f3f6fa}.notification-popover-footer .app-icon{width:13px;height:13px}
.notification-popover-empty{min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#6f7b8d;font-size:.68rem}.notification-popover-empty .app-icon{width:24px;height:24px}
.notification-pulse .notification-toggle .app-icon{animation:bellPulse .34s ease}

.notification-inbox{padding:0;overflow:hidden}.notification-inbox .notification-list{display:grid}.notification-inbox .notification-item{padding:15px 17px}.notification-inbox .notification-copy>span{font-size:.78rem}.notification-inbox .notification-copy strong{font-size:.7rem}.notification-page-title{align-items:center}.notification-empty{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#778397}.notification-empty .empty-icon{width:32px;height:32px;margin-bottom:4px}.notification-empty strong{color:#e8edf4;font-size:.85rem}.notification-empty p{margin:2px 0 0;font-size:.7rem}

.notification-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.notification-settings-head>div{display:grid;gap:3px}.notification-settings-head strong{font-size:.8rem}.notification-settings-head small{color:#8793a4;font-size:.64rem;line-height:1.45}.notification-preferences{display:grid;border-top:1px solid #202838}.notification-pref-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #1d2533;cursor:pointer}.notification-pref-row>span:nth-child(2){display:grid;gap:2px}.notification-pref-row strong{font-size:.7rem}.notification-pref-row small{font-size:.59rem;line-height:1.35;color:#7e899a}.notification-pref-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#151d29;color:#9ba8ba}.notification-pref-icon .app-icon{width:15px;height:15px}.notification-pref-icon.transaction{color:#68cdf6}.notification-pref-icon.salary,.notification-pref-icon.income{color:#55d6a0}.notification-pref-icon.fixed{color:#f0b65b}.notification-pref-icon.savings{color:#a98cff}
.switch-input{appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:999px;background:#293140;border:1px solid #374256;position:relative;cursor:pointer;transition:background .18s,border-color .18s}.switch-input::after{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:#aeb8c6;transition:transform .18s,background .18s}.switch-input:checked{background:#236e55;border-color:#31946e}.switch-input:checked::after{transform:translateX(14px);background:#f7fbf9}.notification-preferences>.btn{margin-top:11px}.push-divider{height:1px;background:#202838;margin:14px 0}.action-link{font-size:.62rem;font-weight:800;color:#64cbf4;white-space:nowrap}

@keyframes notificationPanelIn{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:none}}
@keyframes bellPulse{0%{transform:rotate(0)}35%{transform:rotate(12deg) scale(1.08)}70%{transform:rotate(-9deg)}100%{transform:rotate(0)}}
@media(max-width:900px){.notification-popover{right:-72px;top:39px}.notification-count{border-color:#080b12}}
@media(max-width:600px){.account-copy{display:none}.notification-popover{position:fixed;top:calc(env(safe-area-inset-top) + 62px);left:auto;right:12px;width:min(340px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:auto;max-height:min(460px,calc(100dvh - env(safe-area-inset-top) - 104px));border-radius:16px}.notification-popover-list{max-height:min(320px,calc(100dvh - env(safe-area-inset-top) - 242px))}.notification-settings-head{align-items:flex-start}.notification-page-title{align-items:flex-start;flex-direction:column}.notification-page-title form,.notification-page-title .btn{width:100%}}
@supports not (height:100dvh){@media(max-width:600px){.notification-popover{max-height:min(460px,calc(100vh - 104px))}.notification-popover-list{max-height:min(320px,calc(100vh - 242px))}}}
@media(prefers-reduced-motion:reduce){.notification-popover,.notification-pulse .notification-toggle .app-icon{animation:none!important}.notification-item,.switch-input,.switch-input::after{transition:none!important}}


/* Finance 1.1.1 — notification toggle correction */
.notification-pref-row .switch,
.notification-settings .switch,
.settings-notification-row .switch {
  position: relative;
  display: inline-flex;
  flex: 0 0 42px;
  width: 42px;
  min-width: 42px;
  max-width: 42px;
  height: 24px;
  min-height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  vertical-align: middle;
  overflow: visible;
}

.notification-pref-row .switch input,
.notification-settings .switch input,
.settings-notification-row .switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.notification-pref-row .switch-slider,
.notification-settings .switch-slider,
.settings-notification-row .switch-slider {
  position: absolute;
  inset: 0;
  display: block;
  width: 42px;
  height: 24px;
  border: 1px solid #334155;
  border-radius: 999px;
  background: #1e293b;
  box-shadow: none;
  transition: background-color .18s ease, border-color .18s ease;
}

.notification-pref-row .switch-slider::before,
.notification-settings .switch-slider::before,
.settings-notification-row .switch-slider::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #f8fafc;
  box-shadow: 0 1px 3px rgba(0,0,0,.28);
  transform: translateX(0);
  transition: transform .18s cubic-bezier(.2,.8,.2,1);
}

.notification-pref-row .switch input:checked + .switch-slider,
.notification-settings .switch input:checked + .switch-slider,
.settings-notification-row .switch input:checked + .switch-slider {
  background: #2563eb;
  border-color: #3b82f6;
}

.notification-pref-row .switch input:checked + .switch-slider::before,
.notification-settings .switch input:checked + .switch-slider::before,
.settings-notification-row .switch input:checked + .switch-slider::before {
  transform: translateX(18px);
}

.notification-pref-row .switch input:focus-visible + .switch-slider,
.notification-settings .switch input:focus-visible + .switch-slider,
.settings-notification-row .switch input:focus-visible + .switch-slider {
  outline: 2px solid #60a5fa;
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .notification-pref-row .switch,
  .notification-settings .switch,
  .settings-notification-row .switch {
    flex-basis: 42px;
    width: 42px;
    min-width: 42px;
    max-width: 42px;
    height: 24px;
  }
}


/* Finance 1.1.2 — rectangular notification ON/OFF control */
.notification-switch{
  position:relative;
  display:block;
  width:72px;
  min-width:72px;
  height:30px;
  flex:0 0 72px;
}
.notification-switch .switch-input{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  cursor:pointer;
  z-index:2;
}
.notification-switch-ui{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  overflow:hidden;
  border:1px solid #334055;
  border-radius:8px;
  background:#0b111b;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
  transition:border-color .16s ease,background-color .16s ease;
  pointer-events:none;
}
.notification-switch .switch-state{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:0 6px;
  color:#6f7b8d;
  font-size:.54rem;
  font-weight:900;
  line-height:1;
  letter-spacing:.055em;
  text-transform:uppercase;
  transition:background-color .16s ease,color .16s ease;
}
.notification-switch .switch-state+ .switch-state{border-left:1px solid #273246}
.notification-switch .switch-input:not(:checked)+.notification-switch-ui .switch-state-off{
  background:#273142;
  color:#f1f5f9;
}
.notification-switch .switch-input:checked+.notification-switch-ui{border-color:#2778a6}
.notification-switch .switch-input:checked+.notification-switch-ui .switch-state-on{
  background:#1680b7;
  color:#fff;
}
.notification-switch .switch-input:focus-visible+.notification-switch-ui{
  outline:2px solid #58c7f5;
  outline-offset:2px;
}
.notification-pref-row:has(.switch-input:checked){background:rgba(37,122,167,.025)}
@media(max-width:600px){
  .notification-switch{width:68px;min-width:68px;flex-basis:68px;height:30px}
}


/* Finance 1.1.5 — motion polish + mobile liquid glass navigation */
.route-loader-dots{
  display:flex;
  align-items:center;
  gap:6px;
  height:14px;
}
.route-loader-dots .route-loader-dot{
  display:block;
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  transform:translateY(0) scale(.9);
  animation:financeLoaderDot .66s cubic-bezier(.45,.05,.55,.95) infinite;
  will-change:transform,opacity;
}
.route-loader-dots .route-loader-dot:nth-child(1){background:var(--fm-red);animation-delay:-.44s}
.route-loader-dots .route-loader-dot:nth-child(2){background:var(--fm-green);animation-delay:-.22s}
.route-loader-dots .route-loader-dot:nth-child(3){background:var(--fm-cyan);animation-delay:0s}
@keyframes financeLoaderDot{
  0%,100%{transform:translateY(2px) scale(.82);opacity:.48}
  50%{transform:translateY(-4px) scale(1.08);opacity:1}
}

@media(max-width:900px){
  .mobile-nav{
    --nav-index:0;
    position:fixed;
    isolation:isolate;
    z-index:60;
    left:12px;
    right:12px;
    bottom:calc(9px + env(safe-area-inset-bottom));
    height:64px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    padding:5px;
    overflow:hidden;
    border:1px solid rgba(196,220,239,.18);
    border-radius:20px;
    background:rgba(8,16,27,.68);
    -webkit-backdrop-filter:blur(22px) saturate(165%);
    backdrop-filter:blur(22px) saturate(165%);
    box-shadow:0 18px 46px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08);
  }
  .mobile-nav::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0) 55%),radial-gradient(circle at 50% -30%,rgba(91,201,245,.10),transparent 55%);
  }
  .mobile-nav-indicator{
    position:absolute;
    z-index:1;
    top:5px;
    bottom:5px;
    left:5px;
    width:calc((100% - 10px)/5);
    border:1px solid rgba(213,232,247,.18);
    border-radius:15px;
    background:linear-gradient(145deg,rgba(255,255,255,.145),rgba(255,255,255,.055));
    -webkit-backdrop-filter:blur(13px) saturate(180%);
    backdrop-filter:blur(13px) saturate(180%);
    box-shadow:0 7px 20px rgba(0,0,0,.19),inset 0 1px 0 rgba(255,255,255,.17),inset 0 -1px 0 rgba(255,255,255,.025);
    transform:translate3d(calc(var(--nav-index) * 100%),0,0);
    will-change:transform;
    pointer-events:none;
  }
  .mobile-nav.nav-ready .mobile-nav-indicator{
    transition:transform .14s cubic-bezier(.22,1,.36,1),background .12s ease,border-color .12s ease;
  }
  .mobile-nav a,
  .mobile-nav .mobile-add{
    position:relative;
    z-index:2;
    min-width:0;
    margin:0;
    padding:5px 2px 4px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    border-radius:14px;
    background:transparent!important;
    color:#7790a5;
    transition:color .14s ease,transform .14s cubic-bezier(.22,1,.36,1);
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-nav a:active{transform:scale(.94)}
  .mobile-nav a.active{color:var(--nav-accent,#e6f5ff);background:transparent!important}
  .mobile-nav a.active span{transform:translateY(-1px) scale(1.06)}
  .mobile-nav a span{display:grid;place-items:center;transition:transform .14s cubic-bezier(.22,1,.36,1)}
  .mobile-nav .app-icon{width:18px;height:18px}
  .mobile-nav small{font-size:.57rem;font-weight:850;letter-spacing:.005em}
  .mobile-nav .mobile-add{--nav-accent:var(--fm-amber);color:#9b8b71}
  .mobile-nav .mobile-add .app-icon{width:21px;height:21px}
  .mobile-nav .mobile-add.active{color:var(--fm-amber)}
}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  @media(max-width:900px){
    .mobile-nav{background:#0b1421}
    .mobile-nav-indicator{background:#172536}
  }
}

@media(prefers-reduced-motion:reduce){
  .route-loader-dots .route-loader-dot{animation:none!important;opacity:.9;transform:none}
  .mobile-nav-indicator,.mobile-nav a,.mobile-nav a span{transition:none!important}
}


/* Finance 1.1.9 — iOS-safe profile picture cropper */
.profile-crop-modal{position:fixed;z-index:220;left:0;right:0;top:0;bottom:auto;width:100%;height:var(--crop-viewport-height,100dvh);max-height:var(--crop-viewport-height,100dvh);display:grid;place-items:center;padding:18px;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));overflow:hidden;opacity:0;transition:opacity .18s ease}
.profile-crop-modal[hidden]{display:none!important}.profile-crop-modal.is-visible{opacity:1}
.profile-crop-backdrop{position:absolute;inset:0;background:rgba(3,7,13,.86)}
.profile-crop-sheet{position:relative;z-index:1;width:min(420px,100%);max-height:100%;padding:18px;border:1px solid #303b4d;border-radius:22px;background:#0d131e;box-shadow:0 28px 90px rgba(0,0,0,.55);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateY(10px) scale(.985);transition:transform .2s cubic-bezier(.2,.8,.2,1);outline:none}
.profile-crop-modal.is-visible .profile-crop-sheet{transform:none}
.profile-crop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.profile-crop-head h2{margin:3px 0 0;font-size:1.05rem}.profile-crop-close{flex:0 0 auto}.profile-crop-help{margin:8px 0 15px;color:#8b96a7;font-size:.72rem;line-height:1.5}
.profile-crop-stage{position:relative;width:min(280px,78vw);aspect-ratio:1;margin:0 auto;overflow:hidden;border-radius:24px;background:#070b12;touch-action:none;cursor:grab;box-shadow:inset 0 0 0 1px #344156}.profile-crop-stage.is-dragging{cursor:grabbing}
.profile-crop-stage canvas{display:block;width:100%;height:100%}.profile-crop-ring{position:absolute;inset:12px;border:2px solid rgba(255,255,255,.78);border-radius:22%;box-shadow:0 0 0 999px rgba(3,7,12,.17),inset 0 0 0 1px rgba(0,0,0,.18);pointer-events:none}
.profile-crop-zoom{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin:17px 2px 0;color:#aab5c4;font-size:.68rem;font-weight:800}.profile-crop-zoom input[type=range]{min-height:0;height:24px;padding:0;accent-color:#59c7f4}
.profile-crop-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.profile-crop-open{overflow:hidden;overscroll-behavior:none}
.profile-upload-form.has-crop .file-picker small{color:#59c7f4}

/* iPhone/iPad: the cropper becomes a full-screen editing surface. This keeps
   the crop canvas and both action buttons inside the visual viewport even when
   Safari's address/tool bars resize the screen or the app is running as a PWA. */
@media(max-width:900px),(hover:none) and (pointer:coarse){
  .profile-crop-modal{place-items:stretch;padding:0;height:var(--crop-viewport-height,100dvh);max-height:var(--crop-viewport-height,100dvh)}
  .profile-crop-sheet{width:100%;height:100%;max-height:100%;border:0;border-radius:0;padding:max(14px,env(safe-area-inset-top)) 16px max(14px,env(safe-area-inset-bottom));box-shadow:none;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;transform:translateY(12px) scale(1);background:#0b111b}
  .profile-crop-head{align-items:center;min-height:42px}
  .profile-crop-head h2{font-size:1.1rem}
  .profile-crop-help{margin:6px 0 8px;text-align:center}
  .profile-crop-stage{place-self:center;width:clamp(160px,min(82vw,46dvh),320px);max-width:100%;margin:4px auto;border-radius:26px}
  .profile-crop-ring{inset:10px}
  .profile-crop-zoom{margin:8px 2px 0;min-height:38px}
  .profile-crop-actions{margin-top:8px;padding-bottom:0}
  .profile-crop-actions .btn{min-height:44px}
}
@supports not (height:100dvh){.profile-crop-modal{height:var(--crop-viewport-height,100vh);max-height:var(--crop-viewport-height,100vh)}}
@media(prefers-reduced-motion:reduce){.profile-crop-modal,.profile-crop-sheet{transition:none!important}}



/* Finance 1.2.0 — faster nav handoff and stable icons between routes. */
@media(max-width:900px){
  .mobile-nav.nav-routing{pointer-events:none}
  .mobile-nav.nav-routing .mobile-nav-indicator{transition-duration:.14s,.12s,.12s}

  /* Treat the complete bottom bar as one shared visual during same-origin page
     transitions. The old and new documents therefore do not flash/repaint the
     individual SVG icons during navigation on supporting iOS/Safari versions. */
  .mobile-nav{view-transition-name:finance-mobile-nav}
}

@view-transition{navigation:auto}
::view-transition-group(finance-mobile-nav){
  animation-duration:.12s;
  animation-timing-function:cubic-bezier(.22,1,.36,1);
}
::view-transition-old(finance-mobile-nav),
::view-transition-new(finance-mobile-nav){
  animation:none;
  opacity:1;
}

/* Finance 1.3.0 — classic 1.2 UI with stronger sign-in security. */
.auth-divider{display:flex;align-items:center;gap:12px;margin:2px 0;color:#657286;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:#202b3a}.passkey-login-status{min-height:1em;text-align:center}.passkey-login-button{margin-top:0}.auth-frame-single{grid-template-columns:1fr;width:min(520px,100%);min-height:0}.auth-form-panel-single{min-height:560px}.mfa-code-input{text-align:center;font-size:1.55rem!important;font-weight:850!important;letter-spacing:.32em;font-variant-numeric:tabular-nums}.mfa-resend-form{text-align:center}.mfa-resend-button{border:0;background:none;padding:8px 12px;cursor:pointer}
.security-card{display:grid;gap:14px}.security-card-head{display:flex;align-items:center;justify-content:space-between}.security-card-head>div,.security-copy{display:grid;gap:3px}.security-card-head strong,.security-copy strong{font-size:.8rem}.security-copy small{font-size:.62rem;line-height:1.45;color:#8793a4}.security-block{display:grid;gap:11px}.security-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.security-status{flex:0 0 auto;border:1px solid #313a4a;border-radius:999px;padding:5px 8px;font-size:.58rem;font-weight:850;color:#8d98a9;background:#121a26}.security-status.enabled{border-color:#245e4c;color:#61d9a7;background:#0d211b}.security-divider{height:1px;background:#202838}.passkey-list{display:grid;gap:8px}.passkey-empty{color:#7d899a;font-size:.62rem}.passkey-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #1d2533}.passkey-copy{display:grid;gap:2px;min-width:0}.passkey-copy strong{font-size:.7rem}.passkey-copy small{font-size:.58rem;color:#7d899a}.passkey-row .action-btn{flex:0 0 auto}
@media(max-width:600px){.auth-form-panel-single{min-height:calc(100vh - 24px)}.security-row{align-items:center}.mfa-code-input{font-size:1.4rem!important}}

/* Finance 1.4.0 — app-like motion, quick entry, editable rows and searchable history. */
.finance-app .app-content{animation:finance-page-enter .14s cubic-bezier(.22,1,.36,1) both;transition:opacity .08s ease,transform .08s ease;view-transition-name:finance-main}
.finance-app .app-content.route-leaving{opacity:.72;transform:translateY(-2px)}
@keyframes finance-page-enter{from{opacity:.15;transform:translateY(4px)}to{opacity:1;transform:none}}
::view-transition-group(finance-main){animation-duration:.14s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
::view-transition-old(finance-main){animation:.07s ease both finance-main-out}
::view-transition-new(finance-main){animation:.13s cubic-bezier(.22,1,.36,1) both finance-main-in}
@keyframes finance-main-out{to{opacity:0;transform:translateY(-2px)}}
@keyframes finance-main-in{from{opacity:0;transform:translateY(4px)}}

.quick-add-modal{position:fixed;z-index:260;top:var(--quick-viewport-top,0px);left:var(--quick-viewport-left,0px);right:auto;bottom:auto;width:var(--quick-viewport-width,100vw);height:var(--quick-viewport-height,100dvh);max-width:none;max-height:none;display:grid;align-items:end;opacity:0;transition:opacity .10s ease;overflow:hidden;overscroll-behavior:none}
.quick-add-modal[hidden]{display:none!important}.quick-add-modal.is-visible{opacity:1}
.quick-add-backdrop{position:absolute;inset:0;background:rgba(2,7,13,.74);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);touch-action:none}
.quick-add-sheet{position:relative;z-index:1;width:min(560px,calc(100% - 22px));max-height:min(760px,calc(100% - max(22px,env(safe-area-inset-top))));margin:0 auto max(10px,env(safe-area-inset-bottom));padding:18px;border:1px solid rgba(193,220,241,.20);border-radius:24px;background:rgba(9,18,30,.98);box-shadow:0 28px 80px rgba(0,0,0,.52);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;transform:translateY(18px);transition:transform .13s cubic-bezier(.22,1,.36,1)}
.quick-add-modal.is-visible .quick-add-sheet{transform:none}.quick-add-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.quick-add-head h2{margin:2px 0 0;font-size:1.2rem}.quick-add-open{overflow:hidden!important;overscroll-behavior:none!important}.quick-add-locked{overflow:hidden!important;overscroll-behavior:none!important}
.merchant-field{position:relative}.merchant-suggestions{position:absolute;z-index:20;top:100%;left:0;right:0;margin-top:4px;padding:5px;border:1px solid var(--line-strong);border-radius:11px;background:#0a1625;box-shadow:0 18px 42px rgba(0,0,0,.42);max-height:220px;overflow:auto}.merchant-suggestions[hidden]{display:none}.merchant-suggestion{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left}.merchant-suggestion:hover,.merchant-suggestion:focus{background:#11253a}.merchant-suggestion strong{font-size:.75rem}.merchant-suggestion small{font-size:.64rem;color:var(--muted)}

.transaction-filter-surface{padding:14px 16px;margin-bottom:12px}.transaction-filters{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(4,minmax(120px,.75fr)) auto;gap:9px;align-items:end}.transaction-filters label{display:grid;gap:5px;color:var(--muted);font-size:.66rem;font-weight:800}.search-input-wrap{position:relative}.search-input-wrap>.app-icon{position:absolute;left:11px;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search-input-wrap input{padding-left:35px}.filter-actions{display:flex;align-items:center;gap:7px}.transaction-results{min-width:0;padding:16px 18px}.pagination{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 0 2px;border-top:1px solid var(--line);margin-top:10px;font-size:.72rem;flex-wrap:wrap}.pagination a{color:var(--accent);font-weight:800}.pagination span{color:var(--muted)}.transaction-pagination{position:relative}.pagination-pages{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}.pagination-page,.pagination-arrow{min-width:34px;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.025);text-decoration:none}.pagination-page:hover,.pagination-arrow:hover{border-color:rgba(85,197,244,.48);background:rgba(85,197,244,.08)}.pagination-page.is-current{background:var(--accent);border-color:var(--accent);color:#06131c}.pagination-arrow.is-disabled{opacity:.3;pointer-events:none;color:var(--muted)}.pagination-ellipsis{padding:0 3px}.pagination-summary{flex-basis:100%;text-align:center;margin-top:2px}.transaction-results .section-title>.quiet{white-space:nowrap}
.compact-row-actions{gap:5px;flex:0 0 auto}.row-actions-menu{position:relative;flex:0 0 auto}.row-actions-menu>summary{list-style:none;cursor:pointer}.row-actions-menu>summary::-webkit-details-marker{display:none}.row-edit-popover{position:absolute;z-index:80;right:0;top:calc(100% + 6px);width:min(350px,84vw);padding:12px;border:1px solid var(--line-strong);border-radius:13px;background:#0a1625;box-shadow:0 20px 52px rgba(0,0,0,.48)}.compact-edit-form{gap:9px}.row-edit-popover .btn{margin-top:2px}
.toast form{display:inline-flex;margin-left:10px}.toast form button{border:0;background:transparent;color:var(--accent);font-weight:900;padding:2px 4px;cursor:pointer}.is-submitting{opacity:.68;pointer-events:none}

@media(max-width:1100px){.transaction-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-search{grid-column:span 2}.filter-actions{grid-column:span 1}}
@media(max-width:900px){
  .quick-add-sheet{width:100%;margin:0;border-left:0;border-right:0;border-bottom:0;border-radius:24px 24px 0 0;padding:16px 16px max(18px,calc(env(safe-area-inset-bottom) + 8px));max-height:100%}
  .quick-add-modal.keyboard-open .quick-add-sheet{height:100%;max-height:100%;border-radius:18px 18px 0 0;padding-top:14px}
  .transaction-filter-surface{padding:12px}.transaction-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-search{grid-column:1/-1}.filter-actions{grid-column:1/-1}.filter-actions .btn{flex:1}
  .transaction-results{padding:14px 14px 16px}.page-titlebar>.btn{align-self:flex-start}
}
@media(max-width:600px){.row-edit-popover{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));top:auto;width:auto;max-height:68dvh;overflow:auto}.transaction-filters{grid-template-columns:1fr 1fr}.transaction-filters label:nth-of-type(n+2){min-width:0}.compact-row-actions{gap:2px}}
@media(prefers-reduced-motion:reduce){.finance-app .app-content,.quick-add-modal,.quick-add-sheet{animation:none!important;transition:none!important}::view-transition-group(finance-main){animation:none!important}}
.header-quick-add{color:var(--fm-amber,#ffb020)}
@media(max-width:900px){.header-quick-add{display:none}}

/* Keep history search compact: advanced filters stay tucked away until needed. */
.transaction-filters{grid-template-columns:minmax(0,1fr) auto;align-items:end}
.transaction-filters .filter-search{grid-column:auto}
.history-filter-more{grid-column:1/-1;border-top:1px solid var(--line);padding-top:9px}
.history-filter-more>summary{display:inline-flex;align-items:center;gap:7px;list-style:none;cursor:pointer;color:var(--muted);font-size:.66rem;font-weight:850;user-select:none}
.history-filter-more>summary::-webkit-details-marker{display:none}.history-filter-more>summary .app-icon{width:15px;height:15px}
.history-filter-more[open]>summary{color:var(--text)}
.history-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:10px}.history-filter-grid label{display:grid;gap:5px;color:var(--muted);font-size:.66rem;font-weight:800}
@media(max-width:900px){.transaction-filters{grid-template-columns:minmax(0,1fr) auto}.transaction-filters .filter-search{grid-column:auto}.transaction-filters .filter-actions{grid-column:auto}.history-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.transaction-filters{grid-template-columns:1fr}.transaction-filters .filter-search,.transaction-filters .filter-actions,.history-filter-more{grid-column:1}.transaction-filters .filter-actions .btn{flex:1}.history-filter-grid{grid-template-columns:1fr 1fr}}


/* Finance 1.4.3 — keep the complete Quick Entry form visible above the iOS keyboard. */
@media(max-width:900px){
  .quick-add-modal.keyboard-open .quick-add-sheet{
    padding:10px 12px max(8px,env(safe-area-inset-bottom));
  }
  .quick-add-modal.keyboard-open .quick-add-head{
    align-items:center;
    margin-bottom:7px;
    min-height:32px;
  }
  .quick-add-modal.keyboard-open .quick-add-head .context-label{
    display:none;
  }
  .quick-add-modal.keyboard-open .quick-add-head h2{
    margin:0;
    font-size:1.04rem;
    line-height:1.15;
  }
  .quick-add-modal.keyboard-open .quick-add-head .icon-button{
    width:32px;
    height:32px;
    min-height:32px;
    padding:6px;
  }
  .quick-add-modal.keyboard-open .form-stack{
    gap:7px;
  }
  .quick-add-modal.keyboard-open .form-stack label{
    gap:3px;
    font-size:.66rem;
    line-height:1.15;
  }
  .quick-add-modal.keyboard-open .transaction-kind{
    padding:3px;
  }
  .quick-add-modal.keyboard-open .transaction-kind span{
    min-height:29px;
    font-size:.67rem;
  }
  .quick-add-modal.keyboard-open input,
  .quick-add-modal.keyboard-open select,
  .quick-add-modal.keyboard-open textarea{
    min-height:34px;
    padding:7px 9px;
    border-radius:8px;
    font-size:.76rem;
  }
  .quick-add-modal.keyboard-open .money-input-large input{
    min-height:40px;
    font-size:1.12rem;
  }
  .quick-add-modal.keyboard-open .field-grid.two{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .quick-add-modal.keyboard-open textarea{
    height:42px;
    min-height:42px;
    resize:none;
  }
  .quick-add-modal.keyboard-open .btn-full{
    min-height:36px;
    padding:8px 11px;
  }
}
@media(max-width:420px) and (max-height:720px){
  .quick-add-modal.keyboard-open .quick-add-head{margin-bottom:5px}
  .quick-add-modal.keyboard-open .form-stack{gap:5px}
  .quick-add-modal.keyboard-open .form-stack label{font-size:.62rem}
  .quick-add-modal.keyboard-open .transaction-kind span{min-height:27px}
  .quick-add-modal.keyboard-open input,
  .quick-add-modal.keyboard-open select{min-height:32px;padding:6px 8px}
  .quick-add-modal.keyboard-open .money-input-large input{min-height:36px}
  .quick-add-modal.keyboard-open textarea{height:36px;min-height:36px}
}

/* 1.5.0 data controls */
.data-controls-card{display:grid;gap:16px}.data-control-actions{display:grid;gap:10px}.danger-zone{display:grid;gap:12px}.danger-zone .danger-text{color:var(--danger,#ff6f7d);border-color:color-mix(in srgb,var(--danger,#ff6f7d) 32%,var(--line));}.danger-zone .danger-text:hover{border-color:color-mix(in srgb,var(--danger,#ff6f7d) 56%,var(--line));}

/* Finance 1.6.1 — categorized settings hub */
.settings-titlebar{margin-bottom:18px}
.settings-hub{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}
.settings-category-nav{position:sticky;top:86px;padding:8px;display:grid;gap:4px;border-radius:18px}
.settings-category-link{display:grid;grid-template-columns:38px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:11px;border-radius:13px;color:#9ba7b8;border:1px solid transparent;transition:background .16s,border-color .16s,color .16s,transform .16s}
.settings-category-link:hover{background:#101925;border-color:#263245;color:#eaf0f7}
.settings-category-link.active{background:#121e2c;border-color:#31506d;color:#f4f7fb;box-shadow:inset 0 0 0 1px rgba(95,196,239,.05)}
.settings-category-link:active{transform:scale(.985)}
.settings-category-link>span:nth-child(2){display:grid;gap:2px;min-width:0}
.settings-category-link strong{font-size:.72rem}
.settings-category-link small{font-size:.56rem;line-height:1.3;color:#748196}
.settings-category-link.active small{color:#96a7ba}
.settings-category-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#172333;color:#88b7d9}
.settings-category-icon .app-icon{width:18px;height:18px}
.settings-category-icon.finance{color:#68cdf6;background:rgba(55,176,224,.09)}
.settings-category-icon.security{color:#a98cff;background:rgba(169,140,255,.09)}
.settings-category-icon.notifications{color:#f4b856;background:rgba(244,184,86,.09)}
.settings-category-icon.data{color:#55d6a0;background:rgba(85,214,160,.09)}
.settings-category-chevron{width:14px;height:14px;color:#627085;transition:transform .16s}
.settings-category-link.active .settings-category-chevron{transform:translateX(2px);color:#9db7cc}
.settings-category-content{min-width:0}
.settings-panel{display:grid;gap:14px;animation:settingsPanelIn .2s cubic-bezier(.22,1,.36,1) both}
.settings-panel[hidden]{display:none!important}
.settings-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 2px 4px}
.settings-panel-head>div{display:grid;gap:3px;min-width:0}
.settings-panel-head h2{margin:0;font-size:1.12rem;letter-spacing:-.02em}
.settings-panel-head p{margin:0;color:#8793a4;font-size:.68rem;line-height:1.45}
.settings-card{min-width:0}
.settings-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.account-settings-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr)}
.data-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.data-settings-grid>.account-delete-card:last-child:nth-child(odd){grid-column:1/-1}
.settings-card-heading{display:grid;gap:3px;margin-bottom:14px}
.settings-card-heading strong{font-size:.82rem}
.settings-card-heading small{font-size:.62rem;line-height:1.45;color:#8793a4}
.account-preferences-card{display:grid;gap:14px}
.account-session-row{display:flex;align-items:center;gap:10px;padding:2px 0}
.account-session-row>div{display:grid;gap:1px;min-width:0}
.account-session-row strong{font-size:.72rem}
.account-session-row small{font-size:.6rem;color:#7e899a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-panel .settings-main{padding:18px}
.settings-panel .notification-card,.settings-panel .security-card{padding:18px}
.settings-panel .data-controls-card{gap:14px}
.household-data-card,.account-delete-card{display:grid;gap:13px}
@keyframes settingsPanelIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

@media(max-width:900px){
  .settings-titlebar{margin-bottom:12px}
  .settings-hub{grid-template-columns:1fr;gap:12px}
  .settings-category-nav{position:sticky;top:calc(env(safe-area-inset-top) + 58px);z-index:18;display:flex;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;padding:7px;border-radius:16px;background:rgba(10,15,24,.96);box-shadow:0 10px 30px rgba(0,0,0,.18)}
  .settings-category-nav::-webkit-scrollbar{display:none}
  .settings-category-link{flex:0 0 auto;display:flex;gap:7px;padding:8px 11px;min-height:42px;border-radius:11px}
  .settings-category-link>span:nth-child(2){display:block}
  .settings-category-link strong{font-size:.68rem;white-space:nowrap}
  .settings-category-link small,.settings-category-chevron{display:none}
  .settings-category-icon{width:28px;height:28px;border-radius:9px}
  .settings-category-icon .app-icon{width:15px;height:15px}
  .settings-panel-head{padding:4px 2px 2px}
  .settings-panel-head h2{font-size:1rem}
  .settings-panel-head p{font-size:.64rem}
  .settings-card-grid,.account-settings-grid,.data-settings-grid{grid-template-columns:1fr}
  .data-settings-grid>.account-delete-card:last-child:nth-child(odd){grid-column:auto}
}

@media(max-width:600px){
  .settings-category-nav{margin-left:-2px;margin-right:-2px}
  .settings-category-content{min-height:420px}
  .settings-panel{gap:10px}
  .settings-panel-head{align-items:flex-start;flex-direction:column;gap:6px}
  .settings-panel .settings-main,.settings-panel .notification-card,.settings-panel .security-card,.settings-panel .settings-card{padding:14px}
  .settings-card-grid{gap:10px}
  .account-settings-grid .field-grid.two{grid-template-columns:1fr}
  .data-control-actions{gap:8px}
  .notification-row{align-items:flex-start;gap:10px}
  .notification-row .btn{flex:0 0 auto}
}

@media(prefers-reduced-motion:reduce){.settings-panel,.settings-category-link,.settings-category-chevron{animation:none!important;transition:none!important}}

/* Finance 1.7.0 — focused first-run onboarding guide */
.route-onboarding{min-height:100dvh;background:
  radial-gradient(circle at 50% -12%,rgba(62,169,231,.16),transparent 34%),
  linear-gradient(180deg,#08121f 0%,#07111d 54%,#060d17 100%)}
.route-onboarding .public-content{min-height:calc(100dvh - 80px)}
.route-onboarding .site-footer{margin-top:0}
.onboarding-shell{width:min(980px,calc(100% - 34px));margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 0 42px;outline:none}
.onboarding-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}
.onboarding-top-actions{display:flex;align-items:center;gap:9px}.onboarding-skip-form{margin:0}.onboarding-skip{border:0;background:transparent;color:var(--muted);font-size:.72rem;font-weight:800;padding:8px 5px}.onboarding-skip:hover{color:var(--text)}
.onboarding-frame{border:1px solid rgba(57,101,139,.62);border-radius:26px;background:linear-gradient(160deg,rgba(11,26,43,.96),rgba(8,17,29,.98));box-shadow:0 28px 90px rgba(0,0,0,.32);overflow:hidden}
.onboarding-progress-row{display:flex;align-items:center;gap:14px;padding:17px 20px 0}.onboarding-progress-row>strong{min-width:44px;text-align:right;color:#829db7;font-size:.64rem;letter-spacing:.06em}.onboarding-progress{position:relative;height:5px;flex:1;border-radius:999px;background:#12263a;overflow:hidden}.onboarding-progress>span{display:block;width:var(--guide-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#60c7ff,#7a9dff);transition:width .28s cubic-bezier(.22,1,.36,1)}
.onboarding-stage{min-height:560px;padding:22px 24px 18px;display:grid;align-items:center}.onboarding-step{width:min(760px,100%);margin:0 auto;display:grid;gap:20px;animation:onboardingStepIn .28s cubic-bezier(.22,1,.36,1) both}.onboarding-step[hidden]{display:none!important}.onboarding-step-copy{text-align:center;max-width:670px;margin:0 auto}.onboarding-step-copy h1,.onboarding-step-copy h2{outline:none;margin:5px 0 8px;letter-spacing:-.04em;line-height:1.05}.onboarding-step-copy h1{font-size:2rem}.onboarding-step-copy h2{font-size:1.65rem}.onboarding-step-copy p{margin:0 auto;color:#91aac1;font-size:.82rem;line-height:1.65;max-width:650px}
.onboarding-visual{width:min(620px,100%);margin:0 auto;border:1px solid #1b3e5b;border-radius:20px;background:linear-gradient(145deg,#0b1a2b,#091522);box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 14px 40px rgba(0,0,0,.2)}
.onboarding-tip{width:min(650px,100%);margin:0 auto;border:1px solid #244967;border-radius:13px;background:#0b1c2d;padding:11px 13px;display:grid;gap:3px;text-align:left}.onboarding-tip strong{font-size:.72rem;color:#dcefff}.onboarding-tip span{font-size:.66rem;line-height:1.45;color:#839fba}.onboarding-tip.warning{border-color:#5e4722;background:#1d180e}.onboarding-tip.warning strong{color:#ffd785}.onboarding-tip.warning span{color:#bca87e}
.onboarding-flow-visual{padding:26px;display:flex;align-items:center;justify-content:center;gap:12px}.guide-flow-card{width:150px;min-height:126px;padding:17px 12px;display:grid;place-items:center;align-content:center;gap:10px;border:1px solid #1c3b55;border-radius:16px;background:#0b1a29;text-align:center}.guide-flow-card>span{display:grid;place-items:center;width:48px;height:48px;border-radius:14px}.guide-flow-card .app-icon{width:24px;height:24px}.guide-flow-card small{font-size:.7rem;font-weight:850}.guide-flow-card.income>span{background:rgba(62,211,143,.11);color:#52dfa0}.guide-flow-card.reserved>span{background:rgba(255,184,70,.11);color:#ffc15f}.guide-flow-card.safe>span{background:rgba(99,198,255,.12);color:#75d0ff}.guide-flow-arrow{color:#526e86}.guide-flow-arrow .app-icon{width:21px;height:21px}
.guide-salary-card{padding:20px}.guide-mini-label{color:#73bce6;font-size:.65rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}.guide-salary-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #17344d}.guide-salary-line span{color:#839fb8;font-size:.72rem}.guide-salary-line strong{font-size:.88rem}.guide-check-line{display:flex;align-items:flex-start;gap:11px;padding:14px 0 2px;border-top:1px solid #17344d}.guide-checkbox{width:20px;height:20px;border-radius:6px;border:1px solid #315878;background:#07111d;flex:0 0 auto}.guide-check-line>div{display:grid;gap:3px}.guide-check-line strong{font-size:.74rem}.guide-check-line small{font-size:.64rem;line-height:1.45;color:#8098af}
.guide-reserve-grid{padding:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.guide-reserve-card{padding:14px;border:1px solid #1b3b56;border-radius:14px;background:#0a1725;display:grid;gap:10px}.guide-reserve-card>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px}.guide-reserve-card>div{display:grid;gap:3px}.guide-reserve-card small{font-size:.61rem;color:#7f9bb4}.guide-reserve-card strong{font-size:.7rem;line-height:1.35}.guide-reserve-card.fixed>span{color:#ffc25f;background:rgba(255,184,70,.1)}.guide-reserve-card.income>span{color:#59dda4;background:rgba(62,211,143,.1)}.guide-reserve-card.savings>span{color:#b69aff;background:rgba(165,129,255,.1)}
.guide-quick-add{padding:15px;max-width:480px}.guide-quick-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid #1c3d58;border-radius:12px;padding:4px}.guide-quick-tabs span{padding:8px;text-align:center;border-radius:9px;color:#7f98af;font-size:.68rem;font-weight:850}.guide-quick-tabs .active{color:#ff9aa3;background:rgba(255,111,112,.12);border:1px solid rgba(255,111,112,.3)}.guide-amount{font-size:2.1rem;font-weight:900;letter-spacing:-.05em;padding:17px 4px 12px}.guide-amount small{font-size:.82rem;color:#7798b6}.guide-field{display:grid;gap:3px;border:1px solid #1b3d58;border-radius:10px;padding:9px 11px;margin-top:8px}.guide-field small,.guide-field-row small{font-size:.58rem;color:#718da7}.guide-field strong,.guide-field-row strong{font-size:.72rem}.guide-field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.guide-field-row>div{display:grid;gap:3px;border:1px solid #1b3d58;border-radius:10px;padding:9px 11px}
.guide-planned-card{padding:17px;max-width:500px}.guide-planned-head{display:flex;align-items:center;gap:11px}.guide-planned-head>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:rgba(255,184,70,.1);color:#ffc15e}.guide-planned-head>div{display:grid;gap:2px;flex:1}.guide-planned-head small{font-size:.58rem;color:#f0ae47;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.guide-planned-head strong{font-size:.78rem}.guide-planned-head>b{font-size:.86rem}.guide-planned-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #17364f;margin-top:13px;padding-top:11px;color:#819ab2;font-size:.64rem}.guide-status-pill{border:1px solid #6b5025;border-radius:999px;background:#211a0f;color:#e9ba67;padding:4px 7px}.guide-fake-button{width:100%;margin-top:11px;min-height:36px;border:1px solid #2d5877;border-radius:9px;background:#102338;color:#d7ecfb;font-weight:850;font-size:.68rem;display:flex;align-items:center;justify-content:center;gap:7px;pointer-events:none}.guide-fake-button .app-icon{width:15px;height:15px}
.guide-dashboard-card{max-width:520px;overflow:hidden}.guide-dashboard-main{padding:20px;display:grid;gap:3px;text-align:left}.guide-dashboard-main small{font-size:.63rem;color:#7c99b5}.guide-dashboard-main strong{font-size:2.1rem;line-height:1;color:#f7fbff;letter-spacing:-.05em}.guide-dashboard-main span{font-size:.63rem;color:#77a4c5}.guide-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #173650}.guide-dashboard-grid>div{display:grid;gap:3px;padding:13px 16px}.guide-dashboard-grid>div+div{border-left:1px solid #173650}.guide-dashboard-grid small{font-size:.59rem;color:#7691aa}.guide-dashboard-grid strong{font-size:.82rem}
.guide-history-card{padding:14px;max-width:540px}.guide-search-row{height:38px;border:1px solid #1b3d58;border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 11px;color:#6f8ca6;font-size:.68rem}.guide-search-row .app-icon{width:15px;height:15px}.guide-history-row{display:grid;grid-template-columns:34px 1fr auto 18px;align-items:center;gap:10px;padding:13px 2px}.guide-history-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#102438;color:#9ac3df}.guide-history-row>div{display:grid;gap:2px}.guide-history-row strong{font-size:.72rem}.guide-history-row small{font-size:.6rem;color:#718ca5}.guide-history-row>b{font-size:.72rem;color:#ff8b86}.guide-history-row>.app-icon{width:15px;color:#7a94ab}.guide-undo-row{display:flex;align-items:center;justify-content:space-between;border-radius:10px;background:#121f2e;border:1px solid #263e55;padding:9px 11px;font-size:.65rem;color:#96abc0}.guide-undo-row strong{color:#65c8ff}
.guide-final-grid{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:9px;max-width:560px}.guide-final-grid>div{min-height:100px;padding:13px;border:1px solid #1b3d58;border-radius:13px;background:#0a1725;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;align-content:center;column-gap:10px}.guide-final-grid>div>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#102438;color:#82cfff}.guide-final-grid strong{font-size:.7rem;align-self:end}.guide-final-grid small{font-size:.59rem;color:#748fa8;align-self:start}.onboarding-ready{width:min(560px,100%);margin:0 auto;display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid #285c4b;border-radius:13px;background:#0d211c}.onboarding-ready>span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:rgba(79,218,161,.12);color:#5bdfa8}.onboarding-ready>div{display:grid;gap:2px}.onboarding-ready strong{font-size:.73rem}.onboarding-ready small{font-size:.62rem;color:#85aa9b}.onboarding-complete-form{width:min(560px,100%);margin:0 auto}
.onboarding-controls{display:grid;grid-template-columns:110px 1fr 110px;align-items:center;gap:16px;padding:14px 20px max(16px,env(safe-area-inset-bottom));border-top:1px solid #15344d;background:rgba(7,16,28,.72)}.onboarding-controls .btn{min-height:40px}.onboarding-dots{display:flex;justify-content:center;gap:6px}.onboarding-dots button{width:7px;height:7px;border:0;border-radius:999px;background:#28455e;padding:0;transition:width .18s,background .18s}.onboarding-dots button.active{width:17px;background:#65c8ff}.onboarding-back:disabled{opacity:.35;cursor:default;transform:none}
.guide-preference-row{align-items:center}.guide-preference-row .btn{flex:0 0 auto}
@keyframes onboardingStepIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}

@media(max-width:700px){
  .route-onboarding .site-footer{display:none}
  .route-onboarding .public-content{min-height:100dvh}
  .onboarding-shell{width:100%;padding:max(12px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom))}
  .onboarding-topbar{margin-bottom:12px;padding:0 2px}.onboarding-topbar .brand-mark{width:32px;height:32px}.onboarding-top-actions{gap:4px}.onboarding-top-actions .language-control{display:none}.onboarding-skip{font-size:.68rem;padding:8px}
  .onboarding-frame{border-radius:22px;min-height:calc(100dvh - max(70px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)));display:grid;grid-template-rows:auto 1fr auto}
  .onboarding-progress-row{padding:14px 15px 0}
  .onboarding-stage{min-height:0;padding:17px 14px 12px;align-items:start;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .onboarding-step{gap:14px}.onboarding-step-copy h1{font-size:1.65rem}.onboarding-step-copy h2{font-size:1.36rem}.onboarding-step-copy p{font-size:.75rem;line-height:1.55}
  .onboarding-flow-visual{padding:14px 10px;gap:6px}.guide-flow-card{width:auto;flex:1;min-height:100px;padding:12px 7px}.guide-flow-card>span{width:38px;height:38px;border-radius:11px}.guide-flow-card .app-icon{width:20px;height:20px}.guide-flow-card small{font-size:.59rem}.guide-flow-arrow .app-icon{width:14px;height:14px}
  .guide-reserve-grid{grid-template-columns:1fr;padding:10px}.guide-reserve-card{grid-template-columns:36px 1fr;align-items:center}.guide-reserve-card>span{grid-row:1}.guide-reserve-card>div{grid-column:2}
  .onboarding-tip{padding:9px 10px}.onboarding-tip strong{font-size:.67rem}.onboarding-tip span{font-size:.61rem}
  .onboarding-controls{grid-template-columns:82px 1fr 82px;padding:10px 12px max(11px,env(safe-area-inset-bottom));gap:8px}.onboarding-controls .btn{padding:7px 8px;font-size:.7rem}.onboarding-dots{gap:4px}.onboarding-dots button{width:6px;height:6px}.onboarding-dots button.active{width:13px}
  .guide-final-grid{grid-template-columns:1fr 1fr;padding:10px}.guide-final-grid>div{min-height:82px;padding:10px;grid-template-columns:30px 1fr;column-gap:8px}.guide-final-grid>div>span{width:30px;height:30px}.guide-final-grid strong{font-size:.64rem}.guide-final-grid small{font-size:.55rem}
}
@media(max-width:390px){
  .onboarding-shell{padding-left:8px;padding-right:8px}.onboarding-stage{padding-left:11px;padding-right:11px}.onboarding-step{gap:11px}.onboarding-step-copy h1{font-size:1.48rem}.onboarding-step-copy h2{font-size:1.24rem}.onboarding-step-copy p{font-size:.7rem}.guide-final-grid{grid-template-columns:1fr}.guide-final-grid>div{min-height:68px}.guide-dashboard-main{padding:16px}.guide-dashboard-main strong{font-size:1.85rem}
}
@media(prefers-reduced-motion:reduce){.onboarding-step,.onboarding-progress>span,.onboarding-dots button{animation:none!important;transition:none!important}}

/* Finance 1.8.0 — Help & FAQ */
.route-help .page-titlebar .context-label{color:var(--fm-cyan)}
.help-titlebar .btn{display:inline-flex;align-items:center;gap:7px}.help-titlebar .btn .app-icon{width:16px;height:16px}
.help-intro{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;align-items:center;padding:18px 20px;margin-bottom:24px;max-width:980px}
.help-intro-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(75,205,255,.08);border:1px solid rgba(75,205,255,.2);color:var(--fm-cyan)}
.help-intro-icon .app-icon{width:23px;height:23px}.help-intro h2{margin:2px 0 4px;font-size:1rem}.help-intro p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.55}
.faq-sections{display:grid;gap:26px;max-width:980px}.faq-section{display:grid;gap:10px}.faq-section-head{padding:0 2px}.faq-section-head h2{margin:2px 0 3px;font-size:1rem;letter-spacing:-.02em}.faq-section-head p{margin:0;color:var(--muted);font-size:.7rem;line-height:1.5}
.faq-list{overflow:hidden}.faq-item{border-top:1px solid var(--line)}.faq-item:first-child{border-top:0}.faq-item>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:14px;padding:15px 17px;font-size:.79rem;font-weight:800;line-height:1.45;user-select:none}.faq-item>summary::-webkit-details-marker{display:none}.faq-item>summary:hover{background:#0c1a2b}.faq-item[open]>summary{background:rgba(255,255,255,.018);color:#fff}.faq-chevron{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:var(--muted);transition:transform .2s ease,background .2s ease,color .2s ease}.faq-chevron .app-icon{width:15px;height:15px}.faq-item[open] .faq-chevron{transform:rotate(90deg);background:rgba(75,205,255,.08);color:var(--fm-cyan)}
.faq-answer{padding:0 52px 16px 17px}.faq-answer p{margin:0;color:#aeb8c6;font-size:.73rem;line-height:1.72}.faq-answer-link{display:inline-flex;align-items:center;gap:6px;margin-top:11px;color:var(--fm-cyan);font-size:.68rem;font-weight:850}.faq-answer-link .app-icon{width:14px;height:14px;transition:transform .18s ease}.faq-answer-link:hover .app-icon{transform:translateX(2px)}
.help-contact{max-width:980px;margin-top:26px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px}.help-contact h2{margin:2px 0 4px;font-size:1rem}.help-contact p{margin:0;max-width:650px;color:var(--muted);font-size:.72rem;line-height:1.55}.help-contact-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.guide-preference-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){.help-titlebar{align-items:flex-start}.help-titlebar .btn{padding:8px 10px}.help-intro{grid-template-columns:38px minmax(0,1fr);padding:15px}.help-intro-icon{width:38px;height:38px;border-radius:12px}.help-intro-icon .app-icon{width:20px;height:20px}.faq-sections{gap:22px}.faq-item>summary{padding:14px 14px;font-size:.77rem;grid-template-columns:minmax(0,1fr) 26px}.faq-chevron{width:26px;height:26px}.faq-answer{padding:0 14px 15px}.faq-answer p{font-size:.72rem}.help-contact{align-items:flex-start;flex-direction:column;padding:16px}.help-contact-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.help-contact-actions .btn{text-align:center;justify-content:center}.guide-preference-row{align-items:flex-start}.guide-preference-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.guide-preference-actions .btn{justify-content:center;text-align:center}}
@media(max-width:420px){.help-contact-actions,.guide-preference-actions{grid-template-columns:1fr}.help-titlebar .btn span{display:none}.help-titlebar .btn .app-icon{margin:0}}
@media(prefers-reduced-motion:reduce){.faq-chevron,.faq-answer-link .app-icon{transition:none!important}}


/* Finance 2.0 — device/session security */
.device-session-block{gap:14px}.device-session-list{display:grid;gap:10px}.device-session-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line,rgba(255,255,255,.1));border-radius:14px;background:rgba(255,255,255,.025)}.device-session-row.current{border-color:rgba(99,198,255,.28);background:rgba(99,198,255,.045)}.device-session-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:rgba(99,198,255,.08);color:var(--accent,#63c6ff)}.device-session-icon svg{width:18px;height:18px}.device-session-copy{min-width:0;display:grid;gap:3px}.device-session-copy small{color:var(--muted,#9ba7b6);line-height:1.35}.device-session-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.session-current-pill{font-size:10px;padding:3px 7px}.device-session-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.device-session-row form{margin:0}
@media(max-width:680px){.device-session-row{grid-template-columns:36px minmax(0,1fr);align-items:start}.device-session-row form{grid-column:2}.device-session-row form .action-btn{padding-left:0}.device-session-actions{grid-template-columns:1fr}}

/* Finance 2.0.2 — Settings UI repair.
   Keep the 1.6.1 categorized hub as the source of truth and only add
   small, scoped responsive safeguards. Avoid fixed heights/blanket !important
   overrides that can fight the shared app shell after deployment. */
.route-settings .settings-hub{min-width:0}
.route-settings .settings-category-content,
.route-settings .settings-panel,
.route-settings .settings-card{min-width:0}

@media(max-width:900px){
  .route-settings .settings-hub{grid-template-columns:minmax(0,1fr);gap:12px}
  .route-settings .settings-category-nav{
    top:calc(env(safe-area-inset-top) + 58px);
    z-index:24;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
  }
  .route-settings .settings-category-link{flex:0 0 auto}
  .route-settings .settings-category-content{width:100%}
}

@media(max-width:600px){
  .route-settings .settings-titlebar h1{font-size:1.65rem}
  .route-settings .settings-titlebar p{font-size:.76rem;line-height:1.45}
  .route-settings .settings-category-nav{
    margin-left:0;
    margin-right:0;
    padding:6px;
  }
  .route-settings .settings-category-link{min-height:40px;padding:7px 10px}
  .route-settings .settings-panel-head{padding:3px 2px 2px}
  .route-settings .settings-panel .settings-main,
  .route-settings .settings-panel .notification-card,
  .route-settings .settings-panel .security-card,
  .route-settings .settings-panel .settings-card{padding:14px}
  .route-settings .device-session-row{grid-template-columns:34px minmax(0,1fr)}
  .route-settings .device-session-row form{grid-column:2}
}


/* Finance 2.0.4 beta2 — iOS form geometry + mobile consistency pass.
   Native WebKit date controls can retain an intrinsic width larger than their CSS grid
   track even with width:100%. The visible border therefore lives on a clipping shell,
   while the native date control stays fully tappable inside it. */
.field-grid,.form-stack,.field-grid>* , .form-stack>* , .page-titlebar>*, .section-title>*, .preference-row>div, .notification-copy, .notification-popover-head>div{min-width:0;max-width:100%}
input,select,textarea{min-width:0;max-width:100%}
.field-label-line{display:flex;align-items:baseline;gap:7px;min-width:0;flex-wrap:wrap}
.field-label-line>.optional{font-size:.68rem}
.date-input-shell{position:relative;display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;border:1px solid #293449;border-radius:9px;background:#090e17;transition:border-color .12s,box-shadow .12s,background .12s}
.date-input-shell:focus-within{background:#0b111c;border-color:var(--fm-cyan);box-shadow:0 0 0 3px rgba(57,198,244,.13)}
.date-input-shell>input[type="date"]{display:block;width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;max-inline-size:100%;min-height:38px;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none!important;outline:0;padding:9px 10px;color:var(--fm-text);box-sizing:border-box}
.date-input-shell>input[type="date"]:focus{border:0;background:transparent;box-shadow:none!important}
.date-input-shell>input[type="date"]::-webkit-date-and-time-value{min-width:0;text-align:center}
@supports (-webkit-touch-callout:none){
  .date-input-shell>input[type="date"]{-webkit-appearance:none;appearance:none;width:100%;max-width:none}
}
.more-list>a{grid-template-columns:30px minmax(0,1fr) 18px}
.more-list>a>div,.goal-head>div{min-width:0}
.more-list small,.goal-head small,.notification-copy>span{overflow-wrap:anywhere}
.notification-popover-head{min-width:0}
.notification-mark-all{flex:0 0 auto;white-space:nowrap}
.quick-add-sheet,.quick-add-sheet form,.quick-add-sheet .field-grid,.quick-add-sheet label{min-width:0;max-width:100%}
.quick-add-sheet input,.quick-add-sheet select,.quick-add-sheet textarea{max-width:100%;min-width:0}
@media(max-width:600px){
  .quick-add-sheet .field-grid.two,
  .quick-add-modal.keyboard-open .field-grid.two{grid-template-columns:minmax(0,1fr)}
  .page-titlebar,.section-title{min-width:0}
  .page-titlebar>div,.section-title>div{min-width:0}
  .page-titlebar h1,.section-title h2{overflow-wrap:anywhere}
  .notification-item{min-width:0}
  .notification-copy>span{white-space:normal}
  .date-input-shell{width:100%;max-width:100%}
  .date-input-shell>input[type="date"]{width:100%;max-width:none;min-width:0}
}

@media(max-width:600px){
  .daily-budget-main>strong{font-size:clamp(1.78rem,9vw,2.15rem);overflow-wrap:anywhere}
  .metric-cell>strong,.savings-summary strong{overflow-wrap:anywhere}
  .toast{top:calc(env(safe-area-inset-top) + 10px)}
}

/* Finance 2.0.5 — fixed-expense payment-state clarity */
.fixed-list-heading{align-items:flex-start}.fixed-period-label{display:block;margin-top:3px;color:var(--muted);font-size:.58rem;font-weight:650}.fixed-expense-row{transition:background .18s,border-color .18s}.fixed-expense-row.is-paid{background:linear-gradient(90deg,rgba(46,211,143,.045),rgba(46,211,143,0) 58%)}.fixed-expense-row.is-paid .row-icon{color:#65dfaa;background:#0d291f;border-color:#1d654a}.fixed-payment-state{display:flex;align-items:center;gap:5px;margin-top:3px;width:max-content;max-width:100%;font-size:.58rem;font-weight:800;line-height:1.25}.fixed-payment-state svg{width:11px;height:11px;flex:0 0 auto}.fixed-payment-state.paid{color:#58d99d}.fixed-payment-state.unpaid{color:#d9a85b}.fixed-state-dot{width:6px;height:6px;border-radius:999px;background:#d9a85b;box-shadow:0 0 0 3px rgba(217,168,91,.08);flex:0 0 auto}.fixed-row-actions{flex:0 0 auto}.fixed-paid-badge{display:inline-flex;align-items:center;gap:5px;min-height:31px;padding:6px 9px;border:1px solid rgba(68,210,145,.34);border-radius:8px;background:rgba(33,136,94,.13);color:#66dfa8;font-size:.66rem;font-weight:850;white-space:nowrap}.fixed-paid-badge svg{width:13px;height:13px}.fixed-mark-paid{border-color:rgba(68,210,145,.36);color:#66dfa8;background:rgba(33,136,94,.1)}.fixed-mark-paid:hover{border-color:rgba(68,210,145,.65);background:rgba(33,136,94,.17)}
@media(max-width:600px){.fixed-expense-row{align-items:center}.fixed-expense-row .row-copy{min-width:0}.fixed-payment-state{white-space:normal}.fixed-paid-badge{width:31px;height:31px;min-height:31px;padding:0;justify-content:center;border-radius:8px}.fixed-paid-badge span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fixed-paid-badge svg{width:14px;height:14px}.fixed-row-actions{gap:2px}}

/* 2.0.6-beta6 — Receipt Reader (beta only) */
.quick-add-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.receipt-open-button{min-height:36px;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(90,197,255,.28);border-radius:10px;background:rgba(56,179,235,.08);color:#8edcff;font:inherit;font-size:.72rem;font-weight:850;cursor:pointer}
.receipt-open-button .app-icon{width:17px;height:17px}.receipt-open-button:hover{background:rgba(56,179,235,.14)}.receipt-open-button[hidden]{display:none!important}
.receipt-scan-modal{position:fixed;z-index:340;inset:0;width:100%;height:100dvh;display:grid;align-items:end;overflow:hidden;opacity:0;transition:opacity .12s ease;overscroll-behavior:none}
.receipt-scan-modal[hidden]{display:none!important}.receipt-scan-modal.is-visible{opacity:1}
.receipt-scan-backdrop{position:absolute;inset:0;background:rgba(1,6,12,.82);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
.receipt-scan-sheet{position:relative;z-index:1;width:min(620px,calc(100% - 24px));max-height:min(820px,calc(100% - max(24px,env(safe-area-inset-top))));margin:0 auto max(10px,env(safe-area-inset-bottom));padding:18px;border:1px solid rgba(193,220,241,.2);border-radius:24px;background:#09131f;box-shadow:0 28px 90px rgba(0,0,0,.62);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateY(18px);transition:transform .14s cubic-bezier(.22,1,.36,1)}
.receipt-scan-modal.is-visible .receipt-scan-sheet{transform:none}
.receipt-scan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.receipt-scan-head h2{margin:2px 0 0;font-size:1.28rem}
.receipt-privacy{margin:9px 0 14px;color:var(--muted);font-size:.76rem;line-height:1.45}
.receipt-scan-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border:1px solid var(--line);border-radius:13px;background:rgba(0,0,0,.18);margin-bottom:14px}
.receipt-scan-tabs button{min-width:0;min-height:42px;border:0;border-radius:9px;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:.76rem;font-weight:850;cursor:pointer}
.receipt-scan-tabs button.active{background:rgba(73,196,244,.12);color:#9be1ff;box-shadow:inset 0 0 0 1px rgba(73,196,244,.28)}.receipt-scan-tabs .app-icon{width:17px;height:17px}
.receipt-photo-stage,.receipt-qr-stage{display:grid;gap:12px}.receipt-photo-stage[hidden],.receipt-qr-stage[hidden]{display:none!important}
.receipt-scan-hero{min-height:170px;border:1px dashed rgba(116,151,184,.34);border-radius:18px;background:linear-gradient(180deg,rgba(51,155,205,.07),rgba(5,13,22,.08));display:grid;place-items:center;align-content:center;text-align:center;padding:22px;gap:8px}
.receipt-scan-hero>.app-icon{width:36px;height:36px;color:#69d3ff}.receipt-scan-hero strong{font-size:1rem}.receipt-scan-hero small{max-width:430px;color:var(--muted);font-size:.76rem;line-height:1.45}
.receipt-scan-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.receipt-scan-actions .btn{min-width:0;display:flex;align-items:center;justify-content:center;gap:7px}.receipt-scan-actions .app-icon{width:17px;height:17px}
.receipt-video-frame{position:relative;overflow:hidden;min-height:240px;aspect-ratio:4/3;border:1px solid rgba(116,151,184,.34);border-radius:18px;background:#03080e}.receipt-video-frame video{width:100%;height:100%;display:block;object-fit:cover;background:#03080e}
.receipt-qr-guide{position:absolute;inset:17%;border:2px solid rgba(102,213,255,.72);border-radius:17px;box-shadow:0 0 0 999px rgba(0,0,0,.14);pointer-events:none}
.receipt-paper-camera-stage{display:grid;gap:10px}.receipt-paper-camera-stage[hidden]{display:none!important}
.receipt-paper-camera-frame{aspect-ratio:3/4;min-height:0;max-height:min(58vh,560px);margin-inline:auto;width:min(100%,430px)}
.receipt-paper-guide{position:absolute;inset:5% 16% 8%;border:2px solid rgba(102,213,255,.8);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.2),0 0 28px rgba(67,199,244,.08);pointer-events:none}
.receipt-paper-guide:before,.receipt-paper-guide:after{content:"";position:absolute;width:34px;height:34px;border-color:#8adfff;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5));pointer-events:none}.receipt-paper-guide:before{left:-2px;top:-2px;border-left:3px solid;border-top:3px solid;border-radius:16px 0 0}.receipt-paper-guide:after{right:-2px;bottom:-2px;border-right:3px solid;border-bottom:3px solid;border-radius:0 0 16px}
.receipt-camera-hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);width:max-content;max-width:82%;padding:7px 10px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(3,9,15,.68);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e9f6ff;font-size:.66rem;font-weight:800;text-align:center;pointer-events:none}
.receipt-camera-controls{display:grid;grid-template-columns:1.2fr .8fr;gap:9px}.receipt-camera-controls .btn{min-width:0;display:flex;align-items:center;justify-content:center;gap:7px}
.receipt-scan-status{min-height:20px;margin-top:12px;color:var(--muted);font-size:.76rem;line-height:1.4}.receipt-scan-status[data-tone="success"]{color:#62d99b}.receipt-scan-status[data-tone="warning"]{color:#f0bd62}.receipt-scan-status[data-tone="error"]{color:#ff7b87}
.receipt-progress{height:5px;margin:7px 0 2px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.receipt-progress[hidden]{display:none}.receipt-progress>span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#42c8f3,#9278ff);transition:width .2s ease}
.receipt-result{display:grid;gap:11px;margin-top:13px;padding:14px;border:1px solid rgba(85,197,244,.23);border-radius:17px;background:rgba(39,126,171,.06)}.receipt-result[hidden]{display:none!important}
.receipt-result-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.receipt-result-head strong{font-size:.88rem}.receipt-result-head span{color:#83cee9;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.receipt-result-grid{display:grid;grid-template-columns:1.25fr .9fr .9fr;gap:8px}.receipt-result-grid>div{min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.13);display:grid;gap:3px}.receipt-result-grid small{color:var(--muted);font-size:.62rem}.receipt-result-grid strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.79rem}
.receipt-raw-details{border-top:1px solid var(--line);padding-top:8px}.receipt-raw-details summary{cursor:pointer;color:var(--muted);font-size:.68rem;font-weight:750}.receipt-raw-details pre{max-height:145px;margin:9px 0 0;padding:10px;border-radius:10px;background:#050b12;color:#aebdcc;font:500 .61rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow:auto;word-break:break-word}
@media(max-width:680px){
  .receipt-open-button{width:38px;height:38px;padding:0;justify-content:center;border-radius:11px}.receipt-open-button span{display:none}
  .receipt-scan-sheet{width:100%;max-height:100%;margin:0;border-left:0;border-right:0;border-bottom:0;border-radius:24px 24px 0 0;padding:16px 14px max(18px,calc(env(safe-area-inset-bottom) + 8px))}
  .receipt-result-grid{grid-template-columns:1fr 1fr}.receipt-result-grid>div:first-child{grid-column:1/-1}
  .receipt-scan-actions{grid-template-columns:1fr}.receipt-scan-hero{min-height:145px;padding:18px}.receipt-video-frame{min-height:220px}
}
@media(max-width:360px){.receipt-result-grid{grid-template-columns:1fr}.receipt-result-grid>div:first-child{grid-column:auto}.receipt-scan-tabs button{font-size:.69rem}}
@media(prefers-reduced-motion:reduce){.receipt-scan-modal,.receipt-scan-sheet,.receipt-progress>span{transition:none!important}}

/* 2.0.6-beta7: paper vs original digital receipt policy */
.receipt-digital-stage{display:grid;gap:12px}
.receipt-digital-stage[hidden],.receipt-qr-stage[hidden]{display:none!important}
.receipt-file-types{margin:0;text-align:center;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.08em}
.receipt-policy-note{margin:0;color:var(--muted);font-size:.72rem;line-height:1.45}

/* 2.0.7-beta2: dashboard donut value balance + FAQ/session polish */

/* 2.0.7-beta2: retain beta9 ring proportions; value scaling is handled adaptively in app.js */
.donut-chart strong{letter-spacing:-.015em}

/* 2.0.7-beta2: current app icon for header/footer branding. */
.brand-mark,.footer-brand-mark,.contact-brand-mark{padding:0!important;overflow:hidden;background:transparent!important;box-shadow:none!important;border:0!important}
.brand-logo-image{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}


/* 2.0.7-beta2: chronological Activity grouped by month and day. */
.activity-month-heading{margin:18px 2px 5px;padding:0;border:0}
.activity-month-heading:first-of-type{margin-top:10px}
.activity-month-heading .context-label{font-size:.67rem;letter-spacing:.14em}
.activity-day-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 2px 6px;border-bottom:1px solid #222b3b;color:#dbe3ed}
.activity-day-label span{font-size:.7rem;font-weight:850;letter-spacing:-.01em}
.activity-day-label small{font-size:.61rem;color:#758196}
.transaction-timeline .activity-day-label + .data-row{border-top:0}
@media(max-width:600px){
  .activity-month-heading{margin-top:16px;margin-bottom:3px}
  .activity-day-label{padding:8px 1px 5px}
  .activity-day-label span{font-size:.68rem}
  .activity-day-label small{font-size:.59rem}
}


/* 2.0.7-beta3: Today spending guidance — native Finance dashboard surface. */
.today-budget-card{margin:0 0 12px;padding:16px 17px 14px;border:1px solid #29384b;border-radius:16px;background:linear-gradient(180deg,#111824,#0d131d);box-shadow:0 10px 28px rgba(0,0,0,.09);overflow:hidden;scroll-margin-top:76px}
.today-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
.today-card-head>div{min-width:0;display:grid;gap:3px}.today-card-head .context-label{color:var(--fm-cyan)}
.today-card-head strong{font-size:1.58rem;line-height:1.04;letter-spacing:-.045em;color:#f7f9fc;font-variant-numeric:tabular-nums}
.today-status{flex:0 0 auto;display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border:1px solid rgba(57,198,244,.25);border-radius:999px;background:rgba(57,198,244,.07);color:#7fdcf8;font-size:.64rem;font-weight:850;white-space:nowrap}
.today-meter{height:7px;border-radius:999px;background:#1a2230;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.today-meter>i{display:block;height:100%;width:0;border-radius:inherit;background:var(--fm-cyan);transition:width .3s cubic-bezier(.22,1,.36,1),background .2s ease}
.today-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:13px;border-top:1px solid #232d3e}
.today-budget-card:not(.is-over) .today-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.today-metrics>div{min-width:0;display:grid;gap:2px;padding:11px 13px 0}.today-metrics>div:first-child{padding-left:0}.today-metrics>div+div{border-left:1px solid #232d3e}
.today-metrics span,.today-metrics small{color:#7f8b9c;font-size:.63rem}.today-metrics b{font-size:.84rem;color:#eaf0f6;letter-spacing:-.015em}.today-metrics small{line-height:1.3}
.today-budget-card.is-warning .today-card-head .context-label,.today-budget-card.is-warning .today-status{color:#ffc45c}.today-budget-card.is-warning .today-status{border-color:rgba(255,176,32,.28);background:rgba(255,176,32,.08)}.today-budget-card.is-warning .today-meter>i{background:var(--fm-amber)}
.today-budget-card.is-reached .today-card-head .context-label,.today-budget-card.is-reached .today-status{color:#73e7ad}.today-budget-card.is-reached .today-status{border-color:rgba(43,212,125,.28);background:rgba(43,212,125,.08)}.today-budget-card.is-reached .today-meter>i{background:var(--fm-green)}
.today-budget-card.is-over{border-color:rgba(255,95,109,.32);background:linear-gradient(180deg,#17151d,#101219)}.today-budget-card.is-over .today-card-head .context-label,.today-budget-card.is-over .today-status{color:#ff8f99}.today-budget-card.is-over .today-status{border-color:rgba(255,95,109,.3);background:rgba(255,95,109,.08)}.today-budget-card.is-over .today-meter>i{background:var(--fm-red)}.today-budget-card.is-over .today-card-head strong{color:#fff1f2}
@media(max-width:680px){
  .today-budget-card{padding:14px 14px 12px;border-radius:14px}.today-card-head{gap:10px;margin-bottom:11px}.today-card-head strong{font-size:1.34rem}.today-status{font-size:.58rem;padding:4px 7px;min-height:25px}.today-metrics{margin-top:11px}.today-metrics>div{padding:10px 10px 0}.today-budget-card.is-over .today-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.today-budget-card.is-over .today-next-target{grid-column:1/-1;border-left:0;border-top:1px solid #232d3e;margin-top:9px;padding-left:0;padding-top:10px}
}
@media(max-width:390px){.today-card-head{display:grid}.today-status{justify-self:start}.today-card-head strong{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){.today-meter>i{transition:none!important}}
.notification-event-dot.daily-spending-exceeded{background:var(--fm-red);box-shadow:0 0 0 4px rgba(255,95,109,.09)}

/* 2.0.7-beta5: Today is the single primary budget surface; period Remaining is folded into it. */
.today-period-remaining b{color:#59cef7}
.today-period-remaining small{white-space:nowrap}

/* 2.0.7-beta5: Settings language selection follows the native Finance settings style. */
.language-setting{display:grid;gap:11px}
.language-setting-copy{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.language-setting-copy>strong{font-size:.72rem;color:#b5c4d3;font-weight:800}
.settings-language-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
.settings-language-option{appearance:none;min-width:0;min-height:50px;display:grid;grid-template-columns:34px minmax(0,1fr) 22px;align-items:center;gap:9px;padding:8px 10px;border:1px solid #213146;border-radius:13px;background:#0c1622;color:#a7b5c5;text-align:left;font:inherit;cursor:pointer;transition:border-color .16s,background .16s,color .16s,transform .16s}
.settings-language-option:hover{border-color:#31506d;background:#101c29;color:#e9f2fa}
.settings-language-option:active{transform:scale(.985)}
.settings-language-option.active{border-color:rgba(83,200,244,.5);background:rgba(57,181,228,.09);color:#eef9ff;box-shadow:inset 0 0 0 1px rgba(90,205,246,.05)}
.language-code{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#142335;color:#82a5c0;font-size:.61rem;font-weight:900;letter-spacing:.04em}
.settings-language-option.active .language-code{background:rgba(65,195,240,.13);color:#7cd9f8}
.language-name{min-width:0;font-size:.74rem;font-weight:820;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.language-check{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#1a2838;color:transparent}
.language-check .app-icon{width:12px;height:12px;stroke-width:2.4}
.settings-language-option.active .language-check{background:var(--accent);color:#07111d}
@media(max-width:680px){
  /* Keep the normal Today state compact: three metrics in one row.
     Only the overspend state grows into a balanced 2 x 2 metric grid. */
  .today-budget-card:not(.is-over) .today-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .today-budget-card:not(.is-over) .today-metrics>div{padding:10px 9px 0;border-top:0;margin-top:0}
  .today-budget-card:not(.is-over) .today-metrics>div:first-child{padding-left:0}
  .today-budget-card:not(.is-over) .today-metrics>div+div{border-left:1px solid #232d3e}
  .today-budget-card:not(.is-over) .today-metrics span,.today-budget-card:not(.is-over) .today-metrics small{font-size:.59rem;line-height:1.25}
  .today-budget-card:not(.is-over) .today-metrics b{font-size:.82rem}
  .today-budget-card.is-over .today-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .today-budget-card.is-over .today-metrics>div{padding:10px 10px 0}
  .today-budget-card.is-over .today-metrics>div:nth-child(odd){padding-left:0;border-left:0}
  .today-budget-card.is-over .today-metrics>div:nth-child(n+3){border-top:1px solid #232d3e;margin-top:9px;padding-top:10px}
  .today-budget-card.is-over .today-next-target{grid-column:auto;margin-top:9px;padding-left:10px;border-left:1px solid #232d3e;border-top:1px solid #232d3e}
}
@media(max-width:390px){
  .today-budget-card:not(.is-over) .today-metrics>div{padding-left:7px;padding-right:7px}
  .today-budget-card:not(.is-over) .today-metrics>div:first-child{padding-left:0}
  .today-budget-card:not(.is-over) .today-metrics span,.today-budget-card:not(.is-over) .today-metrics small{font-size:.55rem}
  .today-budget-card:not(.is-over) .today-metrics b{font-size:.76rem}
  .today-period-remaining small{white-space:normal}
}
@media(max-width:430px){.settings-language-picker{grid-template-columns:1fr}.language-setting-copy{align-items:flex-start}.settings-language-option{min-height:48px}}
@media(prefers-reduced-motion:reduce){.settings-language-option{transition:none!important}}

/* 2.0.7-beta6: receipt scans must be reviewed before they can create an expense. */
.receipt-scan-modal.is-reviewing .receipt-privacy,
.receipt-scan-modal.is-reviewing .receipt-scan-tabs,
.receipt-scan-modal.is-reviewing .receipt-photo-stage,
.receipt-scan-modal.is-reviewing .receipt-digital-stage,
.receipt-scan-modal.is-reviewing .receipt-progress{display:none!important}
.receipt-scan-modal.is-reviewing .receipt-scan-status{margin-top:8px}
.receipt-review-copy{margin:0;color:var(--muted);font-size:.74rem;line-height:1.5}
.receipt-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.receipt-review-field{display:grid;gap:6px;min-width:0;color:#a8c5dc;font-size:.7rem;font-weight:750}
.receipt-review-field>span{display:block;min-width:0}
.receipt-review-field input,.receipt-review-field select{width:100%;min-width:0;max-width:100%;background:#07111d;box-sizing:border-box}
.receipt-review-money{position:relative;min-width:0}
.receipt-review-money input{padding-right:40px}
.receipt-review-money>b{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.7rem;pointer-events:none}
.receipt-review-date-shell{width:100%;min-width:0;max-width:100%}
.receipt-review-date-shell>input[type="date"]{width:100%;min-width:0;max-width:100%;min-height:42px;text-align:left}
.receipt-review-date-shell>input[type="date"]::-webkit-date-and-time-value{text-align:left;min-width:0}
.receipt-review-actions{display:grid;grid-template-columns:.8fr 1.35fr;gap:9px}
.receipt-review-actions .btn{min-width:0}
.receipt-duplicate-dialog{position:absolute;z-index:8;inset:0;display:grid;place-items:center;padding:18px;background:rgba(1,6,12,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.receipt-duplicate-dialog[hidden]{display:none!important}
.receipt-duplicate-card{width:min(430px,100%);padding:18px;border:1px solid rgba(255,184,92,.28);border-radius:20px;background:#0b1521;box-shadow:0 26px 80px rgba(0,0,0,.56);display:grid;gap:14px}
.receipt-duplicate-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(255,184,92,.1);color:#f2bb6c;border:1px solid rgba(255,184,92,.18)}
.receipt-duplicate-icon .app-icon{width:21px;height:21px}
.receipt-duplicate-copy{display:grid;gap:6px}
.receipt-duplicate-copy h3{margin:0;font-size:1rem;line-height:1.25}
.receipt-duplicate-copy p{margin:0;color:var(--muted);font-size:.74rem;line-height:1.5}
.receipt-duplicate-copy small{display:block;min-height:1em;color:#c7d3df;font-size:.68rem;line-height:1.45}
.receipt-duplicate-actions{display:grid;grid-template-columns:1fr 1.15fr;gap:9px}
@media(max-width:520px){
  .receipt-review-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .receipt-review-field{font-size:.66rem}
  .receipt-review-field input,.receipt-review-field select{padding-left:9px;padding-right:9px}
  .receipt-review-date-shell>input[type="date"]{padding-left:8px;padding-right:8px;font-size:.78rem}
  .receipt-review-actions{grid-template-columns:1fr}
  .receipt-review-actions .btn-primary{order:-1}
  .receipt-duplicate-dialog{align-items:end;padding:12px 12px max(12px,env(safe-area-inset-bottom))}
  .receipt-duplicate-card{border-radius:20px;padding:16px}
}
@media(max-width:360px){
  .receipt-review-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px}
  .receipt-review-field input,.receipt-review-field select{font-size:.72rem;padding-left:7px;padding-right:7px}
  .receipt-review-money input{padding-right:31px}
  .receipt-review-money>b{right:7px;font-size:.62rem}
  .receipt-review-date-shell>input[type="date"]{font-size:.7rem;padding-left:6px;padding-right:6px}
  .receipt-duplicate-actions{grid-template-columns:1fr}
}

@media(max-width:560px){.receipt-paper-camera-frame{width:100%;max-height:56vh}.receipt-camera-controls{grid-template-columns:1fr}.receipt-camera-controls .btn-primary{order:-1}}


/* 2.0.7-beta10 unified in-app receipt camera */
.receipt-unified-camera-stage{display:grid;gap:10px}
.receipt-unified-camera-stage[hidden]{display:none!important}
.receipt-unified-camera-frame{aspect-ratio:3/4;min-height:0;max-height:min(61vh,590px);margin-inline:auto;width:min(100%,440px)}
.receipt-unified-camera-frame .receipt-paper-guide{inset:4.5% 14% 7%}
.receipt-auto-capture-badge{position:absolute;top:12px;right:12px;z-index:3;padding:6px 9px;border:1px solid rgba(132,172,204,.32);border-radius:999px;background:rgba(4,12,20,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#b7c6d7;font-size:.61rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}
.receipt-auto-capture-badge[data-state="ready"]{border-color:rgba(78,204,247,.62);background:rgba(22,102,133,.46);color:#9fe7ff;transform:scale(1.03)}
.receipt-auto-capture-badge[data-state="capture"]{border-color:rgba(99,218,158,.66);background:rgba(22,116,76,.5);color:#a6f2c7}
.receipt-camera-hint[data-tone="success"]{border-color:rgba(83,211,155,.38);color:#baf2d2}.receipt-camera-hint[data-tone="warning"]{border-color:rgba(240,189,98,.4);color:#ffd98d}.receipt-camera-hint[data-tone="error"]{border-color:rgba(255,123,135,.4);color:#ffb5bd}
.receipt-camera-subcopy{margin:0;color:var(--muted);font-size:.7rem;line-height:1.45;text-align:center}
.receipt-unified-camera-stage .receipt-camera-controls{grid-template-columns:1fr auto}
.receipt-unified-camera-stage .receipt-camera-controls [data-receipt-camera-start][hidden]{display:none!important}
.receipt-unified-camera-stage .receipt-camera-controls [data-receipt-capture]{min-height:46px}
@media(max-width:560px){.receipt-unified-camera-frame{width:100%;max-height:60vh}.receipt-unified-camera-stage .receipt-camera-controls{grid-template-columns:1fr}.receipt-unified-camera-stage .receipt-camera-controls [data-receipt-camera-start]{width:100%}}


/* 2.0.7-beta12: reliable auto shutter + one live scanner status + compact processing UI */
.receipt-status-home{min-height:0}
.receipt-status-home:empty{display:none}
.receipt-status-home>.receipt-scan-status{margin:10px 0 0}
.receipt-unified-camera-frame{
  height:min(46vh,430px);
  width:auto;
  max-width:100%;
  max-height:none;
  min-height:260px;
  aspect-ratio:4/5;
}
.receipt-unified-camera-frame video,
.receipt-camera-freeze{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#03080e}
.receipt-unified-camera-frame video{z-index:0}
.receipt-camera-freeze{z-index:1;transition:filter .18s ease,transform .18s ease,opacity .18s ease}
.receipt-camera-freeze[hidden]{display:none!important}
.receipt-unified-camera-frame .receipt-paper-guide{z-index:2}
.receipt-unified-camera-frame>.receipt-scan-status{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  width:max-content;
  max-width:86%;
  min-height:0;
  margin:0;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(3,9,15,.72);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  color:#e9f6ff;
  font-size:.67rem;
  font-weight:800;
  line-height:1.35;
  text-align:center;
  box-shadow:0 8px 28px rgba(0,0,0,.26);
  pointer-events:none;
}
.receipt-unified-camera-frame>.receipt-scan-status[data-tone="success"]{color:#baf2d2;border-color:rgba(83,211,155,.34)}
.receipt-unified-camera-frame>.receipt-scan-status[data-tone="warning"]{color:#ffd98d;border-color:rgba(240,189,98,.38)}
.receipt-unified-camera-frame>.receipt-scan-status[data-tone="error"]{color:#ffb5bd;border-color:rgba(255,123,135,.38)}
.receipt-scan-modal.is-processing .receipt-unified-camera-frame video,
.receipt-scan-modal.is-processing .receipt-camera-freeze{filter:blur(9px) brightness(.46) saturate(.8);transform:scale(1.045)}
.receipt-scan-modal.is-processing .receipt-paper-guide,
.receipt-scan-modal.is-processing .receipt-auto-capture-badge{opacity:0;pointer-events:none}
.receipt-scan-modal.is-processing .receipt-unified-camera-frame>.receipt-scan-status{
  top:50%;
  bottom:auto;
  transform:translate(-50%,-50%);
  max-width:78%;
  padding:12px 15px 12px 42px;
  border-radius:16px;
  background:rgba(4,11,19,.74);
  font-size:.78rem;
  box-shadow:0 16px 50px rgba(0,0,0,.35);
}
.receipt-scan-modal.is-processing .receipt-unified-camera-frame>.receipt-scan-status::before{
  content:"";
  position:absolute;
  left:15px;
  top:50%;
  width:15px;
  height:15px;
  margin-top:-8px;
  border:2px solid rgba(255,255,255,.24);
  border-top-color:#61d4fb;
  border-radius:50%;
  animation:receipt-processing-spin .8s linear infinite;
}
.receipt-scan-modal.is-processing .receipt-camera-controls,
.receipt-scan-modal.is-processing .receipt-camera-subcopy,
.receipt-scan-modal.is-processing .receipt-progress{visibility:hidden}
@keyframes receipt-processing-spin{to{transform:rotate(360deg)}}
@media(max-width:560px){
  .receipt-unified-camera-frame{height:min(43vh,390px);width:auto;max-width:92%;min-height:250px}
  .receipt-unified-camera-frame .receipt-paper-guide{inset:5% 12% 7%}
}
@media(max-width:390px){.receipt-unified-camera-frame{height:min(41vh,360px);min-height:235px}}
@media(prefers-reduced-motion:reduce){.receipt-scan-modal.is-processing .receipt-unified-camera-frame>.receipt-scan-status::before{animation:none}}

/* 2.0.7-beta13: automatic notification acknowledgement + savings-funded expenses */
.savings-summary-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.savings-action-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;margin-bottom:18px}
.savings-period-card,.savings-use-card{padding:18px}.savings-period-card{display:grid;align-content:start;gap:16px}.savings-period-value{display:flex;align-items:end;justify-content:space-between;gap:14px}.savings-period-value strong{font-size:1rem}.savings-period-value span{font-size:.72rem;color:#8fa0b5;font-weight:800}.savings-period-meter{margin:0}.savings-period-action{margin-top:2px}.savings-complete-pill{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;border:1px solid rgba(84,214,159,.35);background:rgba(84,214,159,.09);color:#62dda7;font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.savings-use-card .section-title{align-items:flex-start}.savings-use-card .section-title p{margin:4px 0 0;color:#8795a9;font-size:.65rem;line-height:1.45}.savings-available-amount{color:#68d8ff;font-size:1rem;white-space:nowrap}.savings-use-note{display:block;color:#8391a6;font-size:.62rem;line-height:1.5;margin-top:-2px}.transaction-line.is-savings-funded .row-icon,.data-row.is-savings-funded .row-icon{color:#b89cff;background:rgba(169,140,255,.1)}.savings-funded-meta{color:#b89cff;font-weight:800}
@media(max-width:760px){.savings-summary-three{grid-template-columns:1fr}.savings-action-grid{grid-template-columns:1fr}.savings-period-card,.savings-use-card{padding:15px}.savings-use-card .field-grid.two{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.savings-use-card .field-grid.two{grid-template-columns:1fr}}

/* beta15: clearer savings flow + fixed-expense duration */
.savings-balance-focus{display:grid;gap:3px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(7,17,29,.34)}
.savings-balance-focus span,.savings-flow-grid span,.savings-available-inline span{color:var(--muted);font-size:.66rem}
.savings-balance-focus strong{font-size:1.7rem;color:#68d8ff}.savings-flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:13px;overflow:hidden}.savings-flow-grid>div{display:grid;gap:3px;padding:12px}.savings-flow-grid>div+div{border-left:1px solid var(--line)}.savings-flow-grid strong{font-size:.95rem}.savings-flow-grid .is-used strong{color:#c8a7ff}.savings-spent-callout{padding:10px 12px;border-radius:12px;background:rgba(180,145,255,.09);border:1px solid rgba(180,145,255,.2);color:#d0b7ff;font-size:.68rem;font-weight:750}.savings-available-inline{display:grid;text-align:right;gap:2px}.savings-available-inline strong{color:#68d8ff;font-size:1rem}.fixed-payment-state.inactive{color:#8090a7}.fixed-not-due-badge{display:inline-flex;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:#8291a7;font-size:.6rem;font-weight:800;white-space:nowrap}
@media(max-width:760px){.savings-flow-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.savings-flow-grid>div{padding:10px 8px}.savings-flow-grid strong{font-size:.8rem}}

/* beta19: true multi-currency entry controls */
.money-input-with-currency input{padding-right:86px}
.money-input-with-currency>select,.receipt-review-money-currency>select{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:auto;min-width:64px;max-width:76px;min-height:30px;padding:4px 22px 4px 8px;border:1px solid var(--line);border-radius:9px;background:rgba(8,19,32,.92);color:#9edfff;font-size:.68rem;font-weight:850;line-height:1;box-shadow:none}
.receipt-review-money-currency{position:relative}.receipt-review-money-currency input{padding-right:82px}
@media(max-width:480px){.money-input-with-currency>select,.receipt-review-money-currency>select{min-width:60px;max-width:70px;font-size:.64rem}}

/* beta19: interactive daily guidance history */
.trend-day-detail{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(7,17,29,.38);display:grid;gap:12px}.trend-day-detail[hidden]{display:none!important}.trend-day-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.trend-day-detail-head>div{display:grid;gap:3px}.trend-day-detail-head strong{font-size:1rem}.trend-day-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:11px;overflow:hidden}.trend-day-metrics span{display:grid;gap:3px;padding:10px;color:var(--muted);font-size:.65rem}.trend-day-metrics span+span{border-left:1px solid var(--line)}.trend-day-metrics b{color:var(--text);font-size:.86rem}.trend-day-transactions{display:grid}.trend-day-transaction{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 2px;border-top:1px solid rgba(127,151,180,.13)}.trend-day-transaction>span{display:grid;gap:2px;min-width:0}.trend-day-transaction strong{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trend-day-transaction small,.trend-day-empty,.trend-day-more{color:var(--muted);font-size:.62rem}.trend-day-transaction>b{white-space:nowrap;font-size:.72rem}.trend-day-more{padding-top:8px}.trend-chart svg [role=button]:focus{outline:none;stroke:#7ce0ff;stroke-width:1.5px}
@media(max-width:560px){.trend-day-detail{padding:12px}.trend-day-detail-head{align-items:center}.trend-day-metrics span{padding:9px 8px}}

/* beta19: Today card day-by-day history */


/* beta19: the complete Today card opens a visual day-by-day history */
.today-budget-card[data-today-history-toggle]{cursor:pointer;transition:border-color .18s ease,background .18s ease;outline:none}.today-budget-card[data-today-history-toggle]:focus-visible{box-shadow:0 0 0 2px rgba(87,205,244,.48)}.today-budget-card.history-open{cursor:default}.today-history-panel{margin-top:16px;padding-top:15px;border-top:1px solid var(--line);display:grid;gap:13px;cursor:default}.today-history-panel[hidden]{display:none!important}.today-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.today-history-head>div{display:grid;gap:3px}.today-history-head strong{font-size:.98rem}.today-history-head>small{max-width:360px;color:var(--muted);font-size:.62rem;line-height:1.45;text-align:right}.today-history-graph-wrap{display:grid;gap:8px;padding:10px 10px 5px;border:1px solid var(--line);border-radius:13px;background:rgba(5,13,23,.36)}.today-history-legend{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:.59rem;font-weight:700}.today-history-legend span{display:flex;align-items:center;gap:6px}.today-history-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.history-legend-spent{background:#4bc9ef}.history-legend-target{background:#9d8cff;border-radius:999px!important;height:3px!important}.today-history-chart{height:170px;min-width:0;overflow:hidden}.today-history-chart{display:flex;align-items:center;justify-content:center}.today-history-chart svg{width:100%;max-width:820px;height:100%;display:block;overflow:visible;margin:0 auto}.today-history-chart svg.is-sparse{max-width:520px}.today-history-axis{stroke:rgba(133,153,180,.2);stroke-width:1}.today-history-axis-label{fill:#7f8ea4;font-size:10px}.today-history-axis-label.is-selected{fill:#dce8f5;font-weight:800}.today-history-bar{fill:rgba(75,201,239,.72);transition:opacity .15s ease,filter .15s ease}.today-history-bar.is-over{fill:rgba(255,100,116,.72)}.today-history-bar.is-selected{opacity:1;filter:brightness(1.2)}.today-history-target-line{fill:none;stroke:#9d8cff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.82}.today-history-target-dot{fill:#9d8cff;stroke:#101823;stroke-width:2}.today-history-target-dot.is-selected{fill:#fff}.today-history-hit{cursor:pointer}.today-history-nav{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:10px}.today-history-nav>div{text-align:center;display:grid;gap:1px}.today-history-nav strong{font-size:.82rem}.today-history-nav small{font-size:.59rem;color:var(--muted)}.today-history-nav-btn{width:42px;height:38px;border:1px solid var(--line);border-radius:11px;background:rgba(8,18,31,.55);color:var(--text);font-size:1.25rem;line-height:1}.today-history-nav-btn:disabled{opacity:.3;cursor:not-allowed}.today-history-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden}.today-history-comparison>div{display:grid;gap:3px;padding:10px 12px;min-width:0}.today-history-comparison>div+div{border-left:1px solid var(--line)}.today-history-comparison span{color:var(--muted);font-size:.62rem}.today-history-comparison b{font-size:.85rem;overflow-wrap:anywhere}.today-history-transactions{display:grid}.today-history-transaction{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 2px;border-top:1px solid rgba(127,151,180,.12)}.today-history-transaction>span{display:grid;gap:2px;min-width:0}.today-history-transaction strong{font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-history-transaction small,.today-history-empty,.today-history-more{color:var(--muted);font-size:.6rem}.today-history-transaction>b{white-space:nowrap;font-size:.7rem}.today-history-more{padding-top:7px}@media(hover:hover) and (pointer:fine){.today-budget-card[data-today-history-toggle]:not(.history-open):hover{border-color:rgba(78,194,232,.42);background:linear-gradient(180deg,#121b28,#0e151f)}}@media(max-width:560px){.today-history-head{display:grid}.today-history-head>small{text-align:left}.today-history-chart{height:145px}.today-history-graph-wrap{padding:9px 7px 4px}.today-history-comparison>div{padding:9px 8px}.today-history-comparison span{font-size:.56rem}.today-history-comparison b{font-size:.72rem}}


/* Finance 2.3.3 — transaction filter reliability and mobile containment. */
.transaction-filter-surface,
.transaction-filters,
.transaction-filters > *,
.history-filter-more,
.history-filter-grid,
.history-filter-grid > label,
.search-input-wrap{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.search-input-wrap input,
.history-filter-grid input,
.history-filter-grid select{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.history-filter-grid select{ text-overflow:ellipsis; }
.filter-actions{min-width:0;flex-wrap:wrap}
@media(max-width:600px){
  .transaction-filter-surface{padding:12px;max-width:100%;}
  .transaction-filters{grid-template-columns:minmax(0,1fr);width:100%;}
  .transaction-filters .filter-search,
  .transaction-filters .filter-actions,
  .history-filter-more{grid-column:1/-1;min-width:0;}
  .history-filter-grid{grid-template-columns:minmax(0,1fr);width:100%;gap:10px;}
  .history-filter-grid > label{width:100%;overflow:hidden;}
  .history-filter-grid input[type="date"],
  .history-filter-grid input[type="month"]{-webkit-appearance:none;appearance:none;}
  .filter-actions .btn{width:100%;min-width:0;}
  .filter-actions .action-link{padding:8px 2px;}
}
