/* SLPT v1.7.0 mobile/responsive hardening */
:root{--mobile-gutter:14px}
html,body{max-width:100%;overflow-x:hidden}
.workspace,.content,.panel,.tool-card,.assessment-workspace,.assessment-section-body,.table-wrap,.calendar-layout>*{min-width:0;max-width:100%}
.content *{box-sizing:border-box}
.content p,.content small,.content span,.content b,.content strong,.content label,.content button,.content td,.content th{word-break:normal;overflow-wrap:break-word;writing-mode:horizontal-tb}
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.segmented-tabs,.assessment-type-tabs,.assessment-status-tabs,.assessment-section-nav,.calendar-main-tabs,.calendar-legend{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;white-space:nowrap}
.segmented-tabs button,.assessment-type-tabs button,.assessment-status-tabs button,.assessment-section-nav button{flex:0 0 auto;white-space:normal;word-break:normal}
.assessment-media-grid,.analysis-layout,.assessment-workspace{min-width:0}
img,video,canvas{max-width:100%;height:auto}

@media(max-width:900px){
  .content{padding-left:var(--mobile-gutter);padding-right:var(--mobile-gutter)}
  .page-head,.panel-head,.assessment-section-header{align-items:flex-start;gap:12px;flex-wrap:wrap}
  .page-head>*,.panel-head>*,.assessment-section-header>*{min-width:0}
  .row-actions{flex-wrap:wrap}
  .form-grid,.settings-grid,.analysis-layout,.assessment-media-grid,.calendar-layout,.business-stats,.stats-grid{grid-template-columns:1fr!important}
  .calendar-layout{display:grid!important;grid-template-columns:1fr!important}
  .topbar{gap:8px;padding:10px 12px}
  .search-wrap{min-width:0;flex:1 1 150px}
  .search-wrap input{min-width:0;width:100%}
  .top-user-copy,.status-pill span{display:none}
  .top-actions{gap:7px;min-width:0}
  #quickAddBtn{padding-inline:12px}
}

@media(max-width:720px){
  .content{padding:12px!important}
  h1{font-size:clamp(1.65rem,8vw,2.2rem)}h2{font-size:1.25rem}h3{font-size:1.05rem}
  .panel,.tool-card{border-radius:18px;padding:14px}
  .assessment-type-tabs,.assessment-status-tabs,.segmented-tabs{display:flex!important;gap:7px!important;padding-bottom:5px}
  .assessment-type-tabs button,.assessment-status-tabs button,.segmented-tabs button{min-height:42px;padding:8px 13px!important;font-size:.88rem;line-height:1.15;text-align:center}

  /* Assessment records: desktop table -> readable mobile cards */
  .assessment-responsive-table{display:block;width:100%;border:0!important}
  .assessment-responsive-table thead{display:none!important}
  .assessment-responsive-table tbody{display:grid;gap:12px;width:100%}
  .assessment-responsive-table tr{display:grid!important;grid-template-columns:1fr 1fr;gap:9px 12px;width:100%;padding:14px;border:1px solid var(--line,rgba(80,90,110,.16));border-radius:16px;background:var(--panel,rgba(255,255,255,.5));box-shadow:0 6px 20px rgba(20,30,50,.06)}
  .assessment-responsive-table td{display:block!important;width:auto!important;min-width:0!important;max-width:none!important;padding:0!important;border:0!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;font-size:.9rem;line-height:1.35;word-break:normal!important;overflow-wrap:break-word!important;writing-mode:horizontal-tb!important}
  .assessment-responsive-table td::before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--muted,#697386);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
  .assessment-responsive-table td:first-child,.assessment-responsive-table td:nth-child(2){grid-column:1/-1}
  .assessment-responsive-table td:last-child{grid-column:1/-1;display:flex!important;gap:8px;align-items:center;flex-wrap:wrap}
  .assessment-responsive-table td .badge,.assessment-responsive-table td button{max-width:100%;white-space:normal}

  /* Other data tables can scroll instead of crushing text */
  .table-wrap table:not(.assessment-responsive-table){min-width:680px}
  .table-wrap th,.table-wrap td{word-break:normal!important;overflow-wrap:normal!important;white-space:normal}

  .assessment-workspace{display:block!important}
  .assessment-section-nav{display:flex!important;width:100%;margin-bottom:12px}
  .assessment-section-nav button{min-width:max-content}
  .assessment-media-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px}
  .assessment-media-card{width:100%!important;min-width:0!important}
  .analysis-metric-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px}
  .analysis-metric-grid>div{min-width:0;padding:10px}
  .analysis-metric-grid b{font-size:.95rem}
  .keyframe-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px}
  .journey-steps{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  .journey-step{min-width:0}

  .month-calendar{overflow-x:auto}
  .calendar-weekdays,.calendar-days{min-width:650px}
  .agenda-item{grid-template-columns:auto minmax(0,1fr)!important;gap:8px!important}
  .agenda-item>.badge,.agenda-item>button{grid-column:2;justify-self:start}
  .modal{width:calc(100vw - 16px)!important;max-width:none!important;margin:8px!important}
  .modal-inner{max-height:calc(100dvh - 20px);overflow:auto;padding:16px!important}
  .modal input,.modal select,.modal textarea{font-size:16px!important}
}

@media(max-width:430px){
  .analysis-metric-grid,.keyframe-grid{grid-template-columns:1fr!important}
  .assessment-responsive-table tr{grid-template-columns:1fr!important}
  .assessment-responsive-table td{grid-column:1!important}
  .journey-steps{grid-template-columns:1fr!important}
  .topbar{position:sticky;top:0}
  .avatar{width:42px;height:42px}
}

/* App-wide mobile layout audit */
@media(max-width:900px){
  .dashboard-grid,.owner-dashboard-grid,.coach-dashboard-grid,.client-dashboard-grid,.app-only-dashboard-grid,.management-grid,.movement-library-grid,.tool-grid,.theme-grid,.colour-setting-grid,.settings-check-grid,.quick-grid,.role-stats-grid,.client-stats-grid,.app-only-stats-grid{grid-template-columns:1fr!important}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .toolbar,.row-actions,.stack-actions,.panel-head,.page-head{min-width:0;max-width:100%}
  .program-tabs,.profile-tabs,.category-tabs,.assessment-filter-tabs{display:flex!important;max-width:100%;overflow-x:auto;gap:6px;padding-bottom:5px;white-space:nowrap;scrollbar-width:thin}
  .program-tabs button,.profile-tabs button,.category-tabs button,.assessment-filter-tabs button{flex:0 0 auto;min-width:max-content}
  .list-row{min-width:0;gap:10px}
  .list-row>div{min-width:0}
  .list-row b,.list-row small{overflow-wrap:break-word;word-break:normal}
  .kpi,.stat-card,.quick-btn,.management-card,.movement-card{min-width:0}
  .quick-btn{white-space:normal;text-align:left}
}
@media(max-width:560px){
  .stats-grid{grid-template-columns:1fr!important}
  .kpi,.stat-card{display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center}
  .kpi .stat-icon,.stat-card .stat-icon{grid-row:1/3;grid-column:1}
  .kpi b,.stat-card b{grid-column:2}
  .kpi small,.stat-card small{grid-column:2}
  .btn,.small-btn,.quick-btn{max-width:100%}
  .form-grid{display:grid!important;grid-template-columns:1fr!important}
  .form-grid>*{min-width:0;width:100%}
  input,select,textarea{max-width:100%;width:100%}
  .assessment-workspace-summary{display:grid!important;gap:8px}
  .assessment-workspace-summary>div{min-width:0}
}
