/* One selected athlete at a time, with a bounded touch-friendly selector. */
.capture-stage{gap:20px;flex-wrap:wrap}
.stage-title{min-width:0}.stage-title h2{overflow-wrap:anywhere}
.capture-list{grid-template-columns:minmax(0,1fr);align-items:start;max-width:900px;margin-inline:auto}
.capture-card{min-width:0;scroll-margin-top:20px}
.capture-identity{align-items:flex-start;gap:12px;flex-wrap:wrap}
.capture-identity>div{flex:1;min-width:150px}.capture-identity h3{font-size:17px;line-height:1.35}
.capture-identity small,.capture-state{font-size:12px;line-height:1.5}
.capture-state{max-width:100%;white-space:normal}
.capture-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.capture-fields>label{min-width:0;font-size:13px;line-height:1.5}
.capture-fields input,.capture-fields select{width:100%;min-height:50px;font-size:16px;box-sizing:border-box}
.capture-fields .numeric-wrap>input{font-size:24px;margin-top:7px}
.capture-fields .numeric-wrap>span{font-size:12px;top:23px}
.capture-fields label>small{display:block;font-size:12px;margin-top:7px}
.capture-preview{padding:10px 0;min-width:0}.capture-preview>small{font-size:10px}.capture-preview>strong{font-size:22px}
.correction-reason{display:block;font-size:13px}.correction-reason input{font-size:16px;min-height:48px}
.capture-footer{align-items:stretch;flex-direction:column;gap:12px}
.capture-footer .save-feedback{max-width:none;font-size:12px;line-height:1.5;min-height:18px}
.capture-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.capture-actions .button{min-height:48px;font-size:14px;white-space:normal}
.capture-card[data-conflict="1"]{border-color:var(--gold)}
.capture-toolbar{flex-wrap:wrap;gap:14px}.capture-toolbar .search-box{max-width:none;min-width:220px}
.capture-toolbar .search-box input{font-size:16px}
#coach-filter button{min-height:46px;font-size:13px}
.connection-indicator{font-size:12px;line-height:1.5;white-space:normal}
#stale-stage,#roster-changed{flex-wrap:wrap;font-size:14px;line-height:1.5}
#stale-stage a,#roster-changed a{text-decoration:underline;font-weight:600}
@media(max-width:1100px){.capture-list{grid-template-columns:1fr}}
@media(max-width:600px){
 .capture-stage{padding:18px;gap:14px}.stage-number{font-size:40px;padding-right:14px}
 .stage-title h2{font-size:27px}.stage-title>span:last-child{font-size:12px}
 .stage-completion{width:100%;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stage-completion .progress{width:100%;margin:0}
 .capture-toolbar{align-items:stretch}.capture-toolbar .search-box{flex-basis:100%;min-width:0}
 #coach-filter{display:flex;width:100%}#coach-filter button{flex:1}
 .capture-identity{padding:16px}.capture-state{flex-basis:100%;margin-left:0}
 .capture-fields{padding:16px;gap:14px}.capture-footer{padding:16px}
 .capture-actions .button{flex:1}.correction-reason{padding-inline:16px}
}
/* Allocate the board actual remaining screen height; pagination uses that height. */
body.tv-mode .workspace{margin:0;width:100%;max-width:none}
body.tv-mode main{width:100%;max-width:none;margin:0;height:100dvh;box-sizing:border-box;padding:20px 28px;overflow:hidden}
#tv{--tv-row-height:88px;display:flex;flex-direction:column;height:100%;min-height:0;box-sizing:border-box}
#tv .tv-heading,#tv .tv-stage,#tv .tv-column-head,#tv .tv-bottom{flex-shrink:0}
#tv .tv-heading{margin-bottom:16px}.tv-heading h1{overflow-wrap:anywhere}
#tv .tv-stage{margin-bottom:16px;gap:20px}
#tv-board{flex:1;min-height:0;overflow:hidden}
#tv .tv-row{height:var(--tv-row-height);box-sizing:border-box;margin-bottom:8px;padding:12px 20px}
#tv .tv-athlete{min-width:0}#tv .tv-person-link{min-width:0}#tv .tv-person-link>div{min-width:0}
#tv .tv-athlete strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}
#tv .tv-bottom{padding:12px 0 0;flex-wrap:wrap;font-size:10px}
@media(min-width:1600px) and (min-height:900px){#tv{--tv-row-height:114px}#tv .tv-athlete strong{font-size:24px}#tv .tv-category{font-size:17px}}
@media(max-width:900px){
 body.tv-mode main{padding:14px}.tv-heading{flex-wrap:wrap;gap:12px}.tv-heading h1{font-size:26px}.tv-brand{font-size:34px}
 #tv .tv-stage{gap:12px;padding:12px;flex-wrap:wrap}#tv .tv-stage>div{padding-right:12px}
 #tv .tv-stage strong{font-size:22px}#tv .tv-category-control select{font-size:14px;min-height:40px}
 #tv .tv-column-head,#tv .tv-row{grid-template-columns:35px minmax(0,1fr) 95px 55px 75px;gap:10px}
 #tv .tv-row{padding:10px}.tv-column-head{padding-inline:10px}
}
@media(max-width:600px){
 #tv{--tv-row-height:106px}#tv .tv-brand{display:none}#tv .tv-heading h1{font-size:23px}
 #tv .tv-live{font-size:9px}#tv .tv-stage>div:first-child{flex-basis:100%;border:0}
 #tv .tv-column-head,#tv .tv-row{grid-template-columns:28px minmax(0,1fr) 64px;gap:8px}
 #tv .tv-column-head>span:nth-child(3),#tv .tv-column-head>span:nth-child(4),#tv .tv-category,#tv .tv-completion{display:none}
 #tv .tv-athlete strong{font-size:15px}#tv .tv-athlete small{font-size:10px}#tv .tv-score{font-size:28px}
 #tv .tv-person-link{gap:8px}#tv .tv-person-link .avatar{width:36px;height:44px;flex:none}
 #tv .tv-bottom>span:nth-child(2){display:none}
}

.standings-sync{font-size:12px;color:var(--muted);margin:0 0 14px}
#tv .tv-column-head{display:grid}
#tv .tv-category,#tv .tv-score{grid-column:auto;grid-row:auto}
#tv .tv-completion{display:block}
.capture-photo{width:42px;height:52px;object-fit:cover;object-position:center 25%;border-radius:8px;flex:none}
@media(max-width:900px){#tv .tv-stage>.tv-category-control{flex:1 1 140px;order:initial;border:0;padding:0}#tv .tv-clock{font-size:20px}}
@media(max-width:600px){#tv .tv-category,#tv .tv-completion{display:none}#tv .tv-stage small,#tv .tv-category-control label{font-size:10px}}
@media(max-height:550px){#tv .tv-heading{margin-bottom:8px}#tv .tv-heading .eyebrow{display:none}#tv .tv-stage{padding:8px;margin-bottom:8px}#tv .tv-stage>div:first-child{flex-basis:auto}#tv .tv-stage strong{font-size:18px}#tv .tv-bottom{padding-top:5px;font-size:9px}#tv{--tv-row-height:76px}}

.capture-picker{margin-bottom:20px}
#capture-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.capture-option{display:flex;flex-direction:column;gap:5px;text-align:left;padding:12px 16px;min-height:72px;min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit}
.capture-option strong{font-size:14px;overflow-wrap:anywhere}.capture-option span{font-size:12px;color:var(--muted)}
.capture-option[aria-pressed="true"]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.capture-option:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.capture-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px}
.capture-pagination span{font-size:12px;text-align:center}.capture-pagination .button{min-height:44px}
.capture-card[hidden]{display:none!important}
@media(max-width:900px){#capture-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#coach-filter{flex-wrap:wrap}#coach-filter button{flex:1 1 40%}.capture-option{padding:10px;min-height:80px}.capture-pagination{gap:8px}.capture-pagination .button{padding-inline:12px}}

/* Dense TV standings: fill the available height, then use a second column. */
#tv{--tv-row-height:64px}
#tv-board{display:grid;grid-auto-flow:column;gap:8px 22px;align-content:start}
#tv .tv-heads{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;flex-shrink:0}
#tv .tv-heads>.tv-column-head:nth-child(2){display:none}
#tv[data-columns="2"] .tv-heads{grid-template-columns:repeat(2,minmax(0,1fr))}
#tv[data-columns="2"] .tv-heads>.tv-column-head:nth-child(2){display:grid}
#tv .tv-row{margin:0;padding:8px 12px;min-width:0;overflow:hidden}
#tv .tv-column-head,#tv .tv-row{grid-template-columns:32px minmax(0,1fr) 110px 54px 86px;gap:10px}
#tv .tv-column-head{padding:0 12px 10px}
#tv .tv-athlete strong{font-size:17px;line-height:1.15}
#tv .tv-athlete small{font-size:10px;line-height:1.1}
#tv .tv-score{font-size:29px}#tv .tv-category{font-size:12px}
#tv .tv-person-link{gap:10px}#tv .tv-person-link .avatar{width:34px;height:40px}
#tv .tv-heading{margin-bottom:10px}#tv .tv-heading h1{font-size:36px;margin-bottom:0}
#tv .tv-stage{padding:12px 18px;margin-bottom:12px}
#tv .tv-stage strong{font-size:24px}
@media(min-width:2200px){#tv{--tv-row-height:78px}#tv .tv-athlete strong{font-size:22px}#tv .tv-category{font-size:14px}}
@media(max-width:600px){#tv{--tv-row-height:76px}#tv .tv-column-head,#tv .tv-row{grid-template-columns:28px minmax(0,1fr) 64px;gap:8px}#tv .tv-heading h1{font-size:23px}#tv .tv-athlete strong{font-size:15px}}

.tie-alert{justify-content:space-between;flex-wrap:wrap;gap:12px}
.tie-list{display:grid;gap:14px;max-width:1000px;margin-inline:auto}
.tie-list .tiebreak-entry{margin:0;padding:20px}
.tie-list summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;min-height:48px}
.tie-list summary strong{display:block;font-size:18px}.tie-list summary small{display:block;margin-top:5px;font-size:12px}
.tie-members{display:flex;flex-wrap:wrap;gap:8px 18px;padding:16px 0;margin-bottom:12px;border-bottom:1px solid var(--border)}
.tie-order{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.tie-list form h3{margin-top:22px}.tie-list select{min-height:48px;font-size:16px}
@media(max-width:600px){.tie-order{grid-template-columns:1fr}.tie-list summary{align-items:flex-start;flex-direction:column;gap:8px}.tie-list .tiebreak-entry{padding:16px}}

.ranking-table .category-heading th{text-align:left;color:var(--gold);font-size:14px;letter-spacing:0;text-transform:none;background:var(--panel-2);padding:14px 20px}

/* A bounded review queue, not pages of participant cards. */
#capture-options{display:flex;flex-direction:column;gap:0;max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:12px;overscroll-behavior:contain}
#capture-options:empty{border:0}
#capture-options .capture-option{flex-direction:row;align-items:center;justify-content:space-between;gap:16px;min-height:52px;border:0;border-bottom:1px solid var(--border);border-radius:0;flex-shrink:0}
#capture-options .capture-option span{flex-shrink:0;text-align:right}
.capture-picker{max-width:900px;margin-inline:auto}
@media(max-width:600px){#capture-options{max-height:190px}#capture-options .capture-option{min-height:58px}#capture-options .capture-option span{max-width:42%;flex-shrink:1}}

.station-review{padding:16px 0;border-block:1px solid var(--border);margin-bottom:20px}.station-review form{margin-top:12px}.station-pending-list{max-height:180px;overflow:auto}.station-pending-list p{margin:8px 0}

/* Compact station administration with secondary controls on demand. */
.event-day-controls .station-control-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px}
.station-control-heading>div{min-width:0}.station-control-heading h2{margin:4px 0 0;font-size:30px;overflow-wrap:anywhere}
.station-step{font-size:11px;color:var(--muted);letter-spacing:.08em}
.station-status{flex-shrink:0;border:1px solid var(--border);border-radius:30px;padding:6px 12px;font-size:12px;color:var(--gold)}
.station-control-progress{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.station-control-progress strong{color:var(--ink)}
.event-day-controls .station-control-actions{display:flex;gap:10px;margin-top:16px}
.event-day-controls .station-control-actions form{margin:0}
.event-day-controls .station-control-actions .button{min-height:46px}
.station-pending-disclosure{margin-top:12px;font-size:13px}
.station-pending-disclosure summary{cursor:pointer;color:var(--ink);padding:8px 0}
.station-switch-disclosure{margin-top:14px;border-top:1px solid var(--border);padding-top:6px}
.station-switch-disclosure>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:12px 0;color:var(--ink);font-size:13px;font-weight:600;list-style:none}
.station-switch-disclosure>summary::-webkit-details-marker{display:none}
.station-switch-disclosure[open]>summary .icon{transform:rotate(90deg)}
.event-day-controls .station-switch-disclosure form{margin:8px 0 0}
.station-switch-disclosure label{margin-bottom:12px}
@media(max-width:600px){.event-day-controls .station-control-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}.station-control-heading h2{font-size:26px}.station-control-progress{font-size:12px}.station-control-actions form,.station-control-actions .button{width:100%}.station-switch-disclosure .button{width:100%;white-space:normal}}

#operations-content .operations-grid>.event-day-controls{align-self:start}

.event-day-controls .station-control-actions{flex-wrap:wrap}
.event-day-controls .station-switch-disclosure{padding-top:16px}
.event-day-controls .station-pending-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;max-height:160px;font-size:12px}
.event-day-controls .station-pending-list p{margin:4px 0;overflow-wrap:anywhere}
#capture-options .capture-option{padding:12px 14px;gap:12px}
#capture-options .capture-option strong{font-size:14px;text-align:left;overflow-wrap:anywhere}
#capture-options .capture-option span{font-size:11px;padding:3px 8px;border-radius:20px;background:var(--panel-2);color:var(--muted)}
#capture-options .capture-option[data-status="done"] span{color:var(--gold)}
#capture-options .capture-option[aria-pressed="true"]{background:#f2ed000b;box-shadow:inset 3px 0 var(--gold)}

/* Coach capture: one width and one form layout for every tab and selection. */
.coach-workspace{width:100%;max-width:720px;margin-inline:auto}
.coach-workspace .page-heading{margin-bottom:16px;gap:12px}
.coach-workspace .page-heading h1{font-size:30px;margin-bottom:0}
.coach-workspace .eyebrow{font-size:11px}
.coach-workspace .capture-stage{padding:16px;margin-bottom:18px;gap:16px}
.coach-workspace .stage-number{font-size:32px;padding-right:12px}
.coach-workspace .stage-title{min-width:0;flex:1}
.coach-workspace .stage-title h2{font-size:26px;margin:4px 0}
.coach-workspace .stage-title>span{font-size:11px}
.coach-workspace .stage-completion{width:auto;margin-left:auto;font-size:11px}
.coach-workspace .stage-completion strong{font-size:24px}
.coach-workspace .stage-completion .progress{display:none}
.coach-workspace .capture-console,.coach-workspace .capture-workbench,.coach-workspace .capture-list,.coach-workspace .capture-picker{width:100%;max-width:none;margin:0;min-width:0}
.coach-workspace .capture-workbench{display:block}
.coach-workspace .capture-list{display:block}
.coach-workspace .capture-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}
.coach-workspace #coach-filter{order:-1;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:0;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:0;background:transparent}
.coach-workspace #coach-filter button{flex:1 0 auto;padding:12px;min-height:46px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);white-space:nowrap;font-size:13px;box-shadow:none}
.coach-workspace #coach-filter button.selected{color:var(--ink);border-bottom-color:var(--gold)}
.coach-workspace .capture-search-row{display:flex;align-items:center;gap:10px;width:100%}
.coach-workspace .capture-search-row .search-box{flex:1;min-width:0;margin:0;max-width:none}
.coach-workspace .search-box input{margin:0;min-height:48px;font-size:16px}
.coach-workspace #capture-change{flex:none;min-height:48px;margin:0;padding:10px 12px}
.coach-workspace #capture-options{display:flex;flex-direction:column;gap:0;max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:12px}
.coach-workspace #capture-options:empty{border:0}
.coach-workspace #capture-options .capture-option{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;min-height:58px;flex-shrink:0;padding:12px 16px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:var(--panel);color:var(--ink);box-shadow:none}
.coach-workspace #capture-options .capture-option:last-child{border-bottom:0}
.coach-workspace .capture-option strong{font-size:14px;overflow-wrap:anywhere;text-align:left}
.coach-workspace .capture-option span{font-size:11px;background:transparent;color:var(--muted);text-align:right;flex-shrink:0}
.coach-workspace .capture-option[data-status="done"] span{color:var(--gold)}
.coach-workspace .capture-card{margin:0;border-radius:12px;overflow:hidden;box-shadow:none}
.coach-workspace .capture-identity{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:6px 12px;align-items:center;padding:16px}
.coach-workspace .capture-identity:not(:has(.capture-photo)){grid-template-columns:auto minmax(0,1fr)}
.coach-workspace .capture-identity>div{min-width:0}
.coach-workspace .capture-identity h3{font-size:16px;line-height:1.35;margin:0 0 4px;overflow-wrap:anywhere}
.coach-workspace .capture-identity small{font-size:11px;line-height:1.4}
.coach-workspace .bib-number{font-size:24px}
.coach-workspace .capture-state{grid-column:1/-1;font-size:11px;margin:4px 0 0}
.coach-workspace .capture-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;padding:16px}
.coach-workspace .capture-fields>label{grid-column:auto}
.coach-workspace .capture-fields label{margin:0;font-size:12px;line-height:18px}
.coach-workspace .capture-fields input,.coach-workspace .capture-fields select{height:52px;min-height:52px;margin:6px 0 0;padding:10px 12px;font-size:16px;line-height:normal}
.coach-workspace .numeric-wrap{margin-top:6px}
.coach-workspace .capture-fields .numeric-wrap>input{margin:0;padding-right:52px;font-size:24px}
.coach-workspace .capture-fields .numeric-wrap>span{top:50%;transform:translateY(-50%);right:14px;font-size:12px;pointer-events:none}
.coach-workspace .correction-reason{padding:0 16px;margin:0 0 16px}
.coach-workspace .capture-footer{display:flex;flex-direction:column;align-items:stretch;padding:12px 16px;gap:10px}
.coach-workspace .save-feedback{min-height:0;font-size:12px;line-height:1.4}
.coach-workspace .capture-actions{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin:0}
.coach-workspace .capture-actions .button{min-height:46px;font-size:13px;margin:0}
.coach-workspace #capture-list-actions{display:contents;margin:0}
.coach-workspace [hidden]{display:none!important}
@media(max-width:600px){
 .coach-workspace .page-heading{flex-wrap:wrap}.coach-workspace .page-heading h1{font-size:26px}
 .coach-workspace .capture-stage{padding:12px;gap:10px}.coach-workspace .stage-title h2{font-size:23px}
 .coach-workspace .stage-completion{flex-basis:100%;display:flex;justify-content:flex-end;gap:4px}.coach-workspace .stage-completion strong{font-size:14px}
 .coach-workspace #coach-filter button{font-size:12px;padding-inline:9px}
 .coach-workspace #capture-change{font-size:12px;padding-inline:10px}
 .coach-workspace .capture-fields{grid-template-columns:minmax(0,1fr)}
 .coach-workspace .capture-actions .button{flex:1 1 100%}
 .coach-workspace #capture-options{max-height:45dvh}
 .coach-workspace .capture-option span{max-width:35%;flex-shrink:1}
}

.coach-workspace[data-view="pending"] .capture-actions{justify-content:center}
.coach-workspace[data-view="pending"] .capture-actions [data-save-mark]{flex:0 1 240px;width:240px;max-width:100%}
@media(max-width:480px){.event-day-controls .station-pending-list{grid-template-columns:minmax(0,1fr)}}

/* Global highlights follow the complete athlete rotation. */
#tv[data-view="highlights"] .tv-heads{display:none}
#tv-highlight-heading{display:flex;align-items:baseline;gap:20px;padding:0 12px 10px}
#tv-highlight-heading[hidden]{display:none}
#tv-highlight-heading strong{font-size:22px}
#tv-highlight-heading span{font-size:12px;color:var(--muted,#b7bdb9)}
#tv .tv-highlight-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,1.4fr) 110px;align-items:center;gap:18px;padding:8px 16px;border:1px solid #ffffff20;border-radius:12px;background:#ffffff06;min-width:0;overflow:hidden;box-sizing:border-box}
#tv .tv-highlight-row strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:17px;line-height:1.15}
#tv .tv-highlight-row small{display:block;font-size:11px;color:#b7bdb9;line-height:1.3}
#tv .tv-highlight-station small{font-size:9px;letter-spacing:.08em}
#tv .tv-highlight-value{text-align:right;font-size:29px;font-weight:700;line-height:1}
#tv .tv-highlight-overall{border-color:#dfcc6555;background:#dfcc650a}
@media(max-width:600px){#tv-highlight-heading{display:block}#tv-highlight-heading span{font-size:10px}#tv .tv-highlight-row{grid-template-columns:minmax(80px,.9fr) minmax(0,1.2fr) 64px;gap:8px;padding:8px}#tv .tv-highlight-row strong{font-size:13px}#tv .tv-highlight-row small{font-size:9px}#tv .tv-highlight-value{font-size:24px}}
