/* Measured mobile rhythm corrections. Team poster geometry and competition
   canvases keep their own composition; this layer changes neither typography
   scale nor material styling. */
@media(max-width:900px){
 /* 1. Utility pages share the 16px outer gutter and a 24px opening beat. */
 .app-body:not(:has(.competition-switch)) #workspace:not(:has(.team-mobile-workspace)){
  padding-top:24px;
 }
 /* 2. The selected-game hero uses the same 24px internal spacing step. */
 .app-body .home-play{padding:24px}
 /* 3. Related controls stay contiguous rather than acquiring page-specific gaps. */
 .app-body :is(.site-inline-actions,.commerce-balance-actions,.home-play>div>div,.account-savebar>div){gap:8px}
 /* 4. The two prominent action pairs start one consistent beat after their copy. */
 .app-body :is(.home-play>div>div,.commerce-balance-actions){margin-top:24px}
 /* 5. Reading/list section headings have a deliberate, shared separation. */
 .app-body #workspace:not(:has(.play-workspace)):not(:has(.team-mobile-workspace)) :is(.section-top,.commerce-section-heading){
  gap:16px;
  align-items:center;
  margin-bottom:16px;
 }
 /* 6. Browser heading margins no longer inflate otherwise compact header rows. */
 .app-body #workspace:not(:has(.play-workspace)):not(:has(.team-mobile-workspace)) :is(.section-top,.commerce-section-heading)>h2{
  margin:0;
  line-height:1.25;
 }
 /* 7. Quiet text actions receive a real touch target, including short labels. */
 .app-body #workspace:not(:has(.team-mobile-workspace)) .text-button{
  min-width:44px;
  min-height:44px;
  padding-block:4px;
  align-items:center;
 }
 /* 8. Keyboard/automatic scrolling leaves controls clear of fixed navigation. */
 .app-body #workspace :is(button,a,input,select,textarea){
  scroll-margin-block:80px calc(96px + env(safe-area-inset-bottom,0px));
 }
}
