body{margin:0;background:#f8f7f2;color:#245847;font:20px system-ui}header{padding:16px;display:flex;gap:12px;flex-wrap:wrap}button{font:inherit;padding:10px 18px;border:1px solid #cbd8cd;border-radius:12px;background:white;color:inherit}button[aria-pressed=true]{background:#245847;color:white}#stage{height:calc(100dvh - 160px);min-height:320px;touch-action:none}canvas{display:block;width:100%;height:100%}p{margin:10px 16px;font-size:16px}#error{color:#a33}
header{gap:6px;padding:10px}header button{font-size:18px;padding:9px 12px}#stage{height:calc(100dvh - 150px)}

/* Local models use the whole viewport; controls and drawers overlay the canvas. */
html,body{height:100%;overflow:hidden}#stage{position:fixed!important;inset:0;height:100dvh!important;min-height:0!important}
header{position:fixed;top:env(safe-area-inset-top,0px);left:8px;z-index:5;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:6px 0;max-height:calc(100dvh - 100px);overflow:auto}
header button{font-size:16px;padding:10px 12px;background:#fffdf7d9}header button[aria-pressed=true]{background:#245847cc;color:#fff}
body>p:not(#error){position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);right:8px;max-width:155px;margin:0;font-size:12px;z-index:3;pointer-events:none}
.local-sheet{position:fixed;z-index:6;bottom:0;left:0;right:0;background:#fffdf7;border-radius:20px 20px 0 0;box-shadow:0 -2px 16px #0002;transform:translateY(calc(100% - 66px - env(safe-area-inset-bottom,0px)));transition:transform .22s ease;max-height:76dvh;padding-bottom:env(safe-area-inset-bottom,0px)}
.local-sheet.expanded{transform:translateY(0)}.local-sheet[hidden]{display:none}
.local-sheet-handle{position:relative;width:100%;height:66px;border:0;border-radius:20px 20px 0 0;background:transparent;text-align:left;padding:22px 18px 10px;font-size:18px;touch-action:none}
.local-sheet-handle:before{content:'';position:absolute;top:8px;left:calc(50% - 22px);width:44px;height:5px;background:#bac8b8;border-radius:5px}
.local-sheet-content{padding:0 16px 16px;max-height:calc(76dvh - 90px);overflow:auto;overscroll-behavior:contain;font-size:16px}
@media(prefers-reduced-motion:reduce){.local-sheet{transition:none}}

/* Shared VI, preserve model controls and viewport geometry. */
body{background:#f8f7f2;color:#243f36;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}button,input,select{font-family:inherit}button{border-radius:14px;border-color:#dce3d8}button:focus-visible{outline:2px solid #806437;outline-offset:2px}button[aria-pressed=true]{border-color:#245847}.atlas-side button{color:#245847}.atlas-meridian-points button{background:rgba(255,254,250,.9)}.atlas-meridian-points button[aria-pressed=true]{background:rgba(220,183,111,.78);color:#49300c}dialog{background:#f8f7f2;color:#243f36;border:1px solid #dce3d8;border-radius:22px}dialog::backdrop{background:#173f3359}

/* Small screens keep model space clear; all part/display choices remain available. */
#local-tools-toggle{display:none}
@media(max-width:600px),(max-height:500px) and (pointer:coarse){
 body header{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px!important;align-items:stretch;left:8px;right:8px;width:auto;max-width:none!important;padding:6px 0;max-height:calc(100dvh - 90px)!important;background:transparent!important;overflow:auto}
 body header button{font-size:15px;min-height:44px;padding:8px 6px;white-space:nowrap}
 #return{grid-area:1/1}#local-tools-toggle{display:block;grid-area:1/2}#reset{grid-area:1/3}
 body header [data-part],body header #reflex-toggle,body header #reflex-system,body header #local-part-menu{display:none!important}
 body.local-tools-open header{background:#f8f7f2fa!important;border-bottom:1px solid #cbd8cd;box-shadow:0 8px 12px #183c3220;padding-bottom:10px}
 body.local-tools-open header:after{content:'';grid-area:2/1/3/4;height:44px;pointer-events:none}
 body.local-tools-open header [data-part]{display:block!important}
 body.local-tools-open header [data-part=hand]{grid-area:3/1}body.local-tools-open header [data-part=foot]{grid-area:3/2}body.local-tools-open header [data-part=ear]{grid-area:3/3}
 body.local-tools-open header [data-part=ear_points]{grid-area:4/1/5/3}
 body.local-tools-open:not(.ear-points-mode) header #reflex-toggle{display:block!important;grid-area:4/3}
 body.local-tools-open header #reflex-system:not([hidden]){display:block!important;grid-area:5/1/6/4;max-width:none!important;width:100%;min-height:44px;box-sizing:border-box}
 body #local-variant-controls{top:calc(env(safe-area-inset-top,0px) + 56px)!important}
 body #local-variant-notice{top:calc(env(safe-area-inset-top,0px) + 108px)!important}
 body.local-tools-open #local-variant-notice{display:none}
 body>p:not(#error):not(#local-variant-notice){top:calc(env(safe-area-inset-top,0px) + 58px);left:8px;right:auto;max-width:calc(100vw - 175px);font-size:11px;line-height:1.5}
 .loading-shell.local .loading-shell-left{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));left:8px;right:8px;top:calc(env(safe-area-inset-top,0px) + 6px);width:auto;gap:6px}
 .loading-shell.local .loading-shell-left .loading-shell-item{display:none}
 .loading-shell.local .loading-shell-left .loading-shell-item:first-child{display:block;grid-area:1/1}
 .loading-shell.local .loading-shell-left .loading-shell-item:nth-child(5){display:block;grid-area:1/3}
 .loading-shell.local .loading-shell-left:after{content:'部位 ▾';grid-area:1/2;text-align:center;padding:10px 3px;border:1px solid #d3dcd3;border-radius:12px;background:#fffdf7d9}
 .loading-shell.local .loading-shell-top{top:calc(env(safe-area-inset-top,0px) + 58px);left:8px;right:auto;max-width:155px}
}
