/* Product layout: only the native menu and running game surfaces exist. */
html, body.ovz-product { width:100%; height:100%; margin:0; overflow:hidden; background:#08090d; }
body.ovz-product .app, body.ovz-product main, body.ovz-product .workspace-shell {
  display:block; position:absolute; inset:0; width:100%; height:100%; min-width:0;
  padding:0; margin:0; border:0;
}
body.ovz-product .workbench-section { display:none; position:absolute; inset:0; margin:0; padding:0; }
body.ovz-product .workbench-section.active { display:block; }
body.ovz-product .game-viewport, body.ovz-product .play-viewport {
  position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none;
  border:0; border-radius:0; aspect-ratio:auto;
}
body.ovz-product #gameMenuCanvas { width:100%; height:100%; outline:none; }
#gameBootError:not([hidden]) { position:fixed; inset:0; z-index:10000; box-sizing:border-box;
  display:flex; align-items:center; justify-content:center; padding:clamp(24px,8vw,96px);
  color:#edf0f7; background:radial-gradient(ellipse at 80% 100%,#292036 0%,#101018 60%);
  font:clamp(17px,2.5vw,22px)/1.5 system-ui; text-align:center; white-space:pre-line; }
#playerNameButton { position:fixed; top:20px; right:24px; z-index:100;
  max-width:calc(100vw - 48px); padding:10px 16px; border:1px solid #616974;
  border-radius:5px; background:#101820e6; color:#edf4f8; font:15px system-ui; cursor:pointer; }
#playerNameButton[hidden] { display:none; }
#playerNameDialog { width:min(400px,calc(100vw - 64px)); padding:28px; border:1px solid #52616b;
  border-radius:10px; background:#111a21; color:#edf4f8; font:16px system-ui; }
#playerNameDialog::backdrop { background:#05090cbf; }
#playerNameDialog h2 { margin:0 0 24px; font-size:23px; }
#playerNameDialog label { display:block; margin-bottom:8px; font-weight:600; }
#playerNameInput { box-sizing:border-box; width:100%; padding:12px; border:1px solid #74828c;
  border-radius:4px; background:#080e13; color:white; font:20px system-ui; }
#playerNameHint { color:#aebec8; font-size:14px; }
#playerNameError { color:#ffb7ab; font-size:14px; min-height:18px; }
.player-name-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:20px; }
.player-name-actions button { padding:10px 16px; border:1px solid #657681; border-radius:4px;
  background:transparent; color:#edf4f8; font:600 15px system-ui; cursor:pointer; }
.player-name-actions button[type=submit] { background:#9fd5bd; border-color:#9fd5bd; color:#10231c; }
#playerNameButton:focus-visible, #playerNameDialog :focus-visible { outline:2px solid #b8f0d4; outline-offset:3px; }
#playerNameDialog button:disabled { opacity:.55; cursor:wait; }
#partyControls { position:fixed;top:62px;right:24px;z-index:100;display:flex;gap:8px;align-items:center;max-width:80vw;flex-wrap:wrap;color:#eee;font:13px system-ui; }
#partyControls button { color:#eee;background:#182020e8;border:1px solid #88928b;padding:9px 12px;border-radius:3px;cursor:pointer; }
#partyControls[hidden] {display:none;}
#partyControls button:disabled {opacity:.6;cursor:default;}
#partyControls [role=status] {flex-basis:100%;text-align:right;text-shadow:0 1px 3px #000;}
@media (orientation:portrait) {#partyControls {top:58px;right:12px;}}

#privateMatchSetup { width:min(560px,calc(100vw - 32px)); max-height:85vh; overflow:auto; color:#f3f4f7; background:#17202b; border:1px solid #667688; border-radius:10px; padding:22px; font:15px system-ui; }
#privateMatchSetup::backdrop { background:rgba(0,0,0,.72); }
#privateMatchSetup header,#privateMatchSetup footer { display:flex; gap:10px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
#privateMatchSetup h2 { margin:0; font-size:24px; }
#privateMatchSetup fieldset { border:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
#privateMatchSetup label { display:flex; flex-direction:column; gap:5px; }
#privateMatchSetup button,#privateMatchSetup select { font:inherit; color:inherit; background:#253447; border:1px solid #748399; border-radius:5px; padding:9px; }
#privateMatchSetup button:disabled { opacity:.45; }
#privateMatchSetup [data-private-status] { color:#ffc296; min-height:20px; }
@media(max-width:480px) { #privateMatchSetup fieldset { grid-template-columns:1fr; } }
