.ui-icon[data-v-bb13e601]{display:inline-block;flex-shrink:0;vertical-align:middle}.toast-wrap[data-v-8564fcb1]{position:fixed;right:var(--space-5);top:calc(var(--app-topbar-height, 48px) + var(--space-3));z-index:1300;display:flex;flex-direction:column;gap:var(--space-2)}.toast-item[data-v-8564fcb1]{min-width:240px;max-width:380px;padding:12px 14px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--surface);font-size:13px;display:flex;align-items:flex-start;gap:10px}.toast-icon[data-v-8564fcb1]{flex-shrink:0;margin-top:1px}.toast-msg[data-v-8564fcb1]{line-height:1.45;word-break:break-word}.toast-success[data-v-8564fcb1]{background:var(--success-700)}.toast-error[data-v-8564fcb1]{background:var(--danger-700)}.toast-warning[data-v-8564fcb1]{background:var(--warning-700)}.toast-info[data-v-8564fcb1]{background:var(--primary-700)}.toast-enter-active[data-v-8564fcb1],.toast-leave-active[data-v-8564fcb1]{transition:all .2s ease}.toast-enter-from[data-v-8564fcb1],.toast-leave-to[data-v-8564fcb1]{opacity:0;transform:translateY(-8px)}:root{--app-bg: #f3f5f8;--surface: #ffffff;--surface-soft: #f7f9fc;--text-primary: #1f2937;--text-secondary: #6b7280;--text-muted: #9ca3af;--line-color: #e5e7eb;--line-strong: #d1d5db;--primary-50: #eff6ff;--primary-100: #e1edff;--primary-400: #4f7cff;--primary-500: #355efb;--primary-600: #2947df;--primary-700: #1f379f;--success-50: #ecfdf3;--success-100: #bbf7d0;--success-500: #16a34a;--success-700: #15803d;--warning-50: #fffbeb;--warning-100: #fde68a;--warning-500: #d97706;--warning-700: #b45309;--danger-50: #fef2f2;--danger-100: #fecaca;--danger-500: #dc2626;--danger-600: #dc2626;--danger-700: #b91c1c;--danger-soft: #fef2f2;--accent-50: #fff7ed;--accent-500: #ff9933;--accent-600: #e88b2e;--sidebar-bg: #0f172a;--sidebar-bg-elevated: #1e293b;--sidebar-text: #ffffff;--sidebar-muted: #9ca3af;--sidebar-dim: #cccccc;--sidebar-border: rgba(255, 255, 255, .1);--sidebar-border-strong: rgba(255, 255, 255, .16);--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-hover-strong: rgba(255, 255, 255, .12);--sidebar-control-bg: rgba(255, 255, 255, .03);--sidebar-accent: #ff9933;--sidebar-accent-soft: rgba(255, 153, 51, .15);--sidebar-active: rgba(79, 124, 255, .22);--overlay: rgba(15, 23, 42, .45);--focus-ring: rgba(53, 94, 251, .16);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 15px;--font-size-xl: 16px;--font-size-2xl: 18px;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-loose: 1.6;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--control-height: 32px;--control-height-sm: 28px;--control-padding-x: 12px;--control-padding-x-sm: 10px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--shadow-lg: 0 16px 40px rgba(15, 23, 42, .12);--shadow-flyout: 0 12px 32px rgba(0, 0, 0, .35);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--app-topbar-height: 40px;--admin-topbar-height: var(--app-topbar-height)}*{box-sizing:border-box}html,body{height:100%;overflow:hidden}body{margin:0;font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-base);font-weight:var(--font-weight-regular);color:var(--text-primary);background:var(--app-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}a{color:var(--primary-500);text-decoration:none}a:hover{color:var(--primary-600);text-decoration:underline}.btn,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-height);padding:0 var(--control-padding-x);border-radius:var(--radius-sm);border:1px solid transparent;background:var(--primary-500);color:var(--surface);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);line-height:1;font-weight:var(--font-weight-medium);white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease}.btn:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--primary-600);border-color:var(--primary-600)}.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-warn:focus-visible,.btn-danger:focus-visible,.btn-ghost:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-warn:disabled,.btn-danger:disabled,.btn-ghost:disabled{opacity:.55;cursor:not-allowed}.btn-sm{height:var(--control-height-sm);padding:0 var(--control-padding-x-sm);font-size:var(--font-size-xs)}.btn-warn,.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--text-primary)}.btn-warn:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background:var(--surface-soft);color:var(--text-primary);border-color:var(--line-strong)}.btn-danger{background:var(--danger-500);border-color:var(--danger-500);color:var(--surface)}.btn-danger:hover:not(:disabled){background:var(--danger-700);border-color:var(--danger-700)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-soft);color:var(--text-primary)}.btn-link{background:none;border:none;color:var(--primary-500);cursor:pointer;padding:0 var(--space-1);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);height:auto;line-height:var(--line-height-base)}.btn-link:hover:not(:disabled){color:var(--primary-600);text-decoration:underline;background:none}.btn-link.danger{color:var(--danger-500)}.btn-link.danger:hover:not(:disabled){color:var(--danger-700)}input,select,textarea{width:100%;padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-base);color:var(--text-primary);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-400);box-shadow:0 0 0 2px var(--focus-ring)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-soft);color:var(--text-muted);cursor:not-allowed}input[type=checkbox]{width:auto;padding:0}label{display:block;margin-bottom:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-base)}.chk{margin-bottom:8px}label.chk,.chk>label,label:has(>input[type=checkbox]){display:flex;align-items:flex-start;gap:8px;margin-bottom:0;cursor:pointer;color:inherit}label.chk input[type=checkbox],.chk>label input[type=checkbox],label:has(>input[type=checkbox])>input[type=checkbox]{flex-shrink:0;margin-top:2px}.form-group{margin-bottom:var(--space-3)}.hint{color:var(--text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-base)}.muted{color:var(--text-muted);font-size:var(--font-size-sm)}.err{color:var(--danger-500);font-size:var(--font-size-sm)}.mono{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-secondary)}.card,.panel,.form-card{background:var(--surface);border:1px solid var(--line-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-3) var(--space-4)}.table-wrap{background:var(--surface);border-radius:var(--radius-md);overflow:auto;box-shadow:var(--shadow-sm);border:1px solid var(--line-color)}.table{width:100%;border-collapse:collapse;background:var(--surface)}.table th,.table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line-color);font-size:var(--font-size-sm);line-height:var(--line-height-tight);color:var(--text-primary)}.table th{background:var(--surface-soft);color:var(--text-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);position:sticky;top:0;z-index:1}.table tbody tr:hover td{background:var(--surface-soft)}.table tbody tr:last-child td{border-bottom:none}.empty{text-align:center;padding:36px 16px;color:var(--text-muted);font-size:var(--font-size-sm)}
