/* Game controls are actions, not selectable text. Keep text fields editable. */
:where(button,[role="button"],[role="tab"],[role="checkbox"],[role="radio"],input[type="button"],input[type="submit"],input[type="reset"]){touch-action:manipulation}
:where(button,[role="button"],[role="tab"],[role="checkbox"],[role="radio"],input[type="button"],input[type="submit"],input[type="reset"],a:not([href]),canvas,svg,[role="grid"],[role="gridcell"],[data-action],[data-move],[data-dir],[data-tfa-playfield],.controls,.touch-controls,.mobile-controls,.phone-directions,.phone-rotate,.board,.game-board,.game-container,.tray,.piece-slot,#board,#grid),
:where(button,[role="button"],[role="tab"],[role="checkbox"],[role="radio"],a:not([href]),svg,[role="grid"],[role="gridcell"],[data-action],[data-move],[data-dir],[data-tfa-playfield],.controls,.touch-controls,.mobile-controls,.phone-directions,.phone-rotate,.board,.game-board,.game-container,.tray,.piece-slot,#board,#grid) *{
 -webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;
}
/* Explicit descendants cover WebKit button labels as well as the button box.
   Do not suppress selection, paste, or callouts in account/name/chat fields. */
:where(input:not([type="button"]):not([type="submit"]):not([type="reset"]),textarea,select,[contenteditable]:not([contenteditable="false"]),[data-tfa-selectable]),
:where([contenteditable]:not([contenteditable="false"]),[data-tfa-selectable]) *{
 -webkit-user-select:text!important;user-select:text!important;-webkit-touch-callout:default!important;
}
