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

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}

:root{
  --bg:#f5f7ff;--bg-secondary:#eef1fb;--surface:#ffffff;--surface-hover:#f8f9fd;
  --primary:#6c5ce7;--primary-soft:rgba(108,92,231,0.1);--primary-gradient:linear-gradient(135deg,#6c5ce7,#a29bfe,#74b9ff);
  --success:#00b894;--success-soft:rgba(0,184,148,0.1);
  --danger:#e55039;--danger-soft:rgba(229,80,57,0.1);
  --warning:#f39c12;--warning-soft:rgba(243,156,18,0.1);
  --accent-pink:#fd79a8;--accent-peach:#ffecd2;--accent-blue:#74b9ff;
  --text:#1e2235;--text-secondary:#8b8fa8;--text-tertiary:#c4c7d4;
  --border:#e8ebf4;--border-light:#f0f2f8;
  --shadow-sm:0 2px 8px rgba(108,92,231,0.06);--shadow:0 4px 20px rgba(108,92,231,0.08);--shadow-lg:0 12px 40px rgba(108,92,231,0.12);
  --radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:32px;
  --nav-height:68px;
  --font:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;line-height:1.5}
h1,h2,h3,h4{font-weight:700;line-height:1.2}
button{font-family:var(--font)}
input,select,textarea{font-family:var(--font)}

/* APP SHELL */
.app{max-width:430px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;background:var(--bg)}

/* Decorative blobs */
.deco-blob{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0;opacity:.4}
.deco-blob-1{width:200px;height:200px;background:#a29bfe;top:-60px;right:-40px}
.deco-blob-2{width:160px;height:160px;background:#ffecd2;bottom:100px;left:-40px}
.deco-blob-3{width:120px;height:120px;background:#55efc4;top:50%;right:20%;opacity:.2}

.views-container{position:relative;z-index:1;padding-bottom:calc(var(--nav-height) + 24px)}
.view{display:none;padding:0 20px 20px;min-height:100vh;min-height:100dvh}
.view.active{display:block;animation:viewIn .4s ease}

/* BOTTOM NAV */
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;height:var(--nav-height);background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-around;z-index:100;padding:0 4px;padding-bottom:env(safe-area-inset-bottom,0px)}
.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--text-tertiary);font-size:.62rem;font-weight:600;cursor:pointer;padding:8px 14px;border-radius:var(--radius-sm);transition:all .25s;min-width:56px;min-height:44px;justify-content:center}
.nav-item i{font-size:1.15rem;transition:all .25s}
.nav-item.active{color:var(--primary)}
.nav-item.active i{transform:scale(1.1)}

/* FAB */
.fab{position:fixed;bottom:calc(var(--nav-height) + 12px + env(safe-area-inset-bottom,0px));right:calc(50% - 195px);width:56px;height:56px;border-radius:50%;border:none;background:var(--primary-gradient);color:#fff;font-size:1.5rem;cursor:pointer;box-shadow:0 6px 24px rgba(108,92,231,.35);z-index:99;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none}
.fab:active{transform:scale(.92)}
.fab:hover{box-shadow:0 8px 32px rgba(108,92,231,.45)}
@media(max-width:430px){.fab{right:20px}}

/* SURFACE CARD */
.card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);transition:all .2s}

/* ONBOARDING */
.onboarding{position:fixed;inset:0;background:#fff;z-index:1000;display:flex;flex-direction:column;overflow:hidden}
.onboarding.hidden{display:none}
.ob-slides{flex:1;position:relative}
.ob-slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;opacity:0;pointer-events:none;transition:all .5s ease}
.ob-slide.active{opacity:1;pointer-events:auto}
.ob-deco{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;margin-bottom:32px}
.ob-title{font-size:1.8rem;font-weight:800;text-align:center;margin-bottom:10px;color:var(--text);line-height:1.2}
.ob-subtitle{font-size:1rem;color:var(--text-secondary);text-align:center;max-width:300px;line-height:1.6;margin-bottom:32px}
.ob-trust-list{list-style:none;display:flex;flex-direction:column;gap:18px;margin-bottom:32px;width:100%;max-width:320px}
.ob-trust-item{display:flex;align-items:center;gap:14px;font-size:.92rem;color:var(--text);font-weight:500}
.ob-trust-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.ob-form{display:flex;flex-direction:column;gap:14px;width:100%;max-width:340px}
.ob-form label{font-size:.78rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:-6px}
.ob-form input,.ob-form select{width:100%;padding:14px 18px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:.95rem;outline:none;transition:border .25s}
.ob-form input:focus,.ob-form select:focus{border-color:var(--primary)}
.ob-dots{display:flex;justify-content:center;gap:8px;padding:20px}
.ob-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .3s}
.ob-dot.active{background:var(--primary);width:24px;border-radius:4px}
.btn-primary{width:100%;padding:16px;background:var(--primary-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s;letter-spacing:.3px;min-height:52px;-webkit-user-select:none}
.btn-primary:active{transform:scale(.98);opacity:.9}
.btn-secondary{width:100%;padding:14px;background:var(--primary-soft);border:none;border-radius:var(--radius-md);color:var(--primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .25s;min-height:48px}
.btn-secondary:active{transform:scale(.98)}

/* DASHBOARD */
.dash-header{display:flex;justify-content:space-between;align-items:center;padding:52px 0 16px}
.dash-greeting{font-size:.85rem;color:var(--text-secondary)}
.dash-greeting strong{color:var(--text);font-size:1.2rem;display:block;margin-top:2px}
.dash-logo{font-weight:800;font-size:1.2rem;color:var(--primary);letter-spacing:-1px}
.dash-date{font-size:.72rem;color:var(--text-tertiary);text-align:right}

.balance-card{background:var(--primary-gradient);border-radius:var(--radius-xl);padding:28px 24px;margin:8px 0 20px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);color:#fff}
.balance-card::before{content:'';position:absolute;top:-30px;right:-30px;width:100px;height:100px;background:rgba(255,255,255,.12);border-radius:50%}
.balance-card::after{content:'';position:absolute;bottom:-16px;left:30%;width:60px;height:60px;background:rgba(255,255,255,.06);border-radius:50%}
.balance-label{font-size:.8rem;opacity:.8;font-weight:500;display:flex;align-items:center;gap:6px}
.balance-label i{font-size:.65rem}
.balance-amount{font-size:2.6rem;font-weight:800;margin:6px 0;letter-spacing:-1px}
.balance-change{font-size:.78rem;opacity:.75}
.balance-change i{margin-right:4px}

.daily-snapshot{padding:18px 20px;margin-bottom:16px;display:flex;align-items:center;gap:14px}
.daily-snapshot .snap-emoji{font-size:2rem;flex-shrink:0}
.daily-snapshot .snap-text{font-size:.88rem;color:var(--text);line-height:1.5}
.daily-snapshot .snap-text strong{color:var(--primary)}

.money-mood{padding:16px 20px;margin-bottom:16px;display:flex;align-items:center;gap:14px}
.mood-face{font-size:2.2rem;flex-shrink:0}
.mood-info{flex:1}
.mood-label{font-size:.78rem;color:var(--text-secondary);font-weight:500;margin-bottom:4px}
.mood-bar{height:6px;background:var(--bg-secondary);border-radius:6px;overflow:hidden}
.mood-fill{height:100%;border-radius:6px;transition:width .8s ease}
.mood-msg{font-size:.75rem;color:var(--text-secondary);margin-top:6px}

.stats-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.stat-card{padding:18px}
.stat-icon{width:38px;height:38px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.9rem;margin-bottom:10px}
.stat-label{font-size:.72rem;color:var(--text-secondary);margin-bottom:3px;font-weight:500}
.stat-value{font-size:1.25rem;font-weight:700}

.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.section-title{font-size:1rem;font-weight:700}
.section-link{font-size:.78rem;color:var(--primary);background:none;border:none;cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}

/* Goals preview */
.goal-preview-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-light)}
.goal-preview-item:last-child{border-bottom:none}
.goal-preview-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}
.goal-preview-info{flex:1}
.goal-preview-name{font-size:.82rem;font-weight:600;margin-bottom:5px}
.goal-preview-bar{height:5px;background:var(--bg-secondary);border-radius:5px;overflow:hidden}
.goal-preview-fill{height:100%;border-radius:5px;transition:width .8s ease}
.goal-preview-pct{font-size:.72rem;font-weight:700;flex-shrink:0;min-width:36px;text-align:right}

/* TRANSACTION ITEMS */
.tx-list{margin-bottom:12px}
.tx-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-light);transition:background .15s;animation:slideUp .3s ease backwards;min-height:60px}
.tx-item:last-child{border-bottom:none}
.tx-icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}
.tx-info{flex:1;min-width:0}
.tx-name{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-cat{font-size:.7rem;color:var(--text-secondary);margin-top:1px}
.tx-right{text-align:right;flex-shrink:0}
.tx-amount{font-size:.92rem;font-weight:700}
.tx-amount.income{color:var(--success)}
.tx-amount.expense{color:var(--danger)}
.tx-amount.cash_withdrawal{color:var(--warning)}
.tx-time{font-size:.65rem;color:var(--text-tertiary);margin-top:1px}
.tx-actions{display:flex;gap:4px;margin-left:4px}
.tx-action-btn{width:36px;height:36px;border-radius:10px;border:none;background:var(--bg);color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.72rem;transition:all .2s;min-height:44px;min-width:44px}
.tx-action-btn:active{background:var(--danger-soft);color:var(--danger)}
.empty-state{text-align:center;padding:40px 20px;color:var(--text-tertiary)}
.empty-state i{font-size:2.5rem;margin-bottom:14px;opacity:.3;display:block}
.empty-state p{font-size:.88rem;line-height:1.5}
.empty-state .empty-emoji{font-size:3rem;margin-bottom:12px;display:block}

/* TRANSACTIONS VIEW */
.view-header{padding:52px 0 16px}
.view-header h1{font-size:1.5rem}
.search-bar{display:flex;align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:0 16px;margin-bottom:14px;transition:border .25s}
.search-bar:focus-within{border-color:var(--primary)}
.search-bar i{color:var(--text-tertiary);font-size:.85rem}
.search-bar input{flex:1;background:none;border:none;outline:none;padding:13px 12px;color:var(--text);font-size:.88rem;min-height:44px}
.search-bar input::placeholder{color:var(--text-tertiary)}
.filter-chips{display:flex;gap:8px;margin-bottom:18px;overflow-x:auto;padding-bottom:4px;-ms-overflow-style:none;scrollbar-width:none}
.filter-chips::-webkit-scrollbar{display:none}
.chip{padding:8px 16px;border-radius:20px;border:1.5px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .25s;min-height:38px}
.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.tx-date-group{font-size:.72rem;color:var(--text-tertiary);font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:14px 0 4px}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(30,34,53,.4);backdrop-filter:blur(6px);z-index:200;display:none;align-items:flex-end;justify-content:center}
.modal-overlay.active{display:flex}
.modal-sheet{width:100%;max-width:430px;max-height:92vh;max-height:92dvh;background:#fff;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:10px 24px calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto;animation:sheetUp .4s cubic-bezier(.16,1,.3,1);-webkit-overflow-scrolling:touch}
.modal-handle{width:36px;height:4px;background:var(--border);border-radius:4px;margin:0 auto 18px}
.modal-title{font-size:1.2rem;font-weight:700;margin-bottom:20px;text-align:center}

/* Type Toggle */
.type-toggle{display:flex;background:var(--bg);border-radius:var(--radius-md);padding:4px;margin-bottom:20px;gap:4px}
.type-btn{flex:1;padding:11px;border:none;border-radius:14px;background:none;color:var(--text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .25s;min-height:44px}
.type-btn.active{color:#fff;box-shadow:var(--shadow-sm)}
.type-btn.active[data-type="expense"]{background:var(--danger)}
.type-btn.active[data-type="income"]{background:var(--success)}
.type-btn.active[data-type="cash_withdrawal"]{background:var(--warning)}

/* Amount Input */
.amount-display{text-align:center;margin-bottom:24px;padding:16px 0}
.currency-symbol{font-size:1.4rem;color:var(--text-secondary);font-weight:600;vertical-align:super}
.amount-input{background:none;border:none;outline:none;font-size:3.2rem;font-weight:800;color:var(--text);text-align:center;width:100%;caret-color:var(--primary)}
.amount-input::placeholder{color:var(--text-tertiary)}
.amount-helper{font-size:.75rem;color:var(--text-tertiary);margin-top:8px;text-align:center}

/* Category Grid */
.category-grid-label{font-size:.78rem;color:var(--text-secondary);font-weight:600;margin-bottom:10px}
.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.cat-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:var(--radius-md);border:1.5px solid transparent;background:var(--bg);cursor:pointer;transition:all .2s;min-height:72px;justify-content:center}
.cat-item.selected{border-color:var(--primary);background:var(--primary-soft)}
.cat-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.85rem}
.cat-name{font-size:.62rem;color:var(--text-secondary);text-align:center;font-weight:600}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:.78rem;color:var(--text-secondary);font-weight:600;margin-bottom:6px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:13px 16px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:.88rem;outline:none;transition:border .25s;resize:none;min-height:48px}
.form-group input:focus,.form-group select:focus{border-color:var(--primary)}
.more-details-toggle{background:none;border:none;color:var(--primary);font-size:.82rem;font-weight:600;cursor:pointer;padding:8px 0;margin-bottom:10px;min-height:44px}
.more-details{display:none}.more-details.open{display:block}

/* GOALS */
.period-tabs{display:flex;gap:4px;margin-bottom:18px;background:var(--bg-secondary);border-radius:var(--radius-md);padding:4px}
.period-tab{flex:1;padding:10px;border:none;border-radius:14px;background:none;color:var(--text-secondary);font-size:.76rem;font-weight:600;cursor:pointer;transition:all .25s;min-height:40px}
.period-tab.active{background:var(--primary);color:#fff}
.goal-card{margin-bottom:12px;padding:18px}
.goal-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.goal-name{font-weight:600;font-size:.9rem}
.goal-period-badge{font-size:.6rem;padding:4px 10px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.goal-amounts{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-secondary);margin-bottom:8px}
.goal-amounts .spent{font-weight:700;color:var(--text)}
.goal-bar{height:8px;background:var(--bg-secondary);border-radius:8px;overflow:hidden;margin-bottom:8px}
.goal-bar-fill{height:100%;border-radius:8px;transition:width .8s ease}
.goal-bar-fill.safe{background:var(--success)}
.goal-bar-fill.warning{background:var(--warning)}
.goal-bar-fill.danger{background:var(--danger)}
.goal-footer{display:flex;justify-content:space-between;align-items:center}
.goal-pct{font-size:.78rem;font-weight:700}
.goal-remaining{font-size:.7rem;color:var(--text-secondary)}
.goal-delete-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:.78rem;padding:8px;border-radius:8px;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}
.goal-delete-btn:active{color:var(--danger);background:var(--danger-soft)}
.add-goal-btn{width:100%;padding:16px;border:2px dashed var(--border);border-radius:var(--radius-lg);background:none;color:var(--text-secondary);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .25s;margin-top:8px;min-height:52px}
.add-goal-btn:active{border-color:var(--primary);color:var(--primary)}
.add-goal-btn i{margin-right:8px}

/* INSIGHTS VIEW */
.insight-card{padding:18px;margin-bottom:12px;display:flex;align-items:flex-start;gap:14px}
.insight-emoji{font-size:1.8rem;flex-shrink:0;margin-top:2px}
.insight-text{font-size:.88rem;color:var(--text);line-height:1.6}
.insight-text strong{color:var(--primary)}

.analytics-period-selector{display:flex;gap:8px;margin-bottom:20px}
.analytics-period-btn{padding:8px 16px;border:1.5px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text-secondary);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .25s;min-height:38px}
.analytics-period-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.analytics-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:20px}
.analytics-stat{padding:14px 10px;text-align:center}
.analytics-stat .label{font-size:.65rem;color:var(--text-secondary);margin-bottom:4px;font-weight:500}
.analytics-stat .value{font-size:1rem;font-weight:700}
.chart-container{margin-bottom:16px;padding:18px}
.chart-title{font-size:.95rem;font-weight:700;margin-bottom:16px}
.chart-canvas-wrap{display:flex;align-items:center;justify-content:center;position:relative}
.chart-canvas-wrap canvas{max-width:100%}
.chart-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.legend-item{display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--text-secondary)}
.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.top-categories{margin-bottom:12px}
.top-cat-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-light)}
.top-cat-item:last-child{border-bottom:none}
.top-cat-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}
.top-cat-info{flex:1}
.top-cat-name{font-size:.82rem;font-weight:600}
.top-cat-bar{height:4px;background:var(--bg-secondary);border-radius:4px;margin-top:5px;overflow:hidden}
.top-cat-fill{height:100%;border-radius:4px;transition:width .6s ease}
.top-cat-amount{font-size:.85rem;font-weight:700;flex-shrink:0}

/* SETTINGS */
.settings-section{margin-bottom:20px}
.settings-section-title{font-size:.7rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px;font-weight:700;margin-bottom:10px;padding-left:4px}
.settings-item{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:6px;cursor:pointer;transition:background .15s;min-height:60px}
.settings-item:active{background:var(--surface-hover)}
.settings-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.92rem;flex-shrink:0}
.settings-item-info{flex:1}
.settings-item-label{font-size:.88rem;font-weight:600}
.settings-item-desc{font-size:.7rem;color:var(--text-secondary);margin-top:2px}
.badge-soon{font-size:.58rem;padding:3px 8px;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-weight:700;letter-spacing:.5px}
.settings-item select{padding:8px 12px;background:var(--bg);border:1.5px solid var(--border);border-radius:8px;color:var(--text);font-size:.78rem;outline:none;min-height:36px}

.privacy-banner{padding:16px 18px;margin-bottom:16px;display:flex;align-items:center;gap:12px;background:var(--success-soft);border-color:rgba(0,184,148,.15)}
.privacy-banner i{color:var(--success);font-size:1.1rem;flex-shrink:0}
.privacy-banner p{font-size:.78rem;color:var(--text-secondary);line-height:1.5}

.btn-danger{width:100%;padding:14px;background:var(--danger-soft);border:1px solid rgba(229,80,57,.15);border-radius:var(--radius-md);color:var(--danger);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .25s;min-height:48px}
.btn-outline{width:100%;padding:14px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .25s;min-height:48px}
.btn-outline:active{border-color:var(--primary);color:var(--primary)}
.app-about{text-align:center;padding:24px 20px;color:var(--text-tertiary)}
.app-about .about-logo{font-size:1.6rem;font-weight:800;color:var(--primary);margin-bottom:4px}
.app-about .about-tagline{font-size:.82rem}
.app-about .about-version{font-size:.68rem;margin-top:2px}

/* TOAST */
.toast-container{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:300;width:100%;max-width:390px;padding:0 20px;pointer-events:none}
.toast{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 20px;font-size:.85rem;font-weight:600;text-align:center;box-shadow:var(--shadow-lg);animation:toastIn .35s ease,toastOut .35s ease 2.5s forwards;pointer-events:auto;color:var(--text)}
.toast.success{border-color:rgba(0,184,148,.3);color:var(--success)}
.toast.error{border-color:rgba(229,80,57,.3);color:var(--danger)}
.toast.info{border-color:rgba(108,92,231,.3);color:var(--primary)}

/* ANIMATIONS */
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastIn{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{from{opacity:1}to{opacity:0;transform:translateY(-16px)}}

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

@media(min-width:431px){body{background:#eef1fb}.app{border-left:1px solid var(--border);border-right:1px solid var(--border)}}
@media(max-width:360px){.category-grid{grid-template-columns:repeat(3,1fr)}.balance-amount{font-size:2.2rem}.amount-input{font-size:2.6rem}.analytics-summary{grid-template-columns:1fr 1fr}}
