/* Touch targets and operational typography. Print layouts retain their own sizing. */
@media screen and (max-width: 1199.98px), screen and (any-pointer: coarse) {
.app-shell :is(.table-actions, .page-heading-actions, .player-profile-actions,
        .training-session-actions, .callup-header-actions, .lineup-actions,
        .attendance-filter-action, .library-quick-actions, .calendar-actions,
        .workspace-header-actions, .workspace-command-group .table-actions) {flex-wrap: wrap !important;gap: 8px !important;min-width: 0;max-width: 100%;}
.app-shell .page-heading:not(.compact) {display: flex;flex-wrap: wrap;gap: 12px;}
.app-shell .page-header:not(.compact) {display: flex;flex-wrap: wrap;gap: 12px;}
.app-shell :is(.page-heading, .page-header) > :first-child {flex: 1 1 200px;min-width: 0;}
.app-shell :is(.page-heading, .page-header) > .training-tabs {flex: 1 1 100%;}
.app-shell :is(.page-heading, .page-header) > .page-heading-actions {flex: 1 1 100%;width: 100%;justify-content: flex-start;}
.app-shell :is(.training-tabs a, .library-navigation .btn, .workspace-tabs .nav-link,
        .squad-nav a, .availability-source, .squad-player-name, .calendar-quick summary,
        .calendar-event-count, .calendar-month .calendar-event-count) {display: inline-flex;align-items: center;min-width: 44px;white-space: normal;overflow-wrap: anywhere;}
.app-shell :is(summary, .lineup-player-token, .callup-select) {min-width: 44px;min-height: 44px;}
.app-shell .calendar-month .training-day header a {min-width: 44px;min-height: 44px;}
.app-shell .training-calendar-item > a {min-width: 44px;min-height: 44px;}
.app-shell .callup-select {display: inline-flex;align-items: center;justify-content: center;}
.app-shell summary {padding-block: 8px;}
.app-shell .library-card-select {width: 44px;height: 44px;opacity: 1;}
.app-shell .lineup-player-token {font-size: .875rem !important;line-height: 1.4;}
.app-shell .training-library-card p {min-height: 0;}
.app-shell .library-card-comparison :is(div, dt, dd) {min-width: 0;overflow-wrap: anywhere;white-space: normal;}
.app-shell .training-session-row-primary {grid-template-columns: repeat(2, minmax(0, 1fr));}
.app-shell .training-session-title {grid-column: 1 / -1;}
.app-shell .training-section-heading {flex-wrap: wrap;gap: 8px;}
.app-shell .table th {white-space: normal;}
.app-shell .table td {white-space: normal;overflow-wrap: anywhere;}
.app-shell .training-player-attendance-table {min-width: 980px;}
.app-shell .training-player-attendance-table th {white-space: nowrap;}
.app-shell .training-player-attendance-table th:nth-child(2) {width: 90px;}
.app-shell .training-player-attendance-table td:nth-child(2) {width: 90px;}
.app-shell .training-player-attendance-table th:nth-child(7) {width: 90px;}
.app-shell .training-player-attendance-table td:nth-child(7) {width: 90px;}
.app-shell .training-player-attendance-table th:nth-child(4) {width: 202px;}
.app-shell .training-player-attendance-table td:nth-child(4) {width: 202px;}
.app-shell .training-attendance-check {min-width: 44px;min-height: 44px;}
.app-shell .training-occurrence-checks .compact-check {min-width: 44px;min-height: 44px;}
.app-shell .training-occurrence-checks .compact-check {justify-content: center;}
.app-shell :is(.player-cell, .training-detail-player-table) span {white-space: normal;overflow: visible;text-overflow: clip;overflow-wrap: anywhere;}
.app-shell :is(.callup-player-identity, .lineup-player-token, .matchday-player) strong {white-space: normal;overflow: visible;text-overflow: clip;overflow-wrap: anywhere;}
.app-shell .info-list div {grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));}
.app-shell .info-list :is(dt, dd) {min-width: 0;overflow-wrap: anywhere;}
.app-shell .workspace-match-info dl {max-height: none;overflow: visible;}
.app-shell .workspace-fixed-stack {position: static;}
.app-shell .pregame-command-panel {position: static;}
.app-shell .calendar-command-bar {grid-template-columns: minmax(0, 1fr);}
.app-shell .calendar-command-group {flex-wrap: wrap;gap: 8px;}
.app-shell .calendar-command-bar .calendar-actions {flex-wrap: wrap;}
.app-shell .calendar-jump-form {grid-column: 1;min-width: 0;}
.app-shell .calendar-jump-form .form-control {flex: 1 1 160px;width: auto;}
.app-shell .calendar-month {grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));}
.app-shell .calendar-month .training-day {min-width: 0;}
.app-shell .calendar-month .training-calendar-item {max-height: none;}
.app-shell .calendar-month .training-calendar-item :is(strong, span, small) {white-space: normal;overflow: visible;text-overflow: clip;}
.app-shell .calendar-month .calendar-quick .calendar-actions {position: static;min-width: 0;}
.app-shell .calendar-month .calendar-event-count {position: static;margin-block: 8px;}
.app-shell .callup-availability-tools {flex-wrap: wrap;gap: 8px;}
.app-shell .callup-row[data-callup-row] {grid-template-columns: 44px minmax(0, 1fr);gap: 8px;}
.app-shell .callup-row[data-callup-row] > :not(.callup-select) {grid-column: 2;grid-row: auto;min-width: 0;}
.app-shell .callup-row[data-callup-row] .callup-select {grid-column: 1;grid-row: 1;}
.app-shell .callup-row[data-callup-row] .callup-player-metrics {grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));}
.app-shell .callup-player-metrics div {display: grid;grid-template-columns: minmax(0, 1fr);}
.app-shell .callup-player-metrics dd {white-space: normal;overflow: visible;text-overflow: clip;overflow-wrap: anywhere;}
.app-shell .callup-row[data-callup-row] .player-cell :is(strong, span) {white-space: normal;overflow: visible;text-overflow: clip;overflow-wrap: anywhere;}
.app-shell .callup-compact-filters {grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));}
.app-shell .lineup-compact-controls {grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));}
.app-shell .lineup-position-slot {min-width: 0;}
.app-shell .matchday-field-player strong {max-height: none;}
.app-shell .attendance-grid :is(th, td) {width: 100px;min-width: 100px;padding: 4px 2px;}
.app-shell .attendance-grid .attendance-player-column {width: 128px;min-width: 128px;}
.app-shell .attendance-player {min-height: 44px;align-items: flex-start;flex-wrap: wrap;gap: 6px;white-space: normal;}
.app-shell .attendance-player-identity {flex: 1 1 70px;min-width: 0;}
.app-shell .attendance-player-identity :is(strong, small) {white-space: normal;overflow: visible;text-overflow: clip;overflow-wrap: anywhere;}
.app-shell :is(.attendance-state, .attendance-minutes, .attendance-day-events a) {min-width: 44px;min-height: 44px;width: auto;height: auto;padding: 6px;}
.app-shell .attendance-day-events {flex-wrap: wrap;gap: 8px;}
.app-shell .attendance-cell-events {flex-wrap: wrap;gap: 8px;}
.app-shell .attendance-match-entry {flex-direction: column;gap: 8px;white-space: normal;}
.app-shell .attendance-minutes {flex-wrap: wrap;max-width: 100%;gap: 4px;}
.app-shell .attendance-grid time :is(span, strong) {white-space: normal;}
.app-shell .attendance-grid thead .attendance-player-column small {white-space: normal;}
.app-shell .attendance-total :is(strong, small) {white-space: normal;}
.app-shell .attendance-grid .attendance-total-column > :is(strong, small) {white-space: normal;}
.app-shell .attendance-period-title {white-space: normal;}
.app-shell .attendance-summary {white-space: normal;}
.app-shell .attendance-legend {white-space: normal;}
.app-shell .attendance-grid-intro :is(h2, em) {white-space: normal;}
.app-shell .attendance-grid time {white-space: normal;}
.app-shell .attendance-total strong {overflow-wrap: anywhere;}
.app-shell .attendance-grid .attendance-training-total {width: 110px;min-width: 110px;right: 130px;}
.app-shell .attendance-grid .attendance-game-total {width: 130px;min-width: 130px;}
.app-shell .attendance-grid-intro {flex-wrap: wrap;}
.app-shell .attendance-legend {justify-content: flex-start;gap: 8px 12px;}
.app-shell .attendance-period-form .attendance-filter-action {flex-wrap: wrap;}
}
@media screen and (max-width: 575.98px), screen and (max-width: 991.98px) and (max-height: 575.98px) {
.app-shell .attendance-grid .attendance-total-column {position: static;right: auto;}
}
