/* DWDE V22.1 mobile hardening — loaded last on every public/portal screen. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:hidden}img,video,canvas,svg{max-width:100%;height:auto}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:rgba(255,106,0,.18)}
@media(max-width:900px){
  .site-header{min-height:64px;padding:10px 14px}.site-nav{top:64px;max-height:calc(100dvh - 64px);overflow-y:auto;padding:12px 14px 18px;gap:4px;border-bottom:1px solid #292929}.site-nav a{padding:13px 10px;min-height:46px;display:flex;align-items:center}.site-nav .nav-cta{margin-top:6px;justify-content:center}.menu-toggle{min-width:46px;min-height:46px;border-radius:10px}
  .hero{min-height:auto;padding-top:92px;padding-bottom:34px}.hero-copy{padding-bottom:32px}.hero h1{font-size:clamp(58px,18vw,92px);overflow-wrap:anywhere}.hero-actions{display:grid;grid-template-columns:1fr;gap:10px}.hero-actions .btn,.cta .btn{width:100%;min-height:50px}.hero-script{max-width:100%;line-height:1.45}
  .section{padding:64px 0}.split,.cta-inner{gap:28px}.program-card,.skill-grid article{padding:22px}.booking-path{padding:22px}.booking-path-actions,.booking-path-actions .btn{width:100%}.booking-service-grid article{min-height:0}.square-widget-frame>div{padding:24px 18px!important}.footer-grid{gap:24px}.footer-grid a{padding:5px 0}
}
@media(max-width:600px){
  .container{width:min(100% - 24px,1180px)}.brand img{width:118px!important}.hero{padding-top:86px}.hero h1{font-size:clamp(52px,18vw,80px)}.hero-lead{max-width:100%}.numbers{padding:48px 0}.stat-grid strong{font-size:46px}.photo-panel{min-height:300px}.about h2,.programs h2,.cta h2,.section h2{overflow-wrap:anywhere}.booking-help{gap:10px}.booking-choice-card{width:calc(100% - 20px);max-height:90dvh;overflow:auto;padding:22px 16px}.booking-choice-options{grid-template-columns:1fr!important}.booking-choice-option{min-height:unset}
}
/* Booking flow */
@media(max-width:700px){
  .booking-v22-top{min-height:62px}.booking-v22-home{padding:10px}.booking-v22-shell{padding-top:16px;padding-bottom:40px}.booking-v22-hero{padding:18px 0}.booking-v22-hero h1{font-size:clamp(42px,15vw,64px)}.booking-v22-progress{position:sticky;top:62px;z-index:8;background:#050505;padding:8px 0;margin:8px 0 14px}.booking-v22-progress span{min-width:0}.booking-v22-card{border-radius:16px;padding:18px 14px}.booking-v22-choice-grid,.booking-v22-service-grid,.booking-v22-payment-grid{grid-template-columns:1fr}.booking-v22-choice-grid button,.booking-v22-service-grid button,.booking-v22-payment-grid button{min-height:92px;padding:16px}.booking-v22-actions{display:grid;grid-template-columns:1fr}.booking-v22-actions button,.booking-v22-back,.booking-v22-next{width:100%;min-height:48px}.booking-v22-card-head{display:block}.booking-v22-days{margin-inline:-4px}.booking-v22-days button{min-height:46px}.booking-v22-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.booking-v22-slots button{min-height:64px;padding:12px 8px}.booking-v22-review{padding:14px}.booking-v22-success{padding:24px 16px}.booking-v22-success div{display:grid}.booking-v22-success a{width:100%}
}
/* Shared authenticated portals */
@media(max-width:820px){
  .dashboard-main{width:100%;min-width:0}.topbar{position:sticky;top:0;z-index:30;min-height:66px;padding:10px 12px;gap:8px;background:rgba(8,8,8,.96);backdrop-filter:blur(12px)}.topbar>div:first-of-type{min-width:0}.topbar h1{font-size:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar p{font-size:9px}.mobile-menu{display:grid;place-items:center;min-width:44px;min-height:44px}.topbar-tools{gap:6px}.topbar-tools>.primary-action{display:none}.profile-menu-button{min-width:42px;min-height:42px}.sidebar{width:min(86vw,310px);z-index:80}.dashboard-content,.content-wrap,.view{min-width:0}.panel,.command-hero,.credit-hero{border-radius:14px}.panel{padding:16px}.command-hero{padding:18px}.command-hero h2{font-size:clamp(32px,11vw,48px)}.dashboard-grid,.metric-grid,.credit-hero,.credit-package-grid,.credit-steps,.home-quick-actions{grid-template-columns:1fr!important}.span-2{grid-column:auto!important}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:680px}.form-grid,.settings-form{grid-template-columns:1fr!important}.form-grid .span-2,.settings-form .full{grid-column:auto!important}input,select,textarea{font-size:16px!important;max-width:100%}.modal{padding:8px}.modal-card,.modal-card.wide{width:100%;max-width:100%;max-height:94dvh;overflow-y:auto;border-radius:16px;padding:18px}.modal-close{min-width:44px;min-height:44px}.approval-actions,.quick-grid{grid-template-columns:1fr!important}.approval-actions button,.approval-actions select,.primary-action,.secondary-action{min-height:44px}.mobile-bottom-nav{padding-bottom:max(6px,env(safe-area-inset-bottom))}
}
/* Calendar */
@media(max-width:700px){
  .v22-calendar-shell{gap:12px}.v22-calendar-toolbar{align-items:stretch}.v22-calendar-toolbar .left,.v22-calendar-toolbar .right{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.v22-calendar-toolbar button{min-height:44px;padding:10px 8px}.v22-calendar-title{font-size:27px}.v22-week-grid{grid-template-columns:repeat(7,calc(100vw - 44px));scroll-snap-type:x mandatory;gap:8px}.v22-day-column{scroll-snap-align:center;min-height:240px;padding:10px}.v22-session-card{padding:11px}.v22-availability-row{grid-template-columns:1fr 1fr;gap:8px;padding:12px;border:1px solid #262629;border-radius:12px}.v22-availability-row .day{grid-column:1/-1}.v22-availability-row input,.v22-availability-row select{width:100%;min-height:44px}.v22-this-week,.v22-media-grid{grid-template-columns:1fr}.v22-week-card .actions{display:grid;grid-template-columns:1fr}.v22-week-card button,.v22-week-card a{min-height:42px;display:flex;align-items:center;justify-content:center}.v22-session-roster article{gap:10px;align-items:flex-start}.v22-calendar-legend{gap:8px 12px}
}
/* Profile/player card areas */
@media(max-width:620px){
  .v21-player-grid,.athlete-grid,.roster-grid{grid-template-columns:1fr!important}.v21-player-card,.athlete-card{min-width:0}.v21-player-card-actions,.player-card-actions{display:grid!important;grid-template-columns:1fr 1fr}.v21-player-card-actions button,.player-card-actions button{min-height:42px}.v22-media-card img{height:190px}.admin-shortcuts{display:grid!important;grid-template-columns:1fr 1fr}.admin-shortcuts button{min-height:44px}
}

/* V22.2 always-visible account controls */
.top-signout{border:1px solid rgba(255,255,255,.18);background:#141414;color:#fff;border-radius:10px;min-height:42px;padding:0 14px;font:800 10px Montserrat;letter-spacing:.04em;cursor:pointer;white-space:nowrap}
.top-signout:hover{border-color:rgba(255,106,0,.65);color:#ff9b55}
@media(max-width:820px){
  .topbar .top-signout{display:flex!important;align-items:center;justify-content:center;min-width:76px;min-height:44px;padding:0 10px;font-size:10px}
  .topbar .profile-menu-button{flex:0 0 auto}
  .top-actions,.topbar-tools{display:flex!important;align-items:center;flex-wrap:nowrap}
  #coach-profile-modal .player-photo-button{display:flex!important;width:100%;min-height:48px;align-items:center;justify-content:center;font-size:12px}
  #coach-profile-modal .coach-profile-photo{margin-inline:auto}
}
@media(max-width:430px){
  .topbar{padding-inline:8px}.topbar h1{font-size:20px}.topbar p{display:none}
  .topbar .top-signout{min-width:68px;padding-inline:8px;font-size:9px}
  .topbar .profile-menu-button{width:42px;height:42px}
}

/* V22.3 mobile calendar cleanup */
@media(max-width:700px){.v223-calendar-intro{padding:2px 0 10px;align-items:flex-end}.v223-calendar-intro h2{font-size:27px}.v223-calendar-intro span{display:none}.v223-calendar-intro button{min-height:38px;padding:8px 10px;font-size:11px}.v22-calendar-toolbar{gap:9px}.v22-calendar-toolbar .left{display:grid;grid-template-columns:52px 1fr 52px;gap:7px}.v22-calendar-toolbar .left .v22-calendar-title{grid-column:1/-1;grid-row:2;font-size:25px;margin:3px 0 0}.v22-calendar-toolbar .right{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:7px}.v22-calendar-toolbar button{font-size:11px;padding:9px 6px}.v22-calendar-legend{font-size:11px;padding:0 2px}.v22-week-grid{grid-template-columns:repeat(7,calc(100vw - 56px));gap:10px}.v22-day-column{padding:12px;min-height:220px}.v22-day-head strong{font-size:20px}.v22-session-card{padding:12px 11px;margin-bottom:9px}.v22-session-card .time{font-size:16px}.v22-type-pill{font-size:8px;padding:4px 6px}.v22-athlete-names{font-size:16px!important}.v22-tap-hint{display:block}.top-signout{display:inline-flex!important;min-height:36px!important;padding:7px 9px!important;font-size:10px!important}.website-top-link{display:none!important}.mobile-bottom-nav button,.mobile-bottom-nav a{min-width:0}.mobile-bottom-nav #v223-mobile-more{display:flex}.command-hero:has(+ .v22-calendar-shell){display:none!important}}

/* V22.5 coach mobile home hardening */
@media(max-width:820px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important}
  .app-shell{display:block!important;width:100%!important;max-width:100%!important;overflow-x:clip!important}
  .dashboard-main{width:100%!important;max-width:100%!important;margin:0!important;padding-left:0!important;transform:none!important;overflow-x:clip!important}
  .sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(86vw,310px)!important;height:100dvh!important;transform:translateX(-105%)!important;transition:transform .24s ease!important;visibility:hidden;pointer-events:none;box-shadow:none!important}
  .sidebar.open{transform:translateX(0)!important;visibility:visible;pointer-events:auto;box-shadow:20px 0 55px rgba(0,0,0,.85)!important}
  .topbar{width:100%!important;max-width:100%!important;margin:0!important;box-sizing:border-box!important}
  .view{width:100%!important;max-width:100%!important;margin:0!important;padding-left:14px!important;padding-right:14px!important;box-sizing:border-box!important;overflow-x:hidden!important}
  .notice{width:100%;margin-left:0!important;margin-right:0!important;padding:14px!important;border-radius:12px;line-height:1.5}
  .notice strong{display:block;font-size:11px}.notice span{font-size:11px}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important}
  .metric-grid article{min-width:0!important;padding:16px!important;border-radius:14px}
  .metric-grid strong{font-size:38px!important}.metric-grid span{font-size:8px!important}.metric-grid small{font-size:8px!important;white-space:normal}
  .dashboard-grid{width:100%!important;max-width:100%!important}.panel{width:100%!important;max-width:100%!important;min-width:0!important}
  .top-actions{margin-left:auto;gap:7px!important;min-width:0}.topbar>div:first-of-type{flex:1 1 auto;min-width:0}.topbar h1{max-width:100%;font-size:22px!important}
  .coach-top-profile{overflow:hidden;border-radius:12px}.coach-top-profile img{width:100%;height:100%;object-fit:cover}
}
@media(max-width:430px){
  .view{padding-left:12px!important;padding-right:12px!important}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .metric-grid article{padding:14px!important}.metric-grid strong{font-size:34px!important}
  .topbar{gap:6px!important;padding:9px 8px!important}.mobile-menu{min-width:42px!important}.topbar h1{font-size:19px!important}
  .topbar .top-signout{min-width:72px!important;padding:0 8px!important;font-size:9px!important}
}

/* V22.9 native iPhone/Android profile photo picker fix */
.native-photo-input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:.01!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
}
.native-photo-label{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
