html:has(body.lab),body.lab{overflow:auto;height:auto}body.lab{min-height:100%}.lab-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-bottom:1px solid var(--border);background:#0f141cd9;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.lab-header .app-sub b{color:var(--hybrid-color)}.lab-nav{display:flex;gap:8px}.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border);text-decoration:none;display:inline-block}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.lab-main{max-width:1240px;margin:0 auto;padding:18px 24px 40px;display:flex;flex-direction:column;gap:16px}.lab .panel{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0f141c99}.hdr-note{margin-left:auto;text-transform:none;letter-spacing:0;font-family:var(--font-ui);font-weight:500;font-size:11.5px;color:var(--text-muted)}.lab-controls{flex-direction:row!important;flex-wrap:wrap;gap:18px 26px;padding:14px 18px;align-items:flex-end}.ctl{min-width:170px}.ctl-checks{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--text)}.ctl-checks input{accent-color:var(--accent);margin-right:6px}.ctl-end{margin-left:auto;min-width:0}.seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.seg button{background:var(--surface2);color:var(--text-muted);border:0;padding:6px 11px;font:600 12px var(--font-ui);cursor:pointer}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:#58a6ff29;color:var(--accent)}.corpus-grid{display:grid;grid-template-columns:3fr 2fr;gap:12px;padding:14px}.corpus-grid textarea{width:100%;height:280px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:10px;font:12px/1.45 var(--font-mono);resize:vertical}.corpus-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:0 14px 14px}.muted{color:var(--text-muted);font-size:12px}.table-wrap{overflow-x:auto}.score-table{width:100%;border-collapse:collapse;font-size:13px}.score-table th{text-align:left;font:700 10.5px var(--font-ui);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;cursor:help}.score-table td{padding:10px 12px;border-bottom:1px solid rgba(38,53,74,.6);vertical-align:middle}.score-table tr:last-child td{border-bottom:0}.score-table td.num{font-family:var(--font-mono);text-align:right;color:var(--text-muted)}.strat{display:flex;gap:10px;align-items:center}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sname{font-weight:600}.stag{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.cell-bar{position:relative;height:22px;min-width:96px;background:var(--surface2);border-radius:4px;overflow:hidden}.cell-fill{position:absolute;inset:0 auto 0 0;border-radius:4px}.cell-bar span{position:relative;z-index:1;display:block;padding:2px 8px;font:600 12px var(--font-mono);color:var(--text)}.cell-bar span.best:after{content:" ★";color:#ffd866}.callout{margin:0;padding:12px 16px;font-size:13px;color:var(--text-muted);border-top:1px solid var(--border);background:#3fb9500d}.callout b{color:var(--text)}.lab-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}#curve,#graph,#map{padding:10px 14px 6px}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:#1d2837}.chart .axis{fill:var(--text-muted);font:11px var(--font-ui)}.chart .lbl{font:600 11.5px var(--font-ui)}.chart .marker{stroke:#ffd866;stroke-dasharray:4 4}.map .tick{stroke:#1d2837}.map .tick-major{stroke:#33465f}.map .ev-band{fill:#ffd86638;stroke:#ffd8668c;stroke-width:1}.map .picked{stroke:#fff;stroke-width:1.6}.map .cut{fill:var(--danger);font:700 10.5px var(--font-ui)}.spine{stroke:#33465f;stroke-width:2}.arc{fill:none;opacity:.75}.arc-xref{stroke:#d29922}.arc-section{stroke:#58a6ff;stroke-dasharray:3 3}.arc-lexical{stroke:#bc8cff;opacity:.35}.node{stroke:var(--bg);stroke-width:1.5}.n-seed{fill:#58a6ff}.n-seedx{fill:#58a6ff;opacity:.4}.n-exp{fill:#3fb950}.n-off{fill:#3b4b61}.ev-star{fill:#ffd866;color:#ffd866;font-size:12px}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:0 16px 14px;font-size:11.5px;color:var(--text-muted)}.legend .lg{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}.legend .lg.n-seed{background:#58a6ff}.legend .lg.n-exp{background:#3fb950}.legend .lg.n-off{background:#3b4b61}.legend .ln{display:inline-block;width:16px;height:0;border-top:2px solid;margin-right:5px;vertical-align:3px}.legend .ln.xref{border-color:#d29922}.legend .ln.section{border-color:#58a6ff;border-top-style:dashed}.legend .ln.lexical{border-color:#bc8cff}.mini-select,.q-select{margin-left:auto;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font:500 12.5px var(--font-ui);text-transform:none;letter-spacing:0;max-width:60%}.insp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:14px}.insp-card{border:1px solid var(--border);border-top:3px solid var(--c);border-radius:8px;background:var(--surface);display:flex;flex-direction:column;min-width:0}.insp-head{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 10px 2px}.insp-head .sname{font-size:12.5px;color:var(--c)}.badge{font:700 10.5px var(--font-ui);padding:2px 7px;border-radius:10px;white-space:nowrap}.badge.ok{background:#3fb95029;color:#3fb950}.badge.part{background:#d2992229;color:#d29922}.badge.miss{background:#f8514929;color:#f85149}.insp-meta{padding:0 10px 6px;font:11px var(--font-mono);color:var(--text-muted)}.insp-body{padding:0 10px 8px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.ctx{font-size:11.5px;line-height:1.45;color:#c9d1d9;background:var(--surface2);border-radius:5px;padding:6px 7px;word-break:break-word}.ctx-id{font:600 10px var(--font-mono);color:var(--text-muted);margin-bottom:2px}.ctx mark{background:#ffd86647;color:#fff;border-radius:2px;padding:0 1px}.insp-miss{margin-top:auto;padding:7px 10px;font-size:11px;color:#ff9b95;border-top:1px solid var(--border);background:#f851490f}.paper-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px}.paper{display:block;text-decoration:none;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface)}.paper:hover{border-color:var(--accent)}.paper-top{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.paper-title{font-weight:700;font-family:var(--font-display);font-size:14px}.paper-id{font:11px var(--font-mono);color:var(--accent)}.paper-what{font-size:12px;color:var(--text-muted)}.paper-here{font-size:12px;margin-top:6px;color:var(--hybrid-color)}.lab-footer{text-align:center;font-size:12px;color:var(--text-muted)}@media (max-width: 1000px){.lab-two,.paper-grid{grid-template-columns:1fr}.insp-grid{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.lab-header{flex-direction:column;align-items:flex-start;padding:12px 16px}.lab-main{padding:14px 16px 32px}.insp-grid,.corpus-grid{grid-template-columns:1fr}.ctl-end{margin-left:0}}
