/* Desktop workspace for the complete player-facing app. Mobile layouts remain in the existing responsive sheets. */
.report-due-badge { display:inline-flex; align-items:center; margin-left:7px; padding:4px 7px; border:1px solid #ff728566; border-radius:999px; background:#ed304326; color:#ff9aa7; font:800 8px/1 'DM Sans',sans-serif; letter-spacing:.09em; vertical-align:middle; }
.report-due-badge[hidden] { display:none!important; }
.player-menu-panel.is-report-time .home-options .home-option:not(.is-report-due) { opacity:.42; filter:saturate(.55) brightness(.72); transform:scale(.985); }
.player-menu-panel.is-report-time .home-options .home-option.is-report-due { border-color:#f75b70b8; background:linear-gradient(110deg,#d92b432e,#ffffff08 58%,#d92b4318); box-shadow:0 0 0 1px #f04a6024,0 12px 34px #0006,0 0 28px #ed334d1b,inset 0 1px 0 #ffffff13; }
.player-menu-panel.is-report-time .home-options .home-option.is-report-due .home-option-arrow { color:#ff7c8b; }
.player-today-status { display:grid; grid-template-columns:36px minmax(0,1fr); gap:12px; align-items:start; width:100%; margin:7px 0 8px; padding:14px 15px; border:1px solid #ffffff17; border-radius:15px; background:linear-gradient(120deg,#ffffff0b,#ffffff04 72%,#d92d4307); box-shadow:inset 0 1px 0 #ffffff08; }
.today-status-mark { display:grid; width:34px; height:34px; place-items:center; border:1px solid #ffffff20; border-radius:11px; background:#ffffff08; color:#d8d6d9; font:700 17px/1 'Space Grotesk',sans-serif; }
.today-status-copy { display:grid; gap:4px; min-width:0; }
.today-status-copy strong { color:#f4f1f2; font:600 12px/1.4 'Space Grotesk',sans-serif; }
.today-status-copy small { color:#b3afb4; font-size:10px; line-height:1.5; }
.today-status-copy .today-status-reminder { margin-top:3px; color:#88848b; font-size:9px; }
.player-today-status.is-open { border-color:#f064795e; background:linear-gradient(110deg,#d92b431b,#ffffff05 72%); }
.player-today-status.is-open .today-status-mark { border-color:#f064795e; background:#d92b431c; color:#ff9baa; }
.player-today-status.is-complete { border-color:#77b99b55; background:linear-gradient(110deg,#4a9b7415,#ffffff04 72%); }
.player-today-status.is-complete .today-status-mark { border-color:#77b99b55; background:#4a9b7418; color:#a8dfc2; }
.player-today-status.is-upcoming .today-status-mark { color:#d2c2a2; }
.report-due-badge { white-space:nowrap; }
.report-due-badge[hidden] { display:none!important; }
.player-menu-panel .home-option.is-report-complete { border-color:#77b99b48; }
.player-menu-panel .home-option.is-report-complete .home-option-arrow { color:#a8dfc2; }
@media (max-width:760px) {
  .player-today-status { margin:7px 0 8px; padding:13px; }
  /* Keep the player navigation reachable while a long view is scrolled. */
  body { overflow-x:clip; }
  .topbar { position:sticky; top:0; z-index:100; padding-top:calc(8px + env(safe-area-inset-top)); }
}
@media (min-width: 761px) {
  body.home-page { background-attachment:fixed; }
  .topbar { min-height:76px; padding-inline:clamp(28px,5vw,82px); }
  .brand-crest { width:42px; height:42px; }
  .brand strong { font-size:13px; }
  .brand small { font-size:10px; }
  .season-label { padding:9px 13px; font-size:9px; }
  .home-main.player-home-main { width:100%; max-width:1500px; min-height:calc(100vh - 76px); margin:0 auto; padding:clamp(34px,5vh,70px) clamp(24px,5vw,76px) 60px; }
  .player-home-main>.home-card[hidden] { display:none!important; }
  .player-home-main>.entry-panel { width:min(100%,1050px); margin:0 auto; }
  .entry-panel .entry-options { gap:14px; }
  .entry-panel .entry-option { min-height:96px; padding:19px 22px; }
  .entry-panel .entry-option-copy strong { font-size:18px; }
  .entry-panel .entry-option-copy small { max-width:34ch; font-size:11px; }
  .player-select-panel { display:grid; max-width:none!important; grid-template-columns:minmax(300px,.72fr) minmax(540px,1.28fr); grid-template-rows:auto auto auto auto auto auto auto; column-gap:clamp(30px,5vw,74px); row-gap:5px; align-items:center; width:min(100%,1260px); margin:0 auto; padding:clamp(30px,4vw,54px); }
  .player-select-panel>.home-back { grid-column:1/-1; grid-row:1; justify-self:start; margin-bottom:9px; }
  .player-select-panel>.home-kicker { grid-column:1; grid-row:2; align-self:end; margin:0 0 3px; }
  .player-select-panel>#playerSelectTitle { grid-column:1; grid-row:3; align-self:start; margin:0; font-size:clamp(36px,4vw,52px); }
  .player-select-panel>.home-lead { grid-column:1; grid-row:4; align-self:start; margin:4px 0 0; font-size:14px; }
  .player-select-panel>.player-picker { grid-column:2; grid-row:2/span 3; align-self:center; width:100%; max-width:620px; grid-template-columns:50px minmax(0,1fr) 50px; gap:14px; margin:0 auto; }
  .player-select-panel .player-portrait-stage { height:430px; }
  .player-select-panel .portrait-slide { width:min(82%,350px); }
  .player-select-panel .portrait-image-wrap { max-height:356px; }
  .player-select-panel .portrait-name { font-size:16px; }
  .player-select-panel .portrait-picker-meta { grid-column:2; grid-row:5; width:min(100%,500px); justify-self:center; margin:0; }
  .player-select-panel>.portrait-search-wrap { grid-column:1; grid-row:5; align-self:center; width:100%; max-width:none; margin:0; }
  .player-select-panel>.remember-portrait-option { grid-column:1; grid-row:6; justify-self:start; margin:5px 0 0; }
  .player-select-panel>.demo-player-entry { grid-column:1; grid-row:7; width:100%; max-width:none; margin:8px 0 0; }
  .player-select-panel>.home-status { grid-column:1/-1; grid-row:8; }
  .player-menu-panel { display:grid; max-width:none!important; grid-template-columns:minmax(320px,.78fr) minmax(460px,1.22fr); grid-template-rows:auto auto auto auto auto auto auto auto; column-gap:clamp(30px,5vw,74px); row-gap:6px; align-items:center; width:min(100%,1180px); margin:0 auto; padding:clamp(30px,4vw,56px); }
  .player-menu-panel>.home-back { grid-column:1/-1; grid-row:1; justify-self:start; margin-bottom:10px; }
  .player-menu-panel>.home-kicker { grid-column:1; grid-row:2; align-self:end; }
  .player-menu-panel>#playerGreeting { grid-column:1; grid-row:3; align-self:start; margin:0; font-size:clamp(36px,4vw,54px); }
  .player-menu-panel>.home-lead { grid-column:1; grid-row:4; margin:0; font-size:14px; }
  .player-menu-panel>.player-today-status { grid-column:1; grid-row:5; align-self:start; }
  .player-menu-panel>.player-inbox-link { grid-column:1; grid-row:6; justify-self:start; align-self:start; margin:9px 0 0; }
  .player-menu-panel>.home-options { grid-column:2; grid-row:2/span 5; display:grid; gap:13px; width:100%; align-self:stretch; align-content:center; }
  .player-menu-panel .home-option { min-height:100px; padding:22px 24px; }
  .player-menu-panel .home-option strong { font-size:18px; }
  .player-menu-panel .home-option small { font-size:11px; }
  .player-menu-panel>.player-setup-link { grid-column:1; grid-row:7; align-self:start; margin:10px 0 0; }
  .player-menu-panel>.home-status { grid-column:1/-1; grid-row:8; }
  .player-main { width:100%; max-width:1320px; margin:0 auto; padding:38px clamp(26px,4vw,64px) 58px; }
  .player-main>.intro { align-items:center; margin:0 0 23px; }
  .player-main>.intro h1 { font-size:36px; }
  .player-main .lead { font-size:13px; }
  .season-champion-card { width:min(100%,970px); max-width:none; margin:0 auto 16px; padding:13px 18px; grid-template-columns:40px minmax(0,1fr) 106px; }
  .season-champion-copy strong { font-size:18px; }
  .season-champion-copy>span { font-size:9px; }
  .season-champion-copy small { font-size:11px; }
  .season-league-logo { width:96px; height:66px; }
  .player-card { width:100%; max-width:none; margin:0 auto; padding:27px clamp(22px,2.8vw,40px) 23px; }
  .player-card>.card-heading { margin-bottom:17px; }
  .player-card>.card-heading h2 { font-size:21px; }
  .player-card #sessionForm { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 20px; align-items:start; }
  .player-card .session-identity { display:grid; grid-column:1/-1; grid-template-columns:minmax(190px,.65fr) minmax(330px,1.35fr); gap:8px 18px; align-items:end; padding:0 0 17px; margin-bottom:9px; border-bottom:1px solid #ffffff13; }
  .player-card .session-identity .field-row { margin:0; }
  .player-card .session-identity .session-day-note { grid-column:1/-1; margin:0; }
  .player-card #readinessPart { grid-column:1; grid-row:2; align-self:stretch; }
  .player-card #loadPart { grid-column:2; grid-row:2; align-self:stretch; }
  .player-card #readinessPart,.player-card #loadPart { min-width:0; height:100%; padding:19px; margin:0; }
  .player-card .part-heading { margin-bottom:17px; }
  .player-card .part-heading h3 { font-size:16px; }
  .player-card .part-heading p { font-size:11px; }
  .player-card .wellbeing-group { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:14px; }
  .player-card .wellbeing-group legend { grid-column:1/-1; font-size:13px; }
  .player-card .wellbeing-field { min-width:0; padding:12px; border:1px solid #ffffff10; border-radius:13px; background:#ffffff04; }
  .player-card .wellbeing-group .range-captions { gap:4px; font-size:9px; }
  .player-card .soreness-group { margin:16px 0 4px; padding-top:14px; }
  .player-card .soreness-group legend { font-size:13px; }
  .player-card .soreness-hint { font-size:10px; }
  .player-card .field-row { gap:14px; }
  .player-card .load-preview { margin:15px 0; padding:15px; }
  .player-card .optional-fields { margin:0 0 12px; }
  .player-card #sessionForm>.form-message { grid-column:1/-1; grid-row:3; }
  .player-card .privacy-note { grid-column:1/-1; margin-top:16px; }
  .weekly-main { width:100%; max-width:1480px; margin:0 auto; padding:34px clamp(25px,4vw,62px) 56px; }
  .weekly-report-panel { display:grid; width:100%!important; max-width:none; grid-template-columns:minmax(260px,.55fr) minmax(0,1.45fr); column-gap:clamp(24px,4vw,58px); align-items:start; padding:clamp(28px,3vw,46px)!important; }
  .weekly-report-panel>.weekly-back { grid-column:1/-1; grid-row:1; justify-self:start; }
  .weekly-report-panel>.home-kicker { grid-column:1; grid-row:2; align-self:end; }
  .weekly-report-panel>#weeklyTitle { grid-column:1; grid-row:3; align-self:start; margin:0; font-size:40px; }
  .weekly-report-panel>#weeklyPlayer { grid-column:1; grid-row:4; margin:7px 0 0; }
  .weekly-report-panel>#weeklyLoading,.weekly-report-panel>#weeklyError,.weekly-report-panel>#weeklyArchive { grid-column:1/-1; width:100%; }
  .weekly-report-panel>#weeklyContent:not([hidden]) { display:grid; grid-column:1/-1; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:17px 22px; align-items:start; margin-top:9px; }
  #weeklyContent>.weekly-score-card { grid-column:1/-1; grid-template-columns:126px minmax(0,1fr); gap:24px; min-height:154px; padding:24px 28px; }
  #weeklyContent .weekly-score-ring { width:116px; height:116px; }
  #weeklyContent .weekly-score-ring>div { width:94px; height:94px; }
  #weeklyContent .weekly-score-copy h2 { font-size:23px; }
  #weeklyContent .weekly-score-copy>p:last-child { font-size:12px; }
  #weeklyContent>.weekly-stat-grid { grid-column:1/-1; gap:13px; margin:0 0 4px; }
  #weeklyContent .weekly-stat { padding:17px 19px; }
  #weeklyContent .weekly-stat>span { font-size:11px; }
  #weeklyContent .weekly-stat>strong { font-size:24px; }
  #weeklyContent .weekly-stat>small { font-size:10px; }
  #weeklyContent>.weekly-metrics { grid-column:1; grid-row:3/span 2; padding:19px; border:1px solid #ffffff13; border-radius:17px; background:#ffffff04; }
  #weeklyContent .weekly-metric-list { grid-template-columns:1fr; gap:10px; }
  #weeklyContent .weekly-metric { padding:15px; }
  #weeklyContent>.weekly-insights { grid-column:2; grid-row:3; margin:0; }
  #weeklyContent>.weekly-sessions { grid-column:2; grid-row:4; margin:0; }
  #weeklyContent>.weekly-footnote { grid-column:1/-1; }
  .weekly-report-panel>.home-return { grid-column:1/-1; justify-self:start; }
  .weekly-archive-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .messages-main { width:100%; max-width:1480px; margin:0 auto; padding:35px clamp(25px,4vw,62px) 58px; }
  .messages-card { display:grid; grid-template-columns:minmax(265px,.6fr) minmax(0,1.4fr); grid-template-rows:auto auto auto auto minmax(0,1fr) auto; gap:0 clamp(22px,3vw,44px); width:100%; min-height:650px; max-width:none; padding:clamp(28px,3vw,44px); }
  .messages-card>.home-back { grid-column:1/-1; grid-row:1; justify-self:start; margin-bottom:17px; }
  .messages-card>.home-kicker { grid-column:1; grid-row:2; align-self:end; margin:0 0 6px; }
  .messages-card>h1 { grid-column:1; grid-row:3; align-self:start; margin:0 0 9px; font-size:38px; }
  .messages-card>.message-player-identity { grid-column:1; grid-row:4; align-self:start; margin:0; padding:14px; border:1px solid #ffffff14; border-radius:16px; background:#ffffff05; }
  .messages-card>#messageError { grid-column:1; grid-row:5; align-self:start; }
  .messages-card>.message-thread { grid-column:2; grid-row:2/span 4; align-self:stretch; height:min(60vh,680px); max-height:none; min-height:400px; margin:0; padding:19px; border-radius:18px; }
  .messages-card>.message-compose { grid-column:2; grid-row:6; align-self:end; margin-top:13px; padding-top:13px; }
  .messages-card>.home-return { grid-column:1/-1; justify-self:start; }
  .messages-card>.message-compose label { font-size:13px; }
  .messages-card>.message-compose .login-submit { min-height:52px; }
  .reset-card { width:min(100%,670px); margin:34px auto; padding:36px; }
  .demo-main { width:100%; max-width:1500px; margin:0 auto; padding:34px clamp(24px,4vw,62px) 58px; }
  .demo-shell { padding:clamp(26px,3vw,44px); }
  .demo-workspace { width:100%; max-width:1400px; grid-template-columns:270px minmax(0,1fr); min-height:min(820px,calc(100vh - 210px)); }
  .demo-player-rail { padding:24px 17px; }
  .demo-content { padding:clamp(24px,3vw,42px); }
  .demo-page-heading h2 { font-size:30px; }
  .demo-stat-card { min-height:140px; padding:18px; }
  .demo-stat-card>span { font-size:9px; }
  .demo-stat-card>strong { font-size:30px; }
  .demo-stat-card>small { font-size:10px; }
  .demo-section-title h3 { font-size:18px; }
  .demo-roster { max-height:calc(100vh - 350px); }
  .demo-thread-messages { max-height:55vh; }
  .demo-messages-page .demo-main { max-width:1320px; }
  .demo-messages-page .demo-shell { padding:32px; }
  .demo-messages-page .demo-view { min-height:560px; }
  .demo-messages-page #playerDemo .demo-chat { min-height:430px; max-height:60vh; }
  .demo-messages-page .demo-coach-layout { min-height:540px; grid-template-columns:minmax(280px,.7fr) minmax(0,1.7fr); }
}
@media (min-width:761px) and (max-width:1050px) {
  .home-main.player-home-main { padding-inline:24px; }
  .player-select-panel { grid-template-columns:minmax(235px,.65fr) minmax(430px,1.35fr); column-gap:26px; padding:28px; }
  .player-select-panel .player-portrait-stage { height:390px; }
  .player-menu-panel { grid-template-columns:minmax(260px,.72fr) minmax(400px,1.28fr); column-gap:28px; padding:30px; }
  .player-main { padding-inline:26px; }
  .weekly-main,.messages-main { padding-inline:26px; }
  .messages-card { grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr); }
  .demo-workspace { grid-template-columns:225px minmax(0,1fr); }
}
@media (max-width:760px) {
  .player-card #sessionForm { display:flex; }
  .player-card .session-identity { display:block; }
  .player-card .session-identity .field-row { margin-top:13px; }
  .player-card #readinessPart,.player-card #loadPart { height:auto; }
}

/* Prevent iOS Safari from auto-zooming when a small form control receives focus.
   The viewport remains user-scalable, so pinch-to-zoom still works as usual. */
@media (max-width:760px) {
  input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    font-size:16px !important;
  }
}
