/* The game layer (lane J): the market board (hosted and free build) and the hosted game panel. */
.gm-board { font-size: 12px; }
.gm-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 4px 0; }
.gm-sliders { display: grid; gap: 2px; margin: 6px 0; }
.gm-slider { display: grid; grid-template-columns: 1fr 110px 44px; gap: 6px; align-items: center; }
.gm-slider input { width: 100%; }
.gm-table h4, .gm-econ h4 { margin: 8px 0 2px; font-size: 12px; }
.gm-board table { width: 100%; border-collapse: collapse; }
.gm-board td { padding: 1px 4px; border-bottom: 1px solid rgba(127,127,127,.2); }
.gm-v { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gm-u { opacity: .7; white-space: nowrap; }
.gm-badge { font-size: 10px; padding: 0 4px; border-radius: 3px; white-space: nowrap; }
.gm-sourced { background: #d8f3dc; color: #1b4332; }
.gm-derived { background: #dbe7f5; color: #1d3557; }
.gm-game_value { background: #ffe8cc; color: #7a4100; }
.gm-margin td { font-weight: 700; }
.gm-note { font-size: 11px; opacity: .75; }
#gm-launch { position: fixed; left: 12px; bottom: 12px; z-index: 40; display: none; }
body[data-mode="sim"] #gm-launch { display: block; }
#gm-panel { position: fixed; left: 12px; bottom: 52px; z-index: 41; width: min(420px, calc(100vw - 24px)); max-height: 70vh; overflow: auto;
  background: #111827; color: #e5e7eb; border: 1px solid #374151; border-radius: 8px; padding: 8px 10px; box-shadow: 0 6px 24px rgba(0,0,0,.4); }
#gm-panel[hidden] { display: none; }
#gm-panel button { cursor: pointer; }
#gm-panel a { color: #93c5fd; }
#gm-panel .gm-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 6px; }
#gm-panel .gm-tabs button[aria-pressed="true"] { font-weight: 700; text-decoration: underline; }
#gm-panel .gm-step { margin: 3px 0; padding-left: 18px; position: relative; }
#gm-panel .gm-step::before { content: ''; position: absolute; left: 2px; top: 3px; width: 10px; height: 10px; border: 1px solid #9ca3af; border-radius: 2px; }
#gm-panel .gm-step.done::before { background: #34d399; border-color: #34d399; }
#gm-panel .gm-step.cur { font-weight: 600; }
#gm-panel .gm-hint { color: #fcd34d; font-size: 11px; }
#gm-panel .gm-done { color: #34d399; font-weight: 700; }
#gm-panel .gm-badge { color: #111; }
#gm-lite { position: fixed; right: 12px; bottom: 12px; z-index: 40; font-size: 11px; background: #111827; color: #e5e7eb; border-radius: 4px; padding: 2px 6px; }
@media (max-width: 480px) { #gm-panel { left: 6px; right: 6px; width: auto; bottom: 48px; max-height: 60vh; } }
/* lane S (R10 Game v1): Sandbox banner, score weights, save/share, photo mode (every panel hidden; only the 3D stage and the bar) */
#gm-sandbox { position: fixed; top: 8px; left: 50%; transform: translateX(-50%); z-index: 40; font-size: 11px; background: #7a4100; color: #fff7ed; border-radius: 4px; padding: 2px 8px; }
#gm-panel .gm-weights { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 4px; }
#gm-panel .gm-weights input { width: 48px; }
#gm-panel #gm-share { width: 100%; font-size: 11px; }
#gm-panel [data-gm-mode][aria-pressed="true"] { font-weight: 700; text-decoration: underline; }
body.gm-photo > *:not(#stage):not(#gm-photo-bar) { visibility: hidden !important; }
#gm-photo-bar { position: fixed; left: 50%; bottom: max(12px, env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 60; display: flex; gap: 8px; align-items: center;
  background: rgba(17,24,39,.85); color: #e5e7eb; border-radius: 8px; padding: 6px 10px; font-size: 12px; }
#gm-photo-bar[hidden] { display: none; }
#gm-photo-bar button { min-width: 44px; min-height: 44px; }
#gm-photo-bar a { color: #93c5fd; }
.gm-save-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 6px 0; }
#gm-save-keep input, #gm-save-keep textarea { width: 100%; font-size: 11px; box-sizing: border-box; }
