@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";
:root{--bg-main:#f4f4f5;--bg-card:#fff;--bg-card-hover:#fafafa;--border-subtle:#e4e4e7;--border-focus:#a1a1aa;--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#71717a;--accent:#8b5cf6;--accent-hover:#7c3aed;--danger:#ef4444;--danger-hover:#dc2626;--danger-bg:#ef44441a;--success:#10b981}[data-theme=dark]{--bg-main:#09090b;--bg-card:#18181b;--bg-card-hover:#202024;--border-subtle:#27272a;--border-focus:#52525b;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#a1a1aa;--accent:#8b5cf6;--accent-hover:#7c3aed;--danger:#ef4444;--danger-hover:#dc2626;--danger-bg:#ef444426;--success:#10b981}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,sans-serif}.page-wrapper{flex-direction:column;align-items:center;min-height:100vh;padding:4rem 1.5rem;display:flex}.app-container{background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;flex-direction:column;gap:1.5rem;width:100%;max-width:520px;padding:2.5rem;display:flex;box-shadow:0 10px 40px #00000080}.app-header{text-align:center;justify-content:center;align-items:center;margin-bottom:.5rem;display:flex}.app-header h1{letter-spacing:-.02em;color:var(--text-primary);font-size:1.5rem;font-weight:600}.branding{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem;font-weight:500}.todo-form-container{flex-direction:column;gap:.5rem;display:flex}.todo-input-form{gap:.5rem;display:flex}.todo-input{background:var(--bg-main);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:8px;outline:none;flex:1;padding:.875rem 1rem;font-family:inherit;font-size:.95rem;transition:all .2s}.todo-input::placeholder{color:var(--text-muted)}.todo-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px #ffffff0d}.todo-input:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--text-primary);color:var(--bg-main);cursor:pointer;border:none;border-radius:8px;padding:.875rem 1.25rem;font-family:inherit;font-weight:600;transition:all .2s}.btn-primary:hover:not(:disabled){background:#e4e4e7}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-primary:focus-visible{box-shadow:0 0 0 2px var(--bg-main), 0 0 0 4px var(--text-primary);outline:none}.error-text{color:var(--danger);padding-left:.5rem;font-size:.85rem}.filters{background:var(--bg-main);border:1px solid var(--border-subtle);border-radius:10px;gap:.25rem;padding:.25rem;display:flex}.filter-link{text-align:center;color:var(--text-secondary);border-radius:6px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.5rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.filter-link:hover{color:var(--text-primary);background:#ffffff08}.filter-link.active{color:var(--text-primary);background:var(--border-subtle);box-shadow:0 1px 3px #0003}.filter-count{color:var(--text-primary);background:#ffffff1a;border-radius:99px;padding:.1rem .4rem;font-size:.7rem;font-weight:600}.filter-link.active .filter-count{background:var(--text-primary);color:var(--bg-main)}.todo-list-container{flex-direction:column;gap:1rem;display:flex}.error-banner{background:var(--danger-bg);border:1px solid var(--danger);color:#fca5a5;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.9rem;display:flex}.btn-retry{color:#fca5a5;cursor:pointer;background:0 0;border:none;font-weight:600;text-decoration:underline}.todo-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.todo-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:border-color .2s;display:flex}.todo-item:hover{border-color:var(--border-focus)}.todo-content{flex:1;align-items:center;gap:1rem;display:flex}.checkbox-custom{border:2px solid var(--border-focus);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:all .2s;display:flex}.checkbox-custom:hover{border-color:var(--text-secondary)}.checkbox-custom:focus-visible{box-shadow:0 0 0 2px var(--bg-main), 0 0 0 4px var(--accent);border-color:var(--accent);outline:none}.todo-item.completed .checkbox-custom{background:var(--accent);border-color:var(--accent)}.todo-item.completed .checkbox-custom:after{content:"✓";color:#fff;font-size:12px;font-weight:800}.todo-text{color:var(--text-primary);word-break:break-word;font-size:.95rem;line-height:1.4;transition:all .2s}.todo-item.completed .todo-text{color:var(--text-muted);text-decoration:line-through}.btn-delete{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.25rem;transition:all .2s;display:flex}.todo-item:hover .btn-delete,.btn-delete:focus-visible{opacity:1}.btn-delete:hover{color:var(--danger);background:var(--danger-bg)}.btn-delete:focus-visible{box-shadow:0 0 0 2px var(--bg-main), 0 0 0 4px var(--danger);opacity:1;outline:none}.empty-state{text-align:center;background:var(--bg-main);border:1px dashed var(--border-focus);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem 1rem;display:flex}.empty-icon{opacity:.5;font-size:2rem}.empty-text h3{color:var(--text-primary);margin-bottom:.25rem;font-size:1rem;font-weight:500}.empty-text p{color:var(--text-muted);font-size:.85rem}.list-footer{justify-content:flex-end;padding-top:.5rem;display:flex}.btn-clear{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:500;transition:color .2s}.btn-clear:hover{color:var(--danger);text-decoration:underline}.btn-clear:focus-visible{color:var(--danger);outline:none;text-decoration:underline}.app-footer{text-align:center;color:var(--text-muted);margin-top:2rem;font-size:.85rem}@media (max-width:480px){.page-wrapper{padding:2rem 1rem}.app-container{padding:1.5rem}.filters{flex-direction:column}.btn-delete{opacity:1}}.theme-toggle-placeholder{width:40px;height:40px}.theme-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.theme-toggle:hover{background:var(--border-subtle);color:var(--text-primary)}.theme-toggle:focus-visible{box-shadow:0 0 0 2px var(--bg-main), 0 0 0 4px var(--accent);outline:none}.todo-actions{opacity:0;gap:.25rem;transition:opacity .2s;display:flex}.todo-item:hover .todo-actions,.todo-actions:focus-within{opacity:1}@media (max-width:480px){.todo-actions{opacity:1}}.btn-edit{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.1rem;transition:all .2s;display:flex}.btn-edit:hover{color:var(--accent);background:#8b5cf61a}.btn-edit:focus-visible{box-shadow:0 0 0 2px var(--bg-main), 0 0 0 4px var(--accent);outline:none}.edit-form{flex:1}.edit-input{background:var(--bg-main);border:1px solid var(--border-focus);width:100%;color:var(--text-primary);border-radius:4px;outline:none;padding:.25rem .5rem;font-family:inherit;font-size:.95rem}.edit-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b5cf633}.undo-banner{background:var(--bg-card-hover);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.9rem;animation:.3s ease-out slideIn;display:flex}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.btn-undo{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.25rem .75rem;font-weight:500;transition:background .2s}.btn-undo:hover{background:var(--accent-hover)}.todo-controls{gap:.75rem;margin-bottom:.5rem;display:flex}.search-wrapper{flex:1}.todo-search-input{background:var(--bg-main);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);border-radius:8px;outline:none;padding:.6rem 1rem;font-family:inherit;font-size:.9rem;transition:border-color .2s}.todo-search-input:focus{border-color:var(--border-focus)}.todo-sort-select{background:var(--bg-main);border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:.6rem 1rem;font-family:inherit;font-size:.9rem}.todo-sort-select:focus{border-color:var(--border-focus)}
