:root{--color-primary: #6366F1;--color-primary-gradient-start: #6366F1;--color-primary-gradient-mid: #818CF8;--color-primary-gradient-end: #8B5CF6;--color-accent: #8B5CF6;--color-success: #10B981;--color-success-bg: rgba(16, 185, 129, .15);--color-warning: #F59E0B;--color-danger: #EF4444;--color-background: #0F0F0F;--color-card-bg: #1A1A1A;--color-card-hover: #242424;--color-input-bg: #262626;--color-text-primary: #F9FAFB;--color-text-secondary: #9CA3AF;--color-text-muted: #6B7280;--color-border: #2D2D2D;--color-border-light: #3D3D3D;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-card: 0 2px 8px rgba(0, 0, 0, .3);--shadow-button: 0 4px 20px rgba(99, 102, 241, .4);--shadow-modal: 0 4px 24px rgba(0, 0, 0, .4);--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-numbers: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}[data-theme=midnight]{color-scheme:dark}[data-theme=midnight] .summary-card-gradient{background:linear-gradient(135deg,var(--color-primary-gradient-start),var(--color-primary-gradient-end))}[data-theme=frost]{color-scheme:light;--color-primary: #007AFF;--color-accent: #5AC8FA;--color-success: #34C759;--color-warning: #FF9500;--color-danger: #FF3B30;--color-background: #F2F2F7;--color-card-bg: #FFFFFF;--color-card-hover: #F9F9F9;--color-input-bg: #E5E5EA;--color-text-primary: #000000;--color-text-secondary: #8E8E93;--color-text-muted: #C7C7CC;--color-border: #D1D1D6;--color-border-light: #E5E5EA;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .08)}[data-theme=frost] .summary-card-gradient{background:linear-gradient(145deg,#1c1c1e,#2c2c2e);color:#fff;box-shadow:0 10px 40px #00000026}[data-theme=frost] .summary-card-gradient .summary-label,[data-theme=frost] .summary-card-gradient .summary-item-label{color:#98989d}[data-theme=frost] .summary-card-gradient .summary-item-value.income{color:#30d158}[data-theme=frost] .summary-card-gradient .summary-item-value.expense{color:#ff6961}[data-theme=frost] .fab{background:#007aff;box-shadow:0 4px 14px #007aff66;border-radius:50%}[data-theme=frost] .goals-summary{background:#007aff14}[data-theme=lavender]{color-scheme:light;--color-primary: #6750A4;--color-primary-gradient-start: #6750A4;--color-primary-gradient-mid: #7F67BE;--color-primary-gradient-end: #D0BCFF;--color-accent: #D0BCFF;--color-success: #146C2E;--color-warning: #7D5700;--color-danger: #BA1A1A;--color-background: #FEF7FF;--color-card-bg: #FFFFFF;--color-card-hover: #F3EDF7;--color-input-bg: #E6E0E9;--color-text-primary: #1D1B20;--color-text-secondary: #49454F;--color-text-muted: #79747E;--color-border: #CAC4D0;--color-border-light: #E7E0EC;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 28px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .1)}[data-theme=lavender] .summary-card-gradient{background:linear-gradient(135deg,#6750a4,#7f67be,#d0bcff);box-shadow:0 2px 6px #00000026,0 8px 24px #6750a433;border-radius:28px}[data-theme=lavender] .summary-card-gradient .summary-item-value.income{color:#b8f397}[data-theme=lavender] .summary-card-gradient .summary-item-value.expense{color:#ffb4ab}[data-theme=lavender] .fab{background:#eaddff;color:#21005d;box-shadow:0 3px 5px #0003,0 6px 10px #00000024;border-radius:16px}[data-theme=lavender] .goals-summary,[data-theme=lavender] .goal-item{background:#f3edf7;border-radius:16px}[data-theme=lavender] .goal-progress-bar{background:linear-gradient(90deg,#6750a4,#d0bcff)}[data-theme=terminal]{color-scheme:dark;--color-primary: #FF6600;--color-accent: #00BFFF;--color-success: #00D26A;--color-success-bg: rgba(0, 210, 106, .15);--color-warning: #FFB800;--color-danger: #FF4757;--color-background: #000000;--color-card-bg: #1A1A1A;--color-card-hover: #262626;--color-input-bg: #262626;--color-text-primary: #FFFFFF;--color-text-secondary: #B0B0B0;--color-text-muted: #707070;--color-border: #333333;--color-border-light: #444444;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--shadow-card: none;--font-family-base: "SF Mono", "Roboto Mono", "Consolas", monospace;--font-family-numbers: "SF Mono", "Roboto Mono", "Consolas", monospace}[data-theme=terminal] .summary-card-gradient{background:#1a1a1a;border:1px solid #FF6600;border-left:4px solid #FF6600;box-shadow:none;border-radius:0}[data-theme=terminal] .summary-card-gradient .summary-label{color:#f60;text-transform:uppercase;font-size:11px;letter-spacing:1px}[data-theme=terminal] .summary-card-gradient .summary-item-label{color:#707070;text-transform:uppercase;font-size:10px;letter-spacing:.5px}[data-theme=terminal] .summary-card-gradient .summary-item-value.income{color:#00d26a}[data-theme=terminal] .summary-card-gradient .summary-item-value.expense{color:#ff4757}[data-theme=terminal] .section-title{text-transform:uppercase;font-size:12px;letter-spacing:1px;color:#f60}[data-theme=terminal] .section-link{color:#00bfff;text-transform:uppercase;font-size:11px;letter-spacing:.5px}[data-theme=terminal] .fab{background:#f60;box-shadow:none;border-radius:0;color:#000;font-weight:700}[data-theme=terminal] .goals-summary{background:#262626;border-radius:0;border-left:3px solid #00D26A}[data-theme=terminal] .goal-item{background:#262626;border-radius:0;border-left:2px solid #333333}[data-theme=terminal] .goal-item:hover{border-left-color:#f60}[data-theme=terminal] .goal-progress-bar{background:#f60;border-radius:0}[data-theme=terminal] .goal-progress{border-radius:0;height:4px;background:#333}[data-theme=terminal] .movement-amount,[data-theme=terminal] .summary-value,[data-theme=terminal] .balance-value,[data-theme=terminal] .stat-value,[data-theme=terminal] .goal-amounts,[data-theme=terminal] .goals-summary-value{font-family:var(--font-family-numbers)}[data-theme=terminal] .header h1{color:#f60;text-transform:uppercase;font-size:16px;letter-spacing:2px}[data-theme=sunrise]{color-scheme:light;--color-primary: #FF6600;--color-primary-gradient-start: #FF6600;--color-primary-gradient-mid: #FF8533;--color-primary-gradient-end: #FFA366;--color-accent: #003366;--color-success: #00875A;--color-success-bg: rgba(0, 135, 90, .1);--color-warning: #FFB800;--color-danger: #E53935;--color-background: #F5F5F5;--color-card-bg: #FFFFFF;--color-card-hover: #FFF8F0;--color-input-bg: #F0F0F0;--color-text-primary: #1A1A1A;--color-text-secondary: #666666;--color-text-muted: #999999;--color-border: #E5E5E5;--color-border-light: #F0F0F0;--radius-sm: 10px;--radius-md: 12px;--radius-lg: 16px;--shadow-card: 0 2px 12px rgba(0, 0, 0, .06)}[data-theme=sunrise] .summary-card-gradient{background:linear-gradient(135deg,#f60,#ff8533,#ffa366);box-shadow:0 8px 32px #ff660040;border-radius:16px}[data-theme=sunrise] .summary-card-gradient .summary-label{color:#ffffffd9}[data-theme=sunrise] .summary-card-gradient .summary-item-label{color:#ffffffb3}[data-theme=sunrise] .summary-card-gradient .summary-item-value.income{color:#fff}[data-theme=sunrise] .summary-card-gradient .summary-item-value.expense{color:#ffe0cc}[data-theme=sunrise] .section-title{color:#036;font-weight:600}[data-theme=sunrise] .fab{background:linear-gradient(135deg,#f60,#ff8533);box-shadow:0 6px 20px #f606;border-radius:16px}[data-theme=sunrise] .goals-summary{background:linear-gradient(135deg,#ff660014,#ff85330d);border-radius:12px;border:1px solid rgba(255,102,0,.15)}[data-theme=sunrise] .goal-item{background:#fafafa;border-radius:12px;border:1px solid #F0F0F0}[data-theme=sunrise] .goal-item:hover{background:#fff8f0;border-color:#f603}[data-theme=sunrise] .goal-progress-bar{background:linear-gradient(90deg,#f60,#ff8533)}[data-theme=sunrise] .header h1{color:#036;font-weight:700}.theme-selector-modal{max-width:450px}.theme-options{display:flex;flex-direction:column;gap:12px;margin:16px 0}.theme-option{display:flex;align-items:center;gap:16px;padding:16px;border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-card-bg);cursor:pointer;transition:all .2s ease;width:100%;text-align:left}.theme-option:hover{border-color:var(--color-primary);background-color:var(--color-background)}.theme-option.selected{border-color:var(--color-primary);background-color:#6366f10d}.theme-preview{width:60px;height:60px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--radius-md)}.theme-preview-icon{font-size:24px}.theme-info{flex:1;display:flex;flex-direction:column;gap:4px}.theme-name{font-size:16px;font-weight:600;color:var(--color-text-primary)}.theme-description{font-size:14px;color:var(--color-text-secondary);line-height:1.4}.theme-check{color:var(--color-primary);font-size:20px;font-weight:700;flex-shrink:0}@media (hover: none) and (pointer: coarse){.theme-option:hover{border-color:var(--color-border);background-color:var(--color-card-bg)}.theme-option:active{border-color:var(--color-primary);background-color:var(--color-background)}.theme-option.selected:hover{border-color:var(--color-primary);background-color:#6366f10d}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text-primary);line-height:1.6;will-change:scroll-position;-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%}#root{min-height:100vh;transform:translateZ(0)}body{-webkit-touch-callout:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:none}a,button,input,select,textarea{touch-action:manipulation}.animated{will-change:transform,opacity}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.app{min-height:100vh;background-color:var(--color-background)}.loading-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--color-background);contain:layout style paint}.loading-container{text-align:center;transform:translateZ(0)}.loading-spinner{width:40px;height:40px;border:4px solid var(--color-border);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px;will-change:transform}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:16px;color:var(--color-text-secondary)}.error-boundary{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background-color:var(--color-background)}.error-container{text-align:center;max-width:400px}.error-container h2{color:var(--color-danger);margin-bottom:16px}.error-container p{color:var(--color-text-secondary);margin-bottom:24px}.retry-button{background-color:var(--color-primary);color:#fff;border:none;padding:12px 24px;border-radius:var(--radius-md);font-size:16px;cursor:pointer;transition:background-color .2s}.retry-button:hover{opacity:.9}.header{padding:20px;background-color:var(--color-card-bg);border-bottom:1px solid var(--color-border)}.header-content{display:flex;justify-content:space-between;align-items:center}.title{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:0}.subtitle{font-size:16px;color:var(--color-text-secondary);margin:4px 0 0}.back-button{background:none;border:none;font-size:18px;color:var(--color-primary);cursor:pointer;padding:8px;margin:-8px 0 16px -8px;transition:opacity .2s}.back-button:hover{opacity:.7}.settings-button{padding:8px;border-radius:20px;background-color:#0d94881a;border:none;font-size:20px;cursor:pointer;transition:background-color .2s}.settings-button:hover{background-color:#0d948833}.dashboard{min-height:100vh}.summary-card{background-color:var(--color-card-bg);margin:20px;border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-card)}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.summary-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.status-indicator{padding:6px 12px;border-radius:16px}.status-text{color:#fff;font-size:12px;font-weight:600}.summary-content{margin-bottom:16px}.summary-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.summary-label{font-size:16px;color:var(--color-text-secondary)}.summary-value{font-size:16px;font-weight:600;font-family:var(--font-family-numbers)}.balance-row{border-top:1px solid var(--color-border);padding-top:12px;margin-top:8px;margin-bottom:0}.balance-label{font-size:18px;font-weight:600;color:var(--color-text-primary)}.balance-value{font-size:18px;font-weight:700;font-family:var(--font-family-numbers)}.income-text{color:var(--color-success)}.expense-text{color:var(--color-danger)}.summary-button{background-color:var(--color-accent);color:#fff;border:none;padding:12px;border-radius:var(--radius-md);width:100%;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s;box-shadow:var(--shadow-button)}.summary-button:hover{opacity:.9}.movements-section{background-color:var(--color-card-bg);margin:20px;border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-card)}.movements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.movements-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.add-button{color:var(--color-primary);background:none;border:none;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}.add-button:hover{opacity:.7}.empty-state{text-align:center;padding:20px 0}.empty-state-text{font-size:16px;color:var(--color-text-secondary);margin-bottom:16px}.empty-state-button{background-color:var(--color-primary);color:#fff;border:none;padding:12px 20px;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.empty-state-button:hover{opacity:.9}.movements-list{display:flex;flex-direction:column;gap:12px}.movement-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:var(--color-background);border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s}.movement-item:hover{opacity:.9}.movement-info{flex:1}.movement-category{font-size:16px;font-weight:500;color:var(--color-text-primary);margin:0 0 2px}.movement-date{font-size:14px;color:var(--color-text-secondary);margin:0}.movement-note{font-size:14px;color:var(--color-text-secondary);margin:2px 0 0;font-style:italic}.movement-amount{font-size:16px;font-weight:600;font-family:var(--font-family-numbers)}.actions-section{padding:20px}.actions-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.action-buttons{display:flex;flex-direction:column;gap:12px}.action-button{padding:16px;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;border:none;transition:all .2s;text-align:center}.primary-action{background-color:var(--color-primary);color:#fff}.primary-action:hover{opacity:.9}.secondary-action{background-color:var(--color-card-bg);color:var(--color-primary);border:1px solid var(--color-primary)}.secondary-action:hover{opacity:.9}.movement-form{padding:20px;max-width:500px;margin:0 auto}.form-group{margin-bottom:20px}.form-label{display:block;font-size:16px;font-weight:500;color:var(--color-text-primary);margin-bottom:8px}.form-input,.form-select,.form-textarea{width:100%;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;background-color:var(--color-card-bg);transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary)}.form-textarea{resize:vertical;min-height:80px}.type-selector{display:flex;gap:8px}.type-button{flex:1;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-card-bg);color:var(--color-text-primary);font-size:16px;cursor:pointer;transition:all .2s}.type-button.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.type-button:hover:not(.active){background-color:var(--color-background)}.type-display{padding:8px 0}.type-badge{display:inline-block;padding:6px 12px;border-radius:16px;font-size:14px;font-weight:500;text-transform:capitalize}.type-badge.expense{background-color:#ef44441a;color:var(--color-danger)}.type-badge.income{background-color:#22c55e1a;color:var(--color-success)}.submit-button{width:100%;background-color:var(--color-primary);color:#fff;border:none;padding:16px;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.submit-button:hover:not(:disabled){opacity:.9}.submit-button:disabled{opacity:.6;cursor:not-allowed}.form-actions{display:flex;flex-direction:column;gap:12px}.delete-button{width:100%;background-color:var(--color-danger);color:#fff;border:none;padding:16px;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.delete-button:hover:not(:disabled){opacity:.9}.delete-button:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:#ef44441a;color:var(--color-danger);padding:12px;border-radius:var(--radius-md);margin-bottom:16px;font-size:14px}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal{background-color:var(--color-card-bg);border-radius:var(--radius-lg);padding:24px;max-width:400px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-modal)}.modal h3{margin:0 0 16px;font-size:20px;color:var(--color-text-primary)}.modal p{margin:0 0 16px;color:var(--color-text-secondary);line-height:1.5}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.modal-button,.cancel-button,.confirm-delete-button{padding:12px 24px;border-radius:var(--radius-md);font-size:16px;font-weight:500;cursor:pointer;border:none;transition:background-color .2s}.modal-button,.cancel-button{background-color:var(--color-background);color:var(--color-text-primary)}.modal-button:hover,.cancel-button:hover{opacity:.9}.confirm-delete-button{background-color:var(--color-danger);color:#fff}.confirm-delete-button:hover:not(:disabled){opacity:.9}.confirm-delete-button:disabled{opacity:.6;cursor:not-allowed}.language-options{display:flex;flex-direction:column;gap:8px;margin:16px 0}.language-option{display:flex;align-items:center;gap:12px;padding:16px;border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-card-bg);cursor:pointer;transition:all .2s ease;width:100%;text-align:left;font-size:16px}.language-option:hover,.language-option.selected{border-color:var(--color-primary);background-color:var(--color-card-hover)}.language-flag{font-size:24px}.language-label{flex:1;color:var(--color-text-primary);font-weight:500}.language-check{color:var(--color-primary);font-weight:700;font-size:18px}.monthly-summary{min-height:100vh;background-color:var(--color-background)}.summary-overview{margin:20px}.status-banner{padding:16px;border-radius:var(--radius-md);text-align:center;margin-bottom:20px}.summary-stats{background-color:var(--color-card-bg);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-card)}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.stat-item:not(:last-child){border-bottom:1px solid var(--color-border)}.stat-item.clickable{cursor:pointer;transition:background-color .2s;margin:-8px -12px;padding:12px;border-radius:var(--radius-sm)}.stat-item.clickable:hover{background-color:var(--color-card-hover)}.balance-item{border-top:2px solid var(--color-border);margin-top:8px;padding-top:16px}.stat-label{font-size:16px;color:var(--color-text-secondary)}.stat-value{font-size:18px;font-weight:600;font-family:var(--font-family-numbers);color:var(--color-text-primary)}.balance-item .stat-label{font-size:18px;font-weight:600;color:var(--color-text-primary)}.balance-item .stat-value{font-size:20px;font-weight:700;font-family:var(--font-family-numbers)}.custom-badge{font-size:10px;background-color:var(--color-primary);color:#fff;padding:2px 6px;border-radius:4px;margin-left:6px;text-transform:uppercase}.export-button{width:100%;margin-top:16px;padding:12px;background-color:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.export-button:hover{background-color:var(--color-card-hover);border-color:var(--color-primary)}.export-options{display:flex;flex-direction:column;gap:12px}.export-option-button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.export-option-button:hover{background-color:var(--color-card-hover);border-color:var(--color-primary)}.export-option-icon{font-size:24px}.export-option-title{font-size:16px;font-weight:600;color:var(--color-text-primary)}.export-option-desc{font-size:13px;color:var(--color-text-secondary)}.category-breakdown{margin:20px}.section-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.category-list{background-color:var(--color-card-bg);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-card)}.category-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.category-item:not(:last-child){border-bottom:1px solid var(--color-border)}.category-name{font-size:16px;color:var(--color-text-primary)}.category-amount{font-size:16px;font-weight:600;font-family:var(--font-family-numbers)}.settings{min-height:100vh;background-color:var(--color-background)}.settings-content{padding:0 20px 20px}.settings-section{background-color:var(--color-card-bg);border-radius:var(--radius-lg);margin-bottom:20px;overflow:hidden;box-shadow:var(--shadow-card)}.settings-section .section-title{padding:16px 20px 8px;margin:0;font-size:16px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--color-background)}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.setting-item:last-child{border-bottom:none}.setting-item.clickable{cursor:pointer;transition:background-color .2s}.setting-item.clickable:hover{background-color:var(--color-card-hover)}.setting-item.danger .setting-label{color:var(--color-danger)}.setting-label{font-size:16px;color:var(--color-text-primary)}.setting-value{font-size:16px;color:var(--color-text-secondary)}.setting-arrow{font-size:16px;color:var(--color-text-muted)}.about-content{line-height:1.6}.about-content p{margin-bottom:8px}.about-content strong{color:#333}@media (max-width: 480px){.header{padding:16px}.title{font-size:24px}.summary-card,.movements-section{margin:16px;padding:16px}.actions-section,.movement-form{padding:16px}.modal{margin:16px;padding:20px}.modal-actions{flex-direction:column}.modal-button,.cancel-button,.confirm-delete-button{width:100%}}@media (hover: none) and (pointer: coarse){.movement-item:hover,.setting-item.clickable:hover,.action-button:hover,.summary-button:hover,.submit-button:hover,.delete-button:hover{background-color:initial}.movement-item:active{background-color:#e9ecef}.setting-item.clickable:active{background-color:#f8f9fa}.action-button:active,.summary-button:active,.submit-button:active{transform:scale(.98)}}.movement-item,.setting-item.clickable,.action-button,.summary-button,.submit-button,.delete-button{transition-duration:.15s;transition-timing-function:ease-out}.form-input,.form-select,.form-textarea{font-size:max(16px,1rem)}.virtual-list{height:400px;overflow-y:auto;-webkit-overflow-scrolling:touch;contain:strict}.movements-list,.category-list{contain:layout}.loading-spinner,.modal-overlay,.movement-item{will-change:transform;transform:translateZ(0)}img{max-width:100%;height:auto;loading:lazy;decoding:async}.preload-font{font-display:swap}.complex-background{contain:layout style paint}.scrollable{-webkit-overflow-scrolling:touch;overflow-scrolling:touch;scroll-behavior:smooth}@media (prefers-reduced-motion: no-preference){.smooth-animation{animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){.summary-card,.movements-section,.settings-section,.action-button,.summary-button,.submit-button{border:2px solid}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.loading-spinner{border-width:2px}}.large-list-item{contain:layout style;content-visibility:auto;contain-intrinsic-size:0 60px}.modal-overlay{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);contain:layout style paint}.interactive-element{cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.optimized-text{text-rendering:optimizeSpeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.above-fold{contain:layout style paint;content-visibility:visible}.below-fold{content-visibility:auto;contain-intrinsic-size:0 200px}.feedback-modal{max-width:400px;width:100%}.feedback-form{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.feedback-label{display:block;font-size:14px;font-weight:500;color:#333;margin-bottom:6px}.feedback-select{width:100%;padding:10px 12px;font-size:16px;border:1px solid #ddd;border-radius:8px;background-color:#fff;color:#333;cursor:pointer;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='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.feedback-select:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 3px #007aff33}.feedback-textarea{width:100%;padding:12px;font-size:16px;font-family:inherit;border:1px solid #ddd;border-radius:8px;resize:vertical;min-height:100px;box-sizing:border-box}.feedback-textarea:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 3px #007aff33}.feedback-textarea::placeholder{color:#999}.feedback-help{font-size:12px;color:#666;margin-top:4px}.primary-button{background-color:#007aff!important;color:#fff!important}.primary-button:hover:not(:disabled){background-color:#0056b3!important}.primary-button:disabled{background-color:#ccc!important;color:#666!important;cursor:not-allowed}@media (max-width: 480px){.feedback-modal{margin:16px;max-width:calc(100% - 32px)}.feedback-textarea{min-height:120px}}.update-notification{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:16px;box-shadow:0 4px 12px #00000026;z-index:9999;animation:slideDown .3s ease-out;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.update-content{display:flex;align-items:center;gap:12px;flex:1;min-width:200px}.update-icon{font-size:24px;animation:rotate 2s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.update-message{flex:1}.update-message strong{display:block;font-size:16px;margin-bottom:4px}.update-message p{font-size:14px;opacity:.9;margin:0}.update-actions{display:flex;gap:8px;align-items:center}.update-button-later,.update-button-now{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;white-space:nowrap}.update-button-later{background:#fff3;color:#fff}.update-button-later:hover{background:#ffffff4d}.update-button-now{background:#fff;color:#667eea;display:flex;align-items:center;gap:8px}.update-button-now:hover{background:#f8f9fa;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.update-button-later:disabled,.update-button-now:disabled{opacity:.6;cursor:not-allowed;transform:none}.confirmation-dialog{max-width:400px}.dialog-title{font-size:20px;font-weight:600;margin-bottom:12px;color:#333}.dialog-message{font-size:16px;color:#666;margin-bottom:24px;line-height:1.5}.destructive-button{background-color:#dc3545;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s}.destructive-button:hover{background-color:#c82333}.destructive-button:active{transform:scale(.98)}.destructive-button:disabled{background-color:#e3e3e3;color:#999;cursor:not-allowed;transform:none}.secondary-button{background-color:#f8f9fa;color:#333;border:1px solid #dee2e6;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s}.secondary-button:hover{background-color:#e9ecef}.secondary-button:active{transform:scale(.98)}.secondary-button:disabled{background-color:#f8f9fa;color:#999;cursor:not-allowed;transform:none}.delete-button-icon{font-size:18px}.status-indicator.clickable{cursor:pointer;transition:transform .2s,opacity .2s,box-shadow .2s;user-select:none;-webkit-tap-highlight-color:transparent}.status-indicator.clickable:hover{transform:scale(1.02);box-shadow:0 2px 8px #00000026}.status-indicator.clickable:active{transform:scale(.98);opacity:.9}.status-indicator.clickable:focus{outline:2px solid #007AFF;outline-offset:2px}.status-indicator.clickable:focus:not(:focus-visible){outline:none}.feedback-success{text-align:center;padding:24px}.feedback-success .success-icon{font-size:48px;display:block;margin-bottom:16px}.feedback-success h3{color:#28a745;margin-bottom:8px}.feedback-success p{color:#666}.feedback-error{background-color:#fee;color:#dc3545;padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px}.hamburger-menu-overlay{position:fixed;inset:0;background-color:#00000080;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hamburger-menu{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;background-color:var(--color-card-bg);box-shadow:4px 0 12px #00000026;z-index:1001;display:flex;flex-direction:column;animation:slideIn .3s ease-out;will-change:transform}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.menu-header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border);gap:12px}.menu-close-button{background:none;border:none;font-size:20px;color:var(--color-text-secondary);cursor:pointer;padding:8px;margin:-8px;border-radius:50%;transition:background-color .2s}.menu-close-button:hover{background-color:var(--color-card-hover)}.menu-title{font-size:18px;font-weight:600;color:var(--color-text-primary)}.menu-journeys,.menu-actions{padding:8px 0}.menu-item{display:flex;align-items:center;width:100%;padding:14px 20px;background:none;border:none;font-size:16px;color:var(--color-text-primary);cursor:pointer;transition:background-color .2s;text-align:left;gap:12px}.menu-item:hover{background-color:var(--color-card-hover)}.menu-item.active{background-color:#6366f11a;color:var(--color-primary)}.menu-item-icon{font-size:20px;width:28px;text-align:center}.menu-item-label{flex:1;font-weight:500}.new-badge{background-color:var(--color-primary);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.menu-divider{height:1px;background-color:var(--color-border);margin:8px 20px}.journey-header{display:flex;align-items:center;padding:16px 20px;background-color:var(--color-card-bg);border-bottom:1px solid var(--color-border);gap:12px}.hamburger-button{background:none;border:none;font-size:24px;color:var(--color-text-primary);cursor:pointer;padding:8px;margin:-8px;border-radius:var(--radius-sm);transition:background-color .2s;line-height:1}.hamburger-button:hover{background-color:var(--color-card-hover)}.hamburger-icon{display:block}.journey-title{flex:1;font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0}.settings-button{padding:8px;border-radius:var(--radius-sm);background-color:transparent;border:none;font-size:20px;cursor:pointer;transition:background-color .2s}.settings-button:hover{background-color:var(--color-card-hover)}@media (hover: none) and (pointer: coarse){.menu-item:hover,.menu-close-button:hover,.hamburger-button:hover{background-color:initial}.menu-item:active{background-color:#f0f0f0}.menu-item.active:active{background-color:#007aff26}.menu-close-button:active,.hamburger-button:active{background-color:#f0f0f0}}@media (prefers-reduced-motion: reduce){.hamburger-menu-overlay,.hamburger-menu{animation:none}}.decisions-page,.simulator-page{min-height:100vh;background-color:#f8f9fa}.journey-content{padding:20px;max-width:600px;margin:0 auto}.journey-intro{margin-bottom:24px}.journey-intro h2{font-size:24px;font-weight:600;color:#333;margin:0 0 8px}.journey-intro p{font-size:16px;color:#666;margin:0;line-height:1.5}.calculator-section{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a}.calculator-section h3{font-size:18px;font-weight:600;color:#333;margin:0 0 16px}.input-group{margin-bottom:16px}.input-group:last-child{margin-bottom:0}.input-group label{display:block;font-size:14px;font-weight:500;color:#555;margin-bottom:6px}.input-group input{width:100%;padding:12px;font-size:16px;border:1px solid #ddd;border-radius:8px;background-color:#fff;transition:border-color .2s,box-shadow .2s}.input-group input:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.results-section{margin-top:24px}.results-section h3{font-size:20px;font-weight:600;color:#333;margin:0 0 16px}.result-card{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 4px #0000001a}.result-card h4{font-size:16px;font-weight:600;color:#333;margin:0 0 12px}.result-card.buying{border-left:4px solid #007AFF}.result-card.renting{border-left:4px solid #28a745}.result-card.highlight{background:linear-gradient(135deg,#007aff,#5856d6);color:#fff}.result-card.highlight h4{color:#fff;opacity:.9}.result-card.inflation{border-left:4px solid #ffc107}.result-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.result-row:not(:last-child){border-bottom:1px solid #f0f0f0}.result-row span:first-child{color:#666;font-size:14px}.result-row .value{font-weight:600;font-size:16px;color:#333}.result-card.highlight .result-row span:first-child,.result-card.highlight .result-row .value{color:#fff}.big-number{font-size:36px;font-weight:700;margin:8px 0}.result-subtitle{font-size:14px;opacity:.8}.recommendation-card{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 4px #0000001a}.recommendation-card.buy{border-left:4px solid #007AFF;background-color:#f0f7ff}.recommendation-card.rent{border-left:4px solid #28a745;background-color:#f0fff4}.recommendation-card h4{font-size:16px;font-weight:600;color:#333;margin:0 0 12px}.recommendation-text{font-size:16px;color:#333;line-height:1.6;margin:0 0 12px}.disclaimer{font-size:13px;color:#666;font-style:italic;margin:0;padding-top:12px;border-top:1px solid #e9ecef}.growth-chart{padding:20px}.growth-milestones{display:flex;flex-direction:column;gap:12px}.milestone{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:12px}.milestone-year{font-size:14px;color:#666;font-weight:500}.milestone-bar{height:24px;background:linear-gradient(90deg,#007aff,#5856d6);border-radius:4px;transition:width .3s ease}.milestone-value{font-size:14px;font-weight:600;color:#333;min-width:100px;text-align:right}@media (max-width: 480px){.journey-content{padding:16px}.journey-intro h2{font-size:22px}.calculator-section,.result-card,.recommendation-card{padding:16px}.big-number{font-size:28px}.milestone{grid-template-columns:60px 1fr;gap:8px}.milestone-value{grid-column:1 / -1;text-align:left;margin-top:-4px}.milestone-bar{height:20px}}@media (hover: none) and (pointer: coarse){.input-group input{font-size:max(16px,1rem)}}.custom-badge{display:inline-block;background-color:#007aff;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:8px;margin-left:6px;text-transform:uppercase;vertical-align:middle}.stat-item.clickable{cursor:pointer;transition:background-color .2s;border-radius:8px;margin:-8px;padding:16px 8px}.stat-item.clickable:hover{background-color:#f8f9fa}.export-button{display:block;width:100%;margin-top:16px;padding:12px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;font-size:16px;font-weight:500;color:#333;cursor:pointer;transition:background-color .2s}.export-button:hover{background-color:#e9ecef}.export-options{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.export-option-button{display:flex;flex-direction:column;align-items:flex-start;padding:16px;background-color:#f8f9fa;border:2px solid #dee2e6;border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.export-option-button:hover{background-color:#e9ecef;border-color:#007aff}.export-option-icon{font-size:24px;margin-bottom:8px}.export-option-title{font-size:16px;font-weight:600;color:#333;margin-bottom:4px}.export-option-desc{font-size:14px;color:#666}@media (hover: none) and (pointer: coarse){.stat-item.clickable:hover,.export-button:hover,.export-option-button:hover{background-color:initial;border-color:#dee2e6}.stat-item.clickable:active{background-color:#f0f0f0}.export-button:active,.export-option-button:active{background-color:#e9ecef}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-container{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 10px 40px #0003}.login-header{text-align:center;margin-bottom:32px}.login-title{font-size:32px;font-weight:700;color:#333;margin:0 0 8px}.login-subtitle{font-size:16px;color:#666;margin:0}.google-signin-button{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 24px;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:16px;font-weight:500;color:#333;cursor:pointer;transition:all .2s}.google-signin-button:hover:not(:disabled){background:#f8f9fa;border-color:#ccc}.google-signin-button:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0}.login-divider{display:flex;align-items:center;margin:24px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#ddd}.login-divider span{padding:0 16px;color:#999;font-size:14px}.login-form{display:flex;flex-direction:column;gap:16px}.login-error{background:#fee;color:#c00;padding:12px;border-radius:8px;font-size:14px;text-align:center}.login-links{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:24px}.link-button{background:none;border:none;color:#667eea;font-size:14px;cursor:pointer;padding:4px}.link-button:hover{text-decoration:underline}.reset-success{text-align:center;padding:20px}.reset-success p{margin:8px 0;color:#333}.reset-success p:first-child{font-size:18px;font-weight:500}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:8px}.category-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;background-color:var(--color-card-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;min-height:70px}.category-chip:hover{border-color:var(--color-primary);background-color:var(--color-card-hover)}.category-chip.selected{border-color:var(--color-primary);background-color:#6366f11a}.category-chip-icon{font-size:24px;line-height:1}.category-chip-name{font-size:12px;font-weight:500;color:var(--color-text-primary);text-align:center;line-height:1.2;word-break:break-word}.category-chip.other-category{border-style:dashed}.category-chip.other-category .category-chip-icon{color:var(--color-primary)}.custom-category-input{display:flex;gap:8px;margin-top:12px}.custom-category-input .form-input{flex:1}.custom-category-btn{padding:12px 20px;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s;white-space:nowrap}.custom-category-btn:hover:not(:disabled){opacity:.9}.custom-category-btn:disabled{opacity:.5;cursor:not-allowed}@media (hover: none) and (pointer: coarse){.category-chip:hover{border-color:var(--color-border);background-color:var(--color-card-bg)}.category-chip:active{border-color:var(--color-primary);background-color:var(--color-card-hover)}.category-chip.selected:hover{border-color:var(--color-primary);background-color:#6366f11a}}@media (max-width: 480px){.category-grid{grid-template-columns:repeat(3,1fr)}.category-chip{padding:10px 6px;min-height:65px}.category-chip-icon{font-size:20px}.category-chip-name{font-size:11px}}
