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