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)}.tabbar{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tabbar button{background:none;border:0;border-bottom:2px solid transparent;color:var(--text-muted);padding:8px 14px;font:600 13.5px var(--font-ui);cursor:pointer;margin-bottom:-1px}.tabbar button:hover{color:var(--text)}.tabbar button.on{color:var(--accent);border-bottom-color:var(--accent)}.tab-pane{display:flex;flex-direction:column;gap:16px}.tab-pane.hidden,.hidden{display:none!important}.cat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:14px}.cat{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--text);font-family:var(--font-ui)}.cat:hover{border-color:var(--c)}.cat.on{border-color:var(--c);box-shadow:inset 0 0 0 1px var(--c);background:color-mix(in srgb,var(--c) 9%,var(--surface))}.cat-icon{font-size:20px}.cat-name{font-weight:700;font-size:13px}.cat-ex{font-size:11.5px;color:var(--text-muted)}.cat-detected{font:700 9.5px var(--font-ui);text-transform:uppercase;letter-spacing:.5px;color:#3fb950;background:#3fb95029;padding:1px 6px;border-radius:8px;vertical-align:1px}.detect{border-top:1px solid var(--border)}.detect summary{padding:12px 16px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text)}.detect-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}.detect-body textarea{width:100%;height:200px;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}.detect-body .corpus-actions{padding:0}.sample-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:14px;padding:4px 10px;font:500 12px var(--font-ui);cursor:pointer;margin-right:6px}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.static{cursor:default;display:inline-block;margin:0 6px 6px 0}.chip.static:hover{border-color:var(--border);color:var(--text)}.chip b{color:var(--accent)}.profile{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile h4,.rec-side h4{margin:0 0 8px;font:700 10.5px var(--font-ui);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.pbar{display:grid;grid-template-columns:200px 1fr;gap:10px;align-items:center;margin-bottom:6px;font-size:12.5px}.rec{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:22px;padding:16px;border-left:4px solid var(--c)}.rec-label{font:700 10.5px var(--font-ui);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.rec-strategy{font:700 21px/1.25 var(--font-display);color:var(--c);margin:4px 0 14px}.rec-params{width:100%;border-collapse:collapse;font-size:12.5px}.rec-params th{text-align:left;color:var(--text-muted);font-weight:600;padding:7px 10px 7px 0;vertical-align:top;white-space:nowrap;border-bottom:1px solid rgba(38,53,74,.6)}.rec-params td{padding:7px 0;border-bottom:1px solid rgba(38,53,74,.6)}.rec-side ul{margin:0 0 14px;padding-left:18px;font-size:13px;line-height:1.5;display:flex;flex-direction:column;gap:5px}.rec-notes li::marker{color:var(--accent)}.rec-pitfalls li::marker{color:#f85149}.rec-papers{display:flex;flex-wrap:wrap;gap:8px}.rec-papers a{font:11.5px var(--font-mono);color:var(--accent);text-decoration:none;border:1px solid var(--border);border-radius:6px;padding:3px 8px}.rec-papers a:hover{border-color:var(--accent)}.pv-stats{display:flex;flex-wrap:wrap;gap:10px;padding:14px}.pv-stats div{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 14px;display:flex;flex-direction:column;min-width:110px}.pv-stats b{font:700 20px var(--font-display)}.pv-stats span{font-size:11.5px;color:var(--text-muted)}.pv-stats .warn b{color:#f85149}.warn-callout{background:#f851490f;border-bottom:1px solid var(--border)}.pv-chunks{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;padding:0 14px 14px;max-height:520px;overflow-y:auto}#previewPanel>.corpus-actions{padding-top:4px}@media (max-width: 1000px){.lab-two,.paper-grid{grid-template-columns:1fr}.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rec,.profile{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}.pbar{grid-template-columns:1fr;gap:4px}.tabbar button{padding:8px 10px}.ctl-end{margin-left:0}}
