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