:root{--bg:#fafafa;--surface:#fff;--surface-2:#f4f4f5;--surface-hover:#f0f0f2;--border:#e4e4e7;--border-strong:#d4d4d8;--text:#18181b;--text-2:#52525b;--text-3:#a1a1aa;--accent:#6366f1;--accent-hover:#4f46e5;--accent-soft:rgba(99,102,241,.1);--accent-soft-2:rgba(99,102,241,.16);--on-accent:#fff;--danger:#e11d48;--danger-hover:#be123c;--danger-soft:rgba(225,29,72,.08);--success:#16a34a;--task-blue:#3b82f6;--task-green:#22c55e;--task-amber:#f59e0b;--task-rose:#f43f5e;--task-violet:#8b5cf6;--task-teal:#14b8a6;--task-slate:#64748b;--sp-1:4px;--sp-2:8px;--sp-3:16px;--sp-4:24px;--sp-5:32px;--sp-6:48px;--sp-7:64px;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:18px;--radius-full:999px;--shadow-sm:0 1px 2px rgba(24,24,27,.05);--shadow:0 1px 3px rgba(24,24,27,.07),0 4px 12px rgba(24,24,27,.05);--shadow-lg:0 4px 12px rgba(24,24,27,.08),0 16px 40px rgba(24,24,27,.12);--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--transition:.15s cubic-bezier(.4,0,.2,1);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg:#101014;--surface:#17171c;--surface-2:#1f1f26;--surface-hover:#24242c;--border:#26262e;--border-strong:#34343e;--text:#f4f4f5;--text-2:#a1a1ad;--text-3:#63636e;--accent:#818cf8;--accent-hover:#a5b0fc;--accent-soft:rgba(129,140,248,.14);--accent-soft-2:rgba(129,140,248,.22);--on-accent:#17171c;--danger:#fb7185;--danger-hover:#fda4af;--danger-soft:rgba(251,113,133,.12);--success:#4ade80;--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow:0 1px 3px rgba(0,0,0,.35),0 4px 12px rgba(0,0,0,.3);--shadow-lg:0 4px 12px rgba(0,0,0,.4),0 16px 40px rgba(0,0,0,.5)}}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html{font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background:var(--bg);color:var(--text)}h1,h2,h3,h4,p{margin:0}a{color:var(--accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--accent-hover)}button{background:none;border:none;padding:0;cursor:pointer}button,input,select,textarea{font:inherit;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:7px 14px;border-radius:var(--radius);border:1px solid transparent;font-size:.9rem;font-weight:500;line-height:1.4;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(.5px)}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:var(--surface)}.btn-sm{padding:4px 10px;font-size:.82rem;border-radius:var(--radius-sm)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);color:var(--text-2);transition:background-color var(--transition),color var(--transition)}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-3)}.field-label{font-size:.82rem;font-weight:500;color:var(--text-2)}.input,.select,.textarea{width:100%;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:.92rem;transition:border-color var(--transition),box-shadow var(--transition)}.input::-moz-placeholder,.textarea::-moz-placeholder{color:var(--text-3)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;min-height:72px}.field-error{font-size:.8rem;color:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--sp-4)}.skeleton{position:relative;overflow:hidden;background:var(--surface-2);border-radius:var(--radius)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--surface-hover),transparent);animation:skeleton-shimmer 1.4s infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.menu{position:absolute;z-index:60;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--sp-1);animation:menu-in .13s cubic-bezier(.2,.9,.3,1)}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:8px 10px;border-radius:var(--radius);font-size:.9rem;color:var(--text);text-align:left;transition:background-color var(--transition)}.menu-item:hover{background:var(--surface-hover)}.menu-sep{height:1px;margin:var(--sp-1) 0;background:var(--border)}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:8vh var(--sp-3) var(--sp-3);background:#09090b73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:overlay-in .15s ease;overflow-y:auto}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:modal-in .18s cubic-bezier(.2,.9,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.page{max-width:1080px;margin:0 auto;padding:var(--sp-4) var(--sp-3) var(--sp-6)}.page-narrow{max-width:720px}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-3);text-align:center;color:var(--text-2)}.empty-state .empty-icon{font-size:1.8rem;opacity:.7}.badge{justify-content:center;min-width:17px;height:17px;padding:0 5px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:600;line-height:1}.badge,.pill{display:inline-flex;align-items:center;border-radius:var(--radius-full)}.pill{gap:6px;padding:4px 10px;background:var(--accent-soft);color:var(--accent);font-size:.82rem;font-weight:500}.pill button{display:inline-flex;color:inherit;opacity:.7;transition:opacity var(--transition)}.pill button:hover{opacity:1}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none}.toasts[data-v-157786bf]{position:fixed;bottom:var(--sp-4);left:50%;transform:translate(-50%);z-index:200;flex-direction:column;pointer-events:none}.toast[data-v-157786bf],.toasts[data-v-157786bf]{display:flex;align-items:center;gap:var(--sp-2)}.toast[data-v-157786bf]{max-width:min(420px,90vw);padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:.9rem;cursor:pointer;pointer-events:auto}.toast-dot[data-v-157786bf]{flex-shrink:0;width:8px;height:8px;border-radius:50%}.toast-success .toast-dot[data-v-157786bf]{background:var(--success)}.toast-error .toast-dot[data-v-157786bf]{background:var(--danger)}.toast-info .toast-dot[data-v-157786bf]{background:var(--accent)}.toast-enter-active[data-v-157786bf],.toast-leave-active[data-v-157786bf]{transition:opacity .15s ease,transform .15s ease}.toast-enter-from[data-v-157786bf],.toast-leave-to[data-v-157786bf]{opacity:0;transform:translateY(8px)}
