/* Controls respect a shared safe frame; the scene and its coordinates stay full-size. */
:root{--hud-left:max(24px,calc(env(safe-area-inset-left,0px) + 14px));--hud-right:max(24px,calc(env(safe-area-inset-right,0px) + 14px));--hud-top:max(14px,calc(env(safe-area-inset-top,0px) + 10px));--hud-bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 12px));--hud-button:44px}
html,body{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body .top-actions{top:var(--hud-top)!important;right:var(--hud-right)!important;max-width:calc(100vw - var(--hud-left) - var(--hud-right))!important;gap:5px!important;padding:7px!important}
body.garden-mode .top-actions>button:is(#back-battle,#album-btn,#sound,#settings-btn,#level-btn,#speed,#pause,.garden-nav-btn),body .top-actions>button:is(#back-battle,#album-btn,#sound,#settings-btn,#level-btn,#speed,#pause,.garden-nav-btn){box-sizing:border-box!important;flex:0 0 var(--hud-button)!important;width:var(--hud-button)!important;min-width:var(--hud-button)!important;max-width:var(--hud-button)!important;height:var(--hud-button)!important;min-height:var(--hud-button)!important;max-height:var(--hud-button)!important;margin:0!important;padding:8px!important;align-self:center}
body .top-actions #back-battle svg{display:block!important;width:24px;height:24px;fill:none!important;stroke:currentColor}
body .top-actions>button img,body .top-actions>button svg{width:24px!important;height:24px!important;object-fit:contain;flex-shrink:0}
body .world>#garden-dock,body .world>#deployment-dock{left:var(--hud-left)!important;bottom:var(--hud-bottom)!important;max-width:calc(100vw - var(--hud-left) - var(--hud-right))!important}
body .world>#garden-dock{right:var(--hud-right)!important}
body .world>#deployment-dock{right:calc(var(--hud-right) + 102px)!important}
body .world>#focus-btn{right:var(--hud-right)!important;bottom:var(--hud-bottom)!important}
body .world>#quick-start{right:var(--hud-right)!important;top:calc(var(--hud-top) + var(--hud-button) + 24px)!important}
body #tactical-tip{left:var(--hud-left)!important;top:var(--hud-top)!important;max-width:min(36vw,330px,calc(100vw - var(--hud-left) - var(--hud-right) - 260px))!important}
body .visit-return,body .garden-rest{left:var(--hud-left)!important;top:var(--hud-top)!important}
body #modal,body #welcome{box-sizing:border-box;max-width:calc(100vw - var(--hud-left) - var(--hud-right))!important;max-height:calc(100dvh - var(--hud-top) - var(--hud-bottom))!important}
body.panel-open #sidebar{right:var(--hud-right)!important;top:calc(var(--hud-top) + var(--hud-button) + 24px)!important;bottom:var(--hud-bottom)!important;max-width:calc(100vw - var(--hud-left) - var(--hud-right))!important}
body.panel-open #panel-close{right:calc(var(--hud-right) + 8px)!important;top:calc(var(--hud-top) + var(--hud-button) + 30px)!important}
.entry-password{position:relative;display:block;width:100%}.entry-password input{width:100%;box-sizing:border-box;padding-right:46px!important}
.entry-password .password-visibility{position:absolute;inset:50% 3px auto auto;transform:translateY(-50%);width:40px;min-width:40px;height:36px;min-height:36px;padding:8px;border:0;background:transparent;color:#5b7769;box-shadow:none;display:grid;place-items:center}
.password-visibility svg{width:22px;height:22px}.password-visibility .eye-slash{display:none}.password-visibility[aria-pressed=true] .eye-slash{display:block}
.pad-button[data-owner],.lamp-control[data-owner]{overflow:visible!important}
.pad-button[data-owner]:after,.lamp-control[data-owner]:after{content:attr(data-owner-label);position:absolute;left:50%;bottom:-4px;transform:translateX(-50%);font:700 10px/1.3 system-ui;letter-spacing:.3px;white-space:nowrap;padding:3px 7px;border-radius:10px;background:#173f39eb;border:1px solid #9af4cf;color:#c8ffe8;box-shadow:0 2px 5px #0b172544;pointer-events:none}
.pad-button[data-owner=peer]:after,.lamp-control[data-owner=peer]:after{border-color:#b9d4ff;background:#263957ef;color:#d5e5ff;border-radius:4px}
.pad-button[data-owner=peer],.lamp-control[data-owner=peer]{cursor:help!important}
body #sidebar .teammate-note{display:block!important;grid-column:1/-1;flex-basis:100%;padding:10px 12px;margin:0 0 8px;background:#e1eaf8;border:1px solid #bacde4;border-radius:10px;color:#335273;font-size:13px;font-weight:700;line-height:1.6}.teammate-note small{font-size:11px;font-weight:400}
@media(pointer:coarse),(max-height:500px){:root{--hud-left:max(28px,calc(env(safe-area-inset-left,0px) + 14px));--hud-right:max(28px,calc(env(safe-area-inset-right,0px) + 14px));--hud-button:40px}body .top-actions{padding:6px!important;gap:4px!important}input,textarea,select{font-size:16px!important}}
@media(max-height:350px){:root{--hud-top:max(12px,calc(env(safe-area-inset-top,0px) + 8px));--hud-bottom:max(14px,calc(env(safe-area-inset-bottom,0px) + 8px));--hud-button:38px}body .top-actions{padding:5px!important}body .top-actions>button{padding:7px!important}}
