.group-attendance-panel { margin-bottom: 20px; }
.group-attendance-scroll { overflow-x: auto; }
table.group-attendance-table { width: 100%; min-width: 740px; table-layout: fixed; border-collapse: collapse; }
table.group-attendance-table th { display: table-cell; text-align: left; white-space: normal; padding: 12px 10px; font-size: 11px; letter-spacing: 0; line-height: 1.4; text-transform: none; }
table.group-attendance-table td { display: table-cell; padding: 14px 10px; vertical-align: middle; border-bottom: 1px solid var(--border); }
table.group-attendance-table td::before { display: none; }
table.group-attendance-table th:first-child, table.group-attendance-table td:first-child { padding-left: 18px; }
table.group-attendance-table th:last-child, table.group-attendance-table td:last-child { padding-right: 18px; }
table.group-attendance-table tbody tr:last-child td { border-bottom: 0; }
.group-attendance-identity strong { display: block; font-size: 15px; color: var(--text); line-height: 1.3; }
.group-attendance-identity span { display: block; font-size: 11px; color: var(--muted); line-height: 1.5; margin-top: 3px; }
.group-attendance-identity .group-attendance-timing { color: var(--text); }
.group-attendance-metric { background: none; border: 0; padding: 4px 0; font-family: inherit; font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; cursor: pointer; }
.group-attendance-metric:hover { text-decoration-thickness: 2px; }
.group-attendance-coach { color: var(--blue); }
.group-attendance-player { color: var(--success); }
.group-attendance-player--low { color: var(--danger); }
.group-attendance-active { font-size: 20px; font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; }
.group-attendance-chart-caption { font-size: 11px; color: var(--muted); margin-bottom: 3px; }
.group-attendance-chart-caption strong { color: var(--text); }
.group-attendance-chart { display: block; width: 100%; height: 78px; overflow: visible; }
.group-attendance-chart text { font-family: inherit; font-size: 11px; fill: var(--muted); letter-spacing: 0; }
.group-attendance-chart .group-attendance-line { stroke: var(--blue); stroke-width: 2; fill: none; }
.group-attendance-chart .group-attendance-dot { fill: var(--blue); }
.group-attendance-chart .group-attendance-cancel { fill: var(--warning); font-size: 16px; }
.group-attendance-chart .group-attendance-grid { stroke: var(--border); stroke-width: 1; fill: none; }
.group-attendance-chart [data-chart-point] { cursor: pointer; }
.group-attendance-chart [data-chart-point]:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.group-attendance-tooltip { position: fixed; z-index: 95; background: #fff; color: var(--text); border: 1px solid var(--border); border-radius: 7px; padding: 5px 8px; font: 12px/1.4 var(--body, sans-serif); box-shadow: 0 3px 12px rgba(15,23,42,.12); pointer-events: none; max-width: calc(100vw - 16px); }
.group-attendance-tooltip[hidden] { display: none; }
.group-session-dialog { max-width: min(1040px, calc(100vw - 36px)); }
.group-session-log-wrap { overflow-x: auto; padding: 0 16px 16px; }
table.group-session-log-table { width: 100%; min-width: 740px; border-collapse: collapse; table-layout: auto; }
table.group-session-log-table th { display: table-cell; padding: 11px 8px; font-size: 11px; letter-spacing: 0; text-transform: none; white-space: normal; }
table.group-session-log-table td { display: table-cell; padding: 10px 8px; font-size: 12px; vertical-align: middle; border-bottom: 1px solid var(--border); white-space: normal; }
table.group-session-log-table td::before { display: none; }
table.group-session-log-table td:first-child { white-space: nowrap; }
.group-session-time-stack { display: grid; gap: 7px; font-variant-numeric: tabular-nums; }
.group-session-time-label { display: block; color: var(--muted); font-size: 10px; line-height: 1.4; }
.group-session-time-value { display: block; white-space: nowrap; }
.group-session-timings .check-time-line { flex-wrap: nowrap; white-space: nowrap; }
.group-session-timings .check-in-cue { font-size: 18px; margin-left: 3px; }
.group-session-log-table .is-cancelled { background: #fff7ed; }
.group-session-log-table .is-cancelled td { color: var(--warning); }
@media (max-width: 760px) {
    table.group-attendance-table, table.group-session-log-table { display: table; }
    table.group-attendance-table thead, table.group-session-log-table thead { display: table-header-group; }
    table.group-attendance-table tbody, table.group-session-log-table tbody { display: table-row-group; }
    table.group-attendance-table tr, table.group-session-log-table tr { display: table-row; padding: 0; border-left: 0; }
    table.group-attendance-table th, table.group-attendance-table td,
    table.group-session-log-table th, table.group-session-log-table td { width: auto !important; max-width: none; }
    table.group-attendance-table td > *, table.group-session-log-table td > * { max-width: none; }
    .group-session-dialog { max-width: 100%; }
}
@media (pointer: coarse) { .group-attendance-metric { min-height: 44px; min-width: 44px; } }
