:root{color-scheme:dark;--bg:#0b111d;--panel:#141c2b;--border:#2b374d;--fg:#e9f0fc;--muted:#a4b0c4;--accent:#85b4ff;--raised:#1b2638;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3.15rem);font-weight:720;line-height:1.1;letter-spacing:-.035em;max-width:780px}h2{font-size:1.35rem;letter-spacing:-.01em}h3{margin:28px 0 12px;font-size:1rem}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.6;cursor:wait}.topbar{height:70px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--border);padding:0 max(24px,calc((100vw - 1200px)/2));background:#101726}.brand{display:flex;align-items:center;gap:10px;font-size:1.12rem;font-weight:800;color:var(--fg)}.brand:hover{text-decoration:none}.brandmark{display:grid;place-items:center;color:#0c1930;background:var(--accent);height:33px;width:33px;border-radius:8px}.top-subtitle{font-size:.7rem;letter-spacing:.19em;color:var(--muted);font-weight:700}.top-actions{margin-left:auto;display:flex;align-items:center;gap:22px}.top-actions a,.nav-button{font-size:.86rem;color:var(--muted)}.nav-button{background:none;padding:0}.shell{max-width:1200px;margin:0 auto;padding:40px 24px 68px}.intro{margin:8px 0 28px}.detail-intro{margin-top:26px}.eyebrow{font-size:.73rem;font-weight:760;letter-spacing:.16em;color:var(--accent);margin-bottom:13px}.lede{font-size:1.07rem;color:var(--muted);max-width:740px}.muted{color:var(--muted)}.tiny{font-size:.76rem}.small{font-size:.86rem}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:26px 0 28px;background:var(--panel)}.stats-strip>div{padding:24px 28px;display:flex;flex-direction:column;gap:4px}.stats-strip>div+div{border-left:1px solid var(--border)}.stats-strip strong{font-size:2rem;font-weight:720;letter-spacing:-.05em}.stats-strip span{color:var(--muted);font-size:.83rem}.panel{padding:28px 30px 30px;background:var(--panel);border:1px solid var(--border);border-radius:14px;margin-bottom:22px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.panel-heading h2{margin:0}.panel-heading .eyebrow{margin:0 0 8px}.tag{display:inline-block;padding:5px 10px;border:1px solid #35506e;background:rgba(80,135,198,.12);border-radius:6px;color:#accfff;font-size:.72rem;font-weight:700;white-space:nowrap}.chips{display:flex;gap:8px;flex-wrap:wrap}.upload-form{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:25px 0 12px}.upload-form label,.chart-controls label{font-size:.83rem;font-weight:700}.upload-form input[type=file]{flex:1;min-width:200px;padding:12px;background:var(--raised);border:1px solid var(--border);border-radius:8px;color:var(--fg)}.primary,.secondary{display:inline-block;padding:11px 16px;border-radius:8px;font-size:.88rem;font-weight:700}.primary{background:var(--accent);color:#101a2e}.primary:hover{background:#a1c6ff;color:#101a2e;text-decoration:none}.secondary{color:var(--fg);background:#293a54;border:1px solid #435979}.table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--border);border-radius:8px;margin-top:15px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:.84rem}thead{background:#1e2a3e;color:#c3d5ee;text-align:left}th,td{padding:13px 15px;border-bottom:1px solid var(--border)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#1b2739}.text-link{font-weight:700}.empty{border:1px dashed #40526b;border-radius:8px;padding:28px;text-align:center;color:var(--muted)}.empty h3{color:var(--fg);margin:0 0 6px}.empty p{margin:0}.auth-card{max-width:520px;padding:36px;margin:6vh auto;background:var(--panel);border:1px solid var(--border);border-radius:14px}.auth-card h1{font-size:2rem}.stack{display:flex;flex-direction:column;gap:12px;margin-top:28px}.stack label{font-weight:700;font-size:.86rem}.stack input{background:var(--raised);border:1px solid #455777;border-radius:8px;padding:12px;color:var(--fg)}.stack .primary{margin-top:7px}.auth-card .tiny{margin-top:22px}.alert{color:#ffd5d5;background:#48252e;border-radius:6px;padding:12px;margin-top:20px}.back-link{font-size:.86rem;color:var(--muted)}.chart-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.chart-controls select{min-width:125px;max-width:260px;padding:9px;background:#1b2638;color:var(--fg);border:1px solid #40506c;border-radius:7px}#chart{height:440px;min-width:0;width:100%;margin-top:12px;display:block}#chart>.js-plotly-plot{width:100%}.chart-status{color:var(--accent);font-size:.87rem;margin:12px 0 0}.chart-status.chart-error{color:#ffd5d5}.analysis-note{margin-top:24px;border-left:3px solid var(--accent);background:var(--raised);padding:12px 18px;font-size:.85rem;color:var(--muted)}.source-hash{background:var(--raised);padding:16px;border-radius:8px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between}.source-hash span{color:var(--muted);font-size:.82rem}.source-hash code{font-size:.76rem;word-break:break-all}.schema-tags{display:flex;flex-wrap:wrap;gap:8px}.schema-tag{border:1px solid var(--border);background:var(--raised);padding:6px 10px;border-radius:7px;font-size:.82rem}.schema-tag small{color:var(--muted);margin-left:8px}.inline-button{margin-top:16px}.footer{max-width:1200px;margin:0 auto;padding:20px 24px 34px;border-top:1px solid var(--border);font-size:.76rem;color:var(--muted)}@media(max-width:700px){.topbar{padding:0 18px;gap:14px}.top-subtitle{display:none}.shell{padding:22px 14px 46px}.panel{padding:22px 17px}.panel-heading{align-items:flex-start;flex-direction:column}.stats-strip>div{padding:17px 12px}.stats-strip strong{font-size:1.4rem}.stats-strip span{font-size:.72rem}.chart-controls{align-items:stretch;flex-direction:column}.chart-controls select{max-width:none}.source-hash{display:block}.source-hash code{display:block;margin-top:8px}}


.large-upload-widget{border:1px solid var(--border);border-radius:10px;padding:16px;margin:14px 0;background:var(--raised)}
.large-upload-widget h3{margin:0 0 12px;font-size:1rem}
.large-upload-widget label{display:flex;align-items:center;gap:9px;font-size:.88rem;line-height:1.4}
#large-upload-progress{width:100%;height:19px;margin:16px 0 6px;display:block}
.large-upload-buttons{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}
.large-upload-status{font-size:.88rem;color:var(--fg);overflow-wrap:anywhere}
.large-upload-status[data-error="true"]{color:#ffb2b2}
#large-upload-list{display:flex;flex-direction:column;gap:9px}
.large-upload-item{display:flex;flex-direction:column;gap:5px;padding:13px;border:1px solid var(--border);border-radius:8px;background:var(--raised);font-size:.85rem;overflow-wrap:anywhere}
.large-upload-item span{color:var(--muted);font-size:.83rem}
.large-upload-item a{color:var(--accent);align-self:flex-start}

/* Local worker pool and event timeline — read-only process inspection. */
.worker-health{border:1px solid var(--border);border-radius:8px;background:var(--raised);padding:12px 15px;font-size:.9rem;color:var(--fg);margin:12px 0 16px}
.large-upload-item details,.job-activity{margin-top:8px;max-width:100%}
.large-upload-item summary,.job-activity summary{cursor:pointer;color:var(--accent);font-weight:700;font-size:.83rem;white-space:normal}
.job-activity-current{white-space:normal;overflow-wrap:anywhere;padding:7px 0 0;margin-bottom:5px}
.job-event-log{list-style:decimal;margin:7px 0 3px;padding:0 0 0 24px;white-space:normal;max-height:310px;overflow:auto;font-size:.78rem;color:var(--muted)}
.job-event-log li{padding:4px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}

/* Adaptive research: compact non-WebGL findings and usefulness controls. */
.discovery-review-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.discovery-review-actions button{padding:6px 9px;font-size:.78rem;white-space:normal}
.discovery-review-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Safe, project-scoped sample-fixture controls. Never alter ordinary uploads. */
.qa-samples-prompt{margin:18px 0;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--raised)}
.qa-samples-prompt h3{margin:0 0 7px}
.qa-samples-prompt p{font-size:.86rem;line-height:1.5}
.qa-sample-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}
.qa-sample-form button{white-space:normal;text-align:center}
.qa-sample-form button:disabled{opacity:.6;cursor:wait}

/* Keep the added AI Brain navigation accessible on laptops and tablets. */
@media(max-width:1240px){.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.top-actions{flex:1 1 100%;margin-left:0;gap:10px 20px;flex-wrap:wrap}}


/* Shared worker status and administrator restart, visible throughout ZData. */
.topbar{height:auto;min-height:70px;flex-wrap:wrap}
.top-actions{flex-wrap:wrap;gap:10px 16px}
.nav-worker-control{display:flex;position:relative;align-items:center;gap:8px;min-height:35px;
  padding:4px 8px;border:1px solid var(--border);border-radius:9px;background:var(--raised)}
.top-actions .nav-worker-status{font-size:.78rem;font-weight:700;color:var(--fg);white-space:nowrap}
.nav-worker-status::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;
  border-radius:50%;background:var(--muted);vertical-align:middle}
.nav-worker-status[data-state="active"]::before{background:#65c99b}
.nav-worker-status[data-state="degraded"]::before,
.nav-worker-status[data-state="empty"]::before{background:#edb56d}
.nav-worker-restart-form{margin:0;display:inline-flex}
.nav-worker-restart-button{padding:5px 9px;border:1px solid #526a8b;border-radius:6px;
  background:#293b56;color:var(--fg);font-size:.76rem;font-weight:700;white-space:nowrap}
.nav-worker-restart-button:hover:not(:disabled){background:#354e6f}
.nav-worker-restart-button:focus-visible,.nav-worker-status:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px}
.nav-worker-feedback:not([hidden]){position:absolute;top:calc(100% + 6px);left:0;z-index:30;
  min-width:245px;max-width:min(320px,85vw);padding:8px 10px;border-radius:7px;
  border:1px solid var(--border);background:var(--panel);color:var(--fg);
  box-shadow:0 9px 22px #0007;font-size:.78rem;line-height:1.35}
@media(max-width:700px){.top-actions{gap:9px 12px}.nav-worker-control{max-width:100%;flex-wrap:wrap}}
