:root{--color-primary:#2f79f6;--color-primary-hover:#2563eb;--color-primary-active:#1d4ed8;--color-primary-soft:#2f79f614;--color-primary-soft-strong:#2f79f629;--color-primary-gradient:linear-gradient(135deg, #3b8af8 0%, #2f79f6 100%);--color-primary-gradient-strong:linear-gradient(165deg, #2f79f6 0%, #2563eb 55%, #1d4ed8 100%);--sidebar-gradient:linear-gradient(165deg, #2f79f6 0%, #2563eb 55%, #1d4ed8 100%);--sidebar-shadow:0 18px 40px #2f79f652;--sidebar-active-text:#1d4ed8;--color-success:#16a34a;--color-warning:#f59e0b;--color-danger:#ef4444;--color-info:#64748b;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--text-primary:var(--gray-900);--text-secondary:var(--gray-500);--text-tertiary:var(--gray-400);--text-inverse:#fff;--bg-page:#f4f6fa;--bg-elevated:#fff;--bg-elevated-translucent:#ffffffe0;--bg-elevated-strong:#ffffffeb;--bg-muted:var(--gray-50);--bg-muted-strong:var(--gray-100);--bg-glass:#ffffffd9;--bg-glass-header:#f8fafc80;--bg-chip:var(--gray-100);--bg-row-muted:#fafafa;--bg-row-hover:#eff6ff;--bg-holiday:#fffdf5;--bg-tag-info:#e6f1fc;--bg-tag-warning:#fcf6e7;--color-success-soft:#ecfdf5;--color-danger-soft:#fef2f2;--color-warning-soft:#fffbeb;--color-warning-soft-2:#fff7ed;--color-info-soft:#eff6ff;--color-info-soft-strong:#ecf5ff;--alert-row-1:#fffbeb;--alert-row-2:#fff7ed;--alert-row-3:#fef2f2;--banner-warning-bg:#fff8f1;--banner-warning-border:#fed7aa;--bg-page-gradient:radial-gradient(1200px 600px at 12% -10%, #2f79f62e, transparent 55%), radial-gradient(900px 480px at 100% 0%, #2f79f61f, transparent 50%), linear-gradient(165deg, #eef2f7 0%, #f7f8fb 42%, #f0f4f8 100%);--bg-auth-gradient:radial-gradient(900px 520px at 8% 12%, #3b82f624, transparent 55%), radial-gradient(760px 480px at 92% 18%, #2f79f61c, transparent 52%), linear-gradient(165deg, #f4f6fa 0%, #f8fafc 48%, #f1f4f8 100%);--bg-auth-blob-a:radial-gradient(circle at 30% 30%, #2f79f629, transparent 62%);--bg-auth-blob-b:radial-gradient(circle at 70% 40%, #3b82f61f, transparent 60%);--border-base:var(--gray-200);--border-light:#e2e8f0d9;--border-strong:var(--gray-300);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:26px;--radius-pill:999px;--shadow-sm:0 2px 6px #0f172a0a;--shadow-md:0 6px 16px #0f172a0f;--shadow-lg:0 16px 48px #0f172a14;--shadow-xl:0 24px 60px #0f172a1a;--shadow-primary:0 14px 28px #2f79f647;--shadow-sidebar:var(--sidebar-shadow);--page-pad-x:clamp(12px, 3vw, 24px);--page-pad-y:clamp(12px, 2.5vw, 20px);--card-radius:clamp(14px, 2vw, 22px);--content-gap:clamp(10px, 2vw, 16px);--el-color-primary:var(--color-primary);--el-color-primary-light-3:#2563eb;--el-color-primary-light-5:#3b8af8;--el-color-primary-light-7:#6ba8ff;--el-color-primary-light-8:#a3c9ff;--el-color-primary-light-9:#dbeafe;--el-color-primary-dark-2:var(--color-primary-hover);--el-color-success:var(--color-success);--el-color-warning:var(--color-warning);--el-color-danger:var(--color-danger);--el-color-error:var(--color-danger);--el-color-info:var(--color-info);--el-text-color-primary:var(--text-primary);--el-text-color-regular:var(--gray-700);--el-text-color-secondary:var(--text-secondary);--el-text-color-placeholder:var(--text-tertiary);--el-text-color-disabled:var(--gray-300);--el-border-color:var(--border-base);--el-border-color-light:var(--gray-200);--el-border-color-lighter:var(--gray-100);--el-border-color-extra-light:var(--gray-50);--el-border-color-dark:var(--gray-300);--el-border-color-darker:var(--gray-400);--el-bg-color:var(--bg-elevated);--el-bg-color-page:var(--bg-page);--el-bg-color-overlay:var(--bg-elevated);--el-fill-color-blank:var(--bg-elevated);--el-fill-color:var(--bg-muted-strong);--el-fill-color-light:var(--bg-muted);--el-fill-color-lighter:var(--gray-50);--el-fill-color-extra-light:#fbfcfd;--el-fill-color-dark:var(--gray-200);--el-fill-color-darker:var(--gray-300);--el-border-radius-base:var(--radius-md);--el-border-radius-small:var(--radius-sm);--el-border-radius-round:var(--radius-lg)}html.dark{--color-primary:#818cf8;--color-primary-hover:#a5b4fc;--color-primary-active:#6366f1;--color-primary-soft:#818cf829;--color-primary-soft-strong:#818cf847;--color-primary-gradient:linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);--color-primary-gradient-strong:linear-gradient(165deg, #4f46e5 0%, #4338ca 55%, #312e81 100%);--sidebar-gradient:linear-gradient(165deg, #4f46e5 0%, #4338ca 55%, #312e81 100%);--sidebar-shadow:0 18px 40px #4f46e561;--sidebar-active-text:#4338ca;--gray-50:#1e293b;--gray-100:#1e2533;--gray-200:#2a3344;--gray-300:#3a4456;--gray-400:#6b7587;--gray-500:#94a3b8;--gray-600:#cbd5e1;--gray-700:#e2e8f0;--gray-800:#f1f5f9;--gray-900:#f8fafc;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-inverse:#0f172a;--bg-page:#0b1220;--bg-elevated:#131a2a;--bg-elevated-translucent:#131a2ac7;--bg-elevated-strong:#131a2aeb;--bg-muted:#1a2235;--bg-muted-strong:#232c40;--bg-glass:#131a2ac7;--bg-glass-header:#1a2235a6;--bg-chip:#232c40;--bg-row-muted:#1a2235;--bg-row-hover:#818cf824;--bg-holiday:#f59e0b1a;--bg-tag-info:#818cf82e;--bg-tag-warning:#f59e0b24;--color-success-soft:#16a34a29;--color-danger-soft:#ef444429;--color-warning-soft:#f59e0b29;--color-warning-soft-2:#f59e0b38;--color-info-soft:#818cf829;--color-info-soft-strong:#818cf83d;--alert-row-1:#f59e0b1f;--alert-row-2:#f59e0b2e;--alert-row-3:#ef44441f;--banner-warning-bg:#f59e0b1a;--banner-warning-border:#f59e0b59;--bg-page-gradient:radial-gradient(1200px 600px at 12% -10%, #6366f133, transparent 55%), radial-gradient(900px 480px at 100% 0%, #4f46e51f, transparent 50%), linear-gradient(165deg, #0b1220 0%, #0f172a 50%, #0a111d 100%);--bg-auth-gradient:radial-gradient(900px 520px at 8% 12%, #6366f129, transparent 55%), radial-gradient(760px 480px at 92% 18%, #4f46e51f, transparent 52%), linear-gradient(165deg, #0b1220 0%, #0f172a 50%, #0a111d 100%);--bg-auth-blob-a:radial-gradient(circle at 30% 30%, #6366f138, transparent 62%);--bg-auth-blob-b:radial-gradient(circle at 70% 40%, #818cf829, transparent 60%);--border-base:#2a3344;--border-light:#2a3344d9;--border-strong:#3a4456;--shadow-sm:0 2px 6px #0000004d;--shadow-md:0 6px 16px #00000059;--shadow-lg:0 16px 48px #00000073;--shadow-xl:0 24px 60px #00000080;--shadow-primary:0 14px 28px #6366f161;--shadow-sidebar:var(--sidebar-shadow);--el-color-primary-light-3:#6366f1;--el-color-primary-light-5:#818cf8;--el-color-primary-light-7:#a5b4fc;--el-color-primary-light-8:#c7d2fe;--el-color-primary-light-9:#e0e7ff;--el-color-primary:var(--color-primary);--el-color-primary-dark-2:var(--color-primary-hover)}:root{--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.55 var(--sans);letter-spacing:.1px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text-primary);background:var(--bg-page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s,color .25s}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{background:var(--bg-page);color:var(--text-primary);margin:0}h1,h2,h3,h4{font-family:var(--heading);color:var(--text-primary);margin:0;font-weight:600}p{margin:0}code{font-family:var(--mono);border-radius:var(--radius-sm);background:var(--bg-muted-strong);color:var(--text-primary);padding:2px 6px;font-size:.92em}#app{box-sizing:border-box;width:100%;min-height:100dvh;margin:0}html.dark .el-card{background-color:var(--bg-elevated);border-color:var(--border-base);color:var(--text-primary)}html.dark .el-table{--el-table-bg-color:var(--bg-elevated);--el-table-tr-bg-color:var(--bg-elevated);--el-table-header-bg-color:var(--bg-muted-strong);--el-table-row-hover-bg-color:var(--bg-row-hover);--el-table-border-color:var(--border-base);--el-table-text-color:var(--text-primary);--el-table-header-text-color:var(--text-secondary)}html.dark .el-dialog{background:var(--bg-elevated);border:1px solid var(--border-base)}html.dark .el-popper.is-light{background:var(--bg-elevated);border-color:var(--border-base)}:root{--page-pad-x:clamp(12px, 3vw, 24px);--page-pad-y:clamp(12px, 2.5vw, 20px);--card-radius:clamp(14px, 2vw, 22px);--content-gap:clamp(10px, 2vw, 16px)}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table-scroll :deep(.el-table){min-width:640px}:is(.annotation-table-wrap :deep(.annotation-table),.project-stats-table-wrap :deep(.project-stats-table)){min-width:0!important}@media (width<=640px){.table-scroll :deep(.el-table){min-width:520px}}.auth-container{min-height:100dvh;padding:var(--space-7) var(--space-5);box-sizing:border-box;background:var(--bg-auth-gradient);flex-direction:column;justify-content:center;align-items:center;transition:background .25s;display:flex;position:relative;overflow:hidden}.auth-blob{filter:blur(.5px);pointer-events:none;border-radius:50%;position:absolute}.auth-blob--a{background:var(--bg-auth-blob-a);opacity:.9;width:min(520px,90vw);height:min(520px,90vw);bottom:max(-240px,-22vh);left:max(-220px,-18vw)}.auth-blob--b{background:var(--bg-auth-blob-b);opacity:.85;width:min(420px,75vw);height:min(420px,75vw);top:max(-200px,-18vh);right:max(-160px,-14vw)}.auth-title{z-index:1;text-align:center;margin-bottom:var(--space-6);max-width:520px;position:relative}.auth-title h1{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:clamp(22px,2.6vw,30px);font-weight:700;line-height:1.25}.auth-subtitle{color:var(--text-secondary);margin:10px 0 0;font-size:15px;font-weight:500}.auth-card{z-index:1;border-radius:var(--radius-2xl);border:1px solid var(--border-light);background:var(--bg-elevated-strong);-webkit-backdrop-filter:blur(14px);width:min(440px,100%);box-shadow:var(--shadow-xl), inset 0 1px 0 #fff9;padding:28px 32px 26px;position:relative}.auth-card .el-card__body{padding:0}.auth-logo-wrapper{margin-bottom:var(--space-7);justify-content:center;display:flex}.auth-logo-box{border-radius:var(--radius-2xl);background:linear-gradient(165deg, var(--bg-elevated) 0%, var(--bg-muted) 100%);border:1px solid var(--border-light);width:88px;height:88px;box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff80;justify-content:center;align-items:center;display:flex}.auth-logo-img{object-fit:contain;width:72px;height:72px;display:block}.auth-input .el-input__wrapper{border-radius:var(--radius-lg);background:var(--bg-muted);box-shadow:none;border:1px solid var(--border-light);padding:10px var(--space-3);transition:border-color .2s,box-shadow .2s}.auth-input .el-input__wrapper.is-focus{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-soft)}.auth-submit-btn{border-radius:var(--radius-lg);width:100%;height:46px;margin-top:var(--space-2);background:var(--color-primary-gradient);box-shadow:var(--shadow-primary);border:none;font-size:15px;font-weight:600}.auth-switch{text-align:center;margin-top:var(--space-5);font-size:14px}.auth-switch a{color:var(--color-primary);font-weight:500;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-app-download{margin-top:var(--space-4);text-align:center}.auth-app-download-link{color:var(--text-secondary);align-items:center;gap:6px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s;display:inline-flex}.auth-app-download-link:hover{color:var(--color-primary)}.auth-app-download-icon{font-size:16px}.auth-footer{gap:10px var(--space-4);margin-top:var(--space-7);color:var(--text-tertiary);flex-wrap:wrap;justify-content:space-between;font-size:12px;display:flex}.auth-footer a{color:var(--text-secondary);font-weight:500;text-decoration:none}html.dark .auth-card{box-shadow:var(--shadow-xl)}html.dark .auth-logo-box{box-shadow:var(--shadow-md)}
