:root{--bg:#fff;--bg-subtle:#f6f9fd;--bg-muted:#f1f3f6;--bg-hover:#f5f7fa;--border:#e9ebf0;--border-strong:#d9dce3;--text:#16181d;--text-muted:#646b76;--text-subtle:#99a0ab;--accent:#1f6feb;--accent-hover:#195fd0;--accent-active:#1450bd;--accent-fg:#fff;--accent-subtle:#e9f1fe;--accent-subtle-fg:#1554b8;--accent-ring:#1f6feb52;--glass-blur:none;--success:#15924f;--success-subtle:#e6f5ec;--warning:#b25e09;--warning-subtle:#fbf0e0;--danger:#d4334a;--danger-hover:#bb2a40;--danger-subtle:#fceaed;--radius-sm:7px;--radius:10px;--radius-lg:14px;--radius-full:999px;--shadow-xs:0 1px 2px #11111a0a;--shadow-sm:0 1px 2px #11111a0d, 0 1px 1px #11111a08;--shadow:0 1px 3px #11111a0f, 0 4px 12px #11111a0d;--shadow-lg:0 8px 24px #11111a1a, 0 2px 6px #11111a0f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fs-xs:11px;--fs-sm:12.5px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:26px;--ease:cubic-bezier(.4, 0, .2, 1)}html.dark{--bg:#0d0f14;--bg-subtle:#12141a;--bg-muted:#1a1d25;--bg-hover:#1c1f28;--border:#262a33;--border-strong:#353a45;--text:#ecedf0;--text-muted:#98a0ac;--text-subtle:#6a727f;--success:#41c98a;--success-subtle:#11261c;--warning:#e0a45c;--warning-subtle:#2a1f10;--danger:#f06a7e;--danger-hover:#f47e8f;--danger-subtle:#2a1418;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 2px #00000073;--shadow:0 1px 3px #00000080, 0 4px 12px #0006;--shadow-lg:0 8px 28px #0009, 0 2px 6px #00000073}html[data-theme=blue]{--bg-subtle:#f6f9fd;--accent:#1f6feb;--accent-hover:#195fd0;--accent-active:#1450bd;--accent-fg:#fff;--accent-subtle:#e9f1fe;--accent-subtle-fg:#1554b8;--accent-ring:#1f6feb52}html.dark[data-theme=blue]{--accent:#5b9bff;--accent-hover:#6fa8ff;--accent-active:#84b6ff;--accent-fg:#0d0f14;--accent-subtle:#122236;--accent-subtle-fg:#a9cbff;--accent-ring:#5b9bff66}html[data-theme=teal]{--bg-subtle:#f3fbfa;--accent:#0d9488;--accent-hover:#0b857a;--accent-active:#0a7268;--accent-fg:#fff;--accent-subtle:#e0f5f1;--accent-subtle-fg:#0a766c;--accent-ring:#0d94884d}html.dark[data-theme=teal]{--accent:#2dd4bf;--accent-hover:#41dcc9;--accent-active:#5ce4d3;--accent-fg:#07120f;--accent-subtle:#0c2b28;--accent-subtle-fg:#9aeee2;--accent-ring:#2dd4bf61}html[data-theme=green]{--bg-subtle:#f4fbf7;--accent:#12915c;--accent-hover:#0f8052;--accent-active:#0d6e46;--accent-fg:#fff;--accent-subtle:#e4f5ec;--accent-subtle-fg:#0c7a4a;--accent-ring:#12915c4d}html.dark[data-theme=green]{--accent:#34d27f;--accent-hover:#49d98d;--accent-active:#5fe09b;--accent-fg:#07140d;--accent-subtle:#0e2418;--accent-subtle-fg:#9deec0;--accent-ring:#34d27f61}html[data-theme=indigo]{--bg-subtle:#fafafb;--accent:#5b5bd6;--accent-hover:#4f4fc4;--accent-active:#4444b0;--accent-fg:#fff;--accent-subtle:#eeeefb;--accent-subtle-fg:#4a4ac0;--accent-ring:#5b5bd659}html.dark[data-theme=indigo]{--accent:#7c7cf0;--accent-hover:#8c8cf5;--accent-active:#9a9af8;--accent-fg:#0d0f14;--accent-subtle:#1e1e3a;--accent-subtle-fg:#b4b4fa;--accent-ring:#7c7cf066}html[data-theme=glass]{--glass-blur:saturate(170%) blur(14px);--radius-lg:18px;--bg:#ffffff8c;--bg-subtle:#ffffff6b;--bg-muted:#fff6;--bg-hover:#ffffff9e;--border:#ffffff8c;--border-strong:#ffffffbf;--text:#15273f;--text-muted:#47566c;--text-subtle:#72809a;--accent:#1f6feb;--accent-hover:#195fd0;--accent-active:#1450bd;--accent-fg:#fff;--accent-subtle:#1f6feb24;--accent-subtle-fg:#1554b8;--accent-ring:#1f6feb59;--shadow-xs:0 1px 2px #1e325a0d;--shadow-sm:0 1px 3px #1e325a12;--shadow:0 6px 24px #1e325a1f;--shadow-lg:0 16px 48px #1e325a33}html[data-theme=glass] body{background:linear-gradient(135deg,#d8e9ff 0%,#e6f0ff 28%,#e3fbf2 62%,#f0e6ff 100%) fixed}html.dark[data-theme=glass]{--bg:#161b2685;--bg-subtle:#161b2666;--bg-muted:#282e3c75;--bg-hover:#282e3c94;--border:#ffffff1f;--border-strong:#ffffff38;--text:#e9eef6;--text-muted:#aab4c4;--text-subtle:#7b8597;--accent:#6aa6ff;--accent-hover:#7eb2ff;--accent-active:#92beff;--accent-fg:#0b1322;--accent-subtle:#6aa6ff29;--accent-subtle-fg:#bcd6ff;--accent-ring:#6aa6ff6b;--shadow:0 8px 30px #00000080;--shadow-lg:0 18px 52px #0009}html.dark[data-theme=glass] body{background:linear-gradient(135deg,#0b1322 0%,#0f1b2b 30%,#0c1c19 65%,#141026 100%) fixed}*{box-sizing:border-box}html,body{background:var(--bg-subtle);color:var(--text);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;line-height:1.5}.spinner[data-v-1a7d11e6]{opacity:.7;border:2px solid;border-top-color:#0000;border-radius:50%;animation:.6s linear infinite spin-1a7d11e6;display:inline-block}@keyframes spin-1a7d11e6{to{transform:rotate(360deg)}}.btn[data-v-b44bf87d]{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);font:inherit;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease), transform 50ms var(--ease), color .15s var(--ease);border:1px solid #0000;font-weight:550;line-height:1;display:inline-flex}.btn[data-v-b44bf87d]:active{transform:translateY(.5px)}.btn[data-v-b44bf87d]:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);outline:none}.btn[data-v-b44bf87d]:disabled{opacity:.55;cursor:not-allowed}.btn--md[data-v-b44bf87d]{font-size:var(--fs-md);height:36px;padding:8px 14px}.btn--sm[data-v-b44bf87d]{font-size:var(--fs-sm);border-radius:var(--radius-sm);height:28px;padding:5px 10px}.btn--block[data-v-b44bf87d]{width:100%}.btn--primary[data-v-b44bf87d]{background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-xs)}.btn--primary[data-v-b44bf87d]:hover:not(:disabled){background:var(--accent-hover)}.btn--primary[data-v-b44bf87d]:active:not(:disabled){background:var(--accent-active)}.btn--secondary[data-v-b44bf87d]{background:var(--bg);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn--secondary[data-v-b44bf87d]:hover:not(:disabled){background:var(--bg-hover)}.btn--ghost[data-v-b44bf87d]{color:var(--text-muted);background:0 0}.btn--ghost[data-v-b44bf87d]:hover:not(:disabled){background:var(--bg-muted);color:var(--text)}.btn--danger[data-v-b44bf87d]{background:var(--bg);color:var(--danger);border-color:var(--border-strong)}.btn--danger[data-v-b44bf87d]:hover:not(:disabled){background:var(--danger);color:#fff;border-color:var(--danger)}.btn--loading[data-v-b44bf87d]{cursor:progress}.btn__label[data-v-b44bf87d]{display:inline-flex}.field[data-v-aa802ea1]{flex-direction:column;gap:6px;display:flex}.field__label[data-v-aa802ea1]{font-size:var(--fs-sm);color:var(--text);font-weight:550}.field__req[data-v-aa802ea1]{color:var(--danger);margin-left:2px}.field__msg[data-v-aa802ea1]{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.field__msg--error[data-v-aa802ea1]{color:var(--danger)}.input[data-v-314122f8]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%;height:36px;color:var(--text);font:inherit;font-size:var(--fs-md);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:8px 11px}.input[data-v-314122f8]::placeholder{color:var(--text-subtle)}.input[data-v-314122f8]:hover:not(:disabled){border-color:var(--text-subtle)}.input[data-v-314122f8]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.input[data-v-314122f8]:disabled{background:var(--bg-muted);color:var(--text-subtle);cursor:not-allowed}.input--invalid[data-v-314122f8]{border-color:var(--danger)}.input--invalid[data-v-314122f8]:focus{box-shadow:0 0 0 3px var(--danger-subtle)}.textarea[data-v-70dacb83]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);font:inherit;font-size:var(--fs-md);resize:vertical;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:9px 11px}.textarea[data-v-70dacb83]::placeholder{color:var(--text-subtle)}.textarea[data-v-70dacb83]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.textarea[data-v-70dacb83]:disabled{background:var(--bg-muted);color:var(--text-subtle);cursor:not-allowed}.select-wrap[data-v-018ee34c]{display:block;position:relative}.select[data-v-018ee34c]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%;height:36px;color:var(--text);font:inherit;font-size:var(--fs-md);appearance:none;cursor:pointer;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:8px 32px 8px 11px}.select[data-v-018ee34c]:hover:not(:disabled){border-color:var(--text-subtle)}.select[data-v-018ee34c]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.select[data-v-018ee34c]:disabled{background:var(--bg-muted);color:var(--text-subtle);cursor:not-allowed}.select__chevron[data-v-018ee34c]{color:var(--text-subtle);pointer-events:none;font-size:11px;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.panel[data-v-c089f219]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--glass-blur);overflow:hidden}.panel__head[data-v-c089f219]{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);display:flex}.panel__titles[data-v-c089f219]{flex:1;min-width:0}.panel__title[data-v-c089f219]{font-size:var(--fs-lg);letter-spacing:-.01em;margin:0;font-weight:600}.panel__subtitle[data-v-c089f219]{font-size:var(--fs-sm);color:var(--text-muted);margin:3px 0 0}.panel__actions[data-v-c089f219]{gap:var(--space-2);flex-shrink:0;display:flex}.panel__body[data-v-c089f219]{padding:var(--space-5)}.panel__body--flush[data-v-c089f219]{padding:0}.pill[data-v-f6d193cb]{border-radius:var(--radius-full);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:5px;padding:2px 9px;font-weight:600;line-height:1.5;display:inline-flex}.pill--neutral[data-v-f6d193cb]{background:var(--bg-muted);color:var(--text-muted)}.pill--accent[data-v-f6d193cb]{background:var(--accent-subtle);color:var(--accent-subtle-fg)}.pill--success[data-v-f6d193cb]{background:var(--success-subtle);color:var(--success)}.pill--warning[data-v-f6d193cb]{background:var(--warning-subtle);color:var(--warning)}.pill--danger[data-v-f6d193cb]{background:var(--danger-subtle);color:var(--danger)}.stat[data-v-c2bbf289]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);-webkit-backdrop-filter:var(--glass-blur)}.stat__value[data-v-c2bbf289]{font-size:var(--fs-2xl);letter-spacing:-.02em;font-weight:680;line-height:1.1}.stat__label[data-v-c2bbf289]{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}.stat__hint[data-v-c2bbf289]{margin-top:var(--space-3)}.progress-wrap[data-v-2503ba10]{align-items:center;gap:var(--space-3);display:flex}.progress[data-v-2503ba10]{background:var(--bg-muted);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.progress__fill[data-v-2503ba10]{background:var(--accent);border-radius:var(--radius-full);height:100%;transition:width .35s var(--ease);display:block}.progress__label[data-v-2503ba10]{font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right;min-width:34px}.empty[data-v-015cb818]{text-align:center;padding:var(--space-6) var(--space-5);flex-direction:column;align-items:center;gap:6px;display:flex}.empty__icon[data-v-015cb818]{border-radius:var(--radius);background:var(--bg-muted);width:44px;height:44px;color:var(--text-subtle);margin-bottom:var(--space-2);place-items:center;font-size:22px;display:grid}.empty__title[data-v-015cb818]{font-weight:600;font-size:var(--fs-md);margin:0}.empty__desc[data-v-015cb818]{font-size:var(--fs-sm);color:var(--text-muted);max-width:320px;margin:0}.empty__action[data-v-015cb818]{margin-top:var(--space-3)}.overlay[data-v-269bd417]{z-index:100;padding:var(--space-5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#11111a73;place-items:center;display:grid;position:fixed;inset:0}.modal[data-v-269bd417]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:var(--glass-blur);overflow:hidden}.modal__head[data-v-269bd417]{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);display:flex}.modal__title[data-v-269bd417]{font-size:var(--fs-lg);flex:1;margin:0;font-weight:600}.modal__x[data-v-269bd417]{color:var(--text-subtle);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;font-size:15px;line-height:1}.modal__x[data-v-269bd417]:hover{background:var(--bg-muted);color:var(--text)}.modal__body[data-v-269bd417]{padding:var(--space-5)}.modal__foot[data-v-269bd417]{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);background:var(--bg-subtle);display:flex}.modal-enter-active[data-v-269bd417],.modal-leave-active[data-v-269bd417]{transition:opacity .18s var(--ease)}.modal-enter-active .modal[data-v-269bd417],.modal-leave-active .modal[data-v-269bd417]{transition:transform .18s var(--ease), opacity .18s var(--ease)}.modal-enter-from[data-v-269bd417],.modal-leave-to[data-v-269bd417]{opacity:0}.modal-enter-from .modal[data-v-269bd417],.modal-leave-to .modal[data-v-269bd417]{opacity:0;transform:translateY(8px)scale(.98)}.table-wrap[data-v-cd74f180]{width:100%;overflow-x:auto}.table[data-v-cd74f180]{border-collapse:collapse;width:100%;font-size:var(--fs-md)}.table th[data-v-cd74f180]{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);padding:10px var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-subtle);white-space:nowrap;font-weight:600}.table td[data-v-cd74f180]{padding:12px var(--space-4);border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.table tbody tr[data-v-cd74f180]{transition:background .12s var(--ease)}.table tbody tr[data-v-cd74f180]:hover{background:var(--bg-subtle)}.table tbody tr:last-child td[data-v-cd74f180]{border-bottom:none}.table__actions[data-v-cd74f180],.table__actions-head[data-v-cd74f180]{text-align:right;white-space:nowrap;width:1%}.table__actions-inner[data-v-cd74f180]{justify-content:flex-end;gap:6px;display:inline-flex}.theme-switch[data-v-6641eab7]{align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg);box-shadow:var(--shadow-xs);padding:4px;display:inline-flex}.swatches[data-v-6641eab7]{gap:3px;display:inline-flex}.swatch[data-v-6641eab7]{background:var(--sw);cursor:pointer;width:18px;height:18px;transition:transform .12s var(--ease), box-shadow .12s var(--ease);border:2px solid #0000;border-radius:50%;padding:0}.swatch[data-v-6641eab7]:hover{transform:scale(1.12)}.swatch.active[data-v-6641eab7]{box-shadow:0 0 0 2px var(--bg), 0 0 0 3.5px var(--accent)}.divider[data-v-6641eab7]{background:var(--border-strong);width:1px;height:16px}.mode[data-v-6641eab7]{cursor:pointer;width:24px;height:24px;color:var(--text-muted);background:0 0;border:none;border-radius:50%;place-items:center;font-size:13px;line-height:1;display:grid}.mode[data-v-6641eab7]:hover{background:var(--bg-muted);color:var(--text)}.ph[data-v-4da0ab1f]{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.ph__row[data-v-4da0ab1f]{align-items:center;gap:var(--space-3);display:flex}.ph__title[data-v-4da0ab1f]{font-size:var(--fs-2xl);letter-spacing:-.02em;margin:0;font-weight:700}.ph__badge[data-v-4da0ab1f]{font-size:var(--fs-xs);color:var(--accent-subtle-fg);background:var(--accent-subtle);border-radius:var(--radius-full);padding:3px 10px;font-weight:600}.ph__sub[data-v-4da0ab1f]{color:var(--text-muted);font-size:var(--fs-sm);margin:4px 0 0}.ph__actions[data-v-4da0ab1f]{gap:var(--space-2);flex-shrink:0;display:flex}.app[data-v-278cd0f0]{flex-direction:column;min-height:100vh;display:flex}.topbar[data-v-278cd0f0]{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar__inner[data-v-278cd0f0]{max-width:1200px;padding:0 var(--space-5);align-items:center;gap:var(--space-4);height:56px;margin:0 auto;display:flex}.brand[data-v-278cd0f0]{letter-spacing:-.02em;font-weight:700;font-size:var(--fs-lg)}.spacer[data-v-278cd0f0]{flex:1}.roles[data-v-278cd0f0]{background:var(--bg-muted);border-radius:var(--radius-full);gap:2px;padding:3px;display:inline-flex}.role-btn[data-v-278cd0f0]{cursor:pointer;font:inherit;font-size:var(--fs-sm);color:var(--text-muted);border-radius:var(--radius-full);transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;padding:5px 14px;font-weight:550}.role-btn[data-v-278cd0f0]:hover{color:var(--text)}.role-btn.active[data-v-278cd0f0]{background:var(--bg);color:var(--accent);box-shadow:var(--shadow-xs)}.ui-link[data-v-278cd0f0]{color:var(--text-subtle);font-size:var(--fs-sm);padding:4px 6px;text-decoration:none}.ui-link[data-v-278cd0f0]:hover{color:var(--text)}.user[data-v-278cd0f0]{font-size:var(--fs-sm);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:180px;text-decoration:none;overflow:hidden}.user[data-v-278cd0f0]:hover{color:var(--text)}.logout[data-v-278cd0f0]{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);cursor:pointer;font:inherit;font-size:var(--fs-sm);border-radius:var(--radius-full);transition:background .12s var(--ease), border-color .12s var(--ease);padding:5px 12px;font-weight:550}.logout[data-v-278cd0f0]:hover{background:var(--bg-muted);border-color:var(--text-subtle)}.body[data-v-278cd0f0]{flex:1;width:100%;max-width:1200px;margin:0 auto;display:flex}.sidebar[data-v-278cd0f0]{width:220px;padding:var(--space-5) var(--space-3);flex-shrink:0}.sidebar__label[data-v-278cd0f0]{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin:0 0 var(--space-3) var(--space-3)}.side-link[data-v-278cd0f0]{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--fs-md);border-radius:var(--radius-sm);transition:background .12s var(--ease), color .12s var(--ease);margin-bottom:4px;padding:8px 12px;font-weight:500;text-decoration:none;display:flex}.side-link[data-v-278cd0f0]:hover{background:var(--bg-muted);color:var(--text)}.side-link.router-link-active[data-v-278cd0f0]{background:var(--accent-subtle);color:var(--accent-subtle-fg);font-weight:600}.side-link__num[data-v-278cd0f0]{opacity:.7;border:1px solid;border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;display:grid}.main[data-v-278cd0f0]{flex:1;min-width:0}.main__inner[data-v-278cd0f0]{padding:var(--space-6) var(--space-5) 64px}@media (width<=720px){.body[data-v-278cd0f0]{flex-direction:column}.sidebar[data-v-278cd0f0]{gap:var(--space-2);width:auto;padding:var(--space-3) var(--space-4);display:flex;overflow-x:auto}.sidebar__label[data-v-278cd0f0]{display:none}.side-link[data-v-278cd0f0]{white-space:nowrap;margin-bottom:0}}
