@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#203638;background:#fff;font-size:16px;--teal:#0b5754;--line:#e1e7e6;--muted:#637675}*{box-sizing:border-box}body{margin:0}button,input,a{font:inherit}button,a,input,summary{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{background:white;border:1px solid var(--line);border-radius:8px;padding:9px 13px;font-size:.875rem}button:hover{background:#edf5f3;border-color:#b4c9c5}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #e4a553;outline-offset:3px}a{color:var(--teal)}header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);gap:20px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;color:#203638;font-family:Manrope,sans-serif;font-size:1.1rem;font-weight:750;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;color:white;background:var(--teal);font-size:25px;border-radius:11px;width:43px;height:43px}.brand small{display:block;font:600 .66rem 'DM Sans',sans-serif;letter-spacing:.19em;margin-top:4px;color:var(--muted)}nav{display:flex;gap:7px;background:#f1f5f4;padding:5px;border-radius:10px}nav button{background:transparent;border-color:transparent;padding:10px 20px;font-weight:550}nav button.active{background:white;color:var(--teal);box-shadow:0 2px 5px #193a3910;border-color:#e0e8e6}.text-button{border:0;background:none;padding:4px 0;color:var(--teal);font-weight:600;white-space:nowrap}.text-button:hover{background:none;text-decoration:underline}main{display:grid;grid-template-columns:270px minmax(350px,1fr) 325px;min-height:calc(100vh - 140px)}.layers,.learning{padding:30px 24px;max-height:calc(100vh - 140px);overflow:auto}.layers{border-right:1px solid var(--line)}.eyebrow{font-size:.7rem;letter-spacing:.17em;font-weight:700;color:var(--teal)}h1{font-family:Manrope,sans-serif;font-size:2rem;letter-spacing:-.06em;line-height:1.15;margin:13px 0}h2{font-family:Manrope,sans-serif;letter-spacing:-.035em}p{line-height:1.65}.intro{font-size:.9rem;color:var(--muted);margin:0 0 25px}.search{border:1px solid #d7e1de;border-radius:8px;display:flex;align-items:center;padding:10px;gap:8px;margin-bottom:26px;background:#fafcfb}.search span{font-size:23px;line-height:1}.search input{width:100%;min-width:0;border:0;background:transparent;outline:none;font-size:.875rem}kbd{font:12px monospace;border:1px solid var(--line);border-radius:3px;padding:2px 5px}.section-line{display:flex;align-items:center;justify-content:space-between}.section-line h2{font-size:.95rem;margin:0}.hint{font-size:.75rem;color:var(--muted);margin:8px 0 18px}.system-row{display:flex;align-items:center;gap:8px;margin:4px 0;border-radius:8px;padding:3px 6px 3px 0}.system-row:has(input:checked){background:#f3f7f6}.system-row>button{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:10px 7px;border:0;background:transparent;text-align:left;font-size:.85rem}.swatch{width:9px;height:9px;flex:0 0 9px;border-radius:3px}.sys-count{margin-left:auto;color:#7d8c8a;font-size:.72rem}.system-row input{appearance:none;width:29px;height:17px;border-radius:12px;background:#dce3e1;position:relative;cursor:pointer;flex-shrink:0}.system-row input:before{content:'';position:absolute;width:11px;height:11px;background:white;border-radius:50%;top:3px;left:3px;box-shadow:0 1px 2px #0002}.system-row input:checked{background:var(--teal)}.system-row input:checked:before{left:15px}.layer-bottom{border-top:1px solid var(--line);margin-top:20px;padding-top:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.layer-bottom button{font-size:.8rem}.layer-bottom span{font-size:.72rem;color:var(--muted)}.model-note{font-size:.75rem;color:var(--muted);margin-top:20px}.model-note summary{cursor:pointer}.viewer{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#fff 0,#f3f7f6 65%,#eaf1ef 100%);min-height:640px}.view-heading{position:absolute;top:28px;left:28px;right:28px;display:flex;justify-content:space-between;z-index:2;pointer-events:none}.view-heading>span:last-child{font-size:.75rem;color:var(--muted)}#canvas-wrap{position:absolute;inset:50px 0 135px}canvas{display:block;width:100%;height:100%;touch-action:none}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-align:center;padding:30px;background:#f4f8f6;z-index:5}#loading[hidden]{display:none}#load-progress{color:var(--muted);font-size:.85rem}.loader{width:32px;height:32px;border:2px solid #c6d9d3;border-top-color:var(--teal);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.view-tools{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);display:flex;gap:2px;background:white;border:1px solid var(--line);border-radius:9px;padding:4px;box-shadow:0 4px 16px #163b3510}.view-tools button{border:0;background:none;padding:8px 13px;font-size:.75rem}.view-tools button.active,.view-tools button[aria-pressed=true]{background:#e8f1ef;color:var(--teal)}.viewer-bottom{position:absolute;bottom:18px;left:28px;right:28px}.explode{max-width:340px;margin:auto}.explode label{display:flex;justify-content:space-between;font-size:.75rem;color:#47605c}.explode input{width:100%;height:18px;margin:8px 0;accent-color:var(--teal)}.viewer-bottom p{font-size:.7rem;text-align:center;color:#738681;margin:5px 0}.viewer-bottom p span{padding:0 6px}.orientation{position:absolute;left:28px;right:28px;bottom:190px;display:flex;justify-content:space-between;font-size:.75rem;color:#80958e;pointer-events:none}.orientation span{font-size:.6rem;letter-spacing:.14em;opacity:0}.learning{border-left:1px solid var(--line);padding-top:32px}.learning h2{font-size:1.8rem;line-height:1.2;margin:17px 0 14px}.learning p{font-size:.93rem;color:var(--muted)}.learning h3{font-size:.88rem;margin:25px 0 8px}.learning .eyebrow{font-size:.65rem}.primary{display:block;text-align:center;border-radius:8px;background:var(--teal);color:white;border:0;text-decoration:none;padding:13px 16px;font-size:.875rem;font-weight:600}.primary:hover{background:#094440;color:white}.learning .primary{width:100%;margin-top:14px}.learning-card{border:1px solid var(--line);padding:18px;border-radius:12px;margin:23px 0;background:#fafcfb}.learning-card small{font-size:.68rem;letter-spacing:.12em;color:var(--teal);font-weight:700}.learning-card h3{font-size:1.05rem;margin:12px 0 8px}.learning-card p{font-size:.85rem;margin:0}.learning-card button{margin-top:16px;width:100%;background:white}.tip{border-left:3px solid #cc9b51;padding:2px 0 2px 15px;margin:25px 0}.tip p{font-size:.83rem;margin:6px 0}.tip strong{font-size:.8rem}.detail-tag{display:inline-block;background:#e9f2ef;border-radius:4px;color:var(--teal);font-size:.7rem;padding:5px 8px;margin-top:20px}.detail-actions{display:flex;gap:7px;margin:20px 0;flex-wrap:wrap}.detail-actions button{flex:1;font-size:.78rem}.source{font-size:.75rem!important;word-break:break-word}.source a{text-underline-offset:3px}.model-label{font-size:.68rem!important;overflow-wrap:anywhere;color:#83918e!important}.lesson-btn{display:block;width:100%;text-align:left;margin:13px 0;padding:17px;background:#f8fbfa}.lesson-btn strong{display:block;font-size:.95rem;margin:5px 0}.lesson-btn span{font-size:.75rem;color:var(--muted)}.steps{display:flex;gap:5px;margin:23px 0}.steps span{height:3px;flex:1;background:#e0e9e5}.steps span.done{background:var(--teal)}.question{padding:20px;background:#edf4f1;border-radius:10px;margin:20px 0}.answer{display:block;width:100%;text-align:left;margin:9px 0}.answer.correct{border-color:#2f8461;background:#e9f5ed}.answer.wrong{border-color:#b97461;background:#fff0e9}.feedback{padding:13px;border-radius:8px;background:#edf4f1;font-size:.85rem;line-height:1.6;margin-top:15px}.quiz-note{font-size:.75rem!important}.outline-teaser{height:120px;background:#edf5f2 url('assets/body-outline-front-teal.png') center 15%/170px auto no-repeat;border-radius:10px;margin:20px 0;position:relative}.outline-teaser span{position:absolute;bottom:12px;left:14px;font-size:.72rem;font-weight:600;background:#edf5f2dd;padding:4px 6px}#hover-label{position:absolute;top:65px;left:50%;transform:translateX(-50%);background:#123d37ed;color:white;font-size:.8rem;padding:8px 12px;border-radius:6px;pointer-events:none;max-width:90%;z-index:3}#results{max-height:260px;overflow:auto;margin:-12px 0 20px}#results button{display:block;width:100%;text-align:left;font-size:.8rem;margin:4px 0}#results p{font-size:.85rem}footer{height:48px;border-top:1px solid var(--line);padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.68rem;color:#6b7f79}footer a{font-size:.7rem}.footer-divider{margin:0 12px;color:#b5c3bf}dialog{border:1px solid var(--line);border-radius:18px;width:min(900px,94vw);padding:35px;color:#203638;max-height:90vh}dialog::backdrop{background:#0b2828a6;backdrop-filter:blur(5px)}dialog h2{font-size:2rem;margin:12px 0}dialog>p{color:var(--muted);font-size:.9rem}.close{position:absolute;top:15px;right:15px;font-size:22px;padding:3px 10px}.asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:25px 0}.asset-card{background:#edf4f1;border-radius:12px;padding:15px}.asset-card img{width:100%;height:200px;object-fit:contain}.asset-card h3{font-size:.9rem}.asset-card a{font-size:.8rem;display:inline-block;margin-right:14px}.asset-card p{font-size:.75rem}button[aria-pressed=true]{background:#e9f2ef}@media(min-width:1600px){main{grid-template-columns:300px minmax(350px,1fr) 360px}.layers,.learning{padding:36px 30px}}@media(max-width:1100px){main{grid-template-columns:235px minmax(300px,1fr) 280px}.layers,.learning{padding:24px 18px}header{padding:0 20px}.brand{font-size:.95rem}nav button{padding:9px 13px}.orientation{display:none}}@media(max-width:900px){header{height:auto;min-height:90px;flex-wrap:wrap;padding:18px;gap:15px}nav{order:3;width:100%;justify-content:center}.brand{flex:1}main{grid-template-columns:210px 1fr}.viewer{min-height:660px}.layers{max-height:none}.learning{grid-column:1/-1;max-height:none;border-left:0;border-top:1px solid var(--line);padding:30px;min-height:220px}footer{height:auto;min-height:60px;flex-wrap:wrap;padding:15px 20px}.learning-card{max-width:600px}.learning .primary{max-width:380px}}@media(max-width:580px){main{display:flex;flex-direction:column}.viewer{order:0;min-height:570px}.layers{order:1;border-right:0;padding:25px}.learning{order:2;padding:25px}.layers h1{font-size:1.7rem}.layers .intro{margin-bottom:15px}#systems{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}.system-row>button{font-size:.8rem}.sys-count{display:none}.search{margin-bottom:20px}.brand{font-size:.9rem}.brand-mark{height:36px;width:36px;font-size:21px}header>.text-button{font-size:.75rem}nav button{font-size:.8rem;padding:8px 13px}.viewer-bottom{left:25px;right:25px}.view-heading{left:20px;right:20px}.asset-grid{grid-template-columns:1fr}dialog{padding:25px}.asset-card img{height:220px}.learning h2{font-size:1.65rem}}@media(prefers-reduced-motion:reduce){.loader{animation:none}}

/* ---- Pain & procedures ---- */
.seg{display:inline-flex;border:1px solid #d5dfdd;border-radius:999px;padding:3px;margin:.35rem 0 .6rem;gap:2px}
.seg button{border:0;background:none;padding:.35rem .8rem;border-radius:999px;font:inherit;font-size:.82rem;cursor:pointer;color:#35514e}
.seg button.on{background:#0b5754;color:#fff}
.seg.ba{display:flex;width:100%}.seg.ba button{flex:1}
.tabs{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0 .8rem}
.tabs button{border:1px solid #d5dfdd;background:#fff;border-radius:8px;padding:.4rem .7rem;font:inherit;font-size:.84rem;cursor:pointer}
.tabs button.on{background:#e6f2f0;border-color:#0b5754;color:#0b5754;font-weight:600}
h3.grp{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#6b7f7c;margin:1rem 0 .3rem}
.legend{display:flex;flex-wrap:wrap;gap:.35rem .9rem;font-size:.78rem;color:#40524f;margin:.3rem 0}
.legend i{display:inline-block;width:.8rem;height:.8rem;border-radius:3px;margin-right:.3rem;vertical-align:-1px}
.pain-tools{flex-wrap:wrap}
.alert{border-left:4px solid #c8453d;background:#fcefed;padding:.6rem .8rem;border-radius:8px;margin:.8rem 0}
.pearl{border-left:4px solid #14a896;background:#e8f6f3;padding:.6rem .8rem;border-radius:8px;margin:.8rem 0}
.alert ul,.pearl ul{margin:.3rem 0 0;padding-left:1.1rem}.alert li,.pearl li{margin:.2rem 0}
.refs{margin:1rem 0;font-size:.78rem;color:#40524f}.refs ol{padding-left:1.1rem}.refs li{margin:.35rem 0;overflow-wrap:anywhere}
.timeline{width:100%;height:auto;font-size:8px;fill:#40524f;margin:.3rem 0}.timeline .tk{stroke:#dfe7e5;stroke-width:1}.timeline .lb{font-size:8.5px;fill:#243634}
.derm-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;margin:.6rem 0}
.derm-grid button{border:1px solid #d5dfdd;background:#fff;border-radius:8px;padding:.45rem 0;font:inherit;font-weight:600;cursor:pointer}
.derm-grid button.on,.derm-grid button:hover{background:#6c52d9;border-color:#6c52d9;color:#fff}
.derm-card{display:grid;gap:.2rem;background:#f4f1fd;border-radius:10px;padding:.4rem .9rem;margin:.6rem 0}
.fx-label{position:absolute;left:0;top:0;pointer-events:none;font-size:.72rem;line-height:1.2;padding:.2rem .45rem;border-radius:6px;background:rgba(255,255,255,.92);box-shadow:0 1px 4px rgba(0,0,0,.18);white-space:nowrap;margin:-2.1rem 0 0 .6rem;z-index:5}
.fx-label.lesion{color:#b3322b;border:1px solid #efb9b4}.fx-label.target{color:#0c7d6f;border:1px solid #a8ddd5}
.id-P strong{color:#9a6b00}.id-U strong{color:#b3322b}
#results button:has(+ *),#results button{text-align:left}
.disclaimer{margin-left:auto;margin-right:1rem;opacity:.75}


.handout{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;background:#f3f7f6;border:1px dashed #9fc3be;border-radius:10px;padding:.6rem .7rem;margin:.9rem 0}
.handout strong{flex-basis:100%;font-size:.85rem;color:#0b5754}.handout select,.handout button{font:inherit;font-size:.8rem;padding:.35rem .6rem;border:1px solid #cfdad8;border-radius:8px;background:#fff;cursor:pointer}
.handout button:hover{border-color:#0b5754;color:#0b5754}
details.med{border:1px solid #dfe7e5;border-radius:10px;padding:.5rem .8rem;margin:.45rem 0;background:#fff}
details.med summary{cursor:pointer;display:flex;flex-direction:column;gap:.1rem}details.med summary span{font-size:.78rem;color:#6b7f7c}
details.med dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;font-size:.85rem;margin:.5rem 0}details.med dt{color:#6b7f7c}details.med dd{margin:0}

/* ---- Trigger point explorer ---- */
.tp-item{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;text-align:left}.tp-item span{font-size:.78rem;color:#6b7f7c}
.tp-grp{border-top:1px solid #e3eae8;padding:.15rem 0}.tp-grp summary{cursor:pointer;font-weight:600;padding:.55rem 0;display:flex;justify-content:space-between}.tp-grp summary span{color:#6b7f7c;font-weight:400;font-size:.8rem}
.tp-search{margin:.5rem 0 .6rem}.tp-sub{margin:-.4rem 0 .5rem;color:#6b7f7c}
.tp-legend{flex-direction:column;gap:.3rem}.tp-legend i.num,.fx-num{display:inline-grid;place-items:center;width:1.15rem;height:1.15rem;border-radius:50%;background:#0a8599;color:#fff;font-size:.68rem;font-weight:700;font-style:normal}
.fx-num{position:absolute;left:0;top:0;margin:-1.6rem 0 0 .35rem;pointer-events:none;box-shadow:0 1px 4px rgba(0,0,0,.25);z-index:5}.fx-num.pin{display:none}
.tp-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0}.tp-chips span{background:#e6f2f0;border-radius:999px;padding:.2rem .3rem .2rem .7rem;font-size:.78rem;display:inline-flex;align-items:center;gap:.25rem}
.tp-chips button{border:0;background:#0b5754;color:#fff;border-radius:50%;width:1.2rem;height:1.2rem;line-height:1;cursor:pointer;padding:0}
.tp-pts{padding-left:1.2rem;margin:.3rem 0}.tp-pts li{margin:.2rem 0}.tp-actions{flex-wrap:wrap}.tp-side{margin-left:.4rem}
#print-sheet{display:none}
@media print{body.printing-trp>*:not(#print-sheet){display:none!important}body.printing-trp{background:#fff}
 body.printing-trp #print-sheet{display:block;font:11pt/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1f2f2d}
 #print-sheet header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid #0b5754;padding-bottom:6px;margin-bottom:10px}#print-sheet header b{display:block;color:#0b5754;font-size:13pt}#print-sheet small{color:#5d706d}
 #print-sheet h1{font-size:17pt;margin:0 0 6px}#print-sheet h2{font-size:12pt;margin:10px 0 2px;color:#0b5754}#print-sheet h2 small{font-weight:400}#print-sheet p{margin:3px 0}
 #print-sheet img{display:block;max-width:100%;max-height:3.9in;margin:4px auto;border:1px solid #dfe7e5;border-radius:8px}
 #print-sheet .pl{display:flex;gap:16px;justify-content:center;font-size:9pt;margin-bottom:4px}#print-sheet .pl i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 #print-sheet section{break-inside:avoid}#print-sheet .pn{margin-top:10px}#print-sheet .pn div{border-bottom:1px solid #9fb0ad;height:22px}#print-sheet .pd{font-size:8.5pt;color:#5d706d;margin-top:10px}@page{margin:.5in}}

@media(max-width:900px){body[data-mode=trp] .layers,body[data-mode=pain] .layers{display:none}}
.tp-link{display:inline-block;margin:.3rem 0;font-size:.85rem}
@media(max-width:580px){nav{flex-wrap:wrap;gap:4px}nav button{flex:1 1 30%;padding:8px 6px}}
