*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;color:#333;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:#f8f9fa}.loading-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f8f9fa;contain:layout style paint}.loading-container{text-align:center;transform:translateZ(0)}.loading-spinner{width:40px;height:40px;border:4px solid #e3e3e3;border-top:4px solid #007AFF;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:#666}.error-boundary{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background-color:#f8f9fa}.error-container{text-align:center;max-width:400px}.error-container h2{color:#dc3545;margin-bottom:16px}.error-container p{color:#666;margin-bottom:24px}.retry-button{background-color:#007aff;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;cursor:pointer;transition:background-color .2s}.retry-button:hover{background-color:#0056b3}.header{padding:20px;background-color:#fff;border-bottom:1px solid #e9ecef}.header-content{display:flex;justify-content:space-between;align-items:center}.title{font-size:28px;font-weight:700;color:#333;margin:0}.subtitle{font-size:16px;color:#666;margin:4px 0 0}.back-button{background:none;border:none;font-size:18px;color:#007aff;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:#007aff1a;border:none;font-size:20px;cursor:pointer;transition:background-color .2s}.settings-button:hover{background-color:#007aff33}.dashboard{min-height:100vh}.summary-card{background-color:#fff;margin:20px;border-radius:12px;padding:20px;box-shadow:0 2px 4px #0000001a}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.summary-title{font-size:18px;font-weight:600;color:#333;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:#666}.summary-value{font-size:16px;font-weight:600}.balance-row{border-top:1px solid #eee;padding-top:12px;margin-top:8px;margin-bottom:0}.balance-label{font-size:18px;font-weight:600;color:#333}.balance-value{font-size:18px;font-weight:700}.income-text{color:#28a745}.expense-text{color:#dc3545}.summary-button{background-color:#007aff;color:#fff;border:none;padding:12px;border-radius:8px;width:100%;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.summary-button:hover{background-color:#0056b3}.movements-section{background-color:#fff;margin:20px;border-radius:12px;padding:20px;box-shadow:0 2px 4px #0000001a}.movements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.movements-title{font-size:18px;font-weight:600;color:#333;margin:0}.add-button{color:#007aff;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:#666;margin-bottom:16px}.empty-state-button{background-color:#007aff;color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.empty-state-button:hover{background-color:#0056b3}.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:#f8f9fa;border-radius:8px;cursor:pointer;transition:background-color .2s}.movement-item:hover{background-color:#e9ecef}.movement-info{flex:1}.movement-category{font-size:16px;font-weight:500;color:#333;margin:0 0 2px}.movement-date{font-size:14px;color:#666;margin:0}.movement-note{font-size:14px;color:#666;margin:2px 0 0;font-style:italic}.movement-amount{font-size:16px;font-weight:600}.actions-section{padding:20px}.actions-title{font-size:18px;font-weight:600;color:#333;margin:0 0 16px}.action-buttons{display:flex;flex-direction:column;gap:12px}.action-button{padding:16px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;border:none;transition:all .2s;text-align:center}.primary-action{background-color:#007aff;color:#fff}.primary-action:hover{background-color:#0056b3}.secondary-action{background-color:#fff;color:#007aff;border:1px solid #007AFF}.secondary-action:hover{background-color:#f8f9ff}.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:#333;margin-bottom:8px}.form-input,.form-select,.form-textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:16px;background-color:#fff;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#007aff}.form-textarea{resize:vertical;min-height:80px}.type-selector{display:flex;gap:8px}.type-button{flex:1;padding:12px;border:1px solid #ddd;border-radius:8px;background-color:#fff;color:#333;font-size:16px;cursor:pointer;transition:all .2s}.type-button.active{background-color:#007aff;color:#fff;border-color:#007aff}.type-button:hover:not(.active){background-color:#f8f9fa}.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:#fee;color:#dc3545}.type-badge.income{background-color:#efe;color:#28a745}.submit-button{width:100%;background-color:#007aff;color:#fff;border:none;padding:16px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.submit-button:hover:not(:disabled){background-color:#0056b3}.submit-button:disabled{opacity:.6;cursor:not-allowed}.form-actions{display:flex;flex-direction:column;gap:12px}.delete-button{width:100%;background-color:#dc3545;color:#fff;border:none;padding:16px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.delete-button:hover:not(:disabled){background-color:#c82333}.delete-button:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:#fee;color:#dc3545;padding:12px;border-radius:8px;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:#fff;border-radius:12px;padding:24px;max-width:400px;width:100%;max-height:80vh;overflow-y:auto}.modal h3{margin:0 0 16px;font-size:20px;color:#333}.modal p{margin:0 0 16px;color:#666;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:8px;font-size:16px;font-weight:500;cursor:pointer;border:none;transition:background-color .2s}.modal-button,.cancel-button{background-color:#f8f9fa;color:#333}.modal-button:hover,.cancel-button:hover{background-color:#e9ecef}.confirm-delete-button{background-color:#dc3545;color:#fff}.confirm-delete-button:hover:not(:disabled){background-color:#c82333}.confirm-delete-button:disabled{opacity:.6;cursor:not-allowed}.monthly-summary{min-height:100vh}.summary-overview{margin:20px}.status-banner{padding:16px;border-radius:8px;text-align:center;margin-bottom:20px}.summary-stats{background-color:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 4px #0000001a}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.stat-item:not(:last-child){border-bottom:1px solid #f0f0f0}.balance-item{border-top:2px solid #e9ecef;margin-top:8px;padding-top:16px}.stat-label{font-size:16px;color:#666}.stat-value{font-size:18px;font-weight:600}.balance-item .stat-label{font-size:18px;font-weight:600;color:#333}.balance-item .stat-value{font-size:20px;font-weight:700}.category-breakdown{margin:20px}.section-title{font-size:18px;font-weight:600;color:#333;margin:0 0 16px}.category-list{background-color:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 4px #0000001a}.category-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.category-item:not(:last-child){border-bottom:1px solid #f0f0f0}.category-name{font-size:16px;color:#333}.category-amount{font-size:16px;font-weight:600}.settings{min-height:100vh}.settings-content{padding:0 20px 20px}.settings-section{background-color:#fff;border-radius:12px;margin-bottom:20px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.settings-section .section-title{padding:16px 20px 8px;margin:0;font-size:16px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;background-color:#f8f9fa}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f0f0f0}.setting-item:last-child{border-bottom:none}.setting-item.clickable{cursor:pointer;transition:background-color .2s}.setting-item.clickable:hover{background-color:#f8f9fa}.setting-item.danger .setting-label{color:#dc3545}.setting-label{font-size:16px;color:#333}.setting-value{font-size:16px;color:#666}.setting-arrow{font-size:16px;color:#999}.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-color-scheme: dark){body{background-color:#1a1a1a;color:#fff}.summary-card,.movements-section,.settings-section{background-color:#2a2a2a;color:#fff}.form-input,.form-select,.form-textarea{background-color:#2a2a2a;border-color:#444;color:#fff}}@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}
