*{box-sizing:border-box}body{margin:0;font-family:Trebuchet MS,Arial,sans-serif;color:#153c47;background:#d7efe9}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation;border:1px solid #86b6b3;border-radius:12px;background:#f2fffb;color:#204953;padding:.65vh 1vw;font-weight:bold;box-shadow:0 3px 0 #2e666b25}button:focus-visible,select:focus-visible{outline:4px solid #eea12c;outline-offset:2px}button:disabled{opacity:.55}button[aria-pressed=true],.primary{background:#176e73;color:white;border-color:#0b575e}.primary{padding:1.4vh 2vw;font-size:clamp(18px,2.4vh,26px)}[hidden]{display:none!important}#app{height:100dvh;overflow:hidden;position:relative;background:linear-gradient(#e1f6ee55,#80c5bb22),url('assets/hospital.webp') center top/cover}header{height:13%;display:flex;justify-content:space-between;align-items:center;padding:1vh 3vw;gap:3vw}.brand{background:#fafff3ee;border:2px solid #fff;border-radius:20px;padding:1vh 2vw;box-shadow:0 8px 30px #245a5d24}.brand small{font-size:10px;letter-spacing:2px}.brand h1{font-size:clamp(24px,4vh,44px);margin:0;color:#17656b}.brand span{color:#ad6934;font-size:clamp(14px,1.7vh,20px)}.headline{font-size:clamp(16px,2.4vh,27px);background:#fafff3e8;border-radius:16px;padding:1.5vh 2vw;max-width:48%;text-align:center}#theatre{height:37%;display:flex;gap:2vw;padding:0 3vw 1vh}.bay{flex:1;min-width:0;position:relative;display:flex;align-items:end;justify-content:center;border-bottom:7px solid var(--accent);border-radius:24px;background:linear-gradient(0deg,#effffac7,transparent 80%)}.doctor{height:92%;max-width:48%;object-fit:contain;filter:drop-shadow(0 9px 5px #22474630);z-index:1}.monitor{align-self:center;background:#103e48;border:7px solid #c6e3df;box-shadow:0 5px 0 #568c8d;border-radius:18px;padding:1.4vh 1vw;color:#aaffd4;width:42%;max-width:250px}.monitor small{font-size:clamp(10px,1.4vh,18px);display:block;color:white}.monitor strong{font-size:clamp(20px,3.7vh,38px)}.ecg{height:4vh;width:100%;stroke:#84efbc;fill:none;stroke-width:3}.stars{color:#ffe59a;font-size:clamp(14px,2vh,24px);letter-spacing:2px}.bay .tag{position:absolute;top:0;left:4%;font-size:clamp(13px,1.8vh,20px);font-weight:bold;background:var(--accent);padding:.5vh 1vw;border-radius:10px}.bay.healed{animation:celebrate .6s ease 2}@keyframes celebrate{50%{background-color:#fff4a7}}#controls{position:absolute;top:50%;bottom:0;width:100%;padding:.8vh 1vw;background:#e7f2e9ed;border-top:4px solid #fff;display:flex;flex-direction:column;gap:.5vh}#menu{flex:1;display:flex;align-items:center;justify-content:center;gap:5vw}.intro{max-width:28%;}.intro h2{font-size:clamp(24px,3.4vh,36px);margin:0 0 1vh}.intro p{font-size:clamp(15px,2vh,22px)}.options{display:flex;flex-direction:column;gap:1.5vh;max-width:600px;width:58%}.seg{display:flex;gap:1vw}.seg button{flex:1;min-height:5vh}.options>label{display:flex;gap:1vw;align-items:center;font-weight:bold}select{width:100%;border-radius:9px;padding:1vh;border:1px solid #82b2ad;background:white;color:#184751}.settings{display:flex;gap:1vw;flex-wrap:wrap;font-size:clamp(13px,1.7vh,18px)}input{accent-color:#14797b;width:18px;height:18px;vertical-align:middle}nav{display:flex;align-items:center;gap:1vw;min-height:4vh}nav span{flex:1;text-align:center;font-size:clamp(11px,1.5vh,17px)}nav button{min-height:3.8vh;font-size:clamp(12px,1.6vh,18px)}#stations{flex:1;min-height:0;display:flex;gap:1vw}.station{flex:1;min-width:0;background:#f9fff8;border:3px solid var(--accent);border-radius:17px;padding:.5vh .6vw;display:flex;flex-direction:column;gap:.35vh;overflow:hidden}.mission{display:flex;align-items:center;gap:.5vw;min-height:5vh}.mission>div{flex:1;min-width:0}.mission small{display:block;color:#5c777b;font-size:clamp(10px,1.3vh,15px)}.mission strong{font-size:clamp(15px,2.2vh,24px)}.mission button{font-size:clamp(17px,2.5vh,25px);padding:.5vh}.workspace{display:flex;flex:1;min-height:0;gap:.5vw}.anatomy{position:relative;flex:1;min-width:0;display:flex;justify-content:center;align-items:center;background:radial-gradient(#225962,#10333e);border-radius:13px;overflow:hidden;touch-action:none}.anatomy svg{height:100%;max-width:100%;overflow:visible}.body{fill:#9cd7d51c;stroke:#85b9b9;stroke-width:1.5}.structure{cursor:pointer;stroke:#b5cfc6;stroke-width:1.2;fill:#f5e9bd;transition:fill .15s}.structure.muscle{fill:#ed9f90;stroke:#ffcfb1}.structure:hover,.structure:focus{fill:#ffcf69;outline:none}.structure.hint{fill:#ffcf69;filter:drop-shadow(0 0 5px #ffdf66)}.guide{fill:none;stroke:#d3f4ed;stroke-width:1.2;opacity:.3;pointer-events:none}.tools{width:34%;display:flex;flex-direction:column;gap:.7vh;justify-content:center;align-items:stretch}.tool{min-height:5vh;font-size:clamp(12px,1.8vh,19px)}.tool.selected{background:#ffe4a0;border:2px solid #cd9a35;color:#613f12}.view{font-size:clamp(10px,1.4vh,16px);text-align:center}.feedback{margin:0;min-height:3.2vh;text-align:center;font-size:clamp(11px,1.6vh,18px);display:flex;align-items:center;justify-content:center}.progress{height:5px;background:#d4e4db;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:#1a9d83;transition:width .3s}.repair{fill:#ffe5a0;stroke:white;stroke-width:2;cursor:pointer}.repair.done{fill:#63dca7}.repairline{stroke:#b5ffff;stroke-width:3;fill:none;stroke-dasharray:5 3}#finish{flex:1;text-align:center;align-content:center}#finish h2{font-size:4vh}#finish p{font-size:2.4vh}.paused #stations{pointer-events:none;filter:grayscale(.5);opacity:.55}@media(max-width:700px){header{padding:1vh 3vw}.headline{display:none}.brand{padding:1vh 3vw}#theatre{padding:0 4vw 1vh}.intro{display:none}.options{width:96%;max-width:500px;gap:1vh}.settings{font-size:12px}.seg button{padding:1vh}.mission strong{font-size:17px}.tools{width:32%}nav span{display:none}nav{justify-content:space-between}#controls{padding:.5vh 2vw}.station{padding:.5vh 1vw}.tool{font-size:12px}.feedback{font-size:12px}.monitor{border-width:4px}.doctor{max-width:54%}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.structure.hint{color:#ffcf69!important;stroke:#ffcf69!important}.structure{pointer-events:all}.anatomy svg{user-select:none}

.anatomy{background:#fffdf3;border:1px solid #ccdad3}.atlas-hit{fill:transparent;stroke:transparent;stroke-width:var(--hit);stroke-linecap:round;stroke-linejoin:round;cursor:pointer;pointer-events:all}.atlas-hit.hint,.atlas-hit:focus-visible{fill:var(--fill);stroke:#e5a11de6;outline:none}.repairline{stroke:#17848e;stroke-width:7}.repair{stroke-width:5}nav button{white-space:nowrap}@media(max-width:450px){nav{gap:3px}nav button{font-size:11px;padding:.65vh 6px}}
.anatomy>svg{overflow:hidden}.anatomy svg svg{overflow:hidden}.stars{letter-spacing:0;white-space:nowrap;font-size:clamp(10px,1.65vh,18px)}

.options{gap:.65vh}#courseNote{font-size:clamp(10px,1.4vh,15px);color:#477077}.mission strong{overflow-wrap:anywhere;font-size:clamp(13px,2vh,22px)}.options select{padding:.6vh}

.atlas-hit.correct{fill:#45db9859;stroke:#159763;filter:drop-shadow(0 0 6px #32dca4);pointer-events:none}.atlas-hit.correct[style*="--fill:none"]{fill:none}.anatomy:has(.correct){border-color:#159763;box-shadow:inset 0 0 0 2px #bcebd5}
.atlas-hit.correct{fill:#45db9838;stroke:#15976388;filter:drop-shadow(0 0 4px #32dca480)}
/* Prominent target card, kept within each player's lower-half controls. */
.mission{min-height:8vh;padding:.55vh .7vw;border:2px solid #d2ac46;border-radius:12px;background:linear-gradient(110deg,#fff1b9,#fff9df);box-shadow:0 2px 0 #d5b66640;flex-shrink:0}
.mission>div{display:flex;flex-direction:column;gap:.3vh}
.mission small{font-size:clamp(10px,1.25vh,14px);font-weight:bold;letter-spacing:.04em;color:#6c5a29}
.mission strong{display:block;font-size:clamp(22px,3.4vh,38px);line-height:1.06;font-weight:900;color:#163f49;overflow-wrap:anywhere}
.mission button{background:#fffdf1;border:2px solid #b69238;flex-shrink:0;min-width:4.8vh;min-height:4.8vh}
@media(max-width:700px){.mission{padding:.7vh 2vw;min-height:8vh}.mission strong{font-size:clamp(23px,3.5vh,32px)}}

/* Simple child-facing layout: target, picture, then one action. */
.brand small,.brand span,.ecg,.stars{display:none}
.headline{font-size:clamp(16px,2.1vh,24px)}
.workspace{position:relative;flex-direction:column;gap:.4vh}
.anatomy{min-height:0;width:100%}
.tools{width:100%;flex-direction:row;align-items:center;justify-content:space-between;gap:1vw;flex-shrink:0}
.view{font-size:clamp(11px,1.5vh,16px);color:#54716f;padding:0 .4vw}
.tools button{min-height:4.5vh;padding:.5vh 1.5vw;font-size:clamp(13px,1.8vh,19px)}
.repairtool{background:#176e73;color:white;flex:1}
.feedback:empty{display:none}.feedback{min-height:0;font-size:clamp(12px,1.6vh,18px)}
.progress{display:none}
.mission small{font-size:clamp(12px,1.6vh,18px);letter-spacing:0}
.monitor{text-align:center}.monitor strong{font-size:clamp(28px,4.5vh,48px)}
nav #status{visibility:hidden}nav #home{margin-right:auto}
@media(max-width:700px){.tools{width:100%}.mission strong{font-size:clamp(23px,3.5vh,32px)}}

.anatomy>svg{transform-origin:center;flex-shrink:0;will-change:transform}
.zoom-buttons{display:flex;gap:3px;margin-left:auto}.tools .zoom-buttons button{min-width:36px;min-height:36px;padding:2px 6px;font-size:17px}.tools{flex-wrap:wrap}.tools .view{margin-right:auto}.tools .repairtool{flex-basis:100%}
@media(max-width:700px){.tools .zoom-buttons button{min-width:40px;min-height:40px}}
