@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Raleway:wght@400;500;600;700;800;900&display=swap);:root{--brand-anthracite:#2e3236;--brand-anthracite-light:#43494f;--brand-anthracite-pale:#9e9e9e;--brand-green:#585e55;--brand-green-light:#70786c;--brand-green-pale:#bac7b3;--brand-gold:#c6a074;--brand-gold-light:#e0be8b;--brand-gold-pale:#e3cdac;--primary-color:var(--brand-anthracite);--primary-hover:var(--brand-anthracite-light);--primary-light:var(--brand-anthracite-pale);--secondary-color:var(--brand-green);--secondary-hover:var(--brand-green-light);--secondary-light:var(--brand-green-pale);--accent-color:var(--brand-gold);--accent-hover:var(--brand-gold-light);--accent-light:var(--brand-gold-pale);--text-primary:var(--brand-anthracite);--text-secondary:#6b7280;--text-light:#9ca3af;--text-on-dark:#fff;--text-on-accent:var(--brand-anthracite);--bg-dark:var(--brand-anthracite);--success-color:var(--brand-green);--success-light:var(--brand-green-pale);--error-color:#ef4444;--error-light:#fee2e2;--warning-color:#f59e0b;--warning-light:#fef3c7;--info-color:var(--brand-green);--info-light:var(--brand-green-pale);--shadow-sm:0 1px 2px 0 #2e32360d;--shadow-md:0 4px 6px -1px #2e32361a,0 2px 4px -1px #2e32360f;--shadow-lg:0 10px 15px -3px #2e32361a,0 4px 6px -2px #2e32360d;--border-radius:8px;--border-radius-lg:12px;--font-primary:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-accent:"Raleway",-apple-system,BlinkMacSystemFont,"Segoe UI","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}body{color:#2e3236;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}h1,h2,h3,h4,h5,h6{color:#2e3236;color:var(--brand-anthracite);font-weight:700}.accent-text,h1,h2,h3,h4,h5,h6{font-family:Raleway,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-accent)}.btn-primary{background-color:#2e3236;transition:all .2s ease}.btn-primary:hover{background-color:#43494f}.btn-secondary{background-color:#585e55;transition:all .2s ease}.btn-secondary:hover{background-color:#70786c}.btn-accent{background-color:#c6a074;background-color:var(--brand-gold);color:#2e3236;color:var(--brand-anthracite);transition:all .2s ease}.btn-accent:hover{background-color:#e0be8b;background-color:var(--brand-gold-light)}:root{--bg-primary:#fff;--bg-secondary:#f9fafb;--bg-tertiary:#f3f4f6;--bg-card:#fff;--bg-hover:#f9fafb;--bg-active:#e5e7eb;--text-primary:#111827;--text-secondary:#4b5563;--text-tertiary:#6b7280;--text-muted:#9ca3af;--border-color:#e5e7eb;--border-hover:#d1d5db;--color-success:#10b981;--color-success-light:#10b9811a;--color-danger:#ef4444;--color-danger-light:#ef44441a;--color-warning:#f59e0b;--color-warning-light:#f59e0b1a;--color-info:#3b82f6;--color-info-light:#3b82f61a;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}*,body{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;background-color:var(--bg-primary);color:#111827;color:var(--text-primary);font-family:var(--font-primary);min-height:100vh;min-height:-webkit-fill-available;transition:background-color .3s ease,color .3s ease}html{height:-webkit-fill-available;overflow-x:hidden;overscroll-behavior-y:contain}input,select,textarea{appearance:none;font-size:16px!important}button{cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}.safe-area-inset{padding-bottom:env(safe-area-inset-bottom)}.loading-spinner{animation:spin .8s ease-in-out infinite;border:3px solid #c6a0744d;border-top-color:#c6a074;display:inline-block}.haptic-tap{animation:haptic .1s ease-out}@keyframes haptic{0%{transform:scale(1)}50%{transform:scale(.97)}to{transform:scale(1)}}.xp-gain{animation:floatUp 2s ease-out forwards;color:var(--success-color);font-size:24px;font-weight:700;pointer-events:none;position:fixed;z-index:9999}@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(.5)}50%{opacity:1;transform:translateY(-30px) scale(1)}to{opacity:0;transform:translateY(-60px) scale(.8)}}.toast{animation:slideUp .3s ease-out;background:var(--brand-anthracite);border-radius:50px;bottom:100px;box-shadow:0 10px 15px -3px #0000001a;box-shadow:var(--shadow-lg);color:var(--text-on-dark);left:50%;padding:12px 24px;position:fixed;transform:translateX(-50%);z-index:9999}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-card:#1e293b;--bg-hover:#334155;--bg-active:#475569;--text-primary:#f1f5f9;--text-secondary:#e2e8f0;--text-tertiary:#cbd5e1;--text-muted:#94a3b8;--border-color:#334155;--border-hover:#475569;--color-success:#10b981;--color-success-light:#10b9811a;--color-danger:#ef4444;--color-danger-light:#ef44441a;--color-warning:#f59e0b;--color-warning-light:#f59e0b1a;--color-info:#3b82f6;--color-info-light:#3b82f61a;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0000004d;--shadow-xl:0 20px 25px -5px #0000004d;--brand-primary-dark:#c084fc;--brand-secondary-dark:#a78bfa;background-color:var(--bg-primary);color:var(--text-primary)}[data-theme=dark] .card,[data-theme=dark] .dropdown-menu,[data-theme=dark] .modal-content{background:var(--bg-card);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{background:var(--bg-tertiary);border-color:var(--brand-primary-dark)}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--text-tertiary);opacity:.8}[data-theme=dark] .btn-primary{background:var(--brand-primary-dark);color:#fff}[data-theme=dark] .btn-primary:hover{background:var(--brand-secondary-dark)}[data-theme=dark] .btn-secondary{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover)}[data-theme=dark] .app-header{background:var(--bg-secondary);border-bottom-color:var(--border-color)}[data-theme=dark] .bottom-nav{background:var(--bg-secondary);border-top-color:var(--border-color)}[data-theme=dark] .nav-item{color:var(--text-tertiary)}[data-theme=dark] .nav-item.active{color:var(--brand-primary-dark)}[data-theme=dark] .budget-overview,[data-theme=dark] .expense-list-container,[data-theme=dark] .stats-container{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .expense-item,[data-theme=dark] .stat-card{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .expense-item:hover{background:var(--bg-hover)}[data-theme=dark] .budget-category{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .budget-item{background:var(--bg-secondary);border-bottom-color:var(--border-color)}[data-theme=dark] .budget-item:hover{background:var(--bg-hover)}[data-theme=dark] .expense-form{background:var(--bg-card)}[data-theme=dark] .category-grid .category-item{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .category-grid .category-item:hover{background:var(--bg-hover);border-color:var(--border-hover)}[data-theme=dark] .category-grid .category-item.selected{background:var(--bg-active);border-color:var(--brand-primary-dark)}[data-theme=dark] .recharts-cartesian-grid line{stroke:var(--border-color)}[data-theme=dark] .recharts-text{fill:var(--text-tertiary)}[data-theme=dark] .recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .recharts-tooltip-label{color:var(--text-primary)!important}[data-theme=dark] .progress-bar{background:var(--bg-tertiary)}[data-theme=dark] .category-tooltip,[data-theme=dark] .tooltip-content{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .loading-spinner{border-color:var(--bg-tertiary);border-top-color:var(--brand-primary-dark)}[data-theme=dark] .debt-card{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .debt-card.focus{background:var(--bg-hover);border-color:var(--brand-primary-dark)}[data-theme=dark] .achievement-card{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .achievement-card.unlocked{background:var(--bg-active);border-color:var(--brand-primary-dark)}[data-theme=dark] .modal-overlay{background:#000000b3}[data-theme=dark] .modal-content{background:var(--bg-secondary);box-shadow:var(--shadow-xl)}[data-theme=dark] .toast{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .success-toast{background:var(--bg-secondary);border-color:var(--color-success)}[data-theme=dark] .settings-section{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .settings-item{border-bottom-color:var(--border-color)}[data-theme=dark] .category-item{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .category-item:hover{background:var(--bg-hover)}[data-theme=dark] .streak-card{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .milestone{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .milestone.achieved{background:var(--bg-active);border-color:var(--color-success)}[data-theme=dark] .budget-info-tooltip:after{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .budget-header h1{color:var(--text-primary)}[data-theme=dark] .month-indicator,[data-theme=dark] .overview-label{color:var(--text-secondary)}[data-theme=dark] .overview-value{color:var(--text-primary)}[data-theme=dark] .overview-item{background:var(--bg-secondary)}[data-theme=dark] .category-title h3{color:var(--text-primary)}[data-theme=dark] .category-emoji{opacity:.9}[data-theme=dark] .category-total{color:var(--text-primary)}[data-theme=dark] .category-actual{color:var(--text-secondary)}[data-theme=dark] .item-label{color:var(--text-primary)}[data-theme=dark] .actual-amount{color:var(--text-secondary)}[data-theme=dark] .currency{color:var(--text-tertiary)}[data-theme=dark] .add-item-btn{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-secondary)}[data-theme=dark] .add-item-btn:hover{background:var(--bg-hover);color:var(--text-primary)}[data-theme=dark] .budget-actions button,[data-theme=dark] .financial-status h3{color:var(--text-primary)}[data-theme=dark] .financial-field label{color:var(--text-secondary)}[data-theme=dark] .field-icon{opacity:.9}[data-theme=dark] ::-webkit-scrollbar{background:var(--bg-secondary)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--bg-tertiary)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--bg-hover)}.app{background-color:var(--bg-tertiary);display:flex;flex-direction:column;height:100vh;height:-webkit-fill-available;overflow:hidden;position:relative}.main-content{-webkit-overflow-scrolling:touch;flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding-bottom:calc(100px + env(safe-area-inset-bottom));position:relative}.container{margin:0 auto;padding:0 16px;width:100%}@media (min-width:640px){.container{max-width:640px}}.card{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);margin-bottom:16px;padding:16px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:16px;font-weight:600;justify-content:center;min-height:48px;padding:12px 24px;text-decoration:none;touch-action:manipulation;transition:all .2s ease;user-select:none;-webkit-user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background-color:var(--brand-anthracite)}.btn-primary:hover{background-color:var(--brand-anthracite-light)}.btn-secondary{background-color:var(--brand-green);color:#fff}.btn-secondary:hover{background-color:var(--brand-green-light)}.btn-full{width:100%}.input-group{margin-bottom:16px}.input-label{color:#374151;display:block;font-size:14px;font-weight:500;margin-bottom:4px}.input{appearance:none;border:2px solid var(--border-color);border-radius:var(--border-radius);font-size:16px;padding:12px 16px;transition:border-color .2s ease;width:100%}.input:focus{border-color:var(--brand-gold);outline:none}.input-number{font-size:24px;font-weight:600;padding:16px;text-align:center}.category-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.category-item{align-items:center;background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:16px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;justify-content:center;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.category-item:active{transform:scale(.95)}.category-item.selected{background-color:var(--brand-gold);border-color:var(--brand-gold);color:var(--text-on-accent)}.expense-form .category-icon{display:none}.expense-form .category-name{color:inherit;font-size:13px;margin:0}.fab{background-color:var(--brand-gold);border:none;border-radius:50%;bottom:90px;box-shadow:var(--shadow-lg);color:var(--text-on-accent);cursor:pointer;font-size:24px;height:56px;position:fixed;right:20px;transition:all .3s ease;width:56px;z-index:100}.fab:active{box-shadow:0 2px 8px #0003;transform:scale(.9)}.success-animation{align-items:center;animation:successPop .5s ease-out;background:#fff;border-radius:50%;box-shadow:0 8px 24px #0000001a;display:flex;font-size:60px;height:120px;justify-content:center;left:50%;position:fixed;top:50%;transform:translate(-50%,-50%);width:120px;z-index:9999}@keyframes successPop{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}50%{transform:translate(-50%,-50%) scale(1.2)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}#root{min-height:100vh;overflow:hidden}@media (max-width:480px){.app{font-size:14px}.main-content{padding-bottom:70px}.card{border-radius:8px;margin-bottom:12px;padding:12px}.btn{padding:12px 20px}.btn,.input{font-size:14px}.input{padding:10px 14px}.input-number{font-size:20px;padding:12px}.category-grid{gap:6px}.category-item{font-size:11px;padding:5px 10px}h1{font-size:24px}h2{font-size:20px}h3{font-size:18px}}.header{background:var(--brand-anthracite);box-shadow:var(--shadow-md);justify-content:space-between;padding:16px;position:sticky;top:0;z-index:100}.back-button,.header{align-items:center;display:flex}.back-button{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:20px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.back-button:active{background:#ffffff4d;transform:scale(.95)}.header-title{color:var(--text-on-dark);font-family:var(--font-accent);font-size:18px;font-weight:600;gap:12px;margin:0}.header-logo,.header-title{align-items:center;display:flex}.header-logo{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));justify-content:center}.header-user-container{position:relative}.header-user{align-items:center;background:var(--brand-gold);border:none;border-radius:50%;color:var(--text-on-accent);cursor:pointer;display:flex;font-size:16px;font-weight:600;height:40px;justify-content:center;transition:all .2s ease;width:40px}.header-user:hover{box-shadow:0 2px 8px #ffffff4d;transform:scale(1.05)}.header-user:active{transform:scale(.95)}.user-dropdown{animation:dropdownSlide .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 4px 24px #00000026;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);width:280px;z-index:1000}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:16px}.user-info{gap:12px}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:var(--brand-gold);border-radius:50%;color:var(--text-on-accent);font-size:20px;font-weight:700;height:48px;justify-content:center;width:48px}.user-details{flex:1 1;overflow:hidden}.user-name{color:#1f2937;font-weight:600}.user-email,.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{color:#6b7280;font-size:12px}.dropdown-header-compact{border-bottom:1px solid #e5e7eb;padding:16px;text-align:center}.dropdown-header-compact .user-name{color:#1f2937;font-size:16px;font-weight:600;margin-bottom:4px}.user-stats-line{color:#6b7280;font-size:14px;font-weight:500}.xp-progress-text{color:#6b7280;font-size:11px;text-align:center}.dropdown-menu{padding:8px 0}.dropdown-item{align-items:center;background:none;border:none;color:#374151;cursor:pointer;display:flex;font-size:14px;gap:12px;padding:12px 16px;text-align:left;transition:background .2s ease;width:100%}.dropdown-item:hover:not(:disabled){background:#f3f4f6}.dropdown-item:disabled{cursor:not-allowed;opacity:.5}.dropdown-item.logout{color:#dc2626}.dropdown-item.logout:hover{background:#fee2e2}.item-icon{font-size:16px;text-align:center;width:20px}.dropdown-divider{background:#e5e7eb;height:1px;margin:8px 0}@media (max-width:480px){.header{padding:12px}.back-button,.header-user{font-size:16px;height:36px;width:36px}.header-title{font-size:16px}.header-logo{font-size:18px;height:28px;width:28px}.user-dropdown{width:260px}.user-avatar{font-size:18px;height:40px;width:40px}.dropdown-item{font-size:13px;padding:10px 14px}}.dropdown-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;padding:8px 16px;text-align:center}.version-info{color:#6b7280;font-size:11px;font-weight:500}[data-theme=dark] .user-dropdown{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .dropdown-header-compact{background:var(--bg-tertiary);color:var(--text-primary)}[data-theme=dark] .user-name{color:var(--text-primary)}[data-theme=dark] .user-stats-line{color:var(--text-secondary)}[data-theme=dark] .dropdown-divider{background:var(--border-color)}[data-theme=dark] .dropdown-item{color:var(--text-primary)}[data-theme=dark] .dropdown-item:hover{background:var(--bg-hover)}[data-theme=dark] .dropdown-item.logout{color:#ef4444}[data-theme=dark] .dropdown-item.logout:hover{background:#ef44441a}[data-theme=dark] .dropdown-footer{background:var(--bg-tertiary);border-top-color:var(--border-color)}[data-theme=dark] .version-info{color:var(--text-muted)}.offline-indicator{animation:slideDown .3s ease-out;left:50%;pointer-events:none;position:fixed;top:60px;transform:translateX(-50%);z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateX(-50%) translateY(-100%)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.indicator-content{align-items:center;background:#fff;border-radius:24px;box-shadow:0 4px 12px #00000026;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 20px}.offline-indicator.offline .indicator-content{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.offline-indicator.online .indicator-content{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.indicator-icon{font-size:12px}@media (max-width:480px){.offline-indicator{max-width:400px;top:56px;width:calc(100% - 32px)}.indicator-content{font-size:13px;padding:10px 16px}}.update-prompt{animation:slideUp .3s ease-out;bottom:100px;left:50%;max-width:400px;position:fixed;transform:translateX(-50%);width:calc(100% - 32px);z-index:999}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(100%)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.update-content{background:#fff;border:2px solid #2fcc70;border-radius:16px;box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column;gap:16px;padding:20px}.update-icon{font-size:48px;text-align:center}.update-text h3{color:#1f2937;font-size:18px;margin:0 0 4px;text-align:center}.update-text p{color:#6b7280;font-size:14px;margin:0;text-align:center}.update-actions{display:flex;gap:12px}.update-actions button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px 20px;transition:all .2s ease}.btn-dismiss{background:#f3f4f6;color:#374151}.btn-dismiss:hover{background:#e5e7eb}.btn-update{background:#2fcc70;color:#fff}.btn-update:hover{background:#27ae60}@media (max-width:480px){.update-prompt{bottom:90px;width:calc(100% - 24px)}.update-content{padding:16px}.update-icon{font-size:36px}.update-text h3{font-size:16px}}.password-strength-indicator{margin-bottom:16px;margin-top:12px}.strength-bar-container{margin-bottom:12px}.strength-bar-label{align-items:center;display:flex;font-size:13px;justify-content:space-between;margin-bottom:6px}.strength-bar-label span:first-child{color:#6b7280;font-weight:500}.strength-label{font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.strength-label.weak{color:#dc2626}.strength-label.medium{color:#f59e0b}.strength-label.strong{color:var(--brand-green)}.strength-bar-background{background-color:#e5e7eb;border-radius:3px;height:6px;overflow:hidden;width:100%}.strength-bar-fill{border-radius:3px;height:100%;transition:width .3s ease,background-color .3s ease}.password-requirements{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:12px}.requirement-item{align-items:center;display:flex;font-size:13px;margin-bottom:6px}.requirement-item:last-child{margin-bottom:0}.requirement-icon{align-items:center;border:1px solid #e5e7eb;border-radius:50%;color:#9ca3af;display:flex;font-size:12px;height:18px;justify-content:center;margin-right:8px;transition:all .2s ease;width:18px}.requirement-icon.valid{background-color:var(--brand-green-pale);border-color:var(--brand-green);color:var(--brand-green)}.requirement-text{color:#6b7280;transition:color .2s ease}.requirement-text.valid{color:#374151}.password-feedback{margin-top:8px}.feedback-item{color:#dc2626;font-size:13px;margin-bottom:4px}.feedback-item:last-child{margin-bottom:0}.password-tip{border-radius:6px;font-size:13px;margin-top:8px;padding:10px 12px}.password-tip.success{background-color:var(--brand-green-pale);border:1px solid var(--brand-green-light);color:var(--brand-green)}@media (max-width:480px){.password-requirements{padding:10px}.requirement-item{font-size:12px}.requirement-icon{font-size:11px;height:16px;width:16px}}.login-container{align-items:center;background:linear-gradient(135deg,var(--brand-anthracite) 0,var(--brand-anthracite-light) 100%);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001a;max-width:400px;overflow:hidden;width:100%}.login-header{background:linear-gradient(135deg,var(--brand-gold),var(--brand-gold-light));color:var(--text-on-accent);padding:40px 20px;text-align:center}.login-logo{animation:logoEntrance .8s ease-out;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));margin:0 auto 16px}@keyframes logoEntrance{0%{opacity:0;transform:scale(0) rotate(-180deg)}50%{transform:scale(1.1) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.login-header h1{font-size:28px;font-weight:700;margin:0 0 8px}.login-header p{font-size:16px;margin:0;opacity:.9}.login-header .tagline{font-size:14px;font-style:italic;letter-spacing:.5px;margin:8px 0 0;opacity:.8}.login-form{padding:32px}.form-tabs{background:#f3f4f6;border-radius:12px;display:flex;margin-bottom:24px;padding:4px}.tab{background:none;border:none;border-radius:8px;color:#6b7280;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px;transition:all .2s ease}.tab.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:var(--brand-gold)}.error-message{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;padding:12px 16px}.error-message,.input-group{margin-bottom:20px}.input-group label{color:#374151;display:block;font-size:14px;font-weight:600;margin-bottom:6px}.input-group input{border:2px solid #e5e7eb;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:border-color .2s ease;width:100%}.input-group input:focus{border-color:var(--brand-gold);outline:none}.input-group input::placeholder{color:#9ca3af}.login-btn{align-items:center;background:var(--brand-anthracite);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;justify-content:center;min-height:52px;padding:16px;transition:all .2s ease;width:100%}.login-btn:hover:not(:disabled){background:var(--brand-anthracite-light);transform:translateY(-1px)}.login-btn:active{transform:translateY(0)}.login-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.loading-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.login-footer{background:#f9fafb;border-top:1px solid #e5e7eb;padding:24px 32px;text-align:center}.login-footer p{color:#6b7280;font-size:14px;margin:0}.switch-btn{background:none;border:none;color:var(--brand-gold);cursor:pointer;font-weight:600;margin-left:4px;text-decoration:underline}.switch-btn:hover{color:var(--brand-green)}@media (max-width:480px){.login-container{padding:16px}.login-header{padding:32px 20px}.login-logo{font-size:28px;height:50px;width:50px}.login-header h1{font-size:24px}.login-form{padding:24px}.login-footer{padding:20px 24px}}.password-reset-section{padding:0 32px 24px;text-align:center}.password-reset-link{color:var(--brand-gold);display:inline-block;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s ease}.password-reset-link:hover{color:var(--brand-green);text-decoration:underline}.link-style{background:none;border:none;cursor:pointer;font:inherit;outline:inherit;padding:0}.password-reset-success{padding:32px;text-align:center}.password-reset-success h2{color:var(--brand-gold);font-size:24px;margin:0 0 16px}.password-reset-success p{color:#6b7280;line-height:1.5;margin:0 0 24px}.password-reset-success strong{color:#374151}.help-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin:24px 0;padding:20px;text-align:left}.help-section p{color:#374151;font-weight:600;margin:0 0 12px}.help-section ul{color:#6b7280;margin:0;padding-left:20px}.help-section li{font-size:14px;margin-bottom:8px}.login-footer .version-info{color:#9ca3af;font-size:12px;margin-top:12px;opacity:.8}@media (max-width:480px){.password-reset-section{padding:0 24px 20px}.password-reset-success{padding:24px}.help-section{margin:20px 0;padding:16px}}.error-boundary{align-items:center;background:linear-gradient(135deg,#f5f5f5,#e0e0e0);display:flex;justify-content:center;min-height:100vh;padding:20px}.error-boundary-content{background:#fff;border-radius:16px;box-shadow:0 4px 24px #0000001a;max-width:600px;padding:48px;text-align:center;width:100%}.error-icon{animation:pulse 2s ease-in-out infinite;color:#dc2626;margin:0 auto 24px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.95)}}.error-boundary-content h1{color:#1f2937;font-size:28px;font-weight:700;margin:0 0 16px}.error-message{color:#6b7280;font-size:16px;line-height:1.6;margin:0 0 32px}.error-actions{display:flex;gap:16px;justify-content:center;margin-bottom:32px}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-primary{background:#585e55;background:var(--brand-anthracite,#585e55);color:#fff}.btn-primary:hover{background:#6b7065;background:var(--brand-anthracite-light,#6b7065);transform:translateY(-1px)}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.error-details{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-top:32px;padding:16px;text-align:left}.error-details summary{color:#374151;cursor:pointer;font-weight:600;margin-bottom:16px}.error-stack{margin-top:16px}.error-stack h3{color:#374151;font-size:14px;margin:16px 0 8px}.error-stack pre{background:#fff;border:1px solid #e5e7eb;border-radius:4px;color:#6b7280;font-size:12px;line-height:1.5;overflow-x:auto;padding:12px}.error-footer{border-top:1px solid #e5e7eb;margin-top:32px;padding-top:24px}.error-footer p{color:#9ca3af;font-size:14px;margin:4px 0}.error-footer a{color:#af9558;color:var(--brand-gold,#af9558);font-weight:500;text-decoration:none}.error-footer a:hover{text-decoration:underline}@media (max-width:640px){.error-boundary-content{padding:32px 24px}.error-boundary-content h1{font-size:24px}.error-actions{flex-direction:column;width:100%}.btn-primary,.btn-secondary{width:100%}}.toast-container{pointer-events:none;position:fixed;right:20px;top:20px;z-index:9999}.toast{align-items:center;animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000026;cursor:pointer;display:flex;gap:12px;margin-bottom:12px;max-width:400px;min-width:300px;padding:16px 20px;pointer-events:auto;transition:all .3s ease}.toast:hover{box-shadow:0 6px 20px #0003;transform:translateX(-5px)}.toast-exit{animation:slideOut .3s ease-out;opacity:0;transform:translateX(100%)}.toast-xp{background:linear-gradient(to right,var(--brand-green-pale),#fff);border-left:4px solid var(--brand-green)}.toast-level{background:linear-gradient(90deg,#f59e0b1a,#fff);border-left:4px solid #f59e0b}.toast-streak{background:linear-gradient(90deg,#ef44441a,#fff);border-left:4px solid #ef4444}.toast-achievement{background:linear-gradient(to right,var(--brand-gold-pale),#fff);border-left:4px solid var(--brand-gold)}.toast-budget{background:linear-gradient(to right,var(--brand-green-pale),#fff);border-left:4px solid var(--brand-green)}.toast-success{border-left:4px solid var(--success-color)}.toast-warning{background:linear-gradient(90deg,#f59e0b0d,#fff);border-left:4px solid #f59e0b}.toast-error{background:linear-gradient(90deg,#ef44440d,#fff);border-left:4px solid #ef4444}.toast-info{border-left:4px solid var(--brand-anthracite)}.toast-icon{animation:bounce .5s ease-out;flex-shrink:0;font-size:24px}.toast-message{color:#1f2937;flex:1 1;font-size:14px;font-weight:500;line-height:1.4}.toast-close{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;cursor:pointer;display:flex;flex-shrink:0;font-size:24px;height:28px;justify-content:center;padding:0;transition:all .2s ease;width:28px}.toast-close:hover{background:#0000000d;color:#4b5563}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media (max-width:768px){.toast-container{bottom:80px;left:20px;right:20px;top:auto}.toast{animation:slideUp .3s ease-out;margin-bottom:8px;max-width:none;width:100%}.toast-exit{animation:slideDown .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}}@media (prefers-color-scheme:dark){.toast{background:#1f2937;box-shadow:0 4px 12px #00000080}.toast,.toast-message{color:#f9fafb}.toast-close{color:#6b7280}.toast-close:hover{background:#ffffff1a;color:#d1d5db}.toast-xp{background:linear-gradient(to right,var(--brand-green-pale),#1f2937)}.toast-level{background:linear-gradient(90deg,#f59e0b33,#1f2937)}.toast-streak{background:linear-gradient(90deg,#ef444433,#1f2937)}.toast-achievement{background:linear-gradient(to right,var(--brand-gold-pale),#1f2937)}.toast-budget{background:linear-gradient(to right,var(--brand-green-pale),#1f2937)}}
/*# sourceMappingURL=main.313054f5.css.map*/