/* The live field and current decision share one screen. Reports stay below. */
.app-shell[data-view="gameday"]{--gameday-content-width:1120px}
.app-shell[data-view="gameday"] .topbar{height:48px;min-height:0;padding-block:0}
.app-shell[data-view="gameday"] .main-shell>main{padding:8px 16px 20px}
.game-layout.game-layout--tray{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;max-width:var(--gameday-content-width,1120px);margin-inline:auto}
/* Keep actions and final-game reports on the same edges as the live game. */
.game-layout--tray+.gameday-actions,.game-layout--tray+.box-score,.app-shell[data-view="gameday"] .main-shell>main>.banner{width:100%;max-width:var(--gameday-content-width,1120px);margin-inline:auto}
.game-layout--tray>*{min-width:0;order:initial;width:100%}
.game-layout--tray .gameday-support{padding:6px 12px;border:1px solid var(--line);background:var(--card);border-radius:2px}
.game-layout.game-layout--tray>.game-stage{display:grid;grid-template-columns:minmax(0,1fr);gap:0;min-width:0}
.game-layout--tray .game-field-card{position:relative;border-bottom:0;border-radius:2px 2px 0 0}
.game-layout--tray .scoreboard{padding:5px 12px;gap:10px;min-height:44px}
.game-layout--tray .team-badge{width:28px;height:28px;font-size:18px}
.game-layout--tray .team-score{gap:8px}
.game-layout--tray .team-name{font-size:18px}
.game-layout--tray .team-name small{display:none}
.game-layout--tray .score{font-size:28px;line-height:1}
.game-layout--tray .score-clock{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px}
.game-layout--tray .score-clock br{display:none}
.game-layout--tray .score-clock strong{font-size:20px;line-height:1.2;margin:0;letter-spacing:0}
.game-layout--tray .score-clock small{font-size:16px;line-height:1.2;margin:0;letter-spacing:0}
.game-layout--tray .live-chip{padding:3px 5px;margin:0;font-size:14px;line-height:1}
.game-layout--tray .pre-field-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:0 10px;border-top:1px solid var(--line);gap:4px}
.game-layout--tray .clock-controls{border:0;padding:0;order:0;gap:10px;min-height:44px;flex-wrap:nowrap}
.game-layout--tray .clock-details{font-size:14px}
.game-layout--tray .field-drive-actions{display:flex;gap:8px;border:0;padding:0;order:1}
.game-layout--tray .pre-field-tools .secondary{min-height:40px;padding:6px 10px;font-size:16px}
.game-layout--tray .clock-hint{display:none}
.game-layout--tray .call-sheet-jump{display:none}
.game-layout--tray .field-wrap{height:clamp(200px,calc(100dvh - 480px),400px);min-height:200px}
.game-layout--tray #field{width:100%;height:100%;max-width:100%;display:block}
.game-layout--tray .field-events{inset:18px 8px auto}
#game-call-sheet{scroll-margin-top:8px}
.game-layout--tray .play-panel{padding:8px 12px 0;border-top:2px solid var(--accent);border-radius:0 0 2px 2px;position:static;max-height:none;min-width:0;overflow:visible}
.game-layout--tray .pre-snap-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 6px;padding:0;list-style:none}
.game-layout--tray .pre-snap-steps li{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;padding:5px 10px;min-height:32px;min-width:0;border:1px solid var(--line);border-radius:0;color:var(--muted);background:var(--surface-soft)}
.game-layout--tray .pre-snap-steps li+li{border-left:0}
.game-layout--tray .pre-snap-steps .step-number{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border:1px solid currentColor;font-size:16px;line-height:1;opacity:1}
.game-layout--tray .pre-snap-steps .step-copy{min-width:0;opacity:1;line-height:1.2}
.game-layout--tray .pre-snap-steps strong{font-size:16px;font-weight:700}
.game-layout--tray .pre-snap-steps small{display:none}
.game-layout--tray .pre-snap-steps .is-complete{color:var(--success-text);background:var(--success-bg)}
.game-layout--tray .pre-snap-steps .is-current{color:var(--action-text);background:var(--action-bg);border-color:var(--action-bg)}
/* Keep headings available to assistive technology; the stage and scoreboard
   already give the same visual instruction and down/distance. */
.game-layout--tray .pre-snap-status,.game-layout--tray .tray-heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.game-layout--tray .tray-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:6px;min-height:44px}
.personnel-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:16px}
.personnel-summary>span{color:var(--muted);font-size:14px}
.personnel-change{font-size:14px;min-height:40px;padding:4px 0}
.game-layout--tray .tray-tools .personnel-summary{margin-right:auto}
.game-layout--tray .play-panel .tabs{margin:0;padding:2px}
.game-layout--tray .play-panel .tabs button{min-height:36px;padding:4px 12px;font-size:16px}
.game-layout--tray .call-search-label{display:block;margin:0;flex:0 1 190px;line-height:1}
.game-layout--tray #call-search{display:block;width:100%;height:40px;min-height:40px;padding:6px 10px;font-size:16px;line-height:1.4}
.game-layout--tray .tray-rail{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:stretch;gap:6px}
.game-layout--tray .tray-scroll{padding:0;min-width:0;min-height:44px;border-color:var(--line)}
.game-layout--tray .tray-scroll[data-direction="prev"] svg{transform:rotate(180deg)}
.game-layout--tray .play-panel .play-list{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 16px)/3);grid-template-rows:1fr;grid-auto-rows:1fr;align-content:stretch;align-items:stretch;height:104px;min-height:104px;max-height:104px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;gap:8px;padding:3px 3px 10px;scroll-padding:3px;scroll-snap-type:x proximity;scrollbar-width:thin}
.game-layout--tray .play-option,.game-layout--tray .play-option.selected{display:grid;grid-template-columns:minmax(0,1fr) 83px;min-height:0;height:100%;padding:8px;gap:8px;align-items:center;scroll-snap-align:start}
.game-layout--tray .play-option .mini-play{width:83px;height:50px;justify-self:end}
.game-layout--tray .play-option .type-label{display:none}
.game-layout--tray .play-option strong{font-size:18px;line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.game-layout--tray .play-option small{font-size:14px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.game-layout--tray .play-option.selected{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}
.game-layout--tray .play-option[hidden]{display:none}
.game-layout--tray .tray-commit{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:8px 16px;margin:6px 0 0;padding:6px 8px;background:var(--surface-soft);border:1px solid var(--line)}
.game-layout--tray .tray-read,.game-layout--tray .tray-selection{min-width:0}
.game-layout--tray .first-read-control{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;margin:0;font-size:14px;gap:8px;letter-spacing:0}
.game-layout--tray .sa-select{margin:0}
.game-layout--tray .sa-select-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}
.game-layout--tray .sa-select-trigger{min-height:40px;padding:6px 10px;font-size:18px;line-height:1.4}
.game-layout--tray .tray-read .read-note{margin:0;font-size:16px;line-height:1.3}
.game-layout--tray .tray-selection strong{display:block;font-size:16px;line-height:1.2}
.game-layout--tray .tray-selection>span{display:block;font-size:14px;line-height:1.2;color:var(--muted);margin:0}
.game-layout--tray .selection-note{margin:2px 0 0;font-size:14px;line-height:1.2;color:var(--muted);text-align:left}
.game-layout--tray .call-button{margin:0;min-height:44px;width:auto;justify-content:center;gap:8px;white-space:nowrap;font-size:18px;letter-spacing:0;padding:8px 14px}
.game-layout--tray .tray-commit--defense,.game-layout--tray .tray-commit--setup{grid-template-columns:1fr auto}
.game-layout--tray .tray-utilities{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px;padding:4px 0}
.game-layout--tray .tray-utilities .text-button{min-height:36px;font-size:16px;padding:4px 0}
.game-layout--tray .tray-utilities>details{margin:0;border:0}
.game-layout--tray .tray-utilities>details>summary{min-height:36px;padding:4px 0;gap:10px;font-size:16px;color:var(--forest)}
.game-layout--tray .tray-utilities>details[open]{flex-basis:100%;border-top:1px solid var(--line)}
.game-layout--tray .package-control{margin:0;padding:0;min-width:0;flex:1}
.game-layout--tray .package-control label{display:grid;grid-template-columns:auto minmax(130px,1fr);align-items:center;gap:10px;font-size:14px}
.game-layout--tray .tray-tools--setup .package-control{max-width:600px}
.game-layout--tray .tray-tools .opponent-personnel{margin:0;padding:4px 10px;display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px}
.game-layout--tray .opponent-personnel strong{font-size:16px}
.game-layout--tray .stamina-note{margin:4px 0 0;font-size:14px;line-height:1.2;padding:4px 6px}
.game-layout--tray .defense-read,.game-layout--tray .game-report-drawer,.game-layout--tray .opponent-scouting-compact{order:initial;margin:0}
.game-layout--tray .game-report-drawer .below-field{margin:0;order:initial}
.game-layout--tray .tray-special-teams .special-teams,.game-layout--tray .play-panel>.special-teams{margin:6px 0;max-width:480px}
.gameday-options .coach-details-body{padding-bottom:10px}
.gameday-options .phase-explanation,.gameday-options .tip,.gameday-options .personnel-details{font-size:16px;line-height:1.5}
.gameday-options .personnel-details p{margin:5px 0}
.field-settings{background:var(--surface-soft);border-top:1px solid var(--line)}
.field-settings>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-size:16px;min-height:44px;padding:10px 16px;color:var(--muted)}
.field-settings>summary::-webkit-details-marker{display:none}
.field-settings>summary::after{content:'+';font-size:20px}
.field-settings[open]>summary::after{content:'−'}
.field-settings>.field-toolbar{border:0;padding-top:0}
.field-settings>.field-key{border-top:1px solid var(--line)}
.field-settings>summary:focus-visible,.gameday-options>summary:focus-visible{outline:2px solid var(--control-focus);outline-offset:-3px}
@media(max-width:1100px){
 .game-layout--tray .play-panel .play-list{grid-auto-columns:calc((100% - 8px)/2)}
 .game-layout--tray .live-chip{display:none}
 .game-layout--tray .clock-details{display:none}
 .game-layout--tray .tray-tools{gap:6px}
 .game-layout--tray .call-search-label{flex-basis:150px}
 .game-layout--tray .tray-commit{grid-template-columns:minmax(0,1fr) auto}
 .game-layout--tray .tray-commit:not(.tray-commit--setup):not(.tray-commit--defense) .tray-selection{display:none}
}
@media(max-width:760px){
 .app-shell[data-view="gameday"] .sidebar{padding:8px 12px;min-height:52px}
 .app-shell[data-view="gameday"] .brand-word{font-size:20px;line-height:1.05}
 .app-shell[data-view="gameday"] .brand-word small{display:none}
 .app-shell[data-view="gameday"] .topbar{height:40px;padding:0 12px}
 .app-shell[data-view="gameday"] .main-shell>main{padding:6px 8px 16px}
 .game-layout--tray .field-wrap{height:clamp(200px,calc(100dvh - 580px),260px);min-height:200px}
 .game-layout--tray .scoreboard{padding:5px 8px;gap:6px;grid-template-columns:minmax(0,1fr) minmax(144px,1.4fr) minmax(0,1fr)}
 .game-layout--tray .team-name{display:none}
 .game-layout--tray .team-score{flex-direction:row;gap:6px}
 .game-layout--tray .team-badge{width:24px;height:26px;font-size:16px}
 .game-layout--tray .score{font-size:24px}
 .game-layout--tray .score-clock{flex-direction:column;gap:2px}
 .game-layout--tray .score-clock strong{font-size:20px}
 .game-layout--tray .score-clock small{font-size:14px}
 .game-layout--tray .pre-field-tools{padding:0 6px}
 .game-layout--tray .pre-field-tools .secondary{min-height:44px;padding:6px 8px}
 .game-layout--tray .play-panel{padding:6px 6px 0}
 .game-layout--tray .pre-snap-steps li{padding:5px;gap:5px}
 .game-layout--tray .pre-snap-steps strong{font-size:14px}
 .game-layout--tray .pre-snap-steps .step-number{width:18px;height:18px;flex-basis:18px;font-size:14px}
 .game-layout--tray .tray-tools{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:4px 6px}
 .game-layout--tray .tray-tools .personnel-summary{grid-column:1/-1;margin:0;justify-content:space-between;min-height:32px}
 .game-layout--tray .personnel-change{min-height:44px}
 .game-layout--tray .play-panel .tabs button{min-height:40px;padding:4px 7px}
 .game-layout--tray .call-search-label{min-width:0}
 .game-layout--tray #call-search{height:44px;min-height:44px;font-size:16px;padding:6px 7px}
 .game-layout--tray .tray-rail{grid-template-columns:32px minmax(0,1fr) 32px;gap:4px}
 .game-layout--tray .play-panel .play-list{grid-auto-columns:100%;height:100px;min-height:100px;max-height:100px}
 .game-layout--tray .play-option,.game-layout--tray .play-option.selected{grid-template-columns:minmax(0,1fr) 83px;padding:7px;gap:6px}
 .game-layout--tray .tray-commit{padding:6px;gap:6px;grid-template-columns:minmax(0,1fr) auto}
 .game-layout--tray .first-read-control{display:block;font-size:14px;line-height:1.3}
 .game-layout--tray .sa-select-trigger{min-height:44px;font-size:16px;padding:6px 8px;gap:6px}
 .game-layout--tray .call-button{min-height:44px;font-size:16px;padding:8px 10px;gap:5px}
 .game-layout--tray .call-button .icon:last-child{display:none}
 .game-layout--tray .tray-tools--setup,.game-layout--tray .tray-tools--defense{grid-template-columns:1fr}
 .game-layout--tray .package-control label{font-size:14px;grid-template-columns:auto minmax(120px,1fr)}
 .game-layout--tray .tray-tools .opponent-personnel{min-height:32px;padding:4px 8px}
 .game-layout--tray .tray-utilities{gap:4px 12px}
 .game-layout--tray .tray-utilities .text-button,.game-layout--tray .tray-utilities>details>summary{min-height:44px;font-size:14px}
}
@media(max-height:650px) and (min-width:761px){
 .game-layout--tray .field-wrap{height:200px;min-height:200px}
 .game-layout--tray .tray-utilities{padding-top:0}
}

/* Desktop coaching desk: field and call sheet share the available width.
   Only the call list scrolls; first read and the final action stay in view. */
@media(min-width:1101px){
 .app-shell[data-view="gameday"]{--gameday-content-width:1600px;--gameday-stage-height:clamp(540px,calc(100dvh - 166px),680px)}
 .app-shell[data-view="gameday"] .main-shell>main{max-width:none}
 .game-layout.game-layout--tray{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 .game-layout.game-layout--tray>.game-stage{grid-column:1/-1;grid-template-columns:minmax(0,1fr) clamp(360px,25vw,400px);gap:14px;height:var(--gameday-stage-height);min-height:0;align-items:stretch}
 .game-layout--tray .gameday-support{grid-column:1/-1}
 .game-layout--tray .game-field-card{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;border:1px solid var(--line);border-radius:2px}
 .game-layout--tray .scoreboard{min-height:56px;padding:8px 12px}
 .game-layout--tray .score-clock{flex-direction:column;gap:2px}
 .game-layout--tray .live-chip{display:none}
 .game-layout--tray .field-wrap{height:100%;min-height:0;border-bottom:0}
 .game-layout--tray .play-panel{display:flex;flex-direction:column;min-height:0;height:100%;padding:12px;overflow:auto;border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:2px}
 .game-layout--tray .play-panel>*{flex-shrink:0;min-width:0}
 .game-layout--tray .pre-snap-steps{margin-bottom:10px}
 .game-layout--tray .pre-snap-steps li{padding:5px;gap:5px;min-height:42px}
 .game-layout--tray .pre-snap-steps strong{font-size:14px;line-height:1.2}
 .game-layout--tray .pre-snap-steps .step-number{width:18px;height:18px;flex-basis:18px;font-size:14px}
 .game-layout--tray .tray-heading{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;margin:0 0 10px;padding:0}
 .game-layout--tray .tray-heading h2{font-size:24px!important;line-height:1.2;margin:0;letter-spacing:0}
 .game-layout--tray .tray-heading .downline,.game-layout--tray .tray-next-step{display:none}
 .game-layout--tray .tray-tools{display:grid;grid-template-columns:minmax(0,1fr) 126px;gap:6px;margin:0 0 10px;min-height:0}
 .game-layout--tray .tray-tools .personnel-summary{grid-column:1/-1;justify-content:space-between;min-height:32px;margin:0}
 .game-layout--tray .personnel-change{min-height:32px}
 .game-layout--tray .play-panel .tabs button{font-size:16px;padding:4px 7px;min-height:36px}
 .game-layout--tray .call-search-label{min-width:0}
 .game-layout--tray .tray-tools--setup,.game-layout--tray .tray-tools--defense{grid-template-columns:minmax(0,1fr)}
 .game-layout--tray .package-control label{grid-template-columns:auto minmax(0,1fr);gap:8px;font-size:14px}
 .game-layout--tray .tray-tools .opponent-personnel{min-height:36px;padding:6px 8px;gap:8px;flex-wrap:wrap}
 .game-layout--tray .tray-rail{display:block;flex:1 1 auto;min-height:100px;overflow:hidden}
 .game-layout--tray .tray-scroll{display:none}
 .game-layout--tray .play-panel .play-list{height:100%;min-height:0;max-height:none;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:row;grid-auto-columns:auto;grid-template-rows:none;grid-auto-rows:minmax(82px,max-content);align-content:start;gap:8px;padding:2px 6px 2px 2px;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-type:none}
 .game-layout--tray .play-option,.game-layout--tray .play-option.selected{grid-template-columns:minmax(0,1fr) 100px;min-height:82px;height:auto;padding:10px;gap:10px}
 .game-layout--tray .play-option .mini-play{width:100px;height:60px}
 .game-layout--tray .play-option strong{font-size:20px;line-height:1.2}
 .game-layout--tray .play-option small{font-size:14px;line-height:1.3}
 .game-layout--tray .tray-commit,.game-layout--tray .tray-commit--defense,.game-layout--tray .tray-commit--setup{grid-template-columns:minmax(0,1fr);gap:8px;padding:8px;margin:10px 0 0}
 .game-layout--tray .tray-commit .tray-selection{display:none}
 .game-layout--tray .tray-commit--setup .tray-selection{display:block}
 .game-layout--tray .tray-commit--setup{margin-top:auto}
 .game-layout--tray .first-read-control{grid-template-columns:auto minmax(0,1fr);gap:8px;font-size:14px}
 .game-layout--tray .call-button{width:100%;min-height:44px}
 .game-layout--tray .play-panel>.special-teams{flex-shrink:0;max-width:none;margin:8px 0 0}
 .game-layout--tray .play-panel:not(:has(.tray-rail))>.call-button{margin-top:12px}
 .game-layout--tray .tray-utilities{padding:0;gap:4px 20px}
 .game-layout--tray .gameday-support .tray-utilities>details[open]{flex-basis:100%}
 .game-layout--tray .game-field-details,.game-layout--tray .opponent-scouting-compact,.game-layout--tray .defense-read,.game-layout--tray .game-report-drawer{align-self:start;min-width:0}
}
@media(min-width:1101px) and (max-width:1399px){
 .game-layout--tray .team-name,.game-layout--tray .clock-details{display:none}
 .game-layout--tray .scoreboard{gap:6px}
 .game-layout--tray .score-clock small{font-size:14px;letter-spacing:0}
}
