:root{--bg:#f6f1ea;--panel:#fffdf9;--ink:#2b2420;--muted:#8a7d72;--line:#e6ddd2;--accent:#b4473c;--accent-soft:#f6e1dc;color:var(--ink);background:var(--bg);font-family:Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}.app{grid-template:"top top top""list stage info"1fr"mode mode mode"/240px 1fr 300px;gap:12px;height:100dvh;padding:12px;display:grid}.topbar{grid-area:top;align-items:center;gap:12px;display:flex}.topbar h1{letter-spacing:-.02em;margin:0;font-size:22px}.badge{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:4px 10px;font-size:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;overflow-y:auto}.list-panel{grid-area:list}.info-panel{grid-area:info}.search{border:1px solid var(--line);background:var(--bg);width:100%;font:inherit;border-radius:10px;padding:10px 12px}.list-panel h2{color:var(--muted);margin:18px 0 6px;font-size:12px;font-weight:600}.list-panel ul{margin:0;padding:0;list-style:none}.list-panel li button{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:baseline;gap:8px;padding:9px 10px;display:flex}.list-panel li button:hover{background:var(--bg)}.list-panel li button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.list-panel small{color:var(--muted);font-size:11px;font-weight:400}.stage-wrap{border:1px solid var(--line);background:radial-gradient(circle at 50% 40%,#fff,#ece3d8);border-radius:16px;grid-area:stage;position:relative;overflow:hidden}.stage{touch-action:none;position:absolute;inset:0}.stage canvas{width:100%;height:100%;display:block}.stage-note{color:var(--muted);pointer-events:none;margin:0;font-size:12px;position:absolute;bottom:12px;left:16px}.toolbar{pointer-events:none;flex-wrap:wrap;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.toolbar>*{pointer-events:auto}.toolbar .group{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px;display:flex}.toolbar button{min-height:36px;color:var(--ink);background:0 0;border:0;border-radius:9px;padding:6px 12px;font-size:14px}.toolbar button:hover{background:var(--bg)}.toolbar .group button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.toolbar .focus{background:var(--accent);color:#fff;border-radius:12px;margin-left:auto;padding:6px 14px}.toolbar .focus:hover{background:#9c3a30}.eyebrow{color:var(--accent);margin:0;font-size:12px;font-weight:600}.info-panel h2{margin:4px 0 6px;font-size:26px}.names{color:var(--muted);margin:0 0 18px;font-size:14px;line-height:1.5}.info-panel dl{gap:10px;margin:0;display:grid}.info-panel dl div{background:var(--bg);border-radius:10px;padding:10px 12px}.info-panel dt{color:var(--muted);font-size:12px}.info-panel dd{margin:2px 0 0}.review{color:#a26a00;margin-top:16px;font-size:12px}.empty{color:var(--muted);text-align:center;margin-top:40%;line-height:1.7}.modebar{grid-area:mode;gap:8px;display:flex;overflow-x:auto}.modebar button{border:1px solid var(--line);background:var(--panel);border-radius:99px;flex:none;padding:10px 16px}.modebar button:disabled{color:var(--muted);cursor:not-allowed}@media (width<=900px){.app{grid-template-columns:190px 1fr;grid-template-areas:"top top""list stage""info info""mode mode";height:auto}.stage-wrap,.list-panel{height:64vh}.empty{margin:8px 0}.list-panel li button{flex-direction:column;align-items:flex-start;gap:1px}.list-panel span{white-space:nowrap}}@media (width<=600px){.app{grid-template-columns:1fr;grid-template-areas:"top""stage""info""list""mode";padding:8px 16px}.stage-wrap{height:58vh}.list-panel{height:auto;max-height:50vh}.toolbar button{padding:6px 9px}.stage-note{font-size:10px}}.loading{color:var(--muted);pointer-events:none;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.dot{vertical-align:1px;border-radius:50%;width:8px;height:8px;margin:0 2px 0 6px;display:inline-block}.dot.origin{background:#23a56b}.dot.insertion{background:#2f6fd6}.info-panel dt .dot{margin-left:0}.view-switch{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px;display:flex}.view-switch button{color:var(--ink);background:0 0;border:0;border-radius:9px;padding:7px 14px}.view-switch button.on{background:var(--accent);color:#fff;font-weight:600}.view-switch small{opacity:.8;margin-left:4px}.summary{margin:0 0 14px;font-size:14px;line-height:1.6}.details{gap:10px;margin:0;display:grid}.details>div{background:var(--bg);border-radius:10px;padding:10px 12px}.details dt{color:var(--muted);margin-bottom:4px;font-size:12px}.details dd{margin:0;font-size:14px;line-height:1.55}.details ul,.details ol{margin:0;padding-left:18px}.attach-list{gap:4px;list-style:none;display:grid;padding:0!important}.attach-list b{margin-right:6px;font-weight:600}.attach-list span{color:var(--muted)}.roots{background:var(--panel);border:1px solid var(--line);border-radius:99px;margin-left:6px;padding:1px 7px;font-size:12px}.chips{flex-wrap:wrap;gap:5px;display:flex}.chips span{background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:3px 9px;font-size:12px}.app.reviewing{height:auto;display:block}.app.reviewing .list-panel,.app.reviewing .info-panel,.app.reviewing .stage-wrap,.app.reviewing .modebar{display:none}.app.reviewing .topbar{margin-bottom:12px}.review-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.review-head h2{margin:0 0 4px;font-size:20px}.review-head p{max-width:640px;color:var(--muted);margin:0;font-size:14px;line-height:1.6}.review-actions{align-items:center;gap:10px;display:flex}.progress-pill{background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:6px 12px;font-size:13px}.primary{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:10px 16px;font-weight:600}.copied{color:#23a56b;font-size:13px}.report-fallback{width:100%;min-height:160px;font:inherit;border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:10px;font-size:13px}.review-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;display:grid}.review-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:12px;padding:16px;display:flex}.review-card.ok{border-color:#23a56b;box-shadow:inset 4px 0 #23a56b}.review-card.fix{border-color:#d98a00;box-shadow:inset 4px 0 #d98a00}.review-card h3{margin:2px 0;font-size:22px}.review-card .names{margin:0 0 8px}.review-card .summary{margin:0}.review-card footer{gap:8px;margin-top:auto;display:grid}.status-buttons{gap:8px;display:flex}.status-buttons button{border:1px solid var(--line);background:var(--panel);border-radius:10px;flex:1;min-height:40px;font-weight:600}.status-buttons .ok.on{color:#fff;background:#23a56b;border-color:#23a56b}.status-buttons .fix.on{color:#fff;background:#d98a00;border-color:#d98a00}.review-card textarea{resize:vertical;min-height:56px;font:inherit;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:8px 10px;font-size:14px}@media (width<=600px){.review-grid{grid-template-columns:1fr}.view-switch button{padding:7px 10px}.topbar .badge{display:none}}.modebar button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.connected{background:#fdf3e2;border:1px solid #f0d9b0;border-radius:12px;margin:0 0 12px;padding:12px}.connected h3{color:#9a5b00;margin:0 0 8px;font-size:13px}.connected ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.connected li{gap:4px;display:grid}.connected .site{color:var(--muted);font-size:12px}.neighbor-list{flex-wrap:wrap;gap:5px;display:flex}.neighbor-list button{color:var(--ink);background:#fff;border:1px solid #e0a03a;border-radius:99px;padding:5px 10px;font-size:13px}.neighbor-list button:hover{background:#fbe7c4}.neighbor-list small{color:#9a5b00;margin-left:4px;font-size:11px}.connected-empty{color:var(--muted);margin:0;font-size:13px;line-height:1.5}:root{--prime:#d8382c;--synergist:#f0922e;--antagonist:#4a82d8;--stabilizer:#2fa36b}.dot.prime{background:var(--prime)}.dot.synergist{background:var(--synergist)}.dot.antagonist{background:var(--antagonist)}.movement-panel h2{margin:14px 0 4px;font-size:24px}.movement-picker{grid-template-columns:48px 1fr;align-items:start;gap:6px;margin-top:8px;display:grid}.movement-picker>span{color:var(--muted);padding-top:7px;font-size:12px}.movement-picker>div{flex-wrap:wrap;gap:5px;display:flex}.movement-picker button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:5px 10px;font-size:13px}.movement-picker button.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.example{color:var(--muted);margin:-6px 0 14px;font-size:13px}.role-group{background:var(--bg);border-left:4px solid var(--role);border-radius:12px;margin-bottom:10px;padding:10px 12px}.role-group.prime{--role:var(--prime)}.role-group.synergist{--role:var(--synergist)}.role-group.antagonist{--role:var(--antagonist)}.role-group.stabilizer{--role:var(--stabilizer)}.role-group h3{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;font-size:14px;display:flex}.role-group h3 small{color:var(--muted);font-size:12px;font-weight:400}.role-group .swatch{background:var(--role);border-radius:3px;width:10px;height:10px}.role-muscles{flex-wrap:wrap;gap:5px;display:flex}.role-muscles button{border:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;border-radius:10px;padding:5px 10px;font-size:13px}.role-muscles button:hover{border-color:var(--role)}.role-muscles small{color:var(--muted);font-size:11px;display:block}.role-footnote{color:var(--muted);margin:6px 0 0;font-size:12px}.muscle-movements{margin:0 0 12px}.muscle-movements h3{color:var(--muted);margin:0 0 6px;font-size:13px}.muscle-movements>div{flex-wrap:wrap;gap:5px;display:flex}.muscle-movements button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:5px 10px;font-size:13px}.muscle-movements button small{margin-left:5px;font-size:11px;font-weight:600}.muscle-movements button.prime small{color:var(--prime)}.muscle-movements button.synergist small{color:#c06d0c}.muscle-movements button.antagonist small{color:var(--antagonist)}.muscle-movements button.stabilizer small{color:var(--stabilizer)}:root{--chain:#1f9e9a;--chain-tissue:#f2c14e}.dot.chain{background:var(--chain)}.dot.chain-tissue{background:var(--chain-tissue)}.chain-picker{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.chain-picker button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:6px 12px;font-size:13px}.chain-picker button.on{background:var(--chain);border-color:var(--chain);color:#fff;font-weight:600}.chain-panel h2{margin:14px 0 4px;font-size:24px}.chain-steps{margin:4px 0 14px;padding:0;list-style:none;position:relative}.chain-steps:before{content:"";background:var(--chain);opacity:.35;border-radius:2px;width:3px;position:absolute;top:10px;bottom:10px;left:7px}.chain-steps li{grid-template-columns:18px 1fr;gap:10px;padding:6px 0;display:grid;position:relative}.chain-steps .node{background:var(--chain);width:17px;height:17px;box-shadow:0 0 0 1px var(--line);border:3px solid #fff;border-radius:50%;margin-top:2px}.chain-steps li.tissue .node{background:var(--chain-tissue)}.chain-steps b{font-size:14px}.chain-steps small{color:var(--muted);font-size:11px;display:block}.chain-steps small.cross{color:#9a5b00;font-weight:600}.step-muscles{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.step-muscles button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:3px 9px;font-size:12px}.step-muscles button:hover{border-color:var(--chain)}.chain-practice{background:#e9f6f5;border:1px solid #bfe3e1;border-radius:12px;padding:10px 12px}.chain-practice h3{color:#0b5f5c;margin:0 0 6px;font-size:13px}.chain-practice ul{margin:0;padding-left:18px;font-size:13px;line-height:1.6}.quick-lists{gap:4px;margin-top:4px;display:grid}.quick-chips{flex-wrap:wrap;gap:5px;display:flex}.quick-chips button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:5px 10px;font-size:13px}.quick-chips button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.no-result{color:var(--muted);margin:16px 4px;font-size:13px}.muscle-title{align-items:center;gap:8px;display:flex}.star{color:#c9b9a6;background:0 0;border:0;border-radius:8px;padding:2px 4px;font-size:24px;line-height:1}.star:hover{background:var(--bg)}.star.on{color:#e6a700}.section-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;flex-basis:100%;align-items:center;gap:10px;padding:8px 10px;display:flex;box-shadow:0 4px 16px #0000000f}.section-panel .group{gap:2px;display:flex}.section-panel .group button{min-height:34px;color:var(--ink);background:0 0;border:0;border-radius:9px;padding:5px 10px;font-size:13px}.section-panel .group button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.section-panel label{min-width:160px;color:var(--muted);flex:1;align-items:center;gap:8px;font-size:13px;display:flex}.section-panel input[type=range]{accent-color:var(--accent);flex:1}.dot.stabilizer{background:var(--stabilizer)}.exercise-tabs{border-bottom:1px solid var(--line);gap:2px;margin-top:8px;display:flex;overflow-x:auto}.exercise-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:7px 10px;font-size:13px}.exercise-tabs button.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.exercise-list{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.exercise-list button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:6px 11px;font-size:13px}.exercise-list button.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.exercise-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:16px 0 10px;display:flex}.exercise-head h2{margin:0;font-size:24px}.present-button{padding:8px 14px;font-size:13px}.cue-box,.mistake-box{border-radius:12px;margin:10px 0;padding:10px 12px;font-size:13px;line-height:1.6}.cue-box{background:#eef6ee;border:1px solid #cfe5cf}.mistake-box{background:#fdf0ec;border:1px solid #f1d3c9}.cue-box h3,.mistake-box h3{margin:0 0 4px;font-size:13px}.cue-box ol,.mistake-box ul{margin:0;padding-left:18px}.app.presenting{grid-template:"top""stage"1fr/1fr}.app.presenting .list-panel,.app.presenting .info-panel,.app.presenting .modebar,.app.presenting .toolbar,.app.presenting .stage-note{display:none}.app.presenting .stage-wrap{height:auto}.present{pointer-events:none;position:absolute;inset:0}.present-actions{pointer-events:auto;gap:8px;display:flex;position:absolute;top:14px;right:14px}.present-actions button{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:10px 16px;font-size:15px}.present-card{border:1px solid var(--line);pointer-events:auto;background:#fffdf9eb;border-radius:20px;max-width:min(520px,100% - 40px);padding:20px 24px;position:absolute;bottom:20px;left:20px;box-shadow:0 8px 30px #00000014}.present-card h2{letter-spacing:-.02em;margin:0 0 8px;font-size:40px}.present-main{margin:0;font-size:22px;font-weight:700}.present-assist{color:var(--muted);margin:4px 0 0;font-size:16px}.present-card .dot{width:12px;height:12px;margin-left:0}.present-card ol{margin:14px 0 0;padding-left:22px;font-size:18px;line-height:1.7}@media (width<=600px){.present-card h2{font-size:28px}.present-main{font-size:18px}.present-card ol{font-size:15px}}.quiz-panel h2{margin:6px 0 8px;font-size:24px}.quiz-start{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.quiz-start button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:10px 16px;font-size:14px}.quiz-start button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.quiz-start button:disabled{opacity:.45;cursor:not-allowed}.quiz-best{color:var(--muted);margin:0 0 12px;font-size:13px}.quiz-empty{color:var(--muted);font-size:13px;line-height:1.6}.quiz-progress{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.quiz-bar{background:var(--bg);border-radius:99px;height:6px;margin:6px 0 10px;overflow:hidden}.quiz-bar div{background:var(--accent);height:100%;transition:width .3s}.quiz-prompt{line-height:1.45;font-size:20px!important}.quiz-options{gap:8px;display:grid}.quiz-options button{border:1px solid var(--line);background:var(--panel);text-align:left;min-height:48px;color:var(--ink);border-radius:12px;padding:10px 14px;font-size:15px}.quiz-options button:hover:not(:disabled){border-color:var(--accent)}.quiz-options button.correct{color:#146b43;background:#e3f4ea;border-color:#23a56b;font-weight:700}.quiz-options button.wrong{color:#9c2a20;background:#fbe4e1;border-color:#d8382c}.quiz-options button.dim{opacity:.5}.quiz-options button:disabled{cursor:default}.quiz-locate{background:var(--bg);border-radius:12px;padding:12px;font-size:14px}.quiz-locate p{margin:0 0 8px}.quiz-locate button{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:8px 14px}.quiz-hint{color:#9a5b00}.quiz-feedback{border-radius:12px;margin-top:12px;padding:12px 14px;font-size:14px;line-height:1.55}.quiz-feedback.correct{background:#e3f4ea;border:1px solid #b6dfc7}.quiz-feedback.wrong{background:#fbe9e6;border:1px solid #f0c6bf}.quiz-feedback>b{font-size:16px}.quiz-feedback p{margin:4px 0}.quiz-feedback .primary{margin-top:6px}.quiz-score{margin:4px 0!important;font-size:48px!important}.quiz-score small{color:var(--muted);font-size:22px}.quiz-review,.wrong-notes ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.quiz-review li,.wrong-notes li{background:var(--bg);border-radius:10px;gap:3px;padding:10px 12px;font-size:13px;display:grid}.quiz-review b{color:#146b43}.wrong-notes{margin-top:8px}.wrong-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.wrong-head h3{margin:0;font-size:14px}.wrong-head button{color:var(--muted);background:0 0;border:0;font-size:12px;text-decoration:underline}.wrong-notes .tag{color:var(--muted);font-size:11px}.wrong-notes .answer{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wrong-notes .answer b{color:#146b43}.wrong-notes .answer button{border:1px solid var(--line);background:var(--panel);border-radius:99px;padding:3px 9px;font-size:12px}:root{--sagittal:#d8382c;--frontal:#2f6fd6;--transverse:#23a56b}.plane-row{background:var(--bg);border-left:4px solid var(--plane);border-radius:10px;margin:6px 0;padding:8px 10px}.plane-row.sagittal{--plane:var(--sagittal)}.plane-row.frontal{--plane:var(--frontal)}.plane-row.transverse{--plane:var(--transverse)}.plane-head{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.plane-head b{color:var(--plane);font-size:13px}.plane-head small{color:var(--muted);font-size:11px}.plane-none{color:var(--muted);margin:4px 0 0;font-size:12px}.plane-row ul{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.plane-row .move{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:4px 10px;font-size:13px}.plane-row .move small{margin-left:5px;font-size:11px;font-weight:600}.plane-row .move.prime small{color:var(--prime)}.plane-row .move.synergist small{color:#c06d0c}.plane-row .move.antagonist small{color:var(--antagonist)}.partners{color:var(--ink);margin:4px 0 0 8px;font-size:12px;line-height:1.5}.partners p{margin:0}.partners .dot{margin-left:0}.plane-path{background:#f1f4fb;border:1px solid #d6def0;border-radius:12px;margin:0 0 12px;padding:10px 12px}.plane-path-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.plane-path-head h3{color:#2c4b8a;margin:0;font-size:13px}.plane-path-head button{color:#2c4b8a;background:#fff;border:1px solid #b8c6e6;border-radius:99px;padding:4px 10px;font-size:12px}.plane-path-head button.on{color:#fff;background:#2f6fd6;border-color:#2f6fd6}.plane-path-route{margin:0 0 6px;font-size:13px;line-height:1.5}.plane-path-route .arrow{color:var(--muted);margin:0 6px}.plane-path ul{gap:4px;margin:0;padding:0;font-size:13px;line-height:1.5;list-style:none;display:grid}.plane-path li b{min-width:72px;margin-right:6px;display:inline-block}.plane-path li.sagittal b{color:var(--sagittal)}.plane-path li.frontal b{color:var(--frontal)}.plane-path li.transverse b{color:var(--transverse)}.plane-path-note{color:var(--muted);margin:6px 0 0;font-size:11px;line-height:1.5}.about-button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;margin-left:auto;padding:7px 12px;font-size:13px}dialog.about{border:1px solid var(--line);background:var(--panel);width:min(560px,100% - 32px);max-height:calc(100dvh - 48px);color:var(--ink);border-radius:18px;padding:0;box-shadow:0 20px 60px #0003}dialog.about::backdrop{background:#2b242059}dialog.about header{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}dialog.about header h2{margin:0;font-size:18px}dialog.about header button{background:0 0;border:0;border-radius:8px;padding:4px 8px;font-size:18px}dialog.about section{padding:12px 20px;font-size:14px;line-height:1.65}dialog.about h3{color:var(--accent);margin:0 0 4px;font-size:13px}dialog.about p{margin:0}dialog.about ul{gap:4px;margin:0;padding-left:18px;display:grid}dialog.about a{color:#2f6fd6}dialog.about code{background:var(--bg);border-radius:5px;padding:1px 5px;font-size:12px}.about-note{color:var(--muted);font-size:12px;margin-top:6px!important}
