@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--color-bg-primary:#0a0a1a;--color-bg-secondary:#111128;--color-bg-tertiary:#1a1a3e;--color-surface:#ffffff0a;--color-surface-hover:#ffffff14;--color-surface-active:#ffffff1f;--glass-bg:#ffffff0f;--glass-border:#ffffff1a;--glass-shadow:0 8px 32px #0000004d;--glass-blur:blur(20px);--color-accent:#7c5cfc;--color-accent-hover:#9479ff;--color-accent-glow:#7c5cfc4d;--color-accent-subtle:#7c5cfc26;--color-cyan:#00d4ff;--color-cyan-glow:#00d4ff33;--color-success:#34d399;--color-success-glow:#34d39933;--color-danger:#f87171;--color-danger-hover:#fca5a5;--color-danger-glow:#f8717133;--color-warning:#fbbf24;--color-text-primary:#f0f0f8;--color-text-secondary:#f0f0f899;--color-text-tertiary:#f0f0f859;--color-text-inverse:#0a0a1a;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background:var(--color-bg-primary);color:var(--color-text-primary);min-height:100dvh;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 20% 10%,#7c5cfc1f 0%,#0000 60%),radial-gradient(60% 50% at 80% 80%,#00d4ff14 0%,#0000 60%),radial-gradient(50% 40%,#7c5cfc0d 0%,#0000 60%);width:100%;height:100%;position:fixed;top:0;left:0}#root{z-index:1;min-height:100dvh;position:relative}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#ffffff26}::-webkit-scrollbar-thumb:hover{background:#ffffff40}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--color-accent-glow)}50%{box-shadow:0 0 20px 4px var(--color-accent-glow)}}@keyframes checkmark{0%{transform:scale(0)rotate(45deg)}50%{transform:scale(1.2)rotate(45deg)}to{transform:scale(1)rotate(45deg)}}@keyframes taskSlideOut{to{opacity:0;transform:translate(30px)scale(.95)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in-up{animation:fadeInUp .5s var(--transition-base) both}.animate-fade-in{animation:.3s both fadeIn}.animate-scale-in{animation:scaleIn .3s var(--transition-spring) both}.stagger-children>*{animation:.4s both fadeInUp}.stagger-children>:first-child{animation-delay:50ms}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.35s}.stagger-children>:nth-child(8){animation-delay:.4s}.stagger-children>:nth-child(9){animation-delay:.45s}.stagger-children>:nth-child(10){animation-delay:.5s}.auth-page{min-height:100dvh;padding:var(--space-lg);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--glass-bg);width:100%;max-width:440px;-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);box-shadow:var(--glass-shadow);animation:scaleIn .5s var(--transition-spring) both;position:relative;overflow:hidden}.auth-card:before{content:"";background:linear-gradient(90deg, var(--color-accent), var(--color-cyan), var(--color-accent));background-size:200%;height:3px;animation:3s linear infinite shimmer;position:absolute;top:0;left:0;right:0}.auth-logo{text-align:center;margin-bottom:var(--space-xl)}.auth-logo-icon{background:linear-gradient(135deg, var(--color-accent), var(--color-cyan));border-radius:var(--radius-md);width:56px;height:56px;margin-bottom:var(--space-md);box-shadow:0 4px 20px var(--color-accent-glow);justify-content:center;align-items:center;font-size:1.75rem;display:inline-flex}.auth-title{font-size:var(--font-size-2xl);letter-spacing:-.02em;margin-bottom:var(--space-xs);font-weight:700}.auth-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-form{gap:var(--space-lg);flex-direction:column;display:flex}.form-group{gap:var(--space-sm);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);letter-spacing:.02em;font-weight:500}.form-input{background:var(--color-surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);transition:all var(--transition-base);outline:none;padding:14px 16px}.form-input::placeholder{color:var(--color-text-tertiary)}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle);background:var(--color-surface-hover)}.form-error{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-danger-glow);border-radius:var(--radius-sm);color:var(--color-danger);font-size:var(--font-size-sm);border:1px solid #f871714d;animation:.3s both fadeInUp;display:flex}.form-error-icon{font-size:var(--font-size-lg);flex-shrink:0}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base);border:none;outline:none;padding:14px 24px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--color-accent), #6044e0);color:#fff;box-shadow:0 4px 16px var(--color-accent-glow)}.btn-primary:hover:not(:disabled){box-shadow:0 6px 24px var(--color-accent-glow);transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{color:var(--color-text-secondary);background:0 0;padding:10px 16px}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.btn-danger{color:var(--color-danger);background:0 0;padding:8px 12px}.btn-danger:hover:not(:disabled){background:var(--color-danger-glow)}.btn-icon{border-radius:var(--radius-sm);width:40px;height:40px;font-size:var(--font-size-lg);padding:0}.btn-sm{font-size:var(--font-size-sm);padding:8px 16px}.btn-full{width:100%}.btn-loading{pointer-events:none}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}.spinner-dark{border-color:#7c5cfc33;border-top-color:var(--color-accent)}.todo-page{flex-direction:column;min-height:100dvh;display:flex}.todo-header{z-index:100;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border);padding:var(--space-md) var(--space-xl);background:#0a0a1acc;position:sticky;top:0}.todo-header-inner{justify-content:space-between;align-items:center;max-width:800px;margin:0 auto;display:flex}.todo-header-brand{align-items:center;gap:var(--space-md);display:flex}.todo-header-logo{background:linear-gradient(135deg, var(--color-accent), var(--color-cyan));border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:36px;font-size:1.15rem;display:flex}.todo-header-title{font-size:var(--font-size-lg);letter-spacing:-.01em;font-weight:700}.todo-header-user{align-items:center;gap:var(--space-md);display:flex}.todo-header-username{font-size:var(--font-size-sm);color:var(--color-text-secondary);display:none}.todo-header-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--color-accent), var(--color-cyan));width:36px;height:36px;font-weight:700;font-size:var(--font-size-sm);text-transform:uppercase;justify-content:center;align-items:center;display:flex}.todo-main{width:100%;max-width:800px;padding:var(--space-xl) var(--space-lg);flex:1;margin:0 auto}.todo-hero{margin-bottom:var(--space-2xl);animation:.5s both fadeInUp}.todo-hero-greeting{font-size:var(--font-size-3xl);letter-spacing:-.03em;margin-bottom:var(--space-sm);font-weight:800;line-height:1.2}.todo-hero-greeting span{background:linear-gradient(135deg, var(--color-accent), var(--color-cyan));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.todo-hero-stats{color:var(--color-text-secondary);font-size:var(--font-size-base)}.todo-hero-stats strong{color:var(--color-accent);font-weight:600}.todo-add{margin-bottom:var(--space-xl);animation:.5s .1s both fadeInUp}.todo-add-form{gap:var(--space-sm);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-sm);transition:all var(--transition-base);display:flex}.todo-add-form:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.todo-add-input{color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);background:0 0;border:none;outline:none;flex:1;padding:12px 16px}.todo-add-input::placeholder{color:var(--color-text-tertiary)}.todo-add-btn{background:linear-gradient(135deg, var(--color-accent), #6044e0);color:#fff;border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base);align-items:center;gap:var(--space-sm);white-space:nowrap;border:none;padding:12px 20px;font-weight:600;display:flex}.todo-add-btn:hover:not(:disabled){box-shadow:0 4px 16px var(--color-accent-glow);transform:translateY(-1px)}.todo-add-btn:disabled{opacity:.5;cursor:not-allowed}.todo-add-btn-text{display:none}.todo-filters{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;animation:.5s .2s both fadeInUp;display:flex}.todo-filter-btn{background:var(--color-surface);border-radius:var(--radius-full);color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base);border:1px solid #0000;padding:8px 16px;font-weight:500}.todo-filter-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.todo-filter-btn.active{background:var(--color-accent-subtle);color:var(--color-accent-hover);border-color:#7c5cfc4d}.todo-filter-count{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-left:auto}.todo-list{gap:var(--space-sm);flex-direction:column;display:flex}.todo-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-base);group:todo-item;display:flex;position:relative}.todo-item:hover{background:var(--color-surface-hover);border-color:#ffffff26;transform:translate(4px)}.todo-item.completed{opacity:.55}.todo-item.completed:hover{opacity:.75}.todo-item.removing{animation:.3s forwards taskSlideOut}.todo-checkbox{flex-shrink:0;width:22px;height:22px;position:relative}.todo-checkbox input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;position:absolute}.todo-checkbox-custom{width:22px;height:22px;transition:all var(--transition-base);border:2px solid #fff3;border-radius:6px;justify-content:center;align-items:center;display:flex}.todo-checkbox input:hover+.todo-checkbox-custom{border-color:var(--color-accent)}.todo-checkbox input:checked+.todo-checkbox-custom{background:linear-gradient(135deg, var(--color-accent), var(--color-cyan));border-color:#0000}.todo-checkbox-custom:after{content:"";width:6px;height:10px;transition:transform var(--transition-fast);border:2px solid #fff;border-top:none;border-left:none;transform:scale(0)rotate(45deg)}.todo-checkbox input:checked+.todo-checkbox-custom:after{animation:.3s forwards checkmark}.todo-content{flex:1;min-width:0}.todo-title{font-size:var(--font-size-base);transition:all var(--transition-base);word-break:break-word;font-weight:500}.todo-item.completed .todo-title{color:var(--color-text-tertiary);text-decoration:line-through}.todo-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.todo-actions{align-items:center;gap:var(--space-xs);opacity:0;transition:opacity var(--transition-fast);display:flex}.todo-item:hover .todo-actions{opacity:1}.todo-action-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.todo-action-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.todo-action-btn.delete:hover{background:var(--color-danger-glow);color:var(--color-danger)}.todo-edit-input{background:var(--color-surface);border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);box-shadow:0 0 0 3px var(--color-accent-subtle);outline:none;flex:1;padding:8px 12px}.todo-edit-actions{gap:var(--space-xs);display:flex}.todo-empty{text-align:center;padding:var(--space-3xl) var(--space-xl);animation:.5s both fadeInUp}.todo-empty-icon{margin-bottom:var(--space-lg);opacity:.5;font-size:4rem}.todo-empty-title{font-size:var(--font-size-xl);margin-bottom:var(--space-sm);color:var(--color-text-secondary);font-weight:600}.todo-empty-text{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.todo-loading{padding:var(--space-3xl);justify-content:center;align-items:center;display:flex}.todo-loading .spinner{border-width:3px;width:40px;height:40px}.auth-footer{text-align:center;margin-top:var(--space-xl);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.auth-footer a{font-weight:600}.form-input-wrapper{position:relative}.form-input-wrapper .form-input{padding-right:48px}.form-toggle-password{color:var(--color-text-tertiary);cursor:pointer;font-size:var(--font-size-lg);transition:color var(--transition-fast);background:0 0;border:none;padding:4px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.form-toggle-password:hover{color:var(--color-text-primary)}@media (width>=480px){.todo-add-btn-text{display:inline}.todo-header-username{display:block}}@media (width>=768px){.auth-card{padding:var(--space-2xl) var(--space-2xl)}.todo-main{padding:var(--space-2xl) var(--space-xl)}.todo-hero-greeting{font-size:var(--font-size-4xl)}.todo-actions{opacity:0}.todo-item:hover .todo-actions{opacity:1}}@media (width<=479px){.todo-actions{opacity:1}.todo-item,.todo-header{padding:var(--space-md)}.todo-main{padding:var(--space-lg) var(--space-md)}}
