.review-entry{margin:0;background:#101119;color:#f7e4bc;font:18px/1.6 system-ui,sans-serif;min-height:100dvh;display:grid;place-items:center}.review-entry main{box-sizing:border-box;width:min(100%,680px);padding:24px}.review-entry h1{font-size:30px}.review-entry #review-entry-status{padding:16px;border:1px solid #bc984f;border-radius:12px}.review-sandbox-banner{box-sizing:border-box;position:fixed;inset:0 0 auto;min-height:48px;z-index:2147483646;display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 12px;background:#5a3b10;color:#fff4cb;font:600 14px/1.3 system-ui,sans-serif;text-align:center}.review-sandbox-banner small{font-weight:400}.review-sandbox-root{position:fixed!important;inset:48px 0 0!important;overflow:auto;transform:translateZ(0);isolation:isolate}.review-sandbox-root .app-shell{min-height:100%}@media(max-width:600px){.review-sandbox-banner{font-size:12px;display:block}.review-sandbox-banner small{display:block;font-size:11px}}
#root.review-sandbox-root{height:auto!important;min-height:0!important}#root.review-sandbox-root .academy-portal,#root.review-sandbox-root .game-overlay{height:100%!important;min-height:0!important;max-height:100%!important}
/* Staff pages scroll naturally; do not trap their fixed mobile nav in a transformed scroller. Keep the game viewport contract. */
@media(max-width:840px){#root.review-sandbox-root:has(.staff-theme):not(:has(.game-overlay)){transform:none!important}}
/* The lesson list is a page, not a game viewport: keep its join control clear
   of the fixed mobile navigation while preserving modal/lesson positioning. */
@media(max-width:840px){#root.review-sandbox-root:has(.lesson-hub):not(:has(.game-overlay,.academy-portal)){transform:none!important;scroll-padding-block:64px 96px}}
