.ph-lab{border:1px solid #cbdce4;border-radius:18px;padding:clamp(16px,3vw,30px);margin:18px 0;background:linear-gradient(145deg,var(--paper,#fff),var(--soft,#f1f7f9));line-height:1.65}
.ph-lab h3{font-size:1.45rem;margin-top:0}.ph-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:16px;margin:20px 0}.ph-control{display:flex;flex-direction:column;gap:8px;font-size:.9rem}.ph-control input{width:100%;accent-color:#087e8b}.ph-control output{font-variant-numeric:tabular-nums;font-weight:650}.ph-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:18px 0}.ph-metrics>div{padding:13px;border:1px solid #d1e1e7;border-radius:12px;background:var(--paper,#fff)}.ph-metrics span{display:block;font-size:.78rem;color:var(--muted,#526b7e)}.ph-metrics strong{display:block;font-size:1.15rem;margin-top:6px}.ph-svg,.ph-canvas{width:100%;height:auto;display:block;background:#fff;border-radius:12px;margin:18px 0}.ph-label{font:14px system-ui,sans-serif}.ph-note{font-size:.87rem;color:var(--muted,#526b7e)}.ph-reading{padding:14px 18px;border-left:4px solid #087e8b;background:var(--paper,#fff)}.ph-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.ph-buttons button,.ph-jump a{border:1px solid #aac1ce;border-radius:50px;padding:9px 14px;color:var(--ink,#234155);background:var(--paper,#fff);font:inherit;font-size:.88rem;cursor:pointer}.ph-buttons button:hover{background:#e8f4f4}.ph-stack{height:25px;display:flex;border-radius:8px;overflow:hidden}.ph-stack span{display:block}.ph-disclosure{border-top:1px solid #cbdce4;margin:22px 0;padding-top:10px;scroll-margin-top:85px}.ph-disclosure>summary{padding:10px 0;cursor:pointer}.ph-disclosure>summary h2{display:inline;font-size:1.35rem}.ph-jump{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px;margin:20px 0;background:var(--soft,#f1f7f9);border-radius:12px}.ph-lab :focus-visible{outline:3px solid #087e8b;outline-offset:3px}@media(max-width:500px){.ph-controls,.ph-metrics{grid-template-columns:1fr 1fr}.ph-lab{padding:14px}.ph-label{font-size:16px}}
