:root{--desktop-ui-scale:1}
/* Restoring focus to an animated menu must not scroll the world underneath it. */
body:not(.touch-ui) .world{overflow:clip;min-height:0}
/* Each independent UI surface is scaled once. Map rendering and mobile layout
   keep their own dimensions; nested controls inherit their surface's scale. */
body:not(.touch-ui)>:not(.layout):not(script),
body:not(.touch-ui) .world>:not(#world),
body:not(.touch-ui) .layout>.sidebar{zoom:var(--desktop-ui-scale)}
body:not(.touch-ui) :is(dialog,[data-desktop-window],.item-tooltip){
  max-width:calc((100vw - 16px) / var(--desktop-ui-scale))!important;
  max-height:calc((100dvh - 16px) / var(--desktop-ui-scale))!important;
}
body:not(.touch-ui) .minimap-panel.expanded{max-width:calc((100vw - 24px) / var(--desktop-ui-scale));max-height:calc((100dvh - 24px) / var(--desktop-ui-scale));overflow:auto}
body:not(.touch-ui) .minimap-panel.expanded #minimap{height:min(48vw,calc(100dvh / var(--desktop-ui-scale) - 210px),520px)}

/* Reflow the bottom controls using the space available at the selected scale,
   rather than squeezing enlarged text into the original desktop widths. */
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=wide] .action-bars{right:120px}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]){--ui-hud-bottom:144px;--ui-chat-bottom:279px}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]) .action-bars{left:8px;right:8px}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]) .hud{left:8px;bottom:var(--ui-hud-bottom);width:180px;padding:6px}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]) #desktop-menu-button{right:8px;bottom:110px}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]) .window-shortcuts{right:8px;bottom:min(270px,calc(100dvh / var(--desktop-ui-scale) - 104px));max-width:calc(100% - 16px)}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]) .statuses{left:8px;bottom:238px}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]) .chat-overlay{left:8px;bottom:var(--ui-chat-bottom);max-width:calc(100% - 16px)}
body:not(.touch-ui):not([data-ui-size=small]):is([data-ui-layout=compact],[data-ui-layout=narrow]) #toast{bottom:calc(var(--ui-chat-bottom) + 34px)}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow]{--ui-hud-bottom:201px;--ui-chat-bottom:337px}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .action-bars{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .action-bars .skill-hotbar{width:100%;max-width:none}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .potion-hotbar{width:180px;height:51px;justify-self:end;padding:5px;gap:5px}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .potion-slot{height:39px}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] #desktop-menu-button{left:8px;right:auto;bottom:28px}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .window-shortcuts{bottom:min(324px,calc(100dvh / var(--desktop-ui-scale) - 104px))}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .statuses{bottom:295px}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=compact] .minimap-panel:not(.expanded) #minimap{height:min(140px,max(32px,calc(100dvh / var(--desktop-ui-scale) - 270px)))}
body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .minimap-panel:not(.expanded) #minimap{height:min(140px,max(32px,calc(100dvh / var(--desktop-ui-scale) - 310px)))}
body:not(.touch-ui):not([data-ui-size=small]) .chat-overlay{--ui-chat-anchor:var(--ui-chat-bottom,207px);--ui-chat-chrome:36px}
body:not(.touch-ui):not([data-ui-size=small]).chat-editing .chat-overlay{--ui-chat-anchor:min(var(--ui-chat-bottom,207px),max(8px,calc(100dvh / var(--desktop-ui-scale) - 220px)));--ui-chat-chrome:104px;bottom:var(--ui-chat-anchor)}
body:not(.touch-ui):not([data-ui-size=small]) .chat-overlay #messages{max-height:min(var(--chat-height,160px),max(0px,calc(100dvh / var(--desktop-ui-scale) - var(--ui-chat-anchor) - var(--ui-chat-chrome))))}
@media(max-height:720px){body:not(.touch-ui):not([data-ui-size=small])[data-ui-layout=narrow] .chat-overlay #messages{padding-top:2px;padding-bottom:2px}}
