/* ===== run15.css: run-15 polish. Load LAST (after css/board-fix.css). ===== */

/* R15-2 Seven-out toast (all sizes): the readout must never wrap or overflow the bubble. */
.toast.seven .readout { width: auto; flex: 0 0 auto; padding: 4px 8px; }
.toast.seven .readcall { white-space: nowrap; color: #FFD36A; }
.toast.seven .speech { max-width: min(260px, calc(100vw - 120px)); }

/* Portrait phones through 430x932: no headroom above the glass, so the toast becomes one
   compact row over the header strip (logo / mode switch). It ends above the HUD money row
   and never reaches the glass. SEVEN OUT stays on one line inside the bubble. */
@media (orientation: portrait) and (max-height: 960px) {
  .app.play .toast.seven {
    top: calc(var(--safe-t, 0px) + 3px); left: 6px; right: 6px; bottom: auto;
    min-height: 0; height: auto; padding: 2px 3px 2px 2px; gap: 4px; align-items: center;
    background: rgba(6, 14, 10, .96); border: 1px solid rgba(255, 211, 106, .5); border-radius: 14px;
    box-shadow: 0 4px 14px rgba(0,0,0,.5);   /* opaque strip: hides the header avatar + switch underneath */
    transform: none; opacity: 1;
  }
  .app.play .toast.seven .toast-billy { width: 38px; height: 38px; object-fit: contain; object-position: 50% 0; }
  .app.play .toast.seven .speech {
    flex: 1 1 auto; max-width: none; min-width: 0;
    display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 8px; row-gap: 2px;
    padding: 4px 10px; border-radius: 12px 12px 12px 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,.45);
  }
  .app.play .toast.seven .speech b { font-size: 15px; line-height: 1.1; white-space: nowrap; }
  .app.play .toast.seven .readout { --die: 18px !important; padding: 3px 6px; gap: 3px; flex-wrap: wrap; overflow: visible; }
  .app.play .toast.seven .readout .readbadge { font-size: 17px; }
  .app.play .toast.seven .readcall { display: inline; flex: 0 0 auto; overflow: visible; }
  .app.play .toast.seven .speech small { flex-basis: 100%; margin: 0; font-size: 11px; line-height: 1.2; }
  .app.play .toast.seven .steams { display: none; }
}

/* R15-4 HUD avatar = Option A (handoff-assets/hud-avatar/README). The ring + felt disc are IN the
   asset: no CSS ring. The 3px nudge puts the ring edge on the HUD content edge (x = 17 at 390).
   Size stays with run14 (36px portrait, 32px landscape) so the visible mark fills the circle. */
.app.play .homebtn {
  margin-left: -3px;
  background: none; box-shadow: none;
  border-radius: 50%; overflow: hidden;
}
.app.play .homebtn img.home-avatar {
  max-width: none;
  object-fit: contain; object-position: center;
}

/* R15-7: on tall phones the dome call overlapped the result line by 2px. */
.dome-cast .speech { margin-bottom: 2px; }

/* R15-A: on 360–390px-wide tall phones Billy's body crosses the result line
   on long calls (HARD EIGHT is the widest). Nudge him left and shrink the
   figure so the line's left edge stays clear. Short phones already scale
   the cast to 0.55. */
@media (min-width: 360px) and (max-width: 390px) and (min-height: 780px) and (orientation: portrait) {
  .app.play .dome-cast { left: -18px; }
  .app.play .dome-billy { width: 52px; }
}
@media (min-width: 391px) and (max-width: 430px) and (min-height: 780px) and (orientation: portrait) {
  .app.play .dome-cast { left: -42px; }
  .app.play .dome-billy { width: 46px; }
}

/* A $1,000 prop pill was sliding 3px out of the Horn cell. Keep it on the chip, inside the spot. */
.app.play .felt.bfx .prop .spot.has > .amt { margin-left: -2px; }
