/* Physics Ladder visual kit (static/physics/viz/physics.js): styles on top of math/viz/viz.css.
   Follows the site's light or dark theme; accent #2d5596 (light) and #8fb1ea (dark) from data/ladders.yaml. */
.ml-viz.phv{--ph-acc:#2d5596;--ph-acc-soft:rgba(45,85,150,.1);--ph-ok:#00703c;overflow:hidden}
html[data-theme="dark"] .ml-viz.phv{--ph-acc:#8fb1ea;--ph-acc-soft:rgba(143,177,234,.14);--ph-ok:#6cc79a}
.phv .phv-box{position:relative}
.phv .phv-box .ml-cv{box-shadow:inset 0 0 0 1px var(--mv-line)}
.phv .phv-task{margin:0 0 .6rem;padding:.5rem .7rem;border-radius:10px;background:var(--mv-card);border:1px solid var(--mv-line);border-left:4px solid #b8963e;font-size:.95rem;line-height:1.45}
.phv .phv-ctl{gap:.45rem .8rem}
.phv .phv-ctl:empty{display:none}
.phv .phv-anim{align-items:center}
.phv .phv-anim .ml-sl{flex:1 1 170px}
.phv .phv-play{min-width:6.2rem}
.phv .ml-btn.pri{background:var(--ph-acc);border-color:var(--ph-acc);color:#fff}
html[data-theme="dark"] .phv .ml-btn.pri{color:#0f1a24}
.phv .ml-seg button[aria-pressed="true"]{background:var(--ph-acc);border-color:var(--ph-acc);color:#fff}
html[data-theme="dark"] .phv .ml-seg button[aria-pressed="true"]{color:#0f1a24}
.phv .ml-btn[aria-pressed="true"]:not(.pri){background:var(--ph-acc-soft);border-color:var(--ph-acc)}
.phv .ml-sl input{accent-color:var(--ph-acc)}
.phv .phv-chk{display:inline-flex;align-items:center;gap:.35rem;min-height:36px;font-size:.88rem;color:var(--mv-ink);cursor:pointer}
.phv .phv-chk input{width:1.1rem;height:1.1rem;accent-color:var(--ph-acc);margin:0}
.phv .phv-stat{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.4rem;margin:.6rem 0 0}
.phv .phv-stat>div{background:var(--mv-card);border:1px solid var(--mv-line);border-left:3px solid var(--ph-acc);border-radius:9px;padding:.3rem .55rem;font-size:.78rem;color:var(--mv-muted);line-height:1.3;min-width:0}
.phv .phv-stat b{display:block;color:var(--mv-ink);font-size:1rem;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:break-word}
.phv .phv-read{overflow-wrap:break-word}
.phv .phv-read b{font-variant-numeric:tabular-nums}
.phv .phv-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.phv .phv-lab{display:inline-block;margin:.55rem 0 0;font-size:.85rem;font-weight:600;color:var(--ph-acc);text-decoration:none;box-shadow:none}
.phv .phv-lab:hover{text-decoration:underline}
.phv .phv-key{display:flex;flex-wrap:wrap;gap:.25rem .9rem;margin:.45rem 0 0;font-size:.8rem;color:var(--mv-muted)}
.phv .phv-key i{display:inline-block;width:1.1rem;height:.22rem;border-radius:2px;background:var(--c);vertical-align:.2em;margin-right:.3rem}
.phv .phv-num{display:inline-flex;align-items:center;gap:.3rem;font-size:.88rem;color:var(--mv-muted)}
.phv .phv-num input{width:4.6rem;min-height:36px;box-sizing:border-box;padding:.25rem .4rem;border:1px solid var(--mv-line);border-radius:8px;background:var(--mv-card);color:var(--mv-ink);font:600 .95rem system-ui,sans-serif;text-align:center}
.phv select{font:600 .88rem system-ui,sans-serif;min-height:36px;padding:.25rem .5rem;border-radius:8px;border:1px solid var(--mv-line);background:var(--mv-card);color:var(--mv-ink)}
.phv button:focus-visible,.phv input:focus-visible,.phv select:focus-visible,.phv .ml-cv:focus-visible,.phv a:focus-visible{outline:3px solid #b8963e;outline-offset:2px}
/* problem figures and the A–D panel */
.ml-viz.phv-static .phv-box .ml-cv{box-shadow:inset 0 0 0 1px var(--mv-line)}
.ml-viz.phv-panel{overflow:hidden}
.phv-panel .phv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.phv-panel .phv-cell{position:relative;background:var(--mv-card);border:1px solid var(--mv-line);border-radius:10px;padding:.35rem;min-width:0}
.phv-panel .phv-cell-h{position:absolute;z-index:1;left:.5rem;top:.45rem;width:1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;font:800 .9rem system-ui,sans-serif;background:#7a5c12;color:#fff;pointer-events:none}
html[data-theme="dark"] .phv-panel .phv-cell-h{background:#ffd479;color:#1d2320}
.phv-panel .phv-cell .phv{margin:0;padding:0;border:0;background:none}
.phv.phv-compact .ml-ctl,.phv.phv-compact .phv-stat{display:none}
@media (max-width:440px){.phv-panel .phv-grid{grid-template-columns:1fr}}
@media (max-width:480px){.ml-viz.phv{padding:.55rem}.phv .ml-sl{min-width:128px;flex-basis:128px}.phv .phv-stat{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.phv .phv-stat b{font-size:.92rem}.phv .phv-task{font-size:.9rem}}
@media (prefers-reduced-motion:reduce){.phv *{transition:none!important}}
@media print{.phv .phv-ctl,.phv .phv-lab{display:none}}
.phv .phv-tbl{max-width:100%;overflow-x:auto;margin:.6rem 0 0;border:1px solid var(--mv-line);border-radius:10px;background:var(--mv-card)}
.phv .phv-tbl table{border-collapse:collapse;width:100%;font-size:.85rem;font-variant-numeric:tabular-nums;margin:0}
.phv .phv-tbl th,.phv .phv-tbl td{padding:.3rem .55rem;text-align:right;border-bottom:1px solid var(--mv-line);white-space:nowrap}
.phv .phv-tbl th:nth-child(-n+2),.phv .phv-tbl td:nth-child(-n+2){text-align:left}
.phv .phv-tbl th{color:var(--mv-muted);font-weight:600;background:var(--mv-paper)}
.phv .phv-tbl tr:last-child td{border-bottom:0}
.phv .phv-tbl tr.tot td{font-weight:700;background:var(--ph-acc-soft)}
@media (max-width:440px){.phv .phv-tbl table{font-size:.76rem}.phv .phv-tbl th,.phv .phv-tbl td{padding:.25rem .3rem}.phv .phv-tbl th{white-space:normal}}
