/* Forge release mobile QA: Word Search controls must wrap instead of
  exceeding the playable stage on narrow phones. Never crop the letter grid. */
#stage .ws-box,#stage .ws3{box-sizing:border-box;min-width:0;max-width:100%}
#stage .ws-bar{box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:0;width:100%;max-width:100%}
#stage .ws-bar>*{min-width:0;max-width:100%;box-sizing:border-box}
#stage .ws-bar .ws-daily{flex:0 1 auto;min-width:0}
#stage .ws-bar .ws-sel{flex:1 1 135px;min-width:0;max-width:100%;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
#stage .ws-bar .ws-sel span{flex:0 0 auto;max-width:100%;overflow-wrap:anywhere}
#stage .ws-bar .ws-sel select{flex:1 1 100px;min-width:0;max-width:100%;width:auto}
#stage .ws-bar .ws-seg{flex:2 1 190px;display:flex;flex-wrap:wrap;gap:4px;max-width:100%;min-width:0}
#stage .ws-bar .ws-seg button{flex:1 1 54px;min-width:0;white-space:normal}
#stage .ws-prog{max-width:100%;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
#stage .ws-prog span{min-width:0;max-width:100%;overflow-wrap:anywhere}
#stage .ws-prog i{min-width:0;flex:1 1 58px}
#stage .ws-list{max-width:100%;min-width:0;display:flex;flex-wrap:wrap;gap:4px}
#stage .ws-list>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
#stage .ws-sheet{max-width:100%;min-width:0}
@media(max-width:430px){
 #stage .ws-bar{gap:5px}
 #stage .ws-bar .ws-sel{flex:1 1 130px}
 #stage .ws-bar .ws-seg{flex:1 1 100%;width:100%}
 #stage .ws-bar .ws-seg button{min-height:39px}
 #stage .ws-list>span{font-size:clamp(10px,3vw,14px)}
}
@media(prefers-reduced-motion:reduce){
 #stage .ws3 *{scroll-behavior:auto!important}
}
