@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:wght@300;400;500;600&display=swap";:root{--green-900: #0d2818;--green-800: #14532d;--green-700: #166534;--green-600: #16a34a;--green-400: #4ade80;--green-100: #dcfce7;--amber-500: #f59e0b;--amber-400: #fbbf24;--amber-100: #fef3c7;--sand-50: #fafaf7;--sand-100: #f5f5f0;--sand-200: #e8e8e0;--sand-400: #a8a89a;--sand-600: #6b6b5d;--sand-900: #1c1c14;--danger: #dc2626;--danger-light: #fee2e2;--radius: 12px;--radius-lg: 20px;--shadow: 0 2px 8px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.12);--shadow-lg: 0 8px 32px rgba(0,0,0,.16);font-family:DM Sans,sans-serif;font-size:15px;color:var(--sand-900);background:var(--sand-50)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}.auth-page{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}@media (max-width: 768px){.auth-page{grid-template-columns:1fr}.auth-left{display:none}}.auth-left{background:var(--green-900);display:flex;align-items:center;justify-content:center;padding:3rem}.auth-hero{color:#fff;text-align:center}.hero-pet{font-size:4rem;margin-bottom:1rem}.hero-title{font-family:"DM Serif Display",serif;font-size:3.5rem;margin-bottom:.5rem;color:var(--green-400)}.hero-sub{font-size:1.25rem;color:var(--green-100);margin-bottom:1rem;font-style:italic}.hero-desc{color:#ffffffb3;line-height:1.7;margin-bottom:2rem}.hero-stats{display:flex;gap:1.5rem;justify-content:center}.stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-val{font-size:1.5rem}.stat-lbl{font-size:.7rem;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em}.auth-right{display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--sand-50)}.auth-card{width:100%;max-width:420px;background:#fff;border-radius:var(--radius-lg);padding:2.5rem;box-shadow:var(--shadow-lg)}.auth-tabs{display:flex;border-bottom:2px solid var(--sand-200);margin-bottom:2rem;gap:0}.auth-tab{flex:1;padding:.75rem;border:none;background:none;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:500;color:var(--sand-600);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.auth-tab--active{color:var(--green-700);border-bottom-color:var(--green-600)}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:.85rem;font-weight:600;color:var(--sand-600);text-transform:uppercase;letter-spacing:.04em}.field input{padding:.75rem 1rem;border:1.5px solid var(--sand-200);border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:.95rem;background:var(--sand-50);transition:border-color .2s;outline:none}.field input:focus{border-color:var(--green-600);background:#fff}.auth-error{padding:.75rem 1rem;background:var(--danger-light);color:var(--danger);border-radius:var(--radius);font-size:.9rem}.btn-primary{width:100%;padding:.875rem;background:var(--green-700);color:#fff;border:none;border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.btn-primary:hover{background:var(--green-800)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.75rem 1.5rem;background:#fff;color:var(--green-700);border:1.5px solid var(--green-600);border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--green-100)}.btn-ghost{padding:.5rem 1rem;background:none;border:none;color:var(--sand-600);font-family:DM Sans,sans-serif;font-size:.9rem;cursor:pointer;border-radius:8px;transition:background .2s}.btn-ghost:hover{background:var(--sand-100)}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:380px;box-shadow:var(--shadow-lg)}.modal-title{font-size:1.1rem;font-weight:600;margin-bottom:1.25rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.85rem;font-weight:500;color:var(--sand-600);margin-bottom:.4rem}.form-input{width:100%;padding:.6rem .75rem;border:1.5px solid var(--sand-200);border-radius:8px;font-family:DM Sans,sans-serif;font-size:.95rem;outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--green-600)}.species-picker{display:flex;gap:.5rem}.species-btn{flex:1;padding:.6rem .25rem;border:1.5px solid var(--sand-200);border-radius:10px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.2rem;transition:border-color .15s,background .15s}.species-btn:hover{border-color:var(--green-600);background:var(--sand-50)}.species-btn--active{border-color:var(--green-600);background:var(--green-100)}.species-emoji{font-size:1.5rem}.species-label{font-size:.75rem;color:var(--sand-600)}.pet-profile-right{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--green-900);padding:0 1.5rem;height:60px;display:flex;align-items:center}.header-inner{max-width:1100px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:.6rem}.logo-icon{font-size:1.4rem}.logo-text{font-family:"DM Serif Display",serif;font-size:1.5rem;color:var(--green-400);letter-spacing:-.01em}.header-right{display:flex;align-items:center;gap:1rem}.user-name{color:#ffffffb3;font-size:.9rem}.tab-nav{background:#fff;border-bottom:1px solid var(--sand-200);display:flex;padding:0 1rem;max-width:1100px;width:100%;margin:0 auto;align-self:stretch}.app>.tab-nav{max-width:100%;padding:0 1.5rem}.tab-btn{display:flex;align-items:center;gap:.4rem;padding:.875rem 1.25rem;border:none;background:none;font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:500;color:var(--sand-600);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s;position:relative}.tab-btn:hover{color:var(--green-700)}.tab-btn--active{color:var(--green-700);border-bottom-color:var(--green-600)}.tab-icon{font-size:1rem}.tab-badge{background:var(--amber-500);color:#fff;font-size:.7rem;font-weight:700;padding:.1rem .45rem;border-radius:20px;min-width:1.3rem;text-align:center}.main-content{flex:1;max-width:1100px;width:100%;margin:2rem auto;padding:0 1.5rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem;color:var(--sand-600)}.spinner{width:36px;height:36px;border:3px solid var(--sand-200);border-top-color:var(--green-600);border-radius:50%;animation:spin .8s linear infinite}.pet-widget{background:#fff;border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1.5rem}.pet-profile{display:flex;align-items:center;gap:1.25rem}.pet-avatar{font-size:4rem;width:80px;height:80px;background:var(--green-100);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pet-info{flex:1}.pet-name{font-family:"DM Serif Display",serif;font-size:1.75rem;color:var(--green-900)}.pet-mood{display:flex;align-items:center;gap:.4rem;font-size:.95rem;color:var(--sand-600)}.pet-score{text-align:right}.pet-score-num{font-size:2.5rem;font-weight:700;color:var(--green-700);line-height:1}.pet-score-label{font-size:.8rem;color:var(--sand-400)}.pet-warning{background:var(--amber-100);border:1px solid var(--amber-400);border-radius:var(--radius);padding:.875rem 1rem;font-size:.9rem;color:#92400e}.pet-stats{display:flex;flex-direction:column;gap:.875rem}.stat-bar{display:flex;flex-direction:column}.stat-bar-header{display:flex;justify-content:space-between;margin-bottom:.4rem}.stat-bar-label{font-size:.875rem;font-weight:500}.stat-bar-value{font-size:.875rem;font-weight:600;color:var(--sand-600)}.stat-bar-track{height:8px;background:var(--sand-200);border-radius:99px;overflow:hidden;display:flex;align-items:stretch}.stat-bar-fill{height:100%;transition:width .5s ease;flex-shrink:0}.stat-bar-preview-gain{height:100%;opacity:.3;flex-shrink:0;transition:width .5s ease;animation:stat-preview-pulse 1.5s ease-in-out infinite}.stat-bar-preview-loss{height:100%;flex-shrink:0;transition:width .5s ease;background:repeating-linear-gradient(-45deg,#ef4444d9,#ef4444d9 3px,#ef444459 3px,#ef444459 6px);animation:stat-preview-loss-pulse .9s ease-in-out infinite}@keyframes stat-preview-loss-pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes stat-preview-pulse{0%,to{opacity:.18}50%{opacity:.42}}.pet-last-update{font-size:.8rem;color:var(--sand-400);font-style:italic}.pet-last-update-time{color:var(--green-600);font-style:normal}.stat-bar-delta{margin-left:.35rem;font-size:.72rem;font-weight:600}.stat-bar-delta--gain{color:var(--green-600)}.stat-bar-delta--loss{color:#ef4444}.tick-summary{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--sand-400);margin:.25rem 0 0;flex-wrap:wrap}.tick-summary-deltas{display:flex;align-items:center;gap:.3rem}.tick-delta--gain{color:var(--green-600);font-weight:600}.tick-delta--loss{color:#ef4444;font-weight:600}.tick-info-toggle{margin-left:auto;background:none;border:none;font-size:.72rem;color:var(--sand-400);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.tick-info-toggle:hover{color:var(--sand-600)}.tick-info{margin-top:.6rem;padding:.75rem;background:var(--sand-50, #fafaf7);border:1px solid var(--sand-200);border-radius:8px;font-size:.8rem}.tick-info-heading{font-weight:600;color:var(--sand-600);margin:0 0 .25rem;font-size:.8rem}.tick-info-explainer{color:var(--sand-400);margin:0 0 .65rem;line-height:1.4}.tick-info-rows{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.65rem}.tick-info-row{display:grid;grid-template-columns:7rem 2.5rem 1fr;align-items:center;gap:.4rem;font-size:.78rem}.tick-info-stat{color:var(--sand-600);font-weight:500}.tick-info-delta{font-weight:700;font-size:.78rem}.tick-info-reason{color:var(--sand-400)}.tick-info-actions{display:flex;flex-direction:column;gap:.2rem}.tick-info-action{color:var(--sand-600);margin:0;font-weight:500}.tick-info-clean{color:var(--green-600);font-weight:500;margin:0}.pet-empty{text-align:center;color:var(--sand-600);padding:3rem}.pet-history{background:var(--green-900);border-radius:var(--radius);padding:1rem;margin-top:.25rem}.pet-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.pet-history-title{font-size:.8rem;font-weight:600;color:var(--green-400);text-transform:uppercase;letter-spacing:.05em}.pet-history-count{font-size:.75rem;color:#ffffff59}.sparkline-legend{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.sparkline-legend-item{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:#fff9}.sparkline-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.txn-panel{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.txn-header{padding:1.5rem;border-bottom:1px solid var(--sand-200);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.txn-header h2{font-family:"DM Serif Display",serif;font-size:1.5rem}.txn-subtitle{font-size:.875rem;color:var(--amber-500);margin-top:.2rem}.txn-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.txn-search{font-size:.82rem;padding:.45rem .75rem;height:auto;min-width:160px;max-width:220px}.txn-account-select{font-size:.82rem;padding:.45rem .75rem;height:auto;min-width:160px}.filter-toggle{display:flex;border:1.5px solid var(--sand-200);border-radius:var(--radius);overflow:hidden}.filter-btn{padding:.5rem 1rem;border:none;background:none;font-family:DM Sans,sans-serif;font-size:.85rem;font-weight:500;color:var(--sand-600);cursor:pointer;transition:all .15s}.filter-btn--active{background:var(--green-700);color:#fff}.txn-list{list-style:none}.txn-month-divider{display:flex;align-items:baseline;gap:.6rem;padding:.9rem 1.5rem .4rem;position:sticky;top:0;z-index:1;background:#fff;border-bottom:1px solid var(--sand-100)}.txn-month-label{font-family:"DM Serif Display",serif;font-size:1rem;color:var(--sand-800)}.txn-month-count{font-size:.75rem;color:var(--sand-400)}.txn-cat-groups{display:flex;flex-direction:column;gap:.75rem}.txn-cat-group{border:1px solid var(--sand-200);border-radius:var(--radius);overflow:hidden}.txn-cat-group-header{width:100%;display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;background:var(--sand-50);border:none;cursor:pointer;text-align:left}.txn-cat-group-header:hover{background:var(--sand-100)}.txn-cat-group-icon{font-size:1.1rem}.txn-cat-group-name{font-weight:600;font-size:.95rem;flex:1}.txn-cat-group-meta{font-size:.78rem;color:var(--sand-400)}.txn-cat-group-total{font-weight:700;font-size:.95rem;color:var(--sand-800)}.txn-cat-group-chevron{font-size:.7rem;color:var(--sand-400);margin-left:.25rem}.txn-cat-group-body .txn-row:last-child{border-bottom:none}.txn-cat-group-body .txn-row{padding-left:1.5rem}.txn-row{padding:1rem 1.5rem;border-bottom:1px solid var(--sand-100);transition:background .15s}.txn-row:last-child{border-bottom:none}.txn-row--uncategorized{border-left:3px solid var(--amber-400)}.txn-row--one-time{opacity:.75}.txn-row:hover{background:var(--sand-50)}.txn-main{display:flex;align-items:center;gap:1rem}.txn-meta{display:flex;align-items:center;gap:.5rem}.txn-date{font-size:.8rem;color:var(--sand-400);min-width:50px}.txn-badge{font-size:.7rem;background:var(--amber-100);color:#92400e;padding:.15rem .5rem;border-radius:99px;font-weight:600}.txn-badge--one-time{background:var(--sand-100);color:var(--sand-500)}.txn-badge--pending{background:#dbeafe;color:#1d4ed8}.txn-badge--installment{background:#ede9fe;color:#6d28d9}.txn-installment-wrap{margin-top:.35rem}.txn-installment-btn{font-size:.72rem;font-weight:500;color:var(--sand-500);background:none;border:1px solid var(--sand-200);border-radius:99px;padding:.15rem .6rem;cursor:pointer}.txn-installment-btn:hover{color:var(--sand-800);border-color:var(--sand-400)}.txn-installment-panel{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.35rem;padding:.5rem .65rem;background:#6d28d90f;border-radius:8px;border:1px solid rgba(109,40,217,.15)}.txn-installment-panel-label{font-size:.75rem;color:var(--sand-600)}.txn-installment-panel-per{font-size:.75rem;color:#6d28d9;font-weight:600}.txn-installment-input{width:3.5rem;font-size:.78rem;text-align:center;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;padding:.1rem .3rem}.txn-installment-active{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.3rem 0}.txn-installment-label{font-size:.75rem;color:#6d28d9;font-weight:500}.txn-installment-clear{font-size:.68rem;color:var(--sand-400);background:none;border:none;cursor:pointer;text-decoration:underline}.txn-sync-btn{color:var(--green-700)}.txn-track-badge--a{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .55rem;border-radius:999px;background:var(--green-100);color:var(--green-700)}.txn-sync-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem}.txn-last-synced{font-size:.72rem;color:var(--sand-400);white-space:nowrap;line-height:1.2}.txn-sync-btn:disabled{opacity:.5;cursor:default}.txn-anomaly-prompt{margin-top:.5rem;padding:.65rem .75rem;background:var(--amber-50, #fffbeb);border:1px solid var(--amber-200, #fde68a);border-radius:8px;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.txn-anomaly-text{flex:1;font-size:.85rem;color:var(--sand-700);min-width:160px}.txn-anomaly-actions{display:flex;gap:.5rem}.btn-anomaly-confirm{font-size:.8rem;font-weight:600;padding:.3rem .75rem;background:var(--sand-800);color:#fff;border:none;border-radius:6px;cursor:pointer}.btn-anomaly-confirm:hover{background:var(--sand-900)}.btn-anomaly-dismiss{font-size:.8rem;font-weight:500;padding:.3rem .75rem;background:transparent;color:var(--sand-500);border:1px solid var(--sand-200);border-radius:6px;cursor:pointer}.btn-anomaly-dismiss:hover{background:var(--sand-50)}.btn-track-expense{background:none;border:1px dashed var(--sand-300);border-radius:4px;padding:.22rem .55rem;font-size:.78rem;color:var(--sand-500);cursor:pointer;margin-top:.3rem;display:inline-block}.btn-track-expense:hover{border-color:var(--green-600);color:var(--green-700);background:#f0fdf4}.txn-similar-prompt{display:flex;align-items:flex-start;gap:.75rem;background:#fefce8;border:1px solid #fde047;border-radius:6px;padding:.6rem .75rem;margin-top:.4rem;flex-wrap:wrap}.txn-similar-text{font-size:.84rem;flex:1;color:var(--sand-700)}.txn-similar-actions{display:flex;gap:.4rem;flex-shrink:0}.btn-similar-confirm{font-size:.8rem;font-weight:600;padding:.3rem .65rem;background:var(--green-700);color:#fff;border:none;border-radius:5px;cursor:pointer}.btn-similar-confirm:hover{background:#166534}.btn-similar-confirm:disabled{opacity:.6;cursor:default}.btn-similar-dismiss{font-size:.8rem;padding:.3rem .65rem;background:none;color:var(--sand-500);border:1px solid var(--sand-200);border-radius:5px;cursor:pointer}.btn-similar-dismiss:hover{background:var(--sand-50)}.txn-desc{flex:1;font-size:.95rem;font-weight:500}.txn-amount{font-weight:600;color:var(--sand-900);font-size:.95rem}.txn-amount--income{color:var(--green-700)}.txn-amount--expense{color:var(--danger)}.btn-categorize{margin-top:.75rem;padding:.5rem 1rem;background:var(--green-700);color:#fff;border:none;border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-categorize:hover{background:var(--green-800)}.category-picker{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.cat-btn{padding:.4rem .875rem;border:1.5px solid var(--sand-200);background:#fff;border-radius:99px;font-family:DM Sans,sans-serif;font-size:.85rem;cursor:pointer;transition:all .15s}.cat-btn:hover{border-color:var(--green-600);background:var(--green-100)}.btn-cancel{font-size:.85rem;margin-left:.25rem}.saving-msg{font-size:.875rem;color:var(--sand-600)}.txn-empty{padding:3rem;text-align:center;color:var(--sand-600)}.txn-category-badge{font-size:.75rem;font-weight:500;background:var(--green-100);color:var(--green-800);padding:.15rem .5rem;border-radius:99px}.txn-account-badge{font-size:.72rem;font-weight:500;background:var(--sand-100);color:var(--sand-600);border:1px solid var(--sand-200);padding:.1rem .45rem;border-radius:99px}.btn-recategorize{margin-top:.5rem;padding:.3rem .75rem;background:none;border:1px solid var(--sand-200);border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:.8rem;color:var(--sand-600);cursor:pointer;transition:all .15s}.btn-recategorize:hover{border-color:var(--green-600);color:var(--green-700)}.cat-btn--active{border-color:var(--green-600);background:var(--green-100);color:var(--green-800)}.cat-btn--suggested{border-color:var(--amber-500);background:#fbbf2414;color:var(--sand-900)}.cat-btn-suggested-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber-500);margin-left:5px;vertical-align:middle}.cat-picker-hint{font-size:.72rem;color:var(--amber-500);margin:0 0 .4rem;font-style:italic}.txn-type-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:99px}.txn-type-badge--income{background:var(--green-100);color:var(--green-800)}.txn-type-badge--transfer{background:var(--sand-100);color:var(--sand-600)}.connect-panel{background:#fff;border-radius:var(--radius-lg);padding:2.5rem;box-shadow:var(--shadow);max-width:540px;margin:0 auto;text-align:center}.connect-hero{margin-bottom:2rem}.connect-icon{font-size:3rem;margin-bottom:1rem}.connect-hero h2{font-family:"DM Serif Display",serif;font-size:1.75rem;margin-bottom:.75rem}.connect-hero p{color:var(--sand-600);line-height:1.6}.connect-actions{display:flex;flex-direction:column;gap:.875rem;margin-bottom:1.5rem}.btn-large{padding:1rem 2rem;font-size:1.05rem}.connect-msg{padding:.875rem;border-radius:var(--radius);font-size:.9rem;margin-bottom:1rem}.connect-msg--success{background:var(--green-100);color:var(--green-800)}.connect-msg--error{background:var(--danger-light);color:var(--danger)}.connect-note{font-size:.8rem;color:var(--sand-400)}.budget-panel{background:#fff;border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow)}.budget-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.budget-month-label{font-family:"DM Serif Display",serif;font-size:1.4rem;display:flex;align-items:center;gap:.5rem}.budget-month-tag{font-family:inherit;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:var(--green-100);color:var(--green-800);padding:.1rem .45rem;border-radius:99px;vertical-align:middle}.budget-month-arrow{background:none;border:1px solid var(--sand-200);border-radius:6px;padding:.2rem .7rem;font-size:1.1rem;cursor:pointer;color:var(--sand-600);line-height:1.4}.budget-month-arrow:hover:not(:disabled){background:var(--sand-50)}.budget-month-arrow:disabled{opacity:.3;cursor:default}.budget-new-month-banner{font-size:.82rem;color:var(--green-800);background:var(--green-50, #f0fdf4);border:1px solid var(--green-200, #bbf7d0);border-radius:8px;padding:.5rem .75rem;margin-bottom:1rem}.budget-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem;padding:.75rem;background:var(--sand-50);border-radius:10px;border:1px solid var(--sand-150, #e8e6d8)}.budget-controls-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--sand-400);flex-basis:100%}.budget-control-group{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.budget-ctrl-group-label{font-size:.7rem;color:var(--sand-400);font-weight:600;margin-right:.1rem}.budget-ctrl-btn{font-size:.78rem;font-weight:500;padding:.3rem .75rem;border:1px solid var(--sand-300);border-radius:99px;background:var(--surface, #1c1c14);color:var(--sand-400);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.budget-ctrl-btn:hover{background:var(--sand-100);color:var(--sand-800);border-color:var(--sand-400)}.budget-ctrl-btn--active{background:var(--sand-800);color:#fff;border-color:var(--sand-800);font-weight:600}.budget-tx-count{font-size:.7rem;color:var(--sand-400);font-weight:400;margin-left:.25rem}.budget-panel h2{font-family:"DM Serif Display",serif;font-size:1.5rem;margin-bottom:1.5rem}.budget-row{margin-bottom:1.25rem}.budget-meta{display:flex;justify-content:space-between;margin-bottom:.4rem;font-size:.9rem;font-weight:500}.budget-category{display:flex;align-items:center;gap:.4rem}.budget-icon{font-size:1rem}.budget-amounts.over{color:var(--danger)}.budget-over-label{font-size:.75rem;font-weight:600}.budget-track{height:8px;background:var(--sand-200);border-radius:99px;overflow:hidden}.budget-fill{height:100%;background:var(--green-600);border-radius:99px;transition:width .5s ease}.budget-fill--over{background:var(--danger)}.budget-empty{color:var(--sand-400);font-size:.9rem;margin:1rem 0}.budget-row-btn{width:100%;background:none;border:none;text-align:left;cursor:pointer;padding:0;font-family:DM Sans,sans-serif;border-radius:var(--radius);transition:background .15s}.budget-row-btn:hover{background:var(--sand-50)}.budget-chevron{font-size:.65rem;color:var(--sand-400);margin-left:.4rem}.budget-row--disabled{opacity:.55}.budget-disabled-tag{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--sand-400);border:1px solid var(--sand-200);border-radius:99px;padding:.05rem .4rem;margin-left:.3rem}.budget-drilldown{background:var(--sand-50);border-radius:var(--radius);padding:.75rem 1rem;margin-top:.25rem;margin-bottom:.5rem;border:1px solid var(--sand-200)}.budget-drilldown-header{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:600;color:var(--sand-600);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}.budget-drilldown-row{display:flex;align-items:center;gap:.75rem;padding:.3rem 0;font-size:.875rem;border-bottom:1px solid var(--sand-100)}.budget-drilldown-row:last-child{border-bottom:none}.budget-drilldown-date{font-size:.78rem;color:var(--sand-400);min-width:48px}.budget-drilldown-desc{flex:1}.budget-drilldown-amt{font-weight:600;color:var(--green-800)}.budget-drilldown-loading,.budget-drilldown-empty{font-size:.85rem;color:var(--sand-400)}.budget-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.5rem;align-items:start;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--sand-200)}.budget-form-error{grid-column:1 / -1;color:var(--danger);font-size:.85rem;margin-top:.25rem}.budget-amount-field{position:relative;display:flex;flex-direction:column;gap:.2rem}.budget-suggestion-hint{font-size:.72rem;color:var(--green-700);font-weight:500}.budget-sugg-panel{margin-bottom:1.5rem;background:#fff;border:1.5px solid var(--sand-200);border-radius:var(--radius-lg);overflow:hidden}.budget-sugg-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;background:var(--sand-100);border-bottom:1px solid var(--sand-200);gap:.5rem}.budget-sugg-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-600);white-space:nowrap}.budget-sugg-income-note{font-size:.78rem;color:var(--sand-600)}.budget-sugg-income-note--none{color:var(--sand-400);font-style:italic}.budget-sugg-group{padding:.65rem 1rem;border-bottom:1px solid var(--sand-100)}.budget-sugg-group:last-child{border-bottom:none}.budget-sugg-group-hdr{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.budget-sugg-group-name{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sand-900)}.budget-sugg-group-pct{font-size:.7rem;font-weight:600;color:var(--green-700);background:var(--green-100);padding:.05rem .4rem;border-radius:99px}.budget-sugg-group-bucket{font-size:.72rem;color:var(--sand-400);margin-left:auto}.budget-sugg-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.22rem 0}.budget-sugg-cat-name{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--sand-900);min-width:0;flex:1}.budget-sugg-cat-icon{flex-shrink:0}.budget-sugg-choices{display:flex;gap:.3rem;flex-shrink:0}.budget-sugg-choice{display:flex;flex-direction:column;align-items:center;gap:.08rem;padding:.3rem .65rem;background:var(--sand-50);border:1.5px solid var(--sand-200);border-radius:var(--radius);cursor:pointer;transition:all .15s;min-width:78px;font-family:DM Sans,sans-serif}.budget-sugg-choice:hover,.budget-sugg-choice--target{border-color:var(--green-600);background:var(--green-100)}.budget-sugg-choice--target:hover{background:#bbf7d0;border-color:var(--green-700)}.budget-sugg-choice-label{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--sand-400)}.budget-sugg-choice-amt{font-size:.85rem;font-weight:700;color:var(--sand-900)}.budget-sugg-choice--target .budget-sugg-choice-label{color:var(--green-700)}.budget-sugg-choice--target .budget-sugg-choice-amt{color:var(--green-800)}.budget-sugg-panel--sidebar{margin-bottom:0}.budget-sugg-panel--sidebar .budget-sugg-group{padding:.55rem .85rem}.budget-sugg-panel--sidebar .budget-sugg-group-bucket{display:none}.budget-sugg-panel--sidebar .budget-sugg-row{flex-direction:column;align-items:stretch;gap:.3rem}.budget-sugg-panel--sidebar .budget-sugg-cat-name{font-size:.8rem;font-weight:500}.budget-sugg-panel--sidebar .budget-sugg-choices{width:100%;flex-shrink:0}.budget-sugg-panel--sidebar .budget-sugg-choice{flex:1;min-width:0;padding:.25rem .35rem}.main-content--wide{max-width:min(1400px,98vw)}.budget-page{display:flex;gap:1.5rem;align-items:flex-start;width:100%}.budget-sidebar-left{flex-shrink:0;width:220px}.budget-sidebar-right{flex-shrink:0;width:248px}.budget-center{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.25rem}.budget-sticky{position:sticky;top:1rem;display:flex;flex-direction:column;gap:1rem;max-height:calc(100vh - 2rem);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--sand-200) transparent}.budget-sticky::-webkit-scrollbar{width:4px}.budget-sticky::-webkit-scrollbar-track{background:transparent}.budget-sticky::-webkit-scrollbar-thumb{background:var(--sand-200);border-radius:99px}.budget-pie-card{background:#fff;border:1.5px solid var(--sand-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.budget-pie-title{padding:.6rem 1rem;background:var(--sand-100);border-bottom:1px solid var(--sand-200);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-600)}.budget-pie-svg{display:block;width:100%;padding:.75rem}.budget-pie-legend{padding:0 1rem .85rem;display:flex;flex-direction:column;gap:.32rem}.budget-pie-legend-row{display:flex;align-items:center;gap:.4rem;font-size:.78rem}.budget-pie-legend-dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}.budget-pie-legend-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sand-900)}.budget-pie-legend-amt{font-weight:600;color:var(--sand-600);flex-shrink:0}.budget-pie-legend-more{font-size:.7rem;color:var(--sand-400);padding-left:1.2rem}.budget-pie-empty{padding:1.5rem 1rem;text-align:center;font-size:.82rem;color:var(--sand-400)}.budget-stats-card{background:#fff;border:1.5px solid var(--sand-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.budget-stats-title{padding:.6rem 1rem;background:var(--sand-100);border-bottom:1px solid var(--sand-200);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-600)}.budget-stats-body{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.6rem}.budget-stat-row{display:flex;flex-direction:column;gap:.1rem}.budget-stat-label{font-size:.68rem;color:var(--sand-400);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.budget-stat-value{font-size:1.05rem;font-weight:700;color:var(--sand-900)}.budget-stat-value--danger{color:var(--danger)}.budget-stat-value--green{color:var(--green-700)}.budget-stat-sub{font-size:.7rem;color:var(--sand-400)}.budget-stats-divider{height:1px;background:var(--sand-100)}.budget-key-card{background:#fff;border:1.5px solid var(--sand-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.budget-key-header{padding:.6rem 1rem;background:var(--sand-100);border-bottom:1px solid var(--sand-200);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-600)}.budget-key-body{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.45rem}.budget-key-row{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--sand-900)}.budget-key-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.budget-key-rule{margin-top:.35rem;padding-top:.6rem;border-top:1px solid var(--sand-100);display:flex;flex-direction:column;gap:.3rem}.budget-key-rule-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sand-400);margin-bottom:.1rem}.budget-key-rule-row{display:flex;align-items:baseline;justify-content:space-between;font-size:.8rem;padding:.1rem 0;border-bottom:1px dashed var(--sand-100)}.budget-key-rule-row:last-child{border-bottom:none}.budget-key-rule-pct{font-weight:700;color:var(--green-700);margin:0 .3rem}.budget-key-rule-amt{font-size:.72rem;color:var(--sand-600)}.budget-key-rule-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.1rem}.budget-key-rule-default{font-weight:400;color:var(--sand-400)}.budget-split-edit-btn{font-size:.68rem;color:var(--green-700);background:none;border:none;cursor:pointer;padding:0 .15rem;text-decoration:underline}.budget-split-edit-btn:hover{color:var(--green-900)}.budget-split-form{display:flex;flex-direction:column;gap:.3rem;margin-top:.3rem}.budget-split-row{display:flex;align-items:center;gap:.4rem}.budget-split-label{font-size:.8rem;width:3.5rem;color:var(--sand-800)}.budget-split-input{width:3.2rem;padding:.2rem .35rem;font-size:.82rem;border:1.5px solid var(--sand-200);border-radius:6px;text-align:right}.budget-split-input:focus{outline:none;border-color:var(--green-400)}.budget-split-pct-sym{font-size:.8rem;color:var(--sand-500)}.budget-split-sum{font-size:.72rem;margin-top:.1rem}.budget-split-sum--ok{color:var(--green-700)}.budget-split-sum--err{color:var(--danger)}.budget-split-error{font-size:.72rem;color:var(--danger);margin:.1rem 0 0}.budget-split-actions{display:flex;gap:.4rem;margin-top:.25rem}.budget-stats-more{display:block;width:100%;padding:.45rem 1rem;background:none;border:none;border-top:1px solid var(--sand-100);font-family:DM Sans,sans-serif;font-size:.75rem;font-weight:600;color:var(--green-700);cursor:pointer;text-align:center;letter-spacing:.02em;transition:background .12s}.budget-stats-more:hover{background:var(--sand-50)}.budget-strip{display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:var(--radius-md);padding:.65rem 1rem;border:1.5px solid var(--sand-200);flex-wrap:wrap}.budget-strip--ok{border-color:#bbf7d0}.budget-strip--warn{border-color:#fde68a}.budget-strip-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--sand-500);flex-shrink:0}.budget-strip-body{display:flex;align-items:center;gap:.5rem;flex:1;flex-wrap:wrap}.budget-strip-status{font-size:.85rem;font-weight:600}.budget-strip-status--ok{color:var(--green-700)}.budget-strip-status--over{color:var(--danger)}.budget-strip-detail{font-size:.82rem;color:var(--sand-600)}.budget-strip-ok-count{font-size:.82rem;color:var(--green-700)}.budget-strip-hint{font-size:.85rem;color:var(--sand-400);flex:1}.budget-strip-cta{background:none;border:none;font-size:.85rem;font-weight:600;color:var(--green-700);cursor:pointer;padding:.1rem .3rem;border-radius:4px;white-space:nowrap;flex-shrink:0}.budget-strip-cta:hover{background:#f0fdf4}.budget-onboarding-card{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);padding:1rem;margin-top:.75rem;box-shadow:var(--shadow)}.boc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.boc-title{font-size:.9rem;font-weight:600;color:var(--sand-900)}.boc-close{background:none;border:none;cursor:pointer;color:var(--sand-400);font-size:.85rem;padding:.1rem .3rem;border-radius:4px;line-height:1}.boc-close:hover{color:var(--sand-600);background:var(--sand-100)}.boc-income-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.boc-income-label{font-size:.82rem;color:var(--sand-600)}.boc-amount-wrap{display:flex;align-items:center;border:1.5px solid var(--sand-200);border-radius:8px;background:var(--sand-50);overflow:hidden}.boc-amount-wrap:focus-within{border-color:var(--green-600);background:#fff}.boc-currency{padding:0 .25rem 0 .5rem;font-size:.82rem;color:var(--sand-400)}.boc-income-input,.boc-row-input{border:none;background:transparent;outline:none;font-size:.85rem;color:var(--sand-900);width:6rem;padding:.35rem .5rem .35rem 0}.boc-income-input::placeholder{color:var(--sand-400)}.boc-divider{height:1px;background:var(--sand-200);margin:.5rem 0}.boc-rows{display:flex;flex-direction:column;gap:.4rem}.boc-row{display:flex;align-items:center;gap:.5rem}.boc-row-icon{font-size:1rem;width:1.4rem;text-align:center;flex-shrink:0}.boc-row-name{font-size:.85rem;color:var(--sand-900);flex:1}.boc-syncing{font-size:.82rem;color:var(--sand-400);margin:.25rem 0 0}.boc-error{font-size:.8rem;color:var(--danger);margin:.5rem 0 0}.boc-actions{display:flex;align-items:center;gap:.75rem;margin-top:.85rem;flex-wrap:wrap}.boc-apply{background:var(--green-700);color:#fff;border:none;border-radius:var(--radius);padding:.45rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer}.boc-apply:hover:not(:disabled){background:var(--green-800)}.boc-apply:disabled{opacity:.6;cursor:default}.boc-skip{background:none;border:none;cursor:pointer;font-size:.82rem;color:var(--sand-400);padding:0}.boc-skip:hover{color:var(--sand-600)}.quests-page{padding:1rem;max-width:600px;margin:0 auto}.quests-loading{display:flex;justify-content:center;padding:3rem}.quests-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem}.quests-title{font-size:1.25rem;font-weight:700;color:var(--sand-800);margin:0 0 .15rem}.quests-subtitle{font-size:.82rem;color:var(--sand-400);margin:0}.quests-empty{text-align:center;color:var(--sand-400);font-size:.88rem;padding:2.5rem 1rem}.quests-section{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.quests-section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--sand-400);margin:.5rem 0}.quest-btn-new{background:var(--green-600, #16a34a);color:#fff;border:none;border-radius:8px;padding:.45rem .9rem;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}.quest-btn-new:hover{filter:brightness(1.1)}.quest-card{background:var(--surface);border:1px solid var(--sand-200);border-radius:12px;padding:1rem}.quest-card--complete{opacity:.75}.quest-card-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.quest-card-emoji{font-size:1.5rem;line-height:1}.quest-card-meta{flex:1;min-width:0}.quest-card-name{display:block;font-weight:600;font-size:.95rem;color:var(--sand-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quest-card-target{display:block;font-size:.78rem;color:var(--sand-500)}.quest-phase-badge{font-size:.7rem;font-weight:600;padding:.2rem .5rem;border-radius:20px;white-space:nowrap}.quest-phase-badge--saving{background:#fef9c3;color:#854d0e}.quest-phase-badge--spending{background:#dcfce7;color:#166534}.quest-phase-badge--complete{background:#ede9fe;color:#5b21b6}.quest-saving-info{display:flex;flex-direction:column;gap:.5rem}.quest-projection{font-size:.83rem;color:var(--sand-600);margin:0}.quest-target-date{font-size:.78rem;color:var(--sand-400);margin:0}.quest-btn-confirm{align-self:flex-start;background:none;border:1.5px solid var(--sand-300);border-radius:8px;padding:.4rem .8rem;font-size:.82rem;font-weight:600;color:var(--sand-700);cursor:pointer}.quest-btn-confirm:hover:not(:disabled){border-color:var(--sand-500)}.quest-btn-confirm:disabled{opacity:.5;cursor:default}.quest-spending-info{display:flex;flex-direction:column;gap:.6rem}.quest-progress-wrap{display:flex;flex-direction:column;gap:.3rem}.quest-progress-bar{height:8px;background:var(--sand-100);border-radius:4px;overflow:hidden}.quest-progress-fill{height:100%;background:var(--green-600, #16a34a);border-radius:4px;transition:width .3s ease}.quest-progress-label{font-size:.78rem;color:var(--sand-500)}.quest-btn-tag{align-self:flex-start;background:none;border:1.5px dashed var(--sand-300);border-radius:8px;padding:.4rem .8rem;font-size:.82rem;color:var(--sand-600);cursor:pointer}.quest-btn-tag:hover{border-color:var(--sand-500);color:var(--sand-800)}.quest-complete-info{display:flex;flex-direction:column;gap:.25rem}.quest-complete-msg{font-size:.88rem;font-weight:600;color:#5b21b6;margin:0}.quest-complete-spent{font-size:.78rem;color:var(--sand-400);margin:0}.quest-tag-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;display:flex;align-items:flex-end;justify-content:center}.quest-tag-modal{background:var(--surface);border-radius:16px 16px 0 0;width:100%;max-width:600px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.quest-tag-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;font-size:.88rem;font-weight:600;border-bottom:1px solid var(--sand-200);color:var(--sand-800)}.quest-tag-close{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--sand-400);padding:0}.quest-tag-error{font-size:.8rem;color:var(--danger);padding:.5rem 1rem 0;margin:0}.quest-tag-empty{font-size:.83rem;color:var(--sand-400);padding:1.5rem;text-align:center;margin:0}.quest-tag-list{overflow-y:auto;flex:1;padding:.25rem 0}.quest-tag-row{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;padding:.7rem 1rem;cursor:pointer;text-align:left;border-bottom:1px solid var(--sand-100)}.quest-tag-row:hover:not(:disabled){background:var(--sand-50, #fafaf9)}.quest-tag-row:disabled{opacity:.5;cursor:default}.quest-tag-desc{flex:1;font-size:.85rem;color:var(--sand-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quest-tag-date{font-size:.75rem;color:var(--sand-400);white-space:nowrap}.quest-tag-amt{font-size:.85rem;font-weight:600;color:var(--sand-800);white-space:nowrap}.quest-create-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}.quest-create-modal{background:var(--surface);border-radius:16px;width:100%;max-width:420px;overflow:hidden}.quest-create-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;font-size:.95rem;font-weight:700;border-bottom:1px solid var(--sand-200);color:var(--sand-800)}.quest-create-form{display:flex;flex-direction:column;gap:.5rem;padding:1rem}.quest-create-label{font-size:.78rem;font-weight:600;color:var(--sand-500);margin-top:.25rem}.quest-create-input{background:var(--sand-50, #fafaf9);border:1.5px solid var(--sand-200);border-radius:8px;padding:.5rem .7rem;font-size:.9rem;color:var(--sand-800);width:100%;box-sizing:border-box}.quest-create-input:focus{outline:none;border-color:var(--sand-400)}.quest-emoji-picker{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.25rem}.quest-emoji-opt{background:none;border:1.5px solid transparent;border-radius:8px;padding:.2rem .3rem;font-size:1.2rem;cursor:pointer}.quest-emoji-opt--active{border-color:var(--sand-400);background:var(--sand-100)}.quest-emoji-opt:hover{background:var(--sand-100)}.quest-btn-create{margin-top:.5rem;background:var(--green-600, #16a34a);color:#fff;border:none;border-radius:8px;padding:.6rem;font-size:.9rem;font-weight:600;cursor:pointer}.quest-btn-create:hover:not(:disabled){filter:brightness(1.1)}.quest-btn-create:disabled{opacity:.5;cursor:default}.analytics-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:300;display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 1rem 3rem;overflow-y:auto}.analytics-modal{background:var(--sand-50);border-radius:var(--radius-lg);width:100%;max-width:860px;overflow:hidden;box-shadow:0 20px 60px #0000004d;flex-shrink:0}.analytics-modal--wide{max-width:min(1200px,95vw)}.analytics-modal--wide .analytics-modal-body{padding:1.5rem 1rem}.analytics-modal--wide .budget-page{width:100%}.analytics-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;background:var(--sand-900);color:#fff}.analytics-modal-title{font-family:"DM Serif Display",serif;font-size:1.15rem;color:#fff}.analytics-modal-close{background:none;border:none;color:var(--sand-400);font-size:1.1rem;cursor:pointer;line-height:1;padding:.2rem .4rem;border-radius:4px;transition:background .12s}.analytics-modal-close:hover{background:#ffffff1a;color:#fff}.analytics-modal-body{padding:1.5rem}.analytics-cashflow-row{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.5rem;font-size:.78rem;color:var(--sand-600)}.analytics-cashflow-item{white-space:nowrap}.analytics-chart-hint{font-size:.75rem;color:var(--sand-400);text-align:center;margin-top:.4rem;font-style:italic}.budget-health-card{background:#fff;border:2px solid var(--green-600);border-radius:var(--radius-lg);padding:1rem 1.1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.5rem}.budget-health-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.budget-health-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-600)}.budget-health-grade-pill{display:flex;align-items:baseline;gap:.35rem;padding:.25rem .75rem;border-radius:99px;flex-shrink:0}.budget-health-grade{font-family:"DM Serif Display",serif;font-size:1.6rem;line-height:1;font-weight:700}.budget-health-score{font-size:.9rem;font-weight:600;opacity:.8}.budget-health-explanation{font-size:.8rem;color:var(--sand-600);line-height:1.4;margin:0}.budget-health-toggle{font-size:.72rem;font-weight:500;color:var(--sand-500);background:none;border:none;cursor:pointer;padding:.35rem 0 0;text-align:left}.budget-health-toggle:hover{color:var(--sand-800)}.budget-health-factors{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}.budget-health-factor{display:flex;flex-direction:column;gap:.18rem}.budget-health-factor-header{display:flex;justify-content:space-between;align-items:center}.budget-health-factor-label{font-size:.75rem;font-weight:600;color:var(--sand-700)}.budget-health-factor-pts{font-size:.72rem;font-weight:700}.budget-health-factor-pts--ok{color:var(--green-600)}.budget-health-factor-pts--bad{color:var(--danger)}.budget-health-factor-bar{height:4px;background:var(--sand-150, #e8e6d8);border-radius:99px;overflow:hidden}.budget-health-factor-fill{height:100%;background:var(--green-600);border-radius:99px;transition:width .3s ease}.budget-health-factor-detail{font-size:.7rem;color:var(--sand-500)}.cat-manage{border-top:1px solid var(--sand-200);margin-top:1.5rem}.cat-manage-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 0;background:none;border:none;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:600;color:var(--sand-600);cursor:pointer;text-align:left;letter-spacing:.02em}.cat-manage-toggle:hover{color:var(--sand-900)}.cat-manage-toggle-icon{font-size:.6rem;color:var(--sand-400)}.cat-manage-body{padding-bottom:1rem;display:flex;flex-direction:column;gap:1rem}.cat-manage-error{font-size:.82rem;color:var(--danger)}.cat-add-form{display:flex;flex-direction:column;gap:.5rem}.cat-add-row,.cat-edit-form{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.cat-icon-input{width:54px;flex-shrink:0;text-align:center;padding:.4rem;font-size:1rem}.cat-name-input{flex:1;min-width:120px}.cat-type-select{flex-shrink:0;width:130px}.cat-section{display:flex;flex-direction:column;gap:.25rem}.cat-section-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sand-400);margin-bottom:.15rem}.cat-section-note{font-weight:400;text-transform:none;letter-spacing:0}.cat-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:var(--radius);font-size:.875rem}.cat-row:hover{background:var(--sand-50)}.cat-row--hidden{opacity:.45}.cat-row-icon{font-size:1rem;flex-shrink:0;width:1.4rem;text-align:center}.cat-row-name{flex:1;font-weight:500}.cat-row-type{font-size:.68rem;font-weight:600;color:var(--green-700);background:var(--green-100);padding:.1rem .4rem;border-radius:99px;flex-shrink:0}.cat-row-actions{display:flex;gap:.15rem;flex-shrink:0;margin-left:auto}.cat-action-btn{background:none;border:1px solid var(--sand-200);border-radius:4px;cursor:pointer;font-family:DM Sans,sans-serif;font-size:.7rem;font-weight:600;padding:.18rem .5rem;color:var(--sand-600);transition:all .12s;white-space:nowrap}.cat-action-btn:hover{background:var(--sand-100);border-color:var(--sand-400);color:var(--sand-900)}.cat-action-btn:disabled{opacity:.4;cursor:default}.cat-action-btn--delete:hover{background:#fee2e2;border-color:var(--danger);color:var(--danger)}.panel-empty{text-align:center;color:var(--sand-600);padding:3rem}.panel-empty h2{font-family:"DM Serif Display",serif;font-size:1.5rem;margin-bottom:.75rem}.dev-panel{display:flex;flex-direction:column;gap:1.25rem}.dev-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.dev-title{font-family:"DM Serif Display",serif;font-size:1.4rem;color:var(--sand-900)}.dev-warning{font-size:.8rem;color:var(--danger);font-style:italic}.dev-section{background:#fff;border-radius:var(--radius-lg);padding:1.5rem 2rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1.25rem}.dev-section-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-400)}.dev-stats{display:flex;flex-direction:column;gap:1rem}.dev-stat{display:flex;flex-direction:column;gap:.35rem}.dev-stat-header{display:flex;justify-content:space-between;align-items:baseline}.dev-stat-label{font-size:.875rem;font-weight:500}.dev-stat-value{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.dev-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:var(--sand-200);outline:none;cursor:pointer}.dev-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--green-700);cursor:pointer;box-shadow:0 1px 4px #0003;transition:background .15s}.dev-slider::-webkit-slider-thumb:hover{background:var(--green-800)}.dev-presets{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dev-presets-label{font-size:.8rem;color:var(--sand-400);margin-right:.25rem}.dev-preset-btn{padding:.3rem .75rem;border:1.5px solid var(--sand-200);border-radius:99px;background:#fff;font-family:DM Sans,sans-serif;font-size:.8rem;cursor:pointer;transition:all .15s}.dev-preset-btn:hover{border-color:var(--green-600);background:var(--green-100)}.dev-reason-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--sand-200)}.dev-reason-label{font-size:.85rem;font-weight:500;color:var(--sand-600)}.dev-reason-input{padding:.5rem .75rem;border:1.5px solid var(--sand-200);border-radius:8px;font-family:DM Sans,sans-serif;font-size:.875rem;outline:none;transition:border-color .15s}.dev-reason-input:focus{border-color:var(--green-600)}.dev-apply-btn{padding:.5rem 1.25rem;background:var(--green-700);color:#fff;border:none;border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.dev-apply-btn:hover:not(:disabled){background:var(--green-800)}.dev-apply-btn:disabled{opacity:.6;cursor:not-allowed}.dev-apply-btn.ok{background:var(--green-600)}.dev-apply-btn.err{background:var(--danger)}.dev-seed-desc{font-size:.85rem;color:var(--sand-600);line-height:1.5}.dev-actions{display:flex;gap:.75rem;flex-wrap:wrap}.dev-action-btn{padding:.6rem 1.25rem;border:none;border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s}.dev-action-btn--secondary{background:var(--sand-100);color:var(--sand-900)}.dev-action-btn--secondary:hover{background:var(--sand-200)}.dev-action-btn--danger{background:var(--danger-light);color:var(--danger)}.dev-action-btn--danger:hover{background:#fecaca}.dev-action-btn.ok{background:var(--green-100);color:var(--green-800)}.dev-action-btn.err{background:var(--danger-light);color:var(--danger)}.dev-action-btn:disabled{opacity:.6;cursor:not-allowed}.net-worth-card{background:var(--green-900);border-radius:var(--radius-lg);padding:1.5rem 2rem;margin-bottom:1.5rem;color:#fff}.net-worth-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem}.net-worth-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green-400)}.net-worth-total{font-family:"DM Serif Display",serif;font-size:2.25rem;line-height:1}.net-worth-total.positive{color:var(--green-400)}.net-worth-total.negative{color:var(--danger)}.net-worth-split{display:flex;align-items:center;gap:1.5rem;padding:.875rem 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1rem}.net-worth-split-item{display:flex;flex-direction:column;gap:.25rem}.net-worth-divider{width:1px;height:2rem;background:#ffffff1f}.split-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#ffffff73}.split-value{font-weight:600;font-size:1.05rem}.split-value.asset{color:var(--green-400)}.split-value.liability{color:var(--amber-400)}.account-group-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#ffffff4d;margin:.75rem 0 .35rem}.account-row{display:flex;flex-direction:column;padding:.35rem 0;font-size:.875rem;gap:0}.account-row-main{display:flex;align-items:center;gap:.75rem}.account-icon{font-size:.95rem}.account-name{flex:1;color:#fffc}.account-mask{font-size:.7rem;color:#ffffff59;letter-spacing:.02em}.account-type-badge{font-size:.68rem;color:#ffffff59;border:1px solid rgba(255,255,255,.12);border-radius:99px;padding:.1rem .5rem;white-space:nowrap}.account-type-badge--editable{cursor:pointer}.account-type-badge--editable:hover{color:#ffffffa6;border-color:#ffffff4d}.account-type-plaid-hint{opacity:.55;font-size:.62rem}.account-type-select{font-size:.72rem;background:var(--surface-2, #2a2a1e);color:#ffffffbf;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:.1rem .35rem;outline:none;cursor:pointer}.account-balance{font-weight:600}.account-balance.asset{color:var(--green-400)}.account-balance.liability{color:var(--amber-400)}.account-balance-label{font-size:.65rem;color:#ffffff59;margin-right:.25rem}.account-rename-btn{background:none;border:none;cursor:pointer;color:#ffffff40;font-size:.8rem;padding:0 .2rem;margin-left:.25rem;line-height:1;opacity:0;transition:opacity .15s}.account-row:hover .account-rename-btn{opacity:1}.account-rename-input{flex:1;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:.82rem;padding:.1rem .35rem;outline:none}.account-rename-save{background:none;border:1px solid var(--green-600);border-radius:4px;cursor:pointer;color:var(--green-400);font-size:.78rem;padding:.15rem .5rem;margin-left:.35rem;white-space:nowrap}.account-rename-save:disabled{opacity:.35;cursor:default}.account-edit-btn{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border:1px solid rgba(255,255,255,.18);border-radius:99px;background:none;color:#fff6;cursor:pointer;margin-left:auto;white-space:nowrap;transition:color .12s,border-color .12s}.account-edit-btn:hover{color:#ffffffbf;border-color:#ffffff59}.account-edit-btn--active{color:var(--green-400);border-color:var(--green-600)}.account-edit-panel{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem;padding:.6rem .75rem;background:#ffffff0a;border-radius:8px;border:1px solid rgba(255,255,255,.08)}.account-edit-field{display:flex;flex-direction:column;gap:.2rem}.account-edit-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#ffffff59}.account-edit-row{display:flex;align-items:center}.net-worth-empty{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.25rem}.net-worth-empty-icon{font-size:1.25rem;opacity:.45;flex-shrink:0}.net-worth-empty-text{flex:1;color:#fff6;font-size:.85rem;font-style:italic}.net-worth-connect-btn{font-size:.72rem;font-weight:600;padding:.3rem .8rem;background:transparent;border:1px solid var(--green-700);color:var(--green-400);border-radius:99px;cursor:pointer;font-family:inherit;flex-shrink:0}.net-worth-connect-btn:hover{background:var(--green-900)}.net-worth-footer{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem .8rem;border-top:1px solid rgba(255,255,255,.1);gap:.5rem}.net-worth-analytics-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:6px;font-family:inherit;font-size:.72rem;font-weight:600;color:#ffffffb8;cursor:pointer;padding:.3rem .75rem;letter-spacing:.02em;transition:all .15s}.net-worth-analytics-btn:hover{background:#ffffff26;border-color:#ffffff59;color:#fff}.income-prompt{display:flex;align-items:center;gap:.75rem;background:var(--amber-100);border:1.5px solid var(--amber-400);border-radius:var(--radius);padding:.85rem 1rem}.income-prompt-icon{font-size:1.2rem;flex-shrink:0}.income-prompt-text{flex:1;font-size:.85rem;color:#92400e;line-height:1.4}.income-prompt-btn{font-size:.78rem;font-weight:700;padding:.35rem .85rem;background:var(--amber-500);color:#fff;border:none;border-radius:99px;cursor:pointer;font-family:inherit;flex-shrink:0}.income-prompt-btn:hover{background:#d97706}.income-nudge{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--sand-100);border:1.5px solid var(--sand-200);border-left:3px solid var(--amber-400);border-radius:var(--radius);padding:.7rem 1rem;font-size:.83rem;color:var(--sand-600)}.income-nudge strong{color:var(--sand-900)}.income-nudge-btn{font-size:.75rem;font-weight:600;padding:.25rem .7rem;background:transparent;border:1.5px solid var(--sand-400);color:var(--sand-600);border-radius:99px;cursor:pointer;font-family:inherit;flex-shrink:0}.income-nudge-btn:hover{border-color:var(--sand-600);color:var(--sand-900)}.income-field{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:#fff;border:1.5px solid var(--sand-200);border-radius:var(--radius);padding:.75rem 1rem}.income-field-label{font-size:.72rem;color:var(--sand-600);margin-bottom:.2rem}.income-field-value{font-size:1.05rem;font-weight:700;color:var(--green-700)}.income-field-edit{font-size:.72rem;font-weight:600;padding:.25rem .65rem;border:1px solid var(--sand-200);border-radius:6px;background:var(--sand-50);color:var(--sand-600);cursor:pointer;font-family:inherit;flex-shrink:0}.income-field-edit:hover{border-color:var(--sand-400)}.income-editor{background:#fff;border:1.5px solid var(--green-600);border-radius:var(--radius);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.6rem}.income-editor-label{font-size:.78rem;font-weight:600;color:var(--sand-600)}.income-editor-row{display:flex;align-items:center;gap:.5rem}.income-editor-prefix{font-size:1rem;font-weight:600;color:var(--sand-400)}.income-editor-input{width:140px;flex-shrink:0;font-size:1rem;font-weight:600}.income-editor-actions{display:flex;align-items:center;gap:.4rem;margin-left:auto}.income-editor-actions .btn-primary{width:auto;padding:.45rem 1.1rem;font-size:.85rem}.income-editor-actions .btn-ghost{padding:.45rem .75rem;font-size:.85rem}.analytics-panel{display:flex;flex-direction:column;gap:1.25rem}.analytics-health-card{background:var(--green-900);border-radius:var(--radius-lg);padding:1.25rem 2rem;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.analytics-health-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green-400);margin-bottom:.3rem}.analytics-health-explanation{font-size:.875rem;color:#ffffffbf}.analytics-health-score{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.analytics-health-num{font-family:"DM Serif Display",serif;font-size:2.5rem;line-height:1}.analytics-health-grade{font-size:.8rem;font-weight:700;letter-spacing:.05em;margin-top:.1rem}.analytics-section{background:#fff;border-radius:var(--radius-lg);padding:1.5rem 2rem;box-shadow:var(--shadow)}.analytics-section-title{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-400);margin-bottom:1rem}.analytics-chart{width:100%;display:block;border-bottom:1px solid var(--sand-100);margin-bottom:.4rem}.analytics-chart-labels{display:flex;justify-content:space-between;font-size:.72rem;color:var(--sand-400)}.analytics-legend{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--sand-600);margin-bottom:.5rem}.analytics-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.analytics-income-total{font-family:"DM Serif Display",serif;font-size:2rem;color:var(--green-700)}.analytics-income-label{font-size:1rem;color:var(--sand-400);margin-left:.25rem}.analytics-income-sources{margin-top:.75rem;border-top:1px solid var(--sand-100);padding-top:.75rem}.analytics-income-row{display:flex;align-items:center;gap:.5rem;font-size:.875rem;padding:.25rem 0}.analytics-income-name{color:var(--sand-600);flex:1}.analytics-income-cadence{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--sand-100);color:var(--sand-500);padding:.15rem .45rem;border-radius:999px;white-space:nowrap}.analytics-income-amt{font-weight:600}.analytics-income-per{font-size:.75rem;font-weight:400;color:var(--sand-400);margin-left:.15rem}.analytics-projection-summary{font-size:.85rem;color:var(--sand-600);margin-top:.5rem}.analytics-projection-summary strong{color:var(--sand-900)}.battery-widget{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);padding:1rem 1.25rem;margin-top:.75rem;box-shadow:var(--shadow)}.battery-widget--dead{border-color:var(--danger);background:var(--danger-light)}.battery-widget--low{border-color:var(--amber-500);background:var(--amber-100)}.battery-widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem;flex-wrap:wrap}.battery-widget-title{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem}.battery-track-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .55rem;border-radius:999px}.battery-track-badge--a{background:var(--green-100);color:var(--green-700)}.battery-track-badge--b{background:var(--amber-100);color:#92400e}.battery-bar-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.battery-bar-track{flex:1;height:8px;background:var(--sand-200);border-radius:999px;overflow:hidden}.battery-bar-fill{height:100%;border-radius:999px;transition:width .4s ease,background-color .4s ease}.battery-pct{font-size:.8rem;font-weight:600;color:var(--sand-600);min-width:3rem;text-align:right}.battery-widget-footer{display:flex;align-items:center;justify-content:space-between}.battery-expiry{font-size:.8rem;color:var(--sand-400)}.battery-notice{margin-top:.75rem;padding:.6rem .8rem;border-radius:var(--radius);font-size:.82rem}.battery-notice--dead{background:#fee2e2;color:#991b1b}.battery-notice--low{background:var(--amber-100);color:#78350f}.pet-widget--inactive{opacity:.85}.pet-account-banner{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:var(--radius);margin-bottom:1rem}.pet-account-banner--coma{background:#fee2e2;border:1px solid #fca5a5}.pet-account-banner--mothball{background:#eff6ff;border:1px solid #bfdbfe}.pet-account-banner-icon{font-size:1.5rem;line-height:1;flex-shrink:0}.pet-account-banner-body strong{display:block;font-size:.9rem;margin-bottom:.25rem}.pet-account-banner-body p{font-size:.82rem;color:var(--sand-600);margin:0}.scan-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0d2818d9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem}.scan-message{color:var(--green-100);font-size:1rem;text-align:center;max-width:280px;line-height:1.5}.scan-spinner{width:48px;height:48px;border:3px solid rgba(74,222,128,.2);border-top-color:var(--green-400);border-radius:50%}.scan-spinner--fast{animation:spin .6s linear infinite}.scan-spinner--slow{animation:spin 2.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.premium-gate{margin-top:1.25rem;padding:1.25rem;background:var(--amber-100);border:1px solid var(--amber-400);border-radius:var(--radius);text-align:center}.premium-gate-icon{font-size:2rem;margin-bottom:.5rem}.premium-gate-title{font-size:1rem;font-weight:600;margin-bottom:.5rem}.premium-gate-desc{font-size:.85rem;color:var(--sand-600);margin-bottom:1rem;line-height:1.5}.dev-subsection-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-400);margin-bottom:.5rem}.proj-key{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;margin-top:1rem}.proj-key-card{border-left:3px solid var(--sand-300);border-radius:0 8px 8px 0;background:var(--sand-50, #fafaf7);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.18rem}.notif-bell{position:relative}.notif-bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:none;background:transparent;color:#ffffffa6;cursor:pointer;transition:background .15s,color .15s}.notif-bell-btn:hover,.notif-bell-btn--active{background:#ffffff1a;color:#fff}.notif-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--amber-500);color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;pointer-events:none}.notif-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:320px;background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden;animation:notifDropIn .18s ease}@keyframes notifDropIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--sand-200)}.notif-dropdown-title{font-weight:600;font-size:.875rem;color:var(--sand-900)}.notif-dropdown-count{font-size:.75rem;color:var(--sand-400)}.notif-empty{padding:1.5rem 1rem;text-align:center;color:var(--sand-400);font-size:.875rem}.notif-item{display:flex;gap:.65rem;padding:.75rem 1rem;border-bottom:1px solid var(--sand-100);transition:background .1s}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--sand-50)}.notif-item--unread{background:#fafff9}.notif-item--unread:hover{background:#f0fdf4}.notif-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}.notif-item-dot--green{background:var(--green-600)}.notif-item-dot--amber{background:var(--amber-500)}.notif-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.notif-item-title{font-size:.875rem;font-weight:500;color:var(--sand-900)}.notif-item-preview{font-size:.8rem;color:var(--sand-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-item-time{font-size:.75rem;color:var(--sand-400)}.notif-item-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.1rem}.notif-sync-btn{padding:.2rem .6rem;border-radius:5px;border:1px solid var(--green-600);background:transparent;color:var(--green-700);font-size:.75rem;font-weight:500;cursor:pointer}.notif-sync-btn:hover{background:var(--green-100)}.sync-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;font-size:.875rem;animation:syncBannerIn .25s ease}@keyframes syncBannerIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sync-banner--track-a{background:var(--green-100);border-bottom:1px solid #bbf7d0}.sync-banner--track-b{background:var(--amber-100);border-bottom:1px solid #fde68a}.sync-banner-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sync-banner-dot--green{background:var(--green-600)}.sync-banner-dot--amber{background:var(--amber-500)}.sync-banner-body{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.sync-banner-title{font-weight:600;color:var(--sand-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-banner-preview{color:var(--sand-600);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.sync-banner-btn{padding:.3rem .75rem;border-radius:6px;border:none;font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap}.sync-banner-btn--primary{background:var(--green-700);color:#fff}.sync-banner-btn--primary:hover{background:var(--green-800)}.sync-banner-btn--ghost{background:transparent;color:var(--sand-600);border:1px solid var(--sand-200)}.sync-banner-btn--ghost:hover{background:var(--sand-100)}.proj-key-name{font-size:.8rem;font-weight:700;letter-spacing:.01em}.proj-key-driver{font-size:.75rem;color:var(--sand-700);font-weight:500}.proj-key-detail{font-size:.7rem;color:var(--sand-500);line-height:1.35}.proj-key-numbers{display:flex;align-items:baseline;justify-content:space-between;margin-top:.35rem;gap:.4rem;flex-wrap:wrap}.proj-key-cf{font-size:.75rem;font-weight:600}.proj-key-cf--pos{color:var(--green-700)}.proj-key-cf--neg{color:var(--danger)}.proj-key-outcome{font-size:.82rem;font-weight:700;color:var(--sand-900);white-space:nowrap}.analytics-breakdown-table{width:100%;overflow-x:auto;font-size:.82rem}.analytics-breakdown-header,.analytics-breakdown-row{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--sand-100);padding:.35rem 0}.analytics-breakdown-header{font-weight:600;color:var(--sand-500);font-size:.75rem}.analytics-breakdown-cat-col{flex:1.8;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:.3rem}.analytics-breakdown-month-col{flex:1;text-align:right;padding-right:.5rem;white-space:nowrap;color:var(--sand-700);min-width:52px}.analytics-breakdown-zero{color:var(--sand-300)}.analytics-breakdown-total{font-weight:600;color:var(--sand-900)}.analytics-breakdown-icon{font-size:.9rem}.analytics-recurring-list{margin-bottom:1rem}.analytics-recurring-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;font-size:.875rem;border-bottom:1px solid var(--sand-100)}.analytics-recurring-row:last-child{border-bottom:none}.analytics-recurring-name{flex:1;font-weight:500}.analytics-recurring-meta{font-size:.78rem;color:var(--sand-400)}.analytics-recurring-amt{font-weight:600;color:var(--green-700)}.analytics-empty{display:flex;flex-direction:column;gap:.75rem}@media (max-width: 960px){.budget-page{flex-direction:column;gap:1rem}.budget-sidebar-left,.budget-sidebar-right{width:100%}.budget-sticky{position:static;max-height:none}}@media (max-width: 768px){.header{padding:0 1rem}.user-name{display:none}.app>.tab-nav{padding:0 .5rem;overflow-x:auto;flex-wrap:nowrap}.tab-btn{padding:.75rem .85rem;font-size:.8rem;white-space:nowrap}.main-content{margin:1rem auto;padding:0 1rem}.main-content--wide{padding:0 .75rem}.budget-form{grid-template-columns:1fr 1fr}.budget-form>button[type=submit]{grid-column:1 / -1}.budget-form-error{grid-column:1 / -1}.txn-account-select{min-width:0;flex:1}.analytics-cashflow-row{flex-wrap:wrap;gap:.4rem}.analytics-chart-labels{font-size:.75rem}.account-row{font-size:.85rem}.modal-box{width:95vw;max-width:95vw;padding:1.25rem 1rem}}.analytics-detect-btn{align-self:flex-start}.sub-panel{padding:.25rem 0}.sub-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.sub-panel-title{font-family:"DM Serif Display",serif;font-size:1.3rem;color:var(--sand-900)}.sub-detect-btn{background:none;border:1.5px solid var(--sand-200);color:var(--sand-600);font-size:.78rem;padding:.3rem .65rem;border-radius:6px;cursor:pointer}.sub-detect-btn:hover:not(:disabled){background:var(--sand-100)}.sub-detect-btn:disabled{opacity:.45;cursor:default}.sub-summary{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--green-100);border-radius:10px;margin-bottom:1.25rem}.sub-summary-item{text-align:center}.sub-summary-value{font-size:1.1rem;font-weight:700;color:var(--green-800)}.sub-summary-unit{font-size:.68rem;color:var(--green-700);font-weight:500;margin-left:1px}.sub-summary-label{font-size:.66rem;color:var(--sand-600);margin-top:.1rem}.sub-section+.sub-section{margin-top:1rem}.sub-section-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sand-400);margin-bottom:.5rem}.sub-card{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border:1.5px solid var(--sand-200);border-radius:10px;background:#fff;margin-bottom:.45rem}.sub-card--confirmed{border-color:var(--green-100);background:var(--green-100)}.sub-card-icon{font-size:1.35rem;width:2rem;text-align:center;flex-shrink:0}.sub-card-body{flex:1;min-width:0}.sub-card-name{font-weight:600;font-size:.88rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.sub-card-meta{font-size:.76rem;color:var(--sand-600);margin-top:.15rem}.sub-amount{color:var(--sand-900);font-weight:600}.sub-meta-hint{color:var(--sand-400)}.sub-cycle-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;padding:.1rem .4rem;border-radius:4px;letter-spacing:.04em}.sub-cycle-badge--monthly{background:var(--green-100);color:var(--green-800)}.sub-cycle-badge--annual{background:var(--amber-100);color:#92400e}.sub-confirmed-badge{font-size:.6rem;font-weight:700;color:var(--green-700);padding:.1rem .4rem;background:#fff;border-radius:4px;border:1px solid var(--green-600)}.sub-confidence{margin-top:.4rem;height:3px;background:var(--sand-200);border-radius:2px;overflow:hidden}.sub-confidence-bar{height:100%;border-radius:2px;transition:width .3s}.sub-card-actions{display:flex;gap:.4rem;flex-shrink:0}.sub-btn{width:1.9rem;height:1.9rem;border-radius:6px;border:1.5px solid;cursor:pointer;font-size:.82rem;display:flex;align-items:center;justify-content:center;background:none}.sub-btn:disabled{opacity:.45;cursor:default}.sub-btn--confirm{border-color:var(--green-600);color:var(--green-700);background:var(--green-100)}.sub-btn--confirm:hover:not(:disabled){background:var(--green-600);color:#fff}.sub-btn--dismiss{border-color:var(--sand-200);color:var(--sand-600);background:#fff}.sub-btn--dismiss:hover:not(:disabled){background:var(--sand-100)}.sub-loading{color:var(--sand-400);font-size:.88rem;padding:.5rem 0}.sub-empty{color:var(--sand-600);font-size:.88rem;padding:.25rem 0}.sub-empty-hint{margin-top:.35rem;font-size:.78rem;color:var(--sand-400)}.cashflow-panel{display:flex;flex-direction:column;gap:.75rem}.cashflow-header{display:flex;align-items:center;justify-content:space-between}.cashflow-title{font-size:.95rem;font-weight:600;color:var(--sand-900)}.cashflow-banner{padding:.6rem .85rem;background:var(--amber-100);border:1px solid var(--amber-400);border-radius:8px;font-size:.82rem;color:var(--sand-900);line-height:1.45}.cashflow-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.cashflow-month-label{font-size:.9rem;font-weight:500;color:var(--sand-900)}.cashflow-nav-btn{width:2rem;height:2rem;border:1.5px solid var(--sand-200);border-radius:8px;background:#fff;cursor:pointer;font-size:1.1rem;color:var(--sand-600);display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.cashflow-nav-btn:hover:not(:disabled){background:var(--sand-100);border-color:var(--sand-400)}.cashflow-nav-btn:disabled{opacity:.35;cursor:default}.cashflow-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--sand-200);border:1px solid var(--sand-200);border-radius:10px;overflow:hidden}.cashflow-day-header{background:var(--sand-100);padding:.3rem 0;text-align:center;font-size:.7rem;font-weight:600;color:var(--sand-400);text-transform:uppercase;letter-spacing:.04em}.cashflow-cell{background:#fff;min-height:4.5rem;padding:.3rem .3rem .25rem;display:flex;flex-direction:column;gap:.2rem}.cashflow-cell--empty{background:var(--sand-50)}.cashflow-cell--today{background:var(--green-100)}.cashflow-cell--past{background:#fff;opacity:.55}.cashflow-day-num{font-size:.72rem;font-weight:500;color:var(--sand-400);align-self:flex-end;line-height:1}.cashflow-cell--today .cashflow-day-num{color:var(--green-700);font-weight:700}.cashflow-event{display:flex;flex-direction:column;padding:.15rem .25rem;border-radius:4px;font-size:.62rem;line-height:1.3;overflow:hidden}.cashflow-event--monthly{background:var(--green-100);color:var(--green-700)}.cashflow-event--annual{background:var(--amber-100);color:#92400e}.cashflow-event-icon{font-size:.7rem}.cashflow-event-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-weight:500}.cashflow-event-amt{font-weight:600}@media (max-width: 560px){.cashflow-cell{min-height:2.5rem}.cashflow-event-name,.cashflow-event-amt{display:none}.cashflow-event{align-items:center;padding:.1rem}.cashflow-event-icon{font-size:.85rem}}.cashflow-list{display:flex;flex-direction:column;gap:.35rem;margin-top:.25rem}.cashflow-list-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;background:var(--sand-50);border:1px solid var(--sand-200);border-radius:8px;font-size:.84rem;transition:opacity .15s}.cashflow-list-item--past{opacity:.55}.cashflow-list-icon{font-size:1rem;flex-shrink:0}.cashflow-list-name{flex:1;font-weight:500;color:var(--sand-900)}.cashflow-list-date{color:var(--sand-400);font-size:.78rem;white-space:nowrap}.cashflow-list-amt{font-weight:600;color:var(--sand-900);white-space:nowrap}.cashflow-charged-badge{font-size:.72rem;color:var(--green-600);font-weight:600;white-space:nowrap}.cashflow-annual-badge{font-size:.7rem;padding:.1rem .4rem;background:var(--amber-100);color:#92400e;border-radius:4px;font-weight:500;white-space:nowrap}.cashflow-loading{color:var(--sand-400);font-size:.88rem;padding:.5rem 0}.cashflow-empty{color:var(--sand-600);font-size:.88rem;padding:.25rem 0}.insights-divider{border:none;border-top:1.5px solid var(--sand-200);margin:1.5rem 0}
