@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Space+Mono:wght@400;700&display=swap";.header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:.75rem 1rem;position:sticky;top:0;z-index:100}.header-content{max-width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1rem}.logo{display:flex;align-items:center;gap:.5rem;color:var(--accent-green)}.logo h1{font-size:1.25rem;font-weight:700;margin:0}.hamburger-btn{display:none;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-primary);padding:.5rem;cursor:pointer;border-radius:var(--radius-md)}.hamburger-btn:hover{background:var(--bg-card)}.header-mobile-actions{display:none;align-items:center;gap:.25rem;margin-left:auto}.nav{display:flex;gap:.5rem;flex-wrap:wrap}.nav-menu-extras{display:none}.nav-btn{display:flex;align-items:center;gap:.35rem;padding:.5rem .85rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.nav-btn:hover{background:var(--bg-card);color:var(--text-primary)}.nav-btn.active{background:var(--bg-card);color:var(--accent-blue);border-color:var(--accent-blue)}.nav-btn.ai-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none}.nav-btn.ai-btn:hover{opacity:.9}.nav-btn.theme-toggle{padding:.5rem;border-radius:50%;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.nav-btn.theme-toggle:hover{background:var(--bg-card);color:var(--accent-orange)}@media(max-width:960px){.header{position:sticky;top:0;z-index:100}.header-content{flex-wrap:nowrap;position:relative}.header-mobile-actions{display:flex;order:2}.header-mobile-actions .nav-btn{padding:.4rem}.header-mobile-actions .hamburger-btn{display:flex}.logo{order:1}.nav{display:none;position:absolute;top:100%;left:.5rem;right:.5rem;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000004d,0 0 0 1px #ffffff0d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:200;margin-top:.5rem}.nav.open{display:flex}.nav-btn{width:100%;justify-content:flex-start;padding:.75rem 1rem;font-size:.9rem;gap:.5rem}.nav-btn.active{background:#3b82f61a}.nav-menu-extras{display:flex;flex-direction:column;gap:.25rem;width:100%;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border-color)}.nav-menu-extras .nav-btn{justify-content:flex-start;gap:.5rem}}.footer{text-align:center;padding:1.5rem;color:var(--text-muted);font-size:.85rem;border-top:1px solid var(--border-color);margin-top:2rem}.footer-content{display:flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:wrap}.footer-separator{opacity:.5}.footer-credit{display:inline-flex;align-items:center;gap:.1rem}.footer-logo-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-secondary);text-decoration:none;padding:.1rem .2rem;border-radius:var(--radius-sm);transition:all .2s ease}.footer-logo-link:hover{color:var(--text-primary);background:var(--bg-card-hover)}.footer-logo{width:1rem;height:1rem;color:currentColor}.footer-name{font-weight:500}.fab-backdrop{position:fixed;inset:0;background:#0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:998;animation:fadeIn .2s ease}.fab-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem;transition:transform .3s ease,opacity .3s ease}.fab-container.hidden{transform:translateY(100px);opacity:0;pointer-events:none}.fab-container.visible{transform:translateY(0);opacity:1}.fab-main{width:56px;height:56px;border-radius:50%;border:none;background:var(--gradient-green);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #10b98166;transition:all .3s cubic-bezier(.4,0,.2,1)}.fab-main:hover{transform:scale(1.05);box-shadow:0 6px 25px #10b98180}.fab-main:active{transform:scale(.95)}.fab-main.expanded{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-lg)}.fab-main svg{transition:transform .3s ease}.fab-main.expanded svg{transform:rotate(45deg)}.fab-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;opacity:0;pointer-events:none;transform:translateY(20px);transition:all .2s ease}.fab-actions.expanded{opacity:1;pointer-events:auto;transform:translateY(0)}.fab-action{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-primary);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-md);transition:all .2s ease;opacity:0;transform:translate(20px);animation:slideIn .3s ease forwards;animation-delay:var(--action-delay)}.fab-actions.expanded .fab-action{opacity:1;transform:translate(0)}.fab-action:hover{background:var(--bg-card-hover);transform:translate(-4px);box-shadow:var(--shadow-lg)}.fab-action:active{transform:scale(.98) translate(-4px)}.fab-action svg{color:var(--action-color);flex-shrink:0}.fab-action-label{font-size:.875rem;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media(max-width:960px){.fab-container{bottom:1rem;right:1rem}.fab-main{width:52px;height:52px}.fab-action{padding:.5rem .875rem}.fab-action-label{font-size:.8rem;max-width:120px}}@media(min-width:1200px){.fab-container{bottom:2rem;right:2rem}}.search-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:10vh 1rem;animation:fadeIn .15s ease}.search-modal{width:100%;max-width:640px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.search-header{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--border-color)}.search-input-wrapper{flex:1;display:flex;align-items:center;gap:.75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem 1rem}.search-input-wrapper:focus-within{border-color:var(--accent-green);box-shadow:0 0 0 2px #10b98126}.search-icon{color:var(--text-muted);flex-shrink:0}.search-input{flex:1;border:none;background:none;font-size:1rem;color:var(--text-primary);outline:none}.search-input::placeholder{color:var(--text-muted)}.search-clear{background:var(--bg-card);border:none;border-radius:50%;padding:.25rem;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all .15s ease}.search-clear:hover{background:var(--bg-card-hover);color:var(--text-primary)}.search-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;border-radius:var(--radius-md);transition:all .15s ease}.search-close:hover{background:var(--bg-card);color:var(--text-primary)}.search-quick-filters{display:flex;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);overflow-x:auto}.quick-filter{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:.8rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .15s ease}.quick-filter:hover{background:var(--bg-card-hover);border-color:var(--border-light)}.quick-filter.active{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.search-filters{display:flex;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.5rem .75rem}.filter-group svg{color:var(--text-muted);flex-shrink:0}.filter-group select{border:none;background:none;font-size:.85rem;color:var(--text-primary);outline:none;cursor:pointer}.filter-group.amount-filter{gap:.375rem}.filter-group.amount-filter input{width:60px;border:none;background:none;font-size:.85rem;color:var(--text-primary);outline:none;text-align:center}.filter-group.amount-filter input::placeholder{color:var(--text-muted)}.filter-group.amount-filter span{color:var(--text-muted)}.search-results{max-height:400px;overflow-y:auto}.results-section{padding:.75rem 0}.results-heading{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:0 1rem .5rem}.results-list{display:flex;flex-direction:column}.result-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:none;border:none;text-align:left;cursor:pointer;transition:background .15s ease;width:100%}.result-item:hover{background:var(--bg-card-hover)}.result-indicator{width:4px;height:32px;border-radius:2px;flex-shrink:0}.result-info{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.result-name{font-size:.9rem;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.result-item.paid .result-name{text-decoration:line-through;color:var(--text-muted)}.result-meta{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-right{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.result-amount{font-family:Space Mono,monospace;font-size:.9rem;font-weight:600;color:var(--text-primary)}.result-item.paid .result-amount{color:var(--text-muted)}.result-status{font-size:.7rem;font-weight:500;padding:.125rem .5rem;border-radius:var(--radius-full);display:flex;align-items:center;gap:.25rem}.result-status.paid{background:#10b98126;color:var(--accent-green)}.result-status.unpaid{background:#f59e0b26;color:var(--accent-orange)}.results-more{font-size:.8rem;color:var(--text-muted);padding:.5rem 1rem;text-align:center}.search-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;color:var(--text-muted);text-align:center}.search-empty svg{opacity:.3;margin-bottom:1rem}.search-empty p{font-size:1.1rem;color:var(--text-secondary);margin-bottom:.25rem}.search-empty span{font-size:.85rem}.search-empty.initial .search-shortcut{margin-top:1.5rem;display:flex;align-items:center;gap:.375rem;font-size:.8rem}.search-empty kbd{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;padding:.25rem .5rem;font-family:inherit;font-size:.75rem;box-shadow:0 1px 2px #0000001a}@media(max-width:640px){.search-overlay{padding:0;align-items:stretch}.search-modal{max-width:none;height:100%;border-radius:0}.search-results{max-height:none;flex:1}.search-filters{flex-direction:column}.filter-group{width:100%}.filter-group select{flex:1}}.install-prompt-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease}.install-prompt{position:relative;width:100%;max-width:380px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2rem;text-align:center;box-shadow:var(--shadow-lg);animation:scaleIn .3s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.install-prompt-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;border-radius:var(--radius-md);transition:all .15s ease}.install-prompt-close:hover{background:var(--bg-card);color:var(--text-primary)}.install-prompt-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:var(--gradient-green);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 30px #10b9814d}.install-prompt h2{font-size:1.25rem;color:var(--text-primary);margin-bottom:.5rem}.install-prompt-description{color:var(--text-secondary);font-size:.9rem;margin-bottom:1.5rem}.install-prompt-benefits{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.benefit{display:flex;flex-direction:column;align-items:center;gap:.375rem}.benefit svg{color:var(--accent-green)}.benefit span{font-size:.8rem;color:var(--text-secondary)}.install-prompt-actions{display:flex;flex-direction:column;gap:.75rem}.install-btn{width:100%;justify-content:center;padding:.875rem 1.5rem;font-size:1rem}.install-prompt-actions .btn-ghost{width:100%;justify-content:center}.install-prompt-hint{margin-top:1rem;font-size:.75rem;color:var(--text-muted)}@media(max-width:480px){.install-prompt{padding:1.5rem;margin:0 .5rem}.install-prompt-icon{width:64px;height:64px;margin-bottom:1rem}.install-prompt-icon svg{width:32px;height:32px}.install-prompt h2{font-size:1.1rem}.install-prompt-benefits{gap:1rem}.benefit span{font-size:.75rem}}@supports (-webkit-touch-callout: none){.install-prompt-hint:after{content:" Tap Share → Add to Home Screen";display:block;margin-top:.5rem;font-weight:500;color:var(--text-secondary)}}.toast-container{position:fixed;bottom:5rem;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:.75rem;max-width:90vw;width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-slide-in .3s ease-out}.toast-exit{animation:toast-slide-out .3s ease-in forwards}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(1rem)}}.toast-success{border-left:4px solid var(--accent-green)}.toast-success .toast-icon{color:var(--accent-green)}.toast-error{border-left:4px solid var(--accent-red)}.toast-error .toast-icon{color:var(--accent-red)}.toast-warning{border-left:4px solid var(--accent-yellow)}.toast-warning .toast-icon{color:var(--accent-yellow)}.toast-info{border-left:4px solid var(--accent-blue)}.toast-info .toast-icon{color:var(--accent-blue)}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.toast-message{flex:1;font-size:.9rem;color:var(--text-primary);line-height:1.4}.toast-action{display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;background:transparent;border:1px solid var(--accent-blue);border-radius:var(--radius-sm);color:var(--accent-blue);font-family:inherit;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.toast-action:hover{background:var(--accent-blue);color:#fff}.toast-dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .15s ease}.toast-dismiss:hover{background:var(--bg-secondary);color:var(--text-primary)}@media(max-width:480px){.toast-container{bottom:4rem;width:calc(100% - 2rem);left:1rem;right:1rem;transform:none}.toast{padding:.75rem}.toast-message{font-size:.85rem}}.onboarding-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.onboarding-modal{position:relative;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);max-width:500px;width:100%;padding:2.5rem;animation:onboarding-appear .4s ease-out}@keyframes onboarding-appear{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.onboarding-skip{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all .15s ease}.onboarding-skip:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-light)}.step-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:2rem}.step-dot{width:32px;height:32px;border-radius:50%;background:var(--bg-secondary);border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:var(--text-muted);transition:all .3s ease}.step-dot.active{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.step-line{width:60px;height:2px;background:var(--border-color)}.onboarding-step{text-align:center}.onboarding-icon{display:flex;align-items:center;justify-content:center;width:100px;height:100px;margin:0 auto 1.5rem;background:linear-gradient(135deg,var(--accent-green),var(--accent-blue));border-radius:50%;color:#fff}.onboarding-icon.income{background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple))}.onboarding-step h1{font-size:1.75rem;font-weight:700;margin-bottom:.75rem;color:var(--text-primary)}.onboarding-description{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem;max-width:400px;margin-left:auto;margin-right:auto}.onboarding-features{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem;text-align:left;max-width:280px;margin-left:auto;margin-right:auto}.feature-item{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:var(--text-secondary)}.feature-item svg{color:var(--accent-green);flex-shrink:0}.income-form{text-align:left;margin-bottom:1.5rem}.income-form .form-group{margin-bottom:1.25rem}.income-form label{display:block;font-size:.9rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.input-with-icon.large{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);padding:0 1rem;transition:border-color .15s ease}.input-with-icon.large:focus-within{border-color:var(--accent-blue)}.input-with-icon.large svg{color:var(--text-muted)}.input-with-icon.large input{flex:1;background:transparent;border:none;padding:1rem 0;font-size:1.25rem;font-family:Space Mono,monospace;color:var(--text-primary)}.input-with-icon.large input:focus{outline:none}.input-with-icon.large input::placeholder{color:var(--text-muted)}.frequency-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.frequency-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:inherit;font-size:.85rem;cursor:pointer;transition:all .15s ease}.frequency-btn:hover{background:var(--bg-card-hover);border-color:var(--border-light)}.frequency-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.income-preview{margin-top:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.preview-row{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.9rem}.preview-row:not(:last-child){border-bottom:1px solid var(--border-color)}.preview-row .amount{font-family:Space Mono,monospace;font-weight:600;color:var(--accent-green)}.onboarding-actions{display:flex;gap:1rem;justify-content:center}.btn-lg{padding:1rem 2rem;font-size:1rem;display:flex;align-items:center;gap:.5rem}@media(max-width:480px){.onboarding-modal{padding:1.5rem;margin:1rem}.onboarding-step h1{font-size:1.5rem}.onboarding-icon{width:80px;height:80px}.onboarding-icon svg{width:40px;height:40px}.frequency-options{grid-template-columns:1fr}.onboarding-actions{flex-direction:column-reverse}.onboarding-actions .btn{width:100%;justify-content:center}}.month-header{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-wrap:wrap}.header-divider{width:1px;height:20px;background:var(--border-color);margin:0 .25rem}.header-actions .btn.highlight{color:var(--accent-green)}.month-header h2{font-size:1.75rem;font-weight:700;min-width:220px;text-align:center}.month-nav-btn{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);width:40px;height:40px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.month-nav-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-light)}.current-month{font-family:Space Mono,monospace}.month-summary{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color)}.summary-grid{display:block}.summary-main{display:flex;flex-direction:column;gap:1.25rem}.no-paychecks-prompt{text-align:center;padding:3rem 2rem}.no-paychecks-prompt .prompt-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:#22c55e26;color:var(--accent-green);margin-bottom:1.5rem}.no-paychecks-prompt h3{font-size:1.5rem;margin:0 0 .75rem}.no-paychecks-prompt p{color:var(--text-muted);margin:0 0 1.5rem;max-width:400px;margin-left:auto;margin-right:auto}.no-paychecks-prompt .btn-lg{padding:.875rem 1.5rem;font-size:1rem}.no-paychecks-prompt .rollover-hint{margin-top:1rem;font-size:.85rem;color:var(--accent-blue)}.funds-breakdown{background:var(--bg-card);border-radius:var(--radius-sm);padding:.5rem;margin:.5rem 0}.breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:.35rem .5rem;font-size:.8rem;color:var(--text-muted)}.breakdown-item span{display:flex;align-items:center;gap:.35rem}.breakdown-item.received{color:var(--accent-green)}.breakdown-item.rollover{color:var(--accent-blue)}.breakdown-item.income{color:var(--accent-purple)}.future-paychecks{background:#fbbf241a;border-radius:var(--radius-sm);padding:.75rem;margin:.5rem 0;border:1px dashed rgba(251,191,36,.3)}.future-label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-orange);margin-bottom:.5rem}.future-item{display:flex;justify-content:space-between;font-size:.85rem;padding:.25rem 0;color:var(--text-secondary)}.future-item span:last-child{font-family:Space Mono,monospace;color:var(--text-muted)}.money-overview{display:flex;flex-direction:column;gap:.5rem}.overview-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0}.overview-row.income-row{padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.overview-row.expense-row{color:var(--text-secondary)}.overview-row.balance-row{padding-top:.75rem;border-top:1px solid var(--border-color)}.overview-row.sub-row{padding-top:.5rem;font-size:.8rem;color:var(--text-muted);border-top:none}.overview-row.pre-funded-row{padding:.25rem 0;font-size:.8rem}.overview-label.sub{font-size:.8rem;color:var(--text-muted);font-weight:400}.overview-label.sub.positive{color:var(--accent-green)}.overview-label{display:flex;align-items:center;gap:.5rem;font-weight:500}.overview-label .tag{font-size:.65rem;font-weight:500;text-transform:uppercase;padding:.15rem .4rem;background:#ffffff1a;border-radius:var(--radius-sm);color:var(--text-muted)}.overview-amount{font-family:Space Mono,monospace;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.overview-amount.positive{color:var(--accent-green)}.overview-amount.negative{color:var(--text-secondary)}.overview-amount.sub{font-size:.8rem;font-weight:500;color:var(--text-muted)}.btn-inline{width:20px;height:20px;border-radius:50%;border:1px dashed var(--border-color);background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-inline:hover{border-color:var(--accent-blue);color:var(--accent-blue);background:#3b82f61a}.payment-progress{background:var(--bg-primary);padding:.75rem 1rem;border-radius:var(--radius-md)}.progress-header{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.progress-bar-container{flex:1;height:12px;background:var(--bg-card);border-radius:6px;overflow:hidden;border:1px solid var(--border-color)}.progress-bar{height:100%;background:var(--gradient-green);border-radius:6px;transition:width .5s ease}.quick-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--border-color)}.action-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.action-chip:hover{border-color:var(--accent-blue);color:var(--text-primary);background:var(--bg-card-hover)}.action-chip.highlight{background:#10b9811a;border-color:var(--accent-green);color:var(--accent-green)}.action-chip.highlight:hover{background:#10b98133}.inline-add-form{margin-top:1rem;padding:1rem;background:#10b9810d;border:1px dashed var(--accent-green);border-radius:var(--radius-md)}.inline-add-form.expense{background:#f59e0b0d;border-color:var(--accent-orange)}.inline-add-form h4{margin:0 0 .75rem;font-size:.9rem;color:var(--text-secondary)}.inline-form-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.inline-form-row input[type=text]{flex:1;min-width:150px;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary)}.amount-input{display:flex;align-items:center;gap:.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:0 .5rem}.amount-input span{color:var(--text-muted)}.amount-input input{width:80px;padding:.5rem .25rem;border:none;background:none;color:var(--text-primary);font-family:Space Mono,monospace}.amount-input input:focus{outline:none}.extras-summary{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--border-color)}.extra-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;background:var(--bg-primary);border-radius:var(--radius-sm);font-size:.8rem}.extra-item.income{color:var(--accent-green)}.extra-item.expense{color:var(--accent-orange)}.extra-name{font-weight:500}.extra-amount{font-family:Space Mono,monospace}.extra-delete{padding:.15rem;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:2px;opacity:.5;transition:all .15s ease}.extra-delete:hover{opacity:1;color:var(--accent-red)}.variance-banner{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-weight:500;font-size:.9rem}.variance-banner.positive{background:#10b9811a;color:var(--accent-green)}.variance-banner.negative{background:#ef44441a;color:var(--accent-red)}.expense-list-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h3{font-size:1.1rem;font-weight:600}.expense-list{display:flex;flex-direction:column;gap:.5rem}.expense-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.expense-item:hover{background:var(--bg-card-hover);border-color:var(--border-light)}.expense-item.paid{background:#10b9810d;border-color:#10b98133}.expense-item.paid .expense-name{text-decoration:line-through;color:var(--text-muted)}.expense-checkbox{width:24px;height:24px;border:2px solid var(--border-light);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;color:#fff}.expense-checkbox:hover{border-color:var(--accent-blue);background:var(--bg-card-hover)}.expense-info{flex:1;min-width:0}.expense-name{font-weight:500;display:block;margin-bottom:.25rem}.expense-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.expense-category-badge{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;padding:.15rem .5rem;border-radius:var(--radius-sm)}.expense-due{font-size:.8rem;color:var(--text-muted)}.expense-note{font-size:.8rem;color:var(--text-muted);font-style:italic}.expense-amount-container{display:flex;align-items:center;gap:.5rem}.expense-amount{font-family:Space Mono,monospace;font-weight:600;font-size:1rem;color:var(--text-secondary)}.expense-amount.paid{color:var(--accent-green)}.budgeted-hint{font-size:.7rem;color:var(--text-muted);font-weight:400}.delete-expense-btn,.edit-expense-btn,.skip-expense-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm);transition:all .2s ease;opacity:0}.expense-item:hover .delete-expense-btn,.expense-item:hover .edit-expense-btn,.expense-item:hover .skip-expense-btn{opacity:1}.delete-expense-btn:hover{background:#ef44441a;color:var(--accent-red)}.edit-expense-btn:hover{background:#3b82f61a;color:var(--accent-blue)}.skip-expense-btn.visible{opacity:.5}.skip-expense-btn.visible:hover{opacity:1}.skip-expense-btn:hover{background:#f59e0b1a;color:var(--accent-orange)}.skipped-section{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--border-color)}.skipped-section h4{font-size:.85rem;font-weight:500;color:var(--text-muted);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.skipped-items{display:flex;flex-wrap:wrap;gap:.5rem}.skipped-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#6b72801a;border:1px dashed var(--border-color);border-radius:var(--radius-sm);font-size:.8rem;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.skipped-item:hover{background:#10b9811a;border-color:var(--accent-green);color:var(--text-secondary)}.skipped-name{text-decoration:line-through}.skipped-amount{font-family:Space Mono,monospace;font-size:.75rem}.unskip-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.15rem;border-radius:var(--radius-sm);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.skipped-item:hover .unskip-btn{color:var(--accent-green)}.skipped-total{font-size:.8rem;color:var(--text-muted);margin-top:.75rem;font-style:italic}.expense-item.multi-occurrence{flex-direction:row;align-items:center;gap:1rem;cursor:default}.expense-item.multi-occurrence .expense-info{flex:1;min-width:0}.expense-item.multi-occurrence .expense-amount-container{display:flex;align-items:center;gap:.5rem}.multi-occurrence-checkboxes{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.occurrence-checkbox-wrapper{position:relative;display:flex;flex-direction:column;align-items:center}.occurrence-checkbox{width:24px;height:24px;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--text-muted);font-size:.65rem;font-weight:600}.occurrence-checkbox:hover{border-color:var(--accent-blue);background:var(--bg-card-hover)}.occurrence-checkbox.paid{color:#fff}.occurrence-checkbox .occurrence-num{font-family:Space Mono,monospace}.occurrence-source-dot{width:5px;height:5px;background:var(--accent-green);border-radius:50%;margin-top:2px}.occurrence-progress-label{font-size:.7rem;color:var(--text-muted);font-family:Space Mono,monospace}.expense-item.trackable{flex-direction:column;padding:0;cursor:default}.expense-item.trackable .trackable-header{display:flex;align-items:center;gap:1rem;padding:1rem;cursor:pointer;width:100%}.expense-item.trackable .trackable-header:hover{background:var(--bg-card-hover)}.trackable-amounts{display:flex;align-items:baseline;gap:.25rem;margin-left:auto}.spent-amount{font-family:Space Mono,monospace;font-weight:600;font-size:1rem;color:var(--accent-green)}.spent-amount.over{color:var(--accent-red)}.budget-amount{font-family:Space Mono,monospace;font-size:.85rem;color:var(--text-muted)}.expand-icon{color:var(--text-muted);transition:transform .2s ease;flex-shrink:0}.expand-icon.rotated{transform:rotate(180deg)}.trackable-body{padding:0 1rem 1rem;border-top:1px solid var(--border-color);margin-top:0}.trackable-progress-bar{height:6px;background:var(--bg-card);border-radius:3px;overflow:hidden;margin:1rem 0 .5rem}.trackable-progress-fill{height:100%;background:var(--gradient-green);border-radius:3px;transition:width .3s ease}.trackable-progress-fill.over{background:var(--accent-red)}.trackable-remaining{font-size:.85rem;margin-bottom:1rem}.trackable-remaining .positive{color:var(--accent-green)}.trackable-remaining .negative{color:var(--accent-red)}.trackable-entries{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem;max-height:200px;overflow-y:auto}.trackable-entry{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-card);border-radius:var(--radius-sm);font-size:.85rem}.entry-name{flex:1;color:var(--text-secondary)}.entry-amount{font-family:Space Mono,monospace;font-weight:500}.entry-delete{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.2rem;border-radius:var(--radius-sm);opacity:0;transition:all .2s ease}.trackable-entry:hover .entry-delete{opacity:1}.entry-delete:hover{background:#ef44441a;color:var(--accent-red)}.add-entry-form{display:flex;gap:.5rem;align-items:center}.add-entry-form input[type=text]{flex:1;padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.85rem}.add-entry-form input:focus{outline:none;border-color:var(--accent-green)}.entry-amount-input{position:relative;display:flex;align-items:center;width:100px}.entry-amount-input svg{position:absolute;left:.5rem;color:var(--text-muted)}.entry-amount-input input{width:100%;padding:.5rem .5rem .5rem 1.75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.85rem}.trackable-progress{font-size:.75rem;color:var(--text-muted)}.paycheck-allocation{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.paycheck-allocation h3{font-size:1.1rem;font-weight:600;margin-bottom:.25rem}.allocation-note{font-size:.85rem;color:var(--text-muted);margin-bottom:1.25rem}.allocation-note .hint-text{color:var(--accent-blue)}.no-allocation-prompt{text-align:center;padding:2rem;color:var(--text-muted)}.no-allocation-prompt svg{margin-bottom:.75rem;opacity:.5}.no-allocation-prompt p{margin:0 0 1rem;max-width:300px;margin-left:auto;margin-right:auto}.paycheck-flow-overview{display:flex;align-items:center;justify-content:center;gap:0;padding:1rem 1.5rem;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:1.5rem;overflow-x:auto;border:1px solid var(--border-color)}.flow-node{display:flex;flex-direction:column;align-items:center;padding:.6rem 1rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:var(--radius-md);min-width:100px;transition:all .2s ease}.flow-node.received{border-color:var(--accent-green);background:#10b98114}.flow-node.upcoming{border-style:dashed;border-color:var(--accent-orange);background:#f973160d}.flow-date{font-size:.8rem;font-weight:600;color:var(--text-primary);margin-bottom:.15rem}.flow-amount{font-family:Space Mono,monospace;font-size:.75rem;color:var(--accent-green);font-weight:500}.flow-connector{display:flex;flex-direction:column;align-items:center;padding:0 .75rem;min-width:70px}.flow-line{display:flex;align-items:center;justify-content:center;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-blue),var(--accent-blue));position:relative}.flow-arrow{color:var(--accent-blue);background:var(--bg-secondary);flex-shrink:0}.flow-carry{font-size:.7rem;font-family:Space Mono,monospace;color:var(--accent-blue);margin-top:.35rem;font-weight:500}.paycheck-sections{display:flex;flex-direction:column;gap:0}.paycheck-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;position:relative;margin-bottom:1.75rem;transition:all .2s ease}.paycheck-section:last-child{margin-bottom:0}.paycheck-section.received{border-left:3px solid var(--accent-green)}.paycheck-section.upcoming{border-style:dashed;border-left:3px dashed var(--accent-orange)}.carry-in-indicator{position:absolute;top:-1.5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:1}.carry-in-indicator .carry-line{width:2px;height:.75rem;background:var(--accent-blue)}.carry-in-indicator span{font-size:.7rem;font-family:Space Mono,monospace;color:var(--accent-blue);background:var(--bg-primary);padding:.15rem .6rem;border-radius:var(--radius-sm);border:1px solid rgba(59,130,246,.3);white-space:nowrap}.carry-in-indicator span.positive{color:var(--accent-green);border-color:#10b9814d}.carry-in-indicator span.negative{color:var(--accent-red);border-color:#ef44444d}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.section-title{display:flex;flex-direction:column;gap:.25rem}.paycheck-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .5rem;border-radius:var(--radius-sm);width:fit-content}.paycheck-badge.received{background:#10b98126;color:var(--accent-green)}.paycheck-badge.upcoming{background:#f9731626;color:var(--accent-orange)}.paycheck-label{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.paycheck-date{font-size:.85rem;color:var(--text-muted)}.section-funds{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.funds-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.funds-amount{font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700}.funds-amount.positive{color:var(--accent-green)}.funds-amount.negative{color:var(--accent-red)}.bills-container{background:var(--bg-card);border-radius:var(--radius-md);margin:1rem 0;border:1px solid var(--border-color);overflow:hidden}.bills-container.empty{border-style:dashed}.bills-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#3b82f60d;border-bottom:1px solid var(--border-color);font-weight:600;font-size:.9rem;color:var(--text-primary)}.bills-total{color:var(--accent-red);font-family:Space Mono,monospace;font-weight:700}.bills-empty{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.85rem}.bills-list{padding:.5rem;max-height:300px;overflow-y:auto}.bill-row{display:flex;align-items:center;gap:.75rem;padding:.7rem .75rem;border-radius:var(--radius-sm);transition:background .15s ease;cursor:default}.bill-row:hover{background:var(--bg-secondary)}.bill-row.paid{opacity:.6}.bill-row.paid .bill-name{text-decoration:line-through;color:var(--text-muted)}.bill-status{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#f973161a;color:var(--accent-orange);flex-shrink:0}.bill-status.paid{background:#10b98126;color:var(--accent-green)}.bill-due{font-size:.7rem;font-weight:600;padding:.15rem .4rem;background:#3b82f61f;color:var(--accent-blue);border-radius:4px;min-width:24px;text-align:center;flex-shrink:0}.bill-name{flex:1;font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:.35rem}.override-indicator{color:var(--accent-blue);font-size:.5rem}.bill-amount{font-family:Space Mono,monospace;font-size:.9rem;font-weight:500;color:var(--text-primary)}.paycheck-select{padding:.25rem .4rem;font-size:.75rem;font-weight:500;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.paycheck-select:hover{border-color:var(--accent-blue);background:#3b82f61a}.paycheck-select:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 2px #3b82f633}.section-footer{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem}.section-footer.positive{background:#3b82f61a;color:var(--text-primary)}.section-footer.negative{background:#ef44441a;color:var(--accent-red)}.footer-amount{font-family:Space Mono,monospace;font-size:1.1rem;font-weight:700}.section-footer.positive .footer-amount{color:var(--accent-blue)}.section-footer.negative .footer-amount{color:var(--accent-red)}@media(max-width:600px){.paycheck-flow-overview{padding:.75rem 1rem;justify-content:flex-start}.flow-node{min-width:85px;padding:.5rem .75rem}.flow-connector{min-width:50px;padding:0 .5rem}.paycheck-section .section-header{flex-direction:column;gap:.75rem}.section-funds{align-items:flex-start;flex-direction:row;gap:.5rem;align-items:baseline}.funds-label{font-size:.75rem}.funds-amount{font-size:1.1rem}.bill-row{gap:.4rem;padding:.5rem}.bill-status{width:18px;height:18px}.bill-due{font-size:.6rem;padding:.1rem .3rem;min-width:20px}.bill-name{font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bill-amount{font-size:.8rem;flex-shrink:0}.paycheck-select{padding:.15rem .25rem;font-size:.65rem;min-width:36px}}.savings-section{background:linear-gradient(135deg,#10b9811a,#10b9810d);border:1px solid rgba(16,185,129,.2);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.savings-section h3{font-size:1.1rem;font-weight:600;margin-bottom:1rem;color:var(--accent-green)}.savings-status{margin-bottom:1rem}.savings-indicator{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-card);border-radius:var(--radius-md);font-size:.9rem;font-weight:500}.savings-indicator.positive{color:var(--accent-green)}.savings-indicator.warning{color:var(--accent-orange)}.savings-items{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.savings-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.savings-item:hover{background:var(--bg-card-hover)}.savings-item.paid{background:#10b9811a;border-color:#10b9814d}.savings-item.skipped{opacity:.5;cursor:default}.savings-item.paid .savings-name{text-decoration:line-through;color:var(--text-muted)}.savings-checkbox{width:22px;height:22px;border:2px solid var(--border-light);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;color:#fff}.savings-checkbox:hover{border-color:var(--accent-blue);background:var(--bg-card-hover)}.savings-info{flex:1}.savings-name{font-weight:500;display:flex;align-items:center;gap:.4rem}.linked-goal-indicator{display:inline-flex;align-items:center;justify-content:center;color:var(--accent-purple);background:#8b5cf626;border-radius:50%;padding:.2rem;cursor:help}.savings-note{font-size:.8rem;color:var(--text-muted)}.savings-amount{font-family:Space Mono,monospace;font-weight:600;color:var(--text-secondary)}.savings-amount.paid{color:var(--accent-green)}.savings-footer{display:flex;justify-content:space-between;padding-top:1rem;border-top:1px solid var(--border-color);font-size:.85rem;color:var(--text-secondary)}.savings-footer span:last-child{font-weight:600}.savings-footer .positive{color:var(--accent-green)}.savings-footer .negative{color:var(--accent-red)}.deductions-summary{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.deductions-summary h3{font-size:1.1rem;font-weight:600;margin-bottom:.25rem}.deductions-note{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem}.deductions-total{display:flex;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:1rem;font-weight:500}.deductions-total .amount{font-family:Space Mono,monospace;color:var(--accent-purple);font-weight:700}.deductions-list{display:flex;flex-direction:column;gap:.5rem}.deduction-category{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.category-header.compact{padding:.75rem 1rem;font-size:.9rem}.deduction-items{padding:.5rem 1rem 1rem;border-top:1px solid var(--border-color)}.deduction-item{display:flex;justify-content:space-between;padding:.35rem 0;font-size:.85rem;color:var(--text-secondary)}.deduction-item span:last-child{font-family:Space Mono,monospace}.payment-source-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:var(--radius-sm);font-weight:500}.payment-source-badge.previous{background:#f59e0b26;color:#f59e0b}.payment-source-badge.savings{background:#3b82f626;color:var(--accent-blue)}.payment-source-badge.current,.payment-source-badge[class*=paycheck-]{background:#10b98126;color:var(--accent-green)}.payment-source-badge.cash{background:#f59e0b26;color:var(--accent-orange)}@media(max-width:960px){.month-header{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.month-header h2{min-width:auto;font-size:1.35rem;order:0;margin:0 .5rem}.month-nav-btn{width:36px;height:36px}.header-actions{width:100%;justify-content:center;margin-left:0;margin-top:.5rem;gap:.35rem}.header-actions .btn{padding:.4rem .6rem;font-size:.75rem;border-radius:20px;background:var(--bg-card);border:1px solid var(--border-color)}.header-actions .btn:hover{background:var(--bg-card-hover)}.header-actions .btn.highlight{background:#10b9811a;border-color:#10b9814d}.header-divider{display:none}.allocation-grid{grid-template-columns:1fr}.savings-footer{flex-direction:column;gap:.5rem}.quick-actions-row{justify-content:center}.action-chip{font-size:.75rem;padding:.4rem .6rem}.expense-list-section .section-header{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.5rem}.expense-list-section .section-header h3{font-size:.95rem;flex:1;min-width:0}.expense-list-section .section-header .btn{flex-shrink:0}}.budget-insights-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1.5rem;border:1px solid var(--border-color)}.budget-insights-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.budget-insights-header .header-left{display:flex;align-items:center;gap:.75rem}.budget-insights-header h3{font-size:1rem;font-weight:600;margin:0;color:var(--text-primary)}.overall-icon{flex-shrink:0}.overall-icon.good{color:var(--accent-green)}.overall-icon.warning{color:var(--accent-orange)}.overall-icon.critical{color:var(--accent-red)}.overall-status{font-size:.75rem;color:var(--text-muted)}.overall-status.excellent,.overall-status.good{color:var(--accent-green)}.overall-status.warning,.overall-status.okay{color:var(--accent-orange)}.overall-status.critical{color:var(--accent-red)}.insights-expand-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.insights-expand-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.budget-insights-content{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.insights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.insight-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:.85rem;border:1px solid var(--border-color);display:flex;flex-direction:column;gap:.35rem}.insight-card.excellent{border-color:#22c55e4d;background:#22c55e0d}.insight-card.good{border-color:#3b82f64d;background:#3b82f60d}.insight-card.okay,.insight-card.warning{border-color:#fb923c4d;background:#fb923c0d}.insight-card.critical{border-color:#ef44444d;background:#ef44440d}.insight-header{display:flex;align-items:center;gap:.5rem}.insight-header svg{color:var(--text-muted);flex-shrink:0}.insight-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;flex:1}.insight-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.insight-value-row{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.value-prefix{font-size:1rem;font-weight:600}.value-prefix.excellent,.value-prefix.good{color:var(--accent-green)}.value-prefix.okay,.value-prefix.warning{color:var(--accent-orange)}.value-prefix.critical{color:var(--accent-red)}.insight-value{font-family:Space Mono,monospace;font-size:1.35rem;font-weight:700;color:var(--text-primary);line-height:1.1}.insight-value.text{font-family:inherit;font-size:1.1rem}.insight-target{font-size:.7rem;color:var(--text-muted);margin-left:auto}.insight-status-label{display:flex}.status-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .4rem;border-radius:var(--radius-sm);background:var(--bg-card)}.status-badge.excellent,.status-badge.good{color:var(--accent-green);background:#22c55e26}.status-badge.okay,.status-badge.warning{color:var(--accent-orange);background:#fb923c26}.status-badge.critical{color:var(--accent-red);background:#ef444426}.insight-detail{font-size:.7rem;color:var(--text-muted);margin:0;line-height:1.3}.insights-tips{margin-top:1rem;padding:.75rem;background:#fb923c14;border:1px solid rgba(251,146,60,.2);border-radius:var(--radius-md)}.tips-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:.75rem;font-weight:600;color:var(--accent-orange);text-transform:uppercase;letter-spacing:.03em}.tips-header svg{flex-shrink:0}.tips-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.tips-list li{font-size:.8rem;color:var(--text-secondary);padding-left:1rem;position:relative}.tips-list li:before{content:"→";position:absolute;left:0;color:var(--accent-orange)}@media(max-width:500px){.insights-grid{grid-template-columns:1fr}.insight-value{font-size:1.2rem}}@media(max-width:480px){.expense-item{gap:.5rem;padding:.75rem}.expense-item .expense-checkbox{width:20px;height:20px;flex-shrink:0}.expense-item .expense-info{flex:1;min-width:0;overflow:hidden}.expense-item .expense-name{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-item .expense-meta{gap:.25rem}.expense-category-badge{font-size:.55rem;padding:.1rem .3rem;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-item .expense-amount-container{flex-shrink:0;gap:.25rem}.expense-item .expense-amount{font-size:.85rem}.expense-item.multi-occurrence .multi-occurrence-checkboxes{gap:.15rem;flex-shrink:0}.expense-item.multi-occurrence .occurrence-checkbox{width:18px;height:18px;font-size:.55rem}.expense-item.multi-occurrence .expense-info{flex:1;min-width:0}.expense-item.multi-occurrence .expense-amount{font-size:.75rem}.occurrence-progress-label{font-size:.6rem}.expense-item.trackable .trackable-header{gap:.5rem;padding:.75rem}.expense-item.trackable .trackable-amounts{flex-shrink:0}.spent-amount{font-size:.85rem}.budget-amount{font-size:.7rem}.delete-expense-btn,.edit-expense-btn,.skip-expense-btn{opacity:.7;padding:.15rem}}:root{--font-scale: 1;--bg-primary: #0a0f1c;--bg-secondary: #111827;--bg-card: #1a2235;--bg-card-hover: #1f2942;--border-color: #2d3748;--border-light: #374151;--text-primary: #f9fafb;--text-secondary: #9ca3af;--text-muted: #6b7280;--accent-green: #10b981;--accent-green-light: #34d399;--accent-blue: #3b82f6;--accent-purple: #8b5cf6;--accent-orange: #f59e0b;--accent-red: #ef4444;--accent-pink: #ec4899;--gradient-green: linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-blue: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);--gradient-purple: linear-gradient(135deg, #8b5cf6 0%, #6d28d9 100%);--gradient-orange: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .5);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px}[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-card-hover: #f1f5f9;--border-color: #e2e8f0;--border-light: #cbd5e1;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--accent-green: #059669;--accent-green-light: #10b981;--accent-blue: #2563eb;--accent-purple: #7c3aed;--accent-orange: #d97706;--accent-red: #dc2626;--accent-pink: #db2777;--gradient-green: linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-blue: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--gradient-purple: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);--gradient-orange: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:calc(16px * var(--font-scale))}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease,font-size .2s ease}.app,.summary-card,.chart-card,.expense-item,.modal,.category,header,footer,input,select,button,.card-column{transition:background-color .2s ease,border-color .2s ease,color .2s ease}.app{min-height:100vh;width:100%;display:flex;flex-direction:column}.main{flex:1;width:100%;max-width:1300px;margin:0 auto;padding:2rem 3rem}.loading{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:100vh;color:var(--text-secondary)}.loading .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:960px){.main{padding:1.5rem 1rem}}@media(max-width:480px){.main{padding:1rem .75rem}}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.modal-lg{max-width:600px}.modal-wide{max-width:800px}.modal-xl{width:95%;max-width:1100px;max-height:90vh}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.modal-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm);transition:all .2s ease}.modal-close:hover{background:var(--bg-card);color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-description{color:var(--text-secondary);margin-bottom:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color)}.modal-hint{color:var(--text-muted);font-size:.9rem;margin-bottom:1.25rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.85rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select,.category-select{width:100%;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:1rem;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.category-select:focus{outline:none;border-color:var(--accent-green);box-shadow:0 0 0 3px #10b98126}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon svg{position:absolute;left:1rem;color:var(--text-muted)}.input-with-icon input{padding-left:2.75rem}.edit-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.card-select-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.card-select-btn{display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:inherit;font-size:.9rem;cursor:pointer;transition:all .2s ease}.card-select-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.card-select-btn.selected{color:var(--text-primary);font-weight:500}.card-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.payment-source-options{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.payment-source-btn{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all .2s ease}.payment-source-btn:hover{border-color:var(--accent-blue);background:var(--bg-card-hover)}.payment-source-btn svg{flex-shrink:0;color:var(--text-muted)}.payment-source-btn span{font-weight:600;color:var(--text-primary)}.payment-source-btn small{display:block;font-size:.8rem;font-weight:400;color:var(--text-muted);margin-top:.15rem}.payment-source-btn.previous:hover{border-color:#f59e0b}.payment-source-btn.previous svg{color:#f59e0b}.payment-source-btn.paycheck:hover{border-color:var(--accent-green)}.payment-source-btn.paycheck svg{color:var(--accent-green)}.payment-source-btn.savings:hover{border-color:var(--accent-blue)}.payment-source-btn.savings svg{color:var(--accent-blue)}.payment-source-btn.cash{border-color:var(--border-light)}.payment-source-btn.cash:hover{border-color:var(--accent-orange)}.payment-source-btn.cash svg{color:var(--accent-orange)}.payment-source-btn.rollover:hover{border-color:var(--accent-blue)}.payment-source-btn.rollover svg{color:var(--accent-blue)}.payment-source-btn.paycheck.pending{opacity:.75;border-style:dashed}.payment-source-btn.paycheck.received{border-color:#22c55e4d}.payment-source-btn.selected{border-color:var(--accent-blue);background:#3b82f61a}.payment-source-btn.rollover.selected{border-color:#8b5cf6;background:#8b5cf61a}.payment-source-btn.savings.selected{border-color:var(--accent-blue);background:#3b82f61a}.payment-source-btn.paycheck.selected{border-color:var(--accent-green);background:#22c55e1a}.payment-source-btn.cash.selected{border-color:var(--accent-orange);background:#fb923c1a}.source-check{margin-left:auto;color:var(--accent-green);flex-shrink:0}.pending-badge{font-size:.65rem!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.5px;background:#fbbf2426;color:var(--accent-orange)!important;padding:.25rem .5rem;border-radius:var(--radius-sm);margin-left:auto}.payment-item-summary{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-primary);border-radius:var(--radius-md);margin-bottom:1.25rem;border:1px solid var(--border-color)}.payment-item-name{font-weight:600;font-size:1rem;color:var(--text-primary)}.payment-item-budgeted{font-family:Space Mono,monospace;font-weight:500;color:var(--text-secondary)}.payment-source-divider{display:flex;align-items:center;gap:1rem;margin:1.5rem 0 1rem;color:var(--text-muted);font-size:.85rem;font-weight:500}.payment-source-divider:before,.payment-source-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.payment-source-text{display:flex;flex-direction:column;align-items:flex-start}.rollover-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.rollover-summary>div{text-align:center}.rollover-summary .label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.rollover-summary .amount{font-family:Space Mono,monospace;font-size:1.15rem;font-weight:700}.allocation-list{display:flex;flex-direction:column;gap:.75rem;max-height:300px;overflow-y:auto}.input-with-icon.small{display:flex;align-items:center;gap:.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.35rem .5rem}.input-with-icon.small input{width:80px;border:none;background:none;font-size:.85rem;color:var(--text-primary);padding:0}.input-with-icon.small input:focus{outline:none;box-shadow:none}.schedule-info{margin-top:1.5rem;padding:1rem;background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.schedule-info h4{margin:0 0 .75rem;font-size:.9rem;color:var(--text-secondary)}.schedule-options{display:flex;flex-direction:column;gap:.5rem}.schedule-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:var(--radius-sm);transition:background .15s ease}.schedule-option:hover{background:var(--bg-secondary)}.schedule-option input[type=radio]{accent-color:var(--accent-green)}.schedule-info summary{cursor:pointer;font-weight:500;color:var(--text-secondary);padding:.5rem;margin:-.5rem}.schedule-info summary:hover{color:var(--text-primary)}.paychecks-list{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.paychecks-list h4{margin:0 0 1rem;font-size:.9rem;color:var(--text-secondary)}.paycheck-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);margin-bottom:.75rem}.paycheck-item.received{border-left:3px solid var(--accent-green)}.paycheck-item.pending{border-left:3px solid var(--accent-orange)}.paycheck-item.forecasted{border-left:3px solid var(--accent-purple);background:#8b5cf60d;border-style:dashed}.paycheck-status.forecasted{color:var(--accent-purple)}.paycheck-info{display:flex;align-items:center;gap:1rem;flex:1}.paycheck-number{font-weight:700;color:var(--text-muted);font-size:.85rem}.paycheck-details{display:flex;flex-direction:column;gap:.25rem}.paycheck-date{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-primary)}.paycheck-amount{font-family:Space Mono,monospace;font-weight:600;font-size:1rem;color:var(--accent-green)}.paycheck-status{font-size:.75rem;padding:.25rem .5rem;border-radius:var(--radius-sm);font-weight:500}.paycheck-status.received{background:#22c55e26;color:var(--accent-green)}.paycheck-status.pending{background:#fbbf2426;color:var(--accent-orange)}.paycheck-actions{display:flex;gap:.5rem}.btn-icon{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;width:36px;height:36px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#6464644d;color:#d1d5db;cursor:pointer;transition:all .15s ease;padding:0}.btn-icon:hover{background:#3b82f64d;border-color:#3b82f6;color:#60a5fa}.btn-icon.danger{color:#9ca3af}.btn-icon.danger:hover{background:#ef44444d;border-color:#ef4444;color:#f87171}.paycheck-edit-form{width:100%}.edit-row{display:flex;gap:.75rem;margin-bottom:.75rem}.edit-row input[type=date]{flex:1;padding:.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary)}.input-with-icon.compact{flex:1}.input-with-icon.compact input{padding:.5rem .5rem .5rem 2rem}.edit-actions{display:flex;gap:.5rem}.add-paycheck-section{background:var(--bg-secondary);padding:1.25rem;border-radius:var(--radius-md);border:1px solid var(--border-color);margin-bottom:1rem}.add-paycheck-section h4{margin:0 0 .5rem;font-size:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}@media(max-width:480px){.form-row{grid-template-columns:1fr}.paycheck-info{flex-wrap:wrap;gap:.5rem}.edit-row{flex-direction:column}}.upload-area{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:2rem;text-align:center;cursor:pointer;transition:all .2s ease;margin-bottom:1rem}.upload-area:hover{border-color:var(--accent-purple);background:#8b5cf60d}.upload-placeholder{color:var(--text-muted)}.upload-placeholder svg{margin-bottom:1rem;opacity:.5}.upload-placeholder p{font-size:1rem;margin-bottom:.25rem}.upload-placeholder span{font-size:.8rem}.preview-image{max-width:100%;max-height:300px;border-radius:var(--radius-md);object-fit:contain}.error-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--accent-red);font-size:.9rem;margin-bottom:1rem}.parsed-preview{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;margin-top:1rem}.parsed-preview h4{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.95rem}.preview-content p{font-size:.9rem;margin-bottom:.5rem;color:var(--text-secondary)}.preview-content strong{color:var(--text-primary)}.preview-content details{margin-top:1rem}.preview-content summary{cursor:pointer;font-size:.85rem;color:var(--accent-purple)}.preview-content pre{margin-top:.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-sm);overflow-x:auto;font-size:.75rem;max-height:200px;color:var(--text-secondary)}.spinner{animation:spin 1s linear infinite}.settings-body{padding:0!important}.settings-grid{display:grid;grid-template-columns:1fr 320px;gap:0;min-height:500px}.settings-main{padding:1.5rem;overflow-y:auto;max-height:calc(90vh - 60px);border-right:1px solid var(--border-color)}.settings-sidebar{padding:1.5rem;background:var(--bg-primary);overflow-y:auto;max-height:calc(90vh - 60px)}.settings-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.settings-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.settings-section h3{font-size:1rem;font-weight:600;margin-bottom:.25rem;display:flex;align-items:center;gap:.5rem}.settings-section .hint{margin-bottom:1rem}.settings-actions{display:flex;gap:1rem}.settings-actions.vertical{flex-direction:column}.import-btn{cursor:pointer}.expenses-editor{display:flex;flex-direction:column;gap:1.5rem}.expense-category-block{background:var(--bg-primary);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color)}.category-block-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary);border-left:3px solid}.category-block-count{font-size:.8rem;color:var(--text-muted)}.expense-items-list{padding:.5rem}.expense-edit-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:var(--radius-sm);transition:background .15s ease}.expense-edit-row:hover{background:var(--bg-secondary)}.expense-name-input{flex:1;min-width:150px;padding:.5rem .75rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:.9rem}.expense-name-input:hover,.expense-name-input:focus{border-color:var(--border-color);background:var(--bg-secondary);outline:none}.expense-amount-edit{display:flex;align-items:center;gap:.25rem}.expense-amount-edit .dollar-sign{color:var(--text-muted);font-size:.85rem}.expense-amount-input{width:90px;padding:.5rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-family:Space Mono,monospace;font-size:.9rem;text-align:right}.expense-amount-input:hover,.expense-amount-input:focus{border-color:var(--border-color);background:var(--bg-secondary);outline:none}.occurrence-note{font-size:.75rem;color:var(--text-muted);margin-left:.25rem}.expense-due-edit,.expense-occ-edit{display:flex;align-items:center;gap:.25rem}.due-label,.occ-label{font-size:.7rem;color:var(--text-muted)}.expense-due-input,.expense-occ-input{width:40px;padding:.35rem .25rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:.85rem;text-align:center}.expense-due-input:hover,.expense-due-input:focus,.expense-occ-input:hover,.expense-occ-input:focus{border-color:var(--border-color);background:var(--bg-secondary);outline:none}.expense-delete-btn{padding:.4rem;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:all .15s ease}.expense-edit-row:hover .expense-delete-btn{opacity:1}.expense-delete-btn:hover{color:var(--accent-red);background:#ef44441a}.empty-category{padding:1rem;text-align:center;color:var(--text-muted);font-size:.85rem}.cat-color-picker{width:24px;height:24px;border:none;border-radius:50%;cursor:pointer;padding:0}.category-name-input{flex:1;padding:.35rem .5rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-weight:600;font-size:.95rem}.category-name-input:hover,.category-name-input:focus{border-color:var(--border-color);background:var(--bg-primary);outline:none}.cat-delete-btn{padding:.35rem;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:all .15s ease}.category-block-header:hover .cat-delete-btn{opacity:1}.cat-delete-btn:hover{color:var(--accent-red);background:#ef44441a}.category-row.editable{display:flex;align-items:center;gap:.5rem}.card-color-picker{width:20px;height:20px;border:none;border-radius:4px;cursor:pointer;padding:0}.card-name-input{flex:1;padding:.35rem .5rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:.9rem}.card-name-input:hover,.card-name-input:focus{border-color:var(--border-color);background:var(--bg-secondary);outline:none}.card-delete-btn{padding:.25rem;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:all .15s ease}.category-row.editable:hover .card-delete-btn{opacity:1}.card-delete-btn:hover{color:var(--accent-red)}.add-card-form{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border-color)}.add-card-form input[type=text]{flex:1;padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem}.categories-list.compact{gap:.35rem}.category-row.compact{padding:.5rem .75rem}.categories-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.category-row{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;background:var(--bg-card);border-radius:var(--radius-md)}.category-row.reorderable{cursor:grab;transition:all .15s ease}.category-row.reorderable:active{cursor:grabbing}.category-row.reorderable.dragging{opacity:.5;background:var(--bg-card-hover)}.reorder-handle{color:var(--text-muted);opacity:.5;display:flex;align-items:center;cursor:grab}.reorder-handle:hover{opacity:1}.reorder-arrows{display:flex;flex-direction:column;gap:0}.reorder-btn{display:flex;align-items:center;justify-content:center;padding:0;width:20px;height:14px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:color .15s ease}.reorder-btn:hover:not(:disabled){color:var(--accent-blue)}.reorder-btn:disabled{opacity:.3;cursor:not-allowed}.card-visibility-btn{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease}.card-visibility-btn:hover{color:var(--accent-blue);background:#60a5fa1a}.card-visibility-btn.hidden{color:var(--text-muted);opacity:.5}.card-visibility-btn.hidden:hover{opacity:1;color:var(--accent-green);background:#10b9811a}.add-category-form{display:flex;flex-direction:column;gap:.5rem}.add-category-form input[type=text]{padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit}.category-form-row{display:flex;gap:.5rem}.color-picker{width:40px;height:36px;padding:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer}.settings-section.danger{border:1px solid rgba(239,68,68,.3);background:#ef44440d;padding:1rem;border-radius:var(--radius-md)}.danger-btn{color:var(--accent-red);border-color:var(--accent-red)}.danger-btn:hover{background:#ef44441a}.font-scale-options{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.font-scale-btn{flex:1;min-width:80px;padding:.75rem 1rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-weight:500}.font-scale-btn:hover{background:var(--bg-card-hover);border-color:var(--border-light);color:var(--text-primary)}.font-scale-btn.active{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.font-scale-preview{padding:1rem;background:var(--bg-card);border-radius:var(--radius-md);color:var(--text-secondary);font-style:italic}.currency-select{width:100%;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.95rem;cursor:pointer}.currency-select:focus{outline:none;border-color:var(--accent-blue)}.currency-preview{margin-top:.75rem;padding:.75rem 1rem;background:var(--bg-card);border-radius:var(--radius-md);color:var(--text-secondary);font-family:Space Mono,monospace;font-size:1rem;text-align:center}.notification-toggle{margin-bottom:1rem}.toggle-label{display:flex;align-items:center;justify-content:space-between;gap:1rem}.toggle-label span{font-weight:500;color:var(--text-primary)}.toggle-switch{position:relative;width:48px;height:26px;background:var(--bg-card);border:2px solid var(--border-color);border-radius:13px;cursor:pointer;transition:all .2s ease;padding:0}.toggle-switch.active{background:var(--accent-green);border-color:var(--accent-green)}.toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--text-muted);border-radius:50%;transition:all .2s ease}.toggle-switch.active .toggle-knob{left:24px;background:#fff}.notification-options{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--bg-card);border-radius:var(--radius-md)}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-green)}.checkbox-label span{color:var(--text-secondary)}.checkbox-label.trackable-option{padding:.75rem;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.checkbox-label.trackable-option svg{color:var(--accent-blue)}.checkbox-label.trackable-option:has(input:checked){border-color:var(--accent-blue);background:#60a5fa1a}.reminder-days{display:flex;align-items:center;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--border-color);margin-top:.5rem}.reminder-days label{color:var(--text-secondary);font-size:.9rem}.reminder-days select{flex:1;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem}.test-notification{margin-top:.5rem;align-self:flex-start}.notification-unsupported,.notification-denied{padding:1rem;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);color:var(--accent-orange);font-size:.9rem}.notification-denied{background:#ef44441a;border-color:#ef44444d;color:var(--accent-red)}@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-main{border-right:none;border-bottom:1px solid var(--border-color);max-height:none}.settings-sidebar{max-height:none}}@media(max-width:960px){.edit-form-grid,.card-select-grid{grid-template-columns:1fr}}.goal-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.goal-type-option{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all .2s ease;font-family:inherit}.goal-type-option:hover{border-color:var(--border-light);background:var(--bg-card-hover)}.goal-type-option.selected{border-color:var(--type-color, var(--accent-purple));background:#6366f10d}.goal-type-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.goal-type-info{flex:1;min-width:0}.goal-type-label{display:block;font-weight:600;font-size:.9rem;color:var(--text-primary);margin-bottom:.25rem}.goal-type-desc{display:block;font-size:.75rem;color:var(--text-muted);line-height:1.3}.color-picker-row{display:flex;align-items:center;gap:1rem}.color-picker{width:50px;height:40px;padding:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer}.color-preview{width:40px;height:40px;border-radius:var(--radius-md)}@media(max-width:600px){.goal-type-grid{grid-template-columns:1fr}}.savings-link-section label{display:flex;align-items:center;gap:.5rem}.savings-link-section label svg{color:var(--accent-green)}.savings-select{font-size:1rem}.savings-info-card{margin-top:1rem;padding:1rem;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-md)}.savings-monthly{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(16,185,129,.2)}.savings-monthly .label{font-size:.85rem;color:var(--text-secondary)}.savings-monthly .value{font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700;color:var(--accent-green)}.savings-projections .label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.quick-fill-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.quick-fill-buttons button{flex:1;min-width:100px;padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.8rem;cursor:pointer;transition:all .2s ease}.quick-fill-buttons button:hover{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.empty-savings-hint{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:1.5rem;background:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:var(--radius-md)}.empty-savings-hint svg{color:var(--text-muted)}.empty-savings-hint p{margin:0;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.linked-name-display{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-weight:500}.linked-name-display svg{color:var(--accent-green)}.modal textarea{width:100%;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:.95rem;resize:vertical;min-height:60px}.modal textarea:focus{outline:none;border-color:var(--accent-blue)}.modal textarea::placeholder{color:var(--text-muted)}.merge-mode-toggle{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.merge-mode-toggle h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.merge-options{display:flex;gap:.75rem}.merge-option{flex:1;display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.merge-option:hover{border-color:var(--accent-blue);background:var(--bg-tertiary)}.merge-option.active{border-color:var(--accent-blue);background:#3b82f61a}.merge-option input[type=radio]{display:none}.merge-option svg{color:var(--text-muted);flex-shrink:0;margin-top:.125rem}.merge-option.active svg{color:var(--accent-blue)}.merge-option div{display:flex;flex-direction:column;gap:.125rem}.merge-option strong{font-size:.875rem;font-weight:600;color:var(--text-primary)}.merge-option span{font-size:.75rem;color:var(--text-muted)}@media(max-width:480px){.merge-options{flex-direction:column}}.color-preset-grid{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.color-preset{width:32px;height:32px;border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.color-preset:hover{transform:scale(1.1)}.color-preset.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary)}.color-picker-input{width:32px;height:32px;padding:2px;border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:480px){.form-row{grid-template-columns:1fr}}.modal-footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.footer-actions{display:flex;gap:.75rem;margin-left:auto}.danger-text{color:var(--accent-red)!important}.danger-text:hover{background:#ef44441a!important}.modal-sm{max-width:400px}.form-group input.input-error,.form-group select.input-error,.form-group textarea.input-error{border-color:var(--accent-red);background:#ef44440d}.form-group input.input-error:focus,.form-group select.input-error:focus{box-shadow:0 0 0 3px #ef444426}.error-text{display:block;color:var(--accent-red);font-size:.8rem;margin-top:.35rem}.form-hint{font-size:.8rem;color:var(--text-muted)}.db-health-result{padding:1rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.db-health-result.healthy{background:#10b9811a;border-color:#10b9814d}.db-health-result.unhealthy{background:#ef44441a;border-color:#ef44444d}.db-health-status{display:flex;align-items:center;gap:.5rem;font-weight:600;margin-bottom:.5rem}.db-health-result.healthy .db-health-status{color:var(--accent-green)}.db-health-result.unhealthy .db-health-status{color:var(--accent-red)}.db-size{font-size:.85rem;color:var(--text-secondary)}.db-error{font-size:.85rem;color:var(--accent-red);margin-top:.5rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:var(--radius-md);font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.btn-primary{background:var(--gradient-green);color:#fff;box-shadow:0 4px 15px #10b9814d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #10b98166}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-ghost:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-light)}.btn-sm{padding:.4rem .75rem;font-size:.8rem}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.summary-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:all .3s ease}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.summary-card.income .card-icon{background:var(--gradient-green);box-shadow:0 4px 15px #10b9814d}.summary-card.paycheck .card-icon{background:var(--gradient-blue);box-shadow:0 4px 15px #3b82f64d}.summary-card.remaining .card-icon{background:var(--gradient-purple);box-shadow:0 4px 15px #8b5cf64d}.summary-card.spent .card-icon{background:var(--gradient-orange);box-shadow:0 4px 15px #f59e0b4d}.summary-card.yearly-total .card-icon{background:var(--gradient-blue);box-shadow:0 4px 15px #3b82f64d}.summary-card.yearly-avg .card-icon{background:var(--gradient-green);box-shadow:0 4px 15px #10b9814d}.card-content{display:flex;flex-direction:column;gap:.25rem}.card-label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.card-value{font-family:Space Mono,monospace;font-size:1.35rem;font-weight:700;color:var(--text-primary)}.card-value.negative{color:var(--accent-red)}.card-value.positive{color:var(--accent-green)}.card-value.warning{color:var(--accent-orange)}.chart-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem}.chart-card.wide{grid-column:1 / -1}.chart-card h3{font-size:1.1rem;margin-bottom:1rem;color:var(--text-primary)}.chart-description{font-size:.9rem;color:var(--text-muted);margin-bottom:1rem}.chart-container{margin:0 -.5rem}.chart-tooltip{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem 1rem;box-shadow:var(--shadow-lg)}.tooltip-label{font-size:.8rem;color:var(--text-secondary);margin-bottom:.25rem}.tooltip-value{font-family:Space Mono,monospace;font-weight:700;color:var(--text-primary)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state.small{padding:2rem}.empty-state svg{margin-bottom:1rem;opacity:.5}.empty-state p{max-width:300px;margin:0 auto}.hint{font-size:.8rem;color:var(--text-muted);margin-top:.5rem}.hint.positive{color:var(--accent-green)}.hint.negative{color:var(--accent-red)}.recharts-legend-item-text{color:var(--text-secondary)!important}.recharts-default-tooltip{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-md)!important}@media(max-width:960px){.summary-cards{grid-template-columns:1fr 1fr}}@media(max-width:480px){.summary-cards{grid-template-columns:1fr}.card-value{font-size:1.15rem}}.error-fallback{display:flex;align-items:center;justify-content:center;min-height:300px;padding:2rem}.error-fallback-content{text-align:center;max-width:400px}.error-fallback .error-icon{color:var(--accent-orange);margin-bottom:1rem}.error-fallback h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:.5rem}.error-fallback p{color:var(--text-secondary);margin-bottom:1.5rem}.error-fallback .error-details{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;margin-bottom:1.5rem;text-align:left}.error-fallback .error-details summary{cursor:pointer;color:var(--text-muted);font-size:.85rem;margin-bottom:.5rem}.error-fallback .error-details code{display:block;font-family:Space Mono,monospace;font-size:.8rem;color:var(--accent-red);word-break:break-all}.view-loading{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--text-secondary);gap:.75rem}.view-loading .spin{animation:spin 1s linear infinite}
