.sidebar[data-v-6bf26d62]{display:flex;flex-direction:column;width:var(--sidebar-width);flex-shrink:0;height:100vh;position:sticky;top:0;background:var(--bg);border-right:1px solid var(--border);z-index:var(--z-sidebar);transition:width var(--duration) var(--ease)}.sidebar.is-collapsed[data-v-6bf26d62]{width:var(--sidebar-width-collapsed)}.sidebar-brand[data-v-6bf26d62]{position:relative;display:flex;align-items:center;gap:var(--space-2);height:var(--topbar-height);padding:0 var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0}.sidebar.is-collapsed .sidebar-brand[data-v-6bf26d62]{justify-content:center;padding:0}.brand-logo[data-v-6bf26d62]{border-radius:var(--radius-sm);flex-shrink:0;transition:opacity var(--duration-fast) var(--ease)}.sidebar.is-collapsed .collapse-toggle[data-v-6bf26d62]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:0;opacity:0}.sidebar.is-collapsed .sidebar-brand:hover .brand-logo[data-v-6bf26d62],.sidebar.is-collapsed .sidebar-brand:has(.collapse-toggle:focus-visible) .brand-logo[data-v-6bf26d62]{opacity:0}.sidebar.is-collapsed .sidebar-brand:hover .collapse-toggle[data-v-6bf26d62],.sidebar.is-collapsed .collapse-toggle[data-v-6bf26d62]:focus-visible{opacity:1}.brand-name[data-v-6bf26d62]{flex:1;font-size:var(--text-md);font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden}.collapse-toggle[data-v-6bf26d62]{display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:var(--radius-sm);color:var(--fg-subtle);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.collapse-toggle[data-v-6bf26d62]:hover{background:var(--bg-muted);color:var(--fg)}.sidebar-nav[data-v-6bf26d62]{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-2)}.sidebar.is-collapsed .sidebar-nav[data-v-6bf26d62]{overflow:visible}.nav-group+.nav-group[data-v-6bf26d62]{margin-top:var(--space-5)}.sidebar.is-collapsed .nav-group+.nav-group[data-v-6bf26d62]{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.nav-group-label[data-v-6bf26d62]{padding:0 var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-subtle);white-space:nowrap}.nav-item[data-v-6bf26d62]{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-sm);color:var(--fg-muted);font-size:var(--text-base);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.sidebar.is-collapsed .nav-item[data-v-6bf26d62]{justify-content:center}.nav-item+.nav-item[data-v-6bf26d62]{margin-top:2px}.nav-item svg[data-v-6bf26d62]{flex-shrink:0}.nav-label[data-v-6bf26d62]{white-space:nowrap;overflow:hidden}.nav-item[data-v-6bf26d62]:hover{background:var(--bg-muted);color:var(--fg)}.nav-item.is-active[data-v-6bf26d62]{background:var(--bg-inset);color:var(--fg);font-weight:500}.nav-tooltip[data-v-6bf26d62]{position:absolute;left:calc(100% + var(--space-2));top:50%;transform:translateY(-50%);padding:var(--space-1) var(--space-2);background:var(--fg);color:var(--bg);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease);z-index:var(--z-toast)}.nav-item:hover .nav-tooltip[data-v-6bf26d62],.nav-item:focus-visible .nav-tooltip[data-v-6bf26d62]{opacity:1}.sidebar-footer[data-v-6bf26d62]{padding:var(--space-2);border-top:1px solid var(--border);flex-shrink:0}@media(max-width:900px){.sidebar[data-v-6bf26d62],.sidebar.is-collapsed[data-v-6bf26d62]{position:static;width:100%;height:auto}.sidebar.is-collapsed .brand-logo[data-v-6bf26d62]{display:block}.sidebar.is-collapsed .sidebar-brand[data-v-6bf26d62]{justify-content:flex-start;padding:0 var(--space-4)}.collapse-toggle[data-v-6bf26d62]{display:none}.sidebar-nav[data-v-6bf26d62]{display:flex;gap:var(--space-4);overflow-x:auto;padding:var(--space-2) var(--space-4)}.nav-group[data-v-6bf26d62],.sidebar.is-collapsed .nav-group+.nav-group[data-v-6bf26d62]{display:flex;align-items:center;gap:var(--space-2);margin-top:0;padding-top:0;border-top:none}.nav-group-label[data-v-6bf26d62]{display:none}.nav-item[data-v-6bf26d62]{white-space:nowrap}.nav-item+.nav-item[data-v-6bf26d62]{margin-top:0}.nav-tooltip[data-v-6bf26d62]{display:none}}.ui-button[data-v-afeb1b1d]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius);font-weight:500;white-space:nowrap;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),opacity var(--duration-fast) var(--ease)}.ui-button.is-md[data-v-afeb1b1d]{height:34px;padding:0 var(--space-4);font-size:var(--text-base)}.ui-button.is-sm[data-v-afeb1b1d]{height:28px;padding:0 var(--space-3);font-size:var(--text-sm)}.ui-button[data-v-afeb1b1d]:disabled{opacity:.55}.ui-button.is-primary[data-v-afeb1b1d]{background:var(--fg);color:var(--bg)}.ui-button.is-primary[data-v-afeb1b1d]:not(:disabled):hover{background:#333}.ui-button.is-secondary[data-v-afeb1b1d]{background:var(--bg);border-color:var(--border-strong);color:var(--fg)}.ui-button.is-secondary[data-v-afeb1b1d]:not(:disabled):hover{background:var(--bg-muted)}.ui-button.is-ghost[data-v-afeb1b1d]{background:transparent;color:var(--fg-muted)}.ui-button.is-ghost[data-v-afeb1b1d]:not(:disabled):hover{background:var(--bg-muted);color:var(--fg)}.ui-button.is-danger[data-v-afeb1b1d]{background:var(--danger);color:var(--fg-onaccent)}.ui-button.is-danger[data-v-afeb1b1d]:not(:disabled):hover{background:var(--danger-hover)}.ui-button-spinner[data-v-afeb1b1d]{width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;flex-shrink:0}.ui-button-label[data-v-afeb1b1d]{display:inline-flex;align-items:center}.admin-shell[data-v-6fb0ff8c]{display:flex;align-items:flex-start;min-height:100vh;background:var(--bg-subtle)}.admin-main[data-v-6fb0ff8c]{flex:1;min-width:0}.admin-content[data-v-6fb0ff8c]{width:min(var(--content-max),100%);margin:0 auto;padding:var(--space-8) var(--space-8) var(--space-12)}.account[data-v-6fb0ff8c]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2)}.account.is-collapsed[data-v-6fb0ff8c]{flex-direction:column;gap:var(--space-2);padding:var(--space-1) 0}.account-avatar[data-v-6fb0ff8c]{display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:var(--radius-full);background:var(--fg);color:var(--bg);font-size:var(--text-xs);font-weight:600}.account-name[data-v-6fb0ff8c]{flex:1;font-size:var(--text-sm);color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-icon[data-v-6fb0ff8c]{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--fg-subtle);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.logout-icon[data-v-6fb0ff8c]:hover:not(:disabled){background:var(--bg-muted);color:var(--fg)}.logout-spinner[data-v-6fb0ff8c]{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}@media(max-width:900px){.admin-shell[data-v-6fb0ff8c]{flex-direction:column}.admin-content[data-v-6fb0ff8c]{padding:var(--space-5) var(--space-4) var(--space-10)}.account[data-v-6fb0ff8c],.account.is-collapsed[data-v-6fb0ff8c]{flex-direction:row;padding:var(--space-1) var(--space-2)}}.boot[data-v-d52cbd63]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);min-height:100vh;background:var(--bg-subtle)}.boot-logo[data-v-d52cbd63]{border-radius:var(--radius);opacity:.9}.boot-status[data-v-d52cbd63]{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--fg-muted)}.boot-spinner[data-v-d52cbd63]{width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}.form-field[data-v-5a853634]{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.field-label-row[data-v-5a853634]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:22px}.field-label[data-v-5a853634]{font-size:var(--text-sm);font-weight:600;color:var(--fg)}.field-required[data-v-5a853634]{color:var(--danger);margin-left:2px}.field-message[data-v-5a853634]{font-size:var(--text-sm);color:var(--fg-subtle);line-height:var(--leading-normal)}.field-message.is-error[data-v-5a853634]{color:var(--danger)}.form-field.has-error input[data-v-5a853634-s],.form-field.has-error textarea[data-v-5a853634-s]{border-color:var(--danger)}.auth-page[data-v-d9b4005e]{display:grid;place-items:center;min-height:100vh;padding:var(--space-6);background:var(--bg-subtle)}.auth-card[data-v-d9b4005e]{width:min(380px,100%);padding:var(--space-8);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.auth-logo[data-v-d9b4005e]{border-radius:var(--radius);margin-bottom:var(--space-5)}.auth-title[data-v-d9b4005e]{font-size:var(--text-xl);font-weight:600;letter-spacing:-.01em}.auth-subtitle[data-v-d9b4005e]{margin-top:var(--space-2);font-size:var(--text-base);color:var(--fg-muted)}.auth-form[data-v-d9b4005e]{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-6)}.auth-input[data-v-d9b4005e]{width:100%;height:36px;padding:0 var(--space-3);background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:var(--text-base);transition:border-color var(--duration-fast) var(--ease)}.auth-input[data-v-d9b4005e]:focus{border-color:var(--accent)}.auth-input[data-v-d9b4005e]:disabled{background:var(--bg-muted);cursor:not-allowed}.auth-error[data-v-d9b4005e]{padding:var(--space-2) var(--space-3);background:var(--danger-subtle);border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);font-size:var(--text-sm)}.auth-submit[data-v-d9b4005e]{width:100%;margin-top:var(--space-1)}.toast-host[data-v-5c85233a]{position:fixed;right:var(--space-5);bottom:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);width:min(380px,calc(100vw - var(--space-8)));z-index:var(--z-toast)}.toast[data-v-5c85233a]{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--fg-subtle);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.toast.is-success[data-v-5c85233a]{border-left-color:var(--success-fg)}.toast.is-error[data-v-5c85233a]{border-left-color:var(--danger);background:var(--danger-subtle)}.toast.is-info[data-v-5c85233a]{border-left-color:var(--accent)}.toast-body[data-v-5c85233a]{flex:1;min-width:0}.toast-title[data-v-5c85233a]{font-size:var(--text-base);font-weight:600;line-height:var(--leading-tight)}.toast-description[data-v-5c85233a]{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--fg-muted);line-height:var(--leading-normal);word-break:break-word}.toast-close[data-v-5c85233a]{flex-shrink:0;display:grid;place-items:center;width:22px;height:22px;margin:-2px -4px 0 0;border-radius:var(--radius-sm);color:var(--fg-subtle);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.toast-close[data-v-5c85233a]:hover{background:var(--bg-muted);color:var(--fg)}.toast-enter-active[data-v-5c85233a],.toast-leave-active[data-v-5c85233a]{transition:opacity var(--duration) var(--ease),transform var(--duration) var(--ease)}.toast-enter-from[data-v-5c85233a]{opacity:0;transform:translateY(8px)}.toast-leave-to[data-v-5c85233a]{opacity:0;transform:translate(12px)}.progress[data-v-d839ab74]{position:fixed;inset:0 0 auto 0;height:2px;background:transparent;z-index:var(--z-progress);pointer-events:none}.progress-bar[data-v-d839ab74]{height:100%;width:45%;background:var(--accent);border-radius:0 var(--radius-full) var(--radius-full) 0;animation:progress-slide-d839ab74 1.1s var(--ease) infinite}.progress-bar.is-done[data-v-d839ab74]{animation:none;width:100%;transition:width var(--duration) var(--ease),opacity var(--duration) var(--ease);opacity:0}@keyframes progress-slide-d839ab74{0%{transform:translate(-100%)}to{transform:translate(240%)}}@media(prefers-reduced-motion:reduce){.progress-bar[data-v-d839ab74]{animation:none;width:100%;opacity:.6}}:root{--bg: #ffffff;--bg-subtle: #fafafa;--bg-muted: #f4f4f5;--bg-inset: #ebebed;--border: #eaeaea;--border-strong: #d4d4d8;--fg: #000000;--fg-muted: #666666;--fg-subtle: #8f8f8f;--fg-onaccent: #ffffff;--accent: #0070f3;--accent-hover: #0761d1;--accent-subtle: #e5f0ff;--success: #0070f3;--success-fg: #047857;--success-subtle: #ecfdf5;--warning-fg: #b45309;--warning-subtle: #fffbeb;--danger: #e5484d;--danger-hover: #cc3d42;--danger-subtle: #fff1f2;--code-bg: #0f172a;--code-fg: #e5e7eb;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 26px;--leading-tight: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.7;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .12);--z-base: 1;--z-sticky: 10;--z-sidebar: 20;--z-progress: 40;--z-toast: 50;--duration-fast: .12s;--duration: .2s;--duration-slow: .32s;--ease: cubic-bezier(.4, 0, .2, 1);--sidebar-width: 200px;--sidebar-width-collapsed: 52px;--topbar-height: 52px;--content-max: 1400px;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "Geist Mono", "SF Mono", "Menlo", "Consolas", monospace}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration: 0ms;--duration-slow: 0ms}}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{background:var(--bg-subtle);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}textarea{resize:vertical}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.spin{animation:spin .7s linear infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
