/* β18: mobile overflow hardening for long event text / response content. */
html,body{max-width:100%;overflow-x:hidden}
.app,main,.panel,.turnCard,.eventHeaderRow,.eventText,.eventType,.actionResult,.responseBox,.responseLine,.responseFinal,.rollMeta,.diceWrap,.history,.hist,.userDecision,.decisionPrompt,.settingsModalCard,.settingsSummary,.playerRoster,.playerRosterNote{min-width:0;max-width:100%}
.eventType,.eventText,.actionMain,.actionSub,.responseLine,.responseFinal,.decisionPrompt,.hist,.small,.settingsSummary,.playerRosterNote,.actorBadge,.badge{overflow-wrap:anywhere;word-break:break-word}
.eventHeaderRow{flex-wrap:wrap}
.actorBadge{max-width:100%;white-space:normal;text-overflow:clip}
.rollMeta{overflow:visible}
.diceWrap{flex-wrap:wrap}
.badge{white-space:normal;text-overflow:clip}
@media(max-width:430px){.turnCard{overflow:hidden}.eventType{font-size:clamp(1.55rem,8vw,1.9rem)}.responseBox,.actionResult,.userDecision{width:100%}}
