/* Main-screen geometry. One CSS-pixel unit follows the available mobile viewport. */
:root {
 --ui-unit:1px;
 --ui-gap:calc(6 * var(--ui-unit));
 --ui-edge:calc(16 * var(--ui-unit));
 --ui-control:clamp(44px,calc(44 * var(--ui-unit)),48px);
 --ui-label:clamp(.75rem,calc(14 * var(--ui-unit)),.95rem);
 --ui-small:clamp(.75rem,calc(12 * var(--ui-unit)),.85rem);
 --ui-icon:clamp(20px,calc(25 * var(--ui-unit)),28px);
 --ui-safe-top:env(safe-area-inset-top,0px);
 --ui-safe-right:env(safe-area-inset-right,0px);
 --ui-safe-bottom:env(safe-area-inset-bottom,0px);
 --ui-safe-left:env(safe-area-inset-left,0px);
}
html,body {height:100%;}
#app {height:100vh;height:100dvh;min-height:0;padding:var(--ui-safe-top) var(--ui-safe-right) 0 var(--ui-safe-left);}
#world {min-height:0;}
.world-hud {
 position:absolute;inset:0;z-index:3;display:grid;
 grid-template-columns:minmax(0,1fr) max-content;
 grid-template-rows:auto minmax(0,1fr) auto;
 gap:var(--ui-gap);padding:var(--ui-edge);padding-top:calc(.7 * var(--ui-edge));pointer-events:none;
}
.hud-top {grid-column:1/-1;min-width:0;}
.world-hud .resources {position:static;transform:none;display:flex;flex-flow:row nowrap;width:max-content;max-width:100%;margin-left:auto;gap:4px;pointer-events:auto;}
.world-hud .resources button {position:relative;isolation:isolate;display:inline-flex;flex:0 1 auto;width:auto;min-width:0;height:44px;min-height:44px;padding:0 7px;gap:4px;justify-content:center;white-space:nowrap;background:transparent;border:0;box-shadow:none;}
.world-hud .resources button::before {content:'';position:absolute;inset:7px 0;border:1px solid #fff;border-radius:10px;background:#fffaf2ed;box-shadow:0 2px 8px #3159420c;z-index:-1;}
.world-hud .resources button>span,.world-hud .resources .resource-icon,.world-hud .resources .glimmer-symbol {flex:0 0 20px;width:20px;height:20px;font-size:20px;line-height:1;}
.world-hud .resources .resource-icon svg {width:100%;height:100%;}
.world-hud .resources b {min-width:0;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.world-hud .resources #stock {font-size:13px;line-height:1.1;white-space:nowrap;}
.world-hud .resources small {display:none;}
.world-hud .visit-bar {position:static;transform:none;width:100%;max-width:100%;margin:0;pointer-events:auto;}
.world-hud .visit-bar button {min-height:44px;}
.world-status {grid-column:1;grid-row:2;align-self:start;min-width:0;max-height:100%;display:flex;flex-direction:column;gap:var(--ui-gap);overflow:auto;overscroll-behavior:contain;scrollbar-width:none;pointer-events:auto;}
.status-effects {display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-gap);flex-shrink:0;}
.status-effects:not(:has(> :not([hidden]))) {display:none;}
.screen-notices {display:contents;}
.world-status #toast,.world-status #raretoast {
 display:none;position:static;transform:none;opacity:1;margin:0;width:auto;max-width:100%;
 padding:calc(8 * var(--ui-unit)) calc(10 * var(--ui-unit));border-radius:calc(12 * var(--ui-unit));
 font-size:var(--ui-label);line-height:1.4;overflow-wrap:anywhere;text-align:center;flex-shrink:0;pointer-events:none;
}
.world-status #toast.show,.world-status #raretoast.show {display:block;transform:none;}
.world-status #placement {position:static;transform:none;left:auto;bottom:auto;margin:0;width:100%;max-width:100%;padding:calc(10 * var(--ui-unit));flex-shrink:0;}
.world-status #placement p {font-size:var(--ui-label);}
.world-status #placement .row {flex-wrap:wrap;}
.world-status #placement button {min-height:44px;max-width:100%;white-space:normal;}
.hud-actions {grid-column:2;grid-row:2/4;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:var(--ui-gap);min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;}
.park-actions,.hud-actions .map-controls {position:static;display:flex;flex-direction:column;align-items:flex-end;gap:var(--ui-gap);flex-shrink:0;pointer-events:none;}
.hud-actions .mapbutton {position:static;top:auto;right:auto;bottom:auto;width:var(--ui-control);height:var(--ui-control);min-width:44px;min-height:44px;flex-shrink:0;padding:0;font-size:var(--ui-icon);pointer-events:auto;}
.hud-actions .social-button {font-size:clamp(16px,calc(18 * var(--ui-unit)),20px);}
.status-effects .effect-badge {position:static;width:var(--ui-control);height:var(--ui-control);padding:3px;flex:0 0 var(--ui-control);pointer-events:auto;}
.status-effects .effect-badge span {width:100%;height:100%;font-size:calc(21 * var(--ui-unit));}
.hud-actions #grove-shortcut {position:static;left:auto;bottom:auto;min-height:44px;max-width:100%;padding:calc(4 * var(--ui-unit)) calc(8 * var(--ui-unit));gap:calc(4 * var(--ui-unit));border-radius:calc(12 * var(--ui-unit));font-size:var(--ui-label);white-space:nowrap;pointer-events:auto;}
.hud-actions #grove-shortcut span {width:calc(23 * var(--ui-unit));height:calc(23 * var(--ui-unit));font-size:calc(22 * var(--ui-unit));}
.hud-footer {grid-column:1;grid-row:3;min-width:0;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:end;gap:var(--ui-gap);}
.world-hud .public-legal {position:static;left:auto;bottom:auto;transform:none;justify-self:center;max-width:100%;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:1px;padding:0;font-size:var(--ui-small);line-height:1.2;white-space:normal;background:transparent;border:0;border-radius:0;box-shadow:none;}
.world-hud .public-legal button {display:inline-flex;align-items:flex-end;min-height:40px;padding:0 1px;font-size:inherit;line-height:inherit;}
.world-hud .guest-count {position:static;justify-self:start;align-self:end;display:flex;align-items:center;gap:calc(4 * var(--ui-unit));width:max-content;max-width:100%;padding:calc(4 * var(--ui-unit)) calc(8 * var(--ui-unit));font-size:var(--ui-label);line-height:1.2;}
.world-hud .guest-count span {font-size:calc(18 * var(--ui-unit));}
.world-hud .guest-count b {font-size:var(--ui-label);}
.fullscreen-setting {margin:12px 0;}

@media (max-width:650px), (max-width:1000px) and (max-height:600px) and (pointer:coarse) {
 :root {
  --ui-unit:clamp(.875px,min(calc(100vw / 393),calc(100svh / 873)),1.08px);
  --ui-edge:clamp(7px,calc(8 * var(--ui-unit)),10px);
  --ui-header-control:clamp(40px,calc(44 * var(--ui-unit)),48px);
  --ui-header-height:clamp(48px,calc(52 * var(--ui-unit)),58px);
  --ui-nav-height:clamp(52px,calc(56 * var(--ui-unit)),62px);
  --ui-strip-height:clamp(52px,calc(54 * var(--ui-unit)),60px);
  --ui-title-size:clamp(1rem,calc(20 * var(--ui-unit)),1.4rem);
 }
 #app>header {height:var(--ui-header-height);min-height:var(--ui-header-height);padding:calc(4 * var(--ui-unit)) var(--ui-edge);gap:calc(2 * var(--ui-unit));}
 #brand {flex:1;min-width:0;min-height:var(--ui-header-control);gap:calc(4 * var(--ui-unit));overflow:hidden;}
 #brand>span:last-child {min-width:0;}
 #brand strong {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ui-title-size);line-height:1.2;}
 #brand small {display:none;}
 #brand .brandmark {display:none;}
 #app>header .iconbutton,#app>header .levelbadge {position:relative;flex:0 0 var(--ui-header-control);width:var(--ui-header-control);height:var(--ui-header-control);min-width:40px;min-height:40px;margin:0;padding:0;display:grid;place-items:center;font-size:calc(22 * var(--ui-unit));}
 #app>header .iconbutton {background:transparent;isolation:isolate;}
 #app>header .iconbutton::before {content:'';position:absolute;inset:calc(5 * var(--ui-unit));border-radius:50%;background:#eef0e5;z-index:-1;}
 #app>header .support-button {font-size:calc(16 * var(--ui-unit));}
 #app>header .support-button::before {background:#f3e8df;}
 #app>header .patchnotes-button {font-size:calc(20 * var(--ui-unit));}
 .levelbadge>span {width:calc(34 * var(--ui-unit));height:calc(34 * var(--ui-unit));font-size:calc(18 * var(--ui-unit));}
 .levelbadge>div {display:none;}
 .world-hud .resources {margin-right:auto;}
 .world-hud .resources button {padding:0 5px;}
 .world-hud .resources b {font-size:13px;}
 .world-hud .resources #stock {font-size:12px;}
 .production-strip {height:var(--ui-strip-height);min-height:var(--ui-strip-height);padding:calc(3 * var(--ui-unit)) var(--ui-edge);gap:var(--ui-gap);}
 .production-strip .strip-label {display:none;}
 .production-strip .production-pill {height:calc(var(--ui-control) + 2px);padding:0;flex:0 0 clamp(192px,calc(220 * var(--ui-unit)),240px);width:auto;}
 .production-strip .production-detail {height:100%;min-height:44px;padding:calc(3 * var(--ui-unit)) calc(6 * var(--ui-unit));gap:calc(5 * var(--ui-unit));}
 .production-strip b {font-size:clamp(.75rem,calc(13 * var(--ui-unit)),.9rem);}
 .production-strip small {font-size:var(--ui-small);}
 .production-strip .mini-icon {font-size:calc(23 * var(--ui-unit));flex-basis:calc(25 * var(--ui-unit));}
 .production-strip .strip-collect {min-height:44px;padding:calc(3 * var(--ui-unit)) calc(6 * var(--ui-unit));font-size:var(--ui-small);}
 .bottomnav {height:calc(var(--ui-nav-height) + var(--ui-safe-bottom));min-height:calc(var(--ui-nav-height) + var(--ui-safe-bottom));flex-shrink:0;gap:calc(2 * var(--ui-unit));padding:calc(2 * var(--ui-unit)) var(--ui-edge) calc(2 * var(--ui-unit) + var(--ui-safe-bottom));}
 .bottomnav button {min-height:44px;min-width:0;flex:1;padding:0;font-size:var(--ui-small);line-height:1.2;gap:0;}
 .bottomnav button[data-panel="production"] {flex-grow:1.3;}
 .bottomnav button[data-panel="orders"] {flex-grow:1.1;}
 .bottomnav button[data-panel="goals"] {flex-grow:.8;}
 .bottomnav button[data-panel="build"],.bottomnav button[data-panel="market"] {flex-grow:.9;}
 .bottomnav button>span {font-size:calc(25 * var(--ui-unit));line-height:calc(28 * var(--ui-unit));}
 .bottomnav i {right:calc(8 * var(--ui-unit));top:calc(3 * var(--ui-unit));}
 #panel {max-height:calc(100dvh - var(--ui-safe-top) - 12px);padding-left:var(--ui-safe-left);padding-right:var(--ui-safe-right);}
 .world-hud .visit-bar {gap:var(--ui-gap);padding:calc(6 * var(--ui-unit));font-size:var(--ui-label);}
 .world-hud .visit-bar>div {gap:var(--ui-gap);flex-wrap:wrap;}
 .world-hud .visit-bar button {font-size:var(--ui-small);padding:calc(5 * var(--ui-unit)) calc(8 * var(--ui-unit));}
}
@media (max-width:380px) {.world-hud .public-legal>span {display:none;}}
@media (max-width:340px) {:root {--ui-title-size:1rem;}}
/* On short displays, rows of controls preserve room without overlapping notices. */
@media (max-height:560px) and (max-width:650px), (max-height:600px) and (orientation:landscape) {
 .park-actions {flex-direction:row;}
 .hud-actions .map-controls {display:grid;grid-template-columns:repeat(3,var(--ui-control));}
 .hud-actions #grove-shortcut {grid-column:1/-1;justify-self:end;}
}
