.cv-speed-lab { margin:2.5rem 0; padding:clamp(1rem,3vw,2rem); border:2px solid var(--ink); border-radius:17px; background:var(--white); color:var(--ink); min-width:0; scroll-margin-top:7rem; }
.article-body .cv-speed-lab h2 { margin:.35rem 0 1rem; font-size:clamp(1.5rem,4vw,2rem); line-height:1.25; }
.article-body .cv-speed-lab h3 { margin:0 0 .6rem; font-size:1.15rem; line-height:1.4; }
.article-body .cv-speed-lab p { font-size:1rem; line-height:1.65; }
.article-body .cv-speed-lab .cv-speed-kicker { margin:0 0 .4rem; font-size:.8rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-2); }
.cv-speed-lab [hidden] { display:none !important; }
.cv-speed-controls { margin:1.5rem 0; }
.cv-speed-controls fieldset { margin:0; padding:0; border:0; min-width:0; }
.cv-speed-controls legend { font-size:1.05rem; font-weight:800; padding:0 0 .8rem; }
.cv-speed-controls label { display:block; font-size:1rem; font-weight:700; }
.cv-speed-controls select { display:block; width:100%; max-width:100%; min-height:48px; margin:.5rem 0; padding:.5rem; font:inherit; font-size:1rem; font-weight:500; border:1px solid #85927c; border-radius:6px; background:#fff; color:var(--ink); }
.cv-speed-controls .cv-speed-range { padding:1rem; border:1px solid #85927c; border-top:4px solid #285641; border-radius:9px; }
.cv-speed-controls input { box-sizing:border-box; display:block; width:100%; min-width:0; min-height:48px; margin:.5rem 0; padding:.5rem 0; border:0; accent-color:var(--ink); cursor:pointer; }
.cv-speed-presets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin-top:1rem; }
.cv-speed-controls button { min-height:48px; font-size:.9375rem; white-space:normal; padding:.7rem .6rem; }
.cv-speed-lab :disabled { opacity:.5; cursor:not-allowed; }
.cv-speed-lab :focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
.article-body .cv-speed-lab .cv-speed-help { font-size:.9375rem; color:#42594e; margin:.8rem 0; }
.cv-speed-figure { margin:1.5rem auto; max-width:560px; min-width:0; }
.cv-speed-figure svg { display:block; width:100%; height:auto; }
.cv-speed-figure figcaption { font-size:.9375rem; line-height:1.6; margin:.6rem 0; }
.cv-speed-readings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.5rem 0; }
.cv-speed-readings > div { padding:1rem; background:#edf2de; border:1px solid #85927c; border-radius:9px; min-width:0; }
.article-body .cv-speed-readings .cv-speed-value { font-size:1.4rem; font-weight:800; margin:.6rem 0; overflow-wrap:anywhere; }
.cv-speed-conclusion { padding-top:1rem; border-top:1px solid #bac7a9; font-weight:700; }
.cv-speed-lab details { border:1px solid var(--line-strong); border-radius:9px; background:var(--paper); margin-top:1rem; }
.cv-speed-lab summary { min-height:48px; padding:.85rem 1rem; font-weight:750; font-size:1rem; cursor:pointer; }
.cv-speed-detail-body { padding:0 1rem .4rem; overflow-wrap:anywhere; color:#42594e; }
.article-body .cv-speed-detail-body p { margin:.4rem 0 1rem; }
.cv-speed-error { border:1px solid #9b281d; color:#792116; background:#fff0eb; padding:.8rem; }
.cv-speed-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:620px) { .cv-speed-readings { grid-template-columns:minmax(0,1fr); } .cv-speed-figure svg text { font-size:28px; } }
