@font-face{font-family:JetBrains Mono;src:url(fonts/JetBrainsMono-Regular.woff2) format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:JetBrains Mono;src:url(fonts/JetBrainsMono-Bold.woff2) format('woff2');font-style:normal;font-weight:600 900;font-display:swap}
:root{color-scheme:light;--bg:#f5f7fa;--surface:#fff;--text:#18212f;--muted:#526071;--line:#c6ced8;--control:#65758a;--accent:#174bae;--accent-bg:#eaf1ff;--focus:#954400;--danger:#a42628;--on-accent:#fff}
:root[data-theme=dark]{color-scheme:dark;--bg:#111923;--surface:#182330;--text:#f0f4fa;--muted:#b8c5d6;--line:#465366;--control:#8295ad;--accent:#9ec4ff;--accent-bg:#253b5a;--focus:#ffcb85;--danger:#ffb4ab;--on-accent:#111923}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#111923;--surface:#182330;--text:#f0f4fa;--muted:#b8c5d6;--line:#465366;--control:#8295ad;--accent:#9ec4ff;--accent-bg:#253b5a;--focus:#ffcb85;--danger:#ffb4ab;--on-accent:#111923}}
*{box-sizing:border-box}html{scroll-padding-top:1.5rem}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 'JetBrains Mono',Consolas,monospace;font-variant-ligatures:none}a{color:var(--accent);text-underline-offset:.2em}h1,h2,h3{font-family:inherit;letter-spacing:-.045em;line-height:1.25;color:var(--text)}h1{font-size:clamp(1.55rem,3.5vw,2.1rem);margin:0 0 .6rem}h2{font-size:1.1rem;margin:0 0 .9rem}p{margin:.5rem 0 1rem}strong{font-weight:700}.hint,small{color:var(--muted)}small{display:block;font-size:.8rem;line-height:1.65}button,input,select,textarea,.btn,.form-control{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--control);border-radius:4px;padding:.6rem .75rem;min-height:44px;box-shadow:none}button,.btn{cursor:pointer;font-weight:700}button:hover,.btn:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--text)}button:disabled{cursor:not-allowed;opacity:.65}input:focus,select:focus,.form-control:focus{background:var(--surface);color:var(--text);border-color:var(--accent);box-shadow:none}:focus-visible{outline:3px solid var(--focus)!important;outline-offset:3px}label{display:block;font-weight:700;margin:.8rem 0 .35rem}input:not([type=checkbox]):not([type=radio]),select{width:100%}input[type=checkbox],input[type=radio]{min-height:0;width:1.15rem;height:1.15rem;accent-color:var(--accent);vertical-align:middle;margin-right:.5rem}code{color:inherit;font:inherit}::selection{background:var(--accent);color:var(--on-accent)}[hidden],.hidden{display:none!important}.skip{position:absolute;left:1rem;top:-8rem;padding:1rem;background:var(--surface);z-index:999}.skip:focus{top:1rem}.primary,.workspace-link,.btn-primary,.btn-jupyter{background:var(--accent)!important;color:var(--on-accent)!important;border:1px solid var(--accent);font-weight:700;text-decoration:none}.primary:hover,.workspace-link:hover,.btn-primary:hover,.btn-jupyter:hover{filter:brightness(.94)}
.lab-header{background:var(--surface);border-bottom:1px solid var(--line);padding:.9rem max(1.2rem,calc((100vw - 1440px)/2));display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap}.lab-brand{margin-right:auto;display:flex;gap:.8rem;align-items:center;color:var(--text);text-decoration:none;font-weight:700;letter-spacing:.04em}.brand-mark{width:34px;height:34px;border:2px solid var(--accent);color:var(--accent);display:grid;place-items:center;font-size:20px;border-radius:5px}.lab-header nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.lab-header a{font-size:.85rem}.theme-control{display:flex;gap:.55rem;align-items:center}.theme-control label{margin:0;font-size:.8rem}.theme-control select{width:auto;font-size:.8rem}.lab-main{max-width:1440px;margin:auto;padding:2rem 1.25rem 5rem}.eyebrow{font-size:.75rem;letter-spacing:.09em;color:var(--accent);font-weight:700;margin-bottom:.55rem}.page-intro{max-width:64rem}.toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:1.4rem 0}.workspace-link{display:inline-block;padding:.6rem .85rem;border-radius:4px}.toolbar small{margin-left:auto}.summary{padding:.8rem 1rem;border:1px solid var(--line);background:var(--surface);font-size:.85rem}.filters{display:grid;grid-template-columns:1.6fr 1fr 1.2fr;gap:1rem;margin:1.4rem 0 .6rem}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:5px;margin-top:1rem}table{width:100%;border-collapse:collapse;background:var(--surface)}th,td{text-align:left;padding:1rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.75rem;color:var(--muted);background:var(--bg);font-weight:700}td{font-size:.875rem}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--accent-bg)}td strong{overflow-wrap:anywhere}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.actions form{margin:0}.actions button{font-size:.78rem}.actions form>button{margin-top:0}.forms{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.lab-main section{margin-top:1.5rem;padding:1.35rem;background:var(--surface);border:1px solid var(--line);border-radius:5px}form>button{margin-top:1rem}.notice{border-left:4px solid var(--accent);padding:1rem;background:var(--surface)}details{margin-top:1.5rem;border-bottom:1px solid var(--line);padding-bottom:1rem}details>summary{cursor:pointer;font-weight:700;padding:.6rem 0;color:var(--accent)}.server-status{display:block;font-size:.85rem;font-weight:700;padding:.25rem .5rem;border:1px solid var(--control);border-radius:3px;background:var(--bg);margin-bottom:.4rem;white-space:nowrap}.server-status[data-state=running]{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}.server-status[data-state=pending]{border-style:dashed}.activity{display:block;font-size:.8rem}.activity[data-state=active]{color:var(--accent)}.activity[data-state=active]:before{content:'● '}.candidate-count{color:var(--accent);margin-top:.35rem}.candidate-list{list-style:none;margin:.7rem 0;padding:0;display:grid;gap:.65rem}.candidate-list li{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.85rem;border:1px solid var(--line);border-radius:4px;background:var(--bg)}.candidate-list button{flex-shrink:0}.identity-intro{border-left:3px solid var(--accent);padding-left:1rem;margin:1rem 0}.inline-confirm{padding:1rem;background:var(--bg);border:1px solid var(--control);border-radius:4px;margin:1rem 0}.inline-confirm label{font-size:.875rem;margin:0}.account-note{font-size:.875rem;color:var(--muted)}.back-link{display:inline-block;font-size:.85rem;margin:0 0 .7rem}.lab-footer{color:var(--muted);font-size:.75rem;padding-top:1.5rem}.login-shell{max-width:500px;margin:4rem auto;padding:0 1.25rem}.login-shell form,.hub-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1.5rem}.login-shell .auth-form-header,.login-shell .auth-form-body{background:none;border:0;padding:0;color:var(--text)}.login-shell #login_submit{margin-top:1.5rem;width:100%}.login_error,.alert-danger{color:var(--danger);background:var(--surface);border-color:var(--danger)}.hub-content{max-width:1000px;margin:2.5rem auto;padding:0 1.25rem}.hub-content .container{max-width:100%;padding:0}.hub-content .text-center{text-align:left!important}.hub-content .btn{margin:0 .5rem .75rem 0}.hub-content .visually-hidden{position:static!important;width:auto!important;height:auto!important;clip:auto!important;margin-bottom:1.5rem!important;overflow:visible!important}.hub-content .table{color:var(--text);--bs-table-bg:var(--surface);--bs-table-color:var(--text);--bs-table-striped-bg:var(--bg);--bs-table-striped-color:var(--text)}.progress{background:var(--line)}.progress-bar{background:var(--accent);color:var(--on-accent)}.lab-error{max-width:60rem;margin:1rem auto;padding:1rem;border:2px solid var(--danger);background:var(--surface);color:var(--danger)}.lab-error:empty{display:none}html[data-embed=true] .lab-header{display:none}html[data-embed=true] .lab-main{padding:1rem}
@media(max-width:800px){.forms,.filters{grid-template-columns:1fr}.lab-header{gap:.8rem;padding:1rem}.lab-header nav{width:100%;order:3}.lab-main{padding:1.5rem 1rem 4rem}.toolbar small{width:100%;margin:0}th,td{padding:.8rem}.table-wrap table{min-width:880px}.candidate-list li{align-items:flex-start;flex-direction:column}.login-shell{margin:2.5rem auto}.lab-header .theme-control{margin-left:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
