/* Modo teléfono: el tablero sigue siendo el protagonista y nada se monta encima. */
@media (max-width:700px){
  html,body{min-height:100dvh;overflow-y:auto}
  .topbar{min-height:64px;gap:7px;padding:8px 9px}
  .brand{min-width:0}.brand h1{margin:0;font-size:clamp(20px,6vw,27px);line-height:.92;white-space:nowrap}
  .top-actions{flex-wrap:nowrap;gap:4px}.top-actions button{min-height:34px;padding:6px 7px;font-size:6px;letter-spacing:.05em;white-space:nowrap}
  main{padding:7px 5px 72px}
  .score-rig{grid-template-columns:1fr 76px 1fr;gap:4px;width:96vw}
  .score-card{min-height:48px;padding:4px 6px}.score-card>i{width:34px;height:34px}.score-card b{font-size:24px}.score-card small{font-size:5px}.pips{gap:2px}.pips em{width:10px;height:3px}
  .first-to{min-width:0;padding:3px}.first-to small{font-size:5px}.first-to b{font-size:9px}.first-to span{font-size:5px}
  .arena{margin-top:7px}.status{min-width:0;width:94vw;padding:7px 8px;font-size:7px;letter-spacing:.07em}
  .difficulty-panel{display:block;width:94vw;margin:5px auto 0;padding:4px;clip-path:none}
  .difficulty-title{display:flex;justify-content:space-between;align-items:center;min-width:0;margin:0 0 4px;padding:2px 4px;border:0;border-bottom:1px solid #4e6490}.difficulty-title small{font-size:5px}.difficulty-title b{font-size:9px}
  .difficulty-buttons{gap:3px}.difficulty-buttons button{min-height:31px;padding:2px}.difficulty-buttons button strong{font-size:15px}.difficulty-buttons button span{font-size:4px}
  .difficulty-panel .trap-button.dormant{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-width:0;min-height:32px;margin-top:4px;padding:4px 8px;clip-path:none}
  .difficulty-panel .trap-button.dormant span{font-size:16px}.difficulty-panel .trap-button.dormant b{font-size:13px}.difficulty-panel .trap-button.dormant small{font-size:5px}
  .board-shell{width:min(84vw,42dvh,350px);margin:7px auto}
  .board{gap:1.25%;padding:12.9%}.cell{min-width:0;min-height:0}
  .tip{max-width:92vw;margin:1px auto 0;font-size:6px;line-height:1.35}
  .match-controls{width:min(92vw,350px);gap:5px;margin-top:6px}.match-controls .reset{min-height:34px;padding:7px 5px;font-size:6px}
  .player-cheat-button{left:6px;bottom:max(5px,env(safe-area-inset-bottom));min-width:142px;padding:6px 8px;column-gap:5px}.player-cheat-button span{font-size:20px}.player-cheat-button b{font-size:14px}.player-cheat-button small{font-size:5px}
  .trap-button.active{top:46%;min-width:min(310px,88vw);padding:11px 18px}.trap-button.active span{font-size:36px}.trap-button.active b{font-size:31px}
  .online-dialog{max-height:92dvh;overflow:auto;padding:24px 15px}.online-dialog .dialog-close{width:34px;height:34px}.signal-orb{width:58px;height:58px}.signal-orb span{width:40px;height:40px}.join-row input{padding:11px;font-size:15px}.join-row button{padding:0 12px}
}
@media (max-width:390px){
  .brand h1{font-size:19px}.top-actions button{padding:5px;font-size:5px}
  .score-card>i{display:none}.score-card{justify-content:center}.o-side div,.score-card div{justify-items:center}
  .board-shell{width:min(82vw,40dvh,315px)}
}
@media (max-height:520px) and (orientation:landscape){
  .topbar{min-height:46px;padding:4px 10px}.brand h1{font-size:20px}.top-actions button{min-height:28px}
  main{padding-top:4px}.score-rig{position:absolute;left:7px;top:54px;width:30vw;display:block}.score-card{margin-bottom:3px}.first-to{display:none}
  .arena{margin-top:0}.status,.difficulty-panel{width:50vw;margin-left:auto;margin-right:auto}.difficulty-title{display:none}.difficulty-panel .trap-button.dormant{display:none}
  .board-shell{width:min(58dvh,330px);margin:4px auto}.tip{display:none}.match-controls{position:absolute;right:5px;top:54px;width:29vw;display:grid}
}
