html,body{width:100%;max-width:100%;overflow-x:clip}
img,video,iframe{max-width:100%}
.wrap,.bar,.card,.trainer-public,.trainer-profile-grid,.trainer-identity,.trainer-booking-column,.weekly-planner,.admin-section,.application-card,.trainer-directory,.trainer-list-profile{min-width:0;max-width:100%}
.table-wrap,.schedule-table-wrap{display:block;width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.auth.card{width:min(100%,520px);max-width:520px;margin:50px auto}
.table-wrap table,.schedule-table{width:max-content;min-width:100%}
@media(max-width:680px){
  .top .bar{width:100%;padding:10px 14px;gap:10px;flex-wrap:wrap}
  .top .brand{flex:0 0 auto}
  .top .nav{min-width:0;margin-left:auto;gap:7px;flex-wrap:wrap;justify-content:flex-end}
  .top .nav>a:not(.nav-profile){font-size:12px;padding:6px 4px}
  .portal-lang{flex:0 0 auto}
  .wrap{width:100%;padding-inline:14px}
  .card{width:100%}
  .trainer-profile-grid,.trainer-directory,.grid.cols,.metrics-grid{grid-template-columns:minmax(0,1fr)!important}
  .trainer-booking-column{position:static!important;margin-top:10px!important}
  .weekly-planner{padding:16px!important;overflow:hidden}
  .schedule-table-wrap{margin-inline:0!important}
  input,select,textarea,button{max-width:100%}
}

/* Proportional typography and spacing across portal screens */
.wrap h1{font-size:clamp(2rem,4vw,3rem);line-height:1.08}.wrap h2{font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.15}.wrap h3{font-size:clamp(1.05rem,2vw,1.35rem)}
@media(max-width:680px){body{font-size:15px;line-height:1.55}.wrap{margin-top:22px!important;padding-inline:14px!important}.wrap h1,.trainer-identity h1{font-size:clamp(1.8rem,8vw,2.25rem)!important;letter-spacing:-.025em}.wrap h2{font-size:1.35rem!important}.wrap h3{font-size:1.08rem!important}.card{padding:17px!important;border-radius:14px!important}.btn,input,select,textarea{font-size:.95rem}.muted,.small{font-size:.88rem}}
@media(min-width:681px) and (max-width:1024px){.wrap{padding-inline:20px}.wrap h1{font-size:clamp(2rem,4.5vw,2.65rem)}.card{padding:22px}}
