:root{--bg:#f5f5f7;--surface:#fff;--surface-raised:#f9f9fb;--border:#e5e7eb;--border-strong:#d1d5db;--text-1:#111827;--text-2:#6b7280;--text-3:#9ca3af;--accent:#6366f1;--accent-hover:#4f46e5;--accent-fg:#fff;--danger:#ef4444;--danger-hover:#dc2626;--error:#dc2626;--error-bg:#fef2f2;--error-border:#fecaca;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000000d;--t:.15s ease}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#0f0f11;--surface:#18181b;--surface-raised:#1e1e23;--border:#27272a;--border-strong:#3f3f46;--text-1:#fafafa;--text-2:#a1a1aa;--text-3:#71717a;--accent:#818cf8;--accent-hover:#6366f1;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0003;--shadow-lg:0 10px 15px -3px #0000004d, 0 4px 6px -4px #0003}}[data-theme=dark]{--bg:#0f0f11;--surface:#18181b;--surface-raised:#1e1e23;--border:#27272a;--border-strong:#3f3f46;--text-1:#fafafa;--text-2:#a1a1aa;--text-3:#71717a;--accent:#818cf8;--accent-hover:#6366f1;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0003;--shadow-lg:0 10px 15px -3px #0000004d, 0 4px 6px -4px #0003}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{font-family:var(--font);font-size:var(--text-base);background:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;accent-color:var(--accent);margin:0;line-height:1.5}a{color:var(--accent);transition:color var(--t);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-container{max-width:720px;padding:var(--space-8) var(--space-4);width:100%;margin:0 auto}.navbar{z-index:100;background:var(--surface);border-bottom:1px solid var(--border);padding:0 var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);height:56px;display:flex;position:sticky;top:0}.nav-brand{font-size:var(--text-lg);color:var(--text-1);letter-spacing:-.03em;font-weight:700}.nav-actions{align-items:center;gap:var(--space-2);display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-family:var(--font);font-size:var(--text-sm);cursor:pointer;transition:background var(--t), color var(--t), border-color var(--t), box-shadow var(--t), opacity var(--t);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;font-weight:500;line-height:1;display:inline-flex}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text-1);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-raised)}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-raised);color:var(--text-1)}.btn-danger{color:var(--danger);background:0 0;border-color:#0000}.btn-danger:hover{background:var(--error-bg)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-sm)}.form-group{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field-label{font-size:var(--text-sm);color:var(--text-2);font-weight:500}.label-optional{color:var(--text-3);font-weight:400;font-size:var(--text-xs)}.input-field{width:100%;padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--text-1);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-family:var(--font);font-size:var(--text-base);transition:border-color var(--t), box-shadow var(--t);outline:none;line-height:1.5}.input-field::placeholder{color:var(--text-3)}.input-field:hover{border-color:var(--text-3)}.input-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.input-field:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-raised)}textarea.input-field{resize:vertical;min-height:80px}.form-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.error-msg{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-md);color:var(--error);font-size:var(--text-sm);margin-bottom:var(--space-4);margin-top:0;display:flex}.auth-layout{min-height:100vh;padding:var(--space-4);background:var(--bg);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:400px;padding:var(--space-10) var(--space-10);box-shadow:var(--shadow-lg)}.auth-brand{text-align:center;margin-bottom:var(--space-8)}.auth-brand-name{font-size:var(--text-2xl);color:var(--text-1);letter-spacing:-.04em;font-weight:700}.auth-card h2{margin:0 0 var(--space-6) 0;font-size:var(--text-xl);color:var(--text-1);letter-spacing:-.02em;font-weight:600}.auth-submit{width:100%;padding:var(--space-3) var(--space-4);margin-top:var(--space-2);font-size:var(--text-base)}.auth-footer{margin:var(--space-6) 0 0 0;text-align:center;font-size:var(--text-sm);color:var(--text-2)}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.page-title{font-size:var(--text-2xl);color:var(--text-1);letter-spacing:-.03em;margin:0;font-weight:700}.task-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6);box-shadow:var(--shadow-sm)}.task-form h3{margin:0 0 var(--space-5) 0;font-size:var(--text-base);color:var(--text-1);font-weight:600}.task-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm);transition:box-shadow var(--t), border-color var(--t)}.task-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.task-view{align-items:flex-start;gap:var(--space-4);display:flex}.task-content{flex:1;min-width:0}.task-title{font-size:var(--text-base);color:var(--text-1);margin:0 0 var(--space-1) 0;word-break:break-word;font-weight:600;line-height:1.3}.task-desc{font-size:var(--text-sm);color:var(--text-2);word-break:break-word;margin:0;line-height:1.5}.task-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.task-edit{flex-direction:column;display:flex}.task-edit .form-group{margin-bottom:var(--space-3)}.task-edit-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.loading-state,.empty-state,.error-state{text-align:center;padding:var(--space-16) var(--space-8);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.state-title{font-size:var(--text-lg);color:var(--text-1);margin:0;font-weight:600}.state-desc{font-size:var(--text-sm);color:var(--text-2);max-width:280px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@media (width<=640px){.navbar{padding:0 var(--space-4)}.auth-card{padding:var(--space-8) var(--space-6);border-radius:var(--radius-lg)}.app-container{padding:var(--space-6) var(--space-4)}.task-view{gap:var(--space-3);flex-direction:column}.task-actions{align-self:flex-end}}
