.dialog-mask[data-v-8caa0976]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-modal) + 10);display:grid;place-items:center;padding:20px;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-panel[data-v-8caa0976]{width:min(400px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:22px 22px 18px;display:grid;gap:14px}.dialog-title[data-v-8caa0976]{margin:0;font-size:17px;font-weight:700;letter-spacing:-.02em;color:var(--color-foreground)}.dialog-message[data-v-8caa0976]{margin:0;font-size:var(--font-size-base);line-height:1.55;color:var(--color-on-surface-muted);white-space:pre-wrap}.dialog-actions[data-v-8caa0976]{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:4px}.dialog-actions .btn[data-v-8caa0976]{min-width:72px;min-height:36px;height:36px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;line-height:1;text-align:center;box-sizing:border-box}.dialog-actions .btn-danger.solid[data-v-8caa0976]{background:var(--color-destructive);color:#fff;border-color:var(--color-destructive)}.dialog-actions .btn-danger.solid[data-v-8caa0976]:hover:not(:disabled){filter:brightness(.95);background:var(--color-destructive)}:root,:root[data-theme=light]{color-scheme:light;--color-primary: #111111;--color-on-primary: #ffffff;--color-secondary: #525252;--color-accent: #171717;--color-background: #fafafa;--color-foreground: #0a0a0a;--color-muted: #f4f4f5;--color-border: #e4e4e7;--color-destructive: #b91c1c;--color-ring: #111111;--color-success: #171717;--color-warning: #404040;--color-surface: #ffffff;--color-surface-2: #f4f4f5;--color-on-surface: #0a0a0a;--color-on-surface-muted: #3f3f46;--color-on-surface-subtle: #71717a;--color-sidebar: #ffffff;--color-sidebar-elevated: #f4f4f5;--color-on-sidebar: #0a0a0a;--color-on-sidebar-muted: #71717a;--color-on-sidebar-border: #e4e4e7;--color-sidebar-active-bg: #0a0a0a;--color-sidebar-active-fg: #fafafa;--color-sidebar-hover: rgba(0, 0, 0, .05);--color-sidebar-logo-bg: #0a0a0a;--color-sidebar-logo-fg: #fafafa;--color-sidebar-avatar-bg: #0a0a0a;--color-sidebar-avatar-fg: #fafafa;--login-left-grad: linear-gradient(145deg, #111827 0%, #1f2937 48%, #374151 100%);--login-btn-grad: #111111;--sidebar-grad: var(--color-sidebar);--login-decor-1: rgba(108, 63, 245, .28);--login-decor-2: rgba(255, 155, 107, .22);--login-right-bg: radial-gradient(circle at 12% 0%, rgba(0, 0, 0, .04), transparent 40%), radial-gradient(circle at 90% 85%, rgba(0, 0, 0, .03), transparent 42%), linear-gradient(160deg, #fafafa 0%, #f4f4f5 100%);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .06);--shadow-md: 0 10px 28px rgba(0, 0, 0, .08);--shadow-card: 0 18px 40px rgba(0, 0, 0, .08);--shadow-focus: 0 0 0 3px rgba(17, 17, 17, .18);--primary: var(--color-primary);--primary-deep: #000000;--primary-end: #404040;--app-bg: var(--color-background);--card-bg: var(--color-surface);--text-main: var(--color-foreground);--text-regular: var(--color-on-surface-muted);--text-secondary: var(--color-on-surface-subtle);--border: var(--color-border);--success: var(--color-success);--warning: var(--color-warning);--danger: var(--color-destructive)}:root[data-theme=dark]{color-scheme:dark;--color-primary: #f5f5f5;--color-on-primary: #0a0a0a;--color-secondary: #a1a1aa;--color-accent: #e5e5e5;--color-background: #0a0a0a;--color-foreground: #fafafa;--color-muted: #1c1c1c;--color-border: #2a2a2a;--color-destructive: #f87171;--color-ring: #f5f5f5;--color-success: #e5e5e5;--color-warning: #a1a1aa;--color-surface: #141414;--color-surface-2: #1c1c1c;--color-on-surface: #fafafa;--color-on-surface-muted: #d4d4d8;--color-on-surface-subtle: #a1a1aa;--color-sidebar: #0a0a0a;--color-sidebar-elevated: #141414;--color-on-sidebar: #fafafa;--color-on-sidebar-muted: rgba(250, 250, 250, .64);--color-on-sidebar-border: rgba(255, 255, 255, .1);--color-sidebar-active-bg: #fafafa;--color-sidebar-active-fg: #0a0a0a;--color-sidebar-hover: rgba(255, 255, 255, .08);--color-sidebar-logo-bg: rgba(255, 255, 255, .1);--color-sidebar-logo-fg: #fafafa;--color-sidebar-avatar-bg: #fafafa;--color-sidebar-avatar-fg: #0a0a0a;--login-left-grad: linear-gradient(145deg, #0a0a0a 0%, #171717 50%, #262626 100%);--login-btn-grad: #f5f5f5;--sidebar-grad: var(--color-sidebar);--login-decor-1: rgba(108, 63, 245, .22);--login-decor-2: rgba(232, 215, 84, .14);--login-right-bg: radial-gradient(circle at 12% 0%, rgba(255, 255, 255, .04), transparent 40%), radial-gradient(circle at 90% 85%, rgba(255, 255, 255, .03), transparent 42%), linear-gradient(160deg, #0a0a0a 0%, #111111 100%);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .4);--shadow-md: 0 10px 28px rgba(0, 0, 0, .45);--shadow-card: 0 18px 40px rgba(0, 0, 0, .5);--shadow-focus: 0 0 0 3px rgba(245, 245, 245, .22);--primary: var(--color-primary);--primary-deep: #ffffff;--primary-end: #a1a1aa;--app-bg: var(--color-background);--card-bg: var(--color-surface);--text-main: var(--color-foreground);--text-regular: var(--color-on-surface-muted);--text-secondary: var(--color-on-surface-subtle);--border: var(--color-border);--success: var(--color-success);--warning: var(--color-warning);--danger: var(--color-destructive)}:root{--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--font-sans: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--line-height-body: 1.55;--line-height-tight: 1.3;--z-base: 0;--z-sticky: 20;--z-sidebar: 30;--z-overlay: 40;--z-drawer: 50;--z-modal: 100;--touch-min: 44px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#app{min-height:100%;min-height:100dvh}body{font-family:var(--font-sans);background:var(--color-background);color:var(--color-foreground);line-height:var(--line-height-body);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}button:disabled,[aria-disabled=true]{cursor:not-allowed}:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.skip-link{position:absolute;left:var(--space-4);top:-100px;z-index:var(--z-modal);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-weight:600;font-size:var(--font-size-sm);transition:top var(--duration-fast) var(--ease-out)}.skip-link:focus{top:var(--space-4);outline:2px solid var(--color-on-primary);outline-offset:2px}.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.page-head h1{margin:0;font-size:var(--font-size-xl);letter-spacing:-.02em}.page-head p{margin:4px 0 0;color:var(--color-on-surface-subtle);font-size:var(--font-size-sm)}.btn{min-height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-foreground);font-weight:600;font-size:var(--font-size-sm);display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;text-align:center;box-sizing:border-box;white-space:nowrap;flex-shrink:0;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.btn:hover:not(:disabled){background:var(--color-muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-accent)}.btn-danger{color:var(--color-destructive);border-color:color-mix(in srgb,var(--color-destructive) 35%,var(--color-border))}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xs)}.table-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}table.data{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}table.data th,table.data td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle}table.data th{font-weight:700;color:var(--color-on-surface-subtle);background:var(--color-muted);white-space:nowrap}table.data tr:last-child td{border-bottom:none}table.data .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}table.data td.col-actions,table.data th.col-actions{white-space:nowrap}table.data td.col-actions .actions{flex-wrap:nowrap;gap:6px}.mono{font-family:var(--font-mono);font-size:12px}.pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--color-muted);border:1px solid var(--color-border);font-size:11px;font-weight:600;white-space:nowrap;max-width:100%}@media(max-width:720px){.table-wrap{margin-inline:calc(-1 * var(--space-1, 4px));padding-inline:var(--space-1, 4px)}table.data{min-width:560px}table.data th,table.data td{padding:10px 12px}table.data .actions{flex-wrap:nowrap}table.data .actions .btn{min-height:32px;padding:0 10px;font-size:12px}table.data--cards{min-width:0;width:100%}table.data--cards thead{display:none}table.data--cards,table.data--cards tbody,table.data--cards tr,table.data--cards td{display:block;width:100%}table.data--cards tr{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}table.data--cards tr:last-child{border-bottom:none}table.data--cards td{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:6px 0;border-bottom:none;text-align:right}table.data--cards td:before{content:attr(data-label);flex:0 0 auto;max-width:40%;text-align:left;font-weight:600;font-size:var(--font-size-xs);color:var(--color-on-surface-subtle);white-space:nowrap}table.data--cards td.col-actions{padding-top:var(--space-3);margin-top:var(--space-2);border-top:1px dashed var(--color-border);white-space:normal}table.data--cards td.col-actions:before{padding-top:6px}table.data--cards td.col-actions .actions{flex:1;flex-wrap:wrap;justify-content:flex-end}table.data--cards td.col-id{font-family:var(--font-mono);font-size:12px;color:var(--color-on-surface-subtle)}}.form-grid{display:grid;gap:12px}.form-grid--2col{grid-template-columns:1fr 1fr;gap:12px 16px;align-items:start}.form-grid--2col>.form-span-2,.form-grid--2col>.error-text,.form-grid--2col>.field-block--full,.form-grid--2col>label.form-span-2{grid-column:1 / -1}.form-grid label{display:grid;gap:6px;font-size:var(--font-size-sm);font-weight:600;color:var(--color-on-surface-muted)}.form-grid .field-block{display:grid;gap:6px}.form-grid .field-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-on-surface-muted)}.form-grid .field-block:has(.filter-select){position:relative;z-index:1}.form-grid .field-block:has(.filter-select.open),.form-grid .field-block:has(.filter-select:focus-within){z-index:5}.form-grid input:not([type=checkbox]):not([type=radio]),.form-grid textarea{min-height:40px;padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-foreground)}.form-grid textarea{min-height:80px;padding:10px 12px;resize:vertical}.form-grid input:not([type=checkbox]):not([type=radio]):focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form-layout-split{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(320px,1.35fr);gap:16px 20px;align-items:start;min-height:0}.form-layout-split>.form-layout-main,.form-layout-split>.form-layout-side{min-width:0;min-height:0}.form-layout-main.form-grid{align-content:start;gap:12px}.form-layout-main.form-grid label,.form-layout-main.form-grid .field-block{align-content:start}.form-layout-main.form-grid input:not([type=checkbox]):not([type=radio]),.form-layout-main.form-grid textarea{min-height:36px}.form-layout-side{display:flex;flex-direction:column;gap:12px;min-height:0;align-self:stretch;max-height:min(62vh,520px)}.form-layout-side .check-list{flex:1;max-height:none;min-height:120px}.form-panel{display:flex;flex-direction:column;gap:8px;min-height:0;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-muted)}.form-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--font-size-sm);font-weight:600;color:var(--color-on-surface-muted)}.form-panel .check-list{flex:1;max-height:min(36vh,280px);min-height:120px;background:var(--color-surface)}.check-list{display:grid;gap:4px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-muted)}.check-list--cols{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px 8px;align-content:start}.check-list--cols label{margin:0}.check-list label{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 10px;border-radius:var(--radius-sm);font-weight:500;font-size:var(--font-size-sm);color:var(--color-foreground);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--duration-fast) var(--ease-out)}.check-list label:hover{background:color-mix(in srgb,var(--color-foreground) 6%,transparent)}.check-list input[type=checkbox],.form-grid input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:16px;height:16px;min-width:16px;min-height:16px;max-width:16px;max-height:16px;padding:0;margin:0;flex:0 0 16px;aspect-ratio:1 / 1;border:1.5px solid var(--color-on-surface-subtle);border-radius:4px;background-color:var(--color-surface);background-repeat:no-repeat;background-position:center;background-size:10px 10px;cursor:pointer;vertical-align:middle;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.check-list input[type=checkbox]:checked,.form-grid input[type=checkbox]:checked{background-color:var(--color-primary);border-color:var(--color-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fafafa' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E")}:root[data-theme=dark] .check-list input[type=checkbox]:checked,:root[data-theme=dark] .form-grid input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230a0a0a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E")}.check-list input[type=checkbox]:focus-visible,.form-grid input[type=checkbox]:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-color:var(--color-primary)}.check-list input[type=checkbox]:hover:not(:checked),.form-grid input[type=checkbox]:hover:not(:checked){border-color:var(--color-foreground)}.check-list label:has(input[type=checkbox]:checked){background:color-mix(in srgb,var(--color-foreground) 5%,transparent)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:var(--z-modal);display:grid;place-items:center;padding:20px;overflow:auto}.modal{width:min(520px,100%);max-height:min(90vh,820px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:20px;display:flex;flex-direction:column;gap:16px;overflow:visible}.modal>.form-grid,.modal>.form-layout-split,.modal>.user-form-layout,.modal>.bind-layout{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding-bottom:4px}.modal>.modal-actions{flex-shrink:0;margin-top:auto}.modal>.form-grid:has(.filter-select.open),.modal>.form-layout-split:has(.filter-select.open),.modal>.user-form-layout:has(.filter-select.open){overflow:visible}.modal-sm{width:min(400px,100%)}.modal-md{width:min(560px,100%)}.modal-lg{width:min(760px,100%)}.modal-xl{width:min(920px,100%)}.modal h2{margin:0;font-size:18px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:800px){.form-grid--2col,.form-layout-split{grid-template-columns:1fr}.modal-lg,.modal-xl{width:min(520px,100%)}.form-panel .check-list{max-height:180px}}.error-text{color:var(--color-destructive);font-size:var(--font-size-sm)}.empty{padding:28px;text-align:center;color:var(--color-on-surface-subtle)}
