/* Game shells share geometry; round content and the host never size the outer grid.
   Content pages keep their own layout. No transforms or font scaling are used. */
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) {
  --game-shell-height: 850px;
  --game-heading-height: 112px;
  --game-banner-height: 100px;
  --game-banner-space: 116px;
  --game-bet-height: var(--game-shell-height);
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-card {
  display: flex;
  flex-direction: column;
  height: var(--game-shell-height);
  min-height: 0;
  min-width: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-heading {
  flex: 0 0 var(--game-heading-height);
  height: var(--game-heading-height);
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-heading > div:first-child {
  min-width: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-stage {
  flex: 1 1 0;
  min-height: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .mode-content {
  display: flex;
  flex: 1 1 0;
  min-height: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) :is(.battle-view, .dice-view) {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .battle-scene {
  flex: 1 1 0;
  min-height: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) :is(#round-banner, .battle-banner) {
  flex: 0 0 var(--game-banner-height);
  height: var(--game-banner-height);
  min-height: var(--game-banner-height);
  margin: 0 16px 16px;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .dice-result {
  flex: 1 1 0;
  min-height: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) :is(.dice-scale, .dice-summary) {
  flex: none;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .sidebar :is(.bet-card, .mode-bet-card) {
  height: var(--game-bet-height);
  min-height: var(--game-bet-height);
  max-height: var(--game-bet-height);
  flex: none;
  width: 100%;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) :is(#bet-form, #battle-form, #dice-form) {
  min-height: 0;
  flex: 1 1 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) :is(#bet-form, #battle-form, #dice-form) > :not(.bet-receipt) {
  flex-shrink: 0;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .bet-receipt {
  margin-top: auto;
  flex: none;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) #dice-play {
  margin-top: auto;
  height: 52px;
  min-height: 52px;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .mode-fee {
  height: 37px;
  flex: none;
  margin: 18px 0 0;
  padding: 18px 0 2px;
}
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) #dice-error:empty {
  display: none;
}
@media (min-width: 761px) {
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) {
    grid-template-rows: var(--game-shell-height);
    align-content: start;
  }
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) > .sidebar {
    height: var(--game-shell-height);
    min-height: 0;
  }
}
@media (min-width: 1500px) {
  .layout--focused-bet.with-chat:not(.layout--bonuses):not(.layout--legal) > .ruvi-chat {
    grid-row: 1;
    height: var(--game-shell-height);
    min-height: 0;
    max-height: var(--game-shell-height);
  }
}
@media (max-width: 1450px) {
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) {
    --game-heading-height: 180px;
  }
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-heading {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 80px 52px;
    row-gap: 6px;
  }
}
@media (max-width: 1270px) {
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-stage {
    justify-content: space-between;
  }
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .board-wrap {
    flex: none;
    width: min(60%, calc(var(--game-shell-height) - var(--game-heading-height) - var(--game-banner-space) - 160px));
    margin: 0 0 0 8px;
  }
}
@media (max-width: 760px) {
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) {
    --game-shell-height: 780px;
    --game-heading-height: 160px;
    --game-bet-height: 700px;
  }
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-heading {
    grid-template-rows: 80px 52px;
    row-gap: 6px;
  }
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .sidebar :is(.bet-card, .mode-bet-card) {
    margin-top: 12px;
  }
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .board-wrap {
    width: min(62%, calc(var(--game-shell-height) - var(--game-heading-height) - var(--game-banner-space) - 160px));
  }
}
/* Reserve the same action/footer slot even when the fee wraps to two lines. */
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) :is(.bet-rules-link, .mode-fee) {
  height: 52px;
  min-height: 52px;
  margin: 18px 0 0;
  padding: 16px 0 2px;
}
@media (max-width: 760px) {
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) .game-heading {
    grid-template-rows: 76px 52px;
  }
}
/* Validation occupies its own slot, so rate-limit and amount errors never move the CTA. */
.layout--focused-bet:not(.layout--bonuses):not(.layout--legal) :is(#bet-error, #battle-error, #dice-error) {
  display: block !important;
  flex: 0 0 36px;
  height: 36px;
  min-height: 36px;
  margin: 0;
  line-height: 18px;
  overflow: auto;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .layout--focused-bet:not(.layout--bonuses):not(.layout--legal) {
    --game-bet-height: 730px;
  }
}
