.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-family:inherit;font-weight:500;border:none;border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.btn-md{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg)}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-secondary)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-danger{background:var(--color-expense);color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-full{width:100%}.card{background:var(--bg-card);border-radius:var(--border-radius-lg);overflow:hidden}.card-default{border:1px solid var(--border-color)}.card-elevated{box-shadow:var(--shadow-md);border:none}.card-outline{background:transparent;border:1px solid var(--border-color)}.card-padding-sm{padding:var(--spacing-sm)}.card-padding-md{padding:var(--spacing-md)}.card-padding-lg{padding:var(--spacing-lg)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.card-header-text{flex:1;min-width:0}.card-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0}.card-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary);margin:var(--spacing-xs) 0 0}.card-header-action{flex-shrink:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal{background:var(--bg-surface);border-radius:var(--r-lg) var(--r-lg) 0 0;border:1px solid var(--border-subtle);width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-sm{max-width:320px}.modal-md{max-width:480px}.modal-lg{max-width:640px}.modal-full{max-width:100%;height:90vh}@media(min-width:768px){.modal-backdrop{align-items:center}.modal{border-radius:var(--r-lg);max-height:80vh}.modal-full{max-width:90%;height:80vh}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;background:var(--bg-surface);z-index:1}.modal-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);font-size:1.25rem;cursor:pointer;border-radius:var(--r-md);transition:all .2s ease}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-content{padding:var(--sp-4)}.input-wrapper{display:flex;flex-direction:column;gap:6px}.input-label{font-size:.8rem;font-weight:600;color:#8888a0;text-transform:uppercase;letter-spacing:.5px}.input,.select{width:100%;padding:10px 14px;font-family:inherit;font-size:.9375rem;color:#e8e8f0;background:#0a0a0e;border:1px solid #252530;border-radius:8px;transition:all .2s ease}.input::placeholder{color:#556}.input:focus,.select:focus{outline:none;border-color:#9d7aff;box-shadow:0 0 0 3px #9d7aff33}.input-error{border-color:#ff6b6b}.input-error:focus{box-shadow:0 0 0 3px #ff6b6b33}.input-error-text{font-size:.75rem;color:#ff6b6b}.input-hint{font-size:.75rem;color:#8888a0}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}.select option{background:#0f0f14;color:#e8e8f0;padding:8px 12px}.amount-input-wrapper{position:relative;display:flex;align-items:center}.amount-currency{position:absolute;left:14px;font-size:.875rem;color:#8888a0;pointer-events:none}.amount-input{padding-left:50px;font-size:1.25rem;font-weight:600;text-align:right}.amount-input::-webkit-outer-spin-button,.amount-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.amount-input[type=number]{-moz-appearance:textfield}.privacy-toggle{display:flex;align-items:center;justify-content:center;padding:var(--sp-2);background:transparent;border:none;border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.privacy-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}.privacy-toggle:active{transform:scale(.95)}.privacy-toggle svg{display:block}.private-amount{display:inline-block;transition:opacity .2s ease}.private-amount.masked{color:var(--text-tertiary);font-family:monospace;letter-spacing:2px;-webkit-user-select:none;user-select:none}.add-account-form{display:flex;flex-direction:column;gap:16px;min-width:340px}.add-account-form .form-group{margin-bottom:4px}.add-account-form .form-label{display:block;font-size:.8rem;font-weight:600;color:#8888a0;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.add-account-form .input,.add-account-form .select{width:100%;padding:12px 14px;font-size:.95rem;background:#0a0a0e;border:1px solid #252530;border-radius:8px;color:#e8e8f0;transition:border-color .2s ease}.add-account-form .input:focus,.add-account-form .select:focus{outline:none;border-color:#9d7aff}.add-account-form .select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.add-account-form .select option{background:#0a0a0e;color:#e8e8f0;padding:10px 14px}.balance-hint{font-size:.8rem;color:#6b6b7a;margin-top:-8px;padding-left:2px}.add-account-form .error-message{padding:10px 14px;font-size:.875rem;font-weight:500;color:#ff6b6b;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.2);border-radius:8px;text-align:center}.form-buttons{display:flex;gap:12px;margin-top:8px}.form-buttons .btn{flex:1;padding:14px 20px;font-size:1rem;font-weight:600;border-radius:10px}.form-buttons .btn-ghost{background:transparent;border:1px solid #353545;color:#8888a0;transition:all .2s ease}.form-buttons .btn-ghost:hover{background:#1a1a22;color:#e8e8f0;border-color:#454555}.form-buttons .btn-primary{background:linear-gradient(135deg,#9d7aff,#7c5cd9);border:none;color:#fff;box-shadow:0 4px 12px #9d7aff4d;transition:transform .15s ease,box-shadow .15s ease}.form-buttons .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #9d7aff66}.form-buttons .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(min-width:768px){.add-account-form{min-width:380px;gap:18px}}.accounts-page{display:flex;flex-direction:column}.hero-amount-skeleton{width:180px;height:38px;margin:var(--sp-2) auto 0}.hero-change-skeleton{width:140px;height:24px;margin:var(--sp-3) auto 0;border-radius:var(--r-full)}.stat-skeleton{width:100%;height:50px}.account-icon-skeleton{width:32px;height:32px;border-radius:var(--r-sm)}.account-name-skeleton{width:60px;height:14px}.account-fullname-skeleton{width:100px;height:12px;margin-top:4px}.account-balance-skeleton{width:80px;height:16px;margin-left:auto}.account-actions-modal{padding:8px 0;min-width:320px}.account-actions-info{margin-bottom:16px;padding:12px;background:#0a0a0e;border:1px solid #252530;border-radius:8px}.account-actions-info .info-row{display:flex;justify-content:space-between;padding:6px 0}.account-actions-info .info-row:not(:last-child){border-bottom:1px solid #252530}.account-actions-info .info-label{font-size:.875rem;color:#8888a0}.account-actions-info .info-value{font-size:.875rem;font-weight:600;color:#e8e8f0}.account-actions-buttons{display:flex;flex-direction:column;gap:12px}.rename-form{display:flex;flex-direction:column;gap:16px}.rename-title{font-size:1rem;font-weight:600;color:#e8e8f0;margin:0 0 4px}.rename-error{padding:10px 14px;font-size:.875rem;color:#ff6b6b;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.2);border-radius:8px}.rename-buttons{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.transfer-form{display:flex;flex-direction:column;gap:16px}.transfer-title{font-size:1rem;font-weight:600;color:#e8e8f0;margin:0 0 4px}.transfer-amount-row{display:flex;gap:12px}.transfer-error{padding:10px 14px;font-size:.875rem;color:#ff6b6b;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.2);border-radius:8px}.transfer-buttons{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.form-title{font-size:1rem;font-weight:600;color:#e8e8f0;margin:0 0 12px}.form-error{padding:10px 14px;font-size:.875rem;color:#ff6b6b;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.2);border-radius:8px}.form-buttons{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.adjust-balance-form{display:flex;flex-direction:column;gap:16px}.current-balance-display{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#0a0a0e;border:1px solid #252530;border-radius:8px}.current-balance-display .label{font-size:.875rem;color:#8888a0}.current-balance-display .value{font-size:1rem;font-weight:600;color:#e8e8f0}.adjust-preview{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:8px;font-size:.875rem}.adjust-preview.income{background:#00d68f1a;border:1px solid rgba(0,214,143,.2)}.adjust-preview.expense{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.2)}.adjust-preview .preview-label{color:#8888a0}.adjust-preview .preview-value{font-weight:600}.confirm-dialog{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 0}.confirm-icon{font-size:2.5rem;margin-bottom:12px}.confirm-icon.danger{filter:grayscale(0)}.confirm-title{font-size:1.125rem;font-weight:600;color:#e8e8f0;margin:0 0 8px}.confirm-message{font-size:.875rem;color:#8888a0;line-height:1.5;margin:0 0 20px;max-width:280px}.confirm-buttons{display:flex;gap:12px;width:100%;justify-content:center}.confirm-buttons .btn{min-width:100px}.delete-confirm{padding:12px;background:#ff55551a;border:1px solid rgba(255,85,85,.2);border-radius:8px}.delete-warning{color:#ff6b6b;font-size:.875rem;margin-bottom:12px}.delete-confirm-buttons{display:flex;gap:8px;justify-content:flex-end}.account-menu-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);font-size:1.25rem;cursor:pointer;transition:all .15s ease;flex-shrink:0;margin-left:var(--sp-2)}.account-menu-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.drag-handle{display:flex;align-items:center;justify-content:center;width:20px;color:var(--text-tertiary);cursor:grab;font-size:.75rem;letter-spacing:-2px;-webkit-user-select:none;user-select:none;opacity:.5;transition:opacity .15s ease;flex-shrink:0}.account-row:hover .drag-handle{opacity:1}.drag-handle:active{cursor:grabbing}.account-row.dragging{opacity:.5;background:var(--bg-surface);transform:scale(.98)}.account-row.drag-over{border-top:2px solid var(--accent);padding-top:calc(var(--sp-3) - 2px)}.account-row[draggable=true]{cursor:grab}.account-row[draggable=true]:active{cursor:grabbing}.transaction-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-6);cursor:pointer;transition:background .15s ease;gap:var(--sp-4)}.transaction-item:hover{background:var(--bg-hover)}.transaction-item:focus{outline:none;background:var(--bg-hover)}.transaction-left{display:flex;align-items:center;gap:var(--sp-4);min-width:0;flex:1}.transaction-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md);font-size:1rem;flex-shrink:0;box-shadow:inset 0 1px #ffffff0d}.transaction-info{display:flex;flex-direction:column;gap:2px;min-width:0}.transaction-label{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.transaction-meta{font-size:.75rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.transaction-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:var(--sp-3)}.recurring-badge{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.75rem;color:#9d7aff;background:#9d7aff26;border-radius:50%;flex-shrink:0}.transaction-amount{font-family:var(--font-display);font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.transaction-item-skeleton{pointer-events:none}.skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-hover) 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-icon{width:40px;height:40px;border-radius:var(--r-md)}.skeleton-label{width:140px;height:16px;margin-bottom:4px}.skeleton-meta{width:100px;height:14px}.skeleton-amount{width:80px;height:16px}.transaction-item.skipped .transaction-amount{text-decoration:line-through;color:var(--text-tertiary)}.skipped-indicator{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);background:#8888a026;padding:2px 6px;border-radius:var(--r-sm);margin-left:var(--sp-2)}.overdue-menu{padding:var(--sp-2) 0}.overdue-menu-details{background:var(--bg-elevated);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-4)}.overdue-menu-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.overdue-menu-row:last-child{border-bottom:none}.overdue-menu-label{font-size:.875rem;color:var(--text-tertiary)}.overdue-menu-value{font-size:.875rem;color:var(--text-primary);font-weight:500;text-align:right}.overdue-menu-date{display:flex;align-items:center;gap:var(--sp-2)}.overdue-badge{font-size:.6875rem;font-weight:600;color:var(--expense);background:#ff6b6b26;padding:2px 6px;border-radius:var(--r-full)}.overdue-menu-actions{display:flex;flex-direction:column;gap:var(--sp-3)}.overdue-action-btn{width:100%}.pay-btn{background:var(--income)}.pay-btn:hover{background:color-mix(in srgb,var(--income) 85%,black)}.overdue-link-btn{background:none;border:none;color:var(--text-tertiary);font-size:.8125rem;cursor:pointer;padding:var(--sp-2);transition:color .15s ease}.overdue-link-btn:hover{color:var(--text-secondary);text-decoration:underline}.overdue-link-btn:disabled{opacity:.5;cursor:not-allowed}.overdue-menu-ignore{padding:var(--sp-3);background:#ff6b6b1a;border-radius:var(--r-md);border:1px solid rgba(255,107,107,.2)}.ignore-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--sp-2)}.ignore-description{font-size:.8125rem;color:var(--text-secondary);margin:0 0 var(--sp-4)}.ignore-actions{display:flex;flex-direction:column;gap:var(--sp-2)}.overdue-section{padding:0 var(--sp-6) var(--sp-4)}.overdue-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}.overdue-header-left{display:flex;align-items:center;gap:var(--sp-2)}.overdue-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--expense);color:#fff;font-size:.75rem;font-weight:700;border-radius:50%}.overdue-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--expense)}.overdue-count{font-size:.6875rem;font-weight:500;color:var(--text-tertiary)}.overdue-toggle{background:none;border:none;font-size:.8125rem;color:var(--accent);cursor:pointer;padding:0;transition:color .15s ease;font-weight:500}.overdue-toggle:hover{color:var(--accent-dim);text-decoration:underline}.overdue-card{background:var(--bg-surface);border:1px solid rgba(255,107,107,.3);border-left:3px solid var(--expense);border-radius:var(--r-lg);overflow:hidden}.overdue-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:#ff6b6b0d;cursor:pointer;transition:background .15s ease}.overdue-item:hover{background:#ff6b6b1a}.overdue-item:last-child{border-bottom:none}.overdue-item-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ff6b6b26;border-radius:var(--r-md);flex-shrink:0}.overdue-dot{width:10px;height:10px;background:var(--expense);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.9)}}.overdue-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.overdue-item-name{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.overdue-item-meta{font-size:.75rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.overdue-item-right{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.overdue-item-amount{font-family:var(--font-display);font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.overdue-item-amount.expense{color:var(--expense)}.overdue-item-amount.income{color:var(--income)}.overdue-item-arrow{color:var(--text-tertiary);display:flex;align-items:center;transition:transform .15s ease}.overdue-item:hover .overdue-item-arrow{transform:translateY(2px)}@media(max-width:480px){.overdue-section{padding-left:var(--sp-4);padding-right:var(--sp-4)}.overdue-item{padding:var(--sp-3);gap:var(--sp-2)}.overdue-item-icon{width:28px;height:28px}.overdue-dot{width:8px;height:8px}.overdue-item-amount{font-size:.8125rem}}.transactions-page{display:flex;flex-direction:column;height:100%}.page-header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-6);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.page-title{font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0}.page-header-right{display:flex;align-items:center;gap:var(--sp-3)}.date-range-label{font-size:.75rem;font-weight:500;color:var(--text-secondary);background:var(--bg-elevated);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full)}.date-range-controls{padding:var(--sp-3) var(--sp-6);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);overflow-x:auto;-webkit-overflow-scrolling:touch}.date-presets{display:flex;gap:var(--sp-2);min-width:max-content}.date-preset-btn{padding:var(--sp-2) var(--sp-3);font-size:.75rem;font-weight:500;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-full);cursor:pointer;transition:all .15s ease;white-space:nowrap}.date-preset-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.date-preset-btn.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.date-preset-btn.month-btn{display:flex;align-items:center;gap:var(--sp-1)}.date-preset-btn.month-btn svg{opacity:.8}.date-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-full);cursor:pointer;transition:all .15s ease;flex-shrink:0}.date-nav-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.date-nav-btn:disabled{opacity:.3;cursor:not-allowed}.date-nav-btn svg{opacity:.8}.search-bar{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.search-bar .search-input{flex:1}.settings-btn{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.settings-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.settings-btn.has-filters{border-color:var(--accent);color:var(--accent)}.filter-badge{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--accent);border-radius:50%;border:2px solid var(--bg-surface)}.summary-bar{display:grid;gap:1px;padding:0;background:var(--border-subtle);border-radius:var(--r-lg);margin:var(--sp-4) var(--sp-6);overflow:hidden;border:1px solid var(--border-subtle)}.stat-card{padding:var(--sp-4) var(--sp-5);background:var(--bg-surface);position:relative}.stat-card:first-child{border-radius:var(--r-lg) 0 0 var(--r-lg)}.stat-card:first-child:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--income);border-radius:var(--r-lg) 0 0 var(--r-lg)}.stat-card:nth-child(2):before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--expense)}.stat-card:last-child{border-radius:0 var(--r-lg) var(--r-lg) 0}.stat-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:var(--sp-2)}.stat-value{font-family:var(--font-display);font-size:1.125rem;font-weight:700;font-variant-numeric:tabular-nums}.filter-row{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-6) var(--sp-4)}.type-select{width:140px;font-size:.8125rem}.clear-filters-btn{font-size:.75rem;font-weight:500;color:var(--accent);background:none;border:none;cursor:pointer;padding:0;transition:color .15s ease}.clear-filters-btn:hover{color:var(--accent-dim);text-decoration:underline}.upcoming-section{padding:0 var(--sp-6) var(--sp-4)}.upcoming-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}.upcoming-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--warning)}.upcoming-toggle{background:none;border:none;font-size:.8125rem;color:var(--accent);cursor:pointer;padding:0;transition:color .15s ease;font-weight:500}.upcoming-toggle:hover{color:var(--accent-dim);text-decoration:underline}.upcoming-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-left:3px solid var(--warning);border-radius:var(--r-lg);overflow:hidden}.upcoming-item{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--border-subtle);background:var(--warning-bg);transition:background .15s ease}.upcoming-item:hover{background:color-mix(in srgb,var(--warning-bg) 70%,var(--bg-hover))}.upcoming-item:last-child{border-bottom:none}.upcoming-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1rem;background:#f59e0b26;border-radius:var(--r-md);flex-shrink:0;box-shadow:inset 0 1px #ffffff0d}.upcoming-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.upcoming-name{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.upcoming-meta{font-size:.75rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.upcoming-amount{font-family:var(--font-display);font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0;text-align:right;white-space:nowrap}.transactions-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--sp-4) var(--sp-6) var(--sp-6)}.transactions-list::-webkit-scrollbar{width:4px}.transactions-list::-webkit-scrollbar-track{background:transparent}.transactions-list::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.transactions-list::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.month-group{margin-bottom:var(--sp-6)}.month-header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) 0;margin-bottom:var(--sp-3)}.month-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.month-count{font-size:.6875rem;color:var(--text-tertiary)}.month-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden}.day-group{border-bottom:1px solid var(--border-subtle)}.day-group:last-child{border-bottom:none}.date-header{padding:var(--sp-3) var(--sp-6);font-size:.875rem;font-weight:600;color:var(--text-primary);background:var(--bg-deep);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:5}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--sp-12) var(--sp-8);color:var(--text-secondary);min-height:300px}.empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:var(--accent);background:var(--accent-glow);border-radius:50%;margin-bottom:var(--sp-4)}.empty-state h3{font-size:1rem;color:var(--text-primary);margin-bottom:var(--sp-2)}.empty-state p{font-size:.8125rem;color:var(--text-tertiary)}.loading-more{padding:var(--sp-4) 0}.end-of-list{text-align:center;padding:var(--sp-4);font-size:.8125rem;color:var(--text-tertiary)}.page-error p{font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--sp-6)}.text-transfer{color:var(--transfer)}@media(max-width:480px){.summary-bar{margin:0 var(--sp-4) var(--sp-3)}.upcoming-section,.filter-row,.transactions-list,.search-bar,.page-header{padding-left:var(--sp-4);padding-right:var(--sp-4)}.stat-value{font-size:1rem}}.transaction-actions-modal{padding:var(--sp-2) 0}.txn-details{background:var(--bg-elevated);border-radius:var(--r-sm);padding:var(--sp-3);margin-bottom:var(--sp-4)}.txn-detail-row{display:flex;justify-content:space-between;padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.txn-detail-row:last-child{border-bottom:none}.txn-detail-label{font-size:.875rem;color:var(--text-tertiary)}.txn-detail-value{font-size:.875rem;color:var(--text-primary);font-weight:500}.txn-detail-value.type-income{color:var(--income);text-transform:capitalize}.txn-detail-value.type-expense{color:var(--expense);text-transform:capitalize}.txn-detail-value.type-transfer{color:var(--accent);text-transform:capitalize}.txn-actions-buttons{display:flex;flex-direction:column;gap:var(--sp-3)}.txn-edit-form{margin-bottom:var(--sp-4)}.txn-edit-form .form-group{margin-bottom:var(--sp-3)}.txn-edit-form label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--sp-1)}.txn-edit-form label .hint{font-size:.75rem;color:var(--text-tertiary);font-weight:400;margin-left:var(--sp-1)}.delete-confirm{padding:var(--sp-3);background:#ff55551a;border-radius:var(--r-sm)}.delete-warning{color:var(--expense);font-size:.875rem;margin-bottom:var(--sp-3)}.delete-confirm-buttons{display:flex;gap:var(--sp-2);justify-content:flex-end}.recurring-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#0a0a0e;border:1px solid #252530;border-radius:8px;margin-bottom:16px;cursor:pointer}.recurring-label{display:flex;align-items:center;gap:10px;font-size:.9rem;color:#e8e8f0}.recurring-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#9d7aff26;color:#9d7aff;border-radius:50%;font-size:.875rem}.toggle-btn{position:relative;width:44px;height:24px;background:#252530;border:none;border-radius:12px;cursor:pointer;transition:background .2s ease}.toggle-btn.active{background:#9d7aff30}.toggle-knob{position:absolute;width:18px;height:18px;background:#8888a0;border-radius:50%;top:3px;left:3px;transition:transform .2s ease,background .2s ease}.toggle-btn.active .toggle-knob{transform:translate(20px);background:#9d7aff}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.search-options-modal{padding:var(--sp-2) 0}.filter-group{margin-bottom:var(--sp-4)}.filter-label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--sp-2)}.filter-hint{font-size:.6875rem;color:var(--text-tertiary);margin-top:var(--sp-1);margin-bottom:0}.amount-range-inputs{display:flex;align-items:center;gap:var(--sp-2)}.amount-range-inputs input{flex:1}.amount-range-separator{font-size:.8125rem;color:var(--text-tertiary)}.search-options-actions{display:flex;justify-content:flex-end;gap:var(--sp-3);padding-top:var(--sp-4);border-top:1px solid var(--border-subtle);margin-top:var(--sp-4)}.month-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.month-picker{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-4);width:280px;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.month-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.month-picker-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.month-picker-nav:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.month-picker-nav:disabled{opacity:.3;cursor:not-allowed}.month-picker-year{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-primary)}.month-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2)}.month-picker-btn{padding:var(--sp-2) var(--sp-1);font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);cursor:pointer;transition:all .15s ease}.month-picker-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.month-picker-btn:disabled{opacity:.3;cursor:not-allowed}.month-picker-btn.selected{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}@media(max-width:480px){.date-range-controls{padding-left:var(--sp-4);padding-right:var(--sp-4)}.date-preset-btn{padding:var(--sp-1) var(--sp-2);font-size:.6875rem}.date-nav-btn{width:28px;height:28px}.date-nav-btn svg{width:12px;height:12px}.date-range-label{display:none}}.skip-btn{color:var(--text-tertiary);border-color:var(--border-subtle)}.skip-btn:hover{color:var(--text-secondary);border-color:var(--border-default)}.skipped-badge-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#8888a01a;border:1px solid rgba(136,136,160,.2);border-radius:8px;margin-bottom:16px}.skipped-badge{font-size:.6875rem;font-weight:700;letter-spacing:.05em;color:var(--text-tertiary);background:#8888a033;padding:4px 10px;border-radius:var(--r-full)}.unskip-link{background:none;border:none;color:var(--accent);font-size:.8125rem;font-weight:500;cursor:pointer;padding:0;transition:color .15s ease}.unskip-link:hover{color:var(--accent-dim);text-decoration:underline}.unskip-link:disabled{opacity:.5;cursor:not-allowed}.transaction-item.skipped{opacity:.6}.transaction-item.skipped .txn-amount{text-decoration:line-through;color:var(--text-tertiary)}.transaction-item .skipped-indicator{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);background:#8888a026;padding:2px 6px;border-radius:var(--r-sm);margin-left:var(--sp-2)}.overview-page{display:flex;flex-direction:column;gap:var(--sp-4);padding-bottom:var(--sp-8)}.overview-page .header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-6)}.overview-page .header-title{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.overview-page .header-actions{display:flex;gap:var(--sp-2)}.period-selector{display:flex;justify-content:center;gap:var(--sp-2);padding:0 var(--sp-6)}.period-btn{padding:var(--sp-2) var(--sp-4);font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--r-pill);cursor:pointer;transition:all .15s ease}.period-btn:hover{color:var(--text-primary);border-color:var(--border-default)}.period-btn.active{color:var(--accent);background:var(--accent-glow);border-color:var(--accent)}.time-filter{display:flex;justify-content:center;padding:var(--sp-2) var(--sp-6)}.time-nav{display:flex;align-items:center;gap:var(--sp-4)}.time-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:50%;cursor:pointer;transition:all .15s ease}.time-btn:hover{color:var(--text-primary);border-color:var(--accent)}.time-label{font-size:.9375rem;font-weight:600;color:var(--text-primary);min-width:140px;text-align:center}.comparison-card{margin:0 var(--sp-6);padding:var(--sp-5);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.comparison-bar{display:flex;height:12px;border-radius:var(--r-pill);overflow:hidden;margin-bottom:var(--sp-4)}.comparison-segment{height:100%;transition:width .3s ease}.income-segment{background:var(--income)}.expense-segment{background:var(--expense)}.comparison-labels{display:flex;justify-content:space-between;margin-bottom:var(--sp-4)}.comparison-item{display:flex;align-items:center;gap:var(--sp-2)}.comparison-dot{width:8px;height:8px;border-radius:50%}.income-dot{background:var(--income)}.expense-dot{background:var(--expense)}.comparison-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.comparison-value{font-size:.9375rem;font-weight:600}.net-flow{display:flex;justify-content:space-between;align-items:center;padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.net-label{font-size:.8125rem;color:var(--text-secondary)}.net-value{font-size:1.125rem;font-weight:700}.comparison-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);padding:0 var(--sp-6)}.vs-card{padding:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-align:center}.vs-label{font-size:.6875rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-2)}.vs-change{font-size:1.25rem;font-weight:700;margin-bottom:var(--sp-1)}.vs-change.positive{color:var(--income)}.vs-change.negative{color:var(--expense)}.vs-detail{font-size:.75rem;color:var(--text-secondary)}.section-head{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-6) var(--sp-2)}.section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.section-action{font-size:.75rem;color:var(--accent);text-decoration:none}.list-card{margin:0 var(--sp-6);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden}.section-loading,.section-empty{padding:var(--sp-8);text-align:center;color:var(--text-tertiary);font-size:.8125rem}.overview-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.overview-row:last-child{border-bottom:none}.overview-rank{width:20px;font-size:.75rem;font-weight:600;color:var(--text-tertiary);text-align:center;flex-shrink:0}.overview-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1rem;border-radius:var(--r-md);flex-shrink:0}.overview-info{flex:1;min-width:0}.overview-name{font-size:.8125rem;font-weight:500;color:var(--text-primary);margin-bottom:var(--sp-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-bar{height:4px;background:var(--bg-deep);border-radius:var(--r-pill);overflow:hidden}.bar-fill{height:100%;border-radius:var(--r-pill);transition:width .3s ease}.overview-amount{font-size:.8125rem;font-weight:600;white-space:nowrap;flex-shrink:0}.overview-percent{width:40px;font-size:.75rem;color:var(--text-tertiary);text-align:right;flex-shrink:0}.chart-card{margin:0 var(--sp-6);padding:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.chart-placeholder{min-height:180px}.chart-bars{display:flex;justify-content:space-around;align-items:flex-end;height:140px;padding:var(--sp-4) 0}.chart-bar-group{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:40px}.chart-bar-group>div:first-child,.chart-bar-group>div:nth-child(2){display:flex;gap:3px}.chart-bar{width:14px;border-radius:var(--r-sm) var(--r-sm) 0 0;transition:height .3s ease}.chart-bar--income{background:var(--income)}.chart-bar--expense{background:var(--expense)}.chart-bar-label{font-size:.6875rem;color:var(--text-tertiary);text-align:center}.chart-legend{display:flex;justify-content:center;gap:var(--sp-6);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.legend-item{display:flex;align-items:center;gap:var(--sp-2);font-size:.75rem;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%}.quick-links{display:flex;flex-direction:column;gap:var(--sp-2);padding:0 var(--sp-6)}.quick-link{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-decoration:none;transition:all .15s ease}.quick-link:hover{border-color:var(--accent);background:var(--bg-surface)}.quick-link-icon{font-size:1.25rem}.quick-link-text{flex:1;font-size:.875rem;font-weight:500;color:var(--text-primary)}.quick-link-arrow{font-size:.875rem;color:var(--text-tertiary)}.date-range-picker{position:relative;z-index:100}.date-range-btn{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-primary);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:all .15s ease;min-width:140px}.date-range-btn:hover{background:var(--bg-hover);border-color:var(--border-default)}.date-range-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.date-range-icon{font-size:1rem}.date-range-label{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.date-range-arrow{font-size:.625rem;color:var(--text-tertiary);transition:transform .2s ease}.date-range-arrow.open{transform:rotate(180deg)}.date-range-dropdown{position:absolute;top:calc(100% + var(--sp-2));right:0;min-width:180px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:0 8px 32px #0006;overflow:hidden;animation:dropdownSlide .15s ease}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.date-range-presets{display:flex;flex-direction:column;padding:var(--sp-2);gap:2px}.date-range-option{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;border-radius:var(--r-sm);color:var(--text-secondary);font-size:var(--fs-sm);text-align:left;cursor:pointer;transition:all .1s ease}.date-range-option:hover{background:var(--bg-hover);color:var(--text-primary)}.date-range-option.active{background:var(--accent-subtle);color:var(--accent);font-weight:500}.option-check{font-size:.75rem;color:var(--accent)}@media(max-width:480px){.date-range-btn{min-width:120px;padding:var(--sp-2)}.date-range-dropdown{left:0;right:0;min-width:unset}}.analytics-page{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6);padding-bottom:calc(var(--sp-8) + 80px);overflow-y:auto;height:100%}.analytics-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--sp-2)}.analytics-header .page-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0}.header-actions{display:flex;align-items:center;gap:var(--sp-2)}.config-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .15s ease}.config-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.config-btn.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent)}.date-picker-btn{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-primary);font-size:.75rem;cursor:pointer;transition:all .15s ease}.date-picker-btn:hover{background:var(--bg-hover);border-color:var(--border-default)}.dropdown-arrow{font-size:.5rem;color:var(--text-tertiary);margin-left:var(--sp-1)}.config-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-4);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.config-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}.config-title{font-size:.75rem;font-weight:600;color:var(--text-primary)}.config-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;color:var(--text-tertiary);font-size:1rem;cursor:pointer;border-radius:var(--r-sm);transition:all .15s ease}.config-close:hover{background:var(--bg-hover);color:var(--text-primary)}.config-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.config-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-hover);border-radius:var(--r-md);cursor:pointer;transition:background .15s ease}.config-item:hover{background:var(--bg-active)}.config-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent)}.config-icon{font-size:.875rem}.config-name{font-size:.6875rem;color:var(--text-secondary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-head{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) 0}.section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.section-action{font-size:.6875rem;color:var(--accent);cursor:pointer;transition:opacity .15s ease}.section-action:hover{opacity:.8}.health-card{display:flex;align-items:center;gap:var(--sp-6);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-5)}.health-score{text-align:center;flex-shrink:0}.health-ring{width:80px;height:80px;position:relative}.health-ring svg{width:100%;height:100%}.health-value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.5rem;font-weight:700}.health-label{font-size:.6875rem;color:var(--text-tertiary);margin-top:var(--sp-2)}.health-status{flex:1}.status-badge{display:inline-block;padding:var(--sp-1) var(--sp-3);font-size:.6875rem;font-weight:600;border-radius:var(--r-full);margin-bottom:var(--sp-2)}.status-badge--good{background:var(--income-bg);color:var(--income)}.status-badge--okay{background:var(--accent-glow);color:var(--accent)}.status-badge--warning{background:var(--warning-bg);color:var(--warning)}.status-badge--danger{background:var(--expense-bg);color:var(--expense)}.health-summary{font-size:.75rem;color:var(--text-secondary);line-height:1.4;margin:0}.pie-chart-card{display:flex;gap:var(--sp-6);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-6);min-height:200px}.pie-chart-container{position:relative;width:180px;height:180px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:10}.donut-total-label{font-size:.6875rem;font-weight:500;color:var(--text-tertiary);margin-bottom:var(--sp-1)}.donut-total-value{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.pie-legend{flex:1;display:flex;flex-direction:column;gap:var(--sp-3);justify-content:center;padding:var(--sp-2) 0}.legend-row{display:flex;align-items:center;gap:var(--sp-3);font-size:.75rem;padding:var(--sp-1) 0;transition:opacity .15s ease}.legend-row:hover{opacity:.8}.legend-color{width:12px;height:12px;border-radius:3px;flex-shrink:0;box-shadow:0 2px 4px #0003}.legend-name{flex:1;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-value{font-weight:600;color:var(--text-primary);min-width:60px;text-align:right}.legend-pct{color:var(--text-tertiary);font-size:.6875rem;min-width:36px;text-align:right}.section-total{font-size:1rem;font-weight:700;color:var(--income)}.income-breakdown-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-4)}.income-list{display:flex;flex-direction:column;gap:var(--sp-2)}.income-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-radius:var(--r-md);border-left:3px solid var(--income);transition:all .15s ease}.income-row:hover{background:var(--bg-hover)}.income-row.adjustment{opacity:.7;border-left-color:var(--accent)}.income-rank{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--income-glow, rgba(158, 206, 106, .15));color:var(--income);border-radius:var(--r-sm);font-size:.75rem;font-weight:700;flex-shrink:0}.income-row.adjustment .income-rank{background:var(--accent-glow);color:var(--accent)}.income-details{flex:1;min-width:0}.income-amount{font-size:1rem;font-weight:700;color:var(--income)}.income-row.adjustment .income-amount{color:var(--accent)}.income-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:.75rem;color:var(--text-secondary);margin-top:2px}.income-account{font-weight:600;color:var(--text-primary)}.income-desc{color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.income-badge{padding:1px 5px;background:var(--accent-glow);color:var(--accent);border-radius:var(--r-xs);font-size:.625rem;font-weight:700;letter-spacing:.03em}.income-date{font-size:.75rem;color:var(--text-tertiary);flex-shrink:0}.income-pct{font-size:.75rem;color:var(--text-secondary);font-weight:600;min-width:32px;text-align:right}.income-more{text-align:center;font-size:.75rem;color:var(--text-tertiary);padding:var(--sp-2)}.adjustments-note{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3);margin-top:var(--sp-3);background:var(--bg-hover);border-radius:var(--r-md);font-size:.75rem;color:var(--text-secondary);border:1px dashed var(--border-subtle)}.adjustments-label{color:var(--text-tertiary)}.adjustments-value{font-weight:700;color:var(--accent)}.adjustments-count{color:var(--text-tertiary)}.mom-section{display:flex;flex-direction:column;gap:var(--sp-3)}.mom-cards{display:flex;align-items:center;gap:var(--sp-3)}.mom-card{flex:1;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-4)}.mom-current{border-color:var(--accent)}.mom-previous{opacity:.7}.mom-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}.mom-month{font-family:var(--font-display);font-size:.8125rem;font-weight:600;color:var(--text-primary)}.mom-badge{font-size:.5625rem;font-weight:600;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-full);background:var(--accent-glow);color:var(--accent)}.mom-badge-dim{background:var(--bg-hover);color:var(--text-tertiary)}.mom-stats{display:flex;flex-direction:column;gap:var(--sp-2)}.mom-stat{display:flex;justify-content:space-between;align-items:center}.mom-stat-label{font-size:.6875rem;color:var(--text-tertiary)}.mom-stat-value{font-size:.75rem;font-weight:600;color:var(--text-primary)}.mom-vs{font-size:.75rem;font-weight:600;color:var(--text-tertiary);flex-shrink:0}.mom-changes{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.change-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border-radius:var(--r-full);font-size:.6875rem}.change-item--up .change-icon{color:var(--income)}.change-item--down .change-icon{color:var(--expense)}.change-icon{font-weight:700}.change-text{color:var(--text-secondary)}.change-text strong{color:var(--text-primary)}.list-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden}.pay-cycle-row{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.pay-cycle-row:last-child{border-bottom:none}.pay-cycle-icon{font-size:1.25rem;flex-shrink:0}.pay-cycle-info{flex:1;min-width:0}.pay-cycle-name{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.pay-cycle-schedule{font-size:.6875rem;color:var(--text-tertiary)}.pay-cycle-amount{font-weight:600;font-size:.8125rem}.bill-row{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.bill-row:last-child{border-bottom:none}.bill-day{width:44px;font-family:var(--font-display);font-size:.75rem;font-weight:600;color:var(--accent);text-align:center;flex-shrink:0}.bill-info{flex:1;min-width:0}.bill-name{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.bill-account{font-size:.6875rem;color:var(--text-tertiary)}.bill-amount{font-size:.8125rem;font-weight:600}.timeline-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-5)}.timeline-chart{margin-bottom:var(--sp-3)}.timeline-events{display:flex;justify-content:space-around;padding:var(--sp-2) 0;margin-bottom:var(--sp-3)}.timeline-event{display:flex;align-items:center;gap:var(--sp-2);font-size:.625rem}.event-dot{width:8px;height:8px;border-radius:50%}.timeline-event.expense .event-dot{background:var(--expense)}.timeline-event.income .event-dot{background:var(--income)}.event-label{color:var(--text-secondary);white-space:nowrap}.timeline-footer{padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.projection{display:flex;justify-content:space-between;align-items:center;font-size:.6875rem}.proj-label{color:var(--text-tertiary)}.proj-value{color:var(--warning);font-weight:500}.insights-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}.insight-card{display:flex;gap:var(--sp-3);padding:var(--sp-4);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);border-left:3px solid var(--border-subtle)}.insight-card--warning{border-left-color:var(--warning)}.insight-card--tip{border-left-color:var(--cyan)}.insight-card--success{border-left-color:var(--income)}.insight-card--info{border-left-color:var(--accent)}.insight-icon{font-size:1rem;flex-shrink:0}.insight-content{flex:1;min-width:0}.insight-title{font-size:.75rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.insight-desc{font-size:.6875rem;color:var(--text-secondary);line-height:1.4}.chart-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-5)}.chart-subtitle{font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--sp-4)}.chart-container{margin-top:var(--sp-2);-webkit-font-smoothing:antialiased}.chart-loading,.chart-empty{display:flex;align-items:center;justify-content:center;height:180px;color:var(--text-tertiary);font-size:.8125rem;background:var(--bg-surface);border-radius:var(--r-md)}.page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--sp-8);min-height:50vh}.page-error h2{font-size:1rem;color:var(--expense);margin-bottom:var(--sp-3)}.page-error p{font-size:.8125rem;color:var(--text-secondary)}.recharts-legend-item-text{color:var(--text-secondary)!important;font-size:.75rem!important}.recharts-tooltip-label{color:var(--text-primary)!important;font-weight:600!important}.recharts-tooltip-wrapper{outline:none}.recharts-tooltip-cursor{fill:var(--accent-glow)}.recharts-default-tooltip{background:var(--bg-elevated)!important;border:1px solid var(--border-subtle)!important;border-radius:8px!important;box-shadow:0 8px 24px #0006!important;padding:10px 14px!important}.recharts-tooltip-item{color:var(--text-primary)!important;font-size:.8125rem!important}.recharts-tooltip-item-name{color:var(--text-secondary)!important}.recharts-bar-rectangle{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.recharts-area-area{filter:drop-shadow(0 0 8px rgba(124,92,255,.3))}.recharts-pie-sector{filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.analytics-page::-webkit-scrollbar{width:4px}.analytics-page::-webkit-scrollbar-track{background:transparent}.analytics-page::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.analytics-page::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-6);text-align:center;min-height:120px}.empty-icon{font-size:2rem;margin-bottom:var(--sp-2);opacity:.6}.empty-text{color:var(--text-secondary);font-size:.875rem;font-weight:500}.empty-hint{color:var(--text-tertiary);font-size:.75rem;margin-top:var(--sp-1)}.loading-state{display:flex;align-items:center;justify-content:center;padding:var(--sp-4);color:var(--text-tertiary);font-size:.875rem}@media(min-width:768px){.analytics-page{max-width:800px;margin:0 auto;padding:var(--sp-6) var(--sp-8);padding-bottom:var(--sp-8)}.health-card{gap:var(--sp-8);padding:var(--sp-6)}.health-ring{width:100px;height:100px}.health-value{font-size:1.75rem}.pie-chart-card{padding:var(--sp-8);gap:var(--sp-8)}.pie-chart-container{width:200px;height:200px}.donut-total-value{font-size:1.5rem}.legend-row{font-size:.8125rem}.legend-color{width:14px;height:14px}.mom-cards{gap:var(--sp-4)}.mom-card{padding:var(--sp-5)}.config-grid{grid-template-columns:repeat(3,1fr)}.insights-grid{grid-template-columns:repeat(2,1fr)}.timeline-card{padding:var(--sp-6)}.chart-card{padding:var(--sp-5)}}@media(min-width:1024px){.analytics-page{max-width:900px}.config-grid{grid-template-columns:repeat(4,1fr)}}.categories-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.categories-header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-6)}.categories-header .page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0}.header-action-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.header-action-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.05)}.category-tabs{display:flex;gap:var(--sp-2);padding:0 var(--sp-6) var(--sp-4)}.category-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);font-size:.875rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.category-tab .tab-icon{font-size:1rem}.category-tab:hover{background:var(--bg-surface);border-color:var(--border-default)}.category-tab.active.expense{background:#ff555526;border-color:var(--expense);color:var(--expense)}.category-tab.active.income{background:#50c87826;border-color:var(--income);color:var(--income)}.month-selector{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-6) var(--sp-4)}.month-nav{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.month-nav:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--accent)}.month-label{font-size:1rem;font-weight:600;color:var(--text-primary);min-width:160px;text-align:center}.total-summary-card{margin:0 var(--sp-6) var(--sp-4);padding:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-align:center}.total-summary-card.expense{border-left:4px solid var(--expense)}.total-summary-card.income{border-left:4px solid var(--income)}.total-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--sp-1)}.total-amount{font-size:2rem;font-weight:700;font-family:var(--font-mono)}.total-summary-card.expense .total-amount{color:var(--expense)}.total-summary-card.income .total-amount{color:var(--income)}.total-meta{font-size:.75rem;color:var(--text-tertiary);margin-top:var(--sp-1)}.categories-list{flex:1;overflow-y:auto;padding:0 var(--sp-6) var(--sp-6)}.categories-section{margin-bottom:var(--sp-4)}.section-header{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.section-title{font-size:.75rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.section-count{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:var(--r-full);font-size:.6875rem;font-weight:600;color:var(--text-tertiary)}.categories-grid{display:flex;flex-direction:column;gap:var(--sp-2)}.category-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);cursor:pointer;transition:all .2s ease;text-align:left;width:100%;position:relative;overflow:hidden}.category-card:hover{background:var(--bg-surface);border-color:var(--border-default);transform:translate(4px)}.category-card.expense:hover{border-color:var(--expense)}.category-card.income:hover{border-color:var(--income)}.category-card-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;border-radius:var(--r-md);flex-shrink:0}.category-card-content{flex:1;min-width:0}.category-card-name{font-size:.9375rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-card-count{font-size:.75rem;color:var(--text-tertiary);margin-top:2px}.category-card-amount{font-size:1rem;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);flex-shrink:0}.category-card.expense .category-card-amount{color:var(--expense)}.category-card.income .category-card-amount{color:var(--income)}.category-card-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--bg-surface)}.category-card-progress .progress-fill{height:100%;border-radius:0 0 var(--r-lg) var(--r-lg);transition:width .3s ease}.empty-categories-grid{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.category-chip{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-full);font-size:.8125rem;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.category-chip:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--accent)}.chip-icon{font-size:1rem}.chip-name{font-weight:500}.categories-loading,.categories-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:250px;gap:var(--sp-3);color:var(--text-tertiary)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.empty-icon{font-size:3rem;opacity:.5}.empty-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin:0}.empty-text{font-size:.875rem;color:var(--text-tertiary);margin:0}.text-expense{color:var(--expense)}.text-income{color:var(--income)}.category-detail-modal{padding:0;width:100%;min-width:min(420px,95vw);max-width:520px}.category-detail-header{display:flex;flex-direction:column;align-items:center;padding:var(--sp-6) var(--sp-4) var(--sp-5);background:linear-gradient(180deg,var(--bg-surface) 0%,transparent 100%);border-radius:var(--r-lg) var(--r-lg) 0 0;margin:calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.category-detail-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;border-radius:var(--r-xl);margin-bottom:var(--sp-4);box-shadow:0 8px 24px #0003;animation:iconPop .3s ease-out}@keyframes iconPop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.category-detail-title{display:flex;align-items:center;gap:var(--sp-3)}.category-detail-title h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.02em}.rename-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:var(--r-md);transition:all .2s ease}.rename-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.05)}.category-edit-name{width:100%;max-width:280px;display:flex;flex-direction:column;gap:var(--sp-3)}.category-edit-actions{display:flex;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-2)}.category-detail-type{margin-top:var(--sp-3)}.type-pill{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-4);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;border-radius:var(--r-full)}.type-pill.expense{background:#f553;color:var(--expense);border:1px solid rgba(255,85,85,.3)}.type-pill.income{background:#50c87833;color:var(--income);border:1px solid rgba(80,200,120,.3)}.category-detail-month{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);margin-bottom:var(--sp-5)}.month-nav-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:var(--r-md);transition:all .2s ease}.month-nav-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.05)}.month-nav-btn:active{transform:scale(.95)}.month-text{font-size:1.0625rem;font-weight:700;color:var(--text-primary);min-width:160px;text-align:center}.category-detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-5)}.stat-item{padding:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-align:center;transition:all .2s ease}.stat-item:hover{border-color:var(--accent);transform:translateY(-2px)}.stat-item .stat-label{font-size:.6875rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:var(--sp-2)}.stat-item .stat-value{font-size:1.25rem;font-weight:800;color:var(--text-primary);font-family:var(--font-mono)}.category-detail-budget{margin-bottom:var(--sp-5);padding:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.budget-label{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--sp-3);font-weight:500}.budget-progress{height:12px;background:var(--bg-surface);border-radius:6px;overflow:hidden;box-shadow:inset 0 1px 3px #0003}.budget-progress-fill{height:100%;border-radius:6px;transition:width .5s ease-out;box-shadow:0 2px 8px #0003}.category-detail-transactions{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden}.transactions-title{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-3);font-size:.8125rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin:0;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.transactions-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-8) var(--sp-4);color:var(--text-tertiary);min-height:200px}.transactions-empty .empty-icon{font-size:3.5rem;margin-bottom:var(--sp-4);opacity:.6}.transactions-empty p{margin:0;font-size:1rem;font-weight:500}.category-txn-list{display:flex;flex-direction:column;max-height:400px;min-height:150px;overflow-y:auto;scroll-behavior:smooth}.category-txn-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border-subtle);transition:background .15s ease}.category-txn-row:last-child{border-bottom:none}.category-txn-row:hover{background:var(--bg-surface)}.category-txn-info{flex:1;min-width:0}.category-txn-description{font-size:.9375rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.category-txn-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:.75rem;color:var(--text-tertiary)}.category-txn-date{font-weight:500}.category-txn-separator{opacity:.4;font-size:.5rem}.category-txn-account{padding:2px 8px;background:var(--bg-surface);border-radius:var(--r-sm);font-weight:500}.category-txn-amount{font-size:1rem;font-weight:700;font-family:var(--font-mono);flex-shrink:0;padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border-radius:var(--r-md)}.categories-list::-webkit-scrollbar,.category-txn-list::-webkit-scrollbar{width:4px}.categories-list::-webkit-scrollbar-track,.category-txn-list::-webkit-scrollbar-track{background:transparent}.categories-list::-webkit-scrollbar-thumb,.category-txn-list::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}@media(min-width:768px){.categories-page{max-width:800px;margin:0 auto}.category-card{padding:var(--sp-4)}.category-card-icon{width:52px;height:52px;font-size:1.5rem}.category-detail-modal{min-width:500px;max-width:580px}.category-detail-header{padding:var(--sp-8) var(--sp-6) var(--sp-6)}.category-detail-icon{width:96px;height:96px;font-size:3rem}.category-detail-title h2{font-size:1.75rem}.category-txn-list{max-height:450px}.category-txn-row{padding:var(--sp-4) var(--sp-5)}.category-txn-description{font-size:1rem}.category-txn-amount{font-size:1.0625rem;padding:var(--sp-2) var(--sp-4)}}.delete-account-modal{display:flex;flex-direction:column;gap:20px}.delete-account-modal .warning-icon{display:flex;justify-content:center;margin-bottom:8px}.delete-account-modal .warning-icon svg{color:var(--color-danger, #e74c3c);stroke-width:2}.delete-account-modal .warning-text{text-align:center}.delete-account-modal .warning-text h3{margin:0 0 16px;font-size:1.125rem;font-weight:600;color:var(--text-primary, #e8e8f0)}.delete-account-modal .warning-text p{margin:0 0 12px;color:var(--text-secondary, #8888a0);font-size:.9375rem;line-height:1.5}.delete-account-modal .warning-text ul{margin:12px 0;padding-left:24px;text-align:left;color:var(--text-secondary, #8888a0);font-size:.9375rem;line-height:1.6}.delete-account-modal .warning-text ul li{margin-bottom:6px}.delete-account-modal .warning-text .recommendation{margin-top:16px;padding:12px;background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:8px;color:var(--text-primary, #e8e8f0);font-size:.875rem}.delete-account-modal .warning-text .recommendation strong{color:#ffc107}.delete-account-modal .confirm-input-group{display:flex;flex-direction:column;gap:8px}.delete-account-modal .confirm-input-group label{font-size:.9375rem;color:var(--text-secondary, #8888a0);text-align:center}.delete-account-modal .confirm-input-group label strong{color:var(--color-danger, #e74c3c);font-weight:600}.delete-account-modal .confirm-input-group input{padding:12px;background:var(--bg-surface, #1a1a20);border:1px solid var(--border-default, #252530);border-radius:8px;color:var(--text-primary, #e8e8f0);font-size:1rem;text-align:center;font-family:monospace;letter-spacing:2px;transition:all .2s ease}.delete-account-modal .confirm-input-group input:focus{outline:none;border-color:var(--color-danger, #e74c3c);box-shadow:0 0 0 3px #e74c3c1a}.delete-account-modal .confirm-input-group input::placeholder{color:var(--text-tertiary, #555566);letter-spacing:normal}.delete-account-modal .confirm-input-group input:disabled{opacity:.5;cursor:not-allowed}.delete-account-modal .deletion-progress{padding:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.delete-account-modal .progress-spinner{width:40px;height:40px;border:4px solid var(--border-default, #252530);border-top-color:var(--color-danger, #e74c3c);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.delete-account-modal .deletion-progress p{margin:0;color:var(--text-primary, #e8e8f0);font-size:.9375rem}.delete-account-modal .progress-note{color:var(--text-tertiary, #555566);font-size:.8125rem}.delete-account-modal .error-message{padding:12px;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:8px;color:var(--color-danger, #e74c3c);font-size:.875rem;text-align:center}.delete-account-modal .modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.delete-account-modal .modal-actions button{flex:1}@media(max-width:480px){.delete-account-modal .modal-actions{flex-direction:column-reverse}.delete-account-modal .warning-text ul{padding-left:20px;font-size:.875rem}}.settings-page{display:flex;flex-direction:column;gap:var(--sp-6);padding:var(--sp-4) var(--sp-6);padding-bottom:var(--sp-8)}.settings-section{display:flex;flex-direction:column;gap:var(--sp-3)}.settings-section .section-title{font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0}.account-card{padding:var(--sp-4)!important;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:var(--sp-4)}.account-info{display:flex;align-items:center;gap:var(--sp-3)}.account-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--border-subtle)}.account-details{flex:1;min-width:0}.account-name{font-size:1rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-email{font-size:.8125rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-card{padding:0!important;overflow:hidden}.support-link{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);color:var(--text-primary);text-decoration:none;transition:background .2s ease}.support-link:hover{background:var(--bg-hover)}.support-link-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:var(--r-md);color:var(--text-secondary);flex-shrink:0;transition:all .2s ease}.support-link:hover .support-link-icon{background:var(--accent-glow);color:var(--accent)}.support-link-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.support-link-title{font-size:.9375rem;font-weight:500;color:var(--text-primary)}.support-link-subtitle{font-size:.8125rem;color:var(--text-tertiary)}.support-link-arrow{color:var(--text-tertiary);flex-shrink:0;transition:transform .2s ease}.support-link:hover .support-link-arrow{transform:translate(2px,-2px);color:var(--accent)}.theme-card{padding:var(--sp-4)!important;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin-top:var(--sp-4)}@media(min-width:480px){.theme-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:640px){.theme-grid{grid-template-columns:repeat(5,1fr)}}.theme-option{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3);background:transparent;border:2px solid transparent;border-radius:var(--r-lg);cursor:pointer;transition:all .2s ease}.theme-option:hover{background:var(--bg-hover)}.theme-option.active{border-color:var(--accent);background:var(--accent-glow)}.theme-preview{width:48px;height:48px;border-radius:var(--r-md);border:1px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px}.theme-preview-accent{width:100%;height:8px;border-radius:2px}.theme-preview-text{width:60%;height:4px;border-radius:1px;opacity:.5}.theme-name{font-size:.75rem;color:var(--text-secondary);text-align:center;line-height:1.2}.theme-option.active .theme-name{color:var(--accent);font-weight:500}.font-size-card{padding:var(--sp-4)!important;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.font-size-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin-top:var(--sp-4)}.preset-btn{padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}.preset-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.preset-btn.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent)}.font-size-controls{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);margin-top:var(--sp-4);padding:var(--sp-3);background:var(--bg-surface);border-radius:var(--r-md)}.size-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.size-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--accent);border-color:var(--accent)}.size-btn:disabled{opacity:.4;cursor:not-allowed}.size-display{display:flex;align-items:baseline;gap:2px;min-width:60px;justify-content:center}.size-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.size-unit{font-size:.875rem;color:var(--text-tertiary)}.reset-btn{display:block;width:100%;margin-top:var(--sp-3);padding:var(--sp-2);background:none;border:none;color:var(--text-tertiary);font-size:.75rem;cursor:pointer;transition:color .15s ease}.reset-btn:hover{color:var(--accent)}@media(max-width:400px){.font-size-presets{grid-template-columns:repeat(2,1fr)}}.settings-card{padding:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}.settings-card-header{margin-bottom:var(--sp-3)}.settings-card-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.settings-card-desc{font-size:.8125rem;color:var(--text-secondary)}.import-result{margin-top:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-md)}.import-result.success{background:var(--income-bg);border:1px solid var(--income)}.import-result.error{background:var(--expense-bg);border:1px solid var(--expense)}.result-title{font-weight:600;margin-bottom:var(--sp-2)}.import-result.success .result-title{color:var(--income)}.import-result.error .result-title{color:var(--expense)}.result-stats,.result-errors{font-size:.8125rem;color:var(--text-secondary);display:flex;flex-direction:column;gap:2px}.danger-zone .section-title{color:var(--expense)}.danger-card{padding:var(--sp-4);background:#f7768e0d;border:1px solid var(--expense);border-radius:var(--r-lg)}.confirm-clear{margin-top:var(--sp-4)}.confirm-clear p{font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--sp-3)}.confirm-buttons{display:flex;gap:var(--sp-3)}.legal-links-card{padding:0!important;overflow:hidden}.legal-links{display:flex;flex-direction:column}.legal-link{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);color:var(--text-primary);text-decoration:none;transition:background .2s ease;border-bottom:1px solid var(--border-subtle)}.legal-link:last-child{border-bottom:none}.legal-link:hover{background:var(--bg-hover)}.legal-link svg:first-child{color:var(--text-secondary);flex-shrink:0}.legal-link span{flex:1;font-size:.9375rem;font-weight:500}.legal-link-arrow{color:var(--text-tertiary);flex-shrink:0}.financial-disclaimer{font-size:.75rem;color:var(--text-tertiary);line-height:1.6;text-align:center;margin:var(--sp-4) 0;padding:0 var(--sp-2)}.app-info{text-align:center;padding:var(--sp-4) var(--sp-6)}.app-name{font-size:1rem;font-weight:700;color:var(--accent)}.app-version{font-size:.8125rem;color:var(--text-secondary);margin-top:var(--sp-2)}.app-copyright{font-size:.75rem;color:var(--text-tertiary);margin-top:var(--sp-2)}.delete-account-section{margin-top:var(--sp-4)}.delete-account-description{margin:0 0 var(--sp-4) 0;color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.dev-page{display:flex;flex-direction:column;height:100%;padding:var(--sp-4);gap:var(--sp-3)}.dev-header{display:flex;justify-content:space-between;align-items:center}.dev-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.dev-actions{display:flex;gap:var(--sp-2)}.dev-warning{background:#f0ad4e26;border:1px solid rgba(240,173,78,.3);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);font-size:.8125rem;color:#f0ad4e;text-align:center}.dev-tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--sp-2);overflow-x:auto}.dev-tab{padding:calc(var(--sp-2) * 1.26) calc(var(--sp-3) * 1.26);background:transparent;border:none;color:var(--text-secondary);font-size:1.1rem;font-weight:500;cursor:pointer;border-radius:var(--r-sm);white-space:nowrap;transition:background .15s,color .15s}.dev-tab:hover{background:var(--bg-elevated);color:var(--text-primary)}.dev-tab.active{background:var(--accent);color:#fff}.dev-content{flex:1;overflow-y:auto}.tab-content{display:flex;flex-direction:column;gap:var(--sp-4)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--sp-3);padding:var(--sp-3) 0}.stat-box{text-align:center;padding:var(--sp-3);background:var(--bg-elevated);border-radius:var(--r-sm)}.stat-box .stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.stat-box .stat-label{font-size:.75rem;color:var(--text-secondary);margin-top:var(--sp-1)}.stat-box.stat-error .stat-value{color:var(--expense)}.stat-box.stat-warn .stat-value{color:#f0ad4e}.stat-box.stat-info .stat-value{color:var(--accent)}.card-footer{padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);margin-top:var(--sp-3)}.quick-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) 0}.import-info{background:var(--bg-elevated);border-radius:var(--r-sm);padding:var(--sp-3);margin:var(--sp-3) 0;font-size:.8125rem}.import-info h4{margin:0 0 var(--sp-2) 0;color:var(--text-primary)}.import-info code{display:block;background:var(--bg-surface);padding:var(--sp-2);border-radius:var(--r-xs);font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto;margin-bottom:var(--sp-2)}.import-info p{margin:var(--sp-2) 0 0 0;color:var(--text-secondary)}.import-options{background:var(--bg-elevated);border-radius:var(--r-sm);padding:var(--sp-3);margin:var(--sp-3) 0}.import-options h4{margin:0 0 var(--sp-2) 0;font-size:.875rem;color:var(--text-primary)}.option-checkbox{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;cursor:pointer;border-bottom:1px solid var(--border-subtle)}.option-checkbox:last-child{border-bottom:none}.option-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.option-checkbox span:nth-child(2){font-size:.875rem;color:var(--text-primary);font-weight:500}.option-hint{width:100%;margin-left:26px;font-size:.75rem;color:var(--text-tertiary)}.import-actions{padding:var(--sp-3) 0}.import-progress{margin-top:var(--sp-3)}.progress-bar{height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .2s}.progress-text{font-size:.75rem;color:var(--text-secondary);margin-top:var(--sp-1)}.import-result{margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm)}.import-result.success{background:#50c8781a;border:1px solid rgba(80,200,120,.3)}.import-result.error{background:#ff55551a;border:1px solid rgba(255,85,85,.3)}.import-result h4{margin:0 0 var(--sp-2) 0;font-size:.9375rem}.import-result.success h4{color:var(--income)}.import-result.error h4{color:var(--expense)}.result-details p{margin:var(--sp-1) 0;font-size:.8125rem;color:var(--text-secondary)}.result-warning{color:#f0ad4e!important;background:#f0ad4e1a;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-xs);margin:var(--sp-2) 0}.result-warnings{margin-top:var(--sp-2);background:#f0ad4e1a;border-radius:var(--r-xs);padding:var(--sp-2)}.result-warnings h5{margin:0 0 var(--sp-1) 0;font-size:.8125rem;color:#f0ad4e}.result-warnings ul{margin:0;padding-left:var(--sp-4);font-size:.75rem;color:var(--text-secondary)}.result-warnings li{margin:var(--sp-1) 0}.result-errors{margin-top:var(--sp-2)}.result-errors h5{margin:0 0 var(--sp-1) 0;font-size:.8125rem;color:var(--expense)}.result-errors ul{margin:0;padding-left:var(--sp-4);font-size:.75rem;color:var(--text-secondary)}.result-errors li{margin:var(--sp-1) 0}.danger-card{border:1px solid rgba(255,85,85,.3)}.confirm-section{margin-top:var(--sp-2)}.confirm-text{color:var(--expense);font-size:.875rem;margin-bottom:var(--sp-2)}.confirm-buttons{display:flex;gap:var(--sp-2)}.data-table{width:100%;border-collapse:collapse;font-size:.8125rem}.data-table th,.data-table td{padding:var(--sp-2);text-align:left;border-bottom:1px solid var(--border-subtle)}.data-table th{font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase}.data-table td{color:var(--text-primary)}.data-table .subtext{color:var(--text-tertiary);font-size:.75rem}.data-table .positive{color:var(--income)}.data-table .negative{color:var(--expense)}.type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase}.type-badge.type-income{background:#50c87833;color:var(--income)}.type-badge.type-expense{background:#f553;color:var(--expense)}.type-badge.type-transfer{background:#7aa2f733;color:var(--accent)}.limit-selector{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:.8125rem;color:var(--text-secondary)}.limit-btn{padding:var(--sp-1) var(--sp-2);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;font-size:.75rem}.limit-btn:hover{background:var(--bg-surface)}.limit-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.category-list{list-style:none;padding:0;margin:var(--sp-2) 0;display:flex;flex-wrap:wrap;gap:var(--sp-2)}.category-item{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);font-size:.8125rem}.category-item.income{background:#50c87826;color:var(--income)}.category-item.expense{background:#ff555526;color:var(--expense)}.empty-text{color:var(--text-tertiary);font-style:italic;padding:var(--sp-3)}.loading{padding:var(--sp-6);text-align:center;color:var(--text-secondary)}.btn-sm{padding:var(--sp-1) var(--sp-2);font-size:.8125rem}.balance-fixer-grid{display:flex;flex-direction:column;gap:var(--sp-2);max-height:400px;overflow-y:auto;padding-right:var(--sp-2);margin-bottom:var(--sp-3)}.balance-fixer-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-radius:var(--r-sm);gap:var(--sp-3)}.balance-fixer-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem}.balance-fixer-name .subtext{color:var(--text-tertiary);font-weight:400}.balance-fixer-input{display:flex;align-items:center;gap:var(--sp-1)}.currency-prefix{color:var(--text-tertiary);font-size:.875rem}.balance-input{width:100px;padding:var(--sp-1) var(--sp-2);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-primary);font-size:.875rem;font-family:var(--font-mono);text-align:right}.balance-input:focus{outline:none;border-color:var(--accent)}.balance-fixer-actions{display:flex;justify-content:flex-end}.balance-result{margin-top:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-sm);font-size:.875rem;text-align:center}.balance-result.success{background:#00d68f1a;color:var(--income)}.balance-result.error{background:#ff55551a;color:var(--expense)}.hidden-accounts-list{display:flex;flex-direction:column;gap:var(--sp-2);max-height:300px;overflow-y:auto;padding-right:var(--sp-2)}.hidden-account-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-radius:var(--r-sm);gap:var(--sp-3);border-left:3px solid var(--text-tertiary)}.hidden-account-info{flex:1;min-width:0;font-size:.875rem}.hidden-account-info .subtext{color:var(--text-tertiary);font-weight:400}.hidden-account-balance{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:2px}.hidden-account-actions{display:flex;gap:var(--sp-2);flex-shrink:0}.year-delete-grid{display:flex;flex-direction:column;gap:var(--sp-2);max-height:400px;overflow-y:auto;padding-right:var(--sp-2);margin-bottom:var(--sp-3)}.year-delete-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-radius:var(--r-sm);gap:var(--sp-3);border-left:3px solid var(--expense)}.year-info{flex:1;display:flex;flex-direction:column;gap:2px}.year-info strong{font-size:1rem;color:var(--text-primary)}.year-count{font-size:.75rem;color:var(--text-tertiary)}.year-confirm-actions{display:flex;align-items:center;gap:var(--sp-2)}.year-confirm-actions .confirm-text{font-size:.75rem;color:var(--expense);margin:0;white-space:nowrap}.warning-text{background:#f0ad4e1a;border:1px solid rgba(240,173,78,.3);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);font-size:.8125rem;color:#f0ad4e;margin-bottom:var(--sp-3)}@media(max-width:600px){.dev-tabs{gap:0}.dev-tab{padding:calc(var(--sp-2) * 1.26);font-size:.95rem}.data-table{font-size:.75rem}.data-table th,.data-table td{padding:var(--sp-1)}}.sync-config{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-3)}.sync-label{font-weight:500;color:var(--text-secondary);min-width:70px}.sync-input{flex:1;min-width:200px;padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:.875rem}.sync-input:focus{outline:none;border-color:var(--accent)}.sync-status{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:.875rem;margin-bottom:var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-subtle)}.sync-status.connected{background:#3fb9501a;border-color:#3fb9504d;color:var(--income)}.sync-status.disconnected{background:#f851491a;border-color:#f851494d;color:var(--expense)}.sync-server-stats{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:var(--sp-3)}.sync-server-stats .stat-row{display:flex;justify-content:space-between;padding:var(--sp-1) 0;border-bottom:1px solid var(--border-subtle)}.sync-server-stats .stat-row:last-child{border-bottom:none}.sync-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.sync-result{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:.875rem}.sync-result.success{background:#3fb9501a;border:1px solid rgba(63,185,80,.3);color:var(--income)}.sync-result.error{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:var(--expense)}.sync-help ol{margin:0;padding-left:var(--sp-5);line-height:1.8}.sync-help code{background:var(--bg-surface);padding:2px 6px;border-radius:var(--r-xs);font-family:var(--font-mono);font-size:.875rem}.sync-note{margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:#8892b01a;border-radius:var(--r-sm);font-size:.8125rem;color:var(--text-secondary)}.recent-additions-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.recent-filter{display:flex;align-items:center;gap:var(--sp-2)}.recent-filter-label{font-size:.875rem;color:var(--text-secondary)}.recent-filter-select{padding:var(--sp-1) var(--sp-2);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-primary);font-size:.875rem;cursor:pointer}.recent-filter-select:focus{outline:none;border-color:var(--accent)}.recent-controls{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.recent-toggle{display:flex;align-items:center;gap:var(--sp-2);font-size:.8125rem;color:var(--text-secondary);cursor:pointer}.recent-toggle input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.recent-toggle:hover{color:var(--text-primary)}.recent-stats{display:flex;gap:var(--sp-3);font-size:.8125rem}.recent-stat{display:flex;align-items:center;gap:var(--sp-1)}.recent-stat-count{font-weight:600;color:var(--text-primary)}.recent-stat-label{color:var(--text-tertiary)}.recent-stat.ghosts .recent-stat-count{color:#f0ad4e}.recent-additions-list{display:flex;flex-direction:column;gap:var(--sp-2);max-height:500px;overflow-y:auto;padding-right:var(--sp-1)}.recent-tx-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-radius:var(--r-sm);gap:var(--sp-2);border-left:3px solid var(--border-subtle);transition:border-color .15s}.recent-tx-row:hover{border-left-color:var(--accent)}.recent-tx-row.ghost{border-left-color:#f0ad4e;background:#f0ad4e0d}.recent-tx-row.deleted{border-left-color:var(--expense);background:#ff55550d;opacity:.7}.recent-tx-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.recent-tx-main{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.recent-tx-amount{font-weight:600;font-size:.9375rem;font-family:var(--font-mono)}.recent-tx-amount.income{color:var(--income)}.recent-tx-amount.expense{color:var(--expense)}.recent-tx-amount.transfer{color:var(--accent)}.recent-tx-category{font-size:.8125rem;color:var(--text-secondary);padding:2px 8px;background:var(--bg-surface);border-radius:var(--r-xs)}.recent-tx-category.none{color:var(--text-tertiary);font-style:italic}.recent-tx-desc{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.recent-tx-meta{display:flex;gap:var(--sp-3);font-size:.75rem;color:var(--text-tertiary)}.recent-tx-date,.recent-tx-created{display:flex;align-items:center;gap:4px}.ghost-flags{display:flex;gap:var(--sp-1);margin-left:var(--sp-2)}.ghost-flag{padding:2px 6px;border-radius:var(--r-xs);font-size:.6875rem;font-weight:600;text-transform:uppercase;background:#f0ad4e33;color:#f0ad4e}.ghost-flag.duplicate{background:#f553;color:var(--expense)}.adjustment-badge{padding:2px 6px;border-radius:var(--r-xs);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:#7aa2f726;color:var(--accent);margin-left:var(--sp-2)}.recent-tx-row.adjustment{opacity:.85}.recent-tx-row.adjustment:not(.deleted){border-left-color:var(--accent)}.ghost-flag.no-category{background:#7aa2f733;color:var(--accent)}.deleted-flag{padding:2px 6px;border-radius:var(--r-xs);font-size:.6875rem;font-weight:600;text-transform:uppercase;background:#f553;color:var(--expense)}.recent-tx-actions{display:flex;gap:var(--sp-1);flex-shrink:0}.recent-tx-actions .btn{padding:var(--sp-1) var(--sp-2);font-size:.75rem}.recent-empty{text-align:center;padding:var(--sp-6);color:var(--text-tertiary)}.recent-empty-icon{font-size:2rem;margin-bottom:var(--sp-2);opacity:.5}.sync-status-display{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:var(--sp-3);margin-bottom:var(--sp-3)}.sync-status-display .status-row{display:flex;justify-content:space-between;padding:var(--sp-1) 0;font-size:.875rem}.sync-status-display .status-row.error{color:var(--expense)}.sync-status-display .status-on{color:var(--income);font-weight:600}.sync-status-display .status-off{color:var(--text-tertiary)}.sync-status-display .status-connected{color:var(--income)}.sync-status-display .status-disconnected{color:var(--expense)}.sync-status-display .status-checking{color:#f0ad4e}.sync-settings-controls{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.setting-checkbox{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);background:var(--bg-surface);border-radius:var(--r-sm);cursor:pointer;transition:background .15s}.setting-checkbox:hover{background:var(--bg-elevated)}.setting-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.setting-checkbox span{font-size:.875rem;color:var(--text-primary)}.setting-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);background:var(--bg-surface);border-radius:var(--r-sm);flex-wrap:wrap}.setting-row label{font-size:.875rem;color:var(--text-primary);min-width:200px}.setting-number{width:80px;padding:var(--sp-1) var(--sp-2);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-primary);font-size:.875rem;text-align:center}.setting-number:focus{outline:none;border-color:var(--accent)}.setting-select{padding:var(--sp-1) var(--sp-2);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-primary);font-size:.875rem;cursor:pointer}.setting-select:focus{outline:none;border-color:var(--accent)}.setting-hint{font-size:.75rem;color:var(--text-tertiary)}.sync-debug-details{margin-top:var(--sp-3)}.sync-debug-details summary{cursor:pointer;color:var(--text-secondary);font-size:.875rem;padding:var(--sp-1) 0}.debug-json{background:var(--bg-surface);border-radius:var(--r-sm);padding:var(--sp-2);font-family:var(--font-mono);font-size:.75rem;overflow-x:auto;color:var(--text-secondary);margin-top:var(--sp-2)}.log-page{display:flex;flex-direction:column;height:100%;padding:var(--sp-4);gap:var(--sp-3)}.log-header{display:flex;justify-content:space-between;align-items:center}.log-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.log-actions{display:flex;gap:var(--sp-2)}.log-stats{display:flex;gap:var(--sp-3);font-size:.8125rem;color:var(--text-secondary)}.stat-total{font-weight:500}.stat-error{color:var(--expense)}.stat-warn{color:#f0ad4e}.stat-info{color:var(--accent)}.stat-debug{color:var(--text-tertiary)}.log-filters{display:flex;flex-wrap:wrap;gap:var(--sp-4);padding:var(--sp-3);align-items:center}.filter-group{display:flex;align-items:center;gap:var(--sp-2)}.filter-group label{font-size:.8125rem;color:var(--text-secondary)}.filter-group select{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-primary);padding:var(--sp-1) var(--sp-2);font-size:.8125rem}.filter-group input[type=checkbox]{accent-color:var(--accent)}.filter-result{margin-left:auto;font-size:.8125rem;color:var(--text-tertiary)}.log-container{flex:1;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-2);font-family:JetBrains Mono,Consolas,Monaco,monospace;font-size:.75rem;line-height:1.5}.log-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);text-align:center;padding:var(--sp-6)}.log-empty-hint{font-size:.75rem;color:var(--text-tertiary);margin-top:var(--sp-2)}.log-entry{display:flex;gap:var(--sp-2);padding:var(--sp-1) 0;border-bottom:1px solid var(--border-subtle);align-items:baseline;flex-wrap:wrap}.log-entry:last-child{border-bottom:none}.log-time{color:var(--text-tertiary);flex-shrink:0;width:70px}.log-level{font-weight:600;flex-shrink:0;width:50px;text-align:center;padding:1px 4px;border-radius:2px}.level-error{background:#f553;color:#f55}.level-warn{background:#f0ad4e33;color:#f0ad4e}.level-info{background:#7aa2f733;color:#7aa2f7}.level-debug{background:#80808033;color:var(--text-tertiary)}.log-category{color:var(--accent);font-weight:500;flex-shrink:0;width:60px;text-transform:uppercase}.log-message{color:var(--text-primary);flex:1;min-width:200px}.log-data{color:var(--text-secondary);font-size:.7rem;word-break:break-all;flex-basis:100%;padding-left:130px;margin-top:2px}.log-entry.log-error{background:#ff55550d}.log-entry.log-warn{background:#f0ad4e0d}@media(max-width:600px){.log-filters{flex-direction:column;align-items:flex-start}.filter-result{margin-left:0;margin-top:var(--sp-2)}.log-entry{flex-direction:column;gap:2px}.log-time,.log-level,.log-category{width:auto}.log-data{padding-left:0}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);position:relative;overflow:hidden;background:#0d0d14;background-image:radial-gradient(ellipse 80% 50% at 80% 20%,rgba(122,162,247,.15) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 15% 80%,rgba(125,207,255,.12) 0%,transparent 45%),radial-gradient(ellipse 50% 30% at 10% 10%,rgba(158,206,106,.08) 0%,transparent 40%),radial-gradient(ellipse 100% 80% at 50% 50%,rgba(122,162,247,.05) 0%,transparent 60%),radial-gradient(ellipse 40% 30% at 90% 90%,rgba(247,118,142,.08) 0%,transparent 40%)}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1px 1px at 20% 30%,rgba(122,162,247,.4) 0%,transparent 100%),radial-gradient(1px 1px at 40% 70%,rgba(125,207,255,.3) 0%,transparent 100%),radial-gradient(1px 1px at 60% 20%,rgba(158,206,106,.3) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 80% 50%,rgba(122,162,247,.5) 0%,transparent 100%),radial-gradient(1px 1px at 30% 85%,rgba(125,207,255,.35) 0%,transparent 100%),radial-gradient(1px 1px at 70% 40%,rgba(247,118,142,.25) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 10% 60%,rgba(122,162,247,.45) 0%,transparent 100%),radial-gradient(1px 1px at 90% 15%,rgba(158,206,106,.3) 0%,transparent 100%);animation:floatParticles 20s ease-in-out infinite;pointer-events:none;opacity:.8}@keyframes floatParticles{0%,to{transform:translate(0) scale(1)}25%{transform:translate(5px,-10px) scale(1.02)}50%{transform:translate(-3px,5px) scale(.98)}75%{transform:translate(8px,3px) scale(1.01)}}.login-page:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 50% 50% at 50% 40%,rgba(122,162,247,.08) 0%,transparent 70%);animation:glowPulse 8s ease-in-out infinite;pointer-events:none}@keyframes glowPulse{0%,to{opacity:.5}50%{opacity:1}}.login-container{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-8);position:relative;z-index:1}.login-brand{text-align:center;display:flex;flex-direction:column;align-items:center}.login-logo{width:100px;height:100px;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-5)}.login-logo:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;background:conic-gradient(from 0deg,#7aa2f7,#7dcfff,#9ece6a,#7dcfff,#7aa2f7,#f7768e,#7aa2f7 360deg);opacity:.4;filter:blur(20px);animation:logoGlow 6s linear infinite}@keyframes logoGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-logo-inner{width:100%;height:100%;background:linear-gradient(145deg,#1f2335,#16161e);border-radius:24px;display:flex;align-items:center;justify-content:center;position:relative;border:1px solid rgba(122,162,247,.2);box-shadow:0 0 40px #7aa2f733,0 0 80px #7aa2f71a,inset 0 1px #ffffff0d}.login-logo-symbol{font-size:3.5rem;font-weight:800;font-family:JetBrains Mono,Fira Code,monospace;background:linear-gradient(135deg,#7aa2f7,#7dcfff,#9ece6a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 30px rgba(122,162,247,.5);position:relative;animation:symbolPulse 3s ease-in-out infinite}@keyframes symbolPulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.05);filter:brightness(1.2)}}.login-title{font-size:2.75rem;font-weight:800;letter-spacing:-.02em;margin:0;position:relative}.login-title-text{background:linear-gradient(135deg,#c0caf5,#7aa2f7 40%,#7dcfff 60%,#c0caf5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:200% auto;animation:titleShimmer 4s linear infinite}@keyframes titleShimmer{0%{background-position:0% center}to{background-position:200% center}}.login-title-dollar{color:#9ece6a;text-shadow:0 0 10px rgba(158,206,106,.6),0 0 20px rgba(158,206,106,.4),0 0 30px rgba(158,206,106,.2);animation:dollarGlow 2s ease-in-out infinite}@keyframes dollarGlow{0%,to{opacity:1;text-shadow:0 0 10px rgba(158,206,106,.6),0 0 20px rgba(158,206,106,.4)}50%{opacity:.9;text-shadow:0 0 20px rgba(158,206,106,.8),0 0 40px rgba(158,206,106,.5)}}.login-subtitle{font-size:var(--fs-base);color:var(--text-secondary);margin:var(--sp-2) 0 0;font-weight:400;letter-spacing:.02em}.login-card{width:100%;background:#1a1b26cc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(122,162,247,.15);border-radius:20px;padding:var(--sp-7);text-align:center;position:relative;overflow:hidden;box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff05 inset}.login-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;padding:1px;background:linear-gradient(135deg,rgba(122,162,247,.3) 0%,transparent 50%,rgba(125,207,255,.2) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.5}.login-heading{font-size:var(--fs-xl);font-weight:600;color:var(--text-primary);margin:0 0 var(--sp-2)}.login-text{font-size:var(--fs-sm);color:var(--text-secondary);margin:0 0 var(--sp-6);line-height:1.6}.login-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);background:linear-gradient(135deg,#1f2335,#292e42);border:1px solid rgba(122,162,247,.2);border-radius:14px;color:var(--text-primary);font-size:var(--fs-base);font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.login-google-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(122,162,247,.1) 0%,transparent 50%,rgba(125,207,255,.1) 100%);opacity:0;transition:opacity .3s ease}.login-google-btn:hover:not(:disabled){border-color:#7aa2f780;transform:translateY(-2px);box-shadow:0 8px 24px #7aa2f733,0 0 0 1px #7aa2f71a}.login-google-btn:hover:not(:disabled):before{opacity:1}.login-google-btn:active:not(:disabled){transform:translateY(0)}.login-google-btn:disabled{opacity:.5;cursor:not-allowed}.login-google-icon{flex-shrink:0;filter:drop-shadow(0 0 4px rgba(255,255,255,.2))}.login-loading{color:var(--text-secondary)}.login-privacy{font-size:var(--fs-xs);color:var(--text-tertiary);margin:var(--sp-5) 0 0;line-height:1.5}.login-privacy-link{color:var(--accent);text-decoration:none;transition:opacity .2s ease}.login-privacy-link:hover{opacity:.8;text-decoration:underline}.login-features{display:flex;gap:var(--sp-6);flex-wrap:wrap;justify-content:center}.login-feature{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3);min-width:90px}.login-feature-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:#7aa2f71a;border:1px solid rgba(122,162,247,.2);border-radius:12px;transition:all .3s ease}.login-feature:nth-child(1) .login-feature-icon{background:#9ece6a1a;border-color:#9ece6a33}.login-feature:nth-child(2) .login-feature-icon{background:#7aa2f71a;border-color:#7aa2f733}.login-feature:nth-child(3) .login-feature-icon{background:#7dcfff1a;border-color:#7dcfff33}.login-feature:hover .login-feature-icon{transform:translateY(-2px);box-shadow:0 4px 12px #7aa2f733}.login-feature-label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:500;text-align:center}.login-version{position:absolute;bottom:var(--sp-4);right:var(--sp-4);font-size:.65rem;color:var(--text-tertiary);opacity:.5;font-family:JetBrains Mono,monospace}@media(max-width:480px){.login-page{padding:var(--sp-5)}.login-container{gap:var(--sp-6)}.login-logo{width:80px;height:80px}.login-logo-inner{border-radius:20px}.login-logo-symbol{font-size:2.75rem}.login-title{font-size:2.25rem}.login-card{padding:var(--sp-5);border-radius:16px}.login-features{gap:var(--sp-4)}.login-feature{min-width:80px;padding:var(--sp-2)}.login-feature-icon{width:40px;height:40px;font-size:1.25rem}}@media(min-width:768px){.login-page{background-image:radial-gradient(ellipse 60% 40% at 75% 15%,rgba(122,162,247,.18) 0%,transparent 50%),radial-gradient(ellipse 50% 35% at 20% 85%,rgba(125,207,255,.15) 0%,transparent 45%),radial-gradient(ellipse 40% 25% at 5% 5%,rgba(158,206,106,.1) 0%,transparent 40%),radial-gradient(ellipse 80% 60% at 50% 50%,rgba(122,162,247,.06) 0%,transparent 60%),radial-gradient(ellipse 35% 25% at 95% 95%,rgba(247,118,142,.1) 0%,transparent 40%)}.login-logo{width:110px;height:110px}.login-title{font-size:3rem}}.more-page{padding:var(--sp-4);padding-bottom:calc(var(--sp-4) + 80px)}.more-header{margin-bottom:var(--sp-6)}.more-title{font-size:var(--fs-2xl);font-weight:700;color:var(--text);margin:0 0 var(--sp-1) 0}.more-user{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.more-menu{display:flex;flex-direction:column;gap:var(--sp-2)}.more-menu-item{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);background:var(--bg-surface);border-radius:var(--r-lg);text-decoration:none;transition:background .15s ease,transform .1s ease}.more-menu-item:hover{background:var(--bg-elevated)}.more-menu-item:active{transform:scale(.98)}.more-menu-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--r-md);flex-shrink:0}.more-menu-text{flex:1;display:flex;flex-direction:column;gap:var(--sp-1)}.more-menu-label{font-size:var(--fs-md);font-weight:600;color:var(--text)}.more-menu-desc{font-size:var(--fs-sm);color:var(--text-muted)}.more-menu-arrow{font-size:1.25rem;color:var(--text-muted);flex-shrink:0}.more-divider{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-4) 0 var(--sp-2) 0;color:var(--text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em}.more-divider:before,.more-divider:after{content:"";flex:1;height:1px;background:var(--border)}.legal-page{min-height:100vh;padding:var(--sp-4);position:relative;overflow-x:hidden;background:#0d0d14;background-image:radial-gradient(ellipse 60% 40% at 80% 10%,rgba(122,162,247,.1) 0%,transparent 50%),radial-gradient(ellipse 50% 35% at 10% 90%,rgba(125,207,255,.08) 0%,transparent 45%),radial-gradient(ellipse 40% 25% at 90% 90%,rgba(158,206,106,.06) 0%,transparent 40%)}.legal-container{max-width:800px;margin:0 auto;position:relative;z-index:1}.legal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) 0;margin-bottom:var(--sp-6);border-bottom:1px solid rgba(122,162,247,.15)}.legal-back{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-secondary);text-decoration:none;font-size:var(--fs-sm);font-weight:500;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);transition:all .2s ease}.legal-back:hover{color:var(--accent);background:#7aa2f71a}.legal-back svg{flex-shrink:0}.legal-brand{display:flex;align-items:center;gap:var(--sp-2)}.legal-logo{font-size:1.5rem;font-weight:800;font-family:JetBrains Mono,Fira Code,monospace;background:linear-gradient(135deg,#7aa2f7,#9ece6a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-app-name{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary)}.legal-content{background:#1a1b26b3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(122,162,247,.12);border-radius:20px;padding:var(--sp-6) var(--sp-5);box-shadow:0 8px 32px #0000004d,0 0 0 1px #ffffff05 inset}@media(min-width:640px){.legal-content{padding:var(--sp-8) var(--sp-7)}}.legal-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--sp-2);background:linear-gradient(135deg,#c0caf5,#7aa2f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media(min-width:640px){.legal-title{font-size:2.5rem}}.legal-meta{font-size:var(--fs-sm);color:var(--text-tertiary);margin:0 0 var(--sp-6);padding-bottom:var(--sp-4);border-bottom:1px solid rgba(122,162,247,.1)}.legal-section{margin-bottom:var(--sp-7)}.legal-section:last-child{margin-bottom:0}.legal-section h2{font-size:var(--fs-xl);font-weight:600;color:var(--accent);margin:0 0 var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid rgba(122,162,247,.15)}.legal-section h3{font-size:var(--fs-base);font-weight:600;color:var(--text-primary);margin:var(--sp-5) 0 var(--sp-3)}.legal-section p{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.7;margin:0 0 var(--sp-3)}.legal-section ul,.legal-section ol{margin:0 0 var(--sp-4);padding-left:var(--sp-5)}.legal-section li{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.7;margin-bottom:var(--sp-2)}.legal-section li strong{color:var(--text-primary)}.legal-section a{color:var(--accent);text-decoration:none;transition:opacity .2s ease}.legal-section a:hover{opacity:.8;text-decoration:underline}.legal-highlight{background:#7aa2f714;border:1px solid rgba(122,162,247,.2);border-radius:var(--r-lg);padding:var(--sp-4);margin:var(--sp-4) 0}.legal-highlight h3{margin-top:0;color:var(--accent)}.legal-highlight p{margin-bottom:var(--sp-2)}.legal-highlight p:last-child{margin-bottom:0}.legal-highlight ul{margin-bottom:0}.legal-highlight.warning{background:#f7768e14;border-color:#f7768e40}.legal-highlight.warning h3{color:var(--expense)}.legal-table-wrapper{overflow-x:auto;margin:var(--sp-4) 0;border-radius:var(--r-md)}.legal-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.legal-table th,.legal-table td{padding:var(--sp-3);text-align:left;border-bottom:1px solid rgba(122,162,247,.1)}.legal-table th{background:#7aa2f71a;color:var(--text-primary);font-weight:600;white-space:nowrap}.legal-table td{color:var(--text-secondary)}.legal-table tr:hover td{background:#7aa2f70d}.legal-summary{display:flex;flex-direction:column;gap:var(--sp-3);background:#7aa2f70d;border-radius:var(--r-lg);padding:var(--sp-4)}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) 0;border-bottom:1px solid rgba(122,162,247,.1)}.summary-item:last-child{border-bottom:none;padding-bottom:0}.summary-question{font-size:var(--fs-sm);color:var(--text-secondary)}.summary-answer{font-size:var(--fs-sm);font-weight:600;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm)}.summary-answer.yes{background:#9ece6a26;color:var(--income)}.summary-answer.no{background:#f7768e26;color:var(--expense)}.legal-footer{margin-top:var(--sp-8);padding:var(--sp-6) 0;text-align:center;border-top:1px solid rgba(122,162,247,.1)}.legal-footer p{font-size:var(--fs-xs);color:var(--text-tertiary);margin:0 0 var(--sp-3);line-height:1.6}.legal-footer-disclaimer{font-size:var(--fs-xs);color:var(--text-tertiary);max-width:600px;margin:0 auto var(--sp-3);line-height:1.6}.legal-footer-date{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-4)}.legal-footer-links{display:flex;justify-content:center;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.legal-footer-links a{font-size:var(--fs-sm);color:var(--accent);text-decoration:none;transition:opacity .2s ease}.legal-footer-links a:hover{opacity:.8}.legal-divider{color:var(--text-muted)}@media(max-width:480px){.legal-page{padding:var(--sp-3)}.legal-header{flex-direction:column;gap:var(--sp-3);text-align:center}.legal-content{padding:var(--sp-4);border-radius:16px}.legal-title{font-size:1.75rem}.legal-section h2{font-size:var(--fs-lg)}.legal-table th,.legal-table td{padding:var(--sp-2);font-size:var(--fs-xs)}.summary-item{flex-direction:column;align-items:flex-start;gap:var(--sp-1)}}@media print{.legal-page{background:#fff;padding:0}.legal-header,.legal-footer-links{display:none}.legal-content{background:#fff;border:none;box-shadow:none;padding:0}.legal-title,.legal-section h2,.legal-section h3{color:#000;background:none;-webkit-text-fill-color:black}.legal-section p,.legal-section li{color:#333}}.account-card{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);cursor:pointer;transition:all .2s ease}.account-card:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.account-card:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.account-card-left{display:flex;align-items:center;gap:var(--spacing-md);min-width:0}.account-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-weight:700;font-size:var(--font-size-lg);flex-shrink:0}.account-icon[data-type=checking]{background:#7c3aed33;color:var(--accent-primary)}.account-icon[data-type=savings]{background:#3fb95033;color:var(--color-income)}.account-icon[data-type=cash]{background:#58a6ff33;color:var(--color-transfer)}.account-icon[data-type=credit]{background:#f8514933;color:var(--color-expense)}.account-info{display:flex;flex-direction:column;min-width:0}.account-name{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-fullname{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-type{font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.account-card-right{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.account-balance{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.account-currency{font-size:var(--font-size-xs);color:var(--text-muted)}.account-card-skeleton{pointer-events:none}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-hover) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-pulse 1.5s infinite;border-radius:var(--border-radius)}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-icon{width:40px;height:40px}.skeleton-name{width:80px;height:16px;margin-bottom:4px}.skeleton-type{width:50px;height:12px}.skeleton-balance{width:100px;height:20px}.quick-add-form{display:flex;flex-direction:column;gap:16px;min-width:340px}.type-tabs{display:flex;gap:6px;background:#0a0a0e;padding:6px;border-radius:12px}.type-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-family:inherit;font-size:.9rem;font-weight:600;color:#8888a0;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.type-tab:hover{color:#e8e8f0;background:#1a1a22}.type-tab.active{color:#fff;box-shadow:0 2px 8px #0000004d}.type-tab-expense.active{background:linear-gradient(135deg,#ff6b6b,#ee5a5a)}.type-tab-income.active{background:linear-gradient(135deg,#00d68f,#00b377)}.type-tab-transfer.active{background:linear-gradient(135deg,#4ecdc4,#3ba89f)}.amount-section{padding:20px 0;text-align:center}.amount-section .amount-input-wrapper{position:relative}.amount-section .amount-input{width:100%;font-size:2.5rem;font-weight:700;height:72px;text-align:center;background:#0a0a0e;border:2px solid #252530;border-radius:12px;color:#e8e8f0;padding:0 60px;transition:border-color .2s ease,box-shadow .2s ease}.amount-section .amount-input::placeholder{color:#556}.amount-section .amount-input:focus{outline:none;border-color:#9d7aff;box-shadow:0 0 0 3px #9d7aff33}.amount-section .amount-currency{position:absolute;left:20px;top:50%;transform:translateY(-50%);font-size:1.25rem;font-weight:600;color:#8888a0}.quick-add-form .form-group{margin-bottom:4px}.quick-add-form .form-label{display:block;font-size:.8rem;font-weight:600;color:#8888a0;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.quick-add-form .input,.quick-add-form .select{width:100%;padding:12px 14px;font-size:.95rem;background:#0a0a0e;border:1px solid #252530;border-radius:8px;color:#e8e8f0;transition:border-color .2s ease}.quick-add-form .input:focus,.quick-add-form .select:focus{outline:none;border-color:#9d7aff}.quick-add-form .select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.quick-add-form .select option{background:#0a0a0e;color:#e8e8f0;padding:10px 14px}.error-message{padding:10px 14px;font-size:.875rem;font-weight:500;color:#ff6b6b;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.2);border-radius:8px;text-align:center}.currency-mismatch-warning{padding:10px 14px;font-size:.875rem;font-weight:500;color:#ffb347;background:#ffb3471a;border:1px solid rgba(255,179,71,.25);border-radius:8px;text-align:center}.quick-add-form .btn{margin-top:8px;padding:14px 20px;font-size:1rem;font-weight:600;border-radius:10px}.quick-add-form .btn-primary{background:linear-gradient(135deg,#9d7aff,#7c5cd9);border:none;color:#fff;box-shadow:0 4px 12px #9d7aff4d;transition:transform .15s ease,box-shadow .15s ease}.quick-add-form .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #9d7aff66}.quick-add-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.recurring-toggle{display:flex;align-items:center;gap:12px;cursor:pointer;padding:12px 14px;background:#0a0a0e;border:1px solid #252530;border-radius:8px;transition:border-color .2s ease}.recurring-toggle:hover{border-color:#9d7aff50}.recurring-toggle input[type=checkbox]{display:none}.toggle-slider{position:relative;width:44px;height:24px;background:#252530;border-radius:12px;transition:background .2s ease;flex-shrink:0}.toggle-slider:after{content:"";position:absolute;width:18px;height:18px;background:#8888a0;border-radius:50%;top:3px;left:3px;transition:transform .2s ease,background .2s ease}.recurring-toggle input:checked+.toggle-slider{background:#9d7aff30}.recurring-toggle input:checked+.toggle-slider:after{transform:translate(20px);background:#9d7aff}.toggle-label{font-size:.9rem;color:#8888a0;transition:color .2s ease}.recurring-toggle input:checked~.toggle-label{color:#e8e8f0}@media(min-width:768px){.quick-add-form{min-width:380px;gap:18px}.type-tab{padding:14px 20px;font-size:.95rem}.amount-section .amount-input{font-size:3rem;height:80px}}.popup-menu-header{padding:14px 16px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#565a6e;border-bottom:1px solid #2a2b3d}.popup-menu-items{padding:8px}.popup-menu-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 12px;background:transparent;border:none;border-radius:10px;cursor:pointer;transition:background .12s ease;text-align:left}.popup-menu-item:hover,.popup-menu-item:active{background:#24253a}.popup-menu-icon{font-size:20px;width:28px;text-align:center;flex-shrink:0}.popup-menu-label{font-size:15px;font-weight:500;color:#c0caf5}.popup-menu-item--dev .popup-menu-label{color:#7aa2f7}.popup-menu-divider{height:1px;margin:6px 12px;background:#2a2b3d}.popup-menu-close{display:block;width:calc(100% - 16px);margin:8px;padding:12px;background:#16161e;border:1px solid #2a2b3d;border-radius:10px;color:#787c99;font-size:14px;font-weight:500;cursor:pointer;transition:all .12s ease}.popup-menu-close:hover,.popup-menu-close:active{background:#1a1b26;color:#c0caf5;border-color:#3d3f54}:root{--bg-void: #050508;--bg-deep: #0a0a0e;--bg-surface: #0f0f14;--bg-elevated: #141419;--bg-hover: #1a1a22;--bg-active: #22222c;--border-subtle: #1a1a22;--border-default: #252530;--border-focus: #9d7aff50;--accent: #9d7aff;--accent-dim: #7c5cd9;--accent-glow: #9d7aff25;--cyan: #4ecdc4;--cyan-dim: #3ba89f;--cyan-glow: #4ecdc420;--income: #00d68f;--income-bg: #00d68f12;--expense: #ff6b6b;--expense-bg: #ff6b6b12;--transfer: #4ecdc4;--transfer-bg: #4ecdc412;--warning: #f59e0b;--warning-bg: #f59e0b12;--text-primary: #e8e8f0;--text-secondary: #8888a0;--text-tertiary: #555566;--text-inverse: #0a0a0f;--font-display: "Outfit", -apple-system, sans-serif;--font-body: "DM Sans", -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 10px;--sp-6: 12px;--sp-8: 16px;--sp-10: 20px;--sp-12: 24px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-full: 9999px;--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--shadow-md: 0 2px 8px rgba(0,0,0,.4);--shadow-glow: 0 0 16px var(--accent-glow);--t-fast: .12s ease-out;--t-normal: .2s ease-out;--nav-height: 52px;--sidebar-width: 200px;--header-height: 44px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}body{font-family:var(--font-body);background:var(--bg-void);color:var(--text-primary);line-height:1.4;min-height:100%;overflow-x:hidden}#root{min-height:100vh}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 120% 80% at 10% -10%,var(--accent-glow) 0%,transparent 50%),radial-gradient(ellipse 100% 100% at 95% 105%,var(--cyan-glow) 0%,transparent 45%);pointer-events:none;z-index:0;opacity:1}.app>*{position:relative;z-index:1}html{transition:background-color .3s ease,color .3s ease}html *{transition:background-color .2s ease,border-color .2s ease,color .15s ease,box-shadow .2s ease}html.no-transition,html.no-transition *{transition:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}.h1{font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.h2{font-family:var(--font-display);font-size:1.125rem;font-weight:600;letter-spacing:-.01em}.h3{font-family:var(--font-display);font-size:.9375rem;font-weight:600}.label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.text-sm{font-size:.8125rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-secondary)}.text-dim{color:var(--text-tertiary)}.amount{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.amount-lg{font-size:1.75rem;font-weight:700}.amount-md{font-size:1.25rem}.amount-sm{font-size:1rem}.amount-xs{font-size:.875rem}.currency{font-weight:400;opacity:.6;font-size:.8em;margin-right:1px}.amount--income{color:var(--income)}.amount--expense{color:var(--expense)}.amount--transfer{color:var(--transfer)}.amount--neutral{color:var(--text-secondary)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-1{flex:1}.shrink-0{flex-shrink:0}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.gap-8{gap:var(--sp-8)}.p-2{padding:var(--sp-2)}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}.p-6{padding:var(--sp-6)}.p-8{padding:var(--sp-8)}.px-4{padding-left:var(--sp-4);padding-right:var(--sp-4)}.px-6{padding-left:var(--sp-6);padding-right:var(--sp-6)}.py-2{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.py-3{padding-top:var(--sp-3);padding-bottom:var(--sp-3)}.py-4{padding-top:var(--sp-4);padding-bottom:var(--sp-4)}.mt-2{margin-top:var(--sp-2)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mt-8{margin-top:var(--sp-8)}.mb-2{margin-bottom:var(--sp-2)}.mb-4{margin-bottom:var(--sp-4)}.mb-6{margin-bottom:var(--sp-6)}.w-full{width:100%}.text-center{text-align:center}.text-right{text-align:right}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hidden{display:none!important}.pointer{cursor:pointer}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade{animation:fadeIn var(--t-normal)}.animate-slide{animation:slideUp var(--t-normal)}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:50;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-6);background:var(--bg-deep);border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-title{font-family:var(--font-display);font-size:.9375rem;font-weight:600}.header-logo{font-family:var(--font-display);font-size:1rem;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions{display:flex;align-items:center;gap:var(--sp-3)}.main{flex:1;padding-bottom:calc(var(--nav-height) + var(--sp-4));overflow-y:auto}.page{display:none;animation:fadeIn var(--t-normal)}.page.active{display:block}.section-head{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-6)}.section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.section-action{font-size:.75rem;font-family:inherit;font-weight:500;color:var(--accent);text-decoration:none;cursor:pointer;background:none;border:none;padding:0}.section-action:hover{text-decoration:underline}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);display:flex;justify-content:space-around;align-items:center;padding:0 var(--sp-4);padding-bottom:env(safe-area-inset-bottom,0);background:var(--bg-deep);border-top:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-2) var(--sp-4);color:var(--text-tertiary);text-decoration:none;transition:color var(--t-fast),background var(--t-normal);border-radius:var(--r-md);min-width:48px;background:transparent;border:none;cursor:pointer;position:relative}.nav-item:hover{color:var(--text-secondary)}.nav-item.active{color:var(--accent);background:radial-gradient(ellipse 80% 50% at center 40%,var(--accent-glow) 0%,transparent 70%)}.nav-item:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:28px;height:2px;background:var(--accent);border-radius:0 0 4px 4px;opacity:0;transition:opacity var(--t-normal),box-shadow var(--t-normal)}.nav-item.active:before{opacity:1;box-shadow:0 0 6px var(--accent),0 0 12px var(--accent-glow)}.nav-icon{font-size:1.125rem;line-height:1}.nav-label{font-size:.5625rem;font-weight:500;text-transform:uppercase;letter-spacing:.02em}.sidebar{display:none}.filter-bar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);overflow-x:auto;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.list{display:flex;flex-direction:column}.list-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);margin:0 var(--sp-6) var(--sp-6);overflow:hidden}.scroll-container{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.summary-bar{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6)}.summary-bar-3{grid-template-columns:repeat(3,1fr)}.hero{text-align:center;padding:var(--sp-8) var(--sp-6)}.hero-header{display:flex;align-items:center;justify-content:center;gap:var(--sp-3)}.hero-label{font-size:.6875rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.hero-amount{font-family:var(--font-display);font-size:2rem;font-weight:800;letter-spacing:-.02em;margin-top:var(--sp-2)}.hero-change{display:inline-flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-4);background:var(--income-bg);border-radius:var(--r-full);font-size:.75rem;font-weight:500;color:var(--income)}.hero-change.negative{background:var(--expense-bg);color:var(--expense)}.tab-bar{display:flex;border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-6)}.tab{padding:var(--sp-4) var(--sp-5);font-size:.8125rem;font-weight:500;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:all var(--t-fast);background:transparent;border-left:none;border-right:none;border-top:none}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}@media(min-width:768px){:root{--nav-height: 0px}.app{flex-direction:row}.bottom-nav{display:none}.sidebar{display:flex;flex-direction:column;width:var(--sidebar-width);height:100vh;position:sticky;top:0;background:var(--bg-deep);border-right:1px solid var(--border-subtle);flex-shrink:0}.sidebar-logo{padding:var(--sp-8) var(--sp-6);font-family:var(--font-display);font-size:1.125rem;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-nav{flex:1;display:flex;flex-direction:column;padding:var(--sp-4) var(--sp-4);gap:var(--sp-1)}.sidebar-item{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);color:var(--text-secondary);text-decoration:none;border-radius:var(--r-md);font-size:.875rem;font-weight:500;transition:all var(--t-fast)}.sidebar-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-item.active{background:var(--accent-glow);color:var(--accent)}.sidebar-icon{font-size:1rem;width:20px;text-align:center}.sidebar-divider{height:1px;background:var(--border-subtle);margin:var(--sp-3) var(--sp-5)}.sidebar-dev{font-size:.8rem;opacity:.7}.sidebar-dev:hover{opacity:1}.sidebar-footer{padding:var(--sp-6);border-top:1px solid var(--border-subtle)}.main{flex:1;padding-bottom:0;max-width:800px;background:transparent}.main:before{display:none}.header{position:relative;background:transparent;border-bottom:none}.fab{bottom:var(--sp-10);right:var(--sp-10);width:56px;height:56px}.list-card{margin-left:var(--sp-8);margin-right:var(--sp-8)}.summary-bar{grid-template-columns:repeat(4,1fr);padding:var(--sp-6) var(--sp-8)}}@media(min-width:1200px){:root{--sidebar-width: 240px}.main{max-width:900px}.sidebar-item{padding:var(--sp-5) var(--sp-6)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);font-family:var(--font-display);font-size:.8125rem;font-weight:600;padding:var(--sp-4) var(--sp-6);border:none;border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);text-decoration:none;white-space:nowrap}.btn-primary{background:var(--accent);color:var(--text-inverse)}.btn-primary:hover{background:var(--accent-dim);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--accent)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:var(--sp-3) var(--sp-4)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-income{background:var(--income);color:var(--text-inverse)}.btn-expense{background:var(--expense);color:var(--text-inverse)}.btn-transfer{background:var(--transfer);color:var(--text-inverse)}.btn-sm{padding:var(--sp-2) var(--sp-4);font-size:.75rem;border-radius:var(--r-sm)}.btn-lg{padding:var(--sp-6) var(--sp-10);font-size:.9375rem;border-radius:var(--r-lg)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--r-md);font-size:1rem}.btn-icon-sm{width:28px;height:28px;padding:0;border-radius:var(--r-sm);font-size:.875rem}.btn-block{width:100%}.fab{position:fixed;bottom:calc(var(--nav-height) + var(--sp-6));right:var(--sp-6);width:52px;height:52px;border-radius:var(--r-full);background:linear-gradient(135deg,var(--accent),var(--accent-dim));color:#fff;font-size:1.5rem;border:none;cursor:pointer;box-shadow:var(--shadow-md),var(--shadow-glow);transition:all var(--t-normal);z-index:50;display:flex;align-items:center;justify-content:center}.fab:hover{transform:scale(1.05)}.fab:active{transform:scale(.95)}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);transition:all var(--t-fast)}.card-sm{border-radius:var(--r-md)}.card-hover:hover{background:var(--bg-hover);border-color:var(--border-default)}.card-interactive{cursor:pointer}.card-interactive:hover{background:var(--bg-hover);border-color:var(--accent)}.card-interactive:active{background:var(--bg-active)}.account-row{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--t-fast);text-decoration:none;color:inherit}.account-row:hover{background:var(--bg-hover)}.account-row:last-child{border-bottom:none}.account-icon{width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0;font-family:var(--font-mono);font-weight:600}.account-info{flex:1;min-width:0}.account-name{font-family:var(--font-mono);font-size:.8125rem;font-weight:500;color:var(--text-primary)}.account-fullname{font-size:.6875rem;color:var(--text-tertiary);margin-top:1px}.account-balance{font-family:var(--font-display);font-size:.9375rem;font-weight:600;text-align:right;color:var(--text-primary)}.txn-row{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-6);cursor:pointer;transition:background var(--t-fast)}.txn-row:hover{background:var(--bg-hover)}.txn-icon{width:28px;height:28px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:.8125rem;flex-shrink:0}.txn-icon--expense{background:var(--expense-bg);color:var(--expense)}.txn-icon--income{background:var(--income-bg);color:var(--income)}.txn-icon--transfer{background:var(--transfer-bg);color:var(--transfer)}.txn-info{flex:1;min-width:0}.txn-desc{font-size:.8125rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.txn-meta{display:flex;align-items:center;gap:var(--sp-3);font-size:.6875rem;color:var(--text-tertiary);margin-top:1px}.txn-amount{font-family:var(--font-display);font-size:.875rem;font-weight:600;text-align:right;white-space:nowrap}.stat-card{padding:var(--sp-4) var(--sp-5);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md)}.stat-label{font-size:.6875rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.stat-value{font-family:var(--font-display);font-size:1.125rem;font-weight:700;margin-top:var(--sp-1)}.chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-full);font-size:.6875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast);white-space:nowrap}.chip:hover{background:var(--bg-hover);border-color:var(--border-default)}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.input{width:100%;padding:var(--sp-4) var(--sp-5);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md);color:var(--text-primary);font-family:var(--font-body);font-size:.875rem;transition:all var(--t-fast)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--border-focus)}.input::placeholder{color:var(--text-tertiary)}.input-sm{padding:var(--sp-3) var(--sp-4);font-size:.8125rem;border-radius:var(--r-sm)}.search{position:relative}.search-input{width:100%;padding:var(--sp-3) var(--sp-5) var(--sp-3) var(--sp-10);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-primary);font-size:.8125rem}.search-input:focus{outline:none;border-color:var(--accent)}.search-icon{position:absolute;left:var(--sp-4);top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:.875rem}.progress{height:4px;background:var(--bg-void);border-radius:var(--r-full);overflow:hidden}.progress-bar{height:100%;border-radius:var(--r-full);background:var(--accent);transition:width .4s ease-out}.progress-bar--income{background:var(--income)}.progress-bar--expense{background:var(--expense)}.progress-bar--warning{background:var(--warning)}.badge{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);background:var(--accent-glow);border-radius:var(--r-sm);font-size:.625rem;font-weight:600;color:var(--accent)}.badge--income{background:var(--income-bg);color:var(--income)}.badge--expense{background:var(--expense-bg);color:var(--expense)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.empty{text-align:center;padding:var(--sp-12) var(--sp-8);color:var(--text-secondary)}.empty-icon{font-size:2rem;opacity:.5;margin-bottom:var(--sp-4)}.empty-title{font-family:var(--font-display);font-weight:600;margin-bottom:var(--sp-2)}.empty-text{font-size:.8125rem;color:var(--text-tertiary)}.empty-icon-circle{width:64px;height:64px;border-radius:var(--r-lg);background:var(--accent-glow);display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-6);font-size:1.75rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;opacity:0;visibility:hidden;transition:all var(--t-normal)}.modal-backdrop.open{opacity:1;visibility:visible}.modal-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--bg-deep);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);padding:var(--sp-6);padding-bottom:calc(var(--sp-8) + env(safe-area-inset-bottom,0));z-index:101;transform:translateY(100%);transition:transform var(--t-normal);max-height:90vh;overflow-y:auto}.modal-backdrop.open .modal-sheet{transform:translateY(0)}.modal-handle{width:36px;height:4px;background:var(--border-default);border-radius:var(--r-full);margin:0 auto var(--sp-6)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-6)}.modal-title{font-family:var(--font-display);font-size:1rem;font-weight:600}.modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:none;border-radius:var(--r-full);color:var(--text-secondary);cursor:pointer;font-size:.875rem}.segmented{display:flex;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:2px}.seg-btn{flex:1;padding:var(--sp-3) var(--sp-4);font-family:var(--font-display);font-size:.75rem;font-weight:500;background:transparent;border:none;border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast)}.seg-btn:hover{color:var(--text-primary)}.seg-btn.active{background:var(--accent);color:var(--text-inverse)}.seg-btn.active--income{background:var(--income)}.seg-btn.active--expense{background:var(--expense)}.seg-btn.active--transfer{background:var(--transfer)}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 0%,var(--bg-hover) 50%,var(--bg-elevated) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--r-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.debug-info{position:fixed;top:var(--sp-4);right:var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-4);font-size:.75rem;z-index:1000;max-width:180px}.debug-info h3{color:var(--accent);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-3)}.debug-info ul{list-style:none}.debug-info li{color:var(--text-secondary);padding:2px 0}
