:root{color:#1f2937;background:#f5f7f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root,.app-layout{min-height:100vh}.app-sider{height:100vh;position:sticky;top:0}.brand{color:#fff;font-size:18px;font-weight:700;letter-spacing:-.02em;padding:24px}.app-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;height:64px;justify-content:space-between;padding:0 32px}.app-content{padding:32px}.module-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:28px}.page-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px}.page-heading .ant-typography{margin-top:0}.settings-card{max-width:640px}.settings-form{margin-top:24px;max-width:420px}.admin-table{margin-top:32px}.form-grid{display:grid;gap:0 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.group-roster-editor{padding:8px 0}.group-roster-card,.group-roster-editor-card{border-color:#e5e7eb}.group-roster-search{max-width:420px}.group-roster-summary{display:flex;gap:12px;justify-content:space-between;margin:16px 0}.group-roster-table .ant-table-cell{vertical-align:middle}.group-clickable-row{cursor:pointer}.group-roster-cards{display:none}.group-roster-item-heading{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.group-roster-item{cursor:pointer}.group-identity-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.group-identity-copy>span{overflow-wrap:anywhere}.group-summary-tags{margin-top:16px}.group-roster-table .group-summary-tags{margin-top:0}.group-roster-empty{margin:48px 0}.group-roster-editor-card{display:none;margin-top:16px}.group-profile-card,.group-members-card,.group-upcoming-card,.group-history-card,.group-detail-roster-editor{border-color:#e5e7eb}.group-profile-summary{align-items:center;display:flex;gap:24px;justify-content:space-between}.group-profile-summary .ant-typography{margin-top:0}.group-profile-summary .ant-typography-paragraph{margin-bottom:8px}.group-stats-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}.group-stat-card .ant-card-body{padding:18px}.group-stat-icon{color:#1677ff;font-size:20px;line-height:32px}.group-detail-roster-editor,.group-history-card{margin-top:16px}.group-detail-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.group-members-table .ant-table-cell{vertical-align:middle}.group-members-cards{display:none}.group-athlete-identity{align-items:center;display:inline-flex;gap:8px}.group-member-card{display:flex;flex-direction:column;gap:8px}.group-training-list{display:flex;flex-direction:column;gap:16px}.group-training-item{border-bottom:1px solid #f0f0f0;display:flex;flex-direction:column;gap:4px;padding-bottom:16px}.group-training-item:last-child{border-bottom:0;padding-bottom:0}.group-training-item-heading{align-items:center;display:flex;gap:8px;justify-content:space-between}.group-roster-editor-card .ant-typography{margin-top:0}.group-roster-loading{margin:16px 0}.athlete-checkbox-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:16px 0}.athlete-checkbox{align-items:center;border:1px solid #e5e7eb;border-radius:8px;display:flex;margin-inline-start:0;padding:12px}.athlete-checkbox>span:last-child{align-items:center;display:flex;gap:8px;min-width:0}.athlete-checkbox>span:last-child>span{display:flex;flex-direction:column;min-width:0}.athlete-table-link{align-items:center;display:inline-flex;gap:8px;min-width:0}.athlete-identity-copy,.athlete-parent-copy{display:flex;flex-direction:column;min-width:0}.athlete-identity-copy>span,.athlete-parent-copy>span{overflow-wrap:anywhere}.athlete-roster-card{border-color:#e5e7eb}.athlete-roster-toolbar{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(220px,1fr) minmax(180px,240px) auto}.athlete-roster-summary{display:flex;gap:12px;justify-content:space-between;margin:16px 0}.athlete-roster-table .ant-table-cell{vertical-align:middle}.athlete-group-list{max-width:240px}.athlete-roster-cards{display:none}.athlete-roster-item-heading{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.athlete-roster-item-details{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.athlete-roster-item-details>div{display:flex;flex-direction:column;gap:4px;min-width:0}.athlete-roster-empty{margin:48px 0}.athlete-roster-pagination{margin-top:20px;text-align:right}.coach-roster-card{border-color:#e5e7eb}.coach-roster-search{max-width:420px}.coach-roster-summary{display:flex;gap:12px;justify-content:space-between;margin:16px 0}.coach-roster-table .ant-table-cell{vertical-align:middle}.coach-identity{align-items:center;color:inherit;display:inline-flex;gap:8px;min-width:0;text-decoration:none}.coach-identity-copy,.coach-training-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.coach-identity-copy>*,.coach-training-copy>*{overflow-wrap:anywhere}.coach-roster-cards{display:none}.coach-roster-item-heading{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.coach-roster-item-details{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.coach-roster-item-details>div{display:flex;flex-direction:column;gap:4px;min-width:0}.coach-roster-empty{margin:48px 0}.coach-roster-pagination{margin-top:20px;text-align:right}.coach-profile-card,.coach-groups-card,.coach-history-card{border-color:#e5e7eb}.coach-profile-summary{align-items:center;display:flex;gap:20px}.coach-profile-summary .ant-typography{margin:0}.coach-stats-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:16px 0}.coach-stat-card .ant-card-body{padding:18px}.coach-stat-icon{color:#1677ff;font-size:20px;line-height:32px}.coach-detail-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.coach-next-training,.coach-training-history-item{display:flex;flex-direction:column;gap:8px}.coach-groups-card,.coach-history-card{margin-top:16px}.detail-back-button{margin-bottom:16px}.athlete-profile-summary{align-items:center;display:flex;gap:20px}.athlete-profile-summary .ant-typography{margin:0}.profile-image-actions{margin-top:12px}.athlete-detail-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.athlete-groups-card,.athlete-fee-card,.athlete-videos-card{margin-top:16px}.athlete-video-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.athlete-video-card{border:1px solid #e5e7eb;border-radius:8px;min-width:0;overflow:hidden;padding:12px}.athlete-video-player{aspect-ratio:16 / 9;background:#111827;border-radius:6px;display:block;height:auto;width:100%}mux-player.athlete-video-player{max-height:none}.athlete-video-meta{margin-top:12px}.athlete-video-caption{margin:12px 0}.athlete-video-actions{align-items:center;display:flex;justify-content:space-between}.visually-hidden{height:1px;overflow:hidden;position:absolute;width:1px}.temporary-password-control{display:flex;width:100%}.temporary-password-control .ant-input{flex:1}.training-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.training-period-selector{margin-bottom:16px}.training-roster-card{border-color:#e5e7eb}.training-roster-toolbar{display:grid;gap:12px;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,1fr));margin-bottom:12px}.training-roster-summary{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.training-date-copy,.training-title-copy{display:inline-flex;flex-direction:column}.training-group-list{display:flex}.training-roster-cards{display:none}.training-roster-pagination{display:flex;justify-content:flex-end;margin-top:16px}.training-roster-empty{padding:32px 0 16px}.training-roster-row{cursor:pointer}.training-roster-row:hover>td{background:#f8fafc!important}.training-detail-hero,.training-detail-stat,.training-detail-notes{border-color:#e5e7eb}.training-detail-heading,.training-detail-meta{display:flex}.training-detail-heading{justify-content:space-between}.training-detail-meta{color:#64748b;gap:16px}.training-detail-meta span{align-items:center;display:inline-flex;gap:6px}.training-detail-stats{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}.training-detail-stat-icon{align-items:center;background:#eff6ff;border-radius:8px;color:#2563eb;display:inline-flex;font-size:20px;height:40px;justify-content:center;width:40px}.training-detail-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.training-detail-link{height:auto;padding:0}.training-attendance-copy{margin:12px 0 0}.training-detail-notes{margin-top:16px}.training-notes-copy{margin-bottom:0;white-space:pre-wrap}.full-width{width:100%}@media(max-width:640px){.training-form-grid{grid-template-columns:1fr;gap:0}}.dashboard-stats{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:28px 0}.dashboard-content-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.module-card,.page-card{border-color:#e5e7eb}.login-page{align-items:center;background:linear-gradient(135deg,#ecfdf5,#f8fafc);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{box-shadow:0 20px 50px #0f172a1a;max-width:420px;width:100%}.login-alert{margin-bottom:20px}@media(max-width:600px){.app-header,.app-content{padding-left:16px;padding-right:16px}.user-name{display:none}.dashboard-content-grid,.athlete-detail-grid,.coach-detail-grid{grid-template-columns:1fr}.athlete-profile-summary,.coach-profile-summary{align-items:flex-start}.form-grid{grid-template-columns:1fr}}@media(max-width:900px){.training-page-heading{align-items:flex-start;flex-direction:column;gap:12px}.training-page-heading>.ant-btn{width:100%}.training-roster-toolbar{grid-template-columns:1fr}.training-roster-toolbar .ant-input{font-size:16px}.training-roster-summary{align-items:flex-start;flex-direction:column;gap:4px}.training-roster-table{display:none}.training-roster-cards{display:grid;gap:12px}.training-roster-item .ant-card-body{padding:16px}.training-roster-item-heading{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.training-roster-item-details{display:grid;gap:14px 12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.training-roster-item-details>div{display:flex;flex-direction:column;gap:4px;min-width:0}.training-roster-pagination{justify-content:center}.training-detail-stats,.training-detail-grid{grid-template-columns:1fr}.training-roster-item-clickable{cursor:pointer}.athlete-page-heading,.coach-page-heading,.group-page-heading{flex-direction:column;flex-wrap:wrap}.athlete-page-heading>button,.coach-page-heading>button,.group-page-heading>button{width:100%}.athlete-roster-toolbar{grid-template-columns:1fr}.athlete-roster-toolbar .ant-input{font-size:16px}.athlete-roster-summary{align-items:flex-start;flex-direction:column;gap:4px}.athlete-roster-table{display:none}.athlete-roster-cards{display:grid;gap:12px}.athlete-roster-pagination{text-align:center}.coach-roster-search{font-size:16px;max-width:none}.coach-roster-summary{align-items:flex-start;flex-direction:column;gap:4px}.coach-roster-table{display:none}.coach-roster-cards{display:grid;gap:12px}.coach-roster-pagination{text-align:center}.group-roster-search{font-size:16px;max-width:none}.group-roster-summary{align-items:flex-start;flex-direction:column;gap:4px}.group-roster-table{display:none}.group-roster-cards{display:grid;gap:12px}.group-roster-editor-card{display:block}.group-profile-summary{align-items:flex-start;flex-direction:column}.group-stats-grid,.group-detail-grid{grid-template-columns:1fr}.group-members-table{display:none}.group-members-cards{display:grid;gap:8px}}@media(max-width:480px){.athlete-roster-item-details,.coach-roster-item-details,.training-roster-item-details{grid-template-columns:1fr}}
