.home-page{padding-bottom:var(--space-xxl)}.loading-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.greeting{font-size:var(--text-xxl);font-weight:800;color:var(--text-primary);margin-bottom:var(--space-xs)}.level-badge{font-size:var(--text-md);color:var(--primary);font-weight:600}.settings-button{font-size:var(--text-xl);text-decoration:none;padding:var(--space-sm);border-radius:var(--radius-md);transition:background-color .2s}.settings-button:hover{background-color:var(--background-light)}.card{background-color:var(--background);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-md);animation:slideUp .3s ease-out}.card h2{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-md)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.freeze-badge{background-color:var(--info);color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700}.streak-display{display:flex;justify-content:center;align-items:center;gap:var(--space-sm);margin:var(--space-lg) 0}.flame{font-size:48px}.streak-number{font-size:48px;font-weight:800;color:var(--streak-fire)}.longest-streak{text-align:center;font-size:var(--text-sm);color:var(--text-secondary)}.progress-ring-container{position:relative;display:flex;justify-content:center;align-items:center;margin:var(--space-lg) 0}.progress-ring{display:block}.progress-ring-background{fill:none;stroke:var(--background-dark);stroke-width:14}.progress-ring-fill{fill:none;stroke:var(--primary);stroke-width:14;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dasharray 1s ease-out}.progress-content{position:absolute;display:flex;flex-direction:column;align-items:center}.progress-number{font-size:var(--text-xxxl);font-weight:800;color:var(--primary);line-height:1}.progress-goal{font-size:var(--text-lg);color:var(--text-secondary)}.goal-met-badge{background-color:var(--success);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);text-align:center;font-weight:700}.goal-text{text-align:center;font-size:var(--text-md);color:var(--text-secondary)}.xp-bar-container{margin:var(--space-md) 0}.xp-bar{height:16px;background-color:var(--background-dark);border-radius:var(--radius-sm);overflow:hidden}.xp-bar-fill{height:100%;background-color:var(--accent);border-radius:var(--radius-sm);transition:width 1s ease-out}.xp-text{text-align:center;font-size:var(--text-md);color:var(--text-secondary);margin-top:var(--space-sm)}.total-xp{text-align:center;font-size:var(--text-sm);color:var(--text-light);margin-top:var(--space-xs)}.available-count{font-size:var(--text-xl);font-weight:700;color:var(--primary);text-align:center;margin-bottom:var(--space-md)}.button{display:block;width:100%;padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:700;text-align:center;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:var(--shadow-md)}.button:active{transform:scale(.98)}.primary-button{background-color:var(--primary);color:#fff}.primary-button:hover{background-color:var(--primary-dark);box-shadow:var(--shadow-lg)}.no-transactions{padding:var(--space-lg);text-align:center}.no-transactions p{font-size:var(--text-md);color:var(--text-secondary);line-height:1.6}.categorize-page{padding-bottom:var(--space-xxl)}.empty-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.empty-content{text-align:center;padding:var(--space-xl)}.empty-icon{font-size:64px;margin-bottom:var(--space-lg)}.empty-content h2{font-size:var(--text-xl);color:var(--text-secondary);margin-bottom:var(--space-xl)}.categorize-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg)}.back-button{font-size:var(--text-xl);background:none;color:var(--text-primary);padding:var(--space-sm);border-radius:var(--radius-md);transition:background-color .2s}.back-button:hover{background-color:var(--background-light)}.progress-indicator{font-size:var(--text-lg);font-weight:700;color:var(--primary)}.transaction-card{background-color:var(--background);border-radius:var(--radius-lg);padding:var(--space-xl);margin:0 var(--space-lg) var(--space-lg);text-align:center;box-shadow:var(--shadow-lg);animation:slideUp .3s ease-out}.vendor{font-size:var(--text-xxl);font-weight:800;color:var(--text-primary);margin-bottom:var(--space-sm)}.amount{font-size:var(--text-xxxl);font-weight:900;color:var(--primary);margin-bottom:var(--space-xs)}.date{font-size:var(--text-md);color:var(--text-secondary);margin-bottom:var(--space-sm)}.description{font-size:var(--text-sm);color:var(--text-light);margin-top:var(--space-sm)}.form-container{padding:0 var(--space-lg)}.form-section{margin-bottom:var(--space-lg)}.form-label{display:block;font-size:var(--text-md);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.form-select,.form-textarea{width:100%;padding:var(--space-md);background-color:var(--background);border:2px solid var(--background-dark);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--text-primary);transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23777' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md) center;background-size:12px;padding-right:var(--space-xl)}.form-textarea{background-image:none;resize:vertical;min-height:80px}.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary)}.form-select option{padding:var(--space-sm)}.submit-button{margin-top:var(--space-md)}.submit-button:disabled{background-color:var(--background-dark);color:var(--text-light);cursor:not-allowed;box-shadow:none}.celebration-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease-out}.celebration-card{background-color:#fff;border-radius:var(--radius-xl);padding:var(--space-xxl);margin:var(--space-xl);box-shadow:var(--shadow-lg);animation:bounce .5s ease-out}.celebration-text{font-size:var(--text-xxl);font-weight:800;color:var(--primary);text-align:center;line-height:1.5;white-space:pre-line}.confetti-container{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:999}.confetti-piece{position:absolute;width:10px;height:10px;top:-20px;border-radius:2px;animation:confetti 3s ease-out forwards}@keyframes confetti{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.settings-page{padding-bottom:var(--space-xxl)}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);background-color:var(--background);margin-bottom:var(--space-lg)}.settings-header h1{font-size:var(--text-xl);font-weight:800;color:var(--text-primary)}.settings-section{background-color:var(--background);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-sm)}.settings-section h2{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-sm)}.section-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-lg)}.goal-options{display:flex;gap:var(--space-md)}.goal-option{flex:1;background-color:var(--background);border:2px solid var(--background-dark);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;transition:all .2s}.goal-option.selected{border-color:var(--primary);background-color:#58cc021a}.goal-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-xs)}.goal-option.selected .goal-label{color:var(--primary);font-weight:600}.goal-value{font-size:var(--text-xl);font-weight:800;color:var(--text-primary)}.goal-option.selected .goal-value{color:var(--primary)}.stats-container{display:flex;flex-direction:column;gap:var(--space-sm)}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--background-light)}.stat-row:last-child{border-bottom:none}.stat-label{font-size:var(--text-md);color:var(--text-secondary)}.stat-value{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.danger-section{border:2px solid var(--error)}.danger-title{color:var(--error)}.danger-button{background-color:var(--error);color:#fff;margin-bottom:var(--space-sm)}.danger-button:hover{background-color:#cc3b3b}.danger-warning{font-size:var(--text-xs);color:var(--error);text-align:center;line-height:1.5}.app-info{text-align:center;padding:var(--space-xl) 0}.app-info p{font-size:var(--text-xs);color:var(--text-light);margin:var(--space-xs) 0}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #58CC02;--primary-dark: #46A302;--primary-light: #89E219;--accent: #FF9600;--accent-light: #FFC800;--streak-fire: #FF4B4B;--streak-gold: #FFC800;--background: #FFFFFF;--background-light: #F7F7F7;--background-dark: #E5E5E5;--text-primary: #3C3C3C;--text-secondary: #777777;--text-light: #AFAFAF;--success: #58CC02;--error: #FF4B4B;--warning: #FFC800;--info: #1CB0F6;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-xxl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2);--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 24px;--text-xxl: 32px;--text-xxxl: 48px}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:var(--background-light);color:var(--text-primary);line-height:1.5;overflow-x:hidden;overscroll-behavior-y:contain;min-height:100vh;min-height:-webkit-fill-available}#root{min-height:100vh;min-height:-webkit-fill-available}html{font-size:16px}html{-webkit-text-size-adjust:100%}html{scroll-behavior:smooth}button{font-family:inherit;border:none;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}input,textarea,select{font-family:inherit;font-size:inherit;border:none;outline:none}.container{width:100%;max-width:600px;margin:0 auto;padding:var(--space-lg)}.text-center{text-align:center}.flex-center{display:flex;justify-content:center;align-items:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes confetti{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@media (hover: none) and (pointer: coarse){button,a{min-height:44px;min-width:44px}}.loading{display:inline-block;width:20px;height:20px;border:3px solid var(--background-dark);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@supports (padding: env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}
