:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#044926;--primary-600:#007339;--primary-700:#03371d;--accent:#b9ff38;--accent-600:#a6ec22;--accent-soft:#eafbcd;--green-bright:#58df20;--teal:#00d084;--bg-app:#f3f7f4;--surface:#fff;--surface-2:#f4faf4;--surface-3:#eef4ef;--text:#0d1f15;--text-secondary:#4f6d8b;--text-muted:#7d9789;--text-on-accent:#03371d;--text-on-dark:#eafff0;--success:#257e00;--danger:#f60e54;--warning:#dc6409;--info:#277493;--subject-finetuned:#0b7a45;--subject-base:#b07d00;--subject-commercial:#2a78d6;--class-exact:#0b5e34;--class-set:#4caf78;--class-partial:#e3a008;--class-none:#d5dcd7;--class-pending:#eef1ef;--border:#e1ebe4;--border-strong:#cfded4;--border-subtle:#e8f0ea;--term-bg:#0b140f;--term-text:#c7e8d3;--shadow-xs:0 1px 2px #0449260f;--shadow-sm:0 2px 8px #04492612;--shadow-md:0 6px 18px #0449261a;--shadow-card:0 6px 22px #04492614;--shadow-lg:0 18px 50px #04492629;--ring:0 0 0 3px #04492624;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:9999px;--font-ui:"Urbanist", system-ui, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace;--transition-fast:.14s ease;--transition-base:.24s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-ui);background-color:var(--bg-app);color:var(--text);min-height:100vh;line-height:1.55}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(60% 50% at 100% 0,#b9ff381a 0%,#0000 55%),radial-gradient(50% 45% at 0 100%,#0073390d 0%,#0000 55%);position:fixed;inset:0}#root{z-index:1;position:relative}h1,h2,h3,h4{letter-spacing:-.02em;color:var(--text);font-weight:800;line-height:1.15}h1{font-size:clamp(1.8rem,4vw,2.6rem)}h2{font-size:clamp(1.3rem,3vw,1.7rem)}h3{font-size:1.15rem}a{color:var(--primary-600);text-decoration:none}code,pre,.mono{font-family:var(--font-mono)}button{font-family:inherit}.icon{stroke-width:1.8px;vertical-align:-.18em;flex-shrink:0;width:18px;height:18px}.icon-sm{width:15px;height:15px}.icon-xs{width:12px;height:12px}.icon-lg{width:22px;height:22px}.animate-fade-in{animation:.35s fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.spin{transform-origin:50%;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-shell>main{flex:auto}.app-header{align-items:center;gap:clamp(var(--space-2), 1.4vw, var(--space-4));padding:var(--space-3) clamp(var(--space-3), 2.4vw, var(--space-6));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:100;background:#fffffff7;display:flex;position:sticky;top:0}.header-logo{align-items:center;gap:var(--space-3);flex-shrink:1;min-width:0;display:flex}.header-logo-text{min-width:0;overflow:hidden}.header-logo-icon{background:var(--primary);width:38px;height:38px;color:var(--accent);box-shadow:var(--shadow-sm);border-radius:11px;flex-shrink:0;place-items:center;display:grid}.header-logo-icon .icon{width:21px;height:21px}.header-title{letter-spacing:-.02em;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.9rem,.74rem + .62vw,1.16rem);font-weight:800;overflow:hidden}.header-title .accent{color:var(--primary-600)}.header-subtitle{color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.56rem,.48rem + .42vw,.7rem);font-weight:700;overflow:hidden}.app-nav{gap:var(--space-1);margin-left:var(--space-3);flex-shrink:0;display:flex}.header-spacer{margin-left:auto}.nav-link{align-items:center;gap:var(--space-2);padding:var(--space-2) clamp(var(--space-2), .9vw, var(--space-3));border-radius:var(--radius-full);color:var(--text-secondary);white-space:nowrap;transition:all var(--transition-fast);border:1px solid #0000;font-size:clamp(.76rem,.82vw,.86rem);font-weight:700;display:inline-flex}.nav-link,.mobile-nav-link{-webkit-user-select:none;user-select:none}.nav-link:hover{color:var(--primary);background:var(--surface-2)}.nav-link.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.header-pill{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:7px;padding:5px 12px;font-size:.74rem;font-weight:700;display:inline-flex}.header-pill.live{background:var(--accent-soft);border-color:var(--accent-600);color:var(--primary)}.header-pill .status-dot{width:7px;height:7px}.lang-switch{border:1px solid var(--border);border-radius:var(--radius-full);display:inline-flex;overflow:hidden}.lang-switch button{background:var(--surface);color:var(--text-muted);cursor:pointer;border:none;padding:5px 9px;font-size:.72rem;font-weight:800}.lang-switch button.on{background:var(--primary);color:#fff}.user-chip{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);align-items:center;gap:6px;padding:4px 6px 4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.icon-round{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;place-items:center;display:inline-grid}.icon-round:hover{color:var(--danger);border-color:var(--danger)}.menu-toggle{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:42px;height:42px;color:var(--text);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:none}.mobile-nav-backdrop{z-index:90;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity var(--transition-base), visibility var(--transition-base);background:#0d1f1566;position:fixed;inset:0}.mobile-nav-backdrop.open{opacity:1;visibility:visible}.mobile-nav{z-index:95;gap:var(--space-1);width:min(82vw,320px);height:100dvh;padding:76px var(--space-4) var(--space-6);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);transition:transform var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%)}.mobile-nav.open{transform:translate(0)}.mobile-nav-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--text-secondary);font-size:1rem;font-weight:700;display:flex}.mobile-nav-link.active{background:var(--primary);color:#fff}.app-header>*{flex-shrink:0}.app-header>.header-logo{flex-shrink:1}.app-header.c1 .header-subtitle,.app-header.c2 .header-pill .pill-label{display:none}.app-header.c2 .header-pill{padding:6px 9px}.app-header.c2 .user-chip{padding-left:8px}.app-header.c3 .app-nav .nav-link:not(.active) .nav-label{display:none}.app-header.c3 .app-nav .nav-link{padding:8px 10px}.app-header.c4 .app-nav .nav-label,.app-header.c5 .app-nav{display:none}.app-header.c5 .menu-toggle{display:inline-flex}.app-header.c5 .hide-folded{display:none!important}@media (width>=1101px){.app-header:not(.c5)~.mobile-nav,.app-header:not(.c5)~.mobile-nav-backdrop{display:none}}@media (width<=1100px){.app-nav{display:none}.menu-toggle{display:inline-flex}.hide-folded{display:none!important}}.page{width:100%;max-width:1320px;padding:var(--space-8) var(--space-6);margin:0 auto}.page-wide{max-width:1560px}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-title{font-size:1.7rem;font-weight:800}.page-subtitle{color:var(--text-secondary);max-width:80ch;margin-top:2px;font-size:.95rem}.page-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--primary-600);align-items:center;gap:6px;margin-bottom:4px;font-size:.72rem;font-weight:800;display:inline-flex}.grid-2{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid-auto{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.stack{gap:var(--space-5);flex-direction:column;display:flex}.stack-sm{gap:var(--space-3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);display:flex}.row-wrap{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.spacer{margin-left:auto}.legal{line-height:1.6}.legal ul{flex-direction:column;gap:6px;padding-left:1.2em;display:flex}.legal a{color:var(--primary-600);text-decoration:underline}.muted{color:var(--text-muted)}.small{font-size:.8rem}.xs{font-size:.72rem}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.page{padding:var(--space-5) var(--space-4)}}@media (width<=600px){.header-subtitle{display:none}.app-header .lang-switch button{padding:5px 7px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-card);min-width:0}.card-flat{box-shadow:none}.card-pad-sm{padding:var(--space-4) var(--space-5)}.card-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.card-title{color:var(--text);letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;font-weight:800}.card-icon{color:var(--primary-600);display:inline-flex}.card-subtitle{color:var(--text-muted);font-size:.78rem}.card-dark{background:linear-gradient(150deg, var(--primary), #02160b);color:var(--text-on-dark);border:none}.card-dark .card-title,.card-dark h2,.card-dark h3{color:#fff}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:10px var(--space-5);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);border:1px solid #0000;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-on-accent);box-shadow:0 2px 10px #b9ff3866}.btn-primary:hover:not(:disabled){background:var(--accent-600);transform:translateY(-1px)}.btn-dark{background:var(--primary);color:#fff}.btn-dark:hover:not(:disabled){background:var(--primary-700)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-ghost{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 30%, transparent);background:0 0}.btn-danger-ghost:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 8%, transparent)}.btn-sm{padding:6px var(--space-3);border-radius:10px;font-size:.8rem}.btn-xs{border-radius:8px;gap:4px;padding:3px 8px;font-size:.72rem}.btn-full{width:100%}.btn-icon{border:1px solid var(--border-strong);background:var(--surface);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--surface-2)}.btn-icon.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.field{margin-bottom:var(--space-4);min-width:0}.field-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.72rem;font-weight:800;display:block}.field-hint{color:var(--text-muted);margin-top:4px;font-size:.74rem}.field-input,.form-select{width:100%;padding:9px var(--space-3);background:var(--surface);border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-ui);transition:all var(--transition-fast);border-radius:10px;font-size:.88rem}.field-input:focus,.form-select:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.field-input::placeholder{color:var(--text-muted)}.field-input.mono{font-family:var(--font-mono);font-size:.8rem}textarea.field-input{resize:vertical;min-height:90px}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f6d8b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:15px;padding-right:34px}.form-select.sm,.field-input.sm{border-radius:8px;padding:5px 30px 5px 10px;font-size:.8rem}.field-input.sm{padding-right:10px}.password-input{width:100%;position:relative}.password-input .field-input,.password-input .field-input.sm{padding-right:40px}.password-toggle{width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:0;border-radius:7px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.password-input.sm .password-toggle{width:26px;height:26px;right:3px}.password-toggle:hover{color:var(--text);background:var(--surface-2,#0000000d)}.password-toggle:focus-visible{box-shadow:var(--ring);color:var(--primary);outline:none}.passkey-list{gap:8px;display:grid}.passkey-item{align-items:center;gap:var(--space-3);border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:10px 12px;display:flex}.passkey-item .card-icon{flex:none}.otp-input{align-items:center;gap:8px;width:100%;display:flex}.otp-input input{text-align:center;background:var(--surface);border:1px solid var(--border-strong);min-width:0;max-width:52px;height:56px;color:var(--text);font-family:var(--font-mono);caret-color:var(--primary);transition:all var(--transition-fast);border-radius:10px;flex:1 1 0;padding:0;font-size:1.4rem;font-weight:600}.otp-input input:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.otp-input input.filled{border-color:var(--primary-600);background:var(--surface-2)}.otp-input input:disabled{opacity:.6}.otp-input.invalid input:not(:focus){border-color:var(--danger)}.otp-sep{background:var(--border-strong);border-radius:2px;flex:0 0 10px;height:2px}.link-button{color:var(--primary-600);cursor:pointer;text-underline-offset:2px;transition:text-decoration-color var(--transition-fast);background:0 0;border:0;padding:0;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.link-button:hover,.link-button:focus-visible{outline:none;text-decoration-color:currentColor}.form-section-title{align-items:center;gap:var(--space-2);color:var(--primary-600);text-transform:uppercase;letter-spacing:.08em;margin:var(--space-5) 0 var(--space-3);font-size:.72rem;font-weight:800;display:flex}.form-section-title:after{content:"";background:var(--border);flex:1;height:1px}.checkbox{cursor:pointer;align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:inline-flex}.checkbox input{accent-color:var(--primary);width:15px;height:15px}input[type=range]{accent-color:var(--primary)}.toggle-switch{background:var(--border-strong);border-radius:var(--radius-full);width:40px;height:22px;transition:background var(--transition-fast);cursor:pointer;border:none;flex-shrink:0;position:relative}.toggle-switch.on{background:var(--primary)}.toggle-switch:after{content:"";width:16px;height:16px;transition:transform var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle-switch.on:after{transform:translate(18px)}.chip-toggle{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:6px 11px;font-size:.78rem;font-weight:700;display:inline-flex}.chip-toggle:hover{color:var(--primary);border-color:var(--primary)}.chip-toggle.on{background:var(--primary);color:#fff;border-color:#0000}.chip-toggle.on.lime{background:var(--accent);color:var(--text-on-accent)}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:4px;padding:3px;display:inline-flex}.segmented .chip-toggle{background:0 0;border-color:#0000}.segmented .chip-toggle.on{background:var(--primary);color:#fff}.metrics-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-xs);transition:all var(--transition-base);min-width:0;position:relative;overflow:hidden}.metric-card:before{content:"";background:var(--accent-color,var(--primary));width:3px;position:absolute;inset:0 auto 0 0}.metric-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.metric-label{align-items:center;gap:var(--space-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:var(--space-2);font-size:.68rem;font-weight:800;display:flex}.metric-label .icon{color:var(--accent-color,var(--primary))}.metric-value{font-size:1.65rem;font-weight:800;font-family:var(--font-mono);color:var(--text);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;line-height:1.05;overflow:hidden}.metric-value .unit{color:var(--text-muted);margin-left:3px;font-size:.9rem;font-weight:700}.metric-trend{color:var(--text-muted);margin-top:var(--space-2);text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.delta-pos{color:var(--success);font-weight:800}.delta-neg{color:var(--danger);font-weight:800}.hero-number{font-family:var(--font-mono);letter-spacing:-.03em;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;line-height:1}.status-badge{border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);align-items:center;gap:6px;padding:2px 10px;font-size:.68rem;font-weight:800;display:inline-flex}.status-badge.running{color:var(--success);background:#00d08424;border-color:#00d08459}.status-badge.running .status-dot{animation:1.2s ease-in-out infinite pulse}.status-badge.completed{background:var(--accent-soft);border-color:var(--accent-600);color:var(--primary)}.status-badge.failed{color:var(--danger);background:#f60e541a;border-color:#f60e544d}.status-badge.aborted,.status-badge.cancelled{color:var(--text-secondary)}.status-badge.queued,.status-badge.paused{color:#5b5fe0;background:#6366f11a;border-color:#6366f159}.status-badge.waiting{color:var(--info);background:#2774931a;border-color:#27749359}.status-badge.waiting .status-dot{animation:2.4s ease-in-out infinite pulse}.status-badge.submitting,.status-badge.submitted{color:var(--info);background:#2774931a;border-color:#27749359}.status-badge.expired,.status-badge.orphaned,.status-badge.needs_execution,.status-badge.partial{color:var(--warning);background:#dc640914;border-color:#dc64094d}.status-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.6)}}.badge-soft{border-radius:var(--radius-full);background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:4px;padding:1px 8px;font-size:.68rem;font-weight:800;display:inline-flex}.badge-mono{font-family:var(--font-mono);font-weight:700}.subject-badge{border-radius:var(--radius-full);white-space:nowrap;border:1px solid;align-items:center;gap:5px;padding:1px 8px 1px 6px;font-size:.68rem;font-weight:800;display:inline-flex}.subject-badge.finetuned{color:var(--subject-finetuned);border-color:color-mix(in srgb, var(--subject-finetuned) 35%, transparent);background:color-mix(in srgb, var(--subject-finetuned) 8%, transparent)}.subject-badge.base{color:#7a5800;border-color:color-mix(in srgb, var(--subject-base) 40%, transparent);background:color-mix(in srgb, var(--subject-base) 9%, transparent)}.subject-badge.commercial{color:#1d5fae;border-color:color-mix(in srgb, var(--subject-commercial) 35%, transparent);background:color-mix(in srgb, var(--subject-commercial) 8%, transparent)}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.legend-line{border-top:2px solid;flex-shrink:0;width:18px;height:0;display:inline-block}.class-bar{background:var(--class-pending);border-radius:5px;gap:2px;height:10px;display:flex;overflow:hidden}.class-bar>span{height:100%;display:block}.class-bar .exact{background:var(--class-exact)}.class-bar .set{background:var(--class-set)}.class-bar .partial{background:var(--class-partial)}.class-bar .none{background:var(--class-none)}.class-legend{gap:var(--space-3);color:var(--text-secondary);flex-wrap:wrap;font-size:.72rem;display:flex}.class-legend span{align-items:center;gap:5px;display:inline-flex}.class-chip{text-transform:uppercase;border-radius:6px;align-items:center;gap:4px;padding:0 7px;font-size:.68rem;font-weight:800;display:inline-flex}.class-chip.exact{background:var(--class-exact);color:#fff}.class-chip.set{background:var(--class-set);color:#06341c}.class-chip.partial{background:var(--class-partial);color:#3d2a00}.class-chip.none{background:var(--class-none);color:#3b4a42}.class-chip.pending{background:var(--class-pending);color:var(--text-muted);border:1px dashed var(--border-strong)}.progress-track{background:var(--surface-3);border-radius:var(--radius-full);height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary-600), var(--green-bright));border-radius:inherit;height:100%;transition:width .4s}.progress-fill.failed{background:var(--danger)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:auto}.table-wrap.tall{max-height:560px}.table{border-collapse:collapse;width:100%;font-size:.82rem}.table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);background:var(--surface);z-index:1;white-space:nowrap;padding:8px 10px;font-size:.66rem;font-weight:800;position:sticky;top:0}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--primary)}.table td{border-bottom:1px solid var(--border-subtle);color:var(--text);vertical-align:top;padding:8px 10px}.table tr:hover td{background:var(--surface-2)}.table tr.clickable{cursor:pointer}.table td.num,.table th.num{text-align:right;font-family:var(--font-mono);white-space:nowrap}.table td.best{font-weight:800;background:color-mix(in srgb, var(--accent) 22%, transparent)!important}.table tr.diff td{background:color-mix(in srgb, var(--warning) 6%, transparent)}.table .sticky-col{background:var(--surface);z-index:1;position:sticky;left:0}.table-toolbar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.run-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.run-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-xs);min-width:0;color:inherit;flex-direction:column;gap:10px;display:flex;position:relative;overflow:hidden}.run-item:before{content:"";background:var(--status-color,var(--text-muted));width:4px;position:absolute;top:0;bottom:0;left:0}.run-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.run-item.selected{border-color:var(--primary);box-shadow:var(--ring)}.run-item-header{align-items:center;gap:var(--space-2);display:flex}.run-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:.98rem;font-weight:800;overflow:hidden}.run-id{font-family:var(--font-mono);color:var(--primary-600);font-size:.7rem;font-weight:700}.run-meta{flex-wrap:wrap;gap:6px;display:flex}.run-scores{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.run-score{background:var(--surface-2);border-radius:10px;min-width:0;padding:6px 10px}.run-score--empty{color:var(--text-muted);border:1px dashed var(--border-strong);background:0 0;align-items:center;gap:8px;padding:14px 12px;font-size:.8rem;display:flex}.run-score-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.6rem;font-weight:800}.run-score-value{font-family:var(--font-mono);font-size:1.02rem;font-weight:800}.tabs{border-bottom:1px solid var(--border);margin-bottom:var(--space-5);gap:4px;display:flex;overflow-x:auto}.tab{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:10px 14px;font-size:.86rem;font-weight:700;display:inline-flex}.tab:hover{color:var(--primary)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab .count{background:var(--surface-3);color:var(--text-muted);border-radius:99px;padding:0 6px;font-size:.66rem;font-weight:800}.config-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0;display:grid;overflow:hidden}.config-item{background:var(--surface);min-width:0;box-shadow:1px 0 0 var(--border), 0 1px 0 var(--border);padding:8px 12px}.config-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:.6rem;font-weight:800}.config-value{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;overflow:hidden}.chart-card{flex-direction:column;min-width:0;display:flex}.chart-card .card-header{margin-bottom:var(--space-3)}.chart-desc{color:var(--text-secondary);margin:-4px 0 var(--space-3);font-size:.8rem}.chart-toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.chart-body{width:100%;min-height:200px;position:relative}.chart-body .js-plotly-plot,.chart-body .plot-container{width:100%!important}.chart-body.brushable .nsewdrag{cursor:crosshair!important}.brush-band{pointer-events:none;background:#0b7a4529;border:1px solid #0b7a45b3;border-radius:3px;width:26px;margin-left:-13px;position:absolute}.range-chips{margin:-4px 0 var(--space-3);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.range-chip{color:var(--text-primary,inherit);background:#0b7a451a;border:1px solid #0b7a4559;border-radius:999px;align-items:center;gap:6px;padding:2px 4px 2px 9px;font-size:.74rem;display:inline-flex}.range-chip strong{font-weight:700}.range-chip span{font-family:var(--font-mono)}.range-chip button{width:18px;height:18px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.range-chip button:hover{color:#fff;background:#b42318}.compare-top{gap:var(--space-5);margin-bottom:var(--space-5);grid-template-columns:minmax(240px,1fr) minmax(0,3.2fr);align-items:start;display:grid}@media (width<=1100px){.compare-top{grid-template-columns:minmax(0,1fr)}}.chart-controls{gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.chart-controls .field{margin:0}.chart-controls .field-label{white-space:nowrap;align-items:center;gap:4px;margin:0;display:inline-flex}.subject-picker{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:420px;min-width:0;display:flex}.subject-picker-select{flex:260px;min-width:0}.chart-loading{color:var(--text-muted);place-items:center;font-size:.8rem;display:grid;position:absolute;inset:0}.chart-card.fullscreen{z-index:1200;box-shadow:var(--shadow-lg);position:fixed;inset:16px;overflow:auto}.fullscreen-backdrop{z-index:1150;background:#0d1f1573;position:fixed;inset:0}.menu-wrap{display:inline-flex;position:relative}.menu{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:220px;box-shadow:var(--shadow-lg);padding:6px;animation:.16s slide-in;position:absolute;top:calc(100% + 6px);right:0}.menu-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.82rem;font-weight:600;display:flex}.menu-item:hover:not(:disabled){background:var(--surface-2);color:var(--primary)}.menu-item:disabled{opacity:.4;cursor:not-allowed}.menu-item .hint{color:var(--text-muted);margin-left:auto;font-size:.68rem}.menu-sep{background:var(--border);height:1px;margin:4px 2px}.menu-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:6px 10px 2px;font-size:.62rem;font-weight:800}.multiselect{min-width:0;position:relative}.multiselect-trigger{text-align:left;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;width:100%;min-height:38px;color:var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f6d8b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:15px;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 30px 5px 8px;font-size:.82rem;display:flex}.multiselect-trigger:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.ms-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:99px;align-items:center;gap:4px;max-width:220px;padding:1px 4px 1px 8px;font-size:.74rem;font-weight:700;display:inline-flex}.ms-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ms-chip button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:1px;display:inline-flex}.multiselect-panel{z-index:70;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:260px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;right:0}.multiselect-options{max-height:300px;margin-top:6px;overflow-y:auto}.ms-option{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:.82rem;display:flex}.ms-option:hover{background:var(--surface-2)}.ms-option input{accent-color:var(--primary)}.ms-option .sub{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.68rem}.ms-group{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:8px 8px 2px;font-size:.62rem;font-weight:800}.builder{gap:var(--space-5);grid-template-columns:330px minmax(0,1fr);align-items:start;display:grid}.builder-panel{max-height:calc(100vh - 100px);position:sticky;top:84px;overflow-y:auto}.builder-panel .field{margin-bottom:var(--space-3)}@media (width<=1100px){.builder{grid-template-columns:minmax(0,1fr)}.builder-panel{max-height:none;position:static}}.type-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.type-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-secondary);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;font-size:.64rem;font-weight:700;line-height:1.15;display:flex}.type-btn:hover{border-color:var(--primary);color:var(--primary)}.type-btn.on{background:var(--primary);color:#fff;border-color:#0000}.type-btn .icon{width:20px;height:20px}.filter-row{grid-template-columns:1fr 76px 1fr 28px;align-items:center;gap:6px;margin-bottom:6px;display:grid}.preset-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));display:grid}.preset-card{text-align:left;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:all var(--transition-fast);align-items:flex-start;gap:10px;display:flex}.preset-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.preset-card .icon-box{background:var(--accent-soft);width:34px;height:34px;color:var(--primary);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.preset-card strong{margin-bottom:2px;font-size:.86rem;display:block}.preset-card p{color:var(--text-muted);font-size:.74rem;line-height:1.35}.q-list{flex-direction:column;gap:6px;display:flex}.answer-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface);min-width:0}.answer-card.correct{border-left:4px solid var(--class-exact)}.answer-card.partial{border-left:4px solid var(--class-partial)}.answer-card.wrong{border-left:4px solid var(--class-none)}.code-block{background:var(--term-bg);color:var(--term-text);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;border-radius:10px;max-height:320px;padding:10px 12px;font-size:.74rem;line-height:1.5;overflow:auto}.code-block.light{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.code-block .kw{color:var(--accent);font-weight:700}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-muted)}.empty-state .icon{opacity:.4;width:42px;height:42px;margin-bottom:var(--space-3)}.empty-state-title{color:var(--text);margin-bottom:var(--space-2);font-size:1.1rem;font-weight:800}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 37%, var(--surface-2) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.3s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);align-items:flex-start;gap:10px;font-size:.82rem;display:flex}.note-info{color:var(--info);background:#27749314;border:1px solid #27749340}.note-warn{color:var(--warning);background:#dc640914;border:1px solid #dc640940}.note-ok{background:var(--accent-soft);border:1px solid var(--accent-600);color:var(--primary)}.kbd{font-family:var(--font-mono);background:var(--surface-3);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:.72rem}.divider{background:var(--border);height:1px;margin:var(--space-4) 0}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.dropzone.over,.dropzone:hover{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 5%, transparent);color:var(--primary)}.secret-box{background:var(--term-bg);color:var(--accent);font-family:var(--font-mono);word-break:break-all;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:.8rem;display:flex}.provider-card{gap:var(--space-3);flex-direction:column;display:flex}.btn-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.btn-link:hover{color:var(--primary)}.batch-box{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);flex-direction:column;display:flex}.provider-logo{color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:.9rem;font-weight:900;display:grid}.toast-stack{bottom:var(--space-6);right:var(--space-6);z-index:1300;gap:var(--space-2);flex-direction:column;max-width:400px;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:.3s cubic-bezier(.34,1.56,.64,1) slide-in;display:flex}.toast.success{border-left:4px solid var(--success)}.toast.error{border-left:4px solid var(--danger)}.toast.info{border-left:4px solid var(--info)}.toast-title{font-size:.88rem;font-weight:800}.toast-msg{color:var(--text-secondary);word-break:break-word;margin-top:2px;font-size:.8rem}.toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px}.dialog-backdrop{z-index:1250;padding:var(--space-6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0d1f1573;place-items:center;animation:.18s fade-in;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(460px,100%);padding:var(--space-6);box-shadow:var(--shadow-lg);max-height:90vh;animation:.28s cubic-bezier(.34,1.56,.64,1) slide-in;overflow-y:auto}.dialog--wide{width:min(760px,100%)}.dialog--xl{width:min(1100px,100%)}.dialog-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.dialog-icon{background:var(--accent-soft);border-radius:var(--radius-md);width:40px;height:40px;color:var(--primary);flex-shrink:0;place-items:center;display:grid}.dialog-icon--danger{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.dialog-title{font-size:1.05rem;font-weight:800}.dialog-message{color:var(--text-secondary);margin-bottom:var(--space-4);font-size:.9rem;line-height:1.55}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.dialog--wide .dialog-actions,.dialog--xl .dialog-actions{bottom:calc(-1 * var(--space-6));background:var(--surface);padding:var(--space-3) 0 var(--space-4);border-top:1px solid var(--border);z-index:2;position:sticky}.login-shell{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh;display:grid}.login-hero{background:linear-gradient(150deg, var(--primary), #02160b);color:var(--text-on-dark);flex-direction:column;justify-content:space-between;padding:56px;display:flex;position:relative;overflow:hidden}.login-hero h1{color:#fff;font-size:clamp(2rem,3.4vw,3rem)}.login-hero h1 .accent{color:var(--accent)}.login-hero p{color:#b9d9c6;max-width:46ch;margin-top:var(--space-4);font-size:1.02rem}.login-feature{color:#d7efe0;align-items:flex-start;gap:12px;font-size:.9rem;display:flex}.login-feature .icon{color:var(--accent);margin-top:2px}.login-panel{padding:var(--space-8);place-items:center;display:grid}.login-card{width:min(380px,100%)}@media (width<=900px){.login-shell{grid-template-columns:1fr}.login-hero{padding:32px}}.heat-legend{color:var(--text-muted);align-items:center;gap:6px;font-size:.7rem;display:flex}.heat-legend .ramp{border-radius:4px;width:120px;height:8px}
