*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f7fa;color:#1a1a2e;min-height:100dvh}.container{max-width:640px;margin:0 auto;padding:2rem 1rem}.auth-container{display:flex;justify-content:center;padding:4rem 1rem}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.5px}.add-form{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.add-form input[type=text]{flex:1;min-width:180px}.add-form input,.add-form select,.add-form button{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;outline:none;transition:border-color .15s}.add-form input:focus,.add-form select:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.add-form button{background:#6366f1;color:#fff;border-color:#6366f1;cursor:pointer;font-weight:600}.add-form button:hover:not(:disabled){background:#4f46e5}.add-form button:disabled{opacity:.55;cursor:not-allowed}.todo-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.todo-item{display:flex;align-items:center;gap:.75rem;background:#fff;padding:.75rem 1rem;border-radius:10px;box-shadow:0 1px 3px #00000012}.todo-item input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:#6366f1;cursor:pointer;flex-shrink:0}.todo-item .title{flex:1;font-size:.95rem}.todo-item.completed .title{text-decoration:line-through;color:#9ca3af}.priority{font-size:.72rem;font-weight:700;padding:.2rem .5rem;border-radius:4px;flex-shrink:0}.priority-high{background:#fee2e2;color:#dc2626}.priority-medium{background:#fef3c7;color:#d97706}.priority-low{background:#d1fae5;color:#059669}.due-date{font-size:.78rem;color:#6b7280;flex-shrink:0}.todo-item>button{padding:.25rem .6rem;background:#fee2e2;color:#dc2626;border:none;border-radius:6px;cursor:pointer;font-size:.78rem;font-weight:600;flex-shrink:0;transition:background .15s}.todo-item>button:hover{background:#fca5a5}.loading,.empty{text-align:center;color:#9ca3af;padding:2rem 0;font-size:.9rem}.error{color:#dc2626;font-size:.9rem;margin-bottom:1rem}
