.network-error-banner{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1rem;background:#fef3c7;border-bottom:1px solid #f59e0b;z-index:1000}.network-error-icon{font-size:1.25rem}.network-error-text{color:#92400e;font-weight:500}.network-error-retry{padding:.25rem .75rem;background:#f59e0b;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500}.network-error-retry:hover{background:#d97706}.loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.loader-spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.loader-text{color:#6b7280;font-size:.875rem}.header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.header-title{font-size:1rem;font-weight:600;color:var(--color-text);text-decoration:none;margin:0}.header-title:hover{color:var(--color-primary)}.header-nav{display:flex;align-items:center;gap:.25rem;margin-left:auto}.header-nav-link{padding:.5rem .75rem;font-size:.875rem;color:var(--color-text-muted);text-decoration:none;border-radius:6px;transition:background .15s,color .15s}.header-nav-link:hover{background:#f3f4f6;color:var(--color-text)}.header-nav-link.active{background:var(--color-primary);color:#fff}.header-menu-wrapper{position:relative}.header-burger{width:36px;height:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:none;border-radius:6px;cursor:pointer;padding:8px;transition:background .15s}.header-burger:hover,.header-burger.active{background:#f3f4f6}.header-burger-line{display:block;width:18px;height:2px;background:var(--color-text);border-radius:1px;transition:transform .2s,opacity .2s}.header-burger.active .header-burger-line:nth-child(1){transform:translateY(6px) rotate(45deg)}.header-burger.active .header-burger-line:nth-child(2){opacity:0}.header-burger.active .header-burger-line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.header-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#0003}.header-menu-dropdown{position:absolute;top:100%;left:0;margin-top:.5rem;min-width:160px;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 8px 24px #00000026;z-index:100;overflow:hidden}.header-menu-item{display:block;width:100%;padding:.75rem 1rem;font-size:.8125rem;color:var(--color-text);text-decoration:none;text-align:left;background:none;border:none;cursor:pointer;transition:background .15s}.header-menu-item:hover{background:#f3f4f6}.header-menu-logout{color:#dc2626;border-top:1px solid var(--color-border)}.header-menu-logout:hover{background:#fef2f2}.header-menu-logout:disabled{opacity:.6;cursor:not-allowed}.fab{position:fixed;bottom:1.5rem;right:1.5rem;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-size:2rem;font-weight:300;line-height:1;border-radius:50%;box-shadow:0 4px 12px #3b82f666;text-decoration:none;z-index:90;transition:transform .15s,box-shadow .15s}.fab:hover{transform:scale(1.05);box-shadow:0 6px 20px #3b82f680}.fab:active{transform:scale(.95)}@media(max-width:400px){.header{padding:.625rem .75rem;gap:.5rem}.header-title{font-size:.9375rem}.header-nav-link{padding:.5rem;font-size:.8125rem}.fab{bottom:1rem;right:1rem;width:52px;height:52px;font-size:1.75rem}}.credentials-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;padding:1rem;z-index:1000}.credentials-modal-card{width:100%;max-width:420px;background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 8px 24px #0003}.credentials-modal-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600;text-align:center}.credentials-modal-box{background:#f9fafb;border:1px solid var(--color-border);border-radius:8px;padding:1rem;margin-bottom:1rem}.credentials-modal-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.credentials-modal-row-multiline{align-items:flex-start}.credentials-modal-row+.credentials-modal-row{border-top:1px solid var(--color-border)}.credentials-modal-label{font-size:.875rem;color:var(--color-text-muted)}.credentials-modal-value{font-family:monospace;font-size:.9rem;font-weight:500;color:var(--color-text);-webkit-user-select:all;user-select:all}.credentials-modal-value-multiline{white-space:pre-wrap;word-break:break-word;text-align:right;max-width:65%}.credentials-modal-copy-btn{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:6px;background:#f3f4f6;color:var(--color-text);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s;margin-bottom:1rem}.credentials-modal-copy-btn:hover:not(:disabled){background:#e5e7eb}.credentials-modal-copy-btn:disabled{opacity:.6;cursor:not-allowed}.credentials-modal-warning{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;margin-bottom:1rem}.credentials-modal-warning-icon{font-size:1rem;flex-shrink:0}.credentials-modal-warning-text{font-size:.875rem;color:#92400e}.credentials-modal-checkbox{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.875rem}.credentials-modal-checkbox input{width:18px;height:18px;accent-color:var(--color-primary)}.credentials-modal-confirm{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border:none;border-radius:6px;background:var(--color-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.credentials-modal-confirm:hover:not(:disabled){background:var(--color-primary-hover)}.credentials-modal-confirm:disabled{opacity:.6;cursor:not-allowed}.credentials-modal-spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.recovery-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeIn .15s ease-out}.recovery-modal{background:#fff;border-radius:16px;padding:1.5rem;max-width:360px;width:100%;box-shadow:0 16px 48px #0003;animation:slideUp .2s ease-out}.recovery-modal-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600;color:var(--color-text);text-align:center}.recovery-modal-form{display:flex;flex-direction:column;gap:1rem}.recovery-modal-field{display:flex;flex-direction:column;gap:.25rem}.recovery-modal-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.recovery-modal-input{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;transition:border-color .15s}.recovery-modal-input:focus{outline:none;border-color:var(--color-primary)}.recovery-modal-input:disabled{background:#f3f4f6;cursor:not-allowed}.recovery-modal-textarea{resize:vertical;min-height:80px;line-height:1.4;font-family:inherit}.recovery-modal-error{padding:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.875rem;text-align:center}.recovery-modal-actions{display:flex;gap:.75rem;margin-top:.5rem}.recovery-modal-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:background .15s,transform .1s}.recovery-modal-btn:active:not(:disabled){transform:scale(.98)}.recovery-modal-btn:disabled{opacity:.6;cursor:not-allowed}.recovery-modal-cancel{background:#f3f4f6;color:var(--color-text)}.recovery-modal-cancel:hover:not(:disabled){background:#e5e7eb}.recovery-modal-submit{background:var(--color-primary);color:#fff}.recovery-modal-submit:hover:not(:disabled){background:var(--color-primary-hover)}.recovery-modal-spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem}.login-card{width:100%;max-width:360px;background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000001a}.login-title{text-align:center;margin:0 0 1.5rem;font-size:1.5rem;font-weight:600}.login-form{display:flex;flex-direction:column;gap:1rem}.login-field{display:flex;flex-direction:column;gap:.25rem}.login-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.login-input{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;transition:border-color .15s}.login-input:focus{outline:none;border-color:var(--color-primary)}.login-input:disabled{background:#f3f4f6;cursor:not-allowed}.login-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .15s}.login-btn-primary{background:var(--color-primary);color:#fff}.login-btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.login-btn-secondary{background:transparent;color:var(--color-primary);border:1px solid var(--color-border)}.login-btn-secondary:hover:not(:disabled){background:#f9fafb}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:.75rem;margin:.5rem 0;color:var(--color-text-muted);font-size:.875rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-error{padding:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.875rem;text-align:center}.login-spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.login-forgot-link{display:block;width:100%;margin-top:1rem;padding:.5rem;background:none;border:none;color:var(--color-text-muted);font-size:.875rem;text-align:center;cursor:pointer;transition:color .15s}.login-forgot-link:hover:not(:disabled){color:var(--color-primary);text-decoration:underline}.login-forgot-link:disabled{opacity:.6;cursor:not-allowed}.date-range{display:flex;gap:.5rem;align-items:center;flex-wrap:nowrap}.date-range-label,.date-range-separator{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.date-range-input{padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:6px;font-size:.75rem;width:120px;flex:0 0 auto}.date-range-input:focus{outline:none;border-color:var(--color-primary)}.dashboard-page{padding:1.5rem;max-width:600px;margin:0 auto}.dashboard-title{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600}.dashboard-controls{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.dashboard-account-group{display:flex;align-items:center;gap:.5rem}.dashboard-account-label{font-size:.875rem;color:var(--color-text-muted);white-space:nowrap}.dashboard-account-select{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:6px;font-size:.875rem;background:#fff;min-width:120px}.dashboard-currency-select{margin-left:auto}.dashboard-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.dashboard-card{padding:1rem}.dashboard-card-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.025em;margin-bottom:.25rem}.dashboard-card-value{font-size:1.25rem;font-weight:600}.dashboard-card-value.income{color:var(--color-income)}.dashboard-card-value.expense{color:var(--color-expense)}.dashboard-card-value.balance{color:var(--color-primary)}.dashboard-section{margin-bottom:1.5rem}.dashboard-section-title{font-size:1rem;font-weight:600;margin:0 0 .75rem}.dashboard-category-item{border-bottom:1px solid var(--color-border)}.dashboard-category-item:last-child{border-bottom:none}.dashboard-category-row{display:flex;align-items:center;width:100%;padding:.75rem 1rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit;transition:background .1s}.dashboard-category-row:hover{background:#f9fafb}.dashboard-category-expand{font-size:.625rem;color:var(--color-text-muted);margin-right:.5rem;width:.75rem}.dashboard-category-name{font-size:.875rem;flex:1}.dashboard-category-amount{font-size:.875rem;font-weight:500}.dashboard-category-details{padding:0 1rem .75rem 2rem;background:#f9fafb}.dashboard-category-loading,.dashboard-category-empty{font-size:.8125rem;color:var(--color-text-muted);padding:.5rem 0}.dashboard-transactions-list{list-style:none;margin:0;padding:0}.dashboard-transaction-item{display:flex;align-items:center;gap:.75rem;padding:.375rem 0;font-size:.8125rem;border-bottom:1px dashed var(--color-border)}.dashboard-transaction-item:last-child{border-bottom:none}.dashboard-transaction-date{color:var(--color-text-muted);flex-shrink:0;font-size:.75rem}.dashboard-transaction-comment{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-transaction-amount{font-weight:500;flex-shrink:0}.dashboard-category-link{display:inline-block;margin-top:.5rem;font-size:.8125rem;color:var(--color-primary);text-decoration:none}.dashboard-category-link:hover{text-decoration:underline}.dashboard-loading{display:flex;justify-content:center;padding:2rem}.dashboard-category-plan-percent{font-size:.75rem;color:var(--color-text-muted);font-weight:400}.dashboard-category-plan-percent.plan-warning{color:#dc2626;font-weight:700;text-decoration:underline}.tx-fields{display:flex;flex-direction:column;gap:1rem}.tx-field{display:flex;flex-direction:column;gap:.375rem}.tx-field-label{font-size:.8125rem;font-weight:500;color:var(--color-text-muted)}.tx-field-input{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9375rem;transition:border-color .15s}.tx-field-input:focus{outline:none;border-color:var(--color-primary)}.tx-field-input.error{border-color:#dc2626;background:#fef2f2}.tx-field-input:disabled{background:#f9fafb;color:var(--color-text-muted);cursor:not-allowed}.tx-type-toggle{display:flex;gap:.5rem}.tx-type-btn{flex:1;padding:.625rem;border:1px solid var(--color-border);border-radius:8px;background:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.tx-type-btn:hover:not(.active){background:#f9fafb}.tx-type-btn.error:not(.active){border-color:#dc2626;background:#fef2f2}.tx-type-btn.active.expense{background:#dc2626;border-color:#dc2626;color:#fff}.tx-type-btn.active.income{background:#16a34a;border-color:#16a34a;color:#fff}.add-page{max-width:600px;margin:0 auto;padding:1.5rem}.add-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text)}.add-page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.add-input-section{display:flex;flex-direction:column;gap:1rem}.add-textarea-wrapper{position:relative;margin-bottom:.5rem}.add-textarea{width:100%;min-height:100px;padding:.75rem;border:1px solid var(--color-border);border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;background:#fff}.add-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.add-voice-btn{position:absolute;bottom:.75rem;right:.75rem;width:40px;height:40px;border:none;border-radius:50%;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.add-voice-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #ef444466}.add-voice-btn.listening{animation:pulse-voice 1s infinite}@keyframes pulse-voice{0%,to{box-shadow:0 0 #ef444499}50%{box-shadow:0 0 0 12px #ef444400}}.add-voice-hint{position:absolute;bottom:-1.5rem;right:0;font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.add-controls-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.add-date-input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:#fff}.add-date-input:focus{outline:none;border-color:var(--color-primary)}.add-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.add-suggest-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:transform .15s,box-shadow .15s}.add-suggest-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.add-suggest-btn:disabled{opacity:.6;cursor:not-allowed}.add-manual-link{padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text);font-size:.9rem;cursor:pointer;transition:border-color .15s,background .15s}.add-manual-link:hover{border-color:var(--color-primary);background:#f8fafc}.add-disclaimer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.add-disclaimer-modal{background:#fff;border-radius:12px;padding:1.5rem;max-width:400px;width:100%;box-shadow:0 20px 40px #0003}.add-disclaimer-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.add-disclaimer-text{margin:0 0 1.25rem;color:var(--color-text-muted);font-size:.9rem;line-height:1.5}.add-disclaimer-actions{display:flex;gap:.75rem;justify-content:flex-end}.add-disclaimer-btn{padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer}.add-disclaimer-btn.primary{border:none;background:var(--color-primary);color:#fff}.add-disclaimer-btn.secondary{border:1px solid var(--color-border);background:#fff;color:var(--color-text)}.add-confirm-section{display:flex;flex-direction:column;gap:1.25rem}.add-confirm-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.add-back-btn{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:6px;background:#fff;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.25rem}.add-back-btn:hover{border-color:var(--color-primary)}.add-confirm-date{font-size:.9rem;color:var(--color-text-muted)}.add-position-card{background:#fff;border:1px solid var(--color-border);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;position:relative}.add-position-card.low-confidence{border-color:#f59e0b;background:linear-gradient(to right,rgba(245,158,11,.05),transparent)}.add-position-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.add-position-number{font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.add-confidence-badge{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;font-weight:500}.add-confidence-badge.high{background:#dcfce7;color:#166534}.add-confidence-badge.medium{background:#fef3c7;color:#92400e}.add-confidence-badge.low{background:#fee2e2;color:#991b1b}.add-low-warning{font-size:.8rem;color:#dc2626;display:flex;align-items:center;gap:.25rem;margin-left:auto}.add-remove-btn{position:absolute;top:.5rem;right:.5rem;width:24px;height:24px;border:none;border-radius:50%;background:#f3f4f6;color:var(--color-text-muted);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.add-remove-btn:hover{background:#fee2e2;color:#dc2626}.add-position-btn{padding:.75rem;border:2px dashed var(--color-border);border-radius:8px;background:transparent;color:var(--color-text-muted);font-size:.9rem;cursor:pointer;transition:border-color .15s,color .15s}.add-position-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.add-position-btn:disabled{opacity:.5;cursor:not-allowed}.add-save-btn{padding:.875rem 1.5rem;border:none;border-radius:8px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;margin-top:.5rem}.add-save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.add-save-btn:disabled{opacity:.6;cursor:not-allowed}.add-loading{display:flex;align-items:center;justify-content:center;padding:3rem}.add-spinner{width:32px;height:32px}.add-error{padding:1rem;background:#fee2e2;border-radius:8px;color:#991b1b;font-size:.9rem;text-align:center}.add-provider-badge{font-size:.75rem;color:var(--color-text-muted);padding:.25rem .5rem;background:#f3f4f6;border-radius:4px}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeIn .15s ease-out}.confirm-modal{background:#fff;border-radius:16px;padding:1.5rem;max-width:320px;width:100%;box-shadow:0 16px 48px #0003;animation:slideUp .2s ease-out}.confirm-modal-title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--color-text)}.confirm-modal-message{margin:0 0 1.5rem;font-size:.9375rem;color:var(--color-text-muted);line-height:1.5}.confirm-modal-actions{display:flex;gap:.75rem}.confirm-modal-btn{flex:1;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:background .15s,transform .1s}.confirm-modal-btn:active{transform:scale(.98)}.confirm-modal-cancel{background:#f3f4f6;color:var(--color-text)}.confirm-modal-cancel:hover{background:#e5e7eb}.confirm-modal-confirm{background:var(--color-primary);color:#fff}.confirm-modal-confirm:hover{background:#2563eb}.confirm-modal-confirm.danger{background:#dc2626}.confirm-modal-confirm.danger:hover{background:#b91c1c}.edit-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeIn .15s ease-out}.edit-modal{background:#fff;border-radius:16px;padding:1.5rem;max-width:400px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 16px 48px #0003;animation:slideUp .2s ease-out}.edit-modal-title{margin:0 0 1.25rem;font-size:1.125rem;font-weight:600;color:var(--color-text)}.edit-modal-form{display:flex;flex-direction:column;gap:1rem}.edit-modal-error{padding:.625rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem;text-align:center}.edit-modal-actions{display:flex;gap:.75rem;margin-top:.5rem}.edit-modal-btn{flex:1;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:background .15s,transform .1s}.edit-modal-btn:active{transform:scale(.98)}.edit-modal-btn:disabled{opacity:.6;cursor:not-allowed}.edit-modal-cancel{background:#f3f4f6;color:var(--color-text)}.edit-modal-cancel:hover:not(:disabled){background:#e5e7eb}.edit-modal-save{background:var(--color-primary);color:#fff}.edit-modal-save:hover:not(:disabled){background:#2563eb}.transactions-page{padding:1.5rem;max-width:600px;margin:0 auto}.transactions-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.transactions-header .date-range{gap:.25rem}.transactions-header .date-range-input{padding:.25rem .4rem;font-size:.75rem;width:110px}.transactions-header .date-range-separator{font-size:.75rem}.transactions-title{margin:0;font-size:1.25rem;font-weight:600}.transactions-controls{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.transactions-filters{display:flex;gap:.5rem;flex-wrap:wrap}.transactions-filters .input-select{flex:1;min-width:90px;font-size:.6875rem;padding:.35rem .5rem}.transactions-loading{display:flex;justify-content:center;padding:2rem}.transactions-sections{display:flex;flex-direction:column;gap:1.5rem}.transactions-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.transactions-section-icon{font-size:1.25rem}.transactions-section-title{font-size:1rem;font-weight:600;margin:0}.transactions-section-total{font-size:.875rem;font-weight:600;margin-left:auto}.transactions-groups{display:flex;flex-direction:column;gap:.5rem}.transactions-category-header{font:inherit}.transactions-category-total.income{color:var(--color-income)}.transactions-category-total.expense{color:var(--color-expense)}.transactions-category-items{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-border)}.transactions-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.25rem .75rem;padding:.75rem 1rem .75rem 2rem;border-bottom:1px solid var(--color-border);position:relative}.transactions-item:last-child{border-bottom:none}.transactions-item-main{display:flex;align-items:center;gap:.5rem;grid-column:1;grid-row:1;cursor:pointer;border-radius:4px;margin:-.25rem;padding:.25rem;transition:background .15s}.transactions-item-main:hover{background:#f3f4f6}.transactions-item-icon{font-size:.75rem;font-weight:600;width:1rem;text-align:center}.transactions-item.income .transactions-item-icon{color:var(--color-income)}.transactions-item.expense .transactions-item-icon{color:var(--color-expense)}.transactions-item-date{font-size:.8125rem;color:var(--color-text-muted);flex-shrink:0}.transactions-item-amount{font-size:.875rem;font-weight:600;margin-left:auto}.transactions-item-amount.income{color:var(--color-income)}.transactions-item-amount.expense{color:var(--color-expense)}.transactions-item-details{display:flex;align-items:center;gap:.5rem;grid-column:1;grid-row:2;padding-left:1.5rem;cursor:pointer;border-radius:4px;transition:background .15s}.transactions-item-details:hover{background:#f3f4f6}.transactions-item-comment{font-size:.8125rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transactions-item-delete{grid-column:2;grid-row:1 / 3;align-self:center;background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:.875rem;padding:.5rem;border-radius:4px;transition:color .15s,background .15s}.transactions-item-delete:hover{color:var(--color-expense);background:var(--color-error-bg)}.transactions-item-delete:disabled{cursor:not-allowed;opacity:.5}.transactions-category-plan-percent{font-size:.75rem;color:var(--color-text-muted);font-weight:400}.transactions-category-plan-percent.plan-warning{color:#dc2626;font-weight:700;text-decoration:underline}.transactions-category-plan-info{padding:.5rem 1rem .5rem 2rem;font-size:.75rem;color:var(--color-text-muted);border-bottom:1px dashed var(--color-border)}.export-page{padding:1rem;max-width:480px;margin:0 auto}.export-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:var(--color-text)}.export-card{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014}.export-hint{color:var(--color-text-muted);font-size:.9rem;margin-bottom:1.5rem}.export-period-display{text-align:center;color:var(--color-text-muted);font-size:.9rem;margin-bottom:1.5rem;padding:.5rem;background:var(--color-bg);border-radius:6px}.export-error{color:var(--color-danger);font-size:.9rem;margin-bottom:1rem;padding:.75rem;background:#dc35451a;border-radius:6px}.export-btn{width:100%;padding:.875rem 1.5rem;font-size:1rem;font-weight:500;color:#fff;background:var(--color-primary);border:none;border-radius:8px;cursor:pointer;transition:background .2s ease}.export-btn:hover:not(:disabled){background:var(--color-primary-hover)}.export-btn:disabled{opacity:.6;cursor:not-allowed}.profile-page{display:flex;flex-direction:column;gap:1.25rem}.profile-card{padding:1.25rem}.profile-card-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--color-text)}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.profile-value-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.profile-label{font-size:.875rem;color:var(--color-text-muted)}.profile-value{font-family:monospace;font-size:.95rem;font-weight:600}.profile-copy-btn{padding:.35rem .6rem;border-radius:6px;border:1px solid var(--color-border);background:#f3f4f6;color:var(--color-text);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.profile-copy-btn:hover:not(:disabled){background:#e5e7eb}.profile-copy-btn:disabled{opacity:.6;cursor:not-allowed}.profile-hint{margin:0 0 1rem;color:var(--color-text-muted);font-size:.875rem}.profile-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border-radius:8px;border:1px solid transparent;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.profile-btn-primary{background:var(--color-primary);color:#fff}.profile-btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.profile-btn-danger{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.profile-btn-danger:hover:not(:disabled){background:#fecaca}.profile-btn:disabled{opacity:.6;cursor:not-allowed}.profile-btn-spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.profile-card-danger{border:1px solid #fee2e2}.accounts-page{display:flex;flex-direction:column;gap:1rem}.accounts-loading{text-align:center;color:var(--color-text-muted);padding:2rem}.accounts-add-section{display:flex;gap:.5rem;background:#fff;border:1px solid var(--color-border);border-radius:12px;padding:1rem}.accounts-add-input{flex:1;min-width:0;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.875rem}.accounts-add-input:focus{outline:none;border-color:var(--color-primary)}.accounts-add-btn{padding:.5rem 1rem;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.accounts-add-btn:hover:not(:disabled){background:var(--color-primary-hover)}.accounts-add-btn:disabled{opacity:.5;cursor:not-allowed}.accounts-list{display:flex;flex-direction:column;gap:.5rem;background:#fff;border:1px solid var(--color-border);border-radius:12px;padding:1rem}.accounts-empty{text-align:center;color:var(--color-text-muted);padding:1rem}.account-row{display:flex;align-items:center;gap:.5rem}.account-input{flex:1;min-width:0;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.875rem;transition:border-color .15s,background .15s}.account-input:focus{outline:none;border-color:var(--color-primary)}.account-input.modified{background:#fef9c3;border-color:#fcd34d}.account-input:disabled{background:#f9fafb;cursor:not-allowed}.account-actions{display:flex;gap:.25rem;flex-shrink:0}.account-save-btn{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.account-save-btn:hover:not(:disabled){background:var(--color-primary-hover)}.account-save-btn:disabled{opacity:.5;cursor:not-allowed}.account-cancel-btn{width:32px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:8px;background:#f9fafb;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.account-cancel-btn:hover:not(:disabled){background:#fee2e2;color:#dc2626;border-color:#fecaca}.account-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.account-delete-btn{width:32px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:8px;background:#f9fafb;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.account-delete-btn:hover:not(:disabled){background:#fee2e2;color:#dc2626;border-color:#fecaca}.account-delete-btn:disabled{opacity:.5;cursor:not-allowed}.success-box{padding:.5rem .75rem;background:#dcfce7;border:1px solid #86efac;border-radius:8px;color:#166534;font-size:.8125rem}.planning-page{padding:1rem;max-width:600px;margin:0 auto;padding-bottom:80px}.planning-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.planning-title{margin:0;font-size:1.25rem;font-weight:600}.planning-help-btn{display:flex;align-items:center;gap:.35rem;padding:.35rem .75rem .35rem .5rem;border:1px solid var(--color-primary);background:#fff;cursor:pointer;border-radius:20px;transition:all .15s;font-size:.75rem;color:var(--color-primary)}.planning-help-btn:hover{background:var(--color-primary);color:#fff}.planning-help-btn:hover .help-icon{background:#fff;color:var(--color-primary)}.help-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:700;background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0}.help-label{font-weight:500}.planning-controls-sticky{position:sticky;top:60px;z-index:10;background:linear-gradient(to bottom,var(--color-bg) 0%,var(--color-bg) 90%,transparent 100%);padding:.5rem 0 1rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.planning-presets{display:flex;gap:.25rem}.planning-preset-btn{padding:.5rem .75rem;font-size:.8125rem;border:1px solid var(--color-border);border-radius:6px;background:#fff;cursor:pointer;transition:all .15s;min-height:44px}.planning-preset-btn:hover,.planning-preset-btn:active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.planning-show-hidden{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;color:var(--color-text-muted);cursor:pointer;min-height:44px;padding:0 .5rem}.planning-show-hidden input{width:20px;height:20px;margin:0}.planning-type-section{margin-bottom:1.5rem}.planning-type-title{font-size:.9375rem;font-weight:600;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.planning-category-list{display:flex;flex-direction:column;gap:.5rem}.planning-category-item{background:#fff;border:1px solid var(--color-border);border-radius:12px;padding:0;overflow:hidden;transition:transform .15s,box-shadow .15s;position:relative}.planning-category-item.expanded{box-shadow:0 4px 12px #00000014}.planning-category-item.hidden-cat{opacity:.6}.swipe-hint{position:absolute;top:0;bottom:0;width:80px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:500;z-index:1;pointer-events:none}.swipe-hint-left{right:0;background:linear-gradient(to left,#fee2e2,transparent);color:#dc2626}.swipe-hint-right{left:0;background:linear-gradient(to right,#dbeafe,transparent);color:#2563eb}.planning-category-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;min-height:56px;-webkit-tap-highlight-color:transparent}.planning-category-header:active{background:#f9fafb}.planning-visibility-btn{width:44px;height:44px;padding:0;border:none;border-radius:8px;background:transparent;font-size:1.125rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.planning-visibility-btn:hover:not(:disabled),.planning-visibility-btn:active:not(:disabled){background:#f3f4f6}.planning-visibility-btn.is-hidden{opacity:.5}.planning-visibility-btn:disabled{opacity:.4;cursor:not-allowed}.planning-category-name-text{flex:1;font-size:.9375rem;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modified-indicator{color:#f59e0b;margin-left:.25rem}.planning-category-effective{font-size:.8125rem;color:var(--color-primary);font-weight:500;flex-shrink:0}.expand-icon{font-size:1rem;color:var(--color-text-muted);transition:transform .2s;flex-shrink:0}.expand-icon.expanded{transform:rotate(90deg)}.planning-category-details{padding:0 1rem 1rem;border-top:1px dashed var(--color-border);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.planning-name-row{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}.planning-category-name-input{flex:1;min-width:0;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.875rem;transition:border-color .15s,background .15s}.planning-category-name-input:focus{outline:none;border-color:var(--color-primary)}.planning-category-name-input.modified{background:#fef9c3;border-color:#fcd34d}.planning-category-name-input:disabled{background:#f9fafb;cursor:not-allowed}.planning-name-actions{display:flex;gap:.25rem;flex-shrink:0}.planning-action-btn{width:44px;height:44px;padding:0;border:1px solid var(--color-border);border-radius:8px;background:#f9fafb;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.planning-action-btn.save{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.planning-action-btn.save:hover:not(:disabled),.planning-action-btn.save:active:not(:disabled){background:var(--color-primary-hover)}.planning-action-btn.cancel,.planning-action-btn.delete{color:var(--color-text-muted)}.planning-action-btn.cancel:hover:not(:disabled),.planning-action-btn.cancel:active:not(:disabled),.planning-action-btn.delete:hover:not(:disabled),.planning-action-btn.delete:active:not(:disabled){background:#fee2e2;color:#dc2626;border-color:#fecaca}.planning-action-btn.reset{color:var(--color-text-muted)}.planning-action-btn.reset:hover:not(:disabled),.planning-action-btn.reset:active:not(:disabled){background:#dbeafe;color:#2563eb;border-color:#bfdbfe}.planning-action-btn:disabled{opacity:.5;cursor:not-allowed}.planning-category-form{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}.planning-category-input{width:120px;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.875rem}.planning-category-input:focus{outline:none;border-color:var(--color-primary)}.planning-existing-plans{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--color-border)}.planning-existing-title{font-size:.75rem;color:var(--color-text-muted);margin-bottom:.35rem}.planning-plan-row{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;padding:.35rem 0}.planning-plan-period{color:var(--color-text-muted);flex:1}.planning-plan-amount{font-weight:500}.planning-skeletons{display:flex;flex-direction:column;gap:.5rem}.planning-category-skeleton{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fff;border:1px solid var(--color-border);border-radius:12px}.skeleton-icon{width:44px;height:44px;border-radius:8px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-text{flex:1;height:20px;border-radius:4px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-amount{width:60px;height:20px;border-radius:4px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.info-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;animation:fadeIn .2s}.info-modal{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:20px 20px 0 0;z-index:1001;max-height:70vh;overflow-y:auto;animation:slideUp .3s ease-out}@media(min-width:768px){.info-modal{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:400px;max-height:80vh;border-radius:16px;animation:scaleIn .2s ease-out}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.info-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);font-weight:600;font-size:.9375rem}.info-modal-close{width:36px;height:36px;border:none;background:transparent;font-size:1.125rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--color-text-muted)}.info-modal-close:hover{background:#f3f4f6}.info-modal-content{padding:.75rem 1rem 1.25rem}.info-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.75rem;color:var(--color-text-muted);padding:.25rem 0}.info-divider{height:1px;background:var(--color-border);margin:.5rem 0}.info-compact{font-size:.8125rem;line-height:1.4;padding:.25rem 0}.info-compact strong{font-weight:600}.info-compact em{display:block;font-size:.75rem;color:var(--color-text-muted);margin-top:.125rem}.planning-empty{text-align:center;color:var(--color-text-muted);padding:3rem 1rem;font-size:.9375rem}.planning-hidden-section{margin-top:.5rem;opacity:.8}.error-box{padding:.75rem 1rem;background:#fee2e2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.875rem;margin-bottom:1rem}.success-box{padding:.75rem 1rem;background:#dcfce7;border:1px solid #86efac;border-radius:10px;color:#166534;font-size:.875rem;margin-bottom:1rem}@media(max-width:480px){.planning-page{padding:.75rem}.planning-controls-sticky{top:56px;gap:.35rem}.planning-preset-btn{padding:.5rem;font-size:.75rem}.planning-category-header{padding:.625rem .75rem}.planning-category-details{padding:0 .75rem .75rem}.planning-category-input{width:100px}}*,*:before,*:after{box-sizing:border-box}:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-bg: #f9fafb;--color-text: #111827;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-income: #16a34a;--color-expense: #dc2626;--color-error-bg: #fef2f2;--color-error-border: #fecaca}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-text);line-height:1.5}.page{max-width:600px;margin:0 auto;padding:1.5rem}h1{margin:0 0 1rem;font-size:1.5rem;font-weight:600}.input-select{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer}.input-select:focus{outline:none;border-color:var(--color-primary)}.error-box{padding:.75rem;background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:6px;color:var(--color-expense);font-size:.875rem;text-align:center;margin-bottom:1rem}.spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-message{text-align:center;color:var(--color-text-muted);font-size:.875rem;padding:2rem 1rem}.amount-income,.text-income{color:var(--color-income)}.amount-expense,.text-expense{color:var(--color-expense)}.card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.expand-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:.875rem 1rem;background:none;border:none;cursor:pointer;font-size:.9375rem;text-align:left;transition:background .15s}.expand-row:hover{background:#f9fafb}.expand-icon{font-size:.625rem;color:var(--color-text-muted);width:1rem;text-align:center}.expand-title{flex:1;font-weight:500}.expand-value{font-weight:600;font-size:.9375rem}
