/* V38.82.37 — Responsive Layout Standardization
   Final cascade layer: normalize alignment, shrink behavior, wrapping and compact-screen composition
   without changing application data, navigation, sync, timing or analysis semantics. */

:root{--tm-responsive-card-gap:14px;--tm-responsive-section-pad:clamp(14px,2.2vw,22px);}

/* Universal shrink/reflow contract inside the application. */
#app,#main,.main-shell,.page,.experience-page,.experience-section,.surface-card,.evidence-panel,
.tm-team-ranking,.tm-team-competitive,.tm-competitive-stack,.tm-ranking-group-breakdowns,.tm-training-group-grid,
.tm-training-family,.tm-training-cohort-card,.tm-recruiting-grid,.tm-recruiting-card,.recruiting-breakdowns,
.recruiting-charts,.tm-glance-charts,.tm-chart,.experience-metrics,.section-head,.experience-section-heading,
.actions,.experience-action-grid,.experience-action-stack,details,details>summary{min-width:0;max-width:100%;box-sizing:border-box;}

.page :where(h1,h2,h3,h4,p,small,strong,b,span,a,button,label,summary,figcaption,th,td),
.experience-page :where(h1,h2,h3,h4,p,small,strong,b,span,a,button,label,summary,figcaption,th,td){
  min-width:0;overflow-wrap:anywhere;word-break:normal;white-space:normal;
}

/* One alignment rhythm for section headings and cards. */
.experience-section,.surface-card,.evidence-panel{width:100%;}
.section-head,.experience-section-heading,.tm-competitive-head,.tm-standard-connection-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.section-head>div,.experience-section-heading>div,.tm-competitive-head>div,.tm-standard-connection-head>div{flex:1 1 320px;min-width:0;}
.section-head>:not(div),.experience-section-heading>:not(div),.tm-competitive-head>:not(div){flex:0 1 auto;max-width:100%;}
.section-head .btn,.experience-section-heading .btn,.tm-competitive-head .btn{align-self:flex-start;}

/* Standard adaptive grids: minimums can never exceed their own container. */
.experience-metrics,.profile-band,.athlete-performance-summary{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))!important;}
.tm-glance-charts,.recruiting-charts{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;align-items:stretch;}
.tm-recruiting-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important;align-items:stretch;}
.tm-recruiting-card{height:100%;align-content:start;overflow:hidden;}
.tm-recruiting-card>div,.tm-recruiting-card>div>*{min-width:0;max-width:100%;}
.tm-recruiting-card>div:first-child strong{font-size:clamp(1.08rem,4.5vw,1.35rem)!important;}

/* Charts must remain inside cards even with long labels. */
.tm-chart{width:100%;overflow:hidden;}
.tm-bar-row{grid-template-columns:minmax(0,.95fr) minmax(72px,2fr) max-content!important;}
.tm-bar-row>span{overflow-wrap:anywhere;}
.tm-bar-track{width:100%;min-width:0;}

/* Intelligence tabs align to the content column and do not create a stray intrinsic width. */
.intelligence-tabs{width:100%!important;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:6px!important;}
.intelligence-tabs button{width:100%;min-width:0;white-space:normal;text-align:center;}

/* Recruiting tables: desktop remains tabular, compact layouts become labeled cards. */
.recruiting-breakdowns details{width:100%;overflow:hidden;}
.recruiting-breakdowns summary{min-width:0;align-items:flex-start;flex-wrap:wrap;}
.recruiting-breakdowns summary>*{min-width:0;}
.recruiting-breakdowns .table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;}
.recruiting-breakdowns table{width:100%;min-width:0;table-layout:fixed;}
.recruiting-breakdowns th,.recruiting-breakdowns td{white-space:normal!important;overflow-wrap:anywhere;vertical-align:top;}
.recruiting-breakdowns th:first-child{width:30%;}

/* Ranking and evidence rows: preserve the five-column ledger only when there is room. */
.tm-ranking-table{width:100%;max-width:100%;overflow:hidden;}
.tm-ranking-row{grid-template-columns:44px minmax(0,1.15fr) minmax(0,1.35fr) minmax(0,.85fr) minmax(52px,.34fr)!important;}
.tm-ranking-row>*{min-width:0;max-width:100%;}
.tm-ranking-row b,.tm-ranking-row strong,.tm-ranking-row small,.tm-ranking-row span{overflow-wrap:anywhere;}
.tm-ranking-compact-list>div,.tm-ranking-unranked>div{min-width:0;max-width:100%;}

/* Cohorts use a consistent visual hierarchy and never depend on desktop minimum widths. */
.tm-training-group-grid{gap:22px!important;}
.tm-training-family{width:100%;padding:0!important;border:1px solid var(--border-strong,#b9c4cf)!important;border-radius:18px!important;overflow:hidden;}
.tm-training-family>header{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start!important;gap:10px 18px!important;padding:16px 18px!important;}
.tm-training-family>header>div{min-width:0;}
.tm-training-family>header>small{max-width:34ch!important;text-align:right!important;overflow-wrap:anywhere;}
.tm-training-cohort-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important;gap:14px!important;padding:14px!important;background:var(--surface-muted,#f0f3f6);}
.tm-training-cohort-card{width:100%;height:auto;padding:16px!important;border:1px solid var(--border,#dfe5eb)!important;border-left:5px solid var(--action,#b63225)!important;border-radius:14px!important;background:var(--surface,#fff)!important;align-content:start;}
.tm-training-cohort-head{min-width:0;}
.tm-working-cohort-label{max-width:100%;white-space:normal;line-height:1.25;}
.tm-training-athlete-list{width:100%;min-width:0;}
.tm-training-athlete-row{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;gap:12px!important;align-items:start!important;}
.tm-training-athlete-row>span,.tm-training-athlete-evidence{min-width:0;max-width:100%;}
.tm-training-athlete-evidence{text-align:right;}

/* Details/disclosures align predictably and wrap their summary copy. */
.tm-training-cohorts>summary,.tm-ranking-group-detail>summary,.tm-ranking-all-best>summary,.tm-ranking-remainder>summary,.tm-ranking-unranked-all>summary{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;min-width:0;max-width:100%;
}
.tm-training-cohorts>summary>span,.tm-ranking-group-detail>summary>span,.tm-ranking-all-best>summary>span{min-width:0;max-width:100%;}

/* Prevent local visual media and controls from widening a page. */
.page img,.page video,.page canvas,.page svg,.experience-page img,.experience-page video,.experience-page canvas,.experience-page svg{max-width:100%;height:auto;}
.page input,.page select,.page textarea,.page button,.page .btn,.experience-page input,.experience-page select,.experience-page textarea,.experience-page button,.experience-page .btn{min-width:0;max-width:100%;}

/* Tablet: simplify multi-column evidence before it feels cramped. */
@media(max-width:900px){
  .tm-ranking-row{grid-template-columns:38px minmax(0,1fr) minmax(0,.78fr)!important;}
  .tm-ranking-row>:nth-child(3),.tm-ranking-row>:nth-child(4){grid-column:2/4;}
  .tm-ranking-head>:nth-child(3),.tm-ranking-head>:nth-child(4){display:none;}
  .tm-training-family>header{grid-template-columns:1fr;}
  .tm-training-family>header>small{text-align:left!important;max-width:none!important;}
}

/* Compact/mobile: no page-level horizontal scrolling; cards become single-column reading surfaces. */
@media(max-width:680px){
  #main,.page,.experience-page{max-width:100vw;}
  .section-head,.experience-section-heading,.tm-competitive-head,.tm-standard-connection-head{display:grid!important;grid-template-columns:minmax(0,1fr);gap:9px!important;}
  .section-head>* ,.experience-section-heading>* ,.tm-competitive-head>*{width:auto;max-width:100%;}
  .section-head .btn,.experience-section-heading .btn,.tm-competitive-head .btn{width:100%;}
  .tm-glance-charts,.recruiting-charts,.tm-recruiting-grid,.tm-training-cohort-list{grid-template-columns:minmax(0,1fr)!important;}
  .tm-training-cohort-list{padding:10px!important;}
  .tm-training-cohort-card{padding:14px!important;}
  .tm-training-athlete-row{grid-template-columns:minmax(0,1fr)!important;gap:7px!important;}
  .tm-training-athlete-evidence{text-align:left!important;}

  /* Recruiting comparison tables become true stacked cards rather than off-screen ledgers. */
  .recruiting-breakdowns .table-wrap{overflow:visible!important;padding:0 12px 12px!important;}
  .recruiting-breakdowns table,.recruiting-breakdowns tbody{display:block;width:100%;border:0!important;background:transparent!important;}
  .recruiting-breakdowns thead{display:none;}
  .recruiting-breakdowns tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;width:100%;margin:0 0 10px;padding:12px;border:1px solid var(--border,#dfe5eb);border-radius:12px;background:var(--surface,#fff);}
  .recruiting-breakdowns tr:last-child{margin-bottom:0;}
  .recruiting-breakdowns tbody th{grid-column:1/-1;width:auto!important;padding:0 0 8px!important;border:0!important;font-size:1rem;}
  .recruiting-breakdowns td{display:grid;gap:2px;padding:0!important;border:0!important;min-width:0;}
  .recruiting-breakdowns td::before{content:attr(data-label);font-size:.68rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:var(--text-muted,#536171);}

  /* Ranking ledgers become stacked evidence cards at phone widths. */
  .tm-ranking-table{display:grid;gap:8px;border:0!important;background:transparent!important;overflow:visible!important;}
  .tm-ranking-head{display:none!important;}
  .tm-ranking-row{display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;gap:7px 10px!important;padding:12px!important;border:1px solid var(--border,#dfe5eb)!important;border-radius:12px;background:var(--surface,#fff);contain:none!important;}
  .tm-ranking-row>:first-child{grid-column:1;grid-row:1/5;align-self:start;}
  .tm-ranking-row>:nth-child(n+2){grid-column:2!important;}
  .tm-ranking-row>:nth-child(3),.tm-ranking-row>:nth-child(4){display:block;grid-column:2!important;}
  .tm-ranking-row>:last-child{justify-self:start;}
}

@media(max-width:390px){
  .experience-metrics,.profile-band,.athlete-performance-summary{grid-template-columns:minmax(0,1fr)!important;}
  .recruiting-breakdowns tr{grid-template-columns:minmax(0,1fr);}
  .tm-training-cohort-list{padding:8px!important;}
  .tm-training-cohort-card{padding:12px!important;}
  .tm-bar-row{grid-template-columns:minmax(0,1fr) max-content!important;gap:5px 8px;}
  .tm-bar-track{grid-column:1/-1;grid-row:2;}
}

@media(forced-colors:active){
  .tm-training-family,.tm-training-cohort-card,.recruiting-breakdowns tr,.tm-ranking-row{border-color:CanvasText!important;}
}

/* Metric tiles use independent cards so wrapped rows never inherit stray divider geometry. */
.experience-metrics{gap:10px!important;border:0!important;background:transparent!important;overflow:visible!important;box-shadow:none!important;}
.experience-metrics>div{border:1px solid var(--border,#dfe5eb)!important;border-radius:13px!important;background:var(--surface,#fff)!important;padding:14px!important;min-width:0;}
.experience-metrics>div+div{border-left:1px solid var(--border,#dfe5eb)!important;}
.tm-ranking-groups,.tm-weight-room-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))!important;align-items:stretch;}
.tm-ranking-groups article,.tm-weight-room-grid article{height:100%;min-width:0;}

@media(max-width:680px){
  .experience-metrics>div:nth-child(n){border:1px solid var(--border,#dfe5eb)!important;}
  .experience-metrics>div:nth-child(n+1){border-top:1px solid var(--border,#dfe5eb)!important;}
  .tm-ranking-groups,.tm-weight-room-grid{grid-template-columns:minmax(0,1fr)!important;}
}
