:root{font-family:"Yu Gothic UI","Meiryo",system-ui,sans-serif;color:#23354a;background:#edf1f4;font-size:13px;--accent:#126e83;--line:#d7e0e7;--muted:#6a7b8b}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:7px;padding:9px 12px;font-weight:600;transition:background .12s}button:hover{filter:brightness(.95)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #74bece;outline-offset:2px}button:disabled{opacity:.45;cursor:wait}header{height:68px;background:#152e43;color:white;padding:0 25px;display:flex;justify-content:space-between;align-items:center}.brand{font-size:24px;font-weight:500;letter-spacing:1px}.brand b{color:#8ed7df;font-weight:600}.tagline{margin-left:22px;color:#b6cbd7;font-size:12px}.local-badge{font-size:11px;color:#aee2d6;background:#244956;padding:6px 10px;border-radius:20px}main{height:calc(100dvh - 103px);display:grid;grid-template-columns:258px minmax(350px,1fr) 282px;gap:12px;padding:12px}aside{overflow-y:auto;scrollbar-width:thin;padding-right:3px}section{background:white;border:1px solid var(--line);border-radius:10px;padding:15px;margin-bottom:11px}h2{font-size:13px;margin:0 0 12px;font-weight:700}h2>span{color:var(--accent);font-size:10px;letter-spacing:1px;margin-right:7px}label{display:block;font-size:12px;margin:10px 0 5px;font-weight:600}select,input[type=text],input[type=number]{width:100%;padding:8px;border:1px solid #cbd6df;border-radius:6px;background:#fafcfd;color:#23354a}input[type=range]{width:100%;accent-color:var(--accent);height:19px;margin:2px 0 7px}.hint{font-size:11px;line-height:1.75;color:var(--muted);margin:7px 0}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.preset-grid button{font-size:11px;padding:8px 4px;background:#f0f5f7;color:#3b5265;font-weight:500}.preset-grid button.active{background:#d7edf0;color:#116578;box-shadow:inset 0 0 0 1px #8fc1cb}.primary{background:var(--accent);color:white}.secondary{background:#edf3f6;color:#324e62;border:1px solid #d8e3ea}.wide{display:block;width:100%;margin-top:9px}.button-row{display:flex;gap:6px;margin-top:8px}.button-row>*{flex:1;font-size:11px;padding:8px 5px}.axis-row{display:grid;grid-template-columns:20px 1fr 57px;gap:7px;align-items:center;margin:8px 0}.axis-row label{margin:0;font-size:12px}.axis-row input[type=number]{font-size:12px;padding:5px}.axis-row input[type=range]{margin:0}.axis-x{color:#b84e4d}.axis-y{color:#4b975d}.axis-z{color:#477cc0}.workspace{min-width:0;display:flex;flex-direction:column;background:#e7ecef;border-radius:10px;border:1px solid var(--line);overflow:hidden}.view-toolbar{display:flex;justify-content:space-between;gap:6px;align-items:center;background:#fff;padding:9px;flex-wrap:wrap;border-bottom:1px solid var(--line)}#views{display:flex;gap:3px}#views button,.view-toolbar>button{font-size:11px;padding:7px 9px;background:#edf2f5;color:#425b6e}#views button.active{background:#126e83;color:#fff}.stage{position:relative;flex:1;min-height:300px;overflow:hidden}#viewport{position:absolute;inset:0}#viewport canvas{width:100%;height:100%;display:block;touch-action:none}#frame-guide{position:absolute;border:1px dashed #849ca75c;pointer-events:none;box-shadow:0 0 0 2000px #58697912}.view-caption{position:absolute;top:16px;left:17px;background:#ffffffc9;color:#526b7a;border:1px solid #d3dce3;padding:5px 9px;border-radius:5px;font-size:11px;pointer-events:none}.stage-help{position:absolute;bottom:17px;left:12px;right:12px;text-align:center;color:#647887;font-size:10px;pointer-events:none}.stage-bottom{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:10px 13px;background:white;border-top:1px solid var(--line);flex-wrap:wrap}.check{display:flex;gap:6px;align-items:center;margin:5px 0;font-size:11px;font-weight:500}.check input{accent-color:var(--accent)}#selection{font-size:11px;color:#476171}output{float:right;font-weight:400;color:var(--muted)}.size-row{display:flex;gap:8px}.size-row[hidden]{display:none}.size-row>*{flex:1}.path{font-size:10px;line-height:1.7;color:#667888;overflow-wrap:anywhere;background:#f4f7f9;border-radius:5px;padding:8px}.text-button{background:transparent;color:#71828d;font-size:11px;padding:12px;margin-top:8px}details{font-size:11px;color:#607586;padding:3px 8px}summary{cursor:pointer}footer{height:35px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f9fbfc;border-top:1px solid var(--line);font-size:11px;color:#697d8b}#status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:85%}#status.error{color:#b44537}@media(max-width:1060px){main{grid-template-columns:220px minmax(270px,1fr) 240px;gap:8px;padding:8px}.tagline{display:none}section{padding:11px}.stage-bottom{gap:5px}.view-toolbar{gap:3px}#views button{padding:7px}}@media(max-width:780px){main{height:auto;grid-template-columns:1fr}.workspace{grid-row:1;height:65vh;min-height:440px}aside{overflow:visible}.left-panel{display:grid;grid-template-columns:1fr 1fr;gap:9px}.right-panel{display:grid;grid-template-columns:1fr 1fr;gap:9px}header{padding:0 15px}footer{position:sticky;bottom:0}.tagline,footer>span:last-child{display:none}}
.left-panel>.panel-section{background:white;border:1px solid var(--line);border-radius:10px;margin:0 0 11px;padding:0;color:inherit;font-size:13px;align-self:start;overflow:hidden}
.panel-section>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:15px;list-style:none;user-select:none}
.panel-section>summary::-webkit-details-marker{display:none}
.panel-section>summary::after{content:'▾';font-size:13px;color:var(--muted)}
.panel-section:not([open])>summary::after{content:'▸'}
.panel-section>summary:hover{background:#f5f9fa}
.panel-section>summary:focus-visible{outline:3px solid #74bece;outline-offset:-3px}
.panel-section>summary>h2{margin:0}
.panel-content{padding:0 15px 15px}
.panel-content>label:first-child{margin-top:0}
@media(max-width:1060px){.panel-section>summary{padding:11px}.panel-content{padding:0 11px 11px}}

.finger-controls{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.finger-controls h3{font-size:12px;margin:0 0 8px}
.finger-row{display:grid;grid-template-columns:52px minmax(40px,1fr) 48px;gap:5px;align-items:center;margin:7px 0}
.finger-row label{margin:0;font-size:11px}
.finger-row input[type=range]{margin:0}
.finger-row input[type=number]{padding:5px;font-size:11px}

.point-legend{display:flex;gap:10px;align-items:center;color:#607586;font-size:11px}
.point-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.joint-dot{background:#1682a0}.orientation-dot{background:#f29c3e}

.stage{--picker-width:190px;--picker-space:214px}
#viewport{left:var(--picker-space)}
.view-caption{left:calc(var(--picker-space) + 17px)}
.stage-help{left:calc(var(--picker-space) + 12px)}
.joint-picker{position:absolute;z-index:2;left:12px;top:16px;bottom:40px;width:var(--picker-width);max-height:560px;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;background:#fffffff2;border:1px solid var(--line);border-radius:10px;padding:12px 8px 10px;box-shadow:0 2px 8px #243c4b08}
.joint-picker h3{font-size:12px;margin:0 4px 4px;color:#324e62}
.joint-picker p{font-size:10px;color:var(--muted);margin:0 4px 8px}
.joint-diagram{position:relative;flex:1;min-height:430px;max-height:480px}
.joint-diagram svg{position:absolute;width:100%;height:100%;pointer-events:none}
.joint-pick{position:absolute;transform:translate(-50%,-50%);padding:5px 4px;min-height:27px;width:58px;max-width:46%;border:1px solid #b9d4dd;border-radius:6px;background:#f5fbfc;color:#17687c;font-size:11px;line-height:1.2;white-space:nowrap;font-weight:600;box-shadow:0 1px 2px #1835480b}
.joint-pick[aria-pressed=true]{background:#126e83;color:white;border-color:#126e83;box-shadow:0 0 0 2px #9bcbd5}
.joint-pick.orientation-pick{width:86px;background:#fff5e7;color:#925308;border-color:#e7bc7f;font-size:10px}
.joint-pick.orientation-pick[aria-pressed=true]{background:#b86b10;color:white;border-color:#b86b10;box-shadow:0 0 0 2px #f5d8ac}
@media(max-width:1250px){.stage{--picker-width:142px;--picker-space:160px}.joint-picker{left:6px;padding:10px 4px}.joint-pick{width:48px;font-size:10px;padding:5px 2px}.joint-pick.orientation-pick{width:72px;font-size:9px}.joint-picker p{font-size:9px}}
@media(max-height:650px){.joint-picker{top:8px;bottom:30px;padding-top:7px}.joint-picker p{display:none}.joint-pick{min-height:22px;padding-top:3px;padding-bottom:3px;font-size:10px}}

.header-actions{display:flex;align-items:center;gap:16px}
.help-menu{position:relative;padding:0;color:white;font-size:12px}
.help-menu>summary{display:flex;align-items:center;gap:6px;list-style:none;padding:8px 12px;border:1px solid #698596;border-radius:7px;white-space:nowrap}
.help-menu>summary::-webkit-details-marker{display:none}
.help-menu>summary>span{display:grid;place-items:center;width:17px;height:17px;border:1px solid #acc5d1;border-radius:50%;font-size:11px}
.help-menu>summary:hover,.help-menu[open]>summary{background:#29495e}
.help-menu>summary:focus-visible{outline:3px solid #8ed7df;outline-offset:3px}
.help-dropdown{position:absolute;right:0;top:calc(100% + 9px);width:210px;z-index:50;padding:5px;border:1px solid #d7e0e7;border-radius:9px;background:white;box-shadow:0 8px 24px #102a4330}
.help-dropdown button{display:block;width:100%;text-align:left;padding:12px 10px;background:white;color:#2e4b5e;font-size:12px}
.help-dropdown button:hover{background:#edf6f8;filter:none}
.manual-dialog{padding:0;border:1px solid #cbd9e0;border-radius:12px;width:min(1060px,95vw);height:90dvh;max-height:950px;max-width:95vw;color:#23354a;box-shadow:0 20px 80px #102a4340;overflow:hidden}
.manual-dialog::backdrop{background:#102a4380}
.manual-dialog[open]{display:flex;flex-direction:column}
.manual-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:#152e43;color:white;flex:none}
.manual-dialog-head h2{margin:0;font-size:14px}
.manual-dialog-head button{background:#29495e;color:white;padding:7px 13px;font-size:12px}
.manual-dialog-head button span{margin-left:10px;font-size:17px}
#manual-frame{display:block;width:100%;flex:1;min-height:0;border:0;background:#f5f8fa}
.shoulder-lift-controls{margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
.shoulder-lift-controls h3{font-size:12px;margin:0 0 6px}
.shoulder-lift-row{display:grid;grid-template-columns:32px minmax(40px,1fr) 52px;gap:5px;align-items:center;margin:8px 0}
.shoulder-lift-row label{margin:0;font-size:11px}
.shoulder-lift-row input[type=range]{margin:0}
.shoulder-lift-row input[type=number]{padding:5px;font-size:11px}
@media(max-width:540px){.header-actions{gap:8px}.header-actions .local-badge{display:none}.manual-dialog{width:98vw;max-width:98vw;height:95dvh}.manual-dialog-head{padding:10px 12px}}
