/* Shared coach, player, support and authentication usability. */
:is(.app,.portal-page) .app-main { min-width:0; }
:is(.app,.portal-page) :is(.panel,.stat,.roster-row,.lesson-row,.message,.membership-banner,.page-heading,.section-top,.admin-filters) { overflow-wrap:anywhere; }
:is(.app,.portal-page) :is(input,select,textarea),.auth-card :is(input,select,textarea) { font-size:16px; max-width:100%; min-width:0; }
:is(.app,.portal-page) :is(button,.button,select,input:not([type=checkbox]):not([type=radio]):not([type=hidden])),.auth-card :is(button,.button,select,input:not([type=checkbox]):not([type=hidden])) { min-height:44px; }
:is(.app,.portal-page) :is(label,summary,.hint,.badge,.notice,.panel p,.roster-row strong,.roster-row p,.stat>span,.stat small,.message-meta,.message-meta small,.message .hint,.panel-heading a) { font-size:14px; }
:is(.app,.portal-page) .checkbox { min-height:44px; align-items:center; }
:is(.app,.portal-page) .checkbox input { width:20px; height:20px; min-height:20px; flex-shrink:0; }
:is(.app,.portal-page) :is(.button,button) { white-space:normal; text-align:center; }
:is(.app,.portal-page) .admin-table {font-size:14px;}
:is(.app,.portal-page) .admin-table :is(td,th) {overflow-wrap:anywhere;}
:is(.app,.portal-page) .pagination {flex-wrap:wrap; gap:12px;}
:is(.app,.portal-page) .pagination a {display:inline-flex;align-items:center;min-height:44px;padding:8px;}
:is(.app,.portal-page) summary {padding:12px 0;min-height:44px;}
:is(.app,.portal-page) :is(a,button,input,select,textarea,summary):focus-visible {outline:3px solid var(--lime);outline-offset:3px;}
.admin-nav a {display:flex;align-items:center;min-height:44px;font-size:14px;}
.portal-page .site-header nav {display:none;}
@media(max-width:820px) {
 .app .sidebar nav {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;}
 .app .sidebar nav a {white-space:normal;min-height:44px;gap:8px;padding:10px;}
 .coach-calendar-nav {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
 .coach-calendar-nav>a {min-width:0;justify-content:center;text-align:center;padding:10px 8px;font-size:14px;}
 :is(.app,.portal-page) :is(.two-columns,.dashboard-grid) {grid-template-columns:minmax(0,1fr);}
 :is(.app,.portal-page) .admin-table-wrap {max-width:100%;}
}
@media(max-width:540px) {
 :is(.app,.portal-page) .app-main {padding:20px 12px;}
 .app .sidebar {padding:14px 12px;}
 .app .sidebar nav {grid-template-columns:repeat(2,minmax(0,1fr));}
 .app .app-header {padding:10px 12px;}
 .app .user-menu {min-width:0;max-width:100%;gap:8px;flex-wrap:wrap;}
 .app .user-menu>span:not(.avatar) {overflow-wrap:anywhere;max-width:180px;font-size:14px;}
 .coach-calendar-nav {grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px;}
 :is(.app,.portal-page) :is(.page-heading,.panel-heading,.section-top,.message-meta,.membership-banner,.invite-strip) {flex-wrap:wrap;gap:12px;}
 :is(.app,.portal-page) .page-heading h1 {font-size:30px;line-height:1.15;}
 :is(.app,.portal-page) :is(.form-grid,.drill-grid,.stats,.admin-stats) {grid-template-columns:minmax(0,1fr);}
 :is(.app,.portal-page) .form-grid .full {grid-column:auto;}
 :is(.app,.portal-page) .panel {padding:18px 12px;}
 :is(.app,.portal-page) .panel form:not(.inline)>.button {width:100%;}
 :is(.app,.portal-page) .inline {flex-wrap:wrap;max-width:100%;}
 :is(.app,.portal-page) .inline select {width:100%;min-width:0;}
 :is(.app,.portal-page) .grow {min-width:0;}
 :is(.app,.portal-page) .roster-row>.button {margin-left:0;}
 :is(.app,.portal-page) .invite-strip a {white-space:normal;min-height:44px;display:flex;align-items:center;}
 :is(.app,.portal-page) .progress-entry {align-items:flex-start;flex-direction:column;gap:12px;}
 :is(.app,.portal-page) .progress-entry>div:first-child {min-width:0;}
 .admin-nav {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px;gap:6px;}
 .admin-nav a {font-size:14px;padding:10px;overflow-wrap:anywhere;}
 .admin-filters {display:grid;grid-template-columns:minmax(0,1fr);}
 .admin-filters label {min-width:0!important;}
 .admin-table-wrap {overflow:visible;}
 .admin-table,.admin-table tbody {display:block;width:100%;}
 .admin-table thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
 .admin-table tr {display:block;border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:14px;}
 .admin-table td {display:block;max-width:none;width:100%;padding:10px 4px;white-space:normal;}
 .admin-table td::before {content:attr(data-label);display:block;font-weight:700;color:var(--muted);font-size:13px;margin-bottom:6px;}
 .admin-table td:last-child {border-bottom:0;}
 .admin-table td a {display:inline-block;min-height:44px;padding:10px 0;}
 .admin-table :is(pre,code) {max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;}
 .portal-page .site-header {height:auto;min-height:72px;flex-wrap:wrap;gap:10px;padding:14px 12px;}
 .portal-page .header-actions>a:first-child {display:inline-flex;min-height:44px;align-items:center;}
 .portal-page .header-actions>a.button {display:none;}
 .auth-card :is(label,p,.hint,.checkbox) {font-size:14px;}
 .auth-card .checkbox {min-height:44px;}
 .auth-card .segmented a {min-height:44px;font-size:14px;}
}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto;}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}}
@media print {.coach-calendar-nav,.admin-nav{display:none!important;}.admin-table,.admin-table tbody{display:table;} .admin-table tr{display:table-row;}.admin-table td{display:table-cell;}.admin-table td::before{display:none;}.admin-table thead{position:static;width:auto;height:auto;clip-path:none;}}
.app .inline select,.portal-page .inline select{font-size:16px;}
:is(.app,.portal-page) pre{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;}
@media(max-width:540px){.admin-table thead{overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}}

.sidebar-group{border-top:1px solid var(--line);padding:12px 0;margin:8px 0}
.sidebar-group-title{display:block;padding:0 14px 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.sidebar-group>a{padding-left:22px}
.app .sidebar a.sidebar-late-link{color:var(--ink);background:var(--lime);font-weight:700}
@media(max-width:820px){.app .sidebar nav>.sidebar-group{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:10px 0}.sidebar-group-title{grid-column:1/-1;padding:0 10px}.app .sidebar nav>a:first-child{grid-column:1/-1}}

/* Keep login visible on the homepage at phone widths. */
.marketing .site-header .header-actions>.homepage-login{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--lime);border-radius:6px;color:var(--lime);font-size:14px;font-weight:700}
@media(max-width:540px){.marketing .site-header{height:auto;min-height:90px;flex-wrap:wrap;gap:12px;padding:16px 20px}.marketing .header-actions{gap:10px;flex-wrap:wrap}}
