.preprocessing-lab {color:var(--ink, #e4edf3);border:1px solid var(--line,#526677);border-radius:14px;padding:clamp(16px,3vw,28px);background:var(--panel, #132331);margin-block:30px;scroll-margin-top:100px}
.preprocessing-lab * {box-sizing:border-box}
.preprocessing-lab h3 {margin-top:0}.preprocessing-lab .pre-kicker {font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted,#c0ccd8)}
.preprocessing-lab p {max-width:72ch}.preprocessing-lab fieldset {border:0;padding:0;margin:0;min-width:0}.preprocessing-lab legend {font-weight:700;margin-bottom:12px}
.pre-controls {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-block:20px}.pre-controls label {display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;color:var(--ink,#e4edf3)}
.pre-controls label.pre-toggle {flex-direction:row;align-items:center;gap:10px;min-height:44px;line-height:1.5}.pre-controls input[type=checkbox]{width:21px;height:21px;flex-shrink:0;accent-color:#075985}
.preprocessing-lab select,.preprocessing-lab button {font:inherit;min-height:44px;border:1px solid var(--line,#6a8194);border-radius:6px;color:var(--ink,#e4edf3);background:var(--bg,#0b1925);padding:8px 12px;max-width:100%}
.preprocessing-lab select {width:100%}.preprocessing-lab button {cursor:pointer}.preprocessing-lab :disabled {opacity:.6;cursor:default}
.preprocessing-lab :focus-visible {outline:3px solid #ba87fc;outline-offset:3px}.pre-band-control {display:block;margin:20px 0}.pre-band-control input {display:block;width:100%;height:44px;accent-color:#7e22ce}.pre-band-control output{font-weight:700;margin-left:12px}
.pre-charts {display:grid;gap:18px}.pre-charts figure {margin:0}.pre-charts figcaption{font-size:.9rem;font-weight:650;margin-bottom:8px}.pre-charts svg{display:block;width:100%;height:auto;background:#f6f9fc;border-radius:12px;font-family:system-ui,sans-serif}.pre-sequence {font-weight:650;padding:12px 0;border-block:1px solid var(--line,#526677)}
.pre-table-wrap {max-width:100%;overflow:auto}.preprocessing-lab table {width:100%;border-collapse:collapse;font-size:.88rem;margin:12px 0}.preprocessing-lab caption{text-align:left;margin-bottom:8px;font-weight:650}.preprocessing-lab th,.preprocessing-lab td {padding:9px 10px;text-align:left;border-bottom:1px solid var(--line,#526677);vertical-align:top}.preprocessing-lab th{color:var(--ink,#e4edf3)}
.pre-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-block:16px}.pre-small{font-size:.85rem;color:var(--muted,#becdda)}.preprocessing-lab details{margin-top:20px}.preprocessing-lab summary{cursor:pointer;min-height:44px;padding-block:10px;font-weight:650}.preprocessing-lab pre{overflow:auto;max-width:100%;padding:16px;border-radius:8px;background:var(--bg,#0b1925);font-size:.83rem;line-height:1.55}.preprocessing-lab a{color:var(--accent,#a8d8ff)}
@media(max-width:640px){.pre-controls{grid-template-columns:1fr 1fr}.pre-controls .pre-wide{grid-column:1/-1}.preprocessing-lab{padding:14px}.preprocessing-lab th,.preprocessing-lab td{padding:8px}.pre-charts svg{min-height:190px}}
@media(max-width:380px){.pre-controls{grid-template-columns:1fr}.pre-controls .pre-wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.preprocessing-lab *{scroll-behavior:auto;transition:none!important}}

.article-body .preprocessing-lab summary{color:var(--ink)}
.preprocessing-lab{scroll-margin-top:90px}
.pre-controls label.pre-toggle{justify-content:flex-start}
@media(max-width:480px){.pre-controls{grid-template-columns:1fr}.pre-controls .pre-wide{grid-column:auto}}
/* Expanded playground. Retains the published v31 theme and phone fixes. */
.pre-presets{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 14px}.pre-presets button[aria-pressed="true"]{border-color:var(--accent,#a8d8ff);box-shadow:inset 0 0 0 1px var(--accent,#a8d8ff);font-weight:700}.pre-knobs{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pre-knobs label{color:var(--ink,#e4edf3);font-weight:600;margin:0}.pre-knobs output{display:block;font-variant-numeric:tabular-nums}.pre-knobs input{width:100%;height:44px;padding:0;accent-color:#075985}.pre-fit-note{border-left:3px solid var(--accent,#a8d8ff);padding:8px 14px;font-size:.9rem}.preprocessing-lab h4{margin:24px 0 8px;font-size:1rem}.preprocessing-lab details li{margin-block:10px}.preprocessing-lab .pre-nuisance{margin-top:0}
@media(max-width:480px){.pre-knobs{grid-template-columns:1fr}.pre-presets button{flex:1 1 42%;font-size:.9rem}}
