:root{--bg:#08080c;--surface:#111116;--card:#1a1a22;--elevated:#22222e;--border:#2a2a38;--border-subtle:#1f1f2c;--text-primary:#ededf0;--text-secondary:#8a8a9a;--text-muted:#55556a;--accent:#6c7bff;--accent-hover:#8593ff;--accent-glow:#6c7bff26;--orange:#ffa644;--orange-glow:#ffa64426;--green:#4ade80;--red:#ff5757;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--shadow-glow:0 0 20px #6c7bff1f;--transition-fast:all .12s ease;--transition:all .2s ease;--transition-slow:all .3s ease;--font:-apple-system, "Segoe UI", "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Fira Code", monospace;--sidebar-width:260px;--scrollbar-track:#1a1a22;--scrollbar-thumb:#3a3a4a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{min-height:100vh}a{color:var(--accent);transition:var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:.25s forwards fadeIn}.animate-slide-up{animation:.3s forwards slideUp}.app-layout{grid-template-columns:var(--sidebar-width) 1fr;background:var(--bg);min-height:100vh;display:grid}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border-subtle);z-index:100;flex-direction:column;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-logo{color:var(--text-primary);letter-spacing:-.3px;border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:24px 20px 20px;font-size:17px;font-weight:700;display:flex}.sidebar-logo svg{width:26px;height:26px;color:var(--accent);filter:drop-shadow(0 0 6px var(--accent-glow))}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex}.sidebar-nav-item{border-radius:var(--radius-md);height:42px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);text-align:left;width:100%;font-size:14px;font-weight:500;font-family:var(--font);background:0 0;border:none;align-items:center;gap:12px;padding:0 14px;display:flex;position:relative}.sidebar-nav-item:hover{background:var(--card);color:var(--text-primary)}.sidebar-nav-item.active{color:var(--accent);background:var(--accent-glow);font-weight:600}.sidebar-nav-item.active:before{content:"";background:var(--accent);border-radius:0 4px 4px 0;width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-nav-item svg{flex-shrink:0;width:20px;height:20px}.sidebar-user{border-top:1px solid var(--border-subtle);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-family:var(--font-mono);letter-spacing:.3px;padding:16px 20px;overflow:hidden}.sidebar-logout{width:100%;color:var(--text-muted);cursor:pointer;transition:var(--transition);font-size:13px;font-family:var(--font);border:none;border-top:1px solid var(--border-subtle);background:0 0;border-radius:0;align-items:center;gap:10px;padding:12px 20px;display:flex}.sidebar-logout:hover{color:var(--red);background:#ff57570f}.sidebar-logout svg{width:16px;height:16px}.main-content{grid-column:2;justify-content:center;min-height:100vh;padding:32px;display:flex;overflow-y:auto}.main-content>div{width:100%;max-width:720px}.bottom-nav{display:none}.auth-container{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:36px}.auth-card h2{color:var(--text-primary);text-align:center;letter-spacing:-.3px;margin:0 0 28px;font-size:22px;font-weight:700}.auth-error{border-radius:var(--radius-md);color:var(--red);background:#ff575714;border:1px solid #ff575726;margin-bottom:16px;padding:12px 16px;font-size:13px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field label{color:var(--text-secondary);letter-spacing:.3px;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.auth-input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--elevated);width:100%;color:var(--text-primary);font-size:15px;font-family:var(--font);transition:var(--transition);-webkit-appearance:none;padding:12px 16px}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.auth-input::placeholder{color:var(--text-muted)}.auth-switch{text-align:center;color:var(--text-muted);margin-top:20px;font-size:13px}.auth-switch button{color:var(--accent);cursor:pointer;font-size:13px;font-family:var(--font);transition:var(--transition-fast);background:0 0;border:none;font-weight:500}.auth-switch button:hover{color:var(--accent-hover)}.btn-primary{border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;transition:var(--transition);font-size:15px;font-weight:600;font-family:var(--font);border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;display:inline-flex}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{background:var(--elevated);color:var(--text-muted);cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--elevated);color:var(--text-primary);cursor:pointer;transition:var(--transition);font-size:15px;font-weight:500;font-family:var(--font);justify-content:center;align-items:center;gap:8px;padding:12px 24px;display:inline-flex}.btn-secondary:hover{background:var(--card);border-color:var(--text-muted)}.btn-danger{border-radius:var(--radius-md);border:1px solid var(--red);color:var(--red);cursor:pointer;transition:var(--transition);font-size:14px;font-weight:500;font-family:var(--font);background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 16px;display:inline-flex}.btn-danger:hover{background:#ff575714}.card{background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);transition:var(--transition);margin-bottom:12px;padding:20px}.card:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--elevated);width:100%;color:var(--text-primary);transition:var(--transition);font-size:15px;font-family:var(--font);padding:12px 16px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.input::placeholder{color:var(--text-muted)}.task-item{background:var(--card);border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:var(--transition);align-items:center;gap:12px;margin-bottom:8px;padding:14px 16px;display:flex}.task-item:hover{border-color:var(--border);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.task-item.completed{opacity:.5}.task-item.completed .task-content{color:var(--text-muted);text-decoration:line-through}.drag-handle{cursor:grab;color:var(--text-muted);touch-action:none;transition:var(--transition-fast);border-radius:var(--radius-xs);opacity:.4;background:0 0;border:none;padding:6px}.drag-handle:hover{color:var(--text-secondary);opacity:1;background:var(--elevated)}.loading{min-height:200px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.loading:after{content:"";border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;margin-left:12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.text-accent{color:var(--accent)}.text-orange{color:var(--orange)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}@media (width<=768px){:root{--sidebar-width:0px}.app-layout{flex-direction:column;min-height:100vh;display:flex}.sidebar{display:none}.main-content{flex:1;padding:16px 16px 88px}.main-content>div{max-width:100%}.bottom-nav{-webkit-backdrop-filter:blur(24px)saturate(1.2);border-top:1px solid var(--border-subtle);z-index:1000;background:#111116eb;gap:4px;padding:8px 12px 24px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--text-muted);font-size:10px;font-weight:500;font-family:var(--font);cursor:pointer;transition:var(--transition-fast);border-radius:var(--radius-md);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 4px;display:flex}.bottom-nav button svg{width:22px;height:22px}.bottom-nav button:hover{color:var(--text-secondary)}.bottom-nav button.active{color:var(--accent)}.bottom-nav button.logout-btn{color:var(--text-muted);opacity:.6}.bottom-nav button.logout-btn:hover{color:var(--red);opacity:1}.auth-card{border-radius:var(--radius-lg);padding:28px}.card{margin-bottom:10px;padding:16px}.task-item{padding:12px 14px}}@media (width<=480px){.main-content{padding:12px 12px 80px}.bottom-nav button{padding:6px 2px;font-size:9px}.bottom-nav button svg{width:20px;height:20px}.btn-primary,.btn-secondary{padding:10px 18px;font-size:14px}.auth-card{padding:24px}}::selection{color:var(--text-primary);background:#6c7bff4d}
