.toast-container{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:1100;max-width:400px}.toast{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius);background-color:var(--bg-primary);border-left:4px solid;box-shadow:0 4px 12px var(--shadow-color);animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-success{border-left-color:var(--accent-success)}.toast-success .toast-icon{color:var(--accent-success)}.toast-error{border-left-color:var(--accent-danger)}.toast-error .toast-icon{color:var(--accent-danger)}.toast-warning{border-left-color:var(--accent-warning)}.toast-warning .toast-icon{color:var(--accent-warning)}.toast-info{border-left-color:var(--accent-info)}.toast-info .toast-icon{color:var(--accent-info)}.toast-icon{font-size:var(--font-size-lg);font-weight:700;flex-shrink:0}.toast-message{flex:1;color:var(--text-primary);font-size:var(--font-size-sm)}.toast-close{background:none;border:none;font-size:var(--font-size-lg);color:var(--text-secondary);cursor:pointer;padding:0;line-height:1;flex-shrink:0;transition:color var(--transition-fast)}.toast-close:hover{color:var(--text-primary)}@media (max-width: 768px){.toast-container{left:var(--spacing-md);right:var(--spacing-md);bottom:var(--spacing-md);max-width:none}}.account-balance-card{background:linear-gradient(135deg,#1a365d,#2d3748);border-radius:var(--border-radius);padding:1.5rem;color:#fff;position:relative;overflow:hidden;min-height:140px;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f}.account-balance-card:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);pointer-events:none}.account-balance-card.positive{background:linear-gradient(135deg,#1a365d,#234e52)}.account-balance-card.negative{background:linear-gradient(135deg,#742a2a,#2d3748)}.account-balance-card.no-data{background:linear-gradient(135deg,#4a5568,#2d3748);flex-direction:row;align-items:center;gap:1rem}.account-balance-card.loading{background:linear-gradient(135deg,#4a5568,#2d3748);display:flex;align-items:center;justify-content:center}.balance-shimmer{width:60%;height:2rem;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.balance-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.balance-icon{width:40px;height:40px;background:#ffffff26;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.balance-icon svg{width:24px;height:24px;stroke:#fff}.status-indicator{display:flex;align-items:center;gap:.5rem;background:#ffffff1a;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-success);animation:pulse 2s infinite}.account-balance-card.negative .status-dot{background:var(--accent-danger)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.status-text{font-weight:500}.balance-content{flex:1;display:flex;flex-direction:column}.balance-content h3{font-size:.875rem;font-weight:500;margin:0 0 .5rem;opacity:.8;text-transform:uppercase;letter-spacing:.5px}.balance-amount{font-size:2rem;font-weight:700;margin:0 0 .5rem;letter-spacing:-.5px}.account-balance-card.positive .balance-amount{color:#9ae6b4}.account-balance-card.negative .balance-amount{color:#feb2b2}.balance-date{font-size:.75rem;opacity:.7;margin:auto 0 0}.no-data-message{font-size:.875rem;opacity:.7;margin:0}.account-balance-card.no-data .balance-icon{width:48px;height:48px}.account-balance-card.no-data .balance-icon svg{width:28px;height:28px;opacity:.6}.account-balance-card.no-data .balance-content h3{margin-bottom:.25rem}@media (max-width: 768px){.account-balance-card{padding:1.25rem;min-height:120px}.balance-amount{font-size:1.75rem}.balance-icon{width:36px;height:36px}.balance-icon svg{width:20px;height:20px}}.health-score-card{background:var(--card-bg);border-radius:var(--border-radius);padding:var(--spacing-lg);border:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center}.health-score-card h3{margin-bottom:var(--spacing-md);color:var(--text-primary)}.health-score-card.loading{min-height:200px;justify-content:center;color:var(--text-secondary)}.score-circle{position:relative;width:120px;height:120px}.score-circle svg{width:100%;height:100%}.score-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--font-size-3xl);font-weight:700;color:var(--text-primary)}.recommendation{margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center}.health-score-card-ml{background:var(--bg-secondary, #f8f9fa);border-radius:var(--border-radius, 8px);padding:1.5rem;box-shadow:0 2px 4px #0000001a}.health-score-card-ml.loading,.health-score-card-ml.error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem}.health-score-card-ml .error-message{color:var(--accent-danger, #dc3545);text-align:center}.health-score-card-ml .score-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.health-score-card-ml h3{margin:0;font-size:1.25rem;color:var(--text-primary, #212529)}.health-score-card-ml .save-snapshot-btn{background:none;border:1px solid var(--border-color, #dee2e6);border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:1rem;transition:background-color .15s ease}.health-score-card-ml .save-snapshot-btn:hover:not(:disabled){background:var(--bg-hover, #e9ecef)}.health-score-card-ml .save-snapshot-btn:disabled{opacity:.5;cursor:not-allowed}.health-score-card-ml .score-main{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem}.health-score-card-ml .score-circle{width:100px;height:100px;border-radius:50%;border:4px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-secondary)}.health-score-card-ml .score-value{font-size:2rem;font-weight:700;line-height:1}.health-score-card-ml .grade{font-size:1.25rem;font-weight:600}.health-score-card-ml .score-trend{display:flex;flex-direction:column;align-items:center;gap:.25rem}.health-score-card-ml .score-trend.improving{color:var(--accent-success, #28a745)}.health-score-card-ml .score-trend.declining{color:var(--accent-danger, #dc3545)}.health-score-card-ml .score-trend.stable{color:var(--text-secondary, #6c757d)}.health-score-card-ml .trend-icon{font-size:1.5rem;font-weight:700}.health-score-card-ml .trend-value{font-size:1.125rem;font-weight:600}.health-score-card-ml .trend-label{font-size:.75rem;text-transform:uppercase}.health-score-card-ml .component-scores{margin-bottom:1rem}.health-score-card-ml .component-scores h4{font-size:.875rem;color:var(--text-secondary, #6c757d);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.health-score-card-ml .component-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.health-score-card-ml .component-name{width:80px;font-size:.875rem;color:var(--text-secondary, #6c757d)}.health-score-card-ml .component-bar-container{flex:1;height:8px;background:var(--bg-tertiary, #e9ecef);border-radius:4px;overflow:hidden}.health-score-card-ml .component-bar{height:100%;border-radius:4px;transition:width .3s ease}.health-score-card-ml .component-value{width:30px;text-align:right;font-size:.875rem;font-weight:600}.health-score-card-ml .expand-btn{display:block;width:100%;padding:.5rem;background:none;border:1px solid var(--border-color, #dee2e6);border-radius:4px;cursor:pointer;font-size:.875rem;color:var(--accent-primary, #282c34);margin-bottom:1rem;transition:background-color .15s ease}.health-score-card-ml .expand-btn:hover{background:var(--bg-hover, #e9ecef)}.health-score-card-ml .expanded-details{padding-top:1rem;border-top:1px solid var(--border-color, #dee2e6)}.health-score-card-ml .feature-contributions{margin-bottom:1.5rem}.health-score-card-ml .feature-contributions h4{font-size:.875rem;color:var(--text-secondary, #6c757d);margin:0 0 .75rem}.health-score-card-ml .contribution-row{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:4px;margin-bottom:.25rem}.health-score-card-ml .contribution-row.positive{background:#28a7451a}.health-score-card-ml .contribution-row.negative{background:#dc35451a}.health-score-card-ml .contribution-row.neutral{background:#6c757d1a}.health-score-card-ml .contribution-name{flex:1;font-size:.875rem}.health-score-card-ml .contribution-impact{width:24px;text-align:center;font-weight:600}.health-score-card-ml .contribution-row.positive .contribution-impact{color:var(--accent-success, #28a745)}.health-score-card-ml .contribution-row.negative .contribution-impact{color:var(--accent-danger, #dc3545)}.health-score-card-ml .contribution-value{font-size:.875rem;font-weight:600}.health-score-card-ml .insights-section{margin-bottom:1.5rem}.health-score-card-ml .insight-group{margin-bottom:1rem}.health-score-card-ml .insight-group h5{font-size:.75rem;color:var(--text-secondary, #6c757d);margin:0 0 .5rem;text-transform:uppercase}.health-score-card-ml .insight-item{display:flex;gap:.75rem;padding:.75rem;border-radius:4px;margin-bottom:.5rem}.health-score-card-ml .insight-group.positive .insight-item{background:#28a7451a}.health-score-card-ml .insight-group.negative .insight-item{background:#dc35451a}.health-score-card-ml .insight-group.recommendations .insight-item{background:#007bff1a}.health-score-card-ml .insight-icon{font-weight:700;font-size:1rem}.health-score-card-ml .insight-group.positive .insight-icon{color:var(--accent-success, #28a745)}.health-score-card-ml .insight-group.negative .insight-icon{color:var(--accent-danger, #dc3545)}.health-score-card-ml .insight-group.recommendations .insight-icon{color:var(--accent-primary, #007bff)}.health-score-card-ml .insight-item strong{display:block;font-size:.875rem;margin-bottom:.25rem}.health-score-card-ml .insight-item p{font-size:.8125rem;color:var(--text-secondary, #6c757d);margin:0}.health-score-card-ml .metrics-summary h4{font-size:.875rem;color:var(--text-secondary, #6c757d);margin:0 0 .75rem}.health-score-card-ml .metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.health-score-card-ml .metric-item{display:flex;flex-direction:column;gap:.25rem}.health-score-card-ml .metric-label{font-size:.75rem;color:var(--text-secondary, #6c757d)}.health-score-card-ml .metric-value{font-size:1.125rem;font-weight:600}.health-score-card-ml .period-info{font-size:.75rem;color:var(--text-secondary, #6c757d);text-align:center;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color, #dee2e6)}@media (max-width: 480px){.health-score-card-ml .score-main{flex-direction:column;text-align:center}.health-score-card-ml .metrics-grid{grid-template-columns:1fr}}.insight-card{background:var(--card-bg);border-radius:var(--border-radius);padding:var(--spacing-md);border:1px solid var(--border-color);display:flex;gap:var(--spacing-md);align-items:flex-start}.insight-icon{font-size:var(--font-size-2xl);flex-shrink:0}.insight-content{flex:1;min-width:0}.insight-content h4{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.insight-content p{font-size:var(--font-size-base);color:var(--text-primary);margin:0}.change{font-size:var(--font-size-sm);font-weight:500;margin-top:var(--spacing-xs);display:inline-block}.change.positive{color:var(--accent-success)}.change.negative{color:var(--accent-danger)}.recent-transactions{background:var(--card-bg);border-radius:var(--border-radius);padding:var(--spacing-lg);border:1px solid var(--border-color)}.recent-transactions h3{margin-bottom:var(--spacing-md);color:var(--text-primary)}.recent-transactions.loading,.recent-transactions.empty{min-height:150px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.recent-transactions ul{list-style:none;padding:0;margin:0}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color)}.txn-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.txn-description{color:var(--text-primary);font-size:var(--font-size-base)}.txn-date{color:var(--text-secondary);font-size:var(--font-size-sm)}.txn-amount{font-weight:600;font-size:var(--font-size-base)}.txn-amount.income{color:var(--accent-success)}.txn-amount.expense{color:var(--accent-danger)}.alerts-panel{background:var(--card-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:1.5rem}.alerts-panel.loading,.alerts-panel.error{min-height:200px}.alerts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.alerts-header h3{margin:0;color:var(--text-primary)}.alert-badges{display:flex;gap:.5rem}.badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600}.badge.high{background:#dc35451a;color:#dc3545}.badge.medium{background:#ffc1071a;color:#d39e00}.badge.low{background:#17a2b81a;color:#17a2b8}.alerts-loading,.alerts-error{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-secondary)}.no-alerts{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.no-alerts-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#28a7451a;color:var(--accent-success);border-radius:50%;font-size:1.5rem;margin-bottom:.75rem}.no-alerts-text{color:var(--text-secondary);font-size:.875rem}.alerts-list{display:flex;flex-direction:column;gap:.75rem}.alert-card{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius);border-left:4px solid}.alert-card.high{border-left-color:#dc3545}.alert-card.medium{border-left-color:#ffc107}.alert-card.low{border-left-color:#17a2b8}.alert-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1rem;flex-shrink:0}.alert-content{flex:1;min-width:0}.alert-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}.alert-title{font-weight:600;color:var(--text-primary)}.alert-type{font-size:.625rem;padding:.125rem .375rem;background:var(--bg-primary);color:var(--text-secondary);border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.alert-message{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.alert-details{font-size:.75rem;background:var(--bg-primary);border-radius:4px;padding:.5rem}.details-label{color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;color:var(--text-primary)}.detail-item+.detail-item{border-top:1px solid var(--border-color)}.deficit,.overrun,.spike{font-weight:600;color:var(--accent-danger)}.detail-tip{display:flex;align-items:flex-start;gap:.375rem;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border-color);color:var(--text-secondary);font-style:italic}.detail-tip .tip-icon{flex-shrink:0}@media (max-width: 768px){.alerts-header{flex-direction:column;align-items:flex-start;gap:.5rem}.alert-card{flex-direction:column;gap:.5rem}.alert-icon{width:24px;height:24px;font-size:.875rem}}.savings-opportunities{background:var(--card-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:1.5rem}.savings-opportunities.loading,.savings-opportunities.error{min-height:300px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h3{margin:0;color:var(--text-primary)}.total-savings{text-align:right}.total-label{display:block;font-size:.75rem;color:var(--text-secondary);margin-bottom:.25rem}.total-value{font-size:1.25rem;font-weight:700;color:var(--accent-success)}.loading-state,.error-state{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--text-secondary)}.savings-summary{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:linear-gradient(135deg,#28a7451a,#28a7450d);border-radius:var(--border-radius);border:1px solid rgba(40,167,69,.2);margin-bottom:1.5rem}.summary-icon{font-size:1.5rem;flex-shrink:0}.summary-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.summary-text{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.summary-text strong{color:var(--accent-success)}.no-opportunities{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.no-opportunities-icon{font-size:2rem;margin-bottom:.75rem}.no-opportunities-text{color:var(--text-secondary);font-size:.875rem;max-width:300px}.opportunities-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.opportunity-card{background:var(--bg-secondary);border-radius:var(--border-radius);border:1px solid var(--border-color);overflow:hidden;transition:box-shadow .2s ease}.opportunity-card:hover{box-shadow:0 4px 12px var(--shadow-color)}.opportunity-header{display:flex;align-items:center;gap:1rem;padding:1rem;cursor:pointer}.opportunity-icon{font-size:1.5rem;flex-shrink:0}.opportunity-info{flex:1;min-width:0}.opportunity-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.opportunity-description{font-size:.75rem;color:var(--text-secondary)}.opportunity-savings{display:flex;gap:1rem;text-align:right}.savings-monthly,.savings-annual{display:flex;flex-direction:column}.savings-label{font-size:.625rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.savings-value{font-weight:600;color:var(--text-primary)}.savings-value.highlight{color:var(--accent-success);font-size:1.125rem}.expand-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;font-size:.75rem}.opportunity-details{padding:1rem;border-top:1px solid var(--border-color);background:var(--bg-primary)}.items-table{font-size:.875rem;width:100%}.items-table .table-header,.items-table .table-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;padding:.5rem 0;align-items:center}.items-table .table-header{border-bottom:1px solid var(--border-color);font-weight:600;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.items-table .table-header span:first-child{text-align:left}.items-table .table-header span:not(:first-child){text-align:right}.items-table .table-row{padding:.75rem 0;border-bottom:1px solid var(--border-color)}.items-table .table-header:has(span:nth-child(4)),.items-table .table-row:has(span:nth-child(4)){grid-template-columns:2fr 1fr 1fr 1fr}.items-table .table-row:last-child{border-bottom:none}.item-name{color:var(--text-primary);text-transform:capitalize;text-align:left}.item-value{text-align:right;color:var(--text-primary)}.item-value.muted{color:var(--text-secondary)}.item-value.growth{color:var(--accent-danger);font-weight:600}.savings-tips{margin-top:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--border-radius)}.savings-tips h4{margin:0 0 .75rem;font-size:.875rem;color:var(--text-primary)}.savings-tips ul{margin:0;padding-left:1.25rem}.savings-tips li{font-size:.75rem;color:var(--text-secondary);margin-bottom:.5rem;line-height:1.4}.savings-tips li:last-child{margin-bottom:0}@media (max-width: 768px){.section-header{flex-direction:column;align-items:flex-start;gap:1rem}.total-savings{text-align:left}.opportunity-header{flex-wrap:wrap}.opportunity-savings{width:100%;justify-content:space-between;margin-top:.5rem}.items-table .table-header,.items-table .table-row{grid-template-columns:1fr 1fr}.items-table .table-header span:nth-child(n+3),.items-table .table-row span:nth-child(n+3){display:none}}.anomaly-alerts{background:var(--bg-secondary, #f8f9fa);border-radius:var(--border-radius, 8px);padding:1.25rem;height:100%;display:flex;flex-direction:column}.anomaly-alerts.loading,.anomaly-alerts.error{min-height:200px}.anomaly-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.anomaly-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary, #212529)}.anomaly-badge{background:#dc35451a;color:#dc3545;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.anomaly-loading,.anomaly-error{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted, #6c757d);font-size:.875rem}.no-anomalies{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;padding:2rem 1rem}.no-anomalies-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#28a7451a;color:#28a745;border-radius:50%;font-size:1.5rem;margin-bottom:1rem}.no-anomalies-text{color:var(--text-muted, #6c757d);font-size:.875rem}.anomaly-list{flex:1;display:flex;flex-direction:column;gap:.75rem}.anomaly-item{display:flex;gap:.75rem;padding:.75rem;background:var(--card-bg);border-radius:6px;border-left:3px solid}.anomaly-item.high{border-left-color:#dc3545}.anomaly-item.medium{border-left-color:#ffc107}.anomaly-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-weight:600;flex-shrink:0}.anomaly-item.high .anomaly-icon{background:#dc35451a;color:#dc3545}.anomaly-item.medium .anomaly-icon{background:#ffc10726;color:#d39e00}.anomaly-content{flex:1;min-width:0}.anomaly-header{display:flex;justify-content:space-between;margin-bottom:.25rem}.anomaly-amount{font-weight:600;color:var(--text-primary, #212529)}.anomaly-date{font-size:.75rem;color:var(--text-muted, #6c757d)}.anomaly-description{font-size:.8125rem;color:var(--text-secondary, #495057);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.25rem}.anomaly-meta{display:flex;justify-content:space-between;font-size:.75rem}.anomaly-category{color:var(--text-muted, #6c757d);text-transform:capitalize}.anomaly-score{color:var(--text-muted, #6c757d);font-family:monospace}.anomaly-more{text-align:center;font-size:.8125rem;color:var(--accent-primary, #007bff);cursor:pointer;padding:.5rem}.anomaly-footer{display:flex;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color, #dee2e6)}.anomaly-review{display:flex;gap:.5rem;margin-top:.5rem;align-items:center}.anomaly-review-btn{padding:.125rem .5rem;font-size:.75rem;border-radius:var(--border-radius, 8px);border:1px solid var(--border-color, #dee2e6);background:transparent;cursor:pointer;transition:opacity .15s ease}.anomaly-review-btn.real{color:var(--accent-danger, #dc3545);border-color:var(--accent-danger, #dc3545)}.anomaly-review-btn.false{color:var(--text-muted, #6c757d)}.anomaly-review-btn:hover:not(:disabled){opacity:.75}.anomaly-review-btn:disabled{opacity:.5;cursor:not-allowed}.anomaly-reviewed{font-size:.75rem;color:var(--accent-success, #28a745)}.upcoming-bills{background:var(--bg-secondary);border-radius:var(--border-radius);padding:1.5rem;margin-bottom:1rem}.upcoming-bills__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.upcoming-bills__header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.upcoming-bills__header .period{font-size:.8rem;color:var(--text-secondary)}.upcoming-bills__summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem;padding:.75rem;background:var(--bg-primary);border-radius:var(--border-radius)}.upcoming-bills__summary .summary-item{text-align:center;padding:.5rem}.upcoming-bills__summary .summary-item.expenses{border-left:3px solid var(--accent-danger)}.upcoming-bills__summary .summary-item.income{border-left:3px solid var(--accent-success)}.upcoming-bills__summary .summary-item.net{border-left:3px solid var(--accent-primary)}.upcoming-bills__summary .label{display:block;font-size:.65rem;color:var(--text-secondary);text-transform:uppercase;margin-bottom:.25rem}.upcoming-bills__summary .value{font-size:1rem;font-weight:600;color:var(--text-primary)}.upcoming-bills__summary .value.positive{color:var(--accent-success)}.upcoming-bills__summary .value.negative{color:var(--accent-danger)}.upcoming-bills__timeline{position:relative}.upcoming-bills__timeline:before{content:"";position:absolute;left:18px;top:0;bottom:0;width:2px;background:var(--border-color)}.timeline-item{display:flex;gap:1rem;margin-bottom:.75rem;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-marker{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;border:2px solid var(--bg-secondary)}.timeline-marker.urgent{background:var(--accent-danger);color:#fff}.timeline-marker.soon{background:#ffc107;color:#333}.timeline-marker.later{background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-color)}.timeline-marker .days{font-size:.75rem;font-weight:600}.timeline-content{flex:1;background:var(--bg-primary);border-radius:var(--border-radius);padding:.75rem;border:1px solid var(--border-color)}.timeline-item.income .timeline-content{border-left:3px solid var(--accent-success)}.timeline-item.expense .timeline-content{border-left:3px solid var(--accent-danger)}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.25rem}.timeline-header .description{font-weight:500;color:var(--text-primary);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.timeline-header .amount{font-weight:600;font-size:.95rem}.timeline-header .amount.positive{color:var(--accent-success)}.timeline-header .amount.negative{color:var(--accent-danger)}.timeline-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.7rem;color:var(--text-secondary)}.timeline-meta .date{color:var(--text-primary)}.timeline-meta .days-label{color:var(--accent-primary)}.timeline-meta .category{background:var(--bg-secondary);padding:.1rem .4rem;border-radius:4px}.timeline-meta .confidence{opacity:.7}.upcoming-bills__more{text-align:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.85rem}.upcoming-bills__loading,.upcoming-bills__empty{text-align:center;padding:2rem;color:var(--text-secondary)}@media (max-width: 600px){.upcoming-bills{padding:1rem}.upcoming-bills__summary{grid-template-columns:1fr;gap:.5rem}.timeline-header{flex-direction:column}.timeline-header .description{max-width:100%}}.dashboard{padding:var(--spacing-md) 0}.dashboard h2{font-size:var(--font-size-2xl);color:var(--text-primary);margin-bottom:var(--spacing-lg)}.dashboard-balance-row{margin-bottom:var(--spacing-lg);max-width:400px}.dashboard-top-row{display:grid;grid-template-columns:minmax(300px,500px) 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.health-scores-container{display:flex;flex-direction:column;gap:var(--spacing-md)}.insights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.insights-loading,.no-insights{grid-column:1 / -1;background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.summary-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);box-shadow:0 2px 4px var(--shadow-color);transition:box-shadow var(--transition-fast),background-color var(--transition-normal)}.summary-card:hover{box-shadow:0 4px 8px var(--shadow-color)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.summary-card h3{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);margin:0;text-transform:uppercase;letter-spacing:.5px}.summary-card .amount{font-size:var(--font-size-2xl);font-weight:700;margin:0}.summary-card.income .amount{color:var(--accent-success)}.summary-card.expenses .amount{color:var(--accent-danger)}.summary-card.balance .amount{color:var(--text-primary)}.summary-card.balance .amount.positive{color:var(--accent-success)}.summary-card.balance .amount.negative{color:var(--accent-danger)}.sparkline-container{margin-top:var(--spacing-sm)}@media (max-width: 1024px){.dashboard-top-row{grid-template-columns:1fr}.health-scores-container{flex-direction:row;flex-wrap:wrap}.health-scores-container>*{flex:1;min-width:250px}.insights-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.summary-grid,.insights-grid{grid-template-columns:1fr}.summary-card .amount{font-size:var(--font-size-xl)}.card-header{flex-direction:column;gap:var(--spacing-xs)}}.date-snippets{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--border-color, #dee2e6)}.snippets-label{font-size:.75rem;color:var(--text-secondary, #6c757d);font-weight:500}.snippets-list{display:flex;flex-wrap:wrap;gap:.375rem}.snippet-button{padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--border-color, #dee2e6);border-radius:12px;background-color:var(--bg-secondary, #f8f9fa);color:var(--text-primary, #212529);cursor:pointer;transition:all .15s ease;white-space:nowrap}.snippet-button:hover,.snippet-button.active{background-color:var(--accent-primary, #282c34);color:#fff;border-color:var(--accent-primary, #282c34)}[data-theme=dark] .snippet-button{background-color:var(--bg-tertiary, #374151);border-color:var(--border-color, #4b5563);color:var(--text-primary, #f9fafb)}[data-theme=dark] .snippet-button:hover,[data-theme=dark] .snippet-button.active{background-color:var(--accent-primary, #3b82f6);border-color:var(--accent-primary, #3b82f6)}@media (max-width: 768px){.date-snippets{margin-top:.75rem}.snippets-list{gap:.25rem}.snippet-button{font-size:.7rem;padding:.2rem .4rem}}.transaction-filters{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.filters-header h3{margin:0;font-size:var(--font-size-xl);color:var(--text-primary)}.filters-actions{display:flex;gap:var(--spacing-sm);align-items:center}.clear-filters-button{background:var(--text-secondary);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:opacity var(--transition-fast)}.clear-filters-button:hover{opacity:.9}.apply-filters-button{background:var(--accent-primary);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;transition:all var(--transition-fast)}.apply-filters-button:hover:not(:disabled){opacity:.9}.apply-filters-button:disabled{background:var(--text-secondary);opacity:.5;cursor:not-allowed}.apply-filters-button.has-changes{background:var(--accent-success);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #28a74566}50%{box-shadow:0 0 0 8px #28a74500}}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group-full{grid-column:1 / -1}.filter-group label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.filter-input,.filter-select{padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);transition:border-color var(--transition-fast)}.filter-input:focus,.filter-select:focus{outline:none;border-color:var(--accent-primary)}.filter-input::placeholder{color:var(--text-secondary)}.categories-filter{margin-top:var(--spacing-md)}.categories-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);font-weight:500;color:var(--text-primary);transition:background-color var(--transition-fast)}.categories-toggle:hover{background:var(--border-color)}.toggle-icon{font-size:var(--font-size-xs);transition:transform var(--transition-fast)}.toggle-icon.open{transform:rotate(-180deg)}.categories-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);max-height:300px;overflow-y:auto}.category-checkbox{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--border-radius);transition:background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.category-checkbox:hover{background:var(--bg-primary)}.category-checkbox input[type=checkbox]{cursor:pointer;width:16px;height:16px}.category-checkbox span{font-size:var(--font-size-sm);color:var(--text-primary)}@media (max-width: 768px){.filters-grid,.categories-list{grid-template-columns:1fr}.filters-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.filters-actions{width:100%;flex-direction:column}.clear-filters-button,.apply-filters-button{width:100%}}.transactions{padding:var(--spacing-md) 0}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.transactions-header h2{margin:0;font-size:var(--font-size-2xl);color:var(--text-primary)}.header-actions{display:flex;gap:var(--spacing-sm);align-items:center}.export-button{background:var(--accent-primary);color:#fff;border:none;padding:.625rem 1.25rem;border-radius:var(--border-radius);cursor:pointer;font-weight:500;transition:opacity var(--transition-fast)}.export-button:hover:not(:disabled){opacity:.9}.export-button:disabled{background:var(--text-secondary);opacity:.5;cursor:not-allowed}.upload-button{background:var(--accent-success);color:#fff;border:none;padding:.625rem 1.25rem;border-radius:var(--border-radius);cursor:pointer;font-weight:500;transition:opacity var(--transition-fast)}.upload-button:hover{opacity:.9}.upload-button.active{background:var(--text-secondary)}.transactions-table{width:100%;margin-top:var(--spacing-lg);border-collapse:collapse;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.transactions-table thead{background:var(--bg-secondary)}.transactions-table th{padding:var(--spacing-md);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color);text-transform:uppercase;font-size:var(--font-size-sm);letter-spacing:.5px}.transactions-table th.align-right{text-align:right}.transactions-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color var(--transition-fast)}.transactions-table tbody tr:last-child{border-bottom:none}.transactions-table tbody tr:hover{background-color:var(--bg-secondary)}.transactions-table td{padding:var(--spacing-md);color:var(--text-primary)}.transactions-table td.align-right{text-align:right}.transactions-table td.amount{font-weight:600;font-variant-numeric:tabular-nums}.transactions-table td.amount.income{color:var(--accent-success)}.transactions-table td.amount.expense{color:var(--accent-danger)}.loading{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.results-summary{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--border-radius);font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding:var(--spacing-md)}.pagination-button{padding:var(--spacing-sm) var(--spacing-lg);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;font-weight:500;transition:opacity var(--transition-fast)}.pagination-button:hover:not(:disabled){opacity:.9}.pagination-button:disabled{background:var(--text-secondary);opacity:.5;cursor:not-allowed}.pagination-info{font-size:var(--font-size-base);color:var(--text-primary);font-weight:500}.empty-state{text-align:center;padding:var(--spacing-2xl);background:var(--bg-secondary);border-radius:var(--border-radius);margin-top:var(--spacing-lg)}.empty-state p{margin:0;color:var(--text-secondary);font-size:var(--font-size-base)}@media (max-width: 1024px){.transactions-table th:nth-child(4),.transactions-table td:nth-child(4){max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width: 768px){.transactions-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.header-actions{flex-direction:column;width:100%}.export-button,.upload-button{width:100%}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--spacing-md));padding:0 var(--spacing-md)}.transactions-table{font-size:var(--font-size-sm);min-width:600px}.transactions-table th,.transactions-table td{padding:var(--spacing-sm)}.transactions-table th:nth-child(4),.transactions-table td:nth-child(4){max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-summary{font-size:var(--font-size-xs);text-align:center}.pagination{flex-direction:column;gap:var(--spacing-sm)}.pagination-button{width:100%}}@media (max-width: 375px){.transactions{padding:var(--spacing-sm) 0}.transactions-header h2{font-size:var(--font-size-xl)}.export-button,.upload-button{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}}.month-comparison-empty{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.month-comparison-empty p:first-child{font-size:var(--font-size-base);margin-bottom:var(--spacing-sm)}.month-comparison-empty-hint{font-size:var(--font-size-sm)}.month-comparison-tooltip{background-color:var(--bg-primary);padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:0 2px 8px var(--shadow-color)}.month-comparison-tooltip .tooltip-label{font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-size:var(--font-size-base)}.month-comparison-tooltip .tooltip-income{color:var(--accent-success);margin:var(--spacing-xs) 0;font-size:var(--font-size-sm)}.month-comparison-tooltip .tooltip-expenses{color:var(--accent-danger);margin:var(--spacing-xs) 0;font-size:var(--font-size-sm)}.month-comparison-tooltip .tooltip-balance{margin:var(--spacing-xs) 0;font-weight:600;border-top:1px solid var(--border-color);padding-top:var(--spacing-xs);font-size:var(--font-size-sm)}.month-comparison-tooltip .tooltip-balance.positive{color:var(--accent-success)}.month-comparison-tooltip .tooltip-balance.negative{color:var(--accent-danger)}.top-merchants-table-container{overflow-x:auto}.top-merchants-table{width:100%;border-collapse:collapse}.top-merchants-table thead tr{border-bottom:2px solid var(--border-color)}.top-merchants-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.top-merchants-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.top-merchants-table th.sortable:hover{background-color:var(--bg-secondary)}.top-merchants-table th.sortable.active{color:var(--accent-primary)}.top-merchants-table th.align-right{text-align:right}.top-merchants-table th.rank-column{width:50px;text-align:center}.top-merchants-table tbody tr{border-bottom:1px solid var(--bg-secondary);transition:background-color var(--transition-fast)}.top-merchants-table tbody tr:hover{background-color:var(--bg-secondary)}.top-merchants-table tbody tr:last-child{border-bottom:none}.top-merchants-table td{padding:var(--spacing-sm) var(--spacing-md);color:var(--text-primary);font-size:var(--font-size-base)}.top-merchants-table td.rank-column{text-align:center}.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background-color:var(--bg-tertiary);border-radius:50%;font-weight:600;font-size:var(--font-size-sm);color:var(--text-secondary)}.top-merchants-table tbody tr:nth-child(1) .rank-badge{background-color:gold;color:#333}.top-merchants-table tbody tr:nth-child(2) .rank-badge{background-color:silver;color:#333}.top-merchants-table tbody tr:nth-child(3) .rank-badge{background-color:#cd7f32;color:#fff}.top-merchants-table td.merchant-name{font-weight:500}.top-merchants-table td.total-spent{text-align:right;font-weight:600;color:var(--accent-danger)}.top-merchants-table td.transaction-count{text-align:right;color:var(--text-secondary)}.top-merchants-empty{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.top-merchants-empty p:first-child{font-size:var(--font-size-base);margin-bottom:var(--spacing-sm)}.top-merchants-empty-hint{font-size:var(--font-size-sm)}@media (max-width: 768px){.top-merchants-table th,.top-merchants-table td{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.rank-badge{width:24px;height:24px;font-size:var(--font-size-xs)}}.spending-forecast{background:var(--bg-secondary, #f8f9fa);border-radius:var(--border-radius, 8px);padding:1.25rem;height:100%;display:flex;flex-direction:column}.spending-forecast.loading,.spending-forecast.error{min-height:300px}.forecast-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.forecast-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary, #212529)}.target-month{font-size:.875rem;color:var(--accent-primary, #007bff);font-weight:500}.forecast-loading,.forecast-error{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted, #6c757d);font-size:.875rem;text-align:center;padding:2rem}.forecast-summary{display:grid;grid-template-columns:1fr auto auto;gap:1rem;padding:1rem;background:var(--card-bg);border-radius:6px;margin-bottom:1rem;align-items:center}.summary-total{display:flex;flex-direction:column}.summary-label{font-size:.75rem;color:var(--text-muted, #6c757d);margin-bottom:.25rem}.summary-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #212529)}.summary-change{display:flex;flex-direction:column;align-items:center;text-align:center}.change-value{font-size:1rem;font-weight:600}.change-value.increase{color:#dc3545}.change-value.decrease{color:#28a745}.change-label{font-size:.625rem;color:var(--text-muted, #6c757d)}.summary-confidence{display:flex;flex-direction:column;align-items:flex-end}.confidence-label{font-size:.625rem;color:var(--text-muted, #6c757d);margin-bottom:.125rem}.confidence-value{font-size:.875rem;font-weight:600;color:#28a745}.forecast-categories{flex:1}.categories-header{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--text-muted, #6c757d);text-transform:uppercase;letter-spacing:.5px;padding:0 .5rem;margin-bottom:.5rem}.category-forecast-item{display:grid;grid-template-columns:1fr auto;gap:.5rem;padding:.625rem .5rem;border-bottom:1px solid var(--border-color, #dee2e6)}.category-forecast-item:last-child{border-bottom:none}.forecast-category{display:flex;align-items:center;gap:.5rem}.category-name{font-size:.8125rem;color:var(--text-primary, #212529);text-transform:capitalize}.trend-indicator{font-size:.75rem;font-weight:600}.trend-indicator.increasing{color:#dc3545}.trend-indicator.decreasing{color:#28a745}.trend-indicator.stable{color:var(--text-muted, #6c757d)}.forecast-values{display:flex;flex-direction:column;align-items:flex-end}.forecast-predicted{font-size:.875rem;font-weight:600;color:var(--text-primary, #212529)}.forecast-change{font-size:.6875rem;color:var(--text-muted, #6c757d)}.forecast-change[data-change^="-"]{color:#28a745}.forecast-change:not([data-change^="-"]){color:#dc3545}.forecast-confidence{grid-column:1 / -1;height:3px;background:var(--border-color, #dee2e6);border-radius:2px;overflow:hidden}.confidence-bar{height:100%;background:linear-gradient(90deg,#28a745,#20c997);border-radius:2px;transition:width .3s ease}.forecast-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color, #dee2e6)}.data-note{font-size:.6875rem;color:var(--text-muted, #6c757d)}.ml-badge{font-size:.625rem;color:var(--text-muted, #6c757d);background:var(--bg-tertiary, #e9ecef);padding:.125rem .375rem;border-radius:4px}.cash-flow-forecast{background:var(--bg-secondary);border-radius:var(--border-radius);padding:1.5rem;margin-bottom:1rem}.cash-flow-forecast__header{margin-bottom:1rem}.cash-flow-forecast__title-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.cash-flow-forecast__title-row h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.cash-flow-forecast__days-selector{display:flex;gap:.25rem}.days-btn{padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);border-radius:4px;cursor:pointer;transition:all .15s ease}.days-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.days-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.cash-flow-forecast__model-info{display:flex;gap:1rem;font-size:.75rem;color:var(--text-secondary);margin-top:.5rem}.model-accuracy{color:var(--accent-success)}.cash-flow-forecast__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:1rem}.summary-card{background:var(--bg-primary);padding:.75rem;border-radius:var(--border-radius);text-align:center}.summary-label{display:block;font-size:.7rem;color:var(--text-secondary);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:1.1rem;font-weight:600}.cash-flow-forecast__chart{margin-bottom:1rem}.cash-flow-forecast__tooltip{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:.75rem;box-shadow:0 2px 8px #00000026}.tooltip-date{font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.tooltip-value{display:flex;justify-content:space-between;gap:1rem;font-size:.85rem;margin-bottom:.25rem}.tooltip-value .label{color:var(--text-secondary)}.tooltip-value .positive{color:var(--accent-success);font-weight:500}.tooltip-value .negative{color:var(--accent-danger);font-weight:500}.tooltip-salary{font-size:.75rem;color:var(--accent-success);margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-color)}.cash-flow-forecast__footer{display:flex;gap:1rem;justify-content:flex-end;font-size:.75rem;color:var(--text-secondary)}.model-stat{padding:.25rem .5rem;background:var(--bg-primary);border-radius:4px}.cash-flow-forecast__loading,.cash-flow-forecast__empty{text-align:center;padding:2rem;color:var(--text-secondary)}.cash-flow-forecast__train-btn{margin-top:1rem;padding:.5rem 1rem;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:.9rem;transition:opacity .15s ease}.cash-flow-forecast__train-btn:hover{opacity:.9}.cash-flow-forecast__train-btn:disabled{opacity:.5;cursor:not-allowed}.cash-flow-forecast__error{color:var(--accent-danger);margin-top:.5rem;font-size:.85rem}.cash-flow-forecast__success{color:var(--accent-success);margin-top:.5rem;font-size:.85rem}@media (max-width: 480px){.cash-flow-forecast{padding:1rem}.cash-flow-forecast__title-row{flex-direction:column;align-items:flex-start}.summary-card{padding:.5rem}.summary-value{font-size:1rem}}.spending-personality{background:var(--bg-secondary);border-radius:var(--border-radius);padding:1.5rem;margin-bottom:1rem}.spending-personality__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.spending-personality__header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.spending-personality__header .period{font-size:.8rem;color:var(--text-secondary)}.spending-personality__loading,.spending-personality__error{text-align:center;padding:2rem;color:var(--text-secondary)}.spending-personality__error .train-btn{margin-top:1rem;padding:.5rem 1rem;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:.9rem}.spending-personality__error .train-btn:hover{opacity:.9}.spending-personality__error .train-btn:disabled{opacity:.5;cursor:not-allowed}.personality-card{background:var(--bg-primary);border-radius:var(--border-radius);padding:1.25rem;border-left:4px solid var(--accent-primary);margin-bottom:1rem}.personality-main{display:flex;gap:1rem;align-items:flex-start}.personality-emoji{font-size:2.5rem;line-height:1}.personality-info{flex:1}.personality-type{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-primary)}.personality-description{margin:0 0 .75rem;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.personality-confidence{display:inline-flex;gap:.5rem;padding:.25rem .5rem;background:var(--bg-secondary);border-radius:4px;font-size:.8rem}.confidence-label{color:var(--text-secondary)}.confidence-value{color:var(--accent-success);font-weight:600}.secondary-personality{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color);font-size:.85rem;color:var(--text-secondary)}.secondary-emoji{font-size:1.25rem}.personality-insights{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.insights-section{background:var(--bg-primary);border-radius:var(--border-radius);padding:1rem}.insights-section h5{margin:0 0 .75rem;font-size:.9rem;color:var(--text-primary)}.insights-section.strengths h5{color:var(--accent-success)}.insights-section.opportunities h5{color:var(--accent-primary)}.insights-section ul{margin:0;padding-left:1.25rem}.insights-section li{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem;line-height:1.4}.insights-section li:last-child{margin-bottom:0}.details-toggle{width:100%;display:flex;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .15s ease}.details-toggle:hover{background:var(--bg-secondary);color:var(--text-primary)}.feature-analysis{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.feature-analysis h5{margin:0 0 1rem;font-size:.95rem;color:var(--text-primary)}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.feature-item{background:var(--bg-primary);border-radius:var(--border-radius);padding:.75rem}.feature-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.feature-label{font-size:.8rem;color:var(--text-secondary)}.feature-value{font-size:.9rem;font-weight:600;color:var(--text-primary)}.feature-bar{height:6px;background:var(--border-color);border-radius:3px;overflow:hidden;margin-bottom:.5rem}.feature-fill{height:100%;border-radius:3px;transition:width .3s ease}.feature-interpretation{margin:0;font-size:.75rem;color:var(--text-secondary);line-height:1.4}.personality-footer{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}@media (max-width: 768px){.spending-personality{padding:1rem}.personality-insights,.feature-grid{grid-template-columns:1fr}.personality-main{flex-direction:column;text-align:center}}.impulse-insights{background:var(--bg-secondary);border-radius:var(--border-radius);padding:1.5rem;margin-bottom:1rem}.impulse-insights__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.impulse-insights__header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.impulse-insights__header .period{font-size:.8rem;color:var(--text-secondary)}.impulse-insights__loading,.impulse-insights__error{text-align:center;padding:2rem;color:var(--text-secondary)}.impulse-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.summary-stat{background:var(--bg-primary);border-radius:var(--border-radius);padding:1rem;text-align:center}.summary-stat.highlight{border:1px solid #ffc107}.stat-label{display:block;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;margin-bottom:.5rem}.stat-value{display:block;font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.stat-value.warning{color:#ffc107}.stat-percent{font-size:.85rem;color:var(--text-secondary)}.stat-description{font-size:.75rem;color:var(--text-secondary)}.impulse-patterns{margin-bottom:1.5rem}.impulse-patterns h4{margin:0 0 1rem;font-size:.95rem;color:var(--text-primary)}.pattern-card{background:var(--bg-primary);border-radius:var(--border-radius);padding:1rem;margin-bottom:.75rem;border-left:3px solid var(--border-color)}.pattern-card.high{border-left-color:#dc3545}.pattern-card.medium{border-left-color:#ffc107}.pattern-card.low{border-left-color:#17a2b8}.pattern-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.severity-badge{font-size:.65rem;font-weight:600;padding:.2rem .5rem;border-radius:4px;text-transform:uppercase}.severity-badge.high{background:#dc354526;color:#dc3545}.severity-badge.medium{background:#ffc10726;color:#d39e00}.severity-badge.low{background:#17a2b826;color:#17a2b8}.savings-potential{font-size:.9rem;font-weight:600;color:var(--accent-success)}.pattern-description{margin:0 0 .5rem;font-size:.9rem;color:var(--text-primary)}.pattern-recommendation{margin:0;font-size:.8rem;color:var(--text-secondary);font-style:italic}.heatmap-section{margin-bottom:1rem}.heatmap-section h4{margin:0 0 1rem;font-size:.95rem;color:var(--text-primary)}.heatmap-container{background:var(--bg-primary);border-radius:var(--border-radius);padding:1rem}.heatmap-hours{display:flex;margin-left:40px;margin-bottom:.5rem}.hour-label{flex:1;font-size:.65rem;color:var(--text-secondary);text-align:center;min-width:calc((100% - 40px)/8)}.heatmap-grid{display:flex;flex-direction:column;gap:2px}.heatmap-row{display:flex;align-items:center;gap:4px}.day-label{width:36px;font-size:.7rem;color:var(--text-secondary);text-align:right;padding-right:4px}.heatmap-cells{display:flex;flex:1;gap:1px}.heatmap-cell{flex:1;height:20px;border-radius:2px;cursor:pointer;transition:transform .1s ease}.heatmap-cell:hover{transform:scale(1.2);z-index:1}.heatmap-legend{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.75rem;font-size:.7rem;color:var(--text-secondary)}.legend-gradient{width:100px;height:8px;border-radius:4px;background:linear-gradient(to right,#ffc10733,#ffc10780,#ff9800b3,#dc3545cc)}.transactions-toggle{width:100%;display:flex;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .15s ease;margin-bottom:1rem}.transactions-toggle:hover{background:var(--bg-secondary);color:var(--text-primary)}.toggle-arrow{transition:transform .2s ease}.toggle-arrow.open{transform:rotate(0)}.transaction-examples{margin-bottom:1rem}.transaction-group{background:var(--bg-primary);border-radius:var(--border-radius);padding:1rem;margin-bottom:.75rem}.transaction-group h5{margin:0 0 .75rem;font-size:.85rem;color:var(--text-primary)}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.transaction-item:last-child{border-bottom:none}.tx-info{flex:1;min-width:0}.tx-description{display:block;font-size:.85rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-category{font-size:.7rem;color:var(--text-secondary);text-transform:capitalize}.tx-details{display:flex;flex-direction:column;align-items:flex-end;margin-left:1rem}.tx-amount{font-size:.9rem;font-weight:600;color:var(--accent-danger)}.tx-time{font-size:.7rem;color:var(--text-secondary)}.impulse-footer{display:flex;justify-content:flex-end;padding-top:.75rem;border-top:1px solid var(--border-color)}.ml-badge{font-size:.7rem;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.5px}@media (max-width: 768px){.impulse-insights{padding:1rem}.impulse-summary{grid-template-columns:1fr}.heatmap-hours{display:none}.heatmap-cell{height:16px}}.scenario-builder{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.builder-section{margin-bottom:1.5rem}.builder-section:last-of-type{margin-bottom:1rem}.builder-section h4{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary);font-weight:600}.input-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.input-group label{display:flex;flex-direction:column;gap:.5rem}.input-group label>span{font-size:.8125rem;color:var(--text-secondary)}.input-with-suffix,.input-with-prefix{display:flex;align-items:stretch}.input-with-suffix input,.input-with-prefix input{flex:1;padding:.625rem .75rem;border:1px solid var(--border-color);font-size:.875rem;min-width:0}.input-with-suffix input{border-radius:6px 0 0 6px;border-right:none}.input-with-prefix input{border-radius:0 6px 6px 0;border-left:none}.input-with-suffix input:focus,.input-with-prefix input:focus{outline:none;border-color:var(--accent-primary)}.suffix,.prefix{display:flex;align-items:center;padding:0 .75rem;background:var(--bg-secondary);border:1px solid var(--border-color);font-size:.875rem;color:var(--text-secondary)}.suffix{border-radius:0 6px 6px 0}.prefix{border-radius:6px 0 0 6px}.hint{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.builder-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--border-color)}.reset-btn{padding:.625rem 1.25rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .15s ease}.reset-btn:hover:not(:disabled){background:var(--bg-secondary)}.reset-btn:disabled{opacity:.5;cursor:not-allowed}.simulate-btn{padding:.625rem 1.5rem;background:var(--accent-primary);border:none;border-radius:6px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.simulate-btn:hover:not(:disabled){opacity:.9}.simulate-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.input-group{grid-template-columns:1fr}.builder-actions{flex-direction:column-reverse}.builder-actions button{width:100%}}.impact-visualization{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.viz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.viz-header h3{margin:0;font-size:1.125rem;color:var(--text-primary)}.impact-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:1rem}.impact-badge.positive{background:#28a7451a;color:var(--accent-success)}.impact-badge.negative{background:#dc35451a;color:var(--accent-danger)}.impact-badge .vs-baseline{font-size:.75rem;font-weight:400;opacity:.8}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--bg-secondary);border-radius:8px;text-align:center}.stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.stat-value.positive{color:var(--accent-success)}.stat-value.negative{color:var(--accent-danger)}.stat-value.warning{color:var(--accent-warning, #f59e0b)}.stat-range,.stat-hint{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.chart-container{margin-bottom:1.5rem}.chart-container h4{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary)}.chart-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.legend-color{width:16px;height:4px;border-radius:2px}.legend-color.average{background:#3b82f6}.legend-color.range{background:#94a3b8;opacity:.5}.baseline-info{padding-top:1rem;border-top:1px solid var(--border-color)}.baseline-info h4{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary)}.baseline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.baseline-item{display:flex;flex-direction:column;gap:.25rem}.baseline-item .label{font-size:.75rem;color:var(--text-muted)}.baseline-item .value{font-size:1rem;font-weight:600;color:var(--text-primary)}.baseline-item .value.positive{color:var(--accent-success)}.baseline-item .value.negative{color:var(--accent-danger)}@media (max-width: 768px){.viz-header{flex-direction:column;align-items:flex-start}.stats-grid,.baseline-grid{grid-template-columns:repeat(2,1fr)}}.what-if-simulator{padding:1.5rem;max-width:1200px;margin:0 auto}.simulator-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.header-content h2{margin:0 0 .25rem;font-size:1.5rem;color:var(--text-primary)}.header-content .subtitle{margin:0;color:var(--text-secondary);font-size:.875rem}.header-controls{display:flex;align-items:center;gap:1rem}.months-selector{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.months-selector select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--card-bg);font-size:.875rem;cursor:pointer}.custom-btn{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .15s ease}.custom-btn:hover{background:var(--bg-tertiary)}.presets-section h3{font-size:1rem;margin:0 0 1rem;color:var(--text-secondary)}.presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.preset-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--card-bg);border:2px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:center}.preset-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.preset-card.active{border-color:var(--accent-primary);background:var(--accent-primary-light, #f0f9ff)}.preset-card:disabled{opacity:.6;cursor:not-allowed;transform:none}.preset-icon{font-size:2rem;margin-bottom:.5rem}.preset-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.preset-description{font-size:.75rem;color:var(--text-secondary);margin-bottom:.5rem}.preset-impact{font-size:.875rem;font-weight:600;padding:.25rem .5rem;border-radius:4px}.preset-impact.positive{color:var(--accent-success);background:#28a7451a}.preset-impact.negative{color:var(--accent-danger);background:#dc35451a}.simulation-loading{display:flex;flex-direction:column;align-items:center;padding:3rem;background:var(--card-bg);border-radius:12px;border:1px solid var(--border-color)}.simulation-loading .spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.simulation-loading p{margin-top:1rem;color:var(--text-secondary)}.empty-state,.insufficient-data{display:flex;flex-direction:column;align-items:center;padding:3rem;background:var(--bg-secondary);border-radius:12px;text-align:center}.empty-state .icon,.insufficient-data .icon{font-size:3rem;margin-bottom:1rem}.empty-state p,.insufficient-data p{margin:0;color:var(--text-secondary)}.loading{text-align:center;padding:2rem;color:var(--text-secondary)}@media (max-width: 768px){.simulator-header{flex-direction:column}.header-controls{width:100%;justify-content:space-between}.presets-grid{grid-template-columns:repeat(2,1fr)}}.purchase-timing-advisor{padding:1.5rem;max-width:1200px;margin:0 auto}.advisor-header{margin-bottom:1.5rem}.advisor-header h2{margin:0 0 .25rem;font-size:1.5rem;color:var(--text-primary)}.advisor-header .subtitle{margin:0;color:var(--text-secondary);font-size:.875rem}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}.recommendations-section{margin-bottom:2rem}.recommendations-section h3{font-size:1rem;margin:0 0 1rem;color:var(--text-secondary)}.recommendations-list{display:flex;flex-direction:column;gap:.75rem}.recommendation-card{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--card-bg);border-radius:8px;border-left:4px solid var(--border-color)}.recommendation-card.priority-high{border-left-color:var(--accent-success);background:#28a7450d}.recommendation-card.priority-medium{border-left-color:var(--accent-warning, #f59e0b);background:#f59e0b0d}.recommendation-card.priority-low{border-left-color:var(--accent-primary)}.rec-content h4{margin:0 0 .25rem;font-size:.9375rem;color:var(--text-primary)}.rec-content p{margin:0;font-size:.8125rem;color:var(--text-secondary)}.rec-savings{display:flex;flex-direction:column;align-items:flex-end;font-size:.75rem;color:var(--text-secondary)}.rec-savings .amount{font-size:1rem;font-weight:600;color:var(--accent-success)}.dow-section{margin-bottom:2rem;background:var(--card-bg);border-radius:12px;padding:1.5rem;border:1px solid var(--border-color)}.dow-section h3{font-size:1rem;margin:0 0 1.5rem;color:var(--text-secondary)}.dow-chart{display:flex;justify-content:space-between;align-items:flex-end;height:200px;gap:.5rem;padding-bottom:2rem}.dow-bar{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;position:relative}.bar-fill{width:100%;max-width:60px;background:linear-gradient(to top,#3b82f6,#60a5fa);border-radius:4px 4px 0 0;position:relative;transition:height .3s ease;display:flex;align-items:flex-start;justify-content:center}.dow-bar.best .bar-fill{background:linear-gradient(to top,#22c55e,#4ade80)}.dow-bar.worst .bar-fill{background:linear-gradient(to top,#ef4444,#f87171)}.bar-value{position:absolute;top:-24px;font-size:.6875rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.bar-label{position:absolute;bottom:-24px;font-size:.75rem;color:var(--text-secondary);font-weight:500}.badge{position:absolute;bottom:-48px;font-size:.625rem;padding:.125rem .375rem;border-radius:4px;font-weight:600}.best-badge{background:#22c55e33;color:#16a34a}.worst-badge{background:#ef444433;color:#dc2626}.dow-stats{display:flex;justify-content:center;gap:2rem;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}.dow-stats .stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.dow-stats .label{font-size:.75rem;color:var(--text-muted)}.dow-stats .value{font-size:1rem;font-weight:600;color:var(--text-primary)}.dow-stats .value.positive{color:var(--accent-success)}.dow-stats .value.negative{color:var(--accent-danger)}.monthly-section{margin-bottom:2rem}.monthly-section h3{font-size:1rem;margin:0 0 1rem;color:var(--text-secondary)}.period-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.period-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;text-align:center}.period-label{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.period-days{font-size:.75rem;color:var(--text-muted);margin-bottom:.75rem}.period-amount{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.period-daily{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.insights-section h3{font-size:1rem;margin:0 0 1rem;color:var(--text-secondary)}.insights-list{display:flex;flex-direction:column;gap:.75rem}.insight-card{padding:1rem 1.25rem;background:var(--card-bg);border-radius:8px;border:1px solid var(--border-color)}.insight-card.insight-success{border-color:var(--accent-success);background:#28a7450d}.insight-card.insight-warning{border-color:var(--accent-warning, #f59e0b);background:#f59e0b0d}.insight-card.insight-info{border-color:var(--accent-primary);background:#3b82f60d}.insight-card h4{margin:0 0 .5rem;font-size:.9375rem;color:var(--text-primary)}.insight-card p{margin:0;font-size:.8125rem;color:var(--text-secondary)}.insight-rec{margin-top:.5rem!important;font-style:italic}@media (max-width: 768px){.period-cards{grid-template-columns:1fr}.dow-stats{flex-wrap:wrap;gap:1rem}.recommendation-card{flex-direction:column;align-items:flex-start;gap:.75rem}.rec-savings{align-items:flex-start}}.model-status{background:var(--bg-secondary, #f8f9fa);border-radius:var(--border-radius, 8px);padding:1.5rem}.model-status.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem}.model-status-header h3{margin:0 0 .25rem;font-size:1.25rem}.model-status-header .subtitle{margin:0 0 1.5rem;color:var(--text-secondary, #6c757d);font-size:.875rem}.model-status .no-models{text-align:center;padding:2rem}.model-status .no-models p{margin:0 0 .5rem}.model-status .no-models .hint{color:var(--text-secondary, #6c757d);font-size:.875rem}.model-types-list{display:flex;flex-direction:column;gap:1rem}.model-type-card{background:var(--card-bg);border:1px solid var(--border-color, #dee2e6);border-radius:8px;padding:1rem;cursor:pointer;transition:all .15s ease}.model-type-card:hover{border-color:var(--accent-primary, #007bff)}.model-type-card.selected{border-color:var(--accent-primary, #007bff);box-shadow:0 2px 8px #007bff26}.model-type-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.model-type-name{font-weight:600;font-size:1rem}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;color:#fff}.model-quick-stats{display:flex;gap:1rem;font-size:.875rem;color:var(--text-secondary, #6c757d)}.shadow-indicator{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border-color, #dee2e6)}.shadow-badge{background:#ffc107;color:#212529;padding:.125rem .375rem;border-radius:3px;font-size:.6875rem;font-weight:600;text-transform:uppercase}.shadow-version{font-size:.875rem;color:var(--text-secondary, #6c757d)}.model-details{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #dee2e6)}.details-section h4{font-size:.875rem;color:var(--text-secondary, #6c757d);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.retrain-info{display:flex;flex-direction:column;gap:.75rem}.retrain-stat{display:flex;flex-direction:column;gap:.25rem}.retrain-stat .label{font-size:.8125rem;color:var(--text-secondary, #6c757d)}.retrain-stat .value{font-size:.875rem;font-weight:600}.retrain-stat .progress-bar{height:4px;background:var(--bg-tertiary, #e9ecef);border-radius:2px;overflow:hidden;margin-top:.25rem}.retrain-stat .progress-fill{height:100%;background:var(--accent-primary, #007bff);border-radius:2px;transition:width .3s ease}.retrain-alert{background:#ffc1071a;border:1px solid #ffc107;color:#856404;padding:.5rem;border-radius:4px;font-size:.875rem;text-align:center}.model-actions{display:flex;gap:.5rem;margin-top:1rem}.action-btn{flex:1;padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn.retrain{background:var(--accent-primary, #007bff);color:#fff}.action-btn.retrain:hover:not(:disabled){opacity:.9}.action-btn.promote{background:var(--accent-success, #28a745);color:#fff}.action-btn.promote:hover:not(:disabled){opacity:.9}.available-types{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #dee2e6)}.available-types h4{font-size:.875rem;color:var(--text-secondary, #6c757d);margin:0 0 1rem}.types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.type-card{background:var(--card-bg);border:1px dashed var(--border-color, #dee2e6);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.type-card.inactive{opacity:.7}.type-card .type-name{font-size:.875rem;color:var(--text-secondary, #6c757d)}.init-btn{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #dee2e6);border-radius:4px;padding:.5rem;font-size:.8125rem;cursor:pointer;transition:all .15s ease}.init-btn:hover:not(:disabled){background:var(--bg-hover, #e9ecef)}.init-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.model-quick-stats{flex-direction:column;gap:.25rem}.model-actions{flex-direction:column}.types-grid{grid-template-columns:1fr}}.model-sim-note{margin:.5rem 0 0;font-size:.75rem;color:var(--text-secondary)}.model-notice{margin-bottom:1rem;padding:.5rem 1rem;border-radius:var(--border-radius);font-size:.875rem;cursor:pointer}.model-notice.error{background:#dc35451a;color:var(--accent-danger)}.model-notice.success{background:#28a7451a;color:var(--accent-success)}.model-compare{width:100%;font-size:.875rem;border-collapse:collapse}.model-compare th,.model-compare td{padding:.25rem .5rem;text-align:left;border-bottom:1px solid var(--border-color)}.model-type-card .hint{margin:.5rem 0;font-size:.875rem;color:var(--text-secondary)}.model-compare .delta-pos{color:var(--accent-success);font-weight:600}.model-compare .delta-neg{color:var(--accent-danger);font-weight:600}.model-type-card details{margin-top:.5rem;font-size:.875rem}.live-results{margin-top:.75rem}.live-results h4{margin:0 0 .25rem;font-size:.875rem}.promotion-blocks{margin:.5rem 0;padding-left:1.25rem;font-size:.8125rem;color:var(--text-secondary)}.date-range-filter{padding:1rem;background-color:var(--bg-secondary);border-radius:var(--border-radius);margin-bottom:1.5rem;border:1px solid var(--border-color)}.date-range-section{margin-bottom:1rem}.date-range-label{font-weight:600;margin-bottom:.5rem;display:block;color:var(--text-primary)}.date-inputs-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.date-input-group{display:flex;flex-direction:column}.date-input-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:.25rem;display:block}.date-input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;background-color:var(--bg-primary);color:var(--text-primary)}.date-input:focus{outline:none;border-color:var(--accent-primary)}.date-input::-webkit-calendar-picker-indicator{filter:var(--date-picker-filter, none)}[data-theme=dark] .date-input::-webkit-calendar-picker-indicator{filter:invert(1)}.quick-select-section{margin-top:1rem}.quick-select-label{font-size:.875rem;font-weight:600;margin-bottom:.5rem;display:block;color:var(--text-primary)}.quick-select-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.quick-select-button{padding:.5rem 1rem;background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;cursor:pointer;transition:all .15s ease}.quick-select-button:hover{background-color:var(--bg-tertiary, var(--bg-secondary));border-color:var(--text-secondary)}.quick-select-button:active{transform:scale(.98)}@media (max-width: 768px){.date-inputs-row{flex-direction:column;align-items:stretch}.date-input{width:100%}.quick-select-buttons{flex-direction:column}.quick-select-button{width:100%;text-align:center}}.analytics{padding:var(--spacing-md) 0}.analytics h2{font-size:var(--font-size-2xl);color:var(--text-primary);margin-bottom:var(--spacing-lg)}.type-filter{margin-bottom:var(--spacing-lg)}.type-filter label{font-weight:600;margin-bottom:var(--spacing-sm);display:block;color:var(--text-primary)}.type-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.type-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);font-weight:400}.type-button:hover{background-color:var(--bg-secondary)}.type-button.active{font-weight:600;color:#fff}.type-button.active.all{background-color:var(--accent-primary);border-color:var(--accent-primary)}.type-button.active.income{background-color:var(--accent-success);border-color:var(--accent-success)}.type-button.active.expense{background-color:var(--accent-danger);border-color:var(--accent-danger)}.granularity-selector{margin-bottom:var(--spacing-lg)}.granularity-selector label{font-weight:600;margin-bottom:var(--spacing-sm);display:block;color:var(--text-primary)}.granularity-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.granularity-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);font-weight:400}.granularity-button:hover{background-color:var(--bg-secondary)}.granularity-button.active{background-color:var(--accent-primary);color:#fff;font-weight:600}.chart-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:0 1px 3px #0000001a}.chart-card h3{margin-top:0;margin-bottom:var(--spacing-md);color:var(--text-primary);font-size:var(--font-size-xl)}.chart-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.chart-card-header h3{margin:0}.chart-loading{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.category-table{width:100%;border-collapse:collapse}.category-table thead tr{border-bottom:2px solid var(--border-color)}.category-table th{padding:var(--spacing-sm);text-align:left;font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px}.category-table th.align-right{text-align:right}.category-table tbody tr{border-bottom:1px solid var(--bg-secondary);transition:background-color var(--transition-fast)}.category-table tbody tr:hover{background-color:var(--bg-secondary)}.category-table td{padding:var(--spacing-sm);color:var(--text-primary)}.category-table td.category-name{text-transform:capitalize}.category-table td.total{text-align:right;font-weight:500}.category-table td.count{text-align:right;color:var(--text-secondary)}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.empty-state p{margin:0}.chart-tooltip{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);box-shadow:0 4px 12px var(--shadow-color)}.chart-tooltip-title{font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs);font-size:var(--font-size-sm)}.chart-tooltip-row{color:var(--text-secondary);margin:0;font-size:var(--font-size-xs)}.chart-tooltip-value{font-weight:600;margin:var(--spacing-xs) 0 0;font-size:var(--font-size-sm)}.chart-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;background-color:var(--bg-secondary);border-radius:var(--border-radius);color:var(--text-secondary)}.chart-empty-state p{margin:0}.chart-empty-hint{font-size:var(--font-size-sm);margin-top:var(--spacing-sm)!important;opacity:.7}.section-divider{margin:var(--spacing-2xl) 0 var(--spacing-lg);padding:var(--spacing-lg) 0;border-top:2px solid var(--border-color);text-align:center}.section-divider h2{margin:0 0 var(--spacing-xs);color:var(--text-primary)}.section-subtitle{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}.alerts-panel,.monthly-analysis,.savings-opportunities{margin-bottom:var(--spacing-lg)}@media (max-width: 1024px){.category-grid{grid-template-columns:1fr}}@media (max-width: 768px){.analytics h2{font-size:var(--font-size-xl)}.type-buttons{width:100%}.type-button{flex:1;min-width:0;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.granularity-buttons{width:100%}.granularity-button{flex:1;min-width:0;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.chart-card{padding:var(--spacing-md)}.chart-card h3{font-size:var(--font-size-lg)}.category-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.category-table{min-width:300px}.category-table th,.category-table td{padding:var(--spacing-xs);font-size:var(--font-size-sm)}}@media (max-width: 375px){.analytics{padding:var(--spacing-sm) 0}.type-filter,.granularity-selector{margin-bottom:var(--spacing-md)}.type-filter label,.granularity-selector label{font-size:var(--font-size-sm)}.chart-card{padding:var(--spacing-sm);margin-bottom:var(--spacing-md)}}.monthly-analytics{padding:var(--spacing-md) 0}.monthly-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.monthly-header h2{margin:0;font-size:var(--font-size-2xl);color:var(--text-primary)}.month-selector{display:flex;align-items:center;gap:var(--spacing-sm)}.month-selector label{font-size:var(--font-size-sm);color:var(--text-secondary)}.month-selector select{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;min-width:180px}.month-selector select:focus{outline:none;border-color:var(--accent-primary)}.monthly-loading,.monthly-error,.monthly-empty{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary);background-color:var(--bg-secondary);border-radius:var(--border-radius)}.monthly-error{color:var(--accent-danger)}.monthly-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.monthly-summary .summary-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xs)}.monthly-summary .summary-card.income{border-left:4px solid var(--accent-success)}.monthly-summary .summary-card.expenses{border-left:4px solid var(--accent-danger)}.monthly-summary .summary-card.balance{border-left:4px solid var(--accent-primary)}.monthly-summary .summary-card.savings{border-left:4px solid var(--accent-warning, #ffc107)}.comparison{font-size:var(--font-size-xs);color:var(--text-secondary)}.comparison.positive{color:var(--accent-success)}.comparison.negative{color:var(--accent-danger)}.monthly-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.chart-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg)}.chart-card h3{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-lg);color:var(--text-primary)}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.transactions-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.transactions-table th,.transactions-table td{padding:var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-color)}.transactions-table th{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:var(--font-size-xs)}.transactions-table .date{white-space:nowrap;color:var(--text-secondary)}.transactions-table .description{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transactions-table .category{color:var(--text-secondary)}.transactions-table .amount{text-align:right;font-weight:500}.transactions-table .amount.negative{color:var(--accent-danger)}.transactions-table .align-right{text-align:right}.category-details{margin-bottom:var(--spacing-lg)}.category-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.category-table th,.category-table td{padding:var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-color)}.category-table th{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:var(--font-size-xs)}.category-table .category-name{font-weight:500;display:flex;align-items:center;gap:var(--spacing-sm)}.category-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.chart-loading{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.category-table .total{text-align:right;font-weight:500}.category-table .percentage,.category-table .count{text-align:right;color:var(--text-secondary)}.category-table .align-right{text-align:right}.observations-section{margin-top:var(--spacing-lg)}.observations-section h3{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-lg);color:var(--text-primary)}.observations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.observation-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs)}.observation-card.success{border-left:4px solid var(--accent-success)}.observation-card.warning{border-left:4px solid var(--accent-warning, #ffc107)}.observation-card.caution{border-left:4px solid var(--accent-danger)}.observation-card.info{border-left:4px solid var(--accent-primary)}.observation-title{font-weight:600;color:var(--text-primary)}.observation-message{font-size:var(--font-size-sm);color:var(--text-secondary)}@media (max-width: 1200px){.monthly-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.monthly-header{flex-direction:column;align-items:flex-start}.monthly-summary,.monthly-grid{grid-template-columns:1fr}.month-selector{width:100%}.month-selector select{flex:1}.transactions-table .description{max-width:120px}}.yearly-overview{padding:var(--spacing-md) 0}.yearly-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.yearly-header h2{margin:0;font-size:var(--font-size-2xl);color:var(--text-primary)}.year-selector{display:flex;gap:var(--spacing-sm)}.year-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:all var(--transition-fast)}.year-button:hover{background-color:var(--bg-secondary)}.year-button.active{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.yearly-loading{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.yearly-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.summary-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);text-align:center;box-shadow:0 2px 4px var(--shadow-color);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-color)}.summary-card.income{border-left:4px solid var(--accent-success)}.summary-card.expenses{border-left:4px solid var(--accent-danger)}.summary-card.positive{border-left:4px solid var(--accent-success)}.summary-card.negative{border-left:4px solid var(--accent-danger)}.summary-card.neutral{border-left:4px solid var(--accent-info)}.card-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.5px}.card-value{font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary)}.yearly-chart-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);box-shadow:0 2px 4px var(--shadow-color)}.yearly-chart-card h3{margin:0 0 var(--spacing-lg);color:var(--text-primary);font-size:var(--font-size-xl)}.yearly-empty{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.yearly-tooltip{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);box-shadow:0 4px 12px var(--shadow-color)}.yearly-tooltip-title{font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs);font-size:var(--font-size-sm)}.yearly-tooltip-row{margin:0;font-size:var(--font-size-xs)}.yearly-tooltip-row.income{color:var(--accent-success)}.yearly-tooltip-row.expenses{color:var(--accent-danger)}.yearly-tooltip-row.balance.positive{color:var(--accent-success);font-weight:600}.yearly-tooltip-row.balance.negative{color:var(--accent-danger);font-weight:600}.yearly-highlights{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.highlight-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);text-align:center;box-shadow:0 2px 4px var(--shadow-color)}.highlight-card h4{margin:0 0 var(--spacing-md);font-size:var(--font-size-base);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.highlight-card.best{border-top:4px solid var(--accent-success)}.highlight-card.worst{border-top:4px solid var(--accent-warning)}.highlight-month{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.highlight-value{font-size:var(--font-size-lg);font-weight:500}.highlight-value.positive{color:var(--accent-success)}.highlight-value.negative{color:var(--accent-danger)}@media (max-width: 1024px){.yearly-summary-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.yearly-header{flex-direction:column;align-items:flex-start}.year-selector{width:100%;justify-content:center}.yearly-summary-cards{grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.summary-card{padding:var(--spacing-md)}.card-value{font-size:var(--font-size-xl)}.yearly-highlights{grid-template-columns:1fr}}@media (max-width: 375px){.yearly-summary-cards{grid-template-columns:1fr}.year-button{flex:1;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}}.budget-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);transition:box-shadow var(--transition-fast)}.budget-card:hover{box-shadow:0 4px 12px #0000001a}.budget-card.over_budget{border-left:4px solid var(--accent-danger)}.budget-card.near_limit{border-left:4px solid var(--accent-warning, #ffc107)}.budget-card.under_budget{border-left:4px solid var(--accent-success)}.budget-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.budget-category{margin:0;font-size:var(--font-size-lg);color:var(--text-primary);text-transform:capitalize}.budget-status-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.budget-status-badge.under_budget{background-color:#28a7451a;color:var(--accent-success)}.budget-status-badge.near_limit{background-color:#ffc1071a;color:var(--accent-warning, #ffc107)}.budget-status-badge.over_budget{background-color:#dc35451a;color:var(--accent-danger)}.budget-amounts{margin-bottom:var(--spacing-md)}.budget-amount-row{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.budget-label{color:var(--text-secondary);font-size:var(--font-size-sm)}.budget-value{font-weight:500;color:var(--text-primary)}.budget-value.spent{color:var(--text-primary)}.budget-value.positive{color:var(--accent-success)}.budget-value.negative{color:var(--accent-danger)}.budget-progress{margin-bottom:var(--spacing-md)}.progress-bar-container{height:8px;background-color:var(--bg-secondary);border-radius:4px;overflow:hidden;margin-bottom:var(--spacing-xs)}.progress-bar-fill{height:100%;border-radius:4px;transition:width .5s cubic-bezier(.4,0,.2,1);background:linear-gradient(90deg,currentColor 0%,currentColor 95%,rgba(255,255,255,.3) 100%)}.budget-percentage{font-size:var(--font-size-sm);color:var(--text-secondary)}.budget-notes{padding:var(--spacing-sm);background-color:var(--bg-secondary);border-radius:var(--border-radius);font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md)}.notes-label{font-weight:500;color:var(--text-primary)}.budget-card-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.budget-action-btn{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.budget-action-btn.edit{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.budget-action-btn.edit:hover{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.budget-action-btn.delete{background-color:transparent;color:var(--accent-danger);border-color:var(--accent-danger)}.budget-action-btn.delete:hover{background-color:var(--accent-danger);color:#fff}.month-navigator{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.month-nav-btn{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);color:var(--text-primary)}.month-nav-btn:hover,.month-nav-btn.today{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.month-display{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);min-width:180px;text-align:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--bg-primary);border-radius:var(--border-radius);padding:var(--spacing-xl);width:100%;max-width:450px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.modal-header h3{margin:0;color:var(--text-primary)}.modal-close-btn{background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;color:var(--text-secondary);padding:var(--spacing-xs);line-height:1}.modal-close-btn:hover{color:var(--text-primary)}.modal-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-weight:500;color:var(--text-primary);font-size:var(--font-size-sm)}.form-group input,.form-group select,.form-group textarea{padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-primary)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #282c341a}.form-group textarea{min-height:80px;resize:vertical}.form-group select{cursor:pointer}.form-error{color:var(--accent-danger);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.budget-recommendation{background:linear-gradient(135deg,#28a74514,#28a74508);border:1px solid rgba(40,167,69,.2);border-radius:var(--border-radius);padding:var(--spacing-md);margin:var(--spacing-sm) 0}.recommendation-header{display:flex;align-items:center;gap:var(--spacing-xs);font-weight:600;color:var(--accent-success);margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm)}.recommendation-icon{font-size:var(--font-size-lg)}.recommendation-content{display:flex;flex-direction:column;gap:var(--spacing-sm)}.recommendation-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.recommendation-stats .stat{display:flex;flex-direction:column;gap:2px}.recommendation-stats .stat-label{font-size:var(--font-size-xs);color:var(--text-secondary)}.recommendation-stats .stat-value{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.apply-suggestion-btn{background:var(--accent-success);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.apply-suggestion-btn:hover{background:#218838;transform:translateY(-1px)}.confidence-badge{margin-left:auto;padding:2px 8px;border-radius:12px;font-size:var(--font-size-xs);font-weight:500}.confidence-badge.confidence-high{background-color:#28a74526;color:var(--accent-success)}.confidence-badge.confidence-medium{background-color:#ffc10726;color:var(--accent-warning, #ffc107)}.confidence-badge.confidence-low{background-color:#dc354526;color:var(--accent-danger)}.trend-increasing{color:var(--accent-danger)!important}.trend-decreasing{color:var(--accent-success)!important}.trend-stable{color:var(--text-secondary)!important}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-md)}.modal-btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.modal-btn.cancel{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.modal-btn.cancel:hover{background-color:var(--border-color)}.modal-btn.save{background-color:var(--accent-primary);color:#fff}.modal-btn.save:hover{opacity:.9}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.comprehensive-modal{max-width:600px;max-height:85vh}.comprehensive-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.comprehensive-empty{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.empty-subtitle{font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.comprehensive-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.comprehensive-header{text-align:center;margin-bottom:var(--spacing-sm)}.ml-badge-large{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:linear-gradient(135deg,#28a7451a,#28a7450d);color:var(--accent-success);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-weight:600;font-size:var(--font-size-sm)}.comprehensive-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}.selection-controls{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--bg-secondary);border-radius:var(--border-radius)}.selection-btn{padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.selection-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.selection-count{margin-left:auto;font-size:var(--font-size-sm);color:var(--text-secondary)}.budget-items-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:350px;overflow-y:auto;padding-right:var(--spacing-xs)}.budget-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);transition:all var(--transition-fast)}.budget-item.enabled{border-color:var(--accent-success);background-color:#28a74508}.budget-item.disabled{opacity:.6}.budget-item-checkbox{flex-shrink:0}.budget-item-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-success)}.budget-item-info{flex:1;cursor:pointer;min-width:0}.budget-item-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:2px}.budget-item-category{font-weight:500;color:var(--text-primary)}.budget-item-stats{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--text-secondary)}.budget-item-stats .stat{display:flex;align-items:center;gap:2px}.budget-item-amount{display:flex;align-items:center;gap:4px;flex-shrink:0}.budget-item-amount .currency-symbol{color:var(--text-secondary);font-size:var(--font-size-sm)}.budget-item-amount input{width:90px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-sm);text-align:right}.budget-item-amount input:disabled{background-color:var(--bg-secondary);cursor:not-allowed}.comprehensive-summary{background-color:var(--bg-secondary);padding:var(--spacing-md);border-radius:var(--border-radius)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0}.summary-row.categories{font-size:var(--font-size-sm);color:var(--text-secondary)}.total-amount{font-size:var(--font-size-lg);font-weight:600;color:var(--accent-primary)}.comprehensive-save{background:linear-gradient(135deg,var(--accent-success) 0%,#218838 100%)}.comprehensive-save:hover{opacity:.95}.budgets-txns{font-size:var(--font-size-xs)}@media (max-width: 768px){.month-navigator{flex-wrap:wrap}.month-display{order:-1;width:100%;margin-bottom:var(--spacing-sm)}.modal-content{margin:var(--spacing-md);max-width:calc(100% - var(--spacing-lg) * 2)}}.budgets{padding:var(--spacing-md) 0}.budgets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.budgets-header h2{margin:0;font-size:var(--font-size-2xl);color:var(--text-primary)}.budgets-header-actions{display:flex;gap:var(--spacing-sm)}.add-budget-btn{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--border-radius);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast)}.add-budget-btn:hover{opacity:.9}.add-budget-btn.comprehensive{background:linear-gradient(135deg,var(--accent-success) 0%,#218838 100%);display:flex;align-items:center;gap:var(--spacing-xs)}.add-budget-btn.comprehensive:hover{transform:translateY(-1px);box-shadow:0 2px 8px #28a7454d}.budgets-loading,.budgets-error{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary)}.budgets-error{color:var(--accent-danger)}.budgets-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.summary-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xs)}.summary-card.alerts{background-color:var(--bg-secondary)}.summary-label{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.summary-value.spent{color:var(--text-primary)}.summary-value.positive{color:var(--accent-success)}.summary-value.negative{color:var(--accent-danger)}.alert-details{font-size:var(--font-size-xs);color:var(--accent-warning, #ffc107)}.budgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg)}.budgets-empty{text-align:center;padding:var(--spacing-2xl);background-color:var(--bg-secondary);border-radius:var(--border-radius)}.budgets-empty p{margin:0 0 var(--spacing-sm) 0;color:var(--text-primary);font-size:var(--font-size-lg)}.budgets-empty .empty-subtitle{color:var(--text-secondary);font-size:var(--font-size-base);margin-bottom:var(--spacing-lg)}.delete-confirm{max-width:400px;text-align:center}.delete-confirm h3{margin-top:0;color:var(--accent-danger)}.delete-confirm p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.modal-btn.delete{background-color:var(--accent-danger);color:#fff;border-color:var(--accent-danger)}.modal-btn.delete:hover{opacity:.9}@media (max-width: 1200px){.budgets-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.budgets-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.budgets-header-actions{flex-direction:column;width:100%}.budgets-header-actions .add-budget-btn{width:100%;justify-content:center}.budgets-summary,.budgets-grid{grid-template-columns:1fr}}.goal-progress-chart{margin:.5rem 0}.progress-bar-container{position:relative;height:24px;background:var(--bg-tertiary, #e9ecef);border-radius:12px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:12px;transition:width .5s ease;min-width:2px}.progress-bar-text{position:absolute;top:50%;transform:translateY(-50%);font-size:.75rem;font-weight:600}.progress-bar-text.inside{right:8px;color:#fff}.progress-bar-text.outside{color:var(--text-secondary, #6c757d)}.progress-labels{display:flex;justify-content:space-between;margin-top:.25rem}.progress-label{font-size:.7rem;color:var(--text-secondary, #6c757d)}.goal-card{background:var(--bg-secondary, #fff);border-radius:var(--border-radius, 8px);border-left:4px solid var(--accent-primary);padding:1.25rem;box-shadow:0 2px 8px #00000014;transition:box-shadow .2s ease}.goal-card:hover{box-shadow:0 4px 16px #0000001f}.goal-card-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.goal-icon{font-size:2rem;line-height:1}.goal-info{flex:1}.goal-name{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.goal-status{display:inline-block;font-size:.75rem;font-weight:500;padding:.125rem .5rem;border-radius:12px;text-transform:capitalize}.goal-status.status-active{background:#28a7451a;color:var(--accent-success, #28a745)}.goal-status.status-completed{background:#28a74533;color:var(--accent-success, #28a745)}.goal-status.status-paused{background:#ffc1071a;color:#856404}.goal-status.status-failed{background:#dc35451a;color:var(--accent-danger, #dc3545)}.goal-actions{display:flex;gap:.25rem}.goal-action-btn{background:transparent;border:none;cursor:pointer;padding:.25rem .5rem;border-radius:4px;font-size:1rem;opacity:.6;transition:opacity .15s,background .15s}.goal-action-btn:hover{opacity:1;background:var(--bg-tertiary, #f0f0f0)}.goal-action-btn.danger:hover{background:#dc35451a}.goal-action-btn:disabled{opacity:.3;cursor:not-allowed}.goal-description{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary, #6c757d);line-height:1.4}.goal-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1rem 0;padding:.75rem;background:var(--bg-tertiary, #f8f9fa);border-radius:6px}.amount-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.amount-label{font-size:.75rem;color:var(--text-secondary, #6c757d);text-transform:uppercase;letter-spacing:.5px}.amount-value{font-size:1rem;font-weight:600}.amount-value.current{color:var(--accent-primary, #282c34)}.amount-value.target{color:var(--accent-success, #28a745)}.amount-value.remaining{color:var(--text-secondary, #6c757d)}.goal-meta{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0}.meta-item{display:flex;align-items:center;gap:.5rem}.meta-label{font-size:.75rem;color:var(--text-secondary, #6c757d)}.meta-value{font-size:.875rem;font-weight:500}.meta-value.probability.high{color:var(--accent-success, #28a745)}.meta-value.probability.medium{color:#ffc107}.meta-value.probability.low{color:var(--accent-danger, #dc3545)}.contribute-btn{width:100%;padding:.75rem;background:var(--accent-success, #28a745);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:opacity .15s;margin-top:.5rem}.contribute-btn:hover{opacity:.9}.prediction-panel{margin-top:1rem;padding:1rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px;border:1px solid var(--border-color, #dee2e6)}.prediction-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.prediction-header h4{margin:0;font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.close-btn{background:transparent;border:none;cursor:pointer;font-size:1rem;opacity:.5;padding:.25rem}.close-btn:hover{opacity:1}.prediction-content{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.prediction-item{display:flex;flex-direction:column;gap:.125rem}.prediction-label{font-size:.7rem;color:var(--text-secondary, #6c757d);text-transform:uppercase;letter-spacing:.5px}.prediction-value{font-size:.875rem;font-weight:600}.prediction-value.high{color:var(--accent-success, #28a745)}.prediction-value.medium{color:#ffc107}.prediction-value.low{color:var(--accent-danger, #dc3545)}.prediction-value.trend-increasing{color:var(--accent-success, #28a745)}.prediction-value.trend-stable{color:var(--accent-primary, #282c34)}.prediction-value.trend-decreasing{color:var(--accent-danger, #dc3545)}@media (max-width: 480px){.goal-amounts,.prediction-content{grid-template-columns:1fr}.goal-meta{flex-direction:column;gap:.5rem}}.goal-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.goal-modal{background:var(--bg-secondary, #fff);border-radius:var(--border-radius, 8px);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 24px #00000026}.goal-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #dee2e6)}.goal-modal-header h2{margin:0;font-size:1.25rem;font-weight:600}.goal-modal form{padding:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500;color:var(--text-secondary, #6c757d)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--border-color, #dee2e6);border-radius:6px;font-size:.9375rem;background:var(--bg-primary, #fff);color:var(--text-primary, #1a1a1a);transition:border-color .15s,box-shadow .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary, #4a90d9);box-shadow:0 0 0 3px #4a90d91a}.form-group textarea{resize:vertical;min-height:60px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.color-picker{display:flex;gap:.5rem;flex-wrap:wrap}.color-option{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text-primary, #1a1a1a);box-shadow:0 0 0 2px #fff inset}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color, #dee2e6)}.btn-cancel,.btn-submit{padding:.625rem 1.25rem;border-radius:6px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:opacity .15s}.btn-cancel{background:transparent;border:1px solid var(--border-color, #dee2e6);color:var(--text-secondary, #6c757d)}.btn-cancel:hover{background:var(--bg-tertiary, #f8f9fa)}.btn-submit{background:var(--accent-success, #28a745);border:none;color:#fff}.btn-submit:hover:not(:disabled){opacity:.9}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.contribution-modal{max-width:400px}.contribution-info{padding:1rem 1.5rem;background:var(--bg-tertiary, #f8f9fa);border-bottom:1px solid var(--border-color, #dee2e6)}.contribution-info .goal-title{margin:0 0 .25rem;font-weight:600;font-size:1rem}.contribution-info .remaining-amount{margin:0;font-size:.875rem;color:var(--text-secondary, #6c757d)}.quick-amounts{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.quick-amount-btn{padding:.375rem .75rem;background:var(--bg-tertiary, #f8f9fa);border:1px solid var(--border-color, #dee2e6);border-radius:16px;font-size:.8125rem;cursor:pointer;transition:background .15s,border-color .15s}.quick-amount-btn:hover{background:var(--bg-secondary, #e9ecef);border-color:var(--accent-primary, #4a90d9)}@media (max-width: 480px){.form-row{grid-template-columns:1fr}.goal-modal{margin:.5rem;max-height:calc(100vh - 1rem)}.quick-amounts{justify-content:center}}.goals-page{max-width:1200px;margin:0 auto;padding:1.5rem}.goals-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.header-title h1{margin:0 0 .25rem;font-size:1.75rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.header-subtitle{margin:0;font-size:.9375rem;color:var(--text-secondary, #6c757d)}.header-actions{display:flex;gap:.75rem}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;border-radius:6px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:opacity .15s,background .15s;display:flex;align-items:center;gap:.5rem}.btn-primary{background:var(--accent-success, #28a745);border:none;color:#fff}.btn-primary:hover{opacity:.9}.btn-secondary{background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #dee2e6);color:var(--text-primary, #1a1a1a)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary, #f8f9fa)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.goals-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.summary-card{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-secondary, #fff);border-radius:var(--border-radius, 8px);box-shadow:0 2px 8px #00000014}.summary-card.wide{grid-column:span 2}.summary-icon{font-size:1.5rem}.summary-content{display:flex;flex-direction:column}.summary-value{font-size:1.25rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.summary-label{font-size:.75rem;color:var(--text-secondary, #6c757d);text-transform:uppercase;letter-spacing:.5px}.goals-filters{margin-bottom:1.5rem}.filter-tabs{display:flex;gap:.25rem;background:var(--bg-tertiary, #f8f9fa);padding:.25rem;border-radius:8px;overflow-x:auto}.filter-tab{padding:.5rem 1rem;border:none;background:transparent;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--text-secondary, #6c757d);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.filter-tab:hover{color:var(--text-primary, #1a1a1a)}.filter-tab.active{background:var(--bg-secondary, #fff);color:var(--accent-primary, #4a90d9);box-shadow:0 1px 3px #00000014}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h3{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-primary, #1a1a1a)}.empty-state p{margin:0 0 1.5rem;color:var(--text-secondary, #6c757d);max-width:400px}.loading-state,.error-state{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:1rem;color:var(--text-secondary, #6c757d)}.error-state{color:var(--accent-danger, #dc3545)}@media (max-width: 768px){.goals-page{padding:1rem}.goals-header{flex-direction:column;align-items:stretch}.header-actions{justify-content:stretch}.header-actions button{flex:1;justify-content:center}.goals-summary{grid-template-columns:repeat(2,1fr)}.summary-card.wide{grid-column:span 2}.goals-grid{grid-template-columns:1fr}.filter-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 480px){.goals-summary{grid-template-columns:1fr}.summary-card.wide{grid-column:span 1}.header-actions{flex-direction:column}}.theme-toggle{background:transparent;border:none;color:#fff;cursor:pointer;padding:var(--spacing-sm);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-normal)}.theme-toggle:hover{background-color:#ffffff1a}.theme-toggle:focus{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}.theme-toggle svg{transition:transform var(--transition-normal)}.theme-toggle:hover svg{transform:rotate(15deg)}.language-toggle{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);display:flex;align-items:center;gap:var(--spacing-xs);font-size:.85rem;font-weight:500;transition:all var(--transition-normal)}.language-toggle:hover{background-color:#ffffff1a;border-color:#ffffff80}.language-toggle:focus{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}.lang-option{opacity:.6;transition:opacity var(--transition-normal)}.lang-option.active{opacity:1;font-weight:600}.lang-separator{opacity:.4}.welcome-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.welcome-modal{background-color:var(--bg-primary);border-radius:calc(var(--border-radius) * 2);padding:var(--spacing-2xl);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.welcome-modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color var(--transition-fast)}.welcome-modal-close:hover{color:var(--text-primary)}.welcome-modal-content{text-align:center}.welcome-step-icon{font-size:4rem;margin-bottom:var(--spacing-lg);animation:bounce .5s ease}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.welcome-title{font-size:var(--font-size-2xl);color:var(--text-primary);margin:0 0 var(--spacing-sm)}.welcome-step-title{font-size:var(--font-size-xl);color:var(--text-primary);margin:0 0 var(--spacing-md)}.welcome-step-description{font-size:var(--font-size-base);color:var(--text-secondary);line-height:1.6;margin:0 0 var(--spacing-xl)}.welcome-progress{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.progress-dot{width:10px;height:10px;border-radius:50%;background-color:var(--border-color);transition:all var(--transition-fast)}.progress-dot.active{background-color:var(--accent-primary);transform:scale(1.2)}.progress-dot.completed{background-color:var(--accent-success)}.welcome-modal-actions{display:flex;gap:var(--spacing-md);justify-content:center}.welcome-btn{padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:2px solid transparent}.welcome-btn.primary{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.welcome-btn.primary:hover{opacity:.9;transform:translateY(-2px)}.welcome-btn.secondary{background-color:transparent;color:var(--text-secondary);border-color:var(--border-color)}.welcome-btn.secondary:hover{background-color:var(--bg-secondary);color:var(--text-primary)}[data-theme=dark] .welcome-modal{box-shadow:0 20px 60px #00000080}@media (max-width: 768px){.welcome-modal{margin:var(--spacing-md);padding:var(--spacing-xl);max-width:calc(100% - var(--spacing-lg) * 2)}.welcome-step-icon{font-size:3rem}.welcome-title{font-size:var(--font-size-xl)}.welcome-step-title{font-size:var(--font-size-lg)}.welcome-modal-actions{flex-direction:column-reverse}.welcome-btn{width:100%}}.pin-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;z-index:10000}.pin-container{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:3rem 2.5rem;text-align:center;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #0000004d}.pin-container.shake{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.pin-logo{width:80px;height:80px;margin:0 auto 1.5rem;background:linear-gradient(135deg,#28a745,#20c997);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px #28a7454d}.logo-icon{font-size:2.5rem;font-weight:700;color:#fff}.pin-title{color:#fff;font-size:1.75rem;font-weight:600;margin:0 0 .5rem}.pin-subtitle{color:#fff9;font-size:.95rem;margin:0 0 2rem}.pin-inputs{display:flex;gap:12px;justify-content:center;margin-bottom:1.5rem}.pin-input{width:56px;height:64px;border:2px solid rgba(255,255,255,.2);border-radius:12px;background:#ffffff0d;color:#fff;font-size:1.75rem;font-weight:600;text-align:center;outline:none;transition:all .2s ease}.pin-input:focus{border-color:#28a745;background:#28a7451a;box-shadow:0 0 0 4px #28a74533}.pin-input.filled{border-color:#fff6;background:#ffffff1a}.pin-input.error{border-color:#dc3545;background:#dc35451a}.pin-error{color:#ff6b6b;font-size:.9rem;margin:0;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .pin-screen{background:linear-gradient(135deg,#0d0d1a,#1a1a2e,#0f3460)}@media (max-width: 480px){.pin-container{padding:2rem 1.5rem;margin:1rem}.pin-input{width:48px;height:56px;font-size:1.5rem}.pin-inputs{gap:8px}}:root{--accent-success: #28a745;--accent-danger: #dc3545;--accent-primary: #282c34;--accent-warning: #ffc107;--accent-info: #17a2b8;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--border-color: #dee2e6;--text-primary: #212529;--text-secondary: #6c757d;--shadow-color: rgba(0, 0, 0, .1);--card-bg: #ffffff;--header-bg: #282c34;--border-radius: 8px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--transition-fast: .15s ease;--transition-normal: .2s ease}[data-theme=dark]{--accent-success: #2ecc71;--accent-danger: #e74c3c;--accent-primary: #3498db;--accent-warning: #f39c12;--accent-info: #00cec9;--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-tertiary: #0f3460;--border-color: #2d3748;--text-primary: #e8e8e8;--text-secondary: #a0a0a0;--shadow-color: rgba(0, 0, 0, .3);--card-bg: #1e1e3f;--header-bg: #0f0f23}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background-color:var(--bg-primary);transition:background-color var(--transition-normal),color var(--transition-normal)}.app{min-height:100vh;display:flex;flex-direction:column}header{background-color:var(--header-bg);padding:var(--spacing-md) var(--spacing-xl);color:#fff;display:flex;justify-content:space-between;align-items:center}header nav{display:flex;gap:var(--spacing-md)}header nav a{color:#fff;text-decoration:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);transition:background-color var(--transition-normal)}header nav a:hover{background-color:#ffffff1a}header nav a.nav-active{background-color:#fff3;font-weight:600}*:focus-visible{outline:2px solid var(--accent-info);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-info);outline-offset:2px}.shadow-sm{box-shadow:0 1px 2px var(--shadow-color)}.shadow-md{box-shadow:0 4px 6px var(--shadow-color),0 2px 4px var(--shadow-color)}.shadow-lg{box-shadow:0 10px 15px var(--shadow-color),0 4px 6px var(--shadow-color)}.shadow-hover:hover{box-shadow:0 8px 25px var(--shadow-color)}.status-success{color:var(--accent-success)}.status-success:before{content:"✓ "}.status-warning{color:var(--accent-warning)}.status-warning:before{content:"⚠ "}.status-danger{color:var(--accent-danger)}.status-danger:before{content:"✗ "}.currency-value{font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.02em}main{flex:1;padding:var(--spacing-xl);max-width:1400px;margin:0 auto;width:100%}@media (max-width: 1024px){main{padding:var(--spacing-lg)}}@media (max-width: 768px){header{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}header nav{width:100%;justify-content:center;flex-wrap:wrap}header nav a{flex:1;text-align:center;min-width:80px}main{padding:var(--spacing-md)}}@media (max-width: 375px){header{padding:var(--spacing-sm)}header nav{gap:var(--spacing-xs)}header nav a{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}main{padding:var(--spacing-sm)}}
