/* 肺高壓 3D：layout on top of heart-anatomy/heart.css + atherosclerosis-3d/athero.css */
.ph-app #viewport{height:clamp(440px,64vh,660px);margin-bottom:0;position:relative;background:radial-gradient(ellipse at 50% 45%,#fffdf9 0%,#f4ede3 78%)}
.ph-levels{grid-template-columns:1fr!important}
.ph-levels button,.ph-drugs button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.35;text-align:left}
.ph-levels small,.ph-drugs small{font-size:11px;color:#8a7a6c;font-weight:400}.ph-levels .active small,.ph-drugs .active small{color:inherit;opacity:.85}
.ph-presets{grid-template-columns:1fr 1fr!important}.ph-presets button{font-size:12.5px;line-height:1.35;padding:7px 6px}
.ph-slider{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;margin:10px 0 2px;font-size:13px}
.ph-slider label{color:var(--ink)}.ph-slider output{font-variant-numeric:tabular-nums;font-size:12.5px;color:#2f4a3a;font-weight:700}
.ph-slider input{grid-column:1/-1;width:100%;accent-color:#596b60}
.ph-note{font-size:12.5px;line-height:1.6;color:var(--muted);margin:8px 0 0}
.ph-groups,.ph-drugs{display:grid;gap:6px}
.ph-groups button,.ph-drugs button{border:1px solid var(--line);border-radius:10px;background:#fffdfa;color:var(--ink);padding:8px 10px;font:inherit;font-size:13px;cursor:pointer;text-align:left}
.ph-groups button{display:flex;gap:8px;align-items:center}.ph-groups button b{flex:none;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e9efe9;color:#2f4a3a;font-size:12px}
.ph-groups button.active,.ph-drugs button.active{background:#596b60;color:#fff;border-color:#596b60}.ph-groups button.active b{background:#fff}
.ph-tabs{grid-template-columns:1fr 1fr!important}
.ph-labels{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.ph-labels span{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:12px;line-height:1.3;padding:3px 7px;border-radius:6px;background:rgba(255,253,249,.92);border:1px solid #d8c9b8;color:#5c483c;box-shadow:0 1px 4px #6f514014}
.ph-labels span.key{background:#332f2c;color:#fff;border-color:#332f2c;font-weight:700}
.ph-labels span.title{background:transparent;border:0;box-shadow:none;color:#2f4a3a;font-weight:800;font-size:13.5px;letter-spacing:.02em}
.ph-readout{position:absolute;top:10px;left:10px;z-index:5;width:212px;background:rgba(255,253,249,.94);border:1px solid #d8c9b8;border-radius:12px;padding:8px 10px;font-size:12.5px;box-shadow:0 2px 10px #584a3620}
.ph-readout[hidden],.ph-inset[hidden],.ph-drugpanel[hidden],.ph-ctl[hidden]{display:none!important}
.ro-cls{font-weight:800;color:var(--c);border-left:4px solid var(--c);padding-left:7px;margin-bottom:6px;line-height:1.35}
.ph-readout dl{margin:0;display:grid;gap:2px}.ph-readout dl div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed #eadfcf;padding:2px 0}
.ph-readout dt{color:var(--muted)}.ph-readout dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums;color:#2f4a3a}.ph-readout dd small{font-weight:400;color:var(--muted);font-size:10.5px}
.ph-readout .bad dd{color:#b8322a}
.ph-inset{position:absolute;right:10px;bottom:10px;z-index:5;margin:0;width:138px;background:rgba(255,253,249,.94);border:1px solid #d8c9b8;border-radius:12px;padding:6px 8px 8px;text-align:center;box-shadow:0 2px 10px #584a3620}
.ph-inset figcaption{font-size:11.5px;font-weight:700;color:#3b2d22}.ph-inset svg{width:104px;height:104px;display:block;margin:2px auto}.ph-inset small{display:block;font-size:10.5px;line-height:1.4;color:var(--muted)}
.ph-scale{top:12px!important;bottom:auto!important;left:auto!important;right:12px}
.ph-ctl{top:auto!important;bottom:10px;left:12px}
.ph-drugpanel{position:absolute;inset:0;z-index:4;background:#fffdf9;display:flex;align-items:center;justify-content:center;padding:10px}
.pw-svg{width:100%;height:100%;max-height:100%}
.pw-endo{fill:#ffd9cf;stroke:#e9a896}.pw-smc{fill:#fbe5d6;stroke:#e8b98f}.pw-band{font-size:13px;fill:#8a5a3a;font-weight:700}
.pw-t{font-size:15px;font-weight:800;fill:#3b2d22;text-anchor:middle}
.pw-l{font-size:13px;fill:#3b2d22;text-anchor:middle;font-weight:700}.pw-s{font-size:12px;fill:#6b5a4c;text-anchor:middle}
.pw-prod{fill:#fff;stroke:#c9a07a}.pw-rec{fill:#fff;stroke:#8a9bd6}.pw-eff{fill:#fff;stroke:#c9bfae}
.pw-flow{stroke:#9a8a7a;stroke-width:3;fill:none;stroke-dasharray:8 6}
.pw.act .pw-flow{stroke:#596b60;animation:pwflow 1s linear infinite}.pw.act .pw-prod,.pw.act .pw-rec,.pw.act .pw-eff{stroke:#596b60;stroke-width:2.5}
.pw.dim{opacity:.32}
@keyframes pwflow{to{stroke-dashoffset:-28}}
.pw-drug rect{fill:#332f2c}.pw-drug text{fill:#fff;font-size:13px;font-weight:800;text-anchor:middle}
.ph-formula{display:block;margin-top:6px;font-size:12.5px;color:#2f4a3a!important}
.ph-defs{margin-top:10px}
.ph-table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.55;margin:10px 0 4px}.ph-table th,.ph-table td{border-bottom:1px solid #eadfcf;padding:6px 8px;text-align:left;vertical-align:top}.ph-table th{font-size:12.5px;color:var(--muted)}
.gl-t.t-hemo{background:#e3ecfa;color:#2c4f8a}.gl-t.t-test{background:#e1f1f1;color:#1f6a6a}.gl-t.t-dis{background:#f5dede;color:#8a1f1f}.gl-t.t-mech{background:#f1e6f7;color:#6a3f8a}.gl-t.t-tx{background:#e4efe6;color:#2f5a3c}
@media(max-width:900px){.ph-app #viewport{height:clamp(420px,92vw,600px)}}
@media(max-width:650px){
 .ph-app #viewport{height:clamp(470px,135vw,600px)}
 .ph-readout{left:6px;right:6px;top:6px;width:auto;padding:5px 8px;font-size:11px}.ro-cls{margin-bottom:3px}
 .ph-readout dl{grid-template-columns:1fr 1fr;column-gap:10px}.ph-readout dl div{padding:1px 0}
 .ph-inset{width:104px;right:6px;bottom:6px;padding:4px 6px 6px}.ph-inset svg{width:78px;height:78px}.ph-inset small{font-size:9.5px}
 .ph-labels span{font-size:10.5px;padding:2px 5px}.ph-scale{display:none}
 .ph-table{font-size:12.5px}.ph-table th,.ph-table td{padding:5px 4px}}
.ph-readout.strip{left:10px;right:10px;width:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 10px}
.ph-readout.strip .ro-cls{margin:0;flex:none}.ph-readout.strip dl{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:14px}
.ph-sub{display:block;margin-bottom:2px}
.ph-scale[hidden]{display:none!important}
@media(max-width:650px){.ph-readout.strip{flex-direction:column;align-items:stretch;gap:3px}.ph-readout.strip dl{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.ph-ctl{left:auto!important;right:8px}}

@media(min-width:901px){.ph-app .model-area{scroll-margin-top:8px}}
.seg-bar{display:grid;gap:6px;margin:8px 0 4px}.seg-row{display:grid;grid-template-columns:34px repeat(5,1fr);gap:4px;align-items:center}
.seg-row b{grid-row:span 2;font-size:12.5px;color:#2f4a3a}
.seg-row button{border:1px solid var(--line);border-radius:7px;background:#fffdfa;padding:4px 0;font:inherit;font-size:12px;font-weight:700;color:#3b4a40;cursor:pointer}
.seg-row button.active{background:#ffb000;border-color:#e09a00;color:#2b1d00}
.ph-labels span.seg{font-size:10.5px;padding:1px 5px;background:#fff7e0;border-color:#e0b850;color:#5a4300;font-weight:700}
.ph-rvviews{grid-template-columns:repeat(3,1fr)!important}
.ph-dbase{grid-template-columns:1fr 1fr!important}
.ro-bar{display:grid!important;grid-template-columns:72px 1fr;align-items:center}.ro-bar dd{display:flex;align-items:center;gap:6px}.ro-bar dd i{display:block;height:8px;border-radius:4px;flex:none}.ro-bar dd b{font-size:12px}
.ro-note{display:block;margin-top:4px;font-size:10.5px;color:var(--muted);line-height:1.4}
