.private-lab{--lab-ink:#182944;--lab-muted:#566580;--lab-blue:#315fc2;--lab-indigo:#5350a5;--lab-line:#dbe4f1;margin:1.65rem 0;border:1px solid var(--lab-line);border-radius:20px;background:linear-gradient(135deg,#f5f8ff,#fafaff);color:var(--lab-ink);overflow-wrap:anywhere}
.private-lab *{box-sizing:border-box}
.private-lab [hidden]{display:none!important}
.private-lab summary{padding:20px 24px;cursor:pointer;min-height:64px;font-weight:650;font-size:1.08rem;list-style-position:outside;margin-left:20px}
.private-lab summary>span{display:block}
.private-lab .lab-kicker{color:var(--lab-indigo);font-size:.73rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px}
.private-lab .lab-content{padding:0 24px 24px}
.private-lab .lab-intro{max-width:65ch;margin-top:0;line-height:1.55}
.private-lab button,.private-lab input{font:inherit}
.private-lab button{min-height:44px;min-width:44px;border:1px solid #bccce5;border-radius:11px;padding:10px 16px;background:#fff;color:var(--lab-ink);cursor:pointer;line-height:1.25;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.private-lab button:hover{background:#edf3ff;border-color:#7796ce}
.private-lab button:active{transform:translateY(1px)}
.private-lab button:focus-visible,.private-lab input:focus-visible,.private-lab summary:focus-visible,.private-lab a:focus-visible{outline:3px solid #c27623;outline-offset:3px}
.private-lab button.lab-primary{background:var(--lab-blue);color:white;border-color:var(--lab-blue)}
.private-lab button.lab-primary:hover{background:#254f9e}
.private-lab button[aria-disabled=true]{opacity:.55}
.private-lab .lab-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 12px}
.private-lab .lab-feedback{margin:15px 0;padding:13px 16px;background:#eaf0fb;border-left:3px solid var(--lab-blue);border-radius:0 10px 10px 0;line-height:1.5;min-height:50px}
.private-lab .lab-note,.private-lab .lab-input-help{font-size:.86rem;line-height:1.55;color:var(--lab-muted)}
.private-lab .lab-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-width:460px;margin:20px 0}
.private-lab .lab-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:82px;border:1px dashed #bbcbe2;border-radius:13px;background:#eef2f9;transition:background-color .22s ease,box-shadow .22s ease}
.private-lab .lab-slot small{color:var(--lab-muted);font-size:.65rem}
.private-lab .lab-slot strong{font-size:1.8rem;font-weight:650;color:#9ba9bf}
.private-lab .lab-slot.is-filled{background:#fff;border:1px solid #cbd7ed;animation:lab-appear .18s ease-out}
.private-lab .lab-slot.is-filled strong{color:var(--lab-ink)}
.private-lab .lab-slot.is-highlighted{background:#fff3df;border:1px solid #c79747;box-shadow:inset 0 -4px #c79747}
.private-lab .lab-number-bank{display:flex;flex-wrap:wrap;gap:8px}
.private-lab .lab-number-bank button{font-size:1.25rem;width:54px;height:54px}
.private-lab .lab-number-bank .is-used{background:#e2e9f4;color:#516683;box-shadow:inset 0 -3px #a0b2ce}
.private-lab .lab-violation-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.private-lab .lab-violation-list button{text-align:left;display:flex;flex-direction:column;gap:5px}
.private-lab .lab-violation-list button span{font-size:.78rem;color:var(--lab-muted)}
.private-lab .lab-violation-list button[aria-pressed=true]{border-color:#b98b3e;background:#fff6e6}
.private-lab .lab-circle{max-width:400px;margin:0 auto}
.private-lab .lab-graph>svg,.private-lab .lab-circle>svg{display:block;width:100%;height:auto;overflow:visible;font-family:inherit}
.private-lab .lab-table{fill:#eff4fd;stroke:#c5d3e9;stroke-width:2}
.private-lab .lab-knight circle{fill:#bccbe3;stroke:#fff;stroke-width:2;transition:fill .2s ease}
.private-lab .lab-knight text{fill:#596b87;font-size:13px}
.private-lab .lab-knight.is-selected circle{fill:var(--lab-blue);stroke:#253d71;stroke-width:2.5}
.private-lab .lab-knight.is-selected text{fill:#203c72;font-weight:700}
.private-lab .lab-triangle{fill:#788ccc30;stroke:#6779b2;stroke-width:2;animation:lab-appear .22s ease-out}
.private-lab .lab-triangle.is-inside{fill:#3c7e7930;stroke:#31716b}
.private-lab .lab-triangle.is-outside{fill:#c4944730;stroke:#ad8136}
.private-lab .lab-center{fill:var(--lab-ink)}
.private-lab .lab-center-label{font-size:14px;fill:var(--lab-ink);paint-order:stroke;stroke:#f5f8ff;stroke-width:4px;stroke-linejoin:round}
.private-lab .lab-knight-bank{max-width:400px;margin:10px auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:7px}
.private-lab .lab-knight-bank button{padding:9px;font-size:.95rem}
.private-lab .lab-knight-bank button[aria-pressed=true]{background:var(--lab-blue);color:#fff;border-color:var(--lab-blue);box-shadow:inset 0 -3px #254a98}
.private-lab .lab-gap-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.private-lab .lab-gap{display:flex;flex-direction:column;align-items:center;padding:12px 5px;border:1px solid var(--lab-line);background:#fff;border-radius:12px}
.private-lab .lab-gap strong{font-size:1.5rem}
.private-lab .lab-gap small,.private-lab .lab-gap>span{color:var(--lab-muted);font-size:.75rem}
.private-lab .lab-gap.is-long{background:#fff4df;border-color:#d6b572}
.private-lab fieldset{padding:0;border:0;min-width:0;margin:10px 0 18px}
.private-lab legend{font-weight:600;margin-bottom:9px}
.private-lab .lab-mode{display:flex;flex-wrap:wrap;gap:8px 18px}
.private-lab .lab-mode label{display:flex;gap:8px;align-items:center;min-height:44px;font-size:.93rem;cursor:pointer}
.private-lab .lab-mode input{width:20px;height:20px;accent-color:var(--lab-blue)}
.private-lab .lab-input-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:440px}
.private-lab .lab-input-row label{display:flex;flex-direction:column;gap:6px;color:var(--lab-muted);font-size:.9rem}
.private-lab .lab-input-row input{width:100%;min-width:0;min-height:48px;border-radius:9px;border:1px solid #afc0db;background:#fff;padding:10px;color:var(--lab-ink)}
.private-lab .lab-equation{font-family:Georgia,serif;font-size:1.2rem;margin:10px 0 15px}
.private-lab .lab-model-summary{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 12px}
.private-lab .lab-model-summary>span{max-width:100%;overflow:auto;background:white;border:1px solid var(--lab-line);padding:9px 13px;border-radius:10px}
.private-lab .lab-graph{background:#fff;border:1px solid var(--lab-line);border-radius:15px;padding:8px 4px;max-width:720px}
.private-lab .lab-plot-bg{fill:#fbfcff}
.private-lab .lab-grid-line{stroke:#e9edf5;stroke-width:1}
.private-lab .lab-axis{stroke:#afbcd0;stroke-width:1.2}
.private-lab .lab-parabola{stroke:var(--lab-blue);stroke-width:3;fill:none;stroke-linejoin:round}
.private-lab .lab-min-line{stroke:#8290a9;stroke-dasharray:4 5;stroke-width:1.2}
.private-lab .lab-level line{stroke-width:1.6;stroke-dasharray:7 4}
.private-lab .lab-level text{font-size:14px;font-weight:600}
.private-lab .lab-level-a{stroke:#7555a2;fill:#7555a2}
.private-lab .lab-level-b{stroke:#237d81;fill:#237d81}
.private-lab .lab-level text{stroke:none;paint-order:stroke;stroke:#fff;stroke-width:3px}
.private-lab .lab-level circle{stroke:white;stroke-width:1.5}
.private-lab .lab-vertex{fill:#1d355f;stroke:white;stroke-width:1.5}
.private-lab .lab-min-label,.private-lab .lab-tick{font-size:12px;fill:#576682}
.private-lab .lab-graph-limit{padding:22px;color:var(--lab-muted);line-height:1.6}
.private-lab .lab-level-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}
.private-lab .lab-level-table>p{grid-column:1/-1}
.private-lab .lab-level-card{min-width:0;padding:15px;border:1px solid var(--lab-line);background:#fff;border-radius:12px}
.private-lab .lab-level-card>div{overflow:auto;max-width:100%;padding-bottom:3px}
.private-lab .lab-level-card p{color:var(--lab-muted);font-size:.9rem;margin:10px 0}
.private-lab .lab-level-card strong{font-size:1.8rem;display:block}
.private-lab .lab-level-card>span{font-size:.78rem;line-height:1.5;color:var(--lab-muted)}
.private-lab .lab-total{display:flex;align-items:center;gap:16px;padding:16px 19px;background:#e7edf9;border-radius:13px}
.private-lab .lab-total strong{font-size:2.3rem;line-height:1;color:var(--lab-blue)}
.private-lab .lab-total span{max-width:35ch;font-size:.95rem;line-height:1.5}
.private-lab .lab-family-gate{margin:20px 0 6px;padding-top:20px;border-top:1px solid var(--lab-line)}
.private-lab .lab-family{background:#f1effa;border:1px solid #d7d1ec;border-radius:14px;margin-top:20px;padding:18px}
.private-lab .lab-family h4{margin:0 0 10px;font-size:1.04rem}
.private-lab .lab-family p{line-height:1.6}
.private-lab .lab-family-sum{font-size:1.15rem;overflow:auto}
.private-lab [data-family-feedback]>p{overflow:auto}
.private-lab .lab-fallback{padding:15px 18px;border:1px solid var(--lab-line);background:#fff;border-radius:12px}
.private-lab .lab-fallback p{line-height:1.65}
.private-lab .is-stale{opacity:.5}
@keyframes lab-appear{from{opacity:.6}to{opacity:1}}
@media(max-width:480px){.private-lab summary{padding:18px 14px 18px 5px;font-size:1rem;margin-left:25px}.private-lab .lab-content{padding:0 12px 16px}.private-lab .lab-slots{gap:5px}.private-lab .lab-slot{min-height:72px}.private-lab .lab-number-bank{gap:6px}.private-lab .lab-number-bank button{width:44px;height:46px;padding:8px}.private-lab .lab-actions button{flex:1 1 auto;padding:10px}.private-lab .lab-knight-bank{gap:5px}.private-lab .lab-level-card{padding:12px 9px}.private-lab .lab-family{padding:13px}.private-lab .lab-violation-list{grid-template-columns:1fr}.private-lab .lab-input-row{gap:9px}.private-lab .lab-circle{margin-left:-2px;margin-right:-2px}}
@media(prefers-reduced-motion:reduce){.private-lab *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.private-lab{break-inside:avoid}.private-lab [data-lab-live]{display:none}.private-lab [data-lab-fallback]{display:block!important}}

.private-lab .lab-experiment-modes{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}.private-lab .lab-experiment-modes button{flex:1 1 180px}.private-lab .lab-experiment-modes button[aria-pressed=true]{background:#315fc2;color:#fff;border-color:#315fc2}.private-lab .lab-parameter{min-width:0;padding:14px;border:1px solid #d3dded;border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:8px}.private-lab .lab-input-row{max-width:650px}.private-lab .lab-input-row .lab-exact-label{color:var(--lab-ink);font-weight:600}.private-lab .lab-input-row .lab-range-label{gap:0;font-size:.84rem;color:var(--lab-muted)}.private-lab .lab-input-row input[type=range]{appearance:auto;-webkit-appearance:auto;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;accent-color:var(--lab-blue);cursor:pointer;touch-action:pan-y}.private-lab .lab-input-row input[aria-invalid=true]{border-color:#aa562a}.private-lab .lab-range-value{min-height:35px;display:flex;align-items:center;color:var(--lab-ink);overflow-x:auto;font-variant-numeric:tabular-nums}.private-lab .lab-range-note{font-size:.8rem;line-height:1.45;color:var(--lab-muted);margin:0}.private-lab .lab-base-root{fill:#c17825;stroke:#fff;stroke-width:1.5}.private-lab .lab-graph-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.84rem;color:var(--lab-muted);margin:12px 0}.private-lab .lab-graph-legend>span{display:flex;align-items:center;gap:6px;min-height:25px}.private-lab .lab-graph-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.private-lab .lab-legend-root{background:#c17825}.private-lab .lab-legend-hit{background:#7555a2}.private-lab .lab-equation{overflow-x:auto;max-width:100%;padding:2px 0}.private-lab .lab-model-summary>span,.private-lab .lab-level-card>div,.private-lab .lab-family-sum{white-space:nowrap}.private-lab .lab-family .lab-input-row{grid-template-columns:minmax(0,1fr);max-width:420px}
@media(max-width:480px){.private-lab .lab-parameter{padding:10px 8px}.private-lab .lab-range-note{font-size:.8rem}.private-lab .lab-input-row{grid-template-columns:repeat(2,minmax(0,1fr))}.private-lab .lab-experiment-modes button{flex-basis:100%}}

.private-lab .lab-sample-caption{color:var(--lab-muted);font-size:.88rem;line-height:1.45;margin:8px 0 12px}.private-lab .lab-family-heading h4{font-size:1.04rem;margin:8px 0}.private-lab .lab-family-heading p{font-size:.9rem;line-height:1.55;margin:10px 0 14px}.private-lab [data-parabola-result] .lab-total{margin:12px 0}.private-lab [data-parabola-result] .lab-model-summary{margin:12px 0}.private-lab [data-own-controls]{margin-top:18px}

.private-lab [data-parabola-result] .lab-total{padding:10px 14px;gap:12px;margin:9px 0 0;min-height:48px}.private-lab [data-parabola-result] .lab-total strong{font-size:1.9rem}.private-lab [data-parabola-result] .lab-total span{font-size:.9rem;line-height:1.4}.private-lab [data-own-controls]{margin-top:12px}.private-lab [data-family]{margin-top:12px}.private-lab .lab-evidence{border:1px solid var(--lab-line);border-radius:13px;background:#fff;margin:16px 0 0}.private-lab .lab-evidence>summary{padding:12px 14px;margin-left:0;font-size:.94rem;min-height:44px;list-style-position:inside}.private-lab .lab-evidence-content{padding:0 14px 14px}.private-lab .lab-evidence-content .lab-model-summary{margin-top:12px}.private-lab .lab-evidence-content .lab-level-table{margin-bottom:0}
@media(max-width:480px){.private-lab [data-family]{margin-top:10px;padding:10px}.private-lab .lab-evidence-content{padding:0 10px 12px}.private-lab .lab-evidence>summary{padding:12px 10px}}

/* Distinguish roots of f from roots of the composition, including overlaps. */
.private-lab .lab-base-root{fill:none;stroke:#c17825;stroke-width:2}.private-lab .lab-legend-root{background:transparent;border:2px solid #c17825}.private-lab .lab-legend-hit{background:linear-gradient(90deg,#7555a2 50%,#397f85 50%)}.private-lab .lab-legend-vertex{background:#29354f}.private-lab [data-parabola-result] .lab-graph-legend{margin:8px 0;gap:5px 12px;font-size:.8rem}

/* v5: graph labels stay legible on a phone; KaTeX SVGs keep their own layout. */
.private-lab .lab-label-leader{fill:none;stroke:currentColor;stroke-width:1}
.private-lab .lab-violation-list{margin-bottom:1rem}
.private-lab .lab-slot small{font-size:.8rem}
.private-lab .lab-model-summary .katex+.katex{margin-left:.2em}
@media(max-width:480px){
 .private-lab .lab-level text,.private-lab .lab-min-label,.private-lab .lab-tick{font-size:27px}
 .private-lab .lab-knight text{font-size:18px}
 .private-lab .lab-center-label{font-size:18px}
 .private-lab .lab-level-table{grid-template-columns:1fr}
}

.private-lab .lab-level-card>div{overflow-x:auto;overflow-y:hidden;padding:8px 1px 12px}.private-lab .lab-range-value{overflow-x:auto;overflow-y:hidden;padding:8px 0;min-height:54px}.private-lab .lab-model-summary>span{overflow-x:auto;overflow-y:hidden}

/* v6: keep each mathematical expression whole while allowing prose to wrap. */
.private-lab .katex{white-space:nowrap}
.private-lab .lab-total>strong{flex:0 0 auto;white-space:nowrap}
.private-lab .lab-total>span{min-width:0}
.private-lab [data-family-feedback]>.lab-family-sum{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;white-space:normal;overflow:visible}
.private-lab .lab-family-sum>span{display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding:4px 0}
.private-lab:not([data-lab-ready]) [data-lab-live-intro]{display:none}
