/* Canonical attendance sorting and player-row presentation. */
.att-screen-sort-v2111{
  display:flex;
  justify-content:flex-end;
  margin:8px 0 10px;
}
.att-sort-v2111{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.att-sort-v2111>span{
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#777;
}
.attendance-row .att-name{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.att-dorsal-v2111,
.attm-dorsal-v2111{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  height:30px;
  padding:0 6px;
  border-radius:8px;
  background:#111;
  color:#fff;
  font-size:11px;
  font-weight:950;
  line-height:1;
}
.att-dorsal-v2111::before,
.attm-dorsal-v2111::before{content:'#';opacity:.55;margin-right:1px}
.att-player-name-v2111{min-width:0}
.attendance-row.is-goalkeeper-v2111{
  box-shadow:inset 3px 0 0 #ffe500;
}
.attendance-row.is-goalkeeper-v2111 .att-dorsal-v2111{
  background:#ffe500;
  color:#111;
}
.attm-player-cell strong{
  display:flex;
  align-items:center;
  gap:7px;
}
.attm-dorsal-v2111{
  min-width:24px;
  height:24px;
  padding:0 5px;
  border-radius:6px;
  font-size:9px;
}
.attm-summary-card .card-title{
  gap:10px;
  flex-wrap:wrap;
}
.attm-summary-card .card-title>.att-sort-v2111{
  margin-left:auto;
}

@media(max-width:760px){
  .att-screen-sort-v2111{justify-content:stretch}
  .att-screen-sort-v2111 .att-sort-v2111{width:100%;justify-content:space-between}
  .attendance-row .att-name{gap:7px}
  .att-dorsal-v2111{min-width:27px;height:27px;font-size:10px}
  .attm-summary-card .card-title>.att-sort-v2111{width:100%;justify-content:space-between;margin-left:0}
}
@media(max-width:430px){
  .att-sort-v2111{gap:5px}
  .att-sort-v2111>span{width:100%}
  .att-screen-sort-v2111 .roster-sort{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .att-screen-sort-v2111 .roster-sort button{width:100%}
}

/* One row layout owns name, controls and optional notes at every width. */
.attendance-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,3fr);align-items:start;gap:12px;padding:16px;border-bottom:1px solid var(--line)}
.attendance-row .att-name{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.att-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0}
.att-choice{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:46px;padding:10px 8px;border:1px solid var(--line);border-radius:10px;background:#f4f5f6;color:#45494c;font-size:13px;font-weight:850;line-height:1.3;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.att-choice.active{outline:2px solid currentColor;outline-offset:-4px}
.att-choice:focus-visible{outline:3px solid #111;outline-offset:2px}
.att-head{min-width:0;overflow-wrap:anywhere}
.att-date-chip{max-width:100%;border-radius:12px;font-size:13px;line-height:1.4}
.att-date-chip .icon{width:18px;height:18px;flex:0 0 18px}
.att-date-chip span{min-width:0}
.att-selection-help{font-size:13px;line-height:1.5;color:#555}
/* In-flow actions remain reachable with a virtual keyboard and never cover a
   player. Shell bottom padding reserves the measured navigation footprint. */
.att-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.att-actions .btn{min-width:0;min-height:48px;white-space:normal;text-align:center;justify-content:center;line-height:1.35}
@media(max-width:1050px){
  .attendance-row{grid-template-columns:minmax(0,1fr);gap:14px}
  .att-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .att-reason{grid-column:1/-1;width:100%;margin-top:0}
}
@media(max-width:360px){.att-actions{grid-template-columns:minmax(0,1fr)}}
