@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sc-chinese-simplified-400-normal-Ba7eOkfT.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-400-normal-CN8EQoOj.woff) format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-sc-chinese-simplified-500-normal-z_irmif2.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-500-normal-CtDGG6sn.woff) format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-sc-chinese-simplified-600-normal-CI4uXaOp.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-600-normal-BZjJ-uhR.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}.ui-select[data-v-8e6845d7]{position:relative;width:auto;min-width:0}.ui-select-trigger[data-v-8e6845d7]{width:100%;min-width:0;min-height:32px;padding:0 8px;justify-content:flex-start;color:var(--c-text);background:color-mix(in srgb,var(--c-bg-page) 72%,var(--c-bg-card));border-color:color-mix(in srgb,var(--c-border-light) 82%,transparent);font-size:12px}.ui-select-trigger[data-v-8e6845d7]:hover,.ui-select-trigger[aria-expanded=true][data-v-8e6845d7]{background:var(--c-bg-hover);border-color:var(--c-border)}.ui-select-label[data-v-8e6845d7]{min-width:0;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ui-select-placeholder[data-v-8e6845d7]{color:var(--c-text-muted)}.ui-select-chevron[data-v-8e6845d7]{flex:0 0 auto;color:var(--c-text-muted)}.ui-select-panel[data-v-8e6845d7]{position:fixed;z-index:1200;display:flex;flex-direction:column;gap:1px;padding:2px;overflow-y:auto;overscroll-behavior:contain;background:var(--c-bg-card);border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:0 8px 24px var(--c-shadow);box-sizing:border-box}.ui-select-option[data-v-8e6845d7]{display:flex;width:100%;min-height:28px;align-items:center;justify-content:space-between;gap:7px;padding:4px 6px;color:var(--c-text-secondary);background:transparent;border:0;border-radius:var(--radius-sm);text-align:left;font-size:12px;cursor:pointer}.ui-select-option>span[data-v-8e6845d7]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-option[data-v-8e6845d7]:hover,.ui-select-option--active[data-v-8e6845d7]{color:var(--c-text);background:var(--c-bg-hover)}.project-context-switcher[data-v-979c630a]{position:relative;display:flex;flex-direction:column;gap:2px;min-width:0}.project-context-trigger[data-v-979c630a]{display:inline-flex;align-items:center;gap:5px;width:100%;max-width:260px;min-height:26px;padding:2px 7px;color:var(--c-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius);font-size:12px;cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.context-selector-book[data-v-979c630a]{color:var(--c-text)}.context-selector-book .project-context-trigger-label[data-v-979c630a]{flex:1;min-width:0;text-align:left;font-weight:400}.project-context-trigger[data-v-979c630a]:hover,.project-context-trigger.open[data-v-979c630a]{color:var(--c-text);background:var(--c-bg-hover);border-color:var(--c-border-light)}.project-context-trigger[data-v-979c630a]:disabled{cursor:default;opacity:.72}.project-context-trigger-mark[data-v-979c630a]{display:none}.project-context-trigger-label[data-v-979c630a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-context-dialog[data-v-979c630a]{display:grid;gap:var(--sp-md)}.project-context-controls[data-v-979c630a]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-sm)}.project-context-search[data-v-979c630a]{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 8px;color:var(--c-text-muted);background:color-mix(in srgb,var(--c-bg-page) 72%,var(--c-bg-card));border:1px solid color-mix(in srgb,var(--c-border-light) 82%,transparent);border-radius:var(--radius)}.project-context-search[data-v-979c630a]:focus-within{color:var(--c-text-secondary);border-color:var(--c-border)}.project-context-search input[data-v-979c630a]{width:100%;min-width:0;color:var(--c-text);background:transparent;border:0;outline:0;font:inherit;font-size:13px}.project-context-search input[data-v-979c630a]::placeholder{color:var(--c-text-muted)}.project-context-dialog-list[data-v-979c630a]{display:grid;gap:4px;max-height:min(360px,50vh);min-height:0;overflow-y:auto;padding-right:2px}.project-context-dialog-option[data-v-979c630a]{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 8px;color:var(--c-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius);text-align:left;font-size:12px;cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.project-context-dialog-option[data-v-979c630a]:hover,.project-context-dialog-option.active[data-v-979c630a]{color:var(--c-text);background:var(--c-bg-hover);border-color:var(--c-border-light)}.project-context-dialog-option[data-v-979c630a]:disabled{cursor:default;opacity:.72}.project-context-dialog-main[data-v-979c630a]{display:grid;min-width:0;flex:1;gap:4px}.project-context-dialog-title[data-v-979c630a]{min-width:0;overflow:hidden;color:var(--c-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}.project-context-dialog-meta[data-v-979c630a]{display:flex;align-items:center;gap:5px;color:var(--c-text-muted);font-size:11px}.project-context-current-check[data-v-979c630a]{flex:0 0 auto;margin-left:auto;color:var(--c-accent)}.project-context-dialog-empty[data-v-979c630a]{display:grid;min-height:100px;place-items:center;color:var(--c-text-muted);font-size:12px}.project-context-dialog-error[data-v-979c630a]{align-content:center;gap:var(--sp-sm)}[data-v-979c630a] .dialog-body{margin-bottom:0}@media(max-width:640px){.project-context-trigger[data-v-979c630a]{max-width:min(180px,40vw)}.project-context-controls[data-v-979c630a]{grid-template-columns:1fr}}.nav-badge[data-v-980e7e36]{margin-left:auto;padding:1px 6px;color:var(--c-accent-contrast);background:var(--c-accent);border-radius:99px;font-size:10px;font-weight:500;line-height:1.6}.drawer-overlay[data-v-8decf1b3]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;background:var(--c-overlay)}.drawer-overlay--no-backdrop[data-v-8decf1b3]{background:transparent;pointer-events:none}.drawer-overlay--no-backdrop .drawer-panel[data-v-8decf1b3]{pointer-events:auto}.drawer-panel[data-v-8decf1b3]{height:calc(100% - var(--drawer-offset-top) - var(--drawer-offset-bottom));min-width:280px;margin-top:var(--drawer-offset-top);margin-bottom:var(--drawer-offset-bottom);display:flex;flex-direction:column;background:var(--c-bg-card);border-left:1px solid var(--c-border);box-shadow:-12px 0 32px var(--c-shadow)}.drawer-panel--right[data-v-8decf1b3]{margin-right:var(--drawer-offset-inline);margin-left:auto}.drawer-panel--left[data-v-8decf1b3]{margin-right:auto;margin-left:var(--drawer-offset-inline)}.drawer-panel--floating[data-v-8decf1b3]{overflow:hidden;border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:0 12px 32px var(--c-shadow)}.drawer-panel__header[data-v-8decf1b3]{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;min-height:52px;padding:10px var(--content-padding);border-bottom:1px solid var(--c-border-light)}.drawer-panel__title[data-v-8decf1b3]{font-size:14px;font-weight:600}.drawer-panel__close[data-v-8decf1b3]{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--c-text-secondary);cursor:pointer}.drawer-panel__close[data-v-8decf1b3]:hover{color:var(--c-text);background:var(--c-bg-hover);border-color:var(--c-border-light)}.drawer-panel__body[data-v-8decf1b3]{min-height:0;flex:1;overflow:auto}.drawer-panel__body--flex[data-v-8decf1b3]{display:flex;flex-direction:column;overflow:hidden}.drawer-panel__footer[data-v-8decf1b3]{flex:0 0 auto;padding:var(--sp-md) var(--content-padding);border-top:1px solid var(--c-border-light)}.notification-header[data-v-c9153085]{display:flex;align-items:center;gap:var(--sp-sm);min-width:0;flex:1}.notification-header-copy[data-v-c9153085]{display:grid;min-width:0;gap:1px}.notification-header-title[data-v-c9153085]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-header-title[data-v-c9153085]{color:var(--c-text);font-size:14px;font-weight:600}.notification-header-meta[data-v-c9153085]{color:var(--c-text-muted);font-size:11px;font-weight:400}.notification-read-all[data-v-c9153085]{display:inline-flex;align-items:center;gap:4px;min-height:28px;margin-left:auto;padding:0 8px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--c-text-secondary);background:transparent;font:inherit;font-size:11px;font-weight:500;cursor:pointer}.notification-read-all[data-v-c9153085]:hover:not(:disabled){color:var(--c-text);background:var(--c-bg-hover)}.notification-read-all[data-v-c9153085]:disabled{color:var(--c-text-muted);cursor:default}.notification-center[data-v-c9153085]{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:hidden}.notification-tabs[data-v-c9153085]{display:flex;flex:0 0 auto;gap:0;min-height:40px;padding:0 var(--sp-sm);background:var(--c-bg-card);overflow-x:auto;scrollbar-width:none}.notification-tabs[data-v-c9153085]::-webkit-scrollbar{display:none}.notification-tab[data-v-c9153085]{position:relative;display:inline-flex;min-height:40px;align-items:center;justify-content:center;flex:1 0 auto;padding:0 10px;border:0;color:var(--c-text-muted);background:transparent;font:inherit;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease)}.notification-tab[data-v-c9153085]:after{position:absolute;right:10px;bottom:0;left:10px;height:2px;border-radius:2px 2px 0 0;background:transparent;content:"";transition:background var(--duration) var(--ease)}.notification-tab[data-v-c9153085]:hover,.notification-tab--active[data-v-c9153085]{color:var(--c-text)}.notification-tab--active[data-v-c9153085]:after{background:var(--c-blue)}.notification-list[data-v-c9153085]{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;padding:0 var(--sp-sm);overflow-x:hidden;overflow-y:auto;background:var(--c-bg-card);overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--c-border) transparent}.notification-item[data-v-c9153085]{position:relative;display:flex;align-items:flex-start;flex:0 0 auto;gap:10px;width:100%;min-height:72px;padding:12px var(--sp-sm);text-align:left;border:0;border-top:1px solid var(--c-border-light);color:var(--c-text);background:transparent;cursor:pointer;transition:background var(--duration) var(--ease)}.notification-item[data-v-c9153085]:hover{background:var(--c-bg-hover)}.notification-item--unread[data-v-c9153085]{background:color-mix(in srgb,var(--c-blue) 5%,var(--c-bg-card))}.notification-item-icon-wrap[data-v-c9153085]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;color:var(--c-text-muted);background:var(--c-bg-page);border:1px solid var(--c-border-light);border-radius:var(--radius)}.notification-item-icon[data-v-c9153085]{width:15px;height:15px;color:var(--c-text-muted)}.notification-item-icon--success[data-v-c9153085]{color:var(--c-green)}.notification-item-icon--error[data-v-c9153085]{color:var(--c-red)}.notification-item-icon--warning[data-v-c9153085]{color:var(--c-yellow)}.notification-item-main[data-v-c9153085]{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.notification-item-title[data-v-c9153085]{font-size:13px;font-weight:500;line-height:1.45;overflow-wrap:anywhere}.notification-item-content[data-v-c9153085]{color:var(--c-text-secondary);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.notification-item-time[data-v-c9153085]{color:var(--c-text-muted);font-size:11px}.notification-item-book[data-v-c9153085]{color:var(--c-text-secondary)}.notification-unread-dot[data-v-c9153085]{width:6px;height:6px;flex:0 0 6px;margin-top:7px;border-radius:50%;background:var(--c-blue)}.notification-state[data-v-c9153085]{display:flex;flex:1 1 auto;min-height:0;align-items:center;justify-content:center;gap:var(--sp-sm);color:var(--c-text-muted);font-size:12px}.notification-state--error[data-v-c9153085]{flex-direction:column;padding:var(--sp-md);text-align:center}.notification-empty-icon[data-v-c9153085]{width:22px;height:22px}.app-global-tools[data-v-8ef8de53]{position:absolute;top:0;right:0;z-index:8;display:flex;align-items:center;gap:4px;height:52px;width:var(--global-tools-w);padding:0 12px 0 8px;background:var(--c-bg-card);box-sizing:border-box;justify-content:flex-end}.global-theme-trigger[data-v-8ef8de53],.global-notification-trigger[data-v-8ef8de53],.global-account-trigger[data-v-8ef8de53]{display:inline-flex;align-items:center;justify-content:center;height:34px;color:var(--c-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease),border-color var(--duration) var(--ease),transform var(--duration) var(--ease)}.global-theme-trigger[data-v-8ef8de53],.global-notification-trigger[data-v-8ef8de53]{position:relative;width:34px;flex:0 0 34px}.global-theme-trigger[data-v-8ef8de53]:hover,.global-notification-trigger[data-v-8ef8de53]:hover,.global-notification-trigger.active[data-v-8ef8de53],.global-account-trigger[data-v-8ef8de53]:hover,.global-account-trigger.open[data-v-8ef8de53]{color:var(--c-text);background:var(--c-bg-hover);border-color:var(--c-border-light)}.global-theme-trigger[data-v-8ef8de53]:active,.global-notification-trigger[data-v-8ef8de53]:active,.global-account-trigger[data-v-8ef8de53]:active{transform:scale(.96)}.global-notification-badge[data-v-8ef8de53]{position:absolute;top:-3px;right:-4px;width:18px;height:18px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--c-bg-card);border-radius:50%;background:var(--c-accent);color:var(--c-accent-contrast);font-size:9px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.global-notification-badge--many[data-v-8ef8de53]{width:auto;min-width:18px;padding:0 4px;border-radius:99px}.global-account[data-v-8ef8de53]{min-width:0}.global-account-trigger[data-v-8ef8de53]{gap:8px;padding:5px 7px}.global-account-name[data-v-8ef8de53]{max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.global-avatar[data-v-8ef8de53]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:var(--c-text);color:var(--c-bg-card);font-size:11px;font-weight:600;line-height:1}.global-avatar-image[data-v-8ef8de53]{object-fit:cover}.global-avatar-lg[data-v-8ef8de53]{width:32px;height:32px;flex-basis:32px;font-size:13px}.global-account-menu[data-v-8ef8de53]{position:fixed;width:260px;max-height:min(520px,calc(100vh - 24px));overflow-y:auto;padding:8px;box-sizing:border-box;background:var(--c-bg-card);border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:0 8px 24px var(--c-shadow);z-index:1000}.global-account-summary[data-v-8ef8de53]{display:flex;align-items:center;gap:9px;padding:6px 7px 9px}.global-account-copy[data-v-8ef8de53]{min-width:0;display:flex;flex-direction:column;gap:1px}.global-account-copy strong[data-v-8ef8de53]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-text);font-size:12px;font-weight:600}.global-account-copy span[data-v-8ef8de53]{color:var(--c-text-muted);font-size:11px}.global-account-divider[data-v-8ef8de53]{height:1px;margin:0 0 5px;background:var(--c-border-light)}.global-account-item[data-v-8ef8de53]{display:flex;align-items:center;gap:7px;width:100%;padding:7px 8px;color:var(--c-text-secondary);background:transparent;border:0;border-radius:var(--radius-sm);text-align:left;font-size:12px;cursor:pointer}.global-account-item[data-v-8ef8de53]:hover{color:var(--c-text);background:var(--c-bg-hover)}.global-account-item-danger[data-v-8ef8de53]:hover{color:var(--c-red)}.global-account-section-label[data-v-8ef8de53]{display:flex;align-items:center;gap:6px;padding:5px 8px 4px;color:var(--c-text-muted);font-size:10px;font-weight:500}.global-current-workspace[data-v-8ef8de53]{display:flex;align-items:center;width:100%;gap:8px;padding:7px 8px;color:var(--c-text-secondary);background:var(--c-bg-hover);border:1px solid var(--c-border-light);border-radius:var(--radius-sm);text-align:left;cursor:pointer}.global-current-workspace[data-v-8ef8de53]:hover{color:var(--c-text);border-color:var(--c-border)}.global-current-workspace-chevron[data-v-8ef8de53]{margin-left:auto;color:var(--c-text-muted)}.global-workspace-option-copy[data-v-8ef8de53]{display:grid;min-width:0;gap:1px}.global-workspace-option-copy strong[data-v-8ef8de53]{overflow:hidden;color:var(--c-text);font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.global-workspace-option-copy small[data-v-8ef8de53]{color:var(--c-text-muted);font-size:10px}.workspace-switcher-dialog[data-v-8ef8de53]{display:grid;gap:var(--sp-md)}.workspace-search[data-v-8ef8de53]{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;color:var(--c-text-muted);background:var(--c-bg-page);border:1px solid var(--c-border-light);border-radius:var(--radius)}.workspace-search[data-v-8ef8de53]:focus-within{color:var(--c-text-secondary);border-color:var(--c-border)}.workspace-search input[data-v-8ef8de53]{width:100%;min-width:0;color:var(--c-text);background:transparent;border:0;outline:0;font:inherit;font-size:13px}.workspace-switcher-list[data-v-8ef8de53]{display:grid;gap:4px;max-height:min(360px,50vh);overflow-y:auto;padding-right:2px}.workspace-switcher-option[data-v-8ef8de53]{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 10px;color:var(--c-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius);text-align:left;cursor:pointer}.workspace-switcher-option[data-v-8ef8de53]:hover,.workspace-switcher-option.active[data-v-8ef8de53]{color:var(--c-text);background:var(--c-bg-hover);border-color:var(--c-border-light)}.workspace-switcher-mark[data-v-8ef8de53]{display:inline-flex;width:30px;height:30px;flex:0 0 30px;align-items:center;justify-content:center;color:var(--c-text-secondary);background:var(--c-bg-card);border:1px solid var(--c-border-light);border-radius:var(--radius-sm)}.workspace-switcher-copy[data-v-8ef8de53]{display:grid;min-width:0;gap:3px}.workspace-switcher-copy strong[data-v-8ef8de53]{overflow:hidden;color:var(--c-text);font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.workspace-switcher-copy small[data-v-8ef8de53]{color:var(--c-text-muted);font-size:11px}.workspace-switcher-check[data-v-8ef8de53]{margin-left:auto;color:var(--c-accent)}.workspace-switcher-state[data-v-8ef8de53]{display:grid;min-height:100px;place-items:center;color:var(--c-text-muted);font-size:12px}@media(max-width:640px){.app-global-tools[data-v-8ef8de53]{padding-right:8px}.global-account-name[data-v-8ef8de53]{display:none}.global-account-trigger[data-v-8ef8de53]{width:34px;padding:5px}}.toast-container[data-v-3a6b00bb]{position:fixed;right:20px;bottom:20px;z-index:9999;pointer-events:none;width:min(420px,calc(100vw - 32px))}.toast-motion-list[data-v-3a6b00bb]{display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:100%}.toast-item[data-v-3a6b00bb]{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:100%;padding:11px 10px 11px 12px;font-size:13px;font-weight:400;line-height:1.5;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg-card);color:var(--c-text);box-shadow:0 10px 28px color-mix(in srgb,var(--c-shadow) 78%,transparent),0 2px 6px color-mix(in srgb,var(--c-shadow) 38%,transparent);transform-origin:bottom right;overflow:hidden}.toast-success[data-v-3a6b00bb],.toast-info[data-v-3a6b00bb],.toast-warning[data-v-3a6b00bb],.toast-error[data-v-3a6b00bb]{border-color:var(--c-border)}.toast-icon[data-v-3a6b00bb]{width:17px;height:17px;flex:0 0 auto;margin-top:1px}.toast-success .toast-icon[data-v-3a6b00bb]{color:var(--c-green)}.toast-info .toast-icon[data-v-3a6b00bb]{color:var(--c-blue)}.toast-warning .toast-icon[data-v-3a6b00bb]{color:var(--c-yellow)}.toast-error .toast-icon[data-v-3a6b00bb]{color:var(--c-red)}.toast-content[data-v-3a6b00bb]{min-width:0;flex:1;color:var(--c-text)}.toast-message[data-v-3a6b00bb]{white-space:pre-wrap;overflow-wrap:anywhere}.toast-action[data-v-3a6b00bb]{margin-top:7px;padding:3px 9px;font-size:12px;font-weight:500;color:var(--c-text);background:transparent;border:1px solid var(--c-border-strong);border-radius:var(--radius);cursor:pointer}.toast-action[data-v-3a6b00bb]:hover{background:var(--c-bg-hover);border-color:var(--c-text-muted)}.toast-close[data-v-3a6b00bb]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 auto;margin:-3px -3px 0 0;border:0;border-radius:var(--radius-sm);color:var(--c-text-muted);background:transparent;cursor:pointer}.toast-close[data-v-3a6b00bb]:hover{color:var(--c-text);background:var(--c-bg-hover)}.toast-progress-track[data-v-3a6b00bb]{position:absolute;right:0;bottom:0;left:0;height:2px;overflow:hidden;background:var(--c-border-light);pointer-events:none}.toast-progress-fill[data-v-3a6b00bb]{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:var(--c-text-muted);animation:toast-progress-3a6b00bb var(--toast-duration) linear forwards}.toast-success .toast-progress-fill[data-v-3a6b00bb]{background:var(--c-green)}.toast-info .toast-progress-fill[data-v-3a6b00bb]{background:var(--c-blue)}.toast-warning .toast-progress-fill[data-v-3a6b00bb]{background:var(--c-yellow)}.toast-error .toast-progress-fill[data-v-3a6b00bb]{background:var(--c-red)}.toast-progress-fill.is-paused[data-v-3a6b00bb]{animation-play-state:paused}@keyframes toast-progress-3a6b00bb{to{transform:scaleX(1)}}.toast-move[data-v-3a6b00bb]{transition:transform .42s var(--ease-out)}@media(prefers-reduced-motion:reduce){.toast-move[data-v-3a6b00bb]{transition:none}}@media(max-width:640px){.toast-container[data-v-3a6b00bb]{right:12px;bottom:12px;width:calc(100vw - 24px)}}.global-loading-bar[data-v-53dd1df4]{position:fixed;inset:0 0 auto;z-index:10000;height:2px;overflow:hidden;pointer-events:none;background:transparent}.global-loading-bar__fill[data-v-53dd1df4]{display:block;width:100%;height:100%;transform-origin:left center;background:var(--c-focus);box-shadow:0 0 6px color-mix(in srgb,var(--c-focus) 45%,transparent);transition:transform .18s var(--ease)}.welcome-bubble[data-v-5e2d026d]{position:fixed;top:62px;left:50%;z-index:10001;max-width:min(420px,calc(100vw - 32px));overflow:hidden;padding:8px 16px;transform:translate(-50%);color:var(--c-text);background:var(--c-bg-elevated);border:1px solid var(--c-border);border-radius:999px;box-shadow:0 6px 18px color-mix(in srgb,var(--c-shadow) 40%,transparent);font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.welcome-bubble-enter-active[data-v-5e2d026d],.welcome-bubble-leave-active[data-v-5e2d026d]{transition:opacity var(--motion-popover) var(--ease),transform var(--motion-popover) var(--ease)}.welcome-bubble-enter-from[data-v-5e2d026d],.welcome-bubble-leave-to[data-v-5e2d026d]{opacity:0;transform:translate(-50%,-5px)}@media(prefers-reduced-motion:reduce){.welcome-bubble-enter-active[data-v-5e2d026d],.welcome-bubble-leave-active[data-v-5e2d026d]{transition:none}}:root{--c-bg: #fff;--c-bg-page: #f4f5f7;--c-bg-card: #fff;--c-bg-hover: #eceef1;--c-bg-elevated: #fff;--c-border: #e2e5e9;--c-border-light: #e9ebee;--c-border-strong: #d4d4d4;--c-text: #171717;--c-text-secondary: #505050;--c-text-muted: #6f6f6f;--c-accent: #111;--c-accent-hover: #333;--c-accent-contrast: #fff;--c-focus: #0070f3;--c-red: #d1242f;--c-green: #3f8f5a;--c-yellow: #b54708;--c-blue: #0070f3;--c-success: #3f8f5a;--c-warning: #b54708;--c-danger: #d1242f;--c-primary: #111;--c-primary-light: #f4f4f5;--c-on-accent: #fff;--c-info-bg: #eff6ff;--c-success-bg: #f0f8f2;--c-warning-bg: #fffbeb;--c-danger-bg: #fef2f2;--c-code-bg: #f5f5f5;--c-login-glow: rgba(255, 255, 255, .72);--c-error: var(--c-danger);--c-role-protagonist: #2563eb;--c-role-main: #4f8f68;--c-role-supporting: #64748b;--c-role-minor: #94a3b8;--c-role-antagonist: #dc2626;--c-overlay: rgba(0, 0, 0, .45);--c-shadow: rgba(15, 23, 42, .12);--c-shadow-soft: rgba(15, 23, 42, .055);--chart-1: #111;--chart-2: #666;--chart-3: #8c8c8c;--chart-4: #3f8f5a;--chart-5: #b54708;--chart-6: #d1242f;--ff-body: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", Arial, sans-serif;--ff-mono: "JetBrains Mono", "Menlo", "Consolas", monospace;--sidebar-w: 200px;--global-tools-w: 220px;--radius-sm: 4px;--radius: 6px;--radius-md: 8px;--radius-lg: 10px;--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 24px;--sp-xl: 32px;--content-padding: 12px;--content-gap: 12px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--motion-control: .14s;--motion-popover: .2s;--motion-surface: .26s;--motion-page: .2s;--motion-progress: .4s;--duration: var(--motion-control);--motion-slow: var(--motion-surface);--theme-transition: .35s var(--ease)}[data-theme=dark]{--c-bg: #0f1115;--c-bg-page: #161a21;--c-bg-card: #1c2128;--c-bg-hover: #252b33;--c-bg-elevated: #22272e;--c-border: #373e47;--c-border-light: #2d333b;--c-border-strong: #484f58;--c-text: #e6edf3;--c-text-secondary: #adb6bf;--c-text-muted: #8d98a3;--c-accent: #d0d7de;--c-accent-hover: #e6edf3;--c-accent-contrast: #161a21;--c-focus: #58a6ff;--c-red: #f85149;--c-green: #65b982;--c-yellow: #d29922;--c-blue: #58a6ff;--c-success: #65b982;--c-warning: #d29922;--c-danger: #f85149;--c-primary: #d0d7de;--c-primary-light: #252b33;--c-on-accent: #161a21;--c-info-bg: #1c2d41;--c-success-bg: #1f3025;--c-warning-bg: #352b1b;--c-danger-bg: #3a211f;--c-code-bg: #161a21;--c-login-glow: rgba(255, 255, 255, .04);--c-error: var(--c-danger);--c-role-protagonist: #7f9fbd;--c-role-main: #75b58e;--c-role-supporting: #8b949e;--c-role-minor: #6e7681;--c-role-antagonist: #f85149;--c-overlay: rgba(0, 0, 0, .62);--c-shadow: rgba(0, 0, 0, .38);--c-shadow-soft: rgba(0, 0, 0, .2);--chart-1: #7f9fbd;--chart-2: #8b949e;--chart-3: #6e7681;--chart-4: #65b982;--chart-5: #d29922;--chart-6: #f85149}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;line-height:1.6;text-rendering:optimizeLegibility}body{font-family:var(--ff-body);color:var(--c-text);background:var(--c-bg);font-synthesis:none}button,input,select,textarea{font:inherit}body:has(.dialog-overlay,.drawer-overlay:not(.drawer-overlay--no-backdrop),.modal-overlay,.modal-backdrop,.chapter-drawer-overlay,.sm-drawer-overlay,.chunk-drawer-overlay,.ner-drawer-overlay,.prov-drawer-overlay,.client-drawer-overlay,.user-drawer-overlay,.proj-drawer-overlay){overflow:hidden!important;overscroll-behavior:none}body.overlay-scroll-locked{overscroll-behavior:none}body:has(.dialog-overlay,.drawer-overlay:not(.drawer-overlay--no-backdrop),.modal-overlay,.modal-backdrop,.chapter-drawer-overlay,.sm-drawer-overlay,.chunk-drawer-overlay,.ner-drawer-overlay,.prov-drawer-overlay,.client-drawer-overlay,.user-drawer-overlay,.proj-drawer-overlay) .app-layout{-webkit-user-select:none;user-select:none}.dialog-overlay,.drawer-overlay,.modal-overlay,.modal-backdrop,[class$=-drawer-overlay]{overscroll-behavior:contain}.theme-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;opacity:0;pointer-events:none;will-change:opacity;transition:opacity .26s var(--ease)}.theme-overlay.theme-overlay--on{opacity:1;pointer-events:auto}a{color:inherit;text-decoration:none}::selection{background:color-mix(in srgb,var(--c-focus) 18%,transparent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0ms!important}}*{scrollbar-width:thin;scrollbar-color:var(--c-border) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-button{display:none;width:0;height:0}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:4px;border:1px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--c-text-muted);background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}.icon-xs{width:12px;height:12px;flex-shrink:0;color:currentColor}.icon-sm{width:18px;height:18px;flex-shrink:0;color:currentColor}.icon-md{width:20px;height:20px;flex-shrink:0;color:currentColor}.icon-lg{width:24px;height:24px;flex-shrink:0;color:currentColor}.app-layout{display:flex;height:100vh;overflow:hidden;--sidebar-current-w: var(--sidebar-w)}.app-layout.sidebar-collapsed{--sidebar-current-w: 56px}.app-sidebar{width:var(--sidebar-current-w);background:var(--c-bg-card);border-right:1px solid var(--c-border-light);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:10;transition:width .34s var(--ease)}.app-main{flex:1;margin-left:var(--sidebar-current-w);min-height:0;position:relative;background:var(--c-bg-page);display:flex;flex-direction:column;overflow:hidden;transition:margin-left .34s var(--ease)}.route-motion-frame{display:flex;flex:1;min-width:0;min-height:0}.app-layout--loading .app-sidebar--loading{pointer-events:none}.app-layout--loading .app-main{position:relative}.app-global-tools--loading{position:absolute;top:0;right:0;z-index:1;display:flex;align-items:center;justify-content:flex-end;gap:4px;width:var(--global-tools-w);height:52px;padding:0 12px 0 8px;background:var(--c-bg-card);border-bottom:1px solid var(--c-border-light)}.app-shell-loading-surface{display:flex;flex:1;min-width:0;min-height:0;flex-direction:column;overflow:hidden;padding:var(--content-padding);padding-top:calc(52px + var(--content-padding))}.app-shell-loading-content{display:flex;flex:1;min-height:0;flex-direction:column;gap:var(--content-gap)}.app-shell-loading-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);min-height:52px}.app-shell-loading-title,.app-shell-loading-actions{display:flex;align-items:center;gap:var(--sp-sm)}.app-shell-loading-title{min-width:min(320px,55%);flex-direction:column;align-items:flex-start}.app-shell-loading-card{display:flex;flex:1;min-height:0;flex-direction:column;gap:var(--sp-sm);overflow:hidden;padding:var(--content-padding);background:var(--c-bg-card);border:1px solid var(--c-border-light);border-radius:var(--radius-md)}.app-shell-loading-status{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-sm);min-height:24px;color:var(--c-text-muted);font-size:12px}.app-shell-loading-status .spinner{width:14px;height:14px;border-width:2px}.app-shell-skeleton{display:block;flex:0 0 auto;background:linear-gradient(90deg,var(--c-bg-hover) 25%,color-mix(in srgb,var(--c-bg-hover) 58%,var(--c-bg-card)) 50%,var(--c-bg-hover) 75%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shellSkeletonPulse 1.5s var(--ease) infinite}.app-shell-skeleton--context{height:28px;margin:8px 12px}.app-shell-skeleton--group-label{width:64px;height:10px}.app-shell-skeleton--short{width:48px}.app-shell-skeleton--nav-item{width:calc(100% - 24px);height:30px;margin:2px 12px}.app-shell-skeleton--collapse{width:calc(100% - 24px);height:30px;margin:0 12px}.app-shell-skeleton--tool{width:30px;height:30px;border-radius:50%}.app-shell-skeleton--avatar{width:72px;height:30px;border-radius:99px}.app-shell-skeleton--title{width:min(220px,42vw);height:18px}.app-shell-skeleton--subtitle{width:min(320px,52vw);height:11px}.app-shell-skeleton--action{width:84px;height:30px}.app-shell-skeleton--section{width:180px;height:18px;margin-bottom:4px}.app-shell-skeleton--table-head{width:100%;height:28px}.app-shell-skeleton--row{width:100%;height:42px;border-bottom:1px solid var(--c-border-light);border-radius:0}@keyframes shellSkeletonPulse{0%{background-position:100% 0}to{background-position:-100% 0}}@media(max-width:640px){.app-shell-loading-surface{padding:var(--sp-sm);padding-top:calc(52px + var(--sp-sm))}.app-shell-loading-header{align-items:flex-start;flex-direction:column}.app-shell-loading-actions{align-self:stretch}.app-shell-skeleton--action{flex:1}}.sidebar-context-slot{flex:0 0 46px;min-height:46px;border-bottom:1px solid var(--c-border-light)}.sidebar-context-switcher{display:block;padding:6px 12px}.sidebar-context-switcher .project-context-trigger{width:100%;max-width:none;justify-content:space-between;min-height:28px;padding:2px 6px;font-size:11px;border-color:var(--c-border-light)}.sidebar-brand{height:52px;display:flex;flex-direction:column;justify-content:center;padding:0 var(--sp-md);font-size:14px;font-weight:600;letter-spacing:0;color:var(--c-text);text-decoration:none;border-bottom:1px solid var(--c-border-light)}.sidebar-brand:hover{color:var(--c-text);text-decoration:none}.sidebar-brand-main{display:flex;align-items:center;gap:8px;width:100%}.sidebar-brand-copy{display:flex;align-items:baseline;gap:7px;min-width:0;overflow:hidden;white-space:nowrap;transition:max-width .26s var(--ease),opacity .18s var(--ease),transform .26s var(--ease)}.sidebar-brand-mark{width:24px;height:24px;flex:0 0 24px;display:block;border-radius:6px;opacity:1;transform:translate(0);transition:width .26s var(--ease),flex-basis .26s var(--ease),opacity .18s var(--ease),transform .26s var(--ease)}.sidebar-brand-name{min-width:0;max-width:44px;overflow:hidden;white-space:nowrap;font-size:14px}.sidebar-brand-slogan{color:var(--c-text-muted);font-size:11px;font-weight:400}.sidebar-collapse-trigger{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;margin-left:auto;padding:0;color:var(--c-text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.sidebar-collapse-trigger:hover{color:var(--c-text);background:var(--c-bg-hover);border-color:var(--c-border-light)}.sidebar-collapse-trigger:active{transform:scale(.96)}.sidebar-collapse-footer{flex:0 0 auto;padding:8px 12px 12px;border-top:1px solid var(--c-border-light)}.sidebar-collapse-footer .sidebar-collapse-trigger{width:100%;height:32px;justify-content:flex-start;gap:8px;margin-left:0;padding:0 8px}.sidebar-collapse-label{overflow:hidden;white-space:nowrap;font-size:12px;font-weight:400;transition:max-width .26s var(--ease),opacity .18s var(--ease),transform .26s var(--ease)}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--sp-xs) 0}.nav-group-label{position:relative;font-size:11px;font-weight:400;letter-spacing:0;color:var(--c-text-muted);padding:var(--sp-md) var(--sp-md) var(--sp-xs);max-height:40px;overflow:hidden;transition:max-height .26s var(--ease),padding .26s var(--ease),opacity .18s var(--ease)}.nav-group-title{display:block;padding-right:24px}.nav-group-toggle{position:absolute;right:10px;bottom:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:inherit;background:transparent;border:0;border-radius:var(--radius-sm);font:inherit;cursor:pointer}.nav-group-toggle-icon{width:13px;height:13px;flex:0 0 13px;opacity:.7;transition:transform .2s var(--ease),opacity var(--duration) var(--ease)}.nav-group-label.is-collapsed .nav-group-toggle-icon{transform:rotate(-90deg)}.nav-group-toggle:hover,.nav-group-toggle:focus-visible{color:var(--c-text);background:var(--c-bg-hover)}.nav-group-toggle:hover .nav-group-toggle-icon{opacity:1}.nav-group-label:first-child{padding-top:var(--sp-sm)}.nav-item{display:flex;align-items:center;gap:var(--sp-sm);margin:0 var(--sp-sm);padding:0 var(--sp-sm);font-size:13px;font-weight:400;line-height:1.4;color:var(--c-text-secondary);border-radius:var(--radius);min-height:36px;cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease),transform var(--duration) var(--ease)}.nav-item>.icon-sm{color:var(--c-text-muted);transition:color var(--duration) var(--ease)}.nav-item:hover{color:var(--c-text);background:var(--c-border-light);text-decoration:none}.nav-item:hover>.icon-sm,.nav-item.router-link-active>.icon-sm{color:currentColor}.nav-item.router-link-active{color:var(--c-blue);font-weight:500;background:color-mix(in srgb,var(--c-blue) 10%,var(--c-bg-card))}.app-sidebar.is-collapsed .sidebar-brand{padding:0 16px}.app-sidebar.is-collapsed .sidebar-brand-main{justify-content:flex-start;gap:0}.app-sidebar.is-collapsed .sidebar-brand-copy{max-width:0;opacity:0;transform:translate(-4px)}.app-sidebar.is-collapsed .sidebar-brand-name{max-width:0}.app-sidebar.is-collapsed .sidebar-context-switcher{padding:6px 10px}.app-sidebar.is-collapsed .sidebar-context-slot{flex-basis:46px;min-height:46px}.app-sidebar.is-collapsed .sidebar-context-switcher .project-context-trigger{width:34px;min-height:32px;height:32px;gap:0;justify-content:center;padding:0;margin-inline:auto}.app-sidebar.is-collapsed .sidebar-context-switcher .project-context-trigger-label{max-width:0;opacity:0}.app-sidebar.is-collapsed .sidebar-context-switcher .project-context-trigger-mark{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--c-text);font-size:13px;font-weight:600}.app-sidebar.is-collapsed .sidebar-context-switcher .project-context-trigger>.icon-xs{display:none}.app-sidebar.is-collapsed .sidebar-brand-mark{width:24px;flex-basis:24px;opacity:1;transform:translateY(0)}.app-sidebar.is-collapsed .sidebar-collapse-footer{padding:8px 12px 12px}.app-sidebar.is-collapsed .sidebar-collapse-footer .sidebar-collapse-trigger{justify-content:flex-start;gap:8px;padding:0 8px}.app-sidebar.is-collapsed .sidebar-collapse-label{max-width:0;opacity:0;transform:translate(-4px)}.app-sidebar.is-collapsed .nav-group-label{max-height:0;padding-top:0;padding-bottom:0;overflow:hidden;opacity:0}.app-sidebar.is-collapsed .nav-subgroup-label{max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-width:0;opacity:0;overflow:hidden}.nav-item-label{min-width:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:1;transform:translate(0);transition:max-width .26s var(--ease),opacity .18s var(--ease),transform .26s var(--ease)}.app-sidebar.is-collapsed .nav-item-label{max-width:0;opacity:0;transform:translate(-4px)}.app-sidebar.is-collapsed .nav-item{position:relative;justify-content:center;gap:0;margin:0 8px;padding:0}.app-sidebar.is-collapsed .nav-item .nav-badge{position:absolute;top:2px;right:1px;margin-left:0}.page-topbar{position:sticky;top:0;z-index:5;background:var(--c-bg-card);padding:0 var(--content-padding);padding-right:var(--global-tools-w);height:52px;display:flex;flex-direction:column;justify-content:center}@media(max-width:640px){:root{--global-tools-w: 130px}.page-topbar{padding-right:var(--global-tools-w)}}.page-topbar h1{font-size:15px;font-weight:600;letter-spacing:0;line-height:1.3}.page-topbar p{font-size:12px;color:var(--c-text-muted);margin-top:1px}.page-topbar.flex{flex-direction:row;align-items:center}.page-topbar.flex>div:first-child{flex:1}.page-topbar .header-actions,.page-topbar .page-header-actions{display:flex;align-items:center;gap:var(--sp-sm);flex-shrink:0}.page-topbar .header-actions>.btn,.page-topbar .page-header-actions>.btn{min-height:30px;height:30px;padding-top:4px;padding-bottom:4px;line-height:1}.page-container{flex:1;min-height:0;width:100%;padding:var(--content-padding) var(--content-padding) var(--sp-sm);display:flex;flex-direction:column;gap:var(--content-gap)}.page-container>.card{margin-bottom:0}.page-container>.card.card-fill{flex:1;min-height:0;display:flex;flex-direction:column}.page-container>.card.card-fill>.table-container{flex:1;min-height:0;overflow-y:auto;padding:0 var(--content-padding) var(--sp-sm)}.card{background:var(--c-bg-card);border:1px solid var(--c-border-light);border-radius:var(--radius-md);padding:var(--content-padding);box-shadow:0 1px 2px var(--c-shadow-soft);margin-bottom:var(--content-gap);transition:border-color var(--duration) var(--ease),background-color var(--duration) var(--ease)}.card:hover{border-color:var(--c-border)}.page-container>.card:last-child,.page-container>.card{margin-bottom:0}.card.no-padding{padding:0}.card-header{font-size:14px;font-weight:600;color:var(--c-text);margin-bottom:var(--sp-md);padding-bottom:var(--sp-sm);border-bottom:1px solid var(--c-border-light);display:flex;justify-content:space-between;align-items:center}.card-header-copy{min-width:0;display:flex;align-items:baseline;gap:var(--sp-sm)}.card-header-copy--stacked{flex-direction:column;align-items:flex-start;gap:1px}.card-title{min-width:0;margin:0;font-size:13px;font-weight:600;line-height:1.35}.card-meta,.card-header-meta{min-width:0;color:var(--c-text-muted);font-size:11px;font-weight:400;line-height:1.35;white-space:nowrap}.card-header-meta{display:inline-flex;align-items:center;margin-left:auto}.card-header-actions{display:inline-flex;align-items:center;gap:var(--sp-sm);flex:0 0 auto;margin-left:auto}.card-header-actions>.btn{min-height:28px;height:28px}.card-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);min-height:38px;padding:6px var(--content-padding);border-bottom:1px solid var(--c-border-light);background:color-mix(in srgb,var(--c-bg-page) 14%,var(--c-bg-card))}.card-toolbar-note{min-width:0;overflow:hidden;color:var(--c-text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.card-toolbar-actions{display:inline-flex;align-items:center;gap:var(--sp-sm);flex:0 0 auto}.card-toolbar-controls{display:flex;align-items:center;gap:var(--sp-sm);flex:1 1 auto;min-width:0}@media(max-width:720px){.card-toolbar{flex-wrap:wrap}.card-toolbar-controls{width:100%}}.card.no-padding>.card-header{margin:0;padding:var(--sp-sm) var(--content-padding);border-bottom:1px solid var(--c-border-light);background:color-mix(in srgb,var(--c-bg-page) 18%,var(--c-bg-card))}.card-header .header-actions{display:flex;gap:var(--sp-sm);align-items:center}.card-body{padding:var(--content-padding)}.card.no-padding>.card-body{padding:var(--content-padding)}.card-section{border-top:1px solid var(--c-border-light);padding:var(--content-padding)}.card-section:first-child{border-top:none}.card-section-title{font-size:13px;font-weight:600;color:var(--c-text);margin-bottom:var(--sp-sm)}.card-footer{display:flex;align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--content-padding);border-top:1px solid var(--c-border-light)}.table-container{padding:var(--sp-sm) var(--content-padding)}.pagination-container{padding:4px var(--content-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-md);flex-wrap:wrap;border-top:1px solid var(--c-border-light);font-size:12px;color:var(--c-text-muted);flex-shrink:0}.pagination-size{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--c-text-muted)}.pagination-size-label{white-space:nowrap}.pagination-size-menu>.btn{min-width:42px;min-height:26px;height:26px;padding:3px 7px;justify-content:center;color:var(--c-text-secondary);background:var(--c-bg-card);border-color:var(--c-border);border-radius:var(--radius-sm);font-size:12px;font-variant-numeric:tabular-nums}.pagination-size-menu>.btn:hover:not(:disabled),.pagination-size-menu>.btn.active{color:var(--c-text);background:var(--c-bg-hover);border-color:var(--c-border-strong)}.pagination-size-menu .action-menu-panel{width:42px!important;min-width:42px!important;box-sizing:border-box;padding:2px}.pagination-size-option{justify-content:center;min-height:26px;padding:4px 0!important;font-variant-numeric:tabular-nums}.pagination-size-option--active{color:var(--c-text);background:var(--c-bg-hover)!important}.pagination-left{display:flex;align-items:center;gap:var(--sp-md);white-space:nowrap}.pagination-nav{display:flex;align-items:center;gap:4px}.pagination-nav--simple{display:none}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 6px;font-size:13px;line-height:1;font-family:inherit;font-variant-numeric:tabular-nums;color:var(--c-text-secondary);background:transparent;border:1px solid var(--c-border);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration) var(--ease),border-color var(--duration) var(--ease),background var(--duration) var(--ease)}.pagination-btn:hover:not(:disabled):not(.active){color:var(--c-text);border-color:var(--c-border-strong);background:var(--c-bg-hover);transform:none}.pagination-btn.active{color:var(--c-accent-contrast);border-color:var(--c-accent);background:var(--c-accent);cursor:default}.pagination-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--c-focus) 35%,transparent);outline-offset:2px}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 2px;font-size:12px;color:var(--c-text-muted);-webkit-user-select:none;user-select:none}.pagination-summary{min-width:82px;color:var(--c-text-secondary);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}@media(max-width:640px){.pagination-container{flex-wrap:nowrap;gap:var(--sp-sm)}.pagination-left{gap:var(--sp-sm)}.pagination-nav--full{display:none}.pagination-nav--simple{display:flex}}.panel{background:var(--c-bg-card);border:1px solid var(--c-border-light);border-radius:var(--radius-md);padding:var(--sp-md);box-shadow:0 1px 2px var(--c-shadow-soft);margin-bottom:var(--sp-md);transition:border-color var(--duration) var(--ease),background-color var(--duration) var(--ease)}.panel:hover{border-color:var(--c-border)}.panel-title{font-size:13px;font-weight:600;color:var(--c-text);margin-bottom:var(--sp-md);padding-bottom:var(--sp-sm);border-bottom:1px solid var(--c-border-light);display:flex;justify-content:space-between;align-items:center}.btn{display:inline-flex;align-items:center;gap:var(--sp-xs);min-height:32px;padding:6px 12px;font-size:13px;font-family:inherit;font-weight:500;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg-card);color:var(--c-text);cursor:pointer;transition:border-color var(--duration) var(--ease),background var(--duration) var(--ease),color var(--duration) var(--ease),opacity var(--duration) var(--ease),transform var(--duration) var(--ease);white-space:nowrap;line-height:1.5}.btn:hover{border-color:var(--c-text-secondary);background:var(--c-bg-hover);opacity:.9}.btn:hover:not(:disabled){transform:none}.btn:active{opacity:.8;transform:scale(.99)}.btn-primary{background:var(--c-accent);color:var(--c-accent-contrast);border-color:var(--c-accent)}.btn-primary:hover{background:var(--c-accent-hover);border-color:var(--c-accent-hover);color:var(--c-accent-contrast)}.btn-danger{color:var(--c-red);border-color:color-mix(in srgb,var(--c-red) 30%,var(--c-border));background:color-mix(in srgb,var(--c-red) 6%,var(--c-bg-card))}.btn-danger:hover{color:var(--c-on-accent);background:var(--c-red);border-color:var(--c-red)}.btn-sm{min-height:28px;padding:4px 10px;font-size:12px}.btn-xs{min-height:24px;padding:2px 8px;font-size:11px;line-height:1.3}.btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--content-gap);margin-bottom:0}.stat-card{background:var(--c-bg-card);border:1px solid var(--c-border-light);border-radius:var(--radius-md);padding:var(--content-padding);box-shadow:0 1px 2px var(--c-shadow-soft);display:flex;flex-direction:column;gap:var(--sp-sm);transition:border-color var(--duration) var(--ease),background-color var(--duration) var(--ease)}.stat-card:hover{border-color:var(--c-border)}.stat-card .label{font-size:12px;font-weight:500;color:var(--c-text-muted)}.stat-card .value{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:0;line-height:1;color:var(--c-text)}.badge{display:inline-block;padding:1px 7px;font-size:11px;font-weight:500;border:1px solid;border-radius:var(--radius-sm);line-height:1.45;white-space:nowrap}.badge-running{color:var(--c-blue);border-color:color-mix(in srgb,var(--c-blue) 28%,var(--c-border));background:color-mix(in srgb,var(--c-blue) 7%,var(--c-bg-card))}.badge-done{color:var(--c-green);border-color:color-mix(in srgb,var(--c-green) 28%,var(--c-border));background:color-mix(in srgb,var(--c-green) 7%,var(--c-bg-card))}.badge-error{color:var(--c-red);border-color:color-mix(in srgb,var(--c-red) 28%,var(--c-border));background:color-mix(in srgb,var(--c-red) 7%,var(--c-bg-card))}.badge-pending{color:var(--c-text-muted);border-color:var(--c-border);background:transparent}.badge-muted{color:var(--c-text-muted);border-color:var(--c-border-light);background:var(--c-bg-hover);opacity:.75}.badge-cancelled{color:var(--c-yellow);border-color:color-mix(in srgb,var(--c-yellow) 28%,var(--c-border));background:color-mix(in srgb,var(--c-yellow) 7%,var(--c-bg-card))}.badge-interrupted{color:var(--c-text-muted);border-color:var(--c-border);background:transparent}.log-viewer{background:var(--c-code-bg);color:var(--c-text-secondary);border:1px solid var(--c-border);border-radius:var(--radius-md);font-family:var(--ff-mono);font-size:12px;line-height:1.8;padding:var(--sp-md);max-height:400px;overflow-y:auto;scroll-behavior:smooth}.log-line{white-space:pre-wrap;word-break:break-all}.log-line.level-info{color:var(--c-text-secondary)}.log-line.level-progress{color:var(--c-blue)}.log-line.level-warn{color:var(--c-warning)}.log-line.level-error{color:var(--c-danger)}.log-line.level-done{color:var(--c-success)}.log-viewer::-webkit-scrollbar{width:6px}.log-viewer::-webkit-scrollbar-track{background:var(--c-code-bg)}.log-viewer::-webkit-scrollbar-thumb{background:var(--c-border-strong);border-radius:3px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:left;padding:10px var(--sp-md);border-bottom:1px solid var(--c-border-light)}.data-table thead th{padding:6px var(--sp-md)}.data-table th{font-weight:500;font-size:12px;color:var(--c-text-muted);background:var(--c-bg-page);border-bottom-color:var(--c-border-light)}.table-sticky-head thead th{position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--c-bg-page) 22%,var(--c-bg-card));box-shadow:0 1px 0 var(--c-border-light);white-space:nowrap}.data-table tbody tr{transition:background var(--duration) var(--ease)}.data-table tbody tr:hover{background:color-mix(in srgb,var(--c-bg-hover) 52%,var(--c-bg-card))}.table-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;width:100%;white-space:nowrap}.table-actions>.btn{flex:0 0 auto}.table-actions .action-menu>.btn{min-width:64px;justify-content:center}.form-row{display:flex;gap:var(--sp-sm);align-items:center;margin-bottom:var(--sp-md);flex-wrap:wrap}.form-label{font-size:13px;font-weight:500;color:var(--c-text-secondary);min-width:80px}.form-input{padding:6px 12px;font-size:13px;font-family:inherit;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg-card);color:var(--c-text);outline:none;height:32px;transition:border-color var(--duration) var(--ease),background-color var(--duration) var(--ease);line-height:1.5}.form-input:focus{border-color:color-mix(in srgb,var(--c-focus) 36%,var(--c-border-strong));background-color:var(--c-bg-card)}.form-input:focus-visible{outline:none}:where(button,a,input,select,textarea):focus-visible{outline:2px solid color-mix(in srgb,var(--c-focus) 62%,transparent);outline-offset:2px}.form-input::placeholder{color:var(--c-text-muted)}input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:inline-grid;width:14px;height:14px;flex:0 0 14px;place-content:center;align-self:center;margin:0;border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-bg-card);cursor:pointer;transition:background-color var(--motion-control) var(--ease),border-color var(--motion-control) var(--ease)}input[type=radio]:before{width:7px;height:4px;border:solid var(--c-accent-contrast);border-width:0 0 1.5px 1.5px;content:"";transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform var(--motion-control) var(--ease)}input[type=radio]:checked{border-color:var(--c-accent);background:var(--c-accent)}input[type=radio]:checked:before{transform:translateY(-1px) rotate(-45deg) scale(1)}input[type=radio]:hover:not(:disabled){border-color:var(--c-accent)}input[type=radio]:disabled{cursor:not-allowed;opacity:.55}input[type=radio]:focus-visible{outline:2px solid color-mix(in srgb,var(--c-focus) 35%,transparent);outline-offset:2px}select.form-input{cursor:pointer}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;min-height:32px;padding:6px 30px 6px 10px;border:1px solid var(--c-border);border-radius:var(--radius);background-color:var(--c-bg-card);background-image:linear-gradient(45deg,transparent 50%,var(--c-text-muted) 50%),linear-gradient(135deg,var(--c-text-muted) 50%,transparent 50%);background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;color:var(--c-text);font:13px/1.5 var(--ff-body);outline:none;cursor:pointer;transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),background-color var(--duration) var(--ease)}select:hover:not(:disabled){border-color:var(--c-border-strong)}select:focus{border-color:color-mix(in srgb,var(--c-focus) 36%,var(--c-border-strong));box-shadow:none}select:disabled{color:var(--c-text-muted);background-color:var(--c-bg-hover);cursor:not-allowed;opacity:.72}select option{color:var(--c-text);background:var(--c-bg-card)}select option:checked{color:var(--c-text);background:var(--c-bg-hover)}[data-theme=dark] select{color-scheme:dark}textarea.form-input{resize:vertical;height:auto;line-height:1.6}.tabs{display:flex;gap:0;margin-bottom:var(--sp-md)}.card-header--tabs{padding-bottom:0;border-bottom:none}.card-header--tabs .tabs{margin-bottom:0}.tab-btn{position:relative;padding:8px 0;margin-right:var(--sp-lg);font-size:13px;font-family:inherit;font-weight:500;color:var(--c-text-muted);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color var(--duration) var(--ease),border-color var(--duration) var(--ease)}.tab-btn:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--c-accent);transform:scaleX(0);transform-origin:left center;transition:transform .26s var(--ease)}.tab-btn:hover{color:var(--c-text-secondary)}.tab-btn.active{color:var(--c-text);border-bottom-color:transparent}.tab-btn.active:after{transform:scaleX(1)}.tab-stats{margin-left:auto;font-size:12px;color:var(--c-text-muted);white-space:nowrap;flex-shrink:0;align-self:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--content-padding);color:var(--c-text-muted);font-size:13px;line-height:1.6;flex:1;min-height:200px}.empty-state-icon{font-size:32px;margin-bottom:var(--sp-sm);opacity:.4}.empty-state-title{font-size:14px;font-weight:500;color:var(--c-text-secondary);margin-bottom:var(--sp-xs)}.empty-state-hint{font-size:12px;color:var(--c-text-muted);margin-top:0;margin-bottom:0}.empty-state-action{margin-top:var(--sp-md)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-sm);padding:var(--content-padding);flex:1;min-height:200px;animation:fadeIn var(--motion-slow) var(--ease) both}.loading-state .spinner{width:24px;height:24px;border:2px solid var(--c-border);border-top-color:var(--c-text-secondary);border-radius:50%;animation:spin .6s linear infinite}.loading-state .spinner-text{font-size:12px;color:var(--c-text-muted)}.spinner-inline{display:inline-block;width:14px;height:14px;border:2px solid var(--c-border);border-top-color:var(--c-text-secondary);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.progress-bar-track{background:var(--c-border-light);height:4px;border-radius:2px;overflow:hidden}.progress-bar-fill{background:var(--c-blue);height:100%;border-radius:2px;transition:width .4s var(--ease)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--c-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-box{background:var(--c-bg-card);border:1px solid var(--c-border);border-radius:var(--radius-md);padding:20px;min-width:320px;max-width:520px;box-shadow:0 20px 48px var(--c-shadow),0 4px 12px color-mix(in srgb,var(--c-shadow) 55%,transparent)}.dialog-title{font-size:14px;font-weight:600;margin-bottom:var(--sp-xs)}.dialog-body{font-size:13px;color:var(--c-text-secondary);margin-bottom:20px;line-height:1.7}.dialog-actions{display:flex;gap:var(--sp-sm);justify-content:flex-end}.full-page{display:flex;flex-direction:column;flex:1;min-height:0}.page-container.page-scroll{flex:1;min-height:0;overflow-y:auto}.fade-in-up{animation:fadeInUp var(--motion-slow) var(--ease) both}.text-muted{color:var(--c-text-muted)}.text-sm{font-size:12px}.text-mono{font-family:var(--ff-mono)}.mt-4{margin-top:var(--sp-md)}.mt-6{margin-top:var(--sp-xl)}.mb-4{margin-bottom:var(--sp-md)}.gap-2{gap:var(--sp-sm)}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.flex-1{flex:1}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.initial-loading{min-height:100vh;display:grid;place-items:center;background:var(--c-bg-page);color:var(--c-text-secondary);font:13px var(--ff-body)}
