@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root{
  --bg:#f6f7fc;--panel:#fff;--text:#15162a;--muted:#72758b;--line:#e9eaf3;
  --purple:#6f55e8;--purple2:#8c6bf4;--lav:#f1edff;--green:#17b763;--red:#ff4d5e;
  --orange:#ff922e;--blue:#3c7cf4;--pink:#e94fad;--shadow:0 12px 34px rgba(50,39,105,.07);
  --radius:20px
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;font-family:"Plus Jakarta Sans",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);font-weight:400;line-height:1.5;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit} button{cursor:pointer}.hidden{display:none!important}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#fff;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;z-index:30}
.brand{display:flex;align-items:center;gap:12px;padding:0 6px 22px}.brand strong,.brand span{display:block}.brand strong{font-size:18px}.brand span{font-size:14px;font-weight:700}.brand-orb{width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#715af2,#5642d9);color:#fff;display:grid;place-items:center;font-size:30px;box-shadow:0 10px 26px #6f55e844}.brand-orb.small{width:42px;height:42px;border-radius:13px;font-size:22px}
.side-nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#4b4e68;padding:11px 12px;border-radius:12px;text-align:left;display:flex;gap:11px;align-items:center;font-weight:650}.nav-item:hover{background:#f7f5ff}.nav-item.active{color:#fff;background:linear-gradient(90deg,var(--purple),#9c7cff);box-shadow:0 7px 18px #7459e82b}.nav-icon{width:23px;text-align:center;font-size:18px}
.sidebar-quote{margin-top:auto;padding:18px;border-radius:18px;background:linear-gradient(160deg,#f3efff,#fff);min-height:170px;position:relative;overflow:hidden}.sidebar-quote b{font-size:30px;color:#8469ef}.sidebar-quote p{font-weight:650;line-height:1.55;font-size:13px}.plants{position:absolute;bottom:14px;right:15px;font-size:34px}.logout-btn{margin-top:10px;border:0;background:transparent;color:#8a8da3;padding:10px}
.main-area{margin-left:230px;min-height:100vh;padding:20px 24px 46px}.topbar{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 7px 24px rgba(50,39,105,.04);position:sticky;top:14px;z-index:20}.topbar h1{font-size:19px;margin:0 0 4px}.topbar p{margin:0;color:var(--muted);font-size:12px}.top-actions{display:flex;align-items:center;gap:9px}.period-picker{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.period-picker select{border:0;padding:9px 10px;background:transparent;outline:0;color:#333750}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:12px;width:41px;height:41px;position:relative}.badge{position:absolute;right:-3px;top:-4px;background:var(--red);color:#fff;border-radius:20px;min-width:18px;height:18px;padding:0 5px;font-size:10px;display:grid;place-items:center}.badge:empty{display:none}.btn{border:0;border-radius:12px;padding:10px 14px;font-weight:750}.btn.primary{background:linear-gradient(90deg,var(--purple),#8d68f2);color:#fff;box-shadow:0 7px 15px #6f55e829}.btn.secondary{background:#f2efff;color:#674ee2}.btn.danger{background:#fff0f2;color:#db3548}.btn.ghost{background:#fff;border:1px solid var(--line);color:#55586e}.btn.wide{width:100%;padding:13px}.view{padding-top:18px}
.grid{display:grid;gap:14px}.kpi-grid{grid-template-columns:repeat(5,minmax(150px,1fr))}.kpi-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi-card{padding:17px;min-height:122px}.kpi-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.kpi-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px}.kpi-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.kpi-value{font-size:21px;font-weight:850;letter-spacing:-.03em}.kpi-meta{font-size:10px;color:var(--muted);margin-top:6px}.green{color:var(--green)}.red{color:var(--red)}.blue{color:var(--blue)}.purple{color:var(--purple)}.orange{color:var(--orange)}.bg-green{background:#eafaf1}.bg-red{background:#fff0f2}.bg-blue{background:#edf4ff}.bg-purple{background:#f1edff}.bg-orange{background:#fff5e9}
.dashboard-main{grid-template-columns:1.45fr 1.15fr .75fr;margin-top:14px}.panel{padding:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.panel-title h2,.section-title h2{font-size:15px;margin:0}.panel-title p{font-size:11px;color:var(--muted);margin:3px 0 0}.panel-actions{display:flex;gap:7px}.mini-select{border:1px solid var(--line);border-radius:10px;padding:7px 9px;background:#fff;color:#55586e;font-size:11px}.chart-box{height:260px}.chart-svg-wrap{width:100%;height:100%}.chart-box svg{width:100%;height:100%;overflow:visible;display:block}.chart-gridline{stroke:#e9ebf3;stroke-width:1}.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-point{opacity:0;transition:opacity .15s,r .15s}.chart-box svg:hover .chart-point{opacity:.45}.chart-point:hover{opacity:1!important;r:5}.chart-axis-label{fill:#8a8da3;font-size:11px;font-family:Inter,system-ui,sans-serif}.chart-y-label{font-variant-numeric:tabular-nums}.chart-axis-caption{fill:#a2a4b4;font-size:10px;font-family:Inter,system-ui,sans-serif}.chart-area{opacity:.08}.legend{display:flex;gap:15px;font-size:10px;color:var(--muted);margin-bottom:10px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
.category-layout{display:grid;grid-template-columns:150px 1fr;gap:15px;align-items:center}.donut{width:145px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative}.donut:after{content:"";width:82px;height:82px;background:#fff;border-radius:50%;position:absolute}.donut-center{position:relative;z-index:2;text-align:center}.donut-center strong{display:block;font-size:20px}.donut-center span{font-size:10px;color:var(--muted)}.category-list{display:grid;gap:8px}.category-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;font-size:10px}.category-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-value{font-weight:700}.category-pct{color:var(--muted);width:40px;text-align:right}
.budget-ring{width:130px;height:130px;margin:15px auto;border-radius:50%;display:grid;place-items:center;position:relative}.budget-ring:after{content:"";position:absolute;width:92px;height:92px;background:#fff;border-radius:50%}.budget-ring .inside{z-index:2;text-align:center}.budget-ring strong{font-size:24px;display:block}.budget-ring span{font-size:10px;color:var(--muted)}.stat-lines{display:grid;gap:11px;margin-top:14px}.stat-line{display:flex;justify-content:space-between;font-size:11px}.stat-line b{font-size:11px}
.dashboard-bottom{grid-template-columns:1fr 1.25fr 1fr;margin-top:14px}.need-want{display:flex;align-items:center;gap:22px}.progress-list{display:grid;gap:13px}.progress-item{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center}.progress-icon{width:34px;height:34px;border-radius:10px;background:#f2efff;display:grid;place-items:center}.progress-name{font-size:11px;font-weight:750}.progress-nums{font-size:9px;color:var(--muted);margin-top:2px}.bar{height:6px;background:#eff0f6;border-radius:100px;overflow:hidden;margin-top:6px}.bar>span{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,#12ad5b,#72d455)}.progress-pct{font-size:10px;color:var(--green);font-weight:750}.reminder-list{display:grid;gap:6px}.reminder-row{display:grid;grid-template-columns:55px 1fr auto;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center;font-size:10px}.reminder-row:last-child{border-bottom:0}.reminder-date{color:var(--blue);font-weight:750}.reminder-title{font-weight:750}.reminder-sub{font-size:9px;color:var(--muted);margin-top:2px}.reminder-amt{font-weight:750}
.section-header{display:flex;justify-content:space-between;align-items:flex-end;margin:4px 0 14px}.section-header h1{margin:0;font-size:22px}.section-header p{margin:5px 0 0;color:var(--muted);font-size:12px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.search{position:relative;min-width:260px}.search input{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px 10px 35px;outline:0;background:#fff}.search span{position:absolute;left:12px;top:10px}.filter-pills{display:flex;gap:7px;flex-wrap:wrap}.pill{border:1px solid var(--line);background:#fff;color:#61647a;border-radius:100px;padding:7px 12px;font-size:11px;font-weight:700}.pill.active{background:var(--purple);color:#fff;border-color:var(--purple)}
.transactions-shell{display:grid;grid-template-columns:1fr 300px;gap:14px}.transaction-list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.date-group{font-size:11px;font-weight:800;margin:12px 4px;color:#33364e}.transaction-row{display:grid;grid-template-columns:42px 1fr auto 28px;gap:11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;margin-bottom:8px;background:#fff}.transaction-row:hover{border-color:#cfc9ef;box-shadow:0 7px 20px #4f44900b}.transaction-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:#f4f1ff}.transaction-name{font-size:13px;font-weight:850}.transaction-meta{font-size:10px;color:var(--muted);margin-top:3px}.transaction-amount{text-align:right;font-size:16px;font-weight:900;letter-spacing:-.2px}.transaction-time{font-size:10px;color:var(--muted);margin-top:3px;text-align:right}.more-btn{border:0;background:transparent;font-size:18px;color:#aaa}.summary-sidebar{display:grid;gap:12px;align-content:start}.mini-kpi{padding:16px;border-radius:16px;background:#fff;border:1px solid var(--line)}.mini-kpi span{display:block;font-size:10px;color:var(--muted)}.mini-kpi strong{display:block;font-size:18px;margin-top:5px}.split-stat{display:flex;justify-content:space-between;gap:10px;margin-top:9px}.split-stat div{flex:1;padding:10px;border-radius:12px;background:#f8f8fc}.split-stat b,.split-stat span{display:block}.split-stat span{font-size:9px;color:var(--muted);margin-bottom:3px}.split-stat b{font-size:11px}
.budget-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.overview-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.overview-card span{font-size:10px;color:var(--muted)}.overview-card b{display:block;font-size:19px;margin-top:5px}.budget-list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.budget-item{display:grid;grid-template-columns:1.3fr 1.6fr 90px 80px;gap:16px;align-items:center;padding:13px 4px;border-bottom:1px solid var(--line)}.budget-item:last-child{border-bottom:0}.budget-cat{display:flex;gap:9px;align-items:center;font-size:12px;font-weight:750}.budget-values{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:6px}.status-chip{padding:5px 9px;border-radius:100px;font-size:9px;font-weight:800;text-align:center}.safe{background:#eafaf1;color:#16894c}.warning{background:#fff5e7;color:#e1770e}.danger-chip{background:#fff0f2;color:#dc3548}
.account-grid{grid-template-columns:repeat(4,1fr)}.account-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.account-top{display:flex;justify-content:space-between;align-items:center}.account-icon{width:38px;height:38px;background:#f1edff;border-radius:12px;display:grid;place-items:center}.account-name{font-size:11px;font-weight:800;margin-top:18px}.account-balance{font-size:20px;font-weight:850;margin:5px 0}.account-type{font-size:10px;color:var(--muted)}
.account-icon-preview{min-height:58px;display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid #e3def8;border-radius:12px;background:linear-gradient(135deg,#f8f6ff,#fff)}.account-icon-preview>span{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:#eee9ff;font-size:22px}.account-icon-preview b,.account-icon-preview small{display:block}.account-icon-preview b{font-size:11px;color:#45485f}.account-icon-preview small{margin-top:2px;font-size:9px;color:var(--muted)}
.goal-grid{grid-template-columns:repeat(2,1fr)}.goal-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:var(--shadow)}.goal-head{display:flex;justify-content:space-between;gap:12px}.goal-title{display:flex;gap:10px;align-items:center;font-weight:800;font-size:12px}.goal-icon{width:38px;height:38px;border-radius:12px;background:#eef4ff;display:grid;place-items:center}.goal-money{font-size:11px;margin-top:13px}.goal-money b{font-size:13px}.goal-foot{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:8px}
.tabs{display:flex;gap:8px;margin:8px 0 15px}.tab{border:0;background:#f4f3f9;color:#66697e;padding:9px 15px;border-radius:10px;font-weight:750;font-size:11px}.tab.active{background:#fff0f2;color:var(--red);box-shadow:inset 0 -2px 0 var(--red)}.debt-list{display:grid;gap:10px}.debt-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:15px;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center}.debt-info h3{font-size:12px;margin:0 0 5px}.debt-meta{font-size:9px;color:var(--muted)}.debt-right{text-align:right}.debt-right b{font-size:12px}.debt-right span{font-size:9px;color:var(--muted);display:block;margin-top:4px}
.report-grid{grid-template-columns:repeat(4,1fr);margin-bottom:14px}.report-chart{height:270px}.month-bars{height:220px;display:flex;gap:9px;align-items:flex-end;padding:12px 8px 26px;border-bottom:1px solid var(--line)}.month-col{flex:1;height:100%;display:flex;align-items:flex-end;gap:2px;position:relative}.month-col span.bar-inc,.month-col span.bar-exp{flex:1;border-radius:5px 5px 0 0;min-height:1px}.month-col span.bar-inc{background:#57ce8c}.month-col span.bar-exp{background:#ff7b88}.month-label{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:8px;color:var(--muted)}
.insight{background:linear-gradient(120deg,#6e54e8,#9d75f8);color:#fff;border-radius:18px;padding:19px;box-shadow:var(--shadow)}.insight h3{margin:0 0 12px;font-size:14px}.insight ul{margin:0;padding-left:19px;display:grid;gap:8px;font-size:11px;line-height:1.5}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px}.simple-table{width:100%;border-collapse:collapse;font-size:11px}.simple-table th,.simple-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.simple-table th{color:#76798c;font-size:9px;text-transform:uppercase;letter-spacing:.04em;background:#fafafd}.simple-table tr:last-child td{border-bottom:0}
.empty{padding:45px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #dcddea;border-radius:18px}.empty b{display:block;color:#4b4e68;margin-bottom:6px}
.modal-backdrop{position:fixed;inset:0;background:rgba(22,20,41,.32);display:grid;place-items:center;z-index:100;padding:18px;backdrop-filter:blur(4px)}.modal{width:min(560px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 28px 80px rgba(24,19,55,.25)}.modal.wide{width:min(720px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{margin:0;font-size:17px}.close-btn{border:0;background:#f4f4f8;width:32px;height:32px;border-radius:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:750;color:#55586d}.field input,.field select,.field textarea{border:1px solid #dedfeb;border-radius:11px;padding:10px 11px;outline:0;background:#fff;color:#33364e}.field textarea{min-height:80px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9e8bea;box-shadow:0 0 0 3px #7d63e712}.type-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px}.type-btn{border:1px solid var(--line);background:#fff;padding:10px;border-radius:11px;font-size:11px;font-weight:800}.type-btn.active.expense{background:#fff0f2;color:var(--red);border-color:#ffb6be}.type-btn.active.income{background:#eafaf1;color:var(--green);border-color:#a7e4bf}.type-btn.active.transfer{background:#f1edff;color:var(--purple);border-color:#cfc3ff}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.form-error{color:var(--red);font-size:11px;min-height:16px;margin-top:8px}
.toast{position:fixed;right:24px;bottom:24px;background:#25263a;color:#fff;padding:12px 15px;border-radius:12px;z-index:200;box-shadow:0 12px 30px #0002;font-size:12px}.toast.error{background:#c93446}.toast.success{background:#168b4e}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 15%,#ece5ff,transparent 30%),radial-gradient(circle at 85% 85%,#e8f9f0,transparent 30%),#f7f7fc}.login-card{width:min(410px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:32px;box-shadow:0 28px 80px #49379615;text-align:center}.login-card .brand-orb{margin:0 auto 18px}.login-card h1{font-size:23px;margin:0}.login-card p{font-size:12px;color:var(--muted);margin:9px 0 24px}.login-card form{text-align:left}.login-card label{font-size:10px;font-weight:750}.login-card input{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;margin:7px 0 12px;outline:0}.login-card small{display:block;color:#999caf;margin-top:16px;font-size:9px}.mobile-nav,.fab{display:none}
.mobile-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-more-grid button{width:100%;min-height:76px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:12px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;color:#35384f}.mobile-more-grid button>span{width:40px;height:40px;border-radius:12px;background:#f1edff;display:grid;place-items:center;font-size:20px}.mobile-more-grid button div{min-width:0}.mobile-more-grid button b,.mobile-more-grid button small{display:block}.mobile-more-grid button b{font-size:12px}.mobile-more-grid button small{font-size:10px;color:var(--muted);line-height:1.35;margin-top:3px}.mobile-more-grid button i{font-style:normal;color:#a19bbd;font-size:18px}.mobile-more-grid button.active{border-color:#bbaef5;background:#f8f6ff}.mobile-more-grid button.active b,.mobile-more-grid button.active i{color:var(--purple)}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.dashboard-main{grid-template-columns:1fr 1fr}.dashboard-main>.panel:last-child{grid-column:1/-1}.dashboard-bottom{grid-template-columns:1fr 1fr}.dashboard-bottom>.panel:last-child{grid-column:1/-1}.account-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.sidebar{display:none}.main-area{margin-left:0;padding:12px 12px 84px}.topbar{top:8px;padding:13px}.topbar h1{font-size:16px}.topbar p,.period-picker #yearSelect,.top-actions .btn{display:none}.kpi-grid{grid-template-columns:1fr 1fr}.dashboard-main,.dashboard-bottom{grid-template-columns:1fr}.dashboard-main>.panel:last-child,.dashboard-bottom>.panel:last-child{grid-column:auto}.transactions-shell{grid-template-columns:1fr}.summary-sidebar{grid-template-columns:1fr 1fr}.account-grid,.goal-grid{grid-template-columns:1fr 1fr}.budget-item{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr 1fr}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:70;padding:7px 4px max(7px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:transparent;color:#85889d;font-size:9px;display:grid;gap:3px;place-items:center}.mobile-nav button span{font-size:18px}.mobile-nav button.active{color:var(--purple);font-weight:800}.fab{display:grid;place-items:center;position:fixed;bottom:58px;right:17px;width:52px;height:52px;border:0;border-radius:50%;background:linear-gradient(145deg,var(--purple),#8c68f4);color:#fff;font-size:25px;z-index:69;box-shadow:0 12px 24px #6e54e84a}}
@media(max-width:560px){.transaction-amount{font-size:15px}.transaction-name{font-size:12px}.kpi-grid{grid-template-columns:1fr 1fr}.kpi-card{min-height:105px;padding:13px}.kpi-value{font-size:17px}.dashboard-main .panel,.dashboard-bottom .panel{padding:14px}.category-layout{grid-template-columns:1fr}.donut{margin:auto}.section-header{align-items:stretch;gap:12px;flex-direction:column}.toolbar{align-items:stretch}.search{min-width:0;width:100%}.transactions-shell{display:block}.summary-sidebar{margin-top:12px;grid-template-columns:1fr 1fr}.account-grid,.goal-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.report-grid{grid-template-columns:1fr 1fr}.modal{padding:17px}.top-actions{gap:5px}.topbar{border-radius:14px}.period-picker select{padding:8px 7px}.transaction-row{grid-template-columns:38px 1fr auto 20px}.transaction-icon{width:36px;height:36px}.budget-overview{grid-template-columns:1fr}.overview-card{padding:13px}}

/* v1.2 serious-use additions */
.kpi-meta.good{color:#178650;font-weight:700}.kpi-meta.bad{color:#d74858;font-weight:700}.kpi-meta.muted{color:var(--muted)}
.quick-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.quick-facts>div{background:linear-gradient(145deg,#fff,#faf9ff);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.quick-facts span{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.quick-facts b{font-size:12px;color:#35384f}.orange{color:#d97816!important}
.chart-box-v2{height:315px;min-height:315px}.chart-value-strip{display:flex;gap:18px;flex-wrap:wrap;font-size:9px;color:#666a80;margin-bottom:7px}.chart-value-strip span{display:flex;align-items:center;gap:5px;font-weight:700}.chart-value-strip i{width:8px;height:8px;border-radius:50%}.cashflow-chart{display:grid;grid-template-columns:58px 1fr;height:235px;position:relative}.html-y-axis{position:relative;height:210px;margin-top:4px}.html-y-axis span{position:absolute;right:9px;transform:translateY(-50%);font-size:10px;color:#74788d;font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.chart-plot{position:relative;height:235px;padding-bottom:25px}.chart-plot svg{width:100%;height:210px!important;display:block;overflow:visible}.html-x-axis{position:absolute;left:0;right:0;bottom:5px;height:18px}.html-x-axis span{position:absolute;transform:translateX(-50%);font-size:9px;color:#8a8da3}.axis-note{text-align:right;font-size:8px;color:#a1a3b3;margin-top:-3px}.chart-hit{cursor:crosshair}
.category-button{width:100%;border:0;background:transparent;font-family:inherit;cursor:pointer;text-align:left;border-radius:8px}.category-button:hover{background:#f6f3ff}.category-button:focus-visible{outline:2px solid #b6a8f2}.drill-total{display:flex;justify-content:space-between;align-items:flex-end;background:#f5f2ff;border-radius:15px;padding:15px;margin-bottom:18px}.drill-total span{font-size:10px;color:var(--muted)}.drill-total strong{font-size:21px;color:var(--purple)}.modal-section-title{font-size:12px;margin:18px 0 10px}.sub-breakdown{display:grid;gap:10px}.sub-breakdown>div{display:grid;grid-template-columns:150px 1fr 150px;align-items:center;gap:10px;font-size:10px}.sub-breakdown .bar{height:7px}.sub-breakdown .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7862ed,#9d86ff)}.sub-breakdown b{text-align:right}.sub-breakdown small{font-weight:500;color:var(--muted);margin-left:5px}.mini-tx-list{display:grid;border:1px solid var(--line);border-radius:13px;overflow:hidden}.mini-tx-list>div{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:10px}.mini-tx-list>div:last-child{border-bottom:0}.mini-tx-list span small{display:block;color:var(--muted);margin-top:3px}
.advanced-filters{display:flex;gap:9px;align-items:end;margin:10px 0 13px;padding:10px;background:#f8f7fc;border:1px solid var(--line);border-radius:13px}.advanced-filters label{display:grid;gap:5px;font-size:8px;color:var(--muted);font-weight:750}.advanced-filters select{min-width:180px;border:1px solid #dedfeb;background:#fff;border-radius:9px;padding:8px 10px;font-size:10px;color:#474a61}.tag{display:inline-flex;padding:2px 6px;border-radius:99px;font-size:8px;font-weight:800}.tag.need{background:#eef5ff;color:#3975d9}.tag.want{background:#fff0f8;color:#c5448e}
.budget-cat>div{display:grid}.budget-cat small{font-size:8px;color:var(--muted);font-weight:500;margin-top:2px}.sub-budget{background:#fbfaff}.sub-budget .budget-cat{padding-left:16px}.helper-note{font-size:9px;color:var(--muted);margin:12px 2px 0;line-height:1.55}
.reports-detail{grid-template-columns:1.35fr .85fr;gap:14px}.ranking-list{display:grid}.ranking-list>div{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:10px}.ranking-list>div:last-child{border:0}.ranking-list span{display:flex;gap:8px;align-items:center}.ranking-list span b{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;background:#f1edff;color:var(--purple);font-size:8px}.ranking-list strong{font-size:10px}
.settings-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.taxonomy{display:grid;gap:12px}.tax-block{border:1px solid var(--line);border-radius:14px;padding:11px;background:#fff}.tax-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.tax-head>button:first-child{border:0;background:transparent;padding:0;font-size:11px;color:#34374f;cursor:pointer;text-align:left}.mini-add{border:0;background:#f1edff;color:var(--purple);font-size:8px;font-weight:800;border-radius:8px;padding:6px 8px;cursor:pointer}.sub-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.sub-chips button,.sub-chips span{border:1px solid #e5e2f1;background:#faf9fe;color:#65687d;border-radius:99px;padding:5px 8px;font-size:8px;cursor:pointer}.sub-chips button:hover{border-color:#a99bf0;color:var(--purple)}.info-list{font-size:11px;line-height:1.8;color:var(--muted);padding-left:18px}.body-muted{font-size:11px;line-height:1.7;color:var(--muted)}.security-note{background:#f5f2ff;padding:11px;border-radius:11px;font-size:9px;color:#63667b;margin-top:10px}

@media(max-width:1180px){.quick-facts{grid-template-columns:repeat(2,1fr)}.settings-grid,.reports-detail{grid-template-columns:1fr}.chart-box-v2{height:320px}.sub-breakdown>div{grid-template-columns:130px 1fr 135px}}
@media(max-width:850px){.advanced-filters{flex-wrap:wrap}.advanced-filters label{flex:1;min-width:160px}.advanced-filters select{width:100%;min-width:0}.cashflow-chart{grid-template-columns:50px 1fr}.html-y-axis span{font-size:9px}.quick-facts{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.quick-facts{grid-template-columns:1fr 1fr}.quick-facts>div{padding:10px}.chart-box-v2{height:300px;min-height:300px}.cashflow-chart{grid-template-columns:46px 1fr;height:220px}.chart-plot{height:220px}.chart-plot svg{height:195px!important}.html-y-axis{height:195px}.html-y-axis span{font-size:8px}.chart-value-strip{gap:8px;font-size:8px}.sub-breakdown>div{grid-template-columns:1fr}.sub-breakdown b{text-align:left}.advanced-filters{display:grid;grid-template-columns:1fr 1fr}.advanced-filters .btn{grid-column:1/-1}.settings-grid{grid-template-columns:1fr}}

/* v1.3 obligations, goals & payment history */
.goal-summary-strip,.obligation-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.goal-summary-strip>div,.obligation-overview>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;box-shadow:var(--shadow)}.goal-summary-strip span,.obligation-overview span{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.goal-summary-strip b,.obligation-overview b{font-size:14px}.obligation-overview{grid-template-columns:1.25fr repeat(3,1fr)}.obligation-overview .bar{margin-top:9px}
.goal-title>div:last-child{display:grid;gap:4px}.priority{display:inline-flex;width:max-content;padding:3px 7px;border-radius:99px;font-size:7px;font-weight:800}.priority.high{background:#fff0f2;color:#d13d50}.priority.medium{background:#fff6e8;color:#c47617}.priority.low{background:#edf7ff;color:#3b74c7}.goal-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.goal-details div{display:grid;gap:3px}.goal-details span{font-size:8px;color:var(--muted)}.goal-details b{font-size:9px}.card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.card-actions.compact{justify-content:flex-end}.card-actions .btn{padding:7px 10px;font-size:9px}.btn:disabled{opacity:.45;cursor:not-allowed}.context-card{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#f2efff,#faf9ff);border:1px solid #e4defb;border-radius:14px;padding:13px 15px;margin-bottom:14px}.context-card span{font-size:9px;color:var(--muted)}.context-card b{font-size:18px;color:var(--purple)}.context-card.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.context-card.split>div{display:grid;gap:4px}.history-summary{display:flex;align-items:center;justify-content:space-between;background:#f8f7fc;border:1px solid var(--line);border-radius:13px;padding:12px 14px;margin-bottom:12px}.history-summary span{font-size:9px;color:var(--muted)}.history-summary b{font-size:15px}.history-list{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}.history-list>div{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px;border-bottom:1px solid var(--line)}.history-list>div:last-child{border-bottom:0}.history-list b{font-size:11px}.history-list small{display:block;color:var(--muted);font-size:8px;margin-top:4px}.btn.mini{padding:6px 8px;font-size:8px}.debt-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.debt-title-line h3{margin:0}.debt-submeta{font-size:8px;color:var(--muted);margin-top:7px}
.reminder-cards{display:grid;gap:10px}.bill-card{display:grid;grid-template-columns:48px 1fr auto;gap:13px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px;box-shadow:0 8px 22px rgba(50,39,105,.035)}.bill-icon{width:46px;height:46px;border-radius:14px;background:#f3f0ff;display:grid;place-items:center;font-size:22px}.bill-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.bill-title h3{font-size:12px;margin:0}.bill-meta{font-size:8px;color:var(--muted);margin-top:4px}.bill-money{margin-top:8px}.bill-money b{font-size:15px}.bill-money small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.bill-progress{margin-top:9px}.bill-progress small{font-size:8px;color:var(--muted)}.bill-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.bill-actions .btn{padding:7px 9px;font-size:8px}.paid-date{font-size:9px;font-weight:800;color:var(--green);padding:6px 8px;background:#ecfaf2;border-radius:9px}.status-chip.danger-chip{background:#fff0f2;color:#d3384b}.obligation-mini{background:#faf9ff;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px}.obligation-mini>div:last-child{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:9px}.obligation-mini span{color:var(--muted)}.obligation-mini b{font-size:10px}.tag.auto{background:#f1edff;color:var(--purple)}.locked-tx{display:grid;place-items:center;width:26px;height:26px;font-size:11px;color:#8f91a2}.security-note b{color:var(--purple)}
@media(max-width:1000px){.obligation-overview{grid-template-columns:1fr 1fr}.goal-details{grid-template-columns:1fr 1fr}.bill-card{grid-template-columns:46px 1fr}.bill-actions{grid-column:1/-1;justify-content:flex-start;padding-left:59px}}
@media(max-width:650px){.goal-summary-strip,.obligation-overview{grid-template-columns:1fr 1fr}.goal-details{grid-template-columns:1fr}.bill-card{grid-template-columns:40px 1fr;padding:12px}.bill-icon{width:40px;height:40px}.bill-actions{padding-left:0}.context-card.split{grid-template-columns:1fr}.history-list>div{align-items:flex-start}.card-actions.compact{justify-content:flex-start}}


/* v1.3.1 - scalable filters */
.filter-grid{flex-wrap:wrap}.filter-grid label{flex:1;min-width:145px}.inline-search input{min-width:200px;border:1px solid #dedfeb;background:#fff;border-radius:9px;padding:8px 10px;font-size:10px;color:#474a61;outline:none}.date-group span{margin-left:7px;color:var(--muted);font-size:8px;font-weight:600}.advanced-filters .btn{white-space:nowrap}.advanced-filters input:focus,.advanced-filters select:focus{border-color:#a99af5;box-shadow:0 0 0 3px rgba(108,92,231,.08)}
@media(max-width:850px){.inline-search input{width:100%;min-width:0}.filter-grid label{min-width:160px}}
@media(max-width:560px){.filter-grid{grid-template-columns:1fr 1fr}.filter-grid label{min-width:0}.filter-grid .btn{grid-column:1/-1}}

.chart-empty-state{height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:6px;background:linear-gradient(180deg,#fbfaff,#f7f7fb);border:1px dashed #dedbea;border-radius:14px}.chart-empty-state>div{font-size:28px}.chart-empty-state b{font-size:12px;color:#50536a}.chart-empty-state span{font-size:9px;max-width:300px;line-height:1.6}

/* v1.3.2 - daily/date-range filtering */
.date-filter-panel{display:grid;grid-template-columns:minmax(210px,1fr) auto auto;gap:14px;align-items:center;margin:10px 0 12px;padding:13px 14px;background:linear-gradient(135deg,#f7f4ff,#fff);border:1px solid #e3def8;border-radius:15px;box-shadow:0 8px 20px rgba(77,60,150,.035)}
.date-filter-copy{display:grid;gap:3px}.date-filter-copy>span{font-size:8px;font-weight:850;color:var(--purple);text-transform:uppercase;letter-spacing:.04em}.date-filter-copy>b{font-size:12px;color:#33364e}.date-filter-copy>small{font-size:8px;color:var(--muted);line-height:1.45}
.date-preset-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.date-preset{border:1px solid #ded9f4;background:#fff;color:#5e6076;border-radius:99px;padding:7px 10px;font-size:9px;font-weight:800}.date-preset:hover{border-color:#a99af5;color:var(--purple)}.date-preset.active{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 5px 12px rgba(111,85,232,.18)}
.date-range-fields{display:flex;gap:7px;align-items:end}.date-range-fields>span{padding-bottom:8px;color:#aaa7bd;font-size:10px}.date-range-fields label{display:grid;gap:4px;font-size:8px;color:var(--muted);font-weight:750}.date-range-fields input{border:1px solid #dedfeb;background:#fff;border-radius:9px;padding:8px 9px;font-size:9px;color:#474a61;outline:0;min-width:132px}.date-range-fields input:focus{border-color:#a99af5;box-shadow:0 0 0 3px rgba(108,92,231,.08)}
.filter-summary-label{padding:12px 14px;border-radius:15px;background:linear-gradient(135deg,#6f55e8,#8c6bf4);color:#fff;display:grid;gap:4px}.filter-summary-label span{font-size:8px;opacity:.82;text-transform:uppercase;font-weight:800;letter-spacing:.04em}.filter-summary-label b{font-size:11px;line-height:1.35}
@media(max-width:1100px){.date-filter-panel{grid-template-columns:1fr 1fr}.date-filter-copy{grid-column:1/-1}.date-preset-row{justify-content:flex-start}.date-range-fields{justify-content:flex-end}}
@media(max-width:720px){.date-filter-panel{grid-template-columns:1fr}.date-filter-copy{grid-column:auto}.date-preset-row{justify-content:flex-start}.date-range-fields{justify-content:flex-start;flex-wrap:wrap}.date-range-fields input{min-width:0;width:100%}.date-range-fields label{flex:1;min-width:135px}}

/* v1.3.3 transaction form UX */
.transaction-form-help{grid-column:1/-1;padding:11px 14px;border-radius:12px;margin:4px 0 14px;font-size:12px;line-height:1.5;background:#f6f4ff;color:#5f5a76;border:1px solid #ebe7ff}
.transaction-form-help.income{background:#effcf5;color:#2e6f4a;border-color:#d5f3e2}
.transaction-form-help.expense{background:#fff5f6;color:#8b4b52;border-color:#ffe0e4}
.transaction-form-help.transfer{background:#f5f2ff;color:#64539a;border-color:#e5dcff}

/* v1.4.0 - beginner friendly + mobile quick entry */
.eyebrow{display:block;font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--purple);margin-bottom:5px}
.health-banner{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:18px 20px;margin-bottom:14px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.health-banner.good{background:linear-gradient(135deg,#f2fcf6,#fff);border-color:#d8f2e3}.health-banner.warning{background:linear-gradient(135deg,#fffaf0,#fff);border-color:#f5e3bd}.health-banner.danger{background:linear-gradient(135deg,#fff3f4,#fff);border-color:#ffd8dd}.health-banner.neutral{background:linear-gradient(135deg,#f5f2ff,#fff);border-color:#e5defd}
.health-icon{width:48px;height:48px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:24px;box-shadow:0 7px 20px rgba(50,39,105,.08)}.health-banner span{font-size:9px;color:var(--muted);font-weight:750}.health-banner h2{font-size:18px;margin:3px 0}.health-banner p{margin:0;font-size:11px;color:#5f6278;line-height:1.5}.beginner-kpis .kpi-label{text-transform:none;font-size:11px;letter-spacing:0}.help-badge{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#f1edff;color:var(--purple);font-weight:850;font-size:11px}
.action-center{margin:14px 0;background:linear-gradient(135deg,#f6f3ff,#fff);border:1px solid #e7e0ff;border-radius:18px;padding:15px}.action-title h2{font-size:14px;margin:0 0 10px}.action-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.action-cards button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;text-align:left;color:var(--text)}.action-cards button:hover{border-color:#cfc4fb;transform:translateY(-1px)}.action-cards i{font-style:normal;width:34px;height:34px;border-radius:10px;background:#f4f1ff;display:grid;place-items:center}.action-cards b{display:block;font-size:11px}.action-cards small{display:block;font-size:9px;color:var(--muted);margin-top:3px;line-height:1.4}.action-cards em{font-style:normal;color:#aaa;font-size:18px}
.start-guide{display:grid;grid-template-columns:1fr 2fr;gap:18px;align-items:center;padding:20px;margin-bottom:14px;border-radius:20px;background:linear-gradient(135deg,#eee9ff,#fbfaff);border:1px solid #dfd7ff}.start-guide h2{font-size:17px;margin:0 0 6px}.start-guide p{font-size:10px;color:var(--muted);line-height:1.55;margin:0}.start-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.start-steps button{border:1px solid #ded8f6;background:#fff;border-radius:14px;padding:12px;display:flex;gap:10px;text-align:left;align-items:flex-start}.start-steps button>b{width:26px;height:26px;flex:0 0 26px;border-radius:9px;background:var(--purple);color:#fff;display:grid;place-items:center;font-size:10px}.start-steps strong{font-size:10px;display:block}.start-steps small{font-size:8px;color:var(--muted);line-height:1.4;display:block;margin-top:3px}
.friendly-empty{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:18px;border:1px dashed #dedbea;border-radius:14px;background:#fbfaff;color:var(--muted)}.friendly-empty.compact{min-height:120px}.friendly-empty i{font-style:normal;font-size:26px}.friendly-empty b{font-size:11px;color:#4f5268}.friendly-empty span{font-size:9px;max-width:260px;line-height:1.5}.friendly-empty .btn{margin-top:4px}
.dashboard-lower{grid-template-columns:1.2fr 1fr;margin-top:14px}.recent-tx-list{display:grid;gap:2px}.recent-tx-list>div{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.recent-tx-list>div:last-child{border-bottom:0}.recent-icon{width:34px;height:34px;border-radius:10px;background:#f4f1ff;display:grid;place-items:center}.recent-tx-list b{font-size:10px}.recent-tx-list small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.recent-tx-list strong{font-size:10px}.beginner-insight{margin:0}.beginner-insight li{font-size:10px}
.quick-add-intro{text-align:center;margin:4px 0 16px}.quick-add-intro b{display:block;font-size:16px}.quick-add-intro span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.quick-type-grid{display:grid;gap:9px}.quick-type-grid>button{display:grid;grid-template-columns:44px 1fr;gap:11px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px;text-align:left;color:var(--text)}.quick-type-grid>button:hover{border-color:#cdbffb;background:#fbfaff}.quick-type-grid i{grid-row:1/3;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-style:normal;font-size:20px;background:#f2efff;color:var(--purple)}.quick-type-grid button:first-child i{background:#fff0f2;color:var(--red)}.quick-type-grid button:nth-child(2) i{background:#eafaf1;color:var(--green)}.quick-type-grid b{font-size:12px}.quick-type-grid span{font-size:9px;color:var(--muted)}
.amount-hero{grid-column:1/-1;background:linear-gradient(135deg,#f5f2ff,#fff);border:1px solid #e1dafa;border-radius:16px;padding:14px;margin-bottom:13px}.amount-hero>label{font-size:9px;font-weight:800;color:var(--muted)}.amount-hero>div{display:flex;align-items:center;gap:7px;margin-top:4px}.amount-hero>div>span{font-weight:850;color:var(--purple);font-size:16px}.amount-hero input{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;font-size:28px!important;font-weight:850!important;min-width:0;width:100%;color:var(--text)!important}.amount-hero small{display:block;font-size:9px;color:var(--purple);margin-top:4px}.optional-details{grid-column:1/-1;border:1px solid var(--line);border-radius:14px;margin-top:13px;overflow:hidden}.optional-details summary{cursor:pointer;padding:12px 14px;font-size:10px;font-weight:800;background:#fafafd;list-style:none}.optional-details summary::-webkit-details-marker{display:none}.optional-details summary:after{content:'⌄';float:right;color:var(--purple);font-size:14px}.optional-details[open] summary:after{content:'⌃'}.optional-details summary span{font-weight:500;color:var(--muted);margin-left:5px}.optional-details .form-grid{padding:13px;border-top:1px solid var(--line)}.simple-transaction-form .essential-fields{margin-top:2px}.tx-submit{min-width:150px}
.settings-help-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:14px;margin-bottom:14px}.install-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#f1edff,#fff)}.install-card h2{font-size:16px;margin:0 0 5px}.install-card p{font-size:10px;color:var(--muted);line-height:1.55;margin:0;max-width:520px}.install-hint{display:block;font-size:9px;color:#5f6278;line-height:1.65;background:#fff;border:1px solid var(--line);padding:10px;border-radius:11px}.glossary{display:grid;grid-template-columns:1fr 1fr;gap:9px}.glossary>div{background:#faf9ff;border:1px solid var(--line);border-radius:11px;padding:10px}.glossary b{display:block;font-size:9px}.glossary span{display:block;font-size:8px;color:var(--muted);line-height:1.45;margin-top:3px}.settings-bottom{grid-template-columns:1fr 1fr;margin-top:14px}.friendly-rules li{margin-bottom:7px}

@media(max-width:1000px){.action-cards{grid-template-columns:1fr}.start-guide{grid-template-columns:1fr}.start-steps{grid-template-columns:1fr 1fr 1fr}.settings-help-grid,.dashboard-lower{grid-template-columns:1fr}}
@media(max-width:850px){.health-banner{grid-template-columns:auto 1fr}.health-banner .btn{grid-column:1/-1;width:100%}.start-steps{grid-template-columns:1fr}.action-center{padding:12px}.settings-bottom{grid-template-columns:1fr}.install-card{align-items:flex-start;flex-direction:column}.glossary{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.health-banner{padding:14px;gap:10px}.health-icon{width:42px;height:42px}.health-banner h2{font-size:15px}.health-banner p{font-size:10px}.start-guide{padding:15px}.beginner-kpis{grid-template-columns:1fr 1fr}.beginner-kpis .kpi-card:last-child{grid-column:1/-1}.quick-add-intro{margin-top:0}.modal-backdrop{padding:0;place-items:end center}.modal,.modal.wide{width:100%;max-height:94vh;border-radius:24px 24px 0 0;padding:16px 16px max(18px,env(safe-area-inset-bottom))}.modal-head{position:sticky;top:-16px;background:#fff;z-index:4;padding:4px 0 10px;margin-bottom:10px}.type-switch{position:sticky;top:36px;background:#fff;z-index:3;padding:5px 0}.amount-hero input{font-size:30px!important}.optional-details summary span{display:none}.tx-submit{flex:1}.simple-transaction-form .modal-actions{position:sticky;bottom:-18px;background:#fff;padding:10px 0 max(2px,env(safe-area-inset-bottom));z-index:4}.glossary{grid-template-columns:1fr}.dashboard-lower{grid-template-columns:1fr}}

/* v1.4.2 — cicilan bulanan */
.schedule-preview{grid-column:1/-1;display:grid;gap:5px;background:linear-gradient(135deg,#f5f1ff,#fbfaff);border:1px solid #e4defb;border-radius:14px;padding:12px 14px;margin-top:4px}.schedule-preview b{font-size:10px;color:var(--purple)}.schedule-preview span{font-size:8px;line-height:1.55;color:var(--muted)}.schedule-preview strong{color:var(--text)}
.installment-schedule{border:1px solid var(--line);border-radius:15px;overflow:hidden;margin:12px 0 16px}.schedule-head{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 14px;background:#faf9ff;border-bottom:1px solid var(--line)}.schedule-head>div{display:grid;gap:3px}.schedule-head span{font-size:8px;color:var(--muted)}.schedule-head b{font-size:10px}.schedule-list{max-height:320px;overflow:auto}.schedule-row{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.schedule-row:last-child{border-bottom:0}.schedule-no{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#f1edff;color:var(--purple);font-size:9px;font-weight:850}.schedule-row b{font-size:9px}.schedule-row small{display:block;font-size:7.5px;color:var(--muted);margin-top:3px}.history-section-title{font-size:11px;margin:16px 0 9px}.neutral-chip{background:#f2f3f7;color:#6b6f82}
.debt-right .green{color:var(--green)}
@media(max-width:760px){.debt-card{grid-template-columns:42px 1fr}.debt-right{grid-column:1/-1;text-align:left;padding-top:9px;border-top:1px solid var(--line)}.debt-right .card-actions.compact{justify-content:flex-start}.schedule-head{grid-template-columns:1fr}.schedule-row{grid-template-columns:28px 1fr}.schedule-row>.status-chip{grid-column:2;justify-self:start}.installment-schedule{margin-top:10px}}

/* v1.4.3 — unified debt reminders + modal viewport safety */
html.modal-open,body.modal-open{overflow:hidden}
.modal-backdrop{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
  padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
}
.modal,.modal.wide{
  width:min(720px,calc(100vw - 32px));
  max-width:100%;
  max-height:calc(100dvh - 32px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  margin:auto;
}
.modal.wide{width:min(880px,calc(100vw - 32px))}
.modal *{min-width:0}
.modal .form-grid{width:100%;min-width:0}
.modal .field{min-width:0;width:100%}
.modal .field input,.modal .field select,.modal .field textarea{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
}
.modal input[type="date"],.modal input[type="number"]{min-width:0;width:100%}
.modal .modal-actions{flex-wrap:wrap}
.auto-debt-bill{border-color:#dcd4ff;background:linear-gradient(135deg,#fff,#fbfaff)}
.auto-debt-bill .bill-icon{background:#eee9ff}
.bill-title .tag.auto{font-size:7px;padding:4px 7px;border-radius:999px;font-weight:800;white-space:nowrap}
@media(max-height:700px) and (min-width:561px){
  .modal-backdrop{align-items:flex-start}
  .modal,.modal.wide{margin-top:0;margin-bottom:0;max-height:calc(100dvh - 32px)}
}
@media(max-width:560px){
  .modal-backdrop{align-items:flex-end;padding:0;overflow:hidden}
  .modal,.modal.wide{width:100%;max-width:100%;max-height:96dvh;margin:0;border-radius:24px 24px 0 0;overflow-y:auto;overflow-x:hidden}
}

/* v1.4.5 — clean active/lunas debt UX; paid history remains fully preserved */
.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:99px;background:#ece9f7;color:#77718f;font-size:8px;font-weight:850}.tab.active .tab-count{background:#ffe0e5;color:var(--red)}
.debt-lifecycle-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:10px;margin:12px 0 14px}.lifecycle-tab{appearance:none;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:2px 10px;cursor:pointer;color:var(--text);transition:.18s ease}.lifecycle-tab span{font-size:11px;font-weight:850}.lifecycle-tab b{grid-row:1/3;grid-column:2;align-self:center;font-size:19px;color:var(--purple)}.lifecycle-tab small{font-size:8px;color:var(--muted)}.lifecycle-tab:hover{border-color:#cfc6ff;transform:translateY(-1px)}.lifecycle-tab.active{background:linear-gradient(135deg,#f0ecff,#faf9ff);border-color:#bfb2ff;box-shadow:0 7px 20px rgba(111,78,242,.10)}.lifecycle-tab.paid.active{background:linear-gradient(135deg,#ecfbf2,#fafffc);border-color:#aee3c3}.lifecycle-tab.paid b{color:var(--green)}
.history-preserved-note{margin:-2px 0 13px;padding:10px 13px;border:1px solid #cdebd9;background:#f1fbf5;border-radius:12px;color:#3f7554;font-size:9px;line-height:1.45}.debt-filter-row{align-items:end}.debt-paid-card{background:linear-gradient(135deg,#fff,#fbfffc);border-color:#d9eee1}.debt-paid-card .bar span{background:var(--green)}
@media(max-width:760px){.debt-lifecycle-tabs{grid-template-columns:1fr 1fr}.lifecycle-tab{padding:11px}.lifecycle-tab b{font-size:17px}.history-preserved-note{font-size:8px}}

/* Typography refresh: calmer weights and more readable supporting text. */
h1,h2,h3{font-weight:700;letter-spacing:-.025em}
button,input,select,textarea{font-family:inherit}
.brand strong,.topbar h1,.section-header h1,.panel-title h2,.section-title h2,.modal-head h2{font-weight:700}
.btn,.nav-item,.pill,.tab,.lifecycle-tab span{font-weight:600}
.kpi-label,.date-group,.account-name,.goal-title,.reminder-title{font-weight:700}
.kpi-value,.transaction-amount,.account-balance{font-weight:700;letter-spacing:-.025em}
.transaction-name{font-size:13px;font-weight:700;line-height:1.4;letter-spacing:-.015em}
.transaction-meta{font-size:10.5px;line-height:1.55;margin-top:4px}
.transaction-time{font-size:10px;font-weight:500}
.date-group{font-size:11px;letter-spacing:-.01em}
.debt-info h3,.bill-title h3{font-size:13px;font-weight:700;line-height:1.4}
.debt-meta,.debt-submeta,.bill-meta,.bill-money small,.goal-foot,.progress-nums,.account-type{font-size:10px;line-height:1.5}
.status-chip,.tag,.card-actions .btn,.bill-actions .btn{font-weight:700}
.chart-axis-label,.chart-axis-caption{font-family:"Plus Jakarta Sans",Inter,system-ui,sans-serif}

@media(max-width:560px){.transaction-name{font-size:12.5px}.transaction-meta{font-size:10px}}

/* Budget list: collision-safe desktop, tablet, and mobile layout. */
.budget-list{padding:8px 18px}
.budget-item{grid-template-columns:minmax(190px,.85fr) minmax(280px,1.45fr) minmax(245px,auto);gap:22px;padding:18px 8px;min-width:0}
.budget-item>*{min-width:0}
.budget-cat{gap:11px;font-weight:400}
.budget-cat-icon{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:9px;background:#f4f1ff;font-size:14px}
.budget-cat>div{min-width:0}
.budget-cat strong{display:block;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}
.budget-cat small{font-size:9px;line-height:1.45}
.budget-progress{min-width:0}
.budget-values{gap:14px;align-items:center;margin-bottom:8px;font-size:10px;line-height:1.4}
.budget-values>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.budget-values small{color:#a0a3b4;font-size:9px}
.budget-values strong{flex:0 0 auto;color:#666a80;font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}
.budget-progress .bar{height:7px;margin-top:0}
.budget-result{display:flex;gap:12px;align-items:center;justify-content:flex-end;justify-self:stretch}
.budget-remaining{display:grid;gap:3px;text-align:right;min-width:0}
.budget-remaining span{font-size:8px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.budget-remaining strong{font-size:14px;font-weight:700;line-height:1.35;white-space:nowrap;font-variant-numeric:tabular-nums}
.budget-state{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;background:transparent!important;padding:0;color:var(--muted);font-size:9px;font-weight:600;white-space:nowrap}
.budget-state i{width:6px;height:6px;border-radius:50%;background:#42bd71;box-shadow:0 0 0 3px rgba(66,189,113,.10)}
.budget-state.warning{color:#b86b11}.budget-state.warning i{background:#ed9228;box-shadow:0 0 0 3px rgba(237,146,40,.11)}
.budget-state.over{color:#cf4052}.budget-state.over i{background:#e45062;box-shadow:0 0 0 3px rgba(228,80,98,.10)}
.budget-edit-btn{width:30px;height:30px;flex:0 0 30px;border:1px solid transparent;border-radius:9px;background:transparent;color:#a0a3b4;font-size:10px;font-weight:700;letter-spacing:1px;display:grid;place-items:center;cursor:pointer}
.budget-edit-btn:hover{border-color:var(--line);background:#f8f7fc;color:var(--purple)}
.sub-budget .budget-cat{padding-left:0}

@media(max-width:1100px){
  .budget-item{grid-template-columns:minmax(175px,.75fr) minmax(0,1.4fr);grid-template-areas:"category progress" "category result";gap:12px 20px}
  .budget-cat{grid-area:category;align-self:start;padding-top:2px}
  .budget-progress{grid-area:progress}
  .budget-result{grid-area:result;padding-top:2px}
}

@media(max-width:700px){
  .budget-list{padding:5px 13px}
  .budget-item{grid-template-columns:1fr;grid-template-areas:"category" "progress" "result";gap:13px;padding:16px 2px}
  .budget-result{justify-content:space-between;gap:12px;padding-top:0}
  .budget-remaining{text-align:left}
  .budget-remaining strong{font-size:13px}
}

/* v1.4.5 — compact financial pulse reports */
.report-header{align-items:center;margin-bottom:11px}.report-header .toolbar{justify-content:flex-end}.report-page-kicker{display:block;margin-bottom:3px;color:#7965db;font-size:7px;font-weight:800;letter-spacing:.17em}
.report-pulse{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(230px,.55fr);gap:14px;margin-bottom:12px;padding:20px 22px 0;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:20px;color:#fff;background:linear-gradient(128deg,#17132f 0%,#2e245d 55%,#654cd4 100%);box-shadow:0 18px 40px rgba(43,32,97,.16)}
.report-pulse:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.2;background-image:radial-gradient(rgba(255,255,255,.42) .7px,transparent .7px);background-size:17px 17px;mask-image:linear-gradient(90deg,transparent 28%,#000)}.report-pulse-orb{position:absolute;z-index:-1;right:10%;top:-115px;width:250px;height:250px;border-radius:50%;background:rgba(143,112,255,.36);filter:blur(4px)}.report-pulse.good .report-pulse-orb{background:rgba(42,195,124,.28)}.report-pulse.warning .report-pulse-orb{background:rgba(246,163,58,.28)}.report-pulse.danger .report-pulse-orb{background:rgba(244,86,112,.3)}
.report-pulse-copy{min-width:0;padding-bottom:17px}.report-pulse-kicker{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:#d7d0ff;font-size:8px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.report-pulse-kicker i{width:22px;height:22px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:7px;background:rgba(255,255,255,.09);font-style:normal;font-size:11px}.report-pulse h2{max-width:720px;margin:0 0 5px;font-size:19px;line-height:1.32;letter-spacing:-.02em}.report-pulse-copy>p{max-width:680px;margin:0;color:#c8c3df;font-size:9px;line-height:1.55}
.report-action-notes{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.report-action-notes span{display:block;padding:5px 8px;border:1px solid rgba(255,255,255,.1);border-radius:99px;background:rgba(255,255,255,.07);color:#e8e5f5;font-size:7.5px;line-height:1.35}
.report-pulse-focus{align-self:center;padding:14px 15px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}.report-pulse-focus>span{display:block;margin-bottom:5px;color:#c8c3df;font-size:8px}.report-pulse-focus strong{display:block;overflow:hidden;text-overflow:ellipsis;font-size:23px;line-height:1.25;letter-spacing:-.035em;white-space:nowrap;font-variant-numeric:tabular-nums}.report-pulse-focus strong.positive{color:#84e7b0}.report-pulse-focus strong.negative{color:#ff98a6}.report-pulse-focus small{display:block;margin-top:5px;font-size:7.5px}.report-pulse-focus small.good{color:#84e7b0}.report-pulse-focus small.bad{color:#ff98a6}.report-pulse-focus small.muted{color:#b9b3d0}
.report-pulse-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.1)}.report-pulse-metrics>div{min-width:0;padding:12px 15px 14px 0}.report-pulse-metrics>div+div{padding-left:15px;border-left:1px solid rgba(255,255,255,.1)}.report-pulse-metrics span{display:block;color:#aaa4c5;font-size:7.5px}.report-pulse-metrics b{display:block;margin:2px 0 1px;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.report-pulse-metrics small{display:block;overflow:hidden;text-overflow:ellipsis;color:#aaa4c5;font-size:7px;white-space:nowrap}.report-pulse-metrics small.good{color:#76dca4}.report-pulse-metrics small.bad{color:#ff899a}
.report-primary-grid{grid-template-columns:minmax(0,1.78fr) minmax(285px,.62fr);gap:12px;margin-bottom:12px}.report-secondary-grid{grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);gap:12px;margin-bottom:12px}.report-bottom-grid{grid-template-columns:1.05fr 1fr .95fr;gap:12px}.report-primary-grid>.panel,.report-secondary-grid>.panel,.report-bottom-grid>.panel{padding:15px;border-radius:16px;box-shadow:0 7px 24px rgba(50,39,105,.035)}
.report-trend-panel,.report-change-panel,.report-budget-panel,.report-spending-panel,.report-bottom-grid>.panel{min-width:0}.report-trend-panel .panel-title,.report-change-panel .panel-title,.report-budget-panel .panel-title,.report-spending-panel .panel-title,.report-bottom-grid .panel-title{margin-bottom:10px}.report-trend-panel .panel-title h2,.report-change-panel .panel-title h2,.report-budget-panel .panel-title h2,.report-spending-panel .panel-title h2,.report-bottom-grid .panel-title h2{font-size:12px}.report-trend-panel .panel-title p,.report-change-panel .panel-title p,.report-budget-panel .panel-title p,.report-spending-panel .panel-title p,.report-bottom-grid .panel-title p{font-size:8px;color:var(--muted);margin:2px 0 0;line-height:1.4}
.report-selected-month{display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:0;margin:0 0 9px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#faf9fd}.report-selected-month>div{min-width:0;padding:7px 9px}.report-selected-month>div+div{border-left:1px solid var(--line)}.report-selected-month>div:first-child{background:#f3f0ff}.report-selected-month span{display:block;font-size:7px;color:var(--muted);margin-bottom:2px}.report-selected-month b{display:block;overflow:hidden;text-overflow:ellipsis;font-size:8.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.report-chart-legend{display:flex;gap:12px;align-items:center;margin-bottom:4px;font-size:8px;color:#666a80}.report-chart-legend span{display:flex;gap:5px;align-items:center;font-weight:650}.report-chart-legend i{width:7px;height:7px;border-radius:2px}.report-chart-legend i.income{background:#45bf79}.report-chart-legend i.expense{background:#f36c7b}.report-chart-legend small{margin-left:auto;color:var(--muted);font-size:7px}
.annual-report-chart{height:220px;display:grid;grid-template-columns:47px minmax(640px,1fr);gap:6px;overflow-x:auto;padding-bottom:3px}.annual-report-y{position:sticky;left:0;z-index:2;height:190px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-right:3px;color:var(--muted);background:#fff;font-size:7px;font-variant-numeric:tabular-nums}.annual-report-plot{position:relative;height:208px;min-width:640px}.annual-report-grid{position:absolute;inset:0 0 18px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.annual-report-grid i{display:block;border-top:1px dashed #e8e8f0}.annual-report-months{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,minmax(40px,1fr));gap:4px}.report-month-button{min-width:0;height:208px;border:0;border-radius:8px;background:transparent;padding:0 3px;display:grid;grid-template-rows:190px 18px;cursor:pointer;color:var(--muted)}.report-month-button:hover,.report-month-button.active{background:#f4f1ff}.report-month-button.active b{color:var(--purple);font-weight:800}.report-month-bars{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100%;padding:3px 2px 0}.report-month-bars i{display:block;width:10px;min-height:0;border-radius:4px 4px 2px 2px}.report-month-bars i.income{background:#45bf79}.report-month-bars i.expense{background:#f36c7b}.report-month-button b{align-self:end;padding-bottom:1px;font-size:7px;font-weight:600}
.report-data-table{margin-top:5px;border-top:1px solid var(--line);padding-top:6px}.report-data-table summary{cursor:pointer;color:var(--purple);font-size:8px;font-weight:700}.report-data-table .table-wrap{margin-top:7px;box-shadow:none}.report-data-table tr.active td{background:#f5f2ff;font-weight:700}
.report-change-panel{background:linear-gradient(155deg,#fff 68%,#f6f3ff)}.report-change-list{display:grid}.report-change-row{display:grid;grid-template-columns:27px minmax(0,1fr);gap:7px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.report-change-row:last-child{border-bottom:0}.report-change-row>span{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#f1edff;font-size:13px}.report-change-row b{display:block;font-size:9px}.report-change-row small{display:block;margin-top:1px;color:var(--muted);font-size:6.7px;line-height:1.35}.report-change-row strong{grid-column:2;font-size:7.5px;white-space:nowrap}.report-change-row strong.bad{color:#d74858}.report-change-row strong.good{color:#178650}.report-card-action{width:100%;margin-top:9px;padding:7px 10px;font-size:8px}
.report-budget-list{display:grid}.report-budget-row{display:grid;grid-template-columns:minmax(145px,.9fr) minmax(140px,1.15fr) minmax(110px,.62fr);gap:11px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.report-budget-row:last-child{border-bottom:0}.report-budget-row b{display:block;font-size:9px}.report-budget-row small{display:block;color:var(--muted);font-size:7px;margin-top:2px}.report-budget-row .bar{margin:0;height:5px}.report-budget-row>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:6px}.report-budget-row strong{font-size:8px}.report-budget-row .status-chip{padding:4px 6px;font-size:6.5px;white-space:nowrap}
.report-spending-list{display:grid}.report-spending-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;padding:7px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--text);cursor:pointer}.report-spending-row:last-child{border-bottom:0}.report-spending-row:hover{background:#faf9ff}.report-spending-row>span{font-size:14px;text-align:center}.report-spending-row b{display:block;font-size:9px}.report-spending-row .bar{height:4px;margin-top:4px}.report-spending-row strong{font-size:8px;text-align:right;font-variant-numeric:tabular-nums}.report-spending-row strong small{display:block;color:var(--muted);font-size:7px;margin-top:2px}
.report-bottom-grid>.panel{position:relative;overflow:hidden}.report-bottom-grid>.panel:before{content:"";position:absolute;left:15px;right:15px;top:0;height:2px;border-radius:0 0 3px 3px;background:#8a74ed}.report-bottom-grid>.panel:nth-child(1):before{background:linear-gradient(90deg,#4a8cec,#dc66aa)}.report-bottom-grid>.panel:nth-child(3):before{background:#f0a04b}.classification-bar{height:9px;display:flex;overflow:hidden;border-radius:99px;background:#ececf3;margin:6px 0 10px}.classification-bar i{height:100%}.classification-bar .need{background:#4a8cec}.classification-bar .want{background:#dc66aa}.classification-bar .other{background:#aeb2c2}.classification-legend{display:grid;gap:6px}.classification-legend>div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--line)}.classification-legend>div:last-child{border-bottom:0}.classification-legend span{display:flex;align-items:center;gap:5px;font-size:8px;color:#55586d}.classification-legend span i{width:7px;height:7px;border-radius:2px}.classification-legend i.need{background:#4a8cec}.classification-legend i.want{background:#dc66aa}.classification-legend i.other{background:#aeb2c2}.classification-legend b{font-size:8px;text-align:right}.classification-legend b small{display:inline;margin-left:5px;color:var(--muted);font-size:6.5px}
.financial-position{display:grid}.financial-position>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}.financial-position span{font-size:8px;color:var(--muted)}.financial-position b{font-size:9px}.financial-position .net{margin-top:4px;padding:9px;border:0;border-radius:9px;background:linear-gradient(90deg,#f2efff,#faf9ff)}.financial-position .net span{color:#55586d;font-weight:700}.financial-position .net b{font-size:11px}
.obligation-report{display:grid;grid-template-columns:1fr 1fr;gap:7px}.obligation-report>div:not(.bar){padding:7px 8px;border-radius:9px;background:#faf9fd}.obligation-report>div:nth-child(3){grid-column:1/-1}.obligation-report span{display:block;font-size:7px;color:var(--muted);margin-bottom:2px}.obligation-report b{font-size:9px}.obligation-report .bar{grid-column:1/-1;height:5px;margin:1px 0 0}.obligation-report small{grid-column:1/-1;color:var(--muted);font-size:7px}

@media(max-width:1180px){.report-primary-grid,.report-secondary-grid{grid-template-columns:1fr}.report-bottom-grid{grid-template-columns:1fr 1fr}.report-bottom-grid>.panel:last-child{grid-column:1/-1}}
@media(max-width:850px){.report-pulse{grid-template-columns:1fr minmax(210px,.55fr)}.report-pulse-metrics{grid-template-columns:1fr 1fr}.report-pulse-metrics>div:nth-child(3){border-top:1px solid rgba(255,255,255,.1);padding-left:0;border-left:0}.report-pulse-metrics>div:nth-child(4){border-top:1px solid rgba(255,255,255,.1)}.report-selected-month{grid-template-columns:1fr 1fr}.report-selected-month>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.report-selected-month>div:nth-child(4){border-top:1px solid var(--line)}.report-bottom-grid{grid-template-columns:1fr}.report-bottom-grid>.panel:last-child{grid-column:auto}.report-budget-row{grid-template-columns:minmax(150px,.85fr) minmax(130px,1fr) minmax(110px,.65fr)}}
@media(max-width:620px){.report-header{align-items:stretch}.report-header .toolbar,.report-header .btn{width:100%}.report-pulse{grid-template-columns:1fr;padding:17px 16px 0}.report-pulse h2{font-size:17px}.report-pulse-focus{padding:11px 12px}.report-pulse-focus strong{font-size:20px}.report-pulse-metrics>div{padding:10px 8px 11px 0}.report-pulse-metrics>div+div{padding-left:8px}.report-pulse-metrics b{font-size:10px}.report-action-notes{display:grid}.report-action-notes span{border-radius:8px}.report-chart-legend{flex-wrap:wrap}.report-chart-legend small{width:100%;margin-left:0}.annual-report-chart{grid-template-columns:42px minmax(640px,1fr)}.report-budget-row{grid-template-columns:1fr;gap:6px}.report-budget-row>div:last-child{justify-content:space-between}.report-spending-row{grid-template-columns:25px minmax(0,1fr) auto}}

/* v1.4.5 — readability pass across every menu */
:root{--muted:#686b80}
.nav-item{font-size:14px}.topbar p,.section-header p{font-size:13px}.section-header h1{font-size:24px}
.kpi-label,.beginner-kpis .kpi-label{font-size:12px}.kpi-meta{font-size:11px;line-height:1.5}.panel-title h2,.section-title h2{font-size:16px}.panel-title p{font-size:11px;line-height:1.5}
.category-row,.stat-line,.stat-line b{font-size:12px}.donut-center span,.budget-ring span{font-size:11px}.progress-name{font-size:12px}.progress-nums,.progress-pct{font-size:10.5px}.reminder-row{font-size:11px}.reminder-sub{font-size:10px}
.quick-facts span,.chart-value-strip{font-size:10.5px}.quick-facts b{font-size:13px}.html-y-axis span{font-size:11px}.html-x-axis span{font-size:10px}.axis-note{font-size:9.5px}.drill-total span{font-size:11px}.modal-section-title{font-size:13px}.sub-breakdown>div,.mini-tx-list>div{font-size:11px}
.advanced-filters label,.date-range-fields label{font-size:10px}.advanced-filters select,.inline-search input,.date-range-fields input{font-size:11px}.tag{font-size:9.5px}.helper-note{font-size:10.5px}.date-group span{font-size:10px}.date-filter-copy>span,.filter-summary-label span{font-size:9.5px}.date-filter-copy>b{font-size:13px}.date-filter-copy>small{font-size:10px}.date-preset{font-size:10px}.filter-summary-label b{font-size:12px}
.transaction-meta{font-size:11.5px}.transaction-time{font-size:11px}.date-group{font-size:12px}.mini-kpi span{font-size:11px}.split-stat span{font-size:10px}.simple-table{font-size:12px}.simple-table th{font-size:10.5px}
.overview-card span{font-size:11px}.budget-cat small{font-size:10px}.budget-values,.budget-values strong{font-size:11px}.budget-values small{font-size:10px}.budget-remaining span{font-size:9.5px}.budget-state{font-size:10px}.status-chip{font-size:10px}
.account-name{font-size:12px}.account-type{font-size:11px}.goal-title{font-size:13px}.goal-money{font-size:12px}.goal-foot{font-size:10.5px}.goal-summary-strip span,.obligation-overview span{font-size:10.5px}.priority{font-size:9px}.goal-details span{font-size:10px}.goal-details b{font-size:11px}.card-actions .btn{font-size:10.5px}.context-card span,.history-summary span{font-size:10.5px}.history-list b{font-size:12px}.history-list small{font-size:10px}.btn.mini{font-size:10px}
.debt-info h3,.bill-title h3{font-size:14px}.debt-meta,.debt-submeta,.bill-meta,.bill-money small{font-size:11px}.debt-right b{font-size:13px}.debt-right span{font-size:10.5px}.bill-progress small{font-size:10px}.bill-actions .btn{font-size:10.5px}.paid-date{font-size:10.5px}.obligation-mini>div:last-child{font-size:10.5px}.obligation-mini b{font-size:11px}.bill-title .tag.auto{font-size:9px}.lifecycle-tab span{font-size:12px}.lifecycle-tab small{font-size:10px}.history-preserved-note{font-size:10.5px}.tab-count{font-size:9.5px}
.field label{font-size:11.5px}.form-error{font-size:12px}.eyebrow{font-size:10px}.health-banner span{font-size:10.5px}.health-banner p{font-size:12px}.action-cards b{font-size:12px}.action-cards small{font-size:10.5px}.start-guide p{font-size:11.5px}.start-steps strong{font-size:11.5px}.start-steps small{font-size:10px}.friendly-empty b{font-size:12px}.friendly-empty span{font-size:10.5px}.recent-tx-list b,.recent-tx-list strong{font-size:11px}.recent-tx-list small{font-size:10px}.beginner-insight li{font-size:11.5px}.quick-add-intro span{font-size:11px}.quick-type-grid span{font-size:10.5px}.amount-hero>label,.amount-hero small{font-size:10.5px}.optional-details summary{font-size:11.5px}
.install-card p{font-size:11.5px}.install-hint{font-size:10.5px}.glossary b{font-size:11px}.glossary span{font-size:10px}.tax-head>button:first-child{font-size:12px}.mini-add{font-size:10px}.sub-chips button,.sub-chips span{font-size:10px}.info-list,.body-muted{font-size:12px}.security-note{font-size:10.5px}.schedule-preview b{font-size:11.5px}.schedule-preview span{font-size:10px}.schedule-head span{font-size:10px}.schedule-head b{font-size:11.5px}.schedule-no{font-size:10px}.schedule-row b{font-size:11px}.schedule-row small{font-size:9.5px}.history-section-title{font-size:12px}

.report-page-kicker{font-size:8.5px}.report-pulse-kicker{font-size:9.5px}.report-pulse-copy>p{font-size:11px}.report-action-notes span{font-size:9.5px}.report-pulse-focus>span{font-size:10px}.report-pulse-focus small{font-size:9.5px}.report-pulse-metrics span{font-size:9.5px}.report-pulse-metrics b{font-size:14px}.report-pulse-metrics small{font-size:9px}
.report-trend-panel .panel-title h2,.report-change-panel .panel-title h2,.report-budget-panel .panel-title h2,.report-spending-panel .panel-title h2,.report-bottom-grid .panel-title h2{font-size:14px}.report-trend-panel .panel-title p,.report-change-panel .panel-title p,.report-budget-panel .panel-title p,.report-spending-panel .panel-title p,.report-bottom-grid .panel-title p{font-size:10.5px}.report-selected-month span{font-size:9px}.report-selected-month b{font-size:10.5px}.report-chart-legend{font-size:10px}.report-chart-legend small{font-size:9px}.annual-report-y,.report-month-button b{font-size:9px}.report-data-table summary{font-size:10px}
.report-change-row b{font-size:11px}.report-change-row small{font-size:9px}.report-change-row strong{font-size:9.5px}.report-card-action{font-size:10px}.report-budget-row b{font-size:11px}.report-budget-row small{font-size:9.5px}.report-budget-row strong{font-size:10px}.report-budget-row .status-chip{font-size:8.5px}.report-spending-row b{font-size:11px}.report-spending-row strong{font-size:10px}.report-spending-row strong small{font-size:9px}.classification-legend span{font-size:10px}.classification-legend b{font-size:10px}.classification-legend b small{font-size:8.5px}.financial-position span{font-size:10px}.financial-position b{font-size:11px}.financial-position .net b{font-size:13px}.obligation-report span{font-size:9px}.obligation-report b{font-size:11px}.obligation-report small{font-size:9px}

@media(max-width:560px){.mobile-nav button{font-size:10px}.topbar h1{font-size:17px}.section-header h1{font-size:22px}.transaction-name{font-size:13px}.transaction-meta{font-size:11px}.report-pulse-copy>p{font-size:10.5px}.report-pulse-metrics b{font-size:12px}.report-trend-panel .panel-title p,.report-change-panel .panel-title p,.report-budget-panel .panel-title p,.report-spending-panel .panel-title p,.report-bottom-grid .panel-title p{font-size:10px}}

/* v1.4.6 — mobile readability and touch-target polish */
@media(max-width:560px){
  .topbar{gap:8px}
  .topbar>div:first-child{min-width:0;flex:1 1 auto}
  .topbar h1{font-size:15px;line-height:1.2;white-space:nowrap}
  .top-actions{flex:0 0 auto;gap:5px}
  .period-picker{flex:0 0 112px}
  .period-picker select{width:112px}
  .icon-btn{width:44px;height:44px;flex:0 0 44px}
  .period-picker select{min-height:44px;font-size:14px}

  .mobile-nav button{min-height:48px;font-size:10.5px;line-height:1.2}
  .fab{width:54px;height:54px}

  .btn,.pill,.date-preset,.tab{min-height:42px}
  .pill,.date-preset,.tab{font-size:11px}
  .more-btn,.budget-edit-btn,.close-btn{width:42px;height:42px;min-width:42px;min-height:42px;display:grid;place-items:center}
  .transaction-row{grid-template-columns:38px minmax(0,1fr) auto 42px}
  .card-actions .btn,.bill-actions .btn,.report-card-action{min-height:40px;font-size:11px}
  .category-button{min-height:40px;display:grid;align-items:center;padding-block:6px}
  .type-btn{min-height:42px}
  .tax-head>button:first-child,.mini-add,.sub-chips button{min-width:40px;min-height:40px;font-size:10.5px}
  .sub-chips button{min-width:40px}
  .report-data-table summary{min-height:40px;display:flex;align-items:center;font-size:10.5px}

  .advanced-filters select,.inline-search input,.date-range-fields input,
  .field input,.field select,.field textarea{min-height:44px;font-size:12px}
  .advanced-filters label,.date-range-fields label,.field label{font-size:11px}

  .status-chip,.tag,.priority,.tab-count,.budget-state{font-size:10px}
  .date-filter-copy>span,.filter-summary-label span,
  .budget-remaining span,.report-selected-month span,.report-chart-legend small,
  .annual-report-y,.report-month-button b{font-size:10px}
  .bill-title .tag.auto{font-size:10px}
  .report-page-kicker,.report-action-notes span{font-size:10px}
  .report-pulse-kicker,.report-pulse-metrics span,.report-pulse-metrics small,
  .report-pulse-focus small,.report-change-row small,.report-change-row strong,
  .report-budget-row small,.report-budget-row .status-chip,
  .report-spending-row strong small,.classification-legend b small,
  .obligation-report span,.obligation-report small{font-size:10px}
}

/* Automatic need/want classification and dashboard drill-down. */
.classification-stat-lines{gap:8px}
.classification-button{width:100%;min-height:42px;padding:9px 11px;border:1px solid transparent;border-radius:11px;background:#f8f8fc;color:var(--text);font-family:inherit;cursor:pointer;align-items:center;transition:.16s ease}
.classification-button.need{background:#effaf3;border-color:#d8f0e1}
.classification-button.want{background:#fff2f8;border-color:#f5d9e8}
.classification-button:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(46,36,91,.07)}
.classification-button:focus-visible{outline:2px solid #8d78ee;outline-offset:2px}
.classification-button b{display:flex;align-items:center;gap:8px}
.classification-button em{font-style:normal;color:var(--muted);font-size:16px}
.classification-auto-note{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:-2px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fafafe}
.classification-auto-note span{font-size:10.5px;color:var(--muted)}
.classification-auto-note b{font-size:11px}
.classification-auto-note.need b{color:#16894c}
.classification-auto-note.want b{color:#cc3c86}
.classification-drill-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:14px 15px;border-radius:14px;background:linear-gradient(135deg,#f3f0ff,#faf9ff)}
.classification-drill-summary span{display:block;margin-bottom:4px;color:var(--muted);font-size:10.5px}
.classification-drill-summary strong{font-size:20px;color:var(--purple)}
.classification-drill-summary>b{padding:6px 9px;border-radius:99px;background:#fff;color:#5d6075;font-size:10.5px;white-space:nowrap}
.classification-drill-list{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.classification-drill-list article{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border-bottom:1px solid var(--line);background:#fff}
.classification-drill-list article:last-child{border-bottom:0}
.classification-drill-list article>i{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#f3f0ff;font-style:normal;font-size:18px}
.classification-drill-list article b{display:block;font-size:12px}
.classification-drill-list article small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}
.classification-drill-list article>strong{font-size:12px;white-space:nowrap}

@media(max-width:560px){
  .classification-auto-note{min-height:40px}
  .classification-auto-note span,.classification-drill-summary span,.classification-drill-summary>b{font-size:10px}
  .classification-drill-list article{grid-template-columns:36px minmax(0,1fr);padding:11px}
  .classification-drill-list article>strong{grid-column:2;justify-self:start;margin-top:-4px}
}

/* Household accounts and personal/shared financial access (v1.5.0) */
.user-pill{border:1px solid var(--line);background:#fff;border-radius:12px;height:41px;padding:4px 10px 4px 5px;display:flex;align-items:center;gap:7px;color:#31344b}
.user-pill span{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#f0ecff;color:var(--purple);font-size:12px;font-weight:850}
.user-pill b{font-size:11px;max-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-card.personal{background:linear-gradient(150deg,#fff,#fbfaff)}
.account-scope{display:inline-flex;align-items:center;margin-top:14px;padding:4px 8px;border-radius:99px;font-size:8px;font-weight:800}
.account-scope.shared{background:#eaf9f1;color:#158453}.account-scope.personal{background:#f0ecff;color:#684be0}
.account-card .account-scope+.account-name{margin-top:9px}
.account-privacy-note{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.account-privacy-note span{background:#fff;border:1px solid var(--line);border-radius:99px;padding:7px 10px;font-size:10px;color:var(--muted)}
.tx-creator{color:#6c55dc;font-weight:700}
.household-panel{margin-bottom:14px;background:linear-gradient(145deg,#fff,#faf8ff)}
.household-panel .panel-title{align-items:flex-start}.member-actions,.member-row-actions{display:flex;gap:7px;align-items:center}
.member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.member-row{border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px}
.member-row.inactive{opacity:.58}.member-avatar{width:38px;height:38px;border-radius:12px;background:#f0ecff;color:var(--purple);display:grid;place-items:center;font-weight:850}
.member-row b{display:block;font-size:11px}.member-row b em{font-style:normal;font-size:7px;color:#178b56;background:#eaf9f1;border-radius:99px;padding:3px 6px}
.member-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.btn.mini{padding:7px 9px;font-size:8px}
.member-row-actions{justify-content:flex-end;flex-wrap:wrap}.identity-preview{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:#faf9ff}.identity-preview span{font-size:10px;color:var(--muted)}.identity-preview b{font-size:11px;color:#34374f}
.delete-member-warning{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;padding:15px;border:1px solid #ffd6dc;border-radius:14px;background:#fff7f8}.delete-member-warning>span{width:42px;height:42px;border-radius:12px;background:#ffe9ed;display:grid;place-items:center;font-size:20px}.delete-member-warning b{font-size:14px}.delete-member-warning p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.delete-member-warning strong{color:#34374f}
.dashboard-date-filter{display:flex;align-items:end;gap:10px;margin-bottom:14px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fff,#faf8ff);box-shadow:var(--shadow)}.dashboard-date-filter>div:first-child{margin-right:auto;min-width:210px}.dashboard-date-filter .eyebrow{display:block}.dashboard-date-filter>div:first-child b{display:block;margin-top:4px;font-size:12px;color:#34374f}.dashboard-date-filter label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:700}.dashboard-date-filter select,.dashboard-date-filter input{height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#34374f;padding:0 10px;font:inherit;font-size:10px;outline:0}.dashboard-custom-dates{display:flex;gap:8px}.dashboard-custom-dates.hidden{display:none}.dashboard-privacy-toggle{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;padding:0 12px;border:1px solid #ded9f5;border-radius:11px;background:#f7f4ff;color:#6548d9;font:inherit;font-size:10px;font-weight:750;cursor:pointer;transition:.18s ease}.dashboard-privacy-toggle:hover{background:#eee9ff;border-color:#cfc4fa;transform:translateY(-1px)}.dashboard-privacy-toggle:focus-visible{outline:3px solid #7457e333;outline-offset:2px}.dashboard-privacy-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.brand>div:last-child{min-width:0}.brand #workspaceBrand{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:850px){.user-pill b{display:none}.user-pill{padding:4px}.member-list{grid-template-columns:1fr}}
@media(max-width:560px){.household-panel .panel-title{gap:12px}.member-actions{width:100%;flex-wrap:wrap}.member-row{grid-template-columns:38px minmax(0,1fr)}.member-row-actions{grid-column:1/-1}.account-privacy-note{display:grid}.user-pill{display:none}}
@media(max-width:700px){.dashboard-date-filter{align-items:stretch;flex-direction:column}.dashboard-date-filter>div:first-child{margin-right:0;min-width:0}.dashboard-date-filter label,.dashboard-custom-dates{width:100%}.dashboard-date-filter select,.dashboard-date-filter input{width:100%}.dashboard-custom-dates label{flex:1}.dashboard-privacy-toggle{width:100%}}

/* Bulk monthly budget planner */
.budget-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.modal.wide.budget-planner-modal{width:min(980px,calc(100vw - 32px));padding:22px 24px 0;overflow-x:hidden;overflow-y:auto}
.budget-planner-form{display:block;min-height:0;max-height:none}
.budget-planner-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 17px;border:1px solid #e4dffa;border-radius:16px;background:linear-gradient(135deg,#f4f0ff,#fff)}
.budget-planner-hero span{font-size:9.5px;color:var(--purple);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.budget-planner-hero h3{margin:3px 0;font-size:18px}.budget-planner-hero p{margin:0;color:var(--muted);font-size:10.5px}.budget-planner-tools{display:flex;gap:7px;flex:0 0 auto}.budget-planner-tools .btn{font-size:10px}.budget-planner-tools .btn:disabled{opacity:.48;cursor:not-allowed}
.budget-planner-guide{display:flex;align-items:center;justify-content:center;gap:12px;margin:10px 0;padding:8px 12px;border-radius:11px;background:#f8f8fc;color:#62657b;font-size:9.5px;font-weight:700}.budget-planner-guide span{display:flex;align-items:center;gap:6px}.budget-planner-guide b{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#ebe6ff;color:var(--purple);font-size:9px}.budget-planner-guide>i{color:#b0b2bf;font-style:normal;font-size:15px}
.budget-planner-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:10px 0 11px;position:relative}.budget-planner-summary>div:not(.budget-planner-meter){padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}.budget-planner-summary span,.budget-planner-summary small{display:block}.budget-planner-summary span{font-size:9.5px;color:var(--muted)}.budget-planner-summary strong{display:block;margin:3px 0 1px;font-size:15px}.budget-planner-summary small{font-size:9px;color:#9699aa}.budget-planner-summary>div.over{border-color:#ffd5da;background:#fff7f8}.budget-planner-summary>div.over strong{color:var(--red)}.budget-planner-meter{grid-column:1/-1;height:5px;overflow:hidden;border-radius:99px;background:#eeeef5}.budget-planner-meter span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#20b866,#78d771);transition:width .2s ease}.budget-planner-meter span.over{background:linear-gradient(90deg,#ff9a43,#ff4d5e)}
.budget-planner-note{margin-bottom:10px;padding:9px 11px;border-radius:11px;background:#fff9eb;color:#8b671e;font-size:9.5px;line-height:1.55}.budget-planner-groups{display:grid;gap:9px;overflow:visible;padding:0 0 16px}.budget-planner-group{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.budget-planner-group[open]{border-color:#cfc5f7;box-shadow:0 7px 20px rgba(70,51,145,.07)}.budget-planner-group>summary{list-style:none;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;cursor:pointer;background:#fbfbfe}.budget-planner-group>summary:hover{background:#f8f6ff}.budget-planner-group>summary::-webkit-details-marker{display:none}.budget-group-title{display:flex;align-items:center;gap:10px;min-width:0}.budget-group-title>i{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:#f0ecff;font-style:normal;font-size:19px}.budget-group-title b,.budget-group-title small{display:block}.budget-group-title b{font-size:11.5px}.budget-group-title small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.35;white-space:normal}.budget-group-side{display:flex;align-items:center;gap:12px;flex:0 0 auto}.budget-group-total{text-align:right}.budget-group-total span,.budget-group-total strong{display:block}.budget-group-total span{font-size:8.5px;color:var(--muted)}.budget-group-total strong{margin-top:2px;font-size:11px;color:#494c63}.budget-group-chevron{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#f0ecff;color:var(--purple);font-style:normal;font-size:18px;line-height:1;transition:transform .18s ease}.budget-planner-group[open] .budget-group-total strong{color:var(--purple)}.budget-planner-group[open] .budget-group-chevron{transform:rotate(180deg);background:var(--purple);color:#fff}
.budget-planner-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:4px 14px 10px}.budget-planner-row{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #f0f0f5}.budget-planner-row:nth-last-child(-n+2){border-bottom:0}.budget-planner-row.active .budget-planner-category>b{color:var(--purple)}.budget-planner-category{display:flex;align-items:center;gap:8px;min-width:0}.budget-planner-category>i{width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:#f7f6fb;font-style:normal;font-size:16px}.budget-planner-category b,.budget-planner-category small{display:block}.budget-planner-category b{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-planner-category small{margin-top:2px;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-planner-input{height:38px;display:flex;align-items:center;overflow:hidden;border:1px solid #dedfeb;border-radius:10px;background:#fff;transition:.16s ease}.budget-planner-input:focus-within{border-color:#9e8bea;box-shadow:0 0 0 3px #7d63e712}.budget-planner-input em{padding-left:10px;color:#8a8da2;font-style:normal;font-size:9.5px;font-weight:700}.budget-planner-input input{width:100%;min-width:0;height:100%;padding:0 10px 0 6px;border:0;outline:0;background:transparent;text-align:right;color:#30334a;font-size:11px;font-weight:750}.budget-planner-actions{position:sticky;bottom:0;z-index:3;margin:0 -24px;padding:12px 24px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}

@media(max-width:780px){.budget-planner-rows{grid-template-columns:1fr}.budget-planner-row:nth-last-child(2){border-bottom:1px solid #f0f0f5}.budget-planner-row:last-child{border-bottom:0}.budget-planner-hero{align-items:flex-start;flex-direction:column}.budget-planner-tools{width:100%;flex-wrap:wrap}.budget-planner-tools .btn{flex:1}.budget-planner-summary{grid-template-columns:1fr 1fr}.budget-planner-summary>div:nth-child(3){grid-column:1/-1}.budget-planner-meter{grid-column:1/-1}}
@media(max-width:560px){.budget-header-actions{width:100%;display:grid;grid-template-columns:1fr}.budget-header-actions .btn{width:100%}.modal.wide.budget-planner-modal{padding:16px 16px 0}.budget-planner-form{max-height:none}.budget-planner-hero{padding:13px}.budget-planner-guide{justify-content:flex-start;gap:7px;overflow-x:auto}.budget-planner-guide span{white-space:nowrap}.budget-planner-summary{grid-template-columns:1fr 1fr}.budget-planner-summary>div:not(.budget-planner-meter){padding:10px}.budget-planner-summary strong{font-size:13px}.budget-group-title small{display:none}.budget-planner-group>summary{min-height:60px;padding:9px 10px}.budget-group-side{gap:7px}.budget-planner-rows{padding:3px 10px 8px}.budget-planner-row{grid-template-columns:minmax(0,1fr) 125px}.budget-planner-category small{max-width:150px}.budget-planner-actions{margin:0 -16px;padding:10px 16px max(14px,env(safe-area-inset-bottom))}.budget-planner-actions .btn.primary{flex:1}}

/* Shared group-budget pools: one limit can be consumed by many categories. */
.budget-pool-section{margin-bottom:14px}.budget-section-intro{display:flex;align-items:end;justify-content:space-between;margin-bottom:9px;padding:0 3px}.budget-section-intro .eyebrow{display:block;color:var(--purple);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.budget-section-intro h2{margin:3px 0 2px;font-size:15px}.budget-section-intro p{margin:0;color:var(--muted);font-size:10px}.budget-pool-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.budget-pool-list>.friendly-empty{grid-column:1/-1}
.budget-pool-card{min-width:0;padding:15px 16px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 8px 26px rgba(52,39,112,.045)}.budget-pool-card.warning{border-color:#f1d4a7;background:linear-gradient(150deg,#fff 65%,#fff8ed)}.budget-pool-card.over{border-color:#f2c7cd;background:linear-gradient(150deg,#fff 65%,#fff3f5)}.budget-pool-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.budget-pool-identity{display:flex;align-items:center;gap:10px;min-width:0}.budget-pool-identity>i{width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:#f2efff;font-style:normal;font-size:18px}.budget-pool-identity h3{margin:0;font-size:12px}.budget-pool-identity p{margin:3px 0 0;overflow:hidden;color:var(--muted);font-size:8.5px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.budget-pool-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 9px}.budget-pool-numbers>div{min-width:0}.budget-pool-numbers span{display:block;color:var(--muted);font-size:8px}.budget-pool-numbers strong{display:block;margin-top:3px;overflow:hidden;font-size:11px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.budget-pool-progress{height:7px;overflow:hidden;border-radius:99px;background:#eeeef5}.budget-pool-progress>span{display:block;height:100%;border-radius:inherit;transition:width .2s ease}.budget-pool-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:8px}.budget-pool-foot small{min-width:0;overflow:hidden;color:var(--muted);font-size:8px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.budget-pool-foot b{flex:0 0 auto;color:#676a7d;font-size:8px}
.legacy-budget-section{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.legacy-budget-section>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;cursor:pointer;list-style:none}.legacy-budget-section>summary::-webkit-details-marker{display:none}.legacy-budget-section>summary b,.legacy-budget-section>summary small{display:block}.legacy-budget-section>summary b{font-size:11px}.legacy-budget-section>summary small{margin-top:2px;color:var(--muted);font-size:9px}.legacy-budget-section>summary>span{flex:0 0 auto;color:var(--purple);font-size:9px;font-weight:700}.legacy-budget-content{padding:0 12px 12px;border-top:1px solid var(--line)}.legacy-budget-content .advanced-filters{margin-top:11px}.legacy-budget-content .budget-list{border-radius:13px;box-shadow:none}.budget-superseded{opacity:.62}.budget-superseded .budget-state{color:#777a8c}.budget-superseded .budget-state i{background:#a5a8b7;box-shadow:none}
.budget-pool-example{margin-bottom:10px;padding:10px 12px;border:1px solid #ddd6fb;border-radius:11px;background:#f8f6ff;color:#5f5b76;font-size:9.5px;line-height:1.5}.budget-pool-editor-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:15px}.budget-pool-editor{min-width:0;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}.budget-pool-editor.active{border-color:#cfc5f7;box-shadow:0 8px 22px rgba(70,51,145,.055)}.budget-pool-editor-main{display:flex;align-items:center;justify-content:space-between;gap:12px}.budget-pool-editor-title{display:flex;align-items:center;gap:9px;min-width:0}.budget-pool-editor-title>i{width:35px;height:35px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:#f1edff;font-style:normal;font-size:17px}.budget-pool-editor-title h3{margin:0;font-size:11px}.budget-pool-editor-title p{margin:2px 0 0;overflow:hidden;color:var(--muted);font-size:8px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.budget-pool-editor-usage{flex:0 0 auto;text-align:right}.budget-pool-editor-usage span,.budget-pool-editor-usage strong{display:block}.budget-pool-editor-usage span{color:var(--muted);font-size:7.5px}.budget-pool-editor-usage strong{margin-top:2px;font-size:10px;font-variant-numeric:tabular-nums}.budget-pool-category-chips{display:flex;gap:5px;margin:10px 0;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.budget-pool-category-chips span{flex:0 0 auto;padding:4px 7px;border-radius:99px;background:#f5f5f9;color:#65687b;font-size:7.5px;white-space:nowrap}.budget-pool-editor-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(115px,.65fr);gap:10px;align-items:end}.budget-pool-editor-controls label>span{display:block;margin-bottom:5px;color:#5f6275;font-size:8px;font-weight:700}.budget-pool-live{min-width:0;padding-bottom:2px;text-align:right}.budget-pool-live span,.budget-pool-live strong,.budget-pool-live small{display:block}.budget-pool-live span{color:var(--muted);font-size:7.5px}.budget-pool-live strong{margin-top:2px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.budget-pool-live small{margin-top:1px;color:var(--muted);font-size:7px}.budget-pool-editor-meter{height:5px;margin-top:10px;overflow:hidden;border-radius:99px;background:#eeeef5}.budget-pool-editor-meter span{display:block;height:100%;border-radius:inherit;transition:width .18s ease}
@media(max-width:850px){.budget-pool-list,.budget-pool-editor-list{grid-template-columns:1fr}}
@media(max-width:560px){.budget-section-intro h2{font-size:14px}.budget-pool-card{padding:13px}.budget-pool-numbers{gap:5px}.budget-pool-numbers strong{font-size:10px}.budget-pool-foot{display:block}.budget-pool-foot b{display:block;margin-top:4px}.legacy-budget-section>summary{align-items:flex-start}.legacy-budget-section>summary small{max-width:230px}.budget-pool-editor{padding:12px}.budget-pool-editor-main{align-items:flex-start}.budget-pool-editor-title p{white-space:normal}.budget-pool-editor-controls{grid-template-columns:1fr}.budget-pool-live{text-align:left}.budget-pool-editor-usage span{display:none}}

/* Goal wallets: virtual envelopes linked to real accounts. */
.goal-wallet-card{position:relative;overflow:hidden}.goal-wallet-card.ready{border-color:#cfc4fa;background:linear-gradient(155deg,#fff 65%,#f6f3ff)}.goal-wallet-card.wallet{border-color:#bce4cf;background:linear-gradient(155deg,#fff 62%,#effbf5)}.goal-wallet-card.archived{opacity:.78;background:#f8f8fb}.goal-lifecycle{display:inline-flex!important;width:max-content;margin-top:4px!important;padding:4px 7px;border-radius:99px;background:#f1f2f6;color:#686b7d;font-size:8px!important;font-weight:750}.goal-lifecycle.ready,.goal-lifecycle.completed{background:#f0ecff;color:var(--purple)}.goal-lifecycle.wallet{background:#e7f8ef;color:#16894c}.goal-lifecycle.archived{background:#ececf1;color:#717483}.goal-lifecycle.overdue{background:#fff0f2;color:#d63e50}.goal-wallet-balance{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.goal-wallet-balance>div{padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.75)}.goal-wallet-balance span,.goal-wallet-balance b{display:block}.goal-wallet-balance span{color:var(--muted);font-size:8.5px}.goal-wallet-balance b{margin-top:3px;font-size:12px}.goal-usage-meter{height:5px;margin-top:8px;overflow:hidden;border-radius:99px;background:#e9ebf0}.goal-usage-meter span{display:block;height:100%;border-radius:inherit;background:#5cce8d}.goal-wallet-actions{flex-wrap:wrap}.goal-wallet-actions .btn{flex:1 1 auto;white-space:nowrap}
.goal-wallet-transaction-hint{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #ccebd9;border-radius:12px;background:#f0fbf5}.goal-wallet-transaction-hint>span{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:#fff;font-size:17px}.goal-wallet-transaction-hint b,.goal-wallet-transaction-hint small{display:block}.goal-wallet-transaction-hint b{font-size:10.5px}.goal-wallet-transaction-hint small{margin-top:2px;color:#567065;font-size:9px;line-height:1.4}.tag.goal-wallet-tag{background:#e9f8f0;color:#16894c}
.goal-wallet-confirm{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #ded8f7;border-radius:15px;background:linear-gradient(135deg,#f3efff,#fff)}.goal-wallet-confirm>span{width:45px;height:45px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:#fff;font-size:22px}.goal-wallet-confirm h3{margin:0;font-size:14px}.goal-wallet-confirm p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.goal-wallet-confirm-grid,.goal-history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.goal-wallet-confirm-grid>div,.goal-history-summary>div{padding:11px;border:1px solid var(--line);border-radius:12px}.goal-wallet-confirm-grid span,.goal-history-summary span{display:block;color:var(--muted);font-size:8.5px}.goal-wallet-confirm-grid b,.goal-history-summary b{display:block;margin-top:3px;font-size:11px}.goal-manage-summary{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#faf9fd}.goal-manage-summary>span{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:#f0ecff;font-size:20px}.goal-manage-summary b,.goal-manage-summary small{display:block}.goal-manage-summary b{font-size:12px}.goal-manage-summary small{margin-top:3px;color:var(--muted);font-size:9px}.goal-manage-actions{display:grid;gap:8px;margin-top:10px}.goal-manage-actions .btn{width:100%}.locked-goal-account{min-height:44px;display:flex;align-items:center;gap:7px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:#f7f7fa;color:#55586c;font-size:11px}.goal-usage-history{max-height:260px;overflow:auto}
@media(max-width:560px){.goal-wallet-confirm-grid,.goal-history-summary{grid-template-columns:1fr}.goal-wallet-balance{grid-template-columns:1fr 1fr}.goal-wallet-actions .btn{flex-basis:100%}.goal-wallet-transaction-hint{align-items:flex-start}}
