:root {
    color-scheme: light;
    --accent: #0A7F6B;
    --bg: #F3F8F4;
    --side: #E6F4EC;
    --card: #ffffff;
    --line: #DFEBE4;
    --line2: #D5E4DB;
    --ink: #17332B;
    --muted: #4B655A;
    --nav: #34524A;
    --yellow: #FFC93C;
    --sky: #4DB6F5;
    --coral: #FF8A6B;
    --shadow: 0 8px 24px rgba(23, 51, 43, 0.05);

    --forest-950: #0d2b25;
    --forest-900: #123d34;
    --forest-800: #174b40;
    --forest-700: #1e6252;
    --forest-600: #2d7865;
    --forest-100: #e4f1eb;
    --forest-50: #f1f7f3;
    --muted-light: #a8b3ad;
    --canvas: #F3F8F4;
    --white: #ffffff;
    --gold: #FFC93C;
    --gold-light: #FFF1C2;
    --blue-light: #DCEFFC;
    --violet-light: #ECE6FD;
    font-family: 'Noto Sans Thai', 'Prompt', 'Plus Jakarta Sans', system-ui, sans-serif;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); font-size: 20.4px; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
svg { display: block; }

.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand-mark { width: 43px; height: 43px; display: block; flex: 0 0 auto; overflow: hidden; border: 1px solid rgba(19, 50, 39, .12); border-radius: 8px; background: #fff; box-shadow: 0 2px 7px rgba(7, 24, 17, .12); }
.brand-mark img { width: 100%; height: 100%; display: block; object-fit: contain; }
.brand-copy { display: grid; gap: 1px; }
.brand-copy strong { font-size: 21.8px; font-weight: 700; letter-spacing: -.025em; line-height: 1.4; }
.brand-copy small { font-size: 12.6px; font-weight: 500; letter-spacing: 0; line-height: 1.5; opacity: .72; }
.brand-light { color: #f3f8f5; }
.brand-light .brand-mark { border-color: rgba(255,255,255,.72); }

/* ==========================================================================
   Modern Login Experience
   ========================================================================== */
.login-page {
    min-height: 100vh;
    background: #f1f5f3;
    font-family: 'Prompt', 'Plus Jakarta Sans', 'Noto Sans Thai', sans-serif;
    color: #172821;
    overflow-x: hidden;
}

.login-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(460px, 1fr) minmax(480px, 1.08fr);
}

/* --- Left Column: Story & Showcase --- */
.login-story {
    min-height: 100vh;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 48px clamp(36px, 5vw, 72px) 36px;
    background: linear-gradient(150deg, #09241c 0%, #0d2e24 45%, #134235 100%);
    color: #ffffff;
}

.story-ambient {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 0;
}

.ambient-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.55;
    pointer-events: none;
}

.glow-1 {
    width: 460px;
    height: 460px;
    top: -120px;
    left: -100px;
    background: radial-gradient(circle, rgba(234, 179, 8, 0.28), rgba(20, 83, 45, 0.05));
    animation: floatAmbient 18s ease-in-out infinite alternate;
}

.glow-2 {
    width: 520px;
    height: 520px;
    bottom: -150px;
    right: -100px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.35), rgba(6, 78, 59, 0.08));
    animation: floatAmbient 22s ease-in-out infinite alternate-reverse;
}

.glow-3 {
    width: 380px;
    height: 380px;
    top: 40%;
    right: 15%;
    background: radial-gradient(circle, rgba(45, 120, 101, 0.3), transparent);
}

.ambient-mesh {
    position: absolute;
    inset: 0;
    background-image: 
        radial-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
        linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: 32px 32px, 64px 64px;
    mask-image: radial-gradient(ellipse at 50% 50%, black 40%, transparent 85%);
    opacity: 0.6;
}

.login-story > * {
    position: relative;
    z-index: 1;
}

/* Brand Header */
.story-brand-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.story-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: #ffffff;
}

.story-brand .brand-mark {
    width: 52px;
    height: 52px;
    padding: 3px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 14px;
    backdrop-filter: blur(12px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
}

.story-brand .brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.story-brand .brand-copy strong {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.01em;
    display: block;
    line-height: 1.25;
}

.story-brand .brand-copy small {
    font-size: 13px;
    color: #b5d5c7;
    font-weight: 400;
    line-height: 1.35;
    display: block;
}

.story-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 100px;
    font-size: 12.5px;
    font-weight: 500;
    color: #d1fae5;
    backdrop-filter: blur(8px);
}

.badge-pulse {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.7);
    animation: pulseGlow 2.2s infinite;
}

/* Story Lead Content */
.story-content {
    margin: clamp(32px, 5vh, 56px) 0;
    max-width: 540px;
}

.story-lead {
    margin-bottom: 36px;
}

.story-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #e5c16d;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.eyebrow-icon {
    width: 14px;
    height: 14px;
    color: #e5c16d;
}

.story-lead h1 {
    font-size: clamp(32px, 3.4vw, 44px);
    font-weight: 700;
    line-height: 1.32;
    letter-spacing: -0.025em;
    margin: 0 0 16px 0;
    color: #ffffff;
}

.highlight-gold {
    background: linear-gradient(135deg, #fcd34d 0%, #f59e0b 60%, #fbbf24 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.story-lead p {
    font-size: 16px;
    line-height: 1.7;
    color: #b3cbbe;
    margin: 0;
    max-width: 480px;
}

/* Feature Item Highlights */
.story-features {
    display: grid;
    gap: 14px;
}

.feature-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 16px 18px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    backdrop-filter: blur(10px);
    transition: transform 0.22s ease, background 0.22s ease, border-color 0.22s ease;
}

.feature-item:hover {
    transform: translateX(4px);
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(229, 193, 109, 0.35);
}

.feature-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(229, 193, 109, 0.22), rgba(20, 83, 45, 0.4));
    border: 1px solid rgba(229, 193, 109, 0.3);
    color: #fde68a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.feature-icon svg {
    width: 20px;
    height: 20px;
}

.feature-text h3 {
    margin: 0 0 3px 0;
    font-size: 15.5px;
    font-weight: 600;
    color: #ffffff;
}

.feature-text p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.5;
    color: #a4beaf;
}

/* Story Footer */
.story-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.security-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #92b7a4;
}

.security-chip svg {
    width: 15px;
    height: 15px;
    color: #34d399;
}

.version-tag {
    font-size: 12.5px;
    font-weight: 600;
    color: #8da498;
    background: rgba(255, 255, 255, 0.06);
    padding: 3px 10px;
    border-radius: 6px;
}

/* --- Right Column: Modern Sign-In Panel --- */
.login-panel {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px clamp(28px, 5vw, 64px);
    background: #fbfdfc;
    position: relative;
}

.login-form-wrap {
    width: 100%;
    max-width: 440px;
    position: relative;
    z-index: 1;
}

.mobile-brand-box {
    display: none;
    margin-bottom: 24px;
}

.mobile-brand-head {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.mobile-brand-head .brand-mark {
    width: 44px;
    height: 44px;
    padding: 3px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.mobile-brand-head .brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.mobile-brand-title strong {
    display: block;
    font-size: 18px;
    font-weight: 700;
    color: #123d34;
    line-height: 1.25;
}

.mobile-brand-title span {
    display: block;
    font-size: 12.5px;
    color: #64748b;
}

/* Form Card Header */
.form-header {
    margin-bottom: 30px;
}

.kicker-tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #165b47;
    margin-bottom: 10px;
}

.kicker-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #10b981;
}

.form-header h2 {
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: #0d2b25;
    margin: 0 0 8px 0;
    line-height: 1.25;
}

.form-header p {
    font-size: 15px;
    color: #607369;
    margin: 0;
    line-height: 1.6;
}

/* Alert Box */
.modern-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 24px;
    border-radius: 12px;
    background: #fef2f2;
    border: 1px solid #fee2e2;
    color: #991b1b;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.06);
    animation: alertSlideDown 0.25s ease-out;
}

.alert-icon-wrap {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    margin-top: 1px;
}

.alert-icon-wrap svg {
    width: 100%;
    height: 100%;
}

.alert-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
}

.alert-content strong {
    font-weight: 600;
}

.alert-content span {
    font-size: 13.5px;
    color: #b91c1c;
}

/* Modern Form Controls */
.modern-form {
    display: grid;
    gap: 20px;
}

.field-item {
    display: grid;
    gap: 7px;
}

.field-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.field-label-row label {
    font-size: 14.5px;
    font-weight: 600;
    color: #1f362b;
}

.required-star {
    color: #dc2626;
    margin-left: 2px;
}

.field-control {
    position: relative;
    display: flex;
    align-items: center;
    border: 1.5px solid #dce5df;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.field-control:hover {
    border-color: #afc7bb;
}

.field-control:focus-within {
    border-color: #106f56;
    box-shadow: 0 0 0 4px rgba(16, 111, 86, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);
}

.field-control.has-error {
    border-color: #ef4444;
    background: #fffafa;
}

.field-control.has-error:focus-within {
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12);
}

.field-prefix-icon {
    width: 44px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #829a8d;
    flex-shrink: 0;
    transition: color 0.2s ease;
}

.field-prefix-icon svg {
    width: 19px;
    height: 19px;
}

.field-control:focus-within .field-prefix-icon {
    color: #106f56;
}

.field-control input {
    flex: 1;
    min-width: 0;
    height: 48px;
    padding: 0 14px 0 0;
    border: none;
    outline: none;
    font-size: 15px;
    font-family: inherit;
    color: #142e23;
    background: transparent;
}

.field-control input::placeholder {
    color: #9cb1a5;
    font-weight: 400;
}

/* Toggle Password Visibility Button */
.btn-toggle-eye {
    border: none;
    background: transparent;
    padding: 0 14px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7d9689;
    cursor: pointer;
    border-radius: 0 11px 11px 0;
    transition: color 0.18s ease;
}

.btn-toggle-eye:hover {
    color: #106f56;
}

.btn-toggle-eye svg {
    width: 19px;
    height: 19px;
}

.is-hidden {
    display: none !important;
}

/* Custom Checkbox */
.form-aux-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: -2px;
}

.custom-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    user-select: none;
}

.custom-checkbox input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.checkbox-indicator {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1.5px solid #c8d8cf;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: transparent;
    transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.checkbox-indicator svg {
    width: 11px;
    height: 9px;
}

.custom-checkbox input:checked + .checkbox-indicator {
    background: #125542;
    border-color: #125542;
    color: #ffffff;
    box-shadow: 0 2px 5px rgba(18, 85, 66, 0.25);
}

.custom-checkbox:hover .checkbox-indicator {
    border-color: #8faea0;
}

.custom-checkbox input:focus-visible + .checkbox-indicator {
    outline: 2px solid #10b981;
    outline-offset: 2px;
}

.checkbox-label {
    font-size: 14px;
    color: #4b6256;
    font-weight: 500;
}

/* Submit Button */
.btn-submit-login {
    position: relative;
    width: 100%;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 24px;
    border: 1px solid rgba(13, 43, 37, 0.1);
    border-radius: 12px;
    background: linear-gradient(135deg, #165b47 0%, #104334 60%, #0d362a 100%);
    color: #ffffff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.01em;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(18, 85, 66, 0.28), 0 1px 3px rgba(0, 0, 0, 0.08);
    transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    margin-top: 6px;
}

.btn-submit-login::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
    transition: left 0.6s ease;
}

.btn-submit-login:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg, #1b6d55 0%, #135340 60%, #0f3f31 100%);
    box-shadow: 0 8px 22px rgba(18, 85, 66, 0.35), 0 2px 6px rgba(0, 0, 0, 0.1);
}

.btn-submit-login:hover::before {
    left: 100%;
}

.btn-submit-login:hover .btn-arrow {
    transform: translateX(4px);
}

.btn-submit-login:active {
    transform: translateY(0);
    box-shadow: 0 3px 10px rgba(18, 85, 66, 0.25);
}

.btn-arrow {
    width: 18px;
    height: 18px;
    transition: transform 0.2s ease;
}

.btn-spinner {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

.btn-submit-login.is-loading {
    pointer-events: none;
    opacity: 0.9;
}

/* Support Help Card */
.login-support-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 28px;
    padding: 14px 16px;
    background: #f3f7f5;
    border: 1px solid #e1ebe5;
    border-radius: 12px;
}

.support-icon {
    width: 20px;
    height: 20px;
    color: #165b47;
    flex-shrink: 0;
    margin-top: 1px;
}

.support-icon svg {
    width: 100%;
    height: 100%;
}

.support-text span {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: #17382d;
    margin-bottom: 2px;
}

.support-text p {
    margin: 0;
    font-size: 12.5px;
    color: #6a7f74;
    line-height: 1.5;
}

/* Footer Copyright */
.login-panel-footer {
    margin-top: 32px;
    text-align: center;
    border-top: 1px solid #ebf1ee;
    padding-top: 20px;
}

.login-panel-footer p {
    margin: 0 0 3px 0;
    font-size: 12.5px;
    color: #7a8e83;
    font-weight: 500;
}

.login-panel-footer span {
    font-size: 11.5px;
    color: #9cb1a5;
    display: block;
}

/* Animations */
@keyframes spin {
    to { transform: rotate(360deg); }
}

@keyframes pulseGlow {
    0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.7); }
    70% { box-shadow: 0 0 0 8px rgba(52, 211, 153, 0); }
    100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}

@keyframes floatAmbient {
    0% { transform: translateY(0px) scale(1); }
    50% { transform: translateY(-30px) scale(1.05); }
    100% { transform: translateY(15px) scale(0.96); }
}

@keyframes alertSlideDown {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* ==========================================================================
   Admin Shell, Sidebar & Topbar (athlete-dashboard.html Theme)
   ========================================================================== */
.admin-page {
    min-height: 100vh;
    background: var(--bg);
    font-family: 'Noto Sans Thai', 'Prompt', system-ui, sans-serif;
    color: var(--ink);
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    position: relative;
}

/* Sidebar Backdrop (Mobile Drawer Overlay) */
.sidebar-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(23, 51, 43, 0.45);
    backdrop-filter: blur(4px);
    z-index: 998;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.sidebar-backdrop.is-visible {
    display: block;
    opacity: 1;
}

/* --- Sidebar Navigation --- */
.sidebar {
    min-height: 100vh;
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--side);
    border-right: 1px solid var(--line);
    padding: 28px 18px;
    z-index: 999;
    box-sizing: border-box;
}

.sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 6px 24px;
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--ink);
}

.sidebar-brand .logo-box {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: var(--yellow);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 3px;
    box-shadow: 0 4px 12px rgba(255, 201, 60, 0.35);
}

.sidebar-brand .logo-box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.sidebar-brand b {
    font-family: 'Prompt', sans-serif;
    font-weight: 600;
    font-size: 18px;
    line-height: 1.2;
    display: block;
    color: var(--ink);
}

.sidebar-brand small {
    font-size: 12.5px;
    color: var(--muted);
    line-height: 1.35;
    display: block;
}

.btn-close-sidebar {
    display: none;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid var(--line2);
    background: #fff;
    color: var(--nav);
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* Nav scroll area */
.sidebar-nav-scroller {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.sidebar-nav-scroller::-webkit-scrollbar {
    width: 4px;
}

.sidebar-nav-scroller::-webkit-scrollbar-thumb {
    background: rgba(10, 127, 107, 0.2);
    border-radius: 4px;
}

nav {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.side-link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 14px;
    color: var(--nav);
    font-weight: 500;
    font-size: 14.5px;
    text-decoration: none;
    transition: all 0.18s ease;
}

.side-link svg {
    color: inherit;
    flex-shrink: 0;
}

.side-link:hover {
    background: rgba(255, 255, 255, 0.7);
    color: var(--ink);
}

.side-link.is-active {
    background: var(--accent);
    color: #ffffff;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(10, 127, 107, 0.25);
}

/* --- Executive Topbar --- */
.admin-main {
    min-width: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.topbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 32px;
    background: var(--bg);
}

.topbar-left {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.btn-mobile-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border-radius: 22px;
    border: 1px solid var(--line2);
    background: #ffffff;
    color: var(--nav);
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.topbar-title-wrap small {
    font-size: 13.5px;
    color: var(--muted);
    display: block;
    margin-bottom: 2px;
}

.topbar-title-wrap h2 {
    font-family: 'Prompt', sans-serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.3;
    color: var(--ink);
    margin: 0;
}

.topbar-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.search-pill {
    position: relative;
    display: flex;
    align-items: center;
    margin: 0;
}

.search-pill svg {
    position: absolute;
    left: 14px;
    color: var(--muted);
    pointer-events: none;
}

.search-pill input {
    width: 280px;
    max-width: 100%;
    height: 46px;
    padding: 0 16px 0 42px;
    border: 1px solid var(--line2);
    border-radius: 23px;
    background: #ffffff;
    font: inherit;
    font-size: 14px;
    color: var(--ink);
    outline: none;
    transition: border-color 0.18s ease;
}

.search-pill input:focus {
    border-color: var(--accent);
}

.user-pill {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 16px 4px 4px;
    background: #ffffff;
    border: 1px solid var(--line2);
    border-radius: 28px;
    line-height: 1.25;
}

.user-avatar-tag {
    width: 38px;
    height: 38px;
    border-radius: 19px;
    background: var(--yellow);
    font-weight: 600;
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.user-info-text b {
    font-size: 14px;
    font-weight: 600;
    display: block;
    color: var(--ink);
}

.user-info-text small {
    font-size: 12px;
    color: var(--muted);
    display: block;
}

.logout-form {
    margin: 0;
}

.iconbtn-logout {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 23px;
    border: 1px solid var(--line2);
    background: #ffffff;
    color: var(--muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.18s ease;
}

.iconbtn-logout:hover {
    color: #ef4444;
    border-color: #fca5a5;
    background: #fef2f2;
}

.page-content {
    flex: 1;
    padding: 0 32px 40px;
    box-sizing: border-box;
}

.admin-footer {
    padding: 16px 32px 20px;
    border-top: 1px solid #e1ece5;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 12.5px;
    color: #748c80;
}

.footer-copy {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.footer-dot {
    color: #b1c4ba;
}

.footer-sub {
    color: #8fa59a;
}

.footer-badge {
    font-size: 11.5px;
    font-weight: 600;
    color: #125542;
    background: #eaf5f0;
    padding: 3px 10px;
    border-radius: 6px;
}

.page-content { width: min(100%, 1480px); flex: 1; margin: 0 auto; padding: 27px 34px 36px; }
.page-heading { margin-bottom: 20px; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.page-eyebrow, .section-eyebrow { display: flex; align-items: center; gap: 8px; color: #84958b; font-family: Arial, sans-serif; font-size: 12.6px; font-weight: 700; letter-spacing: .15em; }
.page-eyebrow > span { width: 5px; height: 5px; background: #bc9a4e; box-shadow: none; }
.page-heading h1 { margin: 5px 0 1px; color: #20352b; font-size: 34.9px; font-weight: 650; letter-spacing: -.035em; }
.page-heading p { margin: 0; color: #85928a; font-size: 14.5px; }
.heading-date { display: grid; gap: 3px; text-align: right; }
.date-label { color: #a5afa9; font-size: 13.1px; }
.heading-date strong { color: #4e5e55; font-size: 14.5px; font-weight: 600; }

/* Dashboard content */
.welcome-card { min-height: 192px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; padding: 27px 34px; border-radius: 10px; color: white; background: radial-gradient(ellipse at 79% 67%, rgba(57, 116, 91, .5), transparent 33%), linear-gradient(108deg, #1c5142 0%, #194839 56%, #153d33 100%); box-shadow: 0 8px 20px rgba(24, 65, 53, .09); }
.welcome-card::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .14; background-image: linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px); background-size: 31px 31px; mask-image: linear-gradient(90deg, transparent 38%, black 93%); }
.welcome-copy { position: relative; z-index: 2; max-width: 490px; }
.welcome-tag { display: inline-flex; align-items: center; gap: 8px; color: #d2dfd6; font-size: 13.1px; }
.welcome-tag > span { width: 6px; height: 6px; background: #e8ca7d; box-shadow: 0 0 0 3px rgba(232,202,125,.13); }
.welcome-copy h2 { margin: 10px 0 4px; color: #fff; font-size: 33.4px; font-weight: 600; letter-spacing: -.035em; }
.welcome-copy p { max-width: 450px; margin: 0; color: #bdcfc4; font-size: 14.5px; line-height: 1.8; }
.welcome-meta { margin-top: 16px; display: flex; align-items: center; gap: 7px; color: #e3e9e3; font-size: 13.1px; }
.welcome-check { width: 16px; height: 16px; display: grid; place-items: center; border: 1px solid rgba(172, 219, 180, .36); border-radius: 50%; color: #9fdaa6; font-family: Arial, sans-serif; font-size: 14.5px; }
.welcome-graphic { width: 265px; height: 175px; position: absolute; z-index: 1; top: 5px; right: 81px; }
.graphic-ring { position: absolute; left: 45px; top: 20px; width: 170px; height: 127px; border: 1px solid rgba(214, 227, 209, .16); border-radius: 50%; transform: rotate(-26deg); }
.ring-b { width: 205px; height: 100px; left: 27px; top: 34px; border-color: rgba(214, 227, 209, .12); }
.ring-c { width: 115px; height: 150px; left: 72px; top: 12px; border-color: rgba(214, 227, 209, .13); }
.graphic-court { width: 92px; height: 92px; position: absolute; top: 42px; left: 84px; overflow: hidden; border: 1px solid rgba(238, 220, 174, .35); border-radius: 16px; transform: rotate(35deg); }
.graphic-court::before, .graphic-court::after { content: ''; position: absolute; border: 1px solid rgba(238, 220, 174, .3); }
.graphic-court::before { width: 90px; height: 47px; top: 20px; left: 0; border-radius: 50%; }
.graphic-court::after { width: 47px; height: 90px; top: 0; left: 20px; border-radius: 50%; }
.graphic-court span { position: absolute; z-index: 1; width: 7px; height: 7px; left: 42px; top: 42px; border-radius: 50%; background: #f2d58e; box-shadow: 0 0 15px 5px rgba(242,213,142,.3); }
.graphic-ball { width: 29px; height: 29px; position: absolute; z-index: 2; top: 22px; right: 31px; border: 1px solid rgba(254,235,181,.57); border-radius: 50%; background: linear-gradient(135deg, #f0d18a, #bd913e); box-shadow: 0 7px 20px rgba(9, 29, 23, .35); }
.graphic-ball::before, .graphic-ball::after { content: ''; position: absolute; border: 1px solid rgba(112, 76, 28, .48); }
.graphic-ball::before { width: 12px; height: 27px; left: 7px; top: 0; border-radius: 50%; }
.graphic-ball::after { width: 27px; height: 11px; left: 0; top: 7px; border-radius: 50%; }
.graphic-star { position: absolute; color: #dabe77; opacity: .67; }
.star-a { top: 30px; left: 44px; font-size: 24.6px; }
.star-b { top: 115px; right: 27px; font-size: 16.0px; }
.welcome-index { position: absolute; z-index: 2; right: 22px; bottom: 17px; display: flex; align-items: center; gap: 8px; color: rgba(231,239,231,.63); font-family: Arial, sans-serif; font-size: 12.6px; letter-spacing: .08em; }
.welcome-index i { width: 30px; height: 1px; background: rgba(231,239,231,.37); }
.overview-grid { margin-top: 15px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.overview-card { min-height: 137px; position: relative; overflow: hidden; padding: 15px 17px 13px; border: 1px solid #e9eeea; border-radius: 9px; background: #fff; box-shadow: 0 2px 7px rgba(33, 54, 43, .025); }
.overview-card::after { content: ''; width: 88px; height: 88px; position: absolute; right: -49px; top: -47px; border: 1px solid #f0f3f0; border-radius: 50%; box-shadow: 0 0 0 11px #fafbfa, 0 0 0 12px #f3f6f3; }
.overview-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; }
.overview-icon svg { width: 17px; height: 17px; }
.icon-forest { color: #3e8066; background: #eaf4ee; }
.icon-gold { color: #ab8440; background: #f8f0df; }
.icon-blue { color: #5b7e9e; background: #eaf0f7; }
.overview-label { margin-top: 11px; color: #829087; font-size: 13.1px; }
.overview-value { margin-top: 1px; display: flex; align-items: baseline; gap: 5px; color: #1d382c; font-size: 31.9px; font-weight: 650; letter-spacing: -.04em; line-height: 1.35; }
.overview-value > span:not(.live-dot) { color: #7c8c82; font-size: 13.1px; font-weight: 500; letter-spacing: 0; }
.overview-value-status { min-height: 30px; align-items: center; gap: 7px; font-size: 18.9px; letter-spacing: -.015em; }
.live-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #59a976; box-shadow: 0 0 0 3px rgba(89,169,118,.11); }
.overview-note { margin-top: 1px; color: #a0aaa3; font-size: 12.6px; }
.card-corner { position: absolute; right: 16px; bottom: 14px; color: #c1ccc4; font-family: Arial, sans-serif; font-size: 12.6px; letter-spacing: .08em; }
.modules-section { margin-top: 28px; }
.section-heading { margin-bottom: 12px; display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.section-eyebrow { color: #9ca8a0; font-size: 12.6px; }
.section-heading h2 { margin: 3px 0 0; color: #293c31; font-size: 20.4px; font-weight: 650; letter-spacing: -.02em; }
.section-count { display: inline-flex; align-items: center; gap: 7px; color: #929e96; font-size: 12.6px; }
.section-count b { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #e5ebe6; border-radius: 50%; color: #698173; background: #fff; font-family: Arial, sans-serif; font-size: 12.6px; font-weight: 600; }
.module-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.module-card { min-height: 150px; position: relative; padding: 13px 13px 12px; border: 1px solid #e9eeea; border-radius: 8px; background: #fff; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.module-card:hover { transform: translateY(-2px); border-color: #dce7df; box-shadow: 0 7px 17px rgba(33,54,43,.055); }
.module-number { color: #a3aea7; font-family: Arial, sans-serif; font-size: 12.6px; font-weight: 700; letter-spacing: .1em; }
.module-icon { width: 31px; height: 31px; position: absolute; top: 35px; right: 13px; display: grid; place-items: center; border-radius: 8px; }
.module-icon svg { width: 17px; height: 17px; }
.module-amber { color: #a98543; background: #f8f0df; }
.module-blue { color: #5b7e9e; background: #eaf0f7; }
.module-green { color: #4a8b6b; background: #eaf3ec; }
.module-violet { color: #8171a4; background: #f0edf7; }
.module-card h3 { margin: 16px 0 2px; color: #304239; font-size: 14.5px; font-weight: 650; }
.module-card p { min-height: 24px; margin: 0; color: #929f97; font-size: 12.6px; line-height: 1.6; }
.module-status { margin-top: 8px; display: inline-flex; align-items: center; gap: 6px; color: #87958c; font-size: 12.6px; }
.module-status > span { width: 5px; height: 5px; border-radius: 50%; background: #c1a15b; }
.module-card-link { display: block; color: inherit; text-decoration: none; }
.module-card-link:focus-visible { outline: 3px solid rgba(45, 120, 101, .23); outline-offset: 2px; }
.foundation-note { margin-top: 15px; min-height: 56px; display: flex; align-items: center; gap: 11px; padding: 10px 14px; border: 1px solid #e6eee8; border-radius: 8px; background: linear-gradient(95deg, #f0f6f1, #f8faf8); }
.foundation-icon { width: 26px; height: 26px; display: grid; place-items: center; flex: 0 0 auto; color: #4d8967; }
.foundation-icon svg { width: 21px; height: 21px; }
.foundation-note > div { min-width: 0; flex: 1; }
.foundation-note strong { color: #466050; font-size: 13.1px; font-weight: 650; }
.foundation-note p { margin: 2px 0 0; color: #85938a; font-size: 12.6px; line-height: 1.65; }
.foundation-badge { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; color: #6f927a; font-family: Arial, sans-serif; font-size: 12.6px; font-weight: 700; letter-spacing: .08em; }
.foundation-badge span { width: 5px; height: 5px; border-radius: 50%; background: #72aa83; }
.admin-footer { display: flex; justify-content: space-between; gap: 16px; padding: 12px 34px 17px; border-top: 1px solid #e9eeea; color: #9ba79f; font-size: 12.6px; }
.admin-footer i { padding: 0 3px; color: #c5cec8; font-style: normal; }

/* Sports types */
.sport-page-heading { align-items: center; margin-bottom: 18px; }
.button-secondary { min-height: 38px; display: inline-flex; justify-content: center; align-items: center; gap: 8px; padding: 0 14px; border: 1px solid #dfe7e1; border-radius: 7px; color: #53645a; background: #fff; font-size: 14.5px; font-weight: 600; cursor: pointer; transition: color .16s ease, border-color .16s ease, background .16s ease; }
.button-secondary svg { width: 15px; height: 15px; }
.button-secondary:hover { border-color: #c7d8cc; color: var(--forest-700); background: #f8fbf8; }
.button-secondary:focus-visible, .filter-submit:focus-visible, .sport-action-button:focus-visible, .pager-button:focus-visible { outline: 3px solid rgba(45, 120, 101, .18); outline-offset: 2px; }
.add-sport-button { width: auto; min-height: 39px; justify-content: center; padding: 0 14px; border-radius: 7px; font-size: 14.5px; }
.add-sport-button svg { width: 16px; height: 16px; }
.sport-flash { margin-bottom: 14px; padding: 10px 13px; display: flex; align-items: center; gap: 9px; border: 1px solid #d6eadc; border-radius: 7px; color: #417050; background: #f2f9f3; font-size: 14.5px; }
.sport-flash-check { width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: white; background: #64a779; font-family: Arial, sans-serif; font-size: 14.5px; }
.sport-summary { margin-bottom: 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.sport-summary-card { min-height: 79px; position: relative; overflow: hidden; display: flex; align-items: center; gap: 12px; padding: 13px 15px; border: 1px solid #e9eeea; border-radius: 8px; background: #fff; }
.sport-summary-card::after { content: ''; width: 71px; height: 71px; position: absolute; top: -40px; right: -29px; border: 1px solid #eff3ef; border-radius: 50%; box-shadow: 0 0 0 9px #fafbfa; }
.summary-icon { width: 33px; height: 33px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; }
.summary-icon svg { width: 18px; height: 18px; }
.summary-icon-all { color: #a18142; background: #f7f0df; }
.summary-icon-active { color: #44805d; background: #eaf4ed; }
.summary-icon-inactive { color: #7f8b84; background: #eef1ef; }
.summary-copy { display: grid; gap: 2px; }
.summary-copy > span { color: #86938b; font-size: 13.1px; }
.summary-copy strong { color: #304438; font-size: 26.2px; font-weight: 650; line-height: 1.25; }
.summary-copy small { color: #8b9890; font-size: 12.6px; font-weight: 500; }
.summary-index { position: absolute; right: 13px; bottom: 11px; color: #b8c3bb; font-family: Arial, sans-serif; font-size: 12.6px; letter-spacing: .08em; }
.sport-list-panel { overflow: hidden; border: 1px solid #e8ede9; border-radius: 9px; background: #fff; box-shadow: 0 2px 8px rgba(33, 54, 43, .025); }
.list-panel-heading { min-height: 67px; display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 12px 18px; border-bottom: 1px solid #edf0ed; }
.list-panel-heading h2 { margin: 3px 0 0; color: #2b3d32; font-size: 18.9px; font-weight: 650; }
.list-total { display: inline-flex; align-items: center; gap: 5px; color: #95a198; font-size: 12.6px; }
.list-total b { color: #5b7164; font-family: Arial, sans-serif; font-size: 14.5px; font-weight: 650; }
.sport-filters { min-height: 64px; display: flex; align-items: center; gap: 9px; padding: 12px 18px; border-bottom: 1px solid #edf0ed; background: #fdfefd; }
.sport-search { width: min(100%, 300px); min-height: 34px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid #e2e9e3; border-radius: 6px; background: #fff; transition: border-color .16s ease, box-shadow .16s ease; }
.sport-search:focus-within { border-color: #70a58d; box-shadow: 0 0 0 3px rgba(45, 120, 101, .08); }
.sport-search svg { width: 15px; height: 15px; flex: 0 0 auto; color: #95a49a; }
.sport-search input { width: 100%; height: 32px; border: 0; outline: 0; color: #3f5146; background: transparent; font-size: 13.1px; }
.sport-search input::placeholder { color: #a3aea6; }
.sport-status-filter { min-height: 34px; display: flex; align-items: center; gap: 7px; padding: 0 9px; border: 1px solid #e2e9e3; border-radius: 6px; color: #89968e; background: #fff; font-size: 12.6px; white-space: nowrap; }
.sport-status-filter select { max-width: 95px; border: 0; outline: 0; color: #485a4f; background: transparent; font-size: 13.1px; cursor: pointer; }
.filter-submit { min-height: 34px; padding: 0 13px; border: 1px solid #dce6dd; border-radius: 6px; color: #456251; background: #f1f6f1; font-size: 13.1px; font-weight: 600; cursor: pointer; transition: background .15s ease; }
.filter-submit:hover { background: #e7f0e9; }
.filter-reset { color: #798a7f; font-size: 12.6px; white-space: nowrap; }
.filter-reset:hover { color: #a14d43; text-decoration: underline; }
.sport-table-wrap { width: 100%; overflow-x: auto; }
.sport-table { width: 100%; min-width: 760px; border-collapse: collapse; text-align: left; }
.sport-table thead { color: #89968d; background: #f8faf8; }
.sport-table th { height: 39px; padding: 0 12px; border-bottom: 1px solid #e9eeea; font-size: 12.6px; font-weight: 600; white-space: nowrap; }
.sport-table td { height: 57px; padding: 8px 12px; border-bottom: 1px solid #f0f3f0; color: #607168; font-size: 13.1px; }
.sport-table tbody tr:last-child td { border-bottom: 0; }
.sport-table tbody tr:hover:not(:has(.sport-empty-state)) { background: #fcfdfc; }
.sport-number-col { width: 61px; padding-left: 19px !important; }
.sport-description-col { width: 29%; }
.sport-status-col { width: 120px; }
.sport-date-col { width: 125px; }
.sport-action-col { width: 112px; text-align: center; }
.sport-row-number { padding-left: 19px !important; color: #a3aea6 !important; font-family: Arial, sans-serif; font-size: 12.6px !important; }
.sport-name-cell { display: flex; align-items: center; gap: 9px; }
.sport-row-icon { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 7px; color: #9d7c3f; background: #f8f2e4; }
.sport-row-icon svg { width: 15px; height: 15px; }
.sport-name-cell strong { color: #394c40; font-size: 13.1px; font-weight: 650; }
.sport-description { max-width: 260px; overflow: hidden; color: #8b9990 !important; text-overflow: ellipsis; white-space: nowrap; }
.sport-status-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border: 1px solid transparent; border-radius: 30px; font-size: 12.6px; white-space: nowrap; }
.sport-status-pill > span { width: 5px; height: 5px; border-radius: 50%; }
.sport-status-pill.is-active { border-color: #e0eee3; color: #548263; background: #f0f7f1; }
.sport-status-pill.is-active > span { background: #68a779; }
.sport-status-pill.is-inactive { border-color: #e8ece9; color: #89958d; background: #f5f7f5; }
.sport-status-pill.is-inactive > span { background: #a7b0aa; }
.sport-date { color: #89978e !important; font-size: 12.6px !important; white-space: nowrap; }
.sport-actions { display: flex; justify-content: center; align-items: center; gap: 5px; }
.sport-actions form { margin: 0; }
.sport-action-button { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid #e7ece8; border-radius: 6px; color: #7c8d82; background: #fff; cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease; }
.sport-action-button svg { width: 14px; height: 14px; }
.sport-action-button.view-action:hover { border-color: #c8d8cc; color: #2d7865; background: #f3f8f4; }
.sport-action-button.edit-action:hover { border-color: #c8d8cc; color: #2d7865; background: #f3f8f4; }
.sport-action-button.deactivate-action:hover { border-color: #efdbd7; color: #a9564c; background: #fff7f5; }
.sport-action-button.activate-action:hover { border-color: #d5e8d9; color: #4b8a5d; background: #f2f8f3; }
.sport-empty-cell { height: auto !important; padding: 0 !important; }
.sport-empty-state { min-height: 242px; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 25px 16px; text-align: center; }
.empty-sport-icon { width: 45px; height: 45px; display: grid; place-items: center; margin-bottom: 11px; border: 1px solid #e6ece6; border-radius: 14px; color: #9b8555; background: #faf8f0; }
.empty-sport-icon svg { width: 22px; height: 22px; }
.sport-empty-state strong { color: #475a4d; font-size: 14.5px; font-weight: 650; }
.sport-empty-state p { margin: 4px 0 12px; color: #97a39b; font-size: 12.6px; }
.empty-primary-button, .empty-secondary-button { min-height: 31px; display: inline-flex; align-items: center; gap: 6px; padding: 0 11px; border: 1px solid #dce8de; border-radius: 6px; color: #557260; background: #f4f8f4; font-size: 12.6px; font-weight: 600; }
.empty-primary-button:hover, .empty-secondary-button:hover { border-color: #bfd5c5; color: #24634f; background: #edf5ef; }
.empty-primary-button > span { font-size: 20.4px; font-weight: 400; line-height: 1; }
.sport-list-footer { min-height: 48px; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 17px; border-top: 1px solid #edf0ed; color: #929e96; font-size: 12.6px; }
.sport-pagination { display: flex; align-items: center; gap: 8px; }
.pager-button { min-height: 27px; display: inline-flex; align-items: center; padding: 0 8px; border: 1px solid #e5ebe6; border-radius: 5px; color: #5d7164; background: #fff; font-size: 12.6px; white-space: nowrap; }
a.pager-button:hover { border-color: #cbdace; color: #2d7865; background: #f8fbf8; }
.pager-button.is-disabled { color: #bac3bd; background: #fafbfa; }
.pager-current { min-width: 54px; text-align: center; color: #819087; }

/* Sport type form */
.sport-form-panel { max-width: 820px; overflow: hidden; border: 1px solid #e8ede9; border-radius: 9px; background: #fff; box-shadow: 0 2px 8px rgba(33, 54, 43, .025); }
.sport-form-intro { min-height: 75px; display: flex; align-items: center; gap: 12px; padding: 15px 21px; border-bottom: 1px solid #edf0ed; }
.sport-form-icon { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 9px; color: #9c7b3e; background: #f8f1e1; }
.sport-form-icon svg { width: 19px; height: 19px; }
.sport-form-intro h2 { margin: 3px 0 0; color: #35483c; font-size: 17.4px; font-weight: 650; }
.sport-type-form { padding: 22px 22px 18px; }
.form-field { display: grid; gap: 7px; margin-bottom: 21px; }
.form-field > label, .status-form-copy strong { color: #4b5c51; font-size: 13.1px; font-weight: 650; }
.required-mark { color: #bf6558; }
.optional-mark { margin-left: 5px; color: #a0aaa3; font-size: 12.6px; font-weight: 400; }
.form-field > input, .form-field > textarea { width: 100%; border: 1px solid #dfe7e1; border-radius: 7px; outline: 0; color: #34473a; background: #fff; font-size: 14.5px; transition: border-color .16s ease, box-shadow .16s ease; }
.form-field > input { height: 39px; padding: 0 11px; }
.form-field > textarea { min-height: 95px; padding: 10px 11px; resize: vertical; line-height: 1.65; }
.form-field > input::placeholder, .form-field > textarea::placeholder { color: #b1bbb4; }
.form-field > input:focus, .form-field > textarea:focus { border-color: #75a58d; box-shadow: 0 0 0 3px rgba(45,120,101,.08); }
.field-help { color: #9ba69f; font-size: 12.6px; }
.field-error { color: #b55349; font-size: 12.6px; }
.status-form-field { min-height: 58px; display: flex; justify-content: space-between; align-items: center; gap: 15px; margin: 3px 0 0; padding: 12px 13px; border: 1px solid #edf0ed; border-radius: 7px; background: #fafcfa; }
.status-form-copy { display: grid; gap: 3px; }
.status-form-copy strong { font-size: 13.1px; }
.status-form-copy small { color: #97a39a; font-size: 12.6px; }
.toggle-control { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; cursor: pointer; }
.toggle-control input[type="checkbox"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.toggle-track { width: 31px; height: 18px; position: relative; display: block; border: 1px solid #d9e1db; border-radius: 20px; background: #e8ece9; transition: background .16s ease, border-color .16s ease; }
.toggle-track::after { content: ''; width: 12px; height: 12px; position: absolute; top: 2px; left: 2px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.16); transition: transform .16s ease; }
.toggle-control input:checked + .toggle-track { border-color: #39775a; background: #4d9168; }
.toggle-control input:checked + .toggle-track::after { transform: translateX(13px); }
.toggle-control input:focus-visible + .toggle-track { outline: 3px solid rgba(45,120,101,.18); outline-offset: 2px; }
.toggle-label { color: #668071; font-size: 12.6px; font-weight: 600; }
.sport-form-actions { margin-top: 22px; padding-top: 15px; display: flex; justify-content: flex-end; align-items: center; gap: 8px; border-top: 1px solid #edf0ed; }
.save-sport-button { width: auto; min-height: 37px; padding: 0 13px; border-radius: 7px; font-size: 13.1px; }
.save-sport-button svg { width: 15px; height: 15px; }

@media (max-width: 1160px) {
    .admin-shell { grid-template-columns: 222px minmax(0, 1fr); }
    .page-content { padding-right: 24px; padding-left: 24px; }
    .topbar { padding-right: 24px; padding-left: 24px; }
    .welcome-graphic { right: 41px; opacity: .8; }
    .module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .module-card { min-height: 142px; }
    .sport-summary { gap: 8px; }
    .sport-summary-card { gap: 9px; padding-right: 10px; padding-left: 10px; }
    .summary-copy > span { font-size: 12.6px; }
    .sport-filters { flex-wrap: wrap; }
    .sport-search { flex: 1 1 230px; }
}
@media (max-width: 860px) {
    .login-shell { grid-template-columns: minmax(0, 1fr); }
    .login-story { min-height: auto; padding: 36px 32px 32px; }
    .story-content { margin: 24px 0 20px; }
    .story-lead { margin-bottom: 20px; }
    .story-lead h1 { font-size: 28px; line-height: 1.3; }
    .story-lead p { font-size: 14.5px; }
    .story-features { display: none; }
    .story-footer { padding-top: 14px; }
    .login-panel { min-height: auto; padding: 36px 24px 48px; align-items: flex-start; }
    .login-form-wrap { max-width: 420px; margin: 0 auto; }
    .admin-shell { grid-template-columns: minmax(0, 1fr); }
    .sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 280px;
        height: 100vh;
        z-index: 1000;
        transform: translateX(-100%);
        transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: 0 0 35px rgba(0, 0, 0, 0.4);
    }
    .sidebar.is-open {
        transform: translateX(0);
    }
    .btn-close-sidebar {
        display: flex;
    }
    .btn-mobile-toggle {
        display: flex;
    }
    .topbar {
        padding: 0 18px;
        min-height: 60px;
    }
    .topbar-date-pill {
        display: none;
    }
    .topbar-v-divider {
        display: none;
    }
    .page-content {
        padding: 22px 18px 32px;
    }
    .admin-footer {
        padding: 14px 18px 18px;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}
@media (max-width: 560px) {
    .login-story { padding: 24px 20px; min-height: auto; }
    .story-brand-wrap { display: none; }
    .mobile-brand-box { display: block; }
    .story-content { margin: 0; }
    .story-lead h1 { font-size: 24px; margin-bottom: 8px; }
    .story-lead p { font-size: 13.5px; }
    .story-footer { display: none; }
    .login-panel { padding: 28px 18px 44px; }
    .form-header { margin-bottom: 22px; }
    .form-header h2 { font-size: 26px; }
    .form-header p { font-size: 13.5px; }
    .modern-form { gap: 16px; }
    .field-control input { height: 44px; font-size: 14.5px; }
    .btn-submit-login { min-height: 46px; font-size: 15px; }
    .login-support-card { margin-top: 22px; padding: 12px 14px; }
    .login-panel-footer { margin-top: 24px; padding-top: 16px; }
    .topbar { padding: 0 14px; }
    .topbar-breadcrumb .breadcrumb-root span { display: none; }
    .btn-topbar-logout span { display: none; }
    .btn-topbar-logout { padding: 8px 10px; }
    .page-content { padding: 18px 14px 26px; }
    .page-heading { margin-bottom: 16px; }
    .page-heading h1 { font-size: 30.5px; }
    .page-heading p { max-width: 200px; font-size: 13.1px; }
    .heading-date { display: none; }
    .welcome-card { min-height: 176px; padding: 22px 20px; }
    .welcome-copy { max-width: 78%; }
    .welcome-copy h2 { font-size: 27.6px; }
    .welcome-copy p { font-size: 13.1px; }
    .welcome-graphic { right: -99px; opacity: .47; }
    .welcome-index { right: 12px; bottom: 11px; }
    .overview-grid { grid-template-columns: 1fr; gap: 8px; }
    .overview-card { min-height: 105px; padding: 12px 14px; }
    .overview-icon { width: 26px; height: 26px; }
    .overview-icon svg { width: 15px; height: 15px; }
    .overview-label { position: absolute; top: 19px; left: 51px; margin: 0; }
    .overview-value { position: absolute; top: 34px; left: 51px; margin: 0; font-size: 27.6px; }
    .overview-value-status { top: 38px; font-size: 17.4px; }
    .overview-note { position: absolute; top: 66px; left: 51px; margin: 0; }
    .card-corner { right: 13px; bottom: 12px; }
    .modules-section { margin-top: 23px; }
    .module-grid { gap: 8px; }
    .module-card { min-height: 146px; padding: 11px 10px; }
    .module-icon { width: 27px; height: 27px; top: 31px; right: 10px; }
    .module-icon svg { width: 15px; height: 15px; }
    .module-card h3 { max-width: 100px; margin-top: 15px; font-size: 13.1px; }
    .module-card p { font-size: 12.6px; }
    .sport-page-heading { align-items: flex-start; gap: 9px; }
    .add-sport-button { min-height: 35px; gap: 5px; padding: 0 9px; font-size: 12.6px; white-space: nowrap; }
    .add-sport-button svg { width: 14px; height: 14px; }
    .sport-summary { grid-template-columns: 1fr; gap: 6px; }
    .sport-summary-card { min-height: 60px; padding: 9px 12px; }
    .summary-icon { width: 29px; height: 29px; }
    .summary-copy { gap: 0; }
    .summary-copy > span { font-size: 12.6px; }
    .summary-copy strong { font-size: 21.8px; }
    .summary-index { right: 11px; bottom: 9px; }
    .list-panel-heading { min-height: 58px; padding: 10px 12px; }
    .sport-filters { gap: 7px; padding: 10px 11px; }
    .sport-search { flex-basis: 100%; }
    .sport-status-filter { flex: 1; justify-content: space-between; }
    .sport-status-filter select { max-width: 115px; }
    .sport-list-footer { align-items: flex-start; flex-direction: column; padding: 10px 11px; }
    .sport-pagination { width: 100%; justify-content: space-between; }
    .sport-form-intro { min-height: 66px; padding: 12px 14px; }
    .sport-type-form { padding: 16px 14px 13px; }
    .status-form-field { align-items: flex-start; flex-direction: column; gap: 10px; }
    .sport-form-actions { margin-top: 17px; }
    .section-heading h2 { font-size: 17.4px; }
    .section-count { gap: 4px; font-size: 12.6px; }
    .section-count b { width: 18px; height: 18px; }
    .foundation-note { align-items: flex-start; gap: 7px; padding: 10px; }
    .foundation-icon { width: 21px; height: 21px; }
    .foundation-note strong { font-size: 12.6px; }
    .foundation-note p { font-size: 12.6px; }
    .foundation-badge { display: none; }
    .admin-footer { padding: 10px 13px 13px; font-size: 12.6px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Sport roster management */
.management-back-link { min-height: 39px; display: inline-flex; align-items: center; padding: 0 14px; white-space: nowrap; }
.management-filters { min-height: 58px; }
.management-table { min-width: 720px; }
.manage-sport-link { display: inline-flex; align-items: center; gap: 7px; color: var(--forest-700); font-size: 14.5px; font-weight: 650; white-space: nowrap; }
.manage-sport-link span { color: #a28a55; font-size: 18px; transition: transform .15s ease; }
.manage-sport-link:hover span { transform: translateX(3px); }
.roster-summary { margin-bottom: 15px; }
.roster-panel { overflow: hidden; margin-bottom: 16px; border: 1px solid #e8ede9; border-radius: 9px; background: #fff; box-shadow: 0 2px 8px rgba(33, 54, 43, .025); }
.roster-panel-coaches { margin-top: 16px; }
.roster-heading { min-height: 88px; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 16px 19px; border-bottom: 1px solid #edf0ed; }
.roster-heading h2 { margin: 4px 0 2px; color: #2b3d32; font-size: 21px; font-weight: 650; }
.roster-heading p { margin: 0; color: #89968e; font-size: 14.5px; }
.roster-heading .add-sport-button { flex: 0 0 auto; }
.roster-heading-actions { display: flex; align-items: center; gap: 8px; }
.roster-status-value { font-size: 17px !important; }
.roster-table { min-width: 720px; }
.roster-table th, .roster-table td { padding-right: 15px; padding-left: 15px; }
.roster-person-name { color: #394c40; font-size: 15.8px; font-weight: 650; }
.person-profile-page { max-width: 1040px; margin: 0 auto; }
.person-profile-heading { margin-bottom: 16px; }
.person-profile-actions { display: flex; align-items: center; gap: 9px; }
.person-print-button { min-height: 38px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; border: 0; border-radius: 7px; color: #fff; background: var(--forest-700); font: inherit; font-size: 14.5px; font-weight: 600; cursor: pointer; }
.person-print-button:hover { background: #185b4b; }
.person-print-button svg { width: 17px; height: 17px; }
.person-profile-card { overflow: hidden; border: 1px solid #e5ebe6; border-radius: 10px; background: #fff; box-shadow: 0 3px 12px rgba(33, 54, 43, .035); }
.person-profile-hero { min-height: 154px; display: flex; align-items: center; gap: 20px; padding: 24px 27px; border-bottom: 1px solid #edf0ed; background: linear-gradient(110deg, #f5f9f5, #fff 72%); }
.person-profile-avatar { width: 104px; height: 104px; color: #527763; }
.person-profile-avatar .person-avatar-fallback { font-size: 36px; }
.person-profile-title { display: grid; justify-items: start; gap: 7px; }
.person-profile-title h2 { margin: 0; color: #2e4136; font-size: 24px; font-weight: 650; }
.person-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 22px 25px; }
.person-profile-field { min-height: 70px; display: grid; align-content: center; gap: 5px; padding: 12px 14px; border: 1px solid #edf0ed; border-radius: 7px; background: #fcfdfc; }
.person-profile-field span, .person-profile-note > span { color: #89968e; font-size: 13.8px; }
.person-profile-field strong { color: #3d5145; font-size: 16px; font-weight: 600; overflow-wrap: anywhere; }
.person-profile-note { margin: 0 25px 24px; padding: 15px 16px; border: 1px solid #edf0ed; border-radius: 7px; background: #fcfdfc; }
.person-profile-note p { margin: 6px 0 0; color: #4f6256; font-size: 15px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.sport-type-overview-page { max-width: 1120px; margin: 0 auto; }
.sport-type-overview-heading { align-items: flex-start; }
.sport-type-overview-heading h1 { margin: 0 0 4px; color: #2b3d32; font-size: 28px; }
.sport-type-overview-heading p { max-width: 640px; margin: 0; color: #89968e; font-size: 14.5px; }
.sport-type-overview-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.sport-type-member-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin: 0 0 15px; }
.sport-type-member-summary article { min-height: 66px; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 15px; border: 1px solid #e8ede9; border-radius: 8px; background: #fff; }
.sport-type-member-summary article span { color: #89968e; font-size: 14px; }
.sport-type-member-summary article strong { color: #3f5949; font-size: 16px; font-weight: 650; text-align: right; }
.sport-type-directory-panel { overflow: hidden; margin-bottom: 15px; border: 1px solid #e8ede9; border-radius: 9px; background: #fff; box-shadow: 0 2px 8px rgba(33, 54, 43, .025); }
.sport-type-directory-heading { min-height: 66px; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid #edf0ed; }
.sport-type-directory-heading h2 { margin: 3px 0 0; color: #2b3d32; font-size: 19px; font-weight: 650; }
.sport-type-directory-heading > span { color: #84938a; font-size: 14px; white-space: nowrap; }
.sport-type-member-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px; }
.sport-type-member-card { min-width: 0; min-height: 142px; display: flex; align-items: center; gap: 14px; padding: 12px; border: 1px solid #edf0ed; border-radius: 8px; background: #fff; break-inside: avoid; }
.person-avatar.member-photo-avatar { width: 104px; height: 118px; border-radius: 9px; }
.member-photo-avatar .person-avatar-fallback { font-size: 24px; }
.sport-type-member-copy { min-width: 0; flex: 1; display: grid; gap: 3px; }
.sport-type-member-copy strong { color: #35483c; font-size: 15.5px; font-weight: 650; overflow-wrap: anywhere; }
.sport-type-member-copy small { color: #84938a; font-size: 12.8px; line-height: 1.45; overflow-wrap: anywhere; }
.sport-type-member-card .sport-status-pill { flex: 0 0 auto; font-size: 11.8px; }
.sport-type-empty { margin: 0; padding: 25px 18px; color: #8c9991; font-size: 14px; text-align: center; }
.print-report-heading { display: none; }


.sports-directory-hero .hero-content { width: 100%; max-width: 680px; align-self: flex-start; margin: 0; text-align: left; }
.sports-directory-hero .hero-date { font-family: Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .14em; }

.directory-summary-icon { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 16px; color: var(--accent); background: #eaf5ee; }
.directory-summary-icon svg { width: 24px; height: 24px; }
.directory-summary-copy { display: grid; gap: 1px; }
.directory-summary-copy > span { color: var(--muted); font-size: 12px; }
.directory-summary-copy strong { color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 24px; font-weight: 600; line-height: 1.15; }
.directory-summary-copy small { font-family: 'Noto Sans Thai', sans-serif; font-size: 12px; font-weight: 500; }

.directory-toolbar-copy { flex: 0 0 auto; }
.directory-toolbar-copy .section-eyebrow { color: #5f806c; font-family: inherit; font-size: 14px; font-weight: 650; letter-spacing: 0; }
.directory-toolbar-copy p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.directory-search-form { min-width: 0; width: min(100%, 760px); display: flex; align-items: center; gap: 10px; }
.directory-search-form .sport-search { width: auto; min-height: 48px; flex: 1 1 320px; gap: 10px; padding: 0 14px; border-radius: 15px; }
.directory-search-form .sport-search svg { width: 18px; height: 18px; }
.directory-search-form .sport-search input { height: 44px; font-size: 14px; }
.directory-search-form .filter-submit { min-height: 48px; padding: 0 20px; border-color: var(--accent); border-radius: 15px; color: #fff; background: var(--accent); font-size: 14px; }
.directory-search-form .filter-submit:hover { border-color: #086b5a; background: #086b5a; }
.directory-search-form .filter-reset { padding: 10px 13px; border-radius: 13px; color: #61766a; background: #f0f6f1; text-decoration: none; }
.directory-search-form .filter-reset:hover { color: #a14d43; background: #fff2ef; }
.sports-directory-results { display: grid; gap: 14px; }
.directory-results-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.directory-results-heading h2 { margin: 4px 0 0; color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 22px; font-weight: 600; }
.directory-results-total { padding: 8px 13px; border: 1px solid var(--line); border-radius: 14px; color: var(--muted); background: #fff; font-size: 12.5px; white-space: nowrap; }
.sport-directory-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 16px; }

.sport-directory-card:nth-child(4n + 2) { --sport-accent: #8A5A00; --sport-tint: rgba(255,201,60,.19); }
.sport-directory-card:nth-child(4n + 3) { --sport-accent: #17567F; --sport-tint: rgba(77,182,245,.16); }
.sport-directory-card:nth-child(4n + 4) { --sport-accent: #B4412B; --sport-tint: rgba(255,138,107,.17); }
.sport-directory-card::before { content: ''; width: 145px; height: 145px; position: absolute; top: -84px; right: -55px; border-radius: 50%; background: var(--sport-tint); pointer-events: none; transition: transform .2s ease; }
.sport-directory-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--sport-accent) 24%, white); box-shadow: 0 14px 30px rgba(33,54,43,.09); }
.sport-directory-card:hover::before { transform: scale(1.15); }
.sport-directory-card:focus-visible { outline: 3px solid rgba(45, 120, 101, .2); outline-offset: 3px; }
.sport-directory-card-top { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.sport-directory-card .sport-row-icon { width: 48px; height: 48px; border-radius: 16px; color: var(--sport-accent); background: var(--sport-tint); }
.sport-directory-card .sport-row-icon svg { width: 24px; height: 24px; }
.sport-directory-card .sport-status-pill { padding: 6px 10px; font-size: 12px; }
.sport-directory-card h3 { position: relative; margin: 17px 0 6px; color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; line-height: 1.35; }
.sport-directory-card > p { min-height: 42px; display: -webkit-box; overflow: hidden; margin: 0; color: var(--muted); font-size: 13.5px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.sport-directory-card-counts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: auto; padding-top: 18px; }
.sport-directory-card-counts > span { min-width: 0; display: grid; gap: 3px; padding: 10px 12px; border-radius: 15px; background: var(--bg); }
.sport-directory-card-counts small { overflow: hidden; color: var(--muted); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.sport-directory-card-counts strong { color: var(--sport-accent); font-family: 'Prompt', sans-serif; font-size: 20px; font-weight: 600; line-height: 1.2; }
.sport-directory-card-link { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--sport-accent); font-size: 13.5px; font-weight: 650; }
.sport-directory-card-link b { font-size: 20px; font-weight: 500; transition: transform .15s ease; }
.sport-directory-card:hover .sport-directory-card-link b { transform: translateX(3px); }
.sport-directory-empty { grid-column: 1 / -1; min-height: 260px; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 32px 20px; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.sport-directory-empty-icon { width: 56px; height: 56px; display: grid; place-items: center; margin-bottom: 12px; border-radius: 18px; color: #0A7F6B; background: #DDF3E8; }
.sport-directory-empty-icon svg { width: 28px; height: 28px; }
.sport-directory-empty strong { color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 19px; font-weight: 600; }
.sport-directory-empty p { margin: 5px 0 16px; color: var(--muted); font-size: 13.5px; }
.directory-list-footer { margin-top: 0; padding: 12px 18px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.roster-empty { min-height: 190px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; padding: 24px 16px; text-align: center; }
.roster-empty strong { color: #475a4d; font-size: 17.2px; }
.roster-empty p { margin: 0 0 4px; color: #97a39b; font-size: 14.5px; }
.person-form-panel { max-width: 920px; }
.person-form { padding-top: 24px; }
.person-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
.person-form-grid .form-field { margin-bottom: 18px; }
.person-form .form-field > label { font-size: 15.8px; }
.person-form .form-field > input, .person-form .form-field > textarea, .person-form .form-field > select { min-height: 43px; padding: 8px 11px; border: 1px solid #dfe7e1; border-radius: 7px; outline: 0; color: #34473a; background: #fff; font: inherit; font-size: 15.8px; }
.person-form .form-field > textarea { min-height: 88px; resize: vertical; line-height: 1.65; }
.person-form .form-field > input:focus, .person-form .form-field > textarea:focus, .person-form .form-field > select:focus { border-color: #75a58d; box-shadow: 0 0 0 3px rgba(45,120,101,.08); }
.person-note-field { margin-top: 3px; }
.person-form .status-form-field { margin-top: 6px; }
.person-form .sport-form-actions { margin-top: 22px; }
.directory-picker-field { position: relative; margin-bottom: 18px; }
.directory-picker-field > label { display: block; margin-bottom: 8px; }
.directory-search-wrap { min-height: 48px; position: relative; display: flex; align-items: center; gap: 10px; padding: 0 12px; border: 1px solid #dfe7e1; border-radius: 7px; background: #fff; transition: border-color .16s ease, box-shadow .16s ease; }
.directory-search-wrap:focus-within { border-color: #75a58d; box-shadow: 0 0 0 3px rgba(45,120,101,.08); }
.directory-search-wrap > svg { width: 19px; height: 19px; flex: 0 0 auto; color: #91a198; }
.directory-search-wrap > input[type="search"] { width: 100%; min-width: 0; height: 44px; padding: 0; border: 0; outline: 0; color: #34473a; background: transparent; font: inherit; font-size: 16px; }
.directory-search-wrap > input[type="search"]::-webkit-search-cancel-button { cursor: pointer; }
.directory-results { position: relative; z-index: 2; max-height: 300px; overflow: auto; margin-top: 6px; padding: 5px; border: 1px solid #dfe7e1; border-radius: 8px; background: #fff; box-shadow: 0 8px 20px rgba(23, 50, 39, .09); }
.directory-result { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 0; border-radius: 5px; color: #34473a; background: #fff; text-align: left; cursor: pointer; }
.directory-result:hover, .directory-result:focus-visible { outline: 0; background: #f1f7f3; }
.directory-result strong { font-size: 15.8px; font-weight: 650; }
.directory-result small { color: #84938a; font-size: 13.2px; }
.directory-result-copy { min-width: 0; display: grid; gap: 3px; }
.person-avatar { width: 42px; height: 42px; position: relative; flex: 0 0 auto; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e1e9e3; border-radius: 50%; color: #527763; background: #edf4ef; }
.person-avatar img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.person-avatar-fallback { display: none; align-items: center; justify-content: center; color: inherit; font-size: 17px; font-weight: 650; }
.person-avatar.is-fallback .person-avatar-fallback { display: inline-flex; }
.directory-avatar { width: 52px; height: 52px; }
.roster-person-cell { display: flex; align-items: center; gap: 11px; }
.student-avatar { width: 54px; height: 54px; }
.student-avatar .person-avatar-fallback { font-size: 16px; }
.directory-result-message { padding: 11px 12px; color: #819087; font-size: 14.5px; }
.directory-selected-detail { min-height: 20px; margin: 7px 0 0; color: #668071; font-size: 14.5px; }
.directory-selected-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.directory-selected-chip { min-width: min(100%, 250px); max-width: 100%; display: flex; align-items: center; gap: 12px; padding: 9px 10px 9px 12px; border: 1px solid #dfeae1; border-radius: 8px; background: #f8fbf8; }
.directory-chip-copy { min-width: 0; flex: 1; display: grid; gap: 3px; }
.directory-chip-copy strong { overflow-wrap: anywhere; color: #344b3b; font-size: 14.5px; font-weight: 650; }
.directory-chip-copy small { overflow-wrap: anywhere; color: #84938a; font-size: 12.6px; }
.directory-chip-remove { width: 28px; height: 28px; flex: 0 0 auto; border: 1px solid #e5ebe6; border-radius: 50%; color: #8a645c; background: #fff; font-size: 20px; line-height: 1; cursor: pointer; }
.directory-chip-remove:hover { border-color: #eccfc9; color: #a14d43; background: #fff7f5; }
.directory-selection-count { margin: 8px 0 0; color: #668071; font-size: 14.5px; font-weight: 600; }

@media (max-width: 800px) {
    .roster-heading { align-items: flex-start; }
    .person-form-panel { max-width: none; }
    .sport-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    .sport-directory-card { min-height: 260px; padding: 18px; }
    .sport-directory-card h3 { font-size: 19px; }
}

@media (max-width: 1100px) {
    .sports-directory-hero { min-height: 0; align-items: flex-start; flex-direction: column; padding: 30px; }
}

@media (max-width: 800px) {
    .sports-directory-toolbar { align-items: stretch; flex-direction: column; gap: 13px; }
    .directory-search-form { width: 100%; max-width: none; }
}

@media (max-width: 560px) {
    .management-back-link { min-height: 35px; padding: 0 9px; font-size: 13.8px; }
    .roster-heading { align-items: flex-start; gap: 10px; padding: 13px 12px; }
    .roster-heading-actions { align-items: flex-start; flex-direction: column; }
    .roster-heading h2 { font-size: 18px; }
    .roster-heading p { max-width: 230px; font-size: 13.8px; }
    .roster-heading .add-sport-button { min-height: 35px; padding: 0 9px; font-size: 13.8px; }
    .roster-summary .sport-summary-card { min-height: 60px; }
    .person-profile-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
    .person-profile-actions { width: 100%; flex-wrap: wrap; }
    .person-profile-hero { gap: 13px; padding: 18px 15px; }
    .person-profile-avatar { width: 78px; height: 78px; }
    .person-profile-avatar .person-avatar-fallback { font-size: 29px; }
    .person-profile-title h2 { font-size: 19px; }
    .person-profile-grid { grid-template-columns: 1fr; gap: 9px; padding: 14px; }
    .person-profile-note { margin: 0 14px 15px; }
    .sport-type-overview-heading { flex-direction: column; gap: 12px; }
    .sport-type-overview-actions { width: 100%; justify-content: flex-start; }
    .sport-type-member-summary { grid-template-columns: 1fr; gap: 8px; }
    .sport-type-member-grid { grid-template-columns: 1fr; padding: 10px; }
    .sport-type-member-card { min-height: 110px; gap: 9px; padding: 8px; }
    .person-avatar.member-photo-avatar { width: 82px; height: 94px; }
    .sport-type-member-card .sport-status-pill { padding: 3px 6px; font-size: 10.8px; }
    .sports-directory-hero { padding: 24px 20px; border-radius: 22px; }
    .sports-directory-hero .hero-content h1 { font-size: 27px; }
    .directory-summary-bar { min-height: 78px; padding: 13px 15px; }
    .sports-directory-toolbar { padding: 16px; }
    .directory-search-form { flex-wrap: wrap; }
    .directory-search-form .sport-search { flex-basis: 100%; }
    .directory-search-form .filter-reset { text-align: center; }
    .directory-results-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
    .directory-results-total { white-space: normal; }
    .sport-directory-grid { grid-template-columns: 1fr; }
    .sport-directory-card { min-height: 260px; padding: 20px; }
    .directory-list-footer { align-items: flex-start; flex-direction: column; }
    .directory-list-footer .sport-pagination { width: 100%; justify-content: space-between; }
    .person-form-grid { grid-template-columns: 1fr; column-gap: 0; }
    .person-form { padding: 17px 14px 14px; }
    .directory-results { max-height: 240px; }
}

@page { size: A4; margin: 15mm; }
@media print {
    html, body { min-width: 0 !important; background: #fff !important; }
    body.admin-page { color: #27372d; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .sidebar, .topbar, .admin-footer, .sport-flash, .print-hide { display: none !important; }
    .admin-shell, .admin-main, .page-content { display: block !important; width: auto !important; max-width: none !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; box-shadow: none !important; background: #fff !important; }
    .person-profile-page { max-width: none; margin: 0; }
    .person-profile-heading { align-items: flex-end; margin: 0 0 16px !important; padding: 0 0 12px; border-bottom: 1px solid #cbd5ce; }
    .person-profile-heading h1 { color: #222 !important; font-size: 19pt !important; }
    .person-profile-heading p, .person-profile-field span, .person-profile-note > span { color: #555 !important; }
    .person-profile-card { border-color: #cbd5ce; box-shadow: none; break-inside: avoid; }
    .person-profile-hero { min-height: 120px; padding: 16px 20px; border-color: #dce2dd; background: #fff !important; }
    .person-profile-title h2, .person-profile-field strong, .person-profile-note p { color: #222 !important; }
    .person-profile-field, .person-profile-note { border-color: #dce2dd; background: #fff !important; break-inside: avoid; }
    .sport-type-overview-page { max-width: none; margin: 0; }
    .print-report-heading { display: grid; gap: 3px; margin-bottom: 13px; padding-bottom: 10px; border-bottom: 1px solid #cbd5ce; color: #222; }
    .print-report-heading strong { font-size: 12pt; }
    .print-report-heading span { font-size: 14pt; font-weight: 650; }
    .print-report-heading small { color: #555; font-size: 9pt; }
    .sport-type-overview-heading { margin-bottom: 12px !important; padding-bottom: 8px; border-bottom: 1px solid #dce2dd; }
    .sport-type-overview-heading .page-eyebrow { display: none; }
    .sport-type-overview-heading h1 { color: #222 !important; font-size: 18pt !important; }
    .sport-type-overview-heading p { color: #555 !important; }
    .sport-type-member-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-bottom: 10px; }
    .sport-type-member-summary article { min-height: 45px; padding: 7px 9px; border-color: #dce2dd; }
    .sport-type-member-summary article span, .sport-type-member-summary article strong { color: #333 !important; font-size: 9pt; }
    .sport-type-directory-panel { margin-bottom: 10px; border-color: #cbd5ce; box-shadow: none; }
    .sport-type-directory-heading { min-height: 42px; padding: 7px 10px; border-color: #dce2dd; }
    .sport-type-directory-heading h2 { color: #222 !important; font-size: 12pt; }
    .sport-type-directory-heading > span { color: #444 !important; font-size: 9pt; }
    .sport-type-member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 8px; }
    .sport-type-member-card { min-height: 76px; gap: 8px; padding: 6px; border-color: #dce2dd; }
    .person-avatar.member-photo-avatar { width: 58px; height: 66px; }
    .sport-type-member-copy strong { color: #222 !important; font-size: 10pt; }
    .sport-type-member-copy small { color: #444 !important; font-size: 8pt; }
    .sport-type-member-card .sport-status-pill { padding: 2px 5px; color: #333 !important; font-size: 7.5pt; }
    .sport-type-empty { padding: 14px; color: #444 !important; }
}

/* Independent competition create/edit form */
.competition-form-page { max-width: 1440px; display: flex; flex-direction: column; gap: 15px; margin: 0 auto; }
.competition-form-header { min-height: 142px; margin: 0; }
.competition-form-header h1 { text-align: left; }
.competition-form-kind-badge { position: relative; z-index: 2; min-height: 50px; display: inline-flex; align-items: center; gap: 9px; padding: 0 15px; border: 1px solid #dcece4; border-radius: 15px; color: #527061; background: rgba(255,255,255,.84); font-size: 12px; font-weight: 650; white-space: nowrap; backdrop-filter: blur(8px); }
.competition-form-kind-badge svg { width: 18px; height: 18px; color: #087f6b; }
.competition-form-nav-row { display: flex; justify-content: flex-end; margin: -5px 4px 0; }
.competition-form-back-link { min-height: 40px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid #dce8e1; border-radius: 12px; color: #527061; background: #fff; font-size: 12px; font-weight: 600; text-decoration: none; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.competition-form-back-link svg { width: 16px; height: 16px; }
.competition-form-back-link:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.competition-form-error-summary { display: grid; gap: 3px; padding: 12px 15px; border: 1px solid #f0d7d2; border-radius: 13px; color: #a14d43; background: #fff8f6; font-size: 12px; }
.competition-form-error-summary strong { font-size: 13px; }
.competition-form-panel-v2 { width: 100%; max-width: none; overflow: hidden; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.competition-form-panel-v2 .sport-form-intro { min-height: 82px; gap: 13px; padding: 16px 23px; border-color: #e8f0ea; background: #fbfdfb; }
.competition-form-icon { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.competition-form-icon svg { width: 22px; height: 22px; }
.competition-form-panel-v2 .sport-form-intro h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 19px; font-weight: 600; }
.competition-form-record-id { margin-left: auto; padding: 7px 10px; border: 1px solid #dfebe4; border-radius: 10px; color: #71847a; background: #fff; font-family: Arial, sans-serif; font-size: 11px; font-weight: 650; }
.competition-form-v2 { padding: 24px 25px 20px; }
.competition-form-v2 .form-field { min-width: 0; gap: 8px; margin-bottom: 21px; }
.competition-form-v2 .form-field > label { color: #344d40; font-size: 13px; }
.competition-form-v2 .form-field > input,
.competition-form-v2 .form-field > textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid #dce8e1; border-radius: 12px; outline: 0; color: #344d40; background: #fff; font: inherit; font-size: 13px; transition: border-color .16s ease, box-shadow .16s ease; }
.competition-form-v2 .form-field > input[type="date"] { min-height: 48px; }
.competition-form-v2 .form-field > textarea { min-height: 155px; line-height: 1.7; resize: vertical; }
.competition-form-v2 .form-field > input:focus,
.competition-form-v2 .form-field > textarea:focus { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.competition-form-v2 .form-field > input::placeholder,
.competition-form-v2 .form-field > textarea::placeholder { color: #a1b0a7; }
.competition-form-v2 .field-help { color: #829188; font-size: 11.5px; }
.competition-form-v2 .field-error { color: #b55349; font-size: 11.5px; }
.competition-form-name-field { margin-bottom: 7px !important; }
.competition-form-grid-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.competition-form-full-field { grid-column: 1 / -1; }
.competition-form-details-field { margin-top: 0; }
.competition-form-actions { margin-top: 2px; padding-top: 18px; display: flex; justify-content: flex-end; align-items: center; gap: 10px; border-top: 1px solid #e8f0ea; }
.competition-form-cancel-button,
.competition-form-submit-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 18px; border: 1px solid transparent; border-radius: 14px; font-family: inherit; font-size: 13px; font-weight: 650; text-decoration: none; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease, background .16s ease; }
.competition-form-cancel-button { border-color: #dce8e1; color: #60766a; background: #fff; }
.competition-form-cancel-button svg { width: 17px; height: 17px; }
.competition-form-cancel-button:hover { transform: translateY(-1px); border-color: #c8dcd0; color: #315c47; background: #f8fbf8; }
.competition-form-submit-button { min-width: 176px; color: #fff; background: linear-gradient(135deg, #0a8972, #087663); box-shadow: 0 6px 15px rgba(8,127,107,.18); }
.competition-form-submit-button svg { width: 18px; height: 18px; padding: 3px; border: 1px solid rgba(255,255,255,.3); border-radius: 7px; }
.competition-form-submit-button:hover { transform: translateY(-1px); color: #fff; background: linear-gradient(135deg, #087663, #066b5a); box-shadow: 0 8px 18px rgba(8,127,107,.24); }
.competition-form-cancel-button:focus-visible,
.competition-form-submit-button:focus-visible,
.competition-form-back-link:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }

@media (max-width: 760px) {
    .competition-form-page { gap: 13px; }
    .competition-form-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 13px; padding: 20px; border-radius: 19px; }
    .competition-form-header h1 { font-size: 25px; }
    .competition-form-kind-badge { min-height: 42px; padding: 0 12px; border-radius: 13px; }
    .competition-form-nav-row { margin: -1px 0 0; }
    .competition-form-nav-row .competition-form-back-link { width: 100%; justify-content: center; }
    .competition-form-panel-v2 .sport-form-intro { min-height: 70px; padding: 13px 15px; }
    .competition-form-icon { width: 38px; height: 38px; }
    .competition-form-v2 { padding: 18px 15px 14px; }
    .competition-form-grid-v2 { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .competition-form-full-field { grid-column: auto; }
    .competition-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .competition-form-cancel-button,
    .competition-form-submit-button { width: 100%; min-height: 46px; }
}

/* ==========================================================================
   Dashboard Experience (athlete-dashboard.html Theme)
   ========================================================================== */
.dashboard-wrap {
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 1440px;
    margin: 0 auto;
}

/* Hero Banner */
.hero-banner {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    background: var(--accent);
    color: #ffffff;
    padding: 32px 36px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    box-shadow: var(--shadow);
}

.dashboard-hero {
    min-height: 280px;
    background-color: #123d34;
    background-image: linear-gradient(90deg, rgba(13, 43, 37, .88) 0%, rgba(13, 43, 37, .65) 42%, rgba(13, 43, 37, .16) 100%), url('../images/sports-coaches-banner.png');
    background-position: center, center 52%;
    background-size: cover, cover;
    background-repeat: no-repeat, no-repeat;
}

.hero-circle {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.c-yellow {
    right: -40px;
    top: -60px;
    width: 220px;
    height: 220px;
    background: var(--yellow);
}

.c-sky {
    right: 150px;
    bottom: -70px;
    width: 150px;
    height: 150px;
    background: var(--sky);
}

.c-coral {
    right: 40px;
    bottom: 28px;
    width: 56px;
    height: 56px;
    background: var(--coral);
}

.hero-content {
    position: relative;
    max-width: 580px;
    z-index: 2;
}

.hero-date {
    font-size: 14px;
    font-weight: 500;
    opacity: 0.95;
    margin-bottom: 2px;
}

.hero-content h1 {
    font-family: 'Prompt', sans-serif;
    font-weight: 600;
    font-size: 32px;
    line-height: 1.3;
    margin: 6px 0 8px;
    color: #ffffff;
}

.hero-content p {
    margin: 0;
    font-size: 16px;
    opacity: 0.92;
    line-height: 1.6;
}

.hero-btns {
    position: relative;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.btn-hero-solid {
    min-height: 46px;
    padding: 0 22px;
    border-radius: 23px;
    font-size: 15px;
    font-weight: 600;
    background: var(--yellow);
    color: var(--ink);
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: transform 0.15s ease, filter 0.15s ease;
}

.btn-hero-solid:hover {
    transform: translateY(-1px);
    filter: brightness(1.04);
}

.btn-hero-outline {
    min-height: 46px;
    padding: 0 22px;
    border-radius: 23px;
    font-size: 15px;
    font-weight: 600;
    border: 2px solid #ffffff;
    background: transparent;
    color: #ffffff;
    display: flex;
    align-items: center;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease;
}

.btn-hero-outline:hover {
    background: rgba(255, 255, 255, 0.15);
}

/* Shared Card */
.card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 24px;
    padding: 24px;
    box-shadow: var(--shadow);
    min-width: 0;
    box-sizing: border-box;
}

.card h3 {
    font-family: 'Prompt', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: var(--ink);
    margin: 0;
}

.card-subtitle {
    font-size: 13.5px;
    color: var(--muted);
    margin-top: 3px;
}

/* KPI Row & Cards */
.kpi-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.kpi-card {
    flex: 1 1 220px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px 22px;
    transition: transform 0.18s ease;
}

.kpi-card:hover {
    transform: translateY(-2px);
}

.kpi-head {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    color: var(--muted);
    font-weight: 500;
}

.kpi-icon-pill {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.kpi-val {
    font-family: 'Prompt', sans-serif;
    font-weight: 600;
    font-size: 36px;
    line-height: 1;
    color: var(--ink);
}

.kpi-val span {
    font-size: 15px;
    font-weight: 500;
    color: var(--muted);
}

.kpi-desc {
    font-size: 13.5px;
    font-weight: 500;
}

/* Layout Content Rows */
.content-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: stretch;
}

.col-left {
    flex: 1.5 1 420px;
}

.col-right {
    flex: 1 1 300px;
}

.roster-col {
    flex: 2.2 1 560px;
}

.side2-col {
    flex: 1 1 300px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

/* Sports Distribution Bars */
.bars-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 18px;
}

.bar-row {
    display: flex;
    align-items: center;
    gap: 14px;
}

.bar-name {
    flex: 0 0 104px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bar-track {
    flex: 1;
    min-width: 0;
    height: 14px;
    border-radius: 7px;
    background: #EEF4F0;
    overflow: hidden;
}

.bar-fill {
    height: 14px;
    border-radius: 7px;
    transition: width 0.5s ease;
}

.bar-count {
    flex: 0 0 32px;
    text-align: right;
    font-weight: 600;
    font-size: 14px;
    color: var(--ink);
}

.card-head-flex {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

/* Filter Chips */
.chips-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0;
}

.chip-btn {
    min-height: 44px;
    padding: 0 18px;
    border-radius: 22px;
    border: 1px solid var(--line2);
    background: #ffffff;
    color: var(--nav);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

.chip-btn:hover {
    background: rgba(255, 255, 255, 0.9);
    border-color: var(--accent);
}

.chip-btn.is-active {
    background: var(--accent);
    border-color: var(--accent);
    color: #ffffff;
}

/* Roster Table */
.tbl-wrap {
    overflow-x: auto;
}

.tbl-inner {
    min-width: 560px;
}

.tr-grid {
    display: grid;
    grid-template-columns: 2.4fr 1.3fr 1.7fr;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border-bottom: 1px solid #EEF4F0;
}

.tr-head {
    padding: 0 12px 10px;
    font-size: 13px;
    color: var(--muted);
    font-weight: 600;
    border-bottom: 1px solid #E4EEE8;
}

.who-cell {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.avatar-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 15px;
    flex-shrink: 0;
}

.av-athlete {
    background: #DDF3E8;
    color: #0B5E4D;
}

.av-coach {
    background: #FFF1C2;
    color: #7A4B00;
}

.who-meta {
    min-width: 0;
}

.who-meta b {
    font-weight: 600;
    font-size: 14.5px;
    display: block;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.who-meta small {
    font-size: 12.5px;
    color: var(--muted);
}

.sport-pill {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 14px;
    font-size: 13px;
    font-weight: 600;
    background: #DDF3E8;
    color: #0B5E4D;
}

.status-cell {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--ink);
}

.st-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.dot-active {
    background: #2FB67E;
}

.dot-inactive {
    background: #FF7A59;
}

.view-all-link {
    font-weight: 600;
    font-size: 14px;
    color: var(--accent);
    text-decoration: none;
    transition: color 0.15s ease;
}

.view-all-link:hover {
    color: #086152;
}

.competition-dashboard-card { display: flex; flex-direction: column; gap: 18px; }
.competition-dashboard-card .card-head-flex { flex-wrap: wrap; }
.competition-dashboard-card .card-head-flex > div:first-child { min-width: 0; }
.competition-dashboard-card .view-all-link { flex-shrink: 0; white-space: nowrap; }
.medal-dashboard-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.medal-dashboard-stat { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 8px; border-radius: 15px; }
.medal-dashboard-stat span { font-size: 12px; font-weight: 600; }
.medal-dashboard-stat strong { color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 24px; line-height: 1.1; }
.medal-gold-stat { background: #FFF1C2; color: #8A5A00; }
.medal-silver-stat { background: #EEF2F5; color: #586674; }
.medal-bronze-stat { background: #FFE1D9; color: #B4412B; }
.medal-sport-list { display: flex; flex-direction: column; }
.medal-sport-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 12px 0; border-top: 1px solid #EEF4F0; }
.medal-sport-row > strong { min-width: 0; color: var(--ink); font-size: 13.5px; }
.medal-sport-count { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 4px 8px; color: var(--muted); font-size: 11.5px; white-space: nowrap; }
.medal-count-gold { color: #8A5A00; }
.medal-count-silver { color: #586674; }
.medal-count-bronze { color: #B4412B; }
.dashboard-card-note { margin: 0; padding: 12px 0; color: var(--muted); font-size: 13px; }

/* Helper color classes */
.bg-green-light { background: #DDF3E8; }
.text-green { color: #0A7F6B; }
.bg-yellow-light { background: #FFF1C2; }
.text-yellow-dark { color: #8A5A00; }
.bg-sky-light { background: #DCEFFC; }
.text-sky-dark { color: #17567F; }
.bg-coral-light { background: #FFE1D9; }
.text-coral-dark { color: #B4412B; }
.text-muted { color: var(--muted); }

.bg-yellow { background: var(--yellow); color: var(--ink); }
.bg-sky { background: var(--sky); color: #0F2E44; }
.bg-coral { background: var(--coral); color: #3A1208; }

.empty-placeholder {
    padding: 24px;
    text-align: center;
    color: var(--muted);
}

.empty-table-row {
    padding: 28px;
    text-align: center;
    color: var(--muted);
}

.btn-link-action {
    display: inline-block;
    margin-top: 8px;
    color: var(--accent);
    font-weight: 600;
    text-decoration: none;
}



/* Physical education competition management */
.physical-competition-list-panel { padding-bottom: 3px; }
.physical-competition-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; padding: 16px; }
.physical-competition-card { min-width: 0; display: flex; flex-direction: column; padding: 16px; border: 1px solid #e7ede8; border-radius: 9px; background: linear-gradient(155deg, #fff, #fbfdfb); }
.physical-competition-card-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.physical-competition-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; background: #f8f1e2; font-size: 20px; }
.physical-competition-edition { padding: 5px 9px; border-radius: 20px; color: #4b795a; background: #eef6ef; font-size: 12px; font-weight: 650; }
.physical-competition-card h3 { margin: 14px 0 4px; color: #314739; font-size: 17px; font-weight: 650; }
.physical-competition-meta { min-height: 22px; margin: 0; color: #89968d; font-size: 12.5px; }
.physical-competition-card-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 15px 0 12px; padding: 10px 0; border-top: 1px solid #edf1ed; border-bottom: 1px solid #edf1ed; color: #67786d; font-size: 12px; }
.physical-competition-card-stats > span:first-child { margin-right: auto; font-weight: 600; }
.medal-mini { white-space: nowrap; font-size: 12px; font-weight: 600; }
.medal-gold { color: #a47b24; }
.medal-total { color: #7c712f; }
.medal-silver { color: #73818a; }
.medal-bronze { color: #a06c4b; }
.physical-competition-open { align-self: flex-start; margin-top: auto; }
.physical-competition-empty, .physical-no-competition-sports { min-height: 200px; grid-column: 1 / -1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; padding: 24px; text-align: center; color: #88968d; }
.physical-competition-empty > span, .physical-no-competition-sports > span { font-size: 31px; }
.physical-competition-empty strong, .physical-no-competition-sports strong { color: #405649; font-size: 17px; }
.physical-competition-empty p, .physical-no-competition-sports p { margin: 0 0 5px; font-size: 13px; }
.physical-form-panel { max-width: 870px; overflow: hidden; border: 1px solid #e7ede8; border-radius: 10px; background: #fff; box-shadow: 0 3px 12px rgba(33,54,43,.035); }
.physical-competition-form { padding: 21px; }
.physical-form-intro { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; padding-bottom: 17px; border-bottom: 1px solid #edf1ed; }
.physical-form-intro > div { display: grid; gap: 3px; }
.physical-form-intro strong { color: #354b3c; font-size: 16px; }
.physical-form-intro small { color: #86948a; font-size: 12.5px; }
.physical-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.physical-field, .physical-category-name, .physical-medal-input, .physical-category-note { min-width: 0; display: grid; align-content: start; gap: 6px; color: #52665a; font-size: 13px; font-weight: 600; }
.physical-field > span b { color: #c55246; }
.physical-field input, .physical-field textarea, .physical-add-sport-form select, .physical-category-name input, .physical-medal-input input, .physical-category-note input { width: 100%; min-width: 0; min-height: 43px; padding: 9px 11px; border: 1px solid #dce5dd; border-radius: 7px; outline: none; background: #fff; color: #354a3b; font: inherit; font-size: 13.5px; }
.physical-field textarea { min-height: 95px; resize: vertical; }
.physical-field input:focus, .physical-field textarea:focus, .physical-add-sport-form select:focus, .physical-category-name input:focus, .physical-medal-input input:focus, .physical-category-note input:focus { border-color: #6ca180; box-shadow: 0 0 0 3px rgba(91, 145, 108, .12); }
.physical-field-wide { grid-column: 1 / -1; }
.physical-field-error { color: #bb5147; font-size: 12px; font-weight: 500; }
.physical-form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 21px; padding-top: 16px; border-top: 1px solid #edf1ed; }
.physical-heading-actions { display: flex; align-items: center; gap: 9px; }
.physical-event-details { display: flex; flex-wrap: wrap; gap: 13px; margin: -5px 0 14px; padding: 13px 16px; border: 1px solid #e7ede8; border-radius: 8px; background: #fff; }
.physical-event-details > div { display: grid; gap: 3px; }
.physical-event-details small { color: #8a978e; font-size: 11.5px; }
.physical-event-details strong, .physical-event-details p { margin: 0; color: #53665a; font-size: 13px; }
.physical-validation-summary { margin: 0 0 14px; padding: 11px 14px; border: 1px solid #f0c8c3; border-radius: 7px; background: #fff6f5; color: #a7433c; font-size: 13px; }
.physical-legacy-medal-notice { margin: 0 0 14px; padding: 11px 14px; border: 1px solid #ead7a7; border-radius: 7px; background: #fffbef; color: #816b35; font-size: 12.5px; }
.physical-medal-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.physical-medal-summary-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.physical-medal-icon { width: 38px; height: 38px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 10px; background: #f8f6ee; font-size: 20px; }
.physical-medal-summary-image { width: 46px; height: 56px; display: flex; flex: 0 0 auto; align-items: center; justify-content: center; }
.physical-medal-summary-image img { display: block; width: 46px; height: 56px; object-fit: contain; }
.medal-icon-gold { background: #fbf4df; }
.medal-icon-total { background: #f7f3df; }
.medal-icon-silver { background: #f0f3f5; }
.medal-icon-bronze { background: #f8eee7; }
.medal-icon-sports { color: #4e8465; background: #edf6ef; font-size: 25px; }
.physical-add-sport-panel { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 0 0 20px; padding: 16px 18px; border: 1px solid #e5ece6; border-radius: 9px; background: #fff; }
.physical-add-sport-panel h2, .physical-section-heading h2 { margin: 3px 0 2px; color: #354a3c; font-size: 17px; font-weight: 650; }
.physical-add-sport-panel p { margin: 0; color: #87948b; font-size: 12.5px; }
.physical-add-sport-form { display: flex; flex: 0 1 475px; gap: 8px; }
.physical-add-sport-form select { flex: 1; }
.physical-no-sports { max-width: 320px; color: #8c7760 !important; text-align: right; }
.physical-add-sport-error { display: block; margin: -6px 0 0 auto; }
.physical-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 12px; margin-bottom: 11px; }
.physical-section-heading > span { color: #819087; font-size: 12.5px; }
.physical-section-heading-tools { display: flex; align-items: center; gap: 11px; }
.physical-section-heading-tools > span { color: #819087; font-size: 12.5px; white-space: nowrap; }
.physical-view-switch { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border: 1px solid #e3eae4; border-radius: 7px; background: #f8faf8; }
.physical-view-switch button { min-height: 31px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 5px 9px; border: 0; border-radius: 5px; background: transparent; color: #718078; font: inherit; font-size: 11.5px; cursor: pointer; }
.physical-view-switch button:hover { color: #3d7353; background: #eef5ef; }
.physical-view-switch button.is-active { background: #fff; color: #286342; box-shadow: 0 1px 3px rgba(38, 67, 48, .12); }
.physical-view-switch button:focus-visible { outline: 2px solid #4b8b64; outline-offset: 2px; }
.physical-sport-card { margin-bottom: 13px; overflow: hidden; border: 1px solid #e5ece6; border-radius: 9px; background: #fff; box-shadow: 0 2px 8px rgba(33,54,43,.025); }
.physical-sport-card-heading { min-height: 74px; display: flex; align-items: center; gap: 16px; padding: 12px 16px; border-bottom: 1px solid #edf1ed; background: #fcfdfc; }
.physical-sport-title { min-width: 0; display: flex; align-items: center; gap: 11px; margin-right: auto; }
.physical-sport-number { width: 36px; height: 36px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 9px; background: #edf5ef; color: #4c8261; font-size: 12px; font-weight: 700; }
.physical-sport-title h3 { margin: 0; color: #344a3c; font-size: 16px; font-weight: 650; }
.physical-sport-title small { color: #909c94; font-size: 11.5px; }
.physical-sport-medals { display: flex; flex-wrap: wrap; gap: 10px; }
.physical-remove-button, .physical-delete-category { padding: 6px 9px; border: 1px solid #ecd8d4; border-radius: 6px; background: #fff; color: #ad5b50; font: inherit; font-size: 11.5px; cursor: pointer; }
.physical-categories { padding: 14px 16px 2px; }
.physical-categories h4 { margin: 0 0 10px; color: #596c60; font-size: 13px; font-weight: 650; }
.physical-category-item { display: flex; align-items: end; gap: 7px; margin-bottom: 9px; padding: 10px; border: 1px solid #edf1ed; border-radius: 7px; background: #fff; }
.physical-category-form { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(170px, 1.55fr) repeat(3, minmax(68px, .55fr)) minmax(120px, 1fr) auto; align-items: end; gap: 8px; }
.physical-category-name > span, .physical-medal-input > span, .physical-category-note > span { color: #859289; font-size: 10.8px; font-weight: 550; }
.physical-category-name input, .physical-medal-input input, .physical-category-note input { min-height: 37px; padding: 7px 8px; font-size: 12.5px; }
.physical-medal-input { text-align: center; }
.physical-medal-input input { text-align: center; }
.medal-input-gold > span { color: #a47b24; }
.medal-input-silver > span { color: #73818a; }
.medal-input-bronze > span { color: #a06c4b; }
.physical-save-category { min-height: 37px; padding: 0 11px; border: 1px solid #d8e5da; border-radius: 6px; background: #f5faf5; color: #477656; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.physical-delete-category { flex: 0 0 auto; min-height: 37px; }
.physical-category-empty { margin: 0 0 12px; padding: 13px; border-radius: 6px; background: #f8faf8; color: #89958d; font-size: 12.5px; }
.physical-new-category-form { display: grid; grid-template-columns: minmax(170px, 1.55fr) repeat(3, minmax(68px, .55fr)) minmax(120px, 1fr) auto; align-items: end; gap: 8px; margin: 7px 16px 16px; padding: 12px; border: 1px dashed #dbe6dc; border-radius: 7px; background: #f9fbf9; }
.physical-new-category-heading { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 8px; }
.physical-new-category-heading strong { color: #4e6556; font-size: 12.5px; }
.physical-new-category-heading small { color: #909b93; font-size: 11.5px; }
.physical-no-competition-sports { margin-bottom: 14px; border: 1px dashed #dfe8e0; border-radius: 9px; background: #fff; }

@media (max-width: 1120px) {
    .dashboard-kpi-grid, .dashboard-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-main-columns, .dashboard-main-grid { grid-template-columns: minmax(0, 1fr); }
    .physical-competition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .physical-medal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .physical-category-form, .physical-new-category-form { grid-template-columns: minmax(170px, 1.5fr) repeat(3, minmax(70px, .55fr)) auto; }
    .physical-category-note { grid-column: 1 / 4; }
}
@media (max-width: 860px) {
    .dashboard-hero-header, .dashboard-header { align-items: flex-start; flex-direction: column; gap: 16px; }
    .hero-right, .dashboard-header-actions { width: 100%; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
    .dashboard-shortcuts-grid { grid-template-columns: 1fr; }
    .physical-competition-grid { grid-template-columns: 1fr; }
    .physical-add-sport-panel { align-items: stretch; flex-direction: column; }
    .physical-add-sport-form { flex-basis: auto; }
    .physical-no-sports { max-width: none; text-align: left; }
    .physical-sport-card-heading { align-items: flex-start; flex-wrap: wrap; }
    .physical-sport-medals { order: 3; width: 100%; padding-left: 47px; }
}
@media (max-width: 560px) {
    .hero-left h1, .dashboard-heading-copy h1 { font-size: 24px; }
    .hero-left p, .dashboard-heading-copy p { font-size: 13.5px; }
    .hero-right, .dashboard-header-actions { align-items: stretch; flex-direction: column; }
    .date-capsule, .dashboard-date-card { align-self: stretch; justify-content: center; }
    .btn-hero-action, .dashboard-manage-link { justify-content: center; }
    .dashboard-kpi-grid { grid-template-columns: 1fr; gap: 10px; }
    .kpi-card { padding: 16px 18px; }
    .kpi-number { font-size: 28px; }
    .dashboard-metrics { gap: 8px; }
    .dashboard-metric-card { min-height: 137px; padding: 12px; }
    .dashboard-metric-value { font-size: 24px; }
    .dashboard-metric-foot { font-size: 10.5px; }
    .card-header, .dashboard-panel-heading { padding: 14px 16px; }
    .card-header h2 { font-size: 16px; }
    .sports-bar-list, .readiness-list, .dashboard-chart-list, .dashboard-status-list { padding: 14px 16px; }
    .activity-table th, .activity-table td { padding: 10px 14px; font-size: 12.5px; }
    .dashboard-chart-row { grid-template-columns: minmax(85px, 1fr) minmax(35px, 1fr) 27px; gap: 7px; }
    .dashboard-chart-label strong { font-size: 11.8px; }
    .dashboard-chart-label span { font-size: 9.5px; }
    .dashboard-activity-list { padding: 0 10px; }
    .dashboard-activity-row { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 7px; padding: 7px 0; }
    .dashboard-activity-avatar { width: 34px; height: 34px; }
    .dashboard-activity-status { grid-column: 2; justify-self: start; margin-top: -4px; }
    .dashboard-activity-row time { grid-column: 3; grid-row: 2; align-self: start; }
    .dashboard-shortcuts, .dashboard-shortcuts-grid { grid-template-columns: 1fr; gap: 10px; }
    .physical-competition-form { padding: 15px; }
    .physical-form-grid { grid-template-columns: 1fr; gap: 12px; }
    .physical-field-wide { grid-column: auto; }
    .physical-heading-actions { width: 100%; flex-wrap: wrap; }
    .physical-heading-actions > a { flex: 1; justify-content: center; }
    .physical-medal-summary { grid-template-columns: 1fr 1fr; gap: 7px; }
    .physical-medal-summary .sport-summary-card { min-height: 65px; padding: 8px; }
    .physical-medal-icon { width: 32px; height: 32px; font-size: 17px; }
    .physical-add-sport-form { flex-direction: column; }
    .physical-add-sport-form .button-primary { justify-content: center; }
    .physical-sport-card-heading { gap: 9px; padding: 11px; }
    .physical-remove-button { margin-left: auto; }
    .physical-categories { padding: 12px 11px 2px; }
    .physical-category-item { align-items: stretch; flex-direction: column; }
    .physical-category-form, .physical-new-category-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .physical-category-name, .physical-category-note { grid-column: 1 / -1; }
    .physical-save-category, .physical-delete-category { min-height: 40px; }
    .physical-new-category-form { margin: 7px 11px 12px; padding: 10px; }
    .physical-new-category-heading { grid-column: 1 / -1; align-items: flex-start; flex-direction: column; gap: 2px; }
    .physical-new-category-form > .button-primary { grid-column: 1 / -1; justify-content: center; }
}

.physical-add-sport-details { margin: 0 0 17px; border: 1px solid #e5ece6; border-radius: 8px; background: #fff; }
.physical-add-sport-details > summary, .physical-add-medal-details > summary, .physical-edit-award-details > summary { padding: 12px 15px; color: #4c7d5d; font-size: 13px; font-weight: 650; cursor: pointer; list-style: none; }
.physical-add-sport-details > summary::-webkit-details-marker, .physical-add-medal-details > summary::-webkit-details-marker, .physical-edit-award-details > summary::-webkit-details-marker { display: none; }
.physical-add-sport-details > summary::after, .physical-add-medal-details > summary::after, .physical-edit-award-details > summary::after { content: '⌄'; float: right; color: #789180; }
.physical-add-sport-details[open] > summary, .physical-add-medal-details[open] > summary, .physical-edit-award-details[open] > summary { border-bottom: 1px solid #edf1ed; }
.physical-add-sport-body { padding: 0 15px 13px; }
.physical-add-sport-body > p { margin: 0 0 9px; color: #89968d; font-size: 12.5px; }
.physical-competition-sport-list { display: grid; gap: 8px; }
.physical-competition-sport-row { min-width: 0; min-height: 76px; display: grid; grid-template-columns: 38px minmax(150px, 1fr) auto auto; align-items: center; gap: 13px; padding: 11px 15px; border: 1px solid #e5ece6; border-radius: 8px; background: #fff; color: inherit; text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.physical-competition-sport-row:hover { transform: translateY(-1px); border-color: #c9dccd; box-shadow: 0 4px 12px rgba(38,70,48,.06); }
.physical-competition-sport-name { min-width: 0; display: grid; gap: 3px; }
.physical-competition-sport-name strong { overflow: hidden; color: #344a3c; font-size: 15px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.physical-competition-sport-name small { color: #8d9991; font-size: 11.5px; }
.physical-sport-row-action { color: #5c8466; font-size: 12px; white-space: nowrap; }
.physical-sport-row-action b { margin-left: 4px; font-size: 16px; font-weight: 500; }
.physical-add-category-panel { display: grid; grid-template-columns: minmax(200px, .65fr) minmax(0, 1.35fr); align-items: center; gap: 18px; margin: 0 0 17px; padding: 15px 17px; border: 1px solid #e5ece6; border-radius: 9px; background: #fff; }
.physical-add-category-panel h2 { margin: 3px 0 2px; color: #354a3c; font-size: 16px; }
.physical-add-category-panel p { margin: 0; color: #89968d; font-size: 12px; }
.physical-add-category-form { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(130px, 1.1fr) auto; align-items: end; gap: 8px; }
.physical-event-card { margin-bottom: 13px; overflow: hidden; border: 1px solid #e5ece6; border-radius: 9px; background: #fff; box-shadow: 0 2px 8px rgba(33,54,43,.025); }
.physical-event-card-heading { display: flex; align-items: end; gap: 8px; padding: 13px 15px; border-bottom: 1px solid #edf1ed; background: #fcfdfc; }
.physical-event-edit-form { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(150px, 1fr) minmax(140px, 1.2fr) auto; align-items: end; gap: 8px; }
.physical-event-edit-form label { display: grid; gap: 5px; color: #859289; font-size: 11px; }
.physical-event-edit-form input { width: 100%; min-height: 37px; padding: 7px 9px; border: 1px solid #dce5dd; border-radius: 6px; outline: none; color: #354a3b; font: inherit; font-size: 12.5px; }
.physical-event-edit-form input:focus { border-color: #6ca180; box-shadow: 0 0 0 3px rgba(91,145,108,.12); }
.physical-event-medals { display: grid; gap: 9px; padding: 12px 15px; }
.physical-category-empty { margin: 0; padding: 12px; border-radius: 6px; background: #f8faf8; color: #89958d; font-size: 12.5px; }
.physical-award-card { overflow: hidden; border: 1px solid #edf1ed; border-radius: 7px; background: #fff; }
.physical-award-heading { min-height: 48px; display: flex; align-items: center; gap: 11px; padding: 7px 11px; border-bottom: 1px solid #f0f3f0; background: #fbfcfb; }
.physical-award-heading > span { margin-right: auto; color: #8b978f; font-size: 11.5px; }
.physical-pending-medal-badge { color: #896f30 !important; }
.physical-award-label { padding: 5px 9px; border-radius: 5px; font-size: 12px; white-space: nowrap; }
.medal-type-gold { color: #997521; background: #fbf4df; }
.medal-type-silver { color: #687781; background: #eff2f4; }
.medal-type-bronze { color: #9b6846; background: #f8eee7; }
.physical-award-body { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 16px 12px 12px; }
.physical-medal-emblem { width: 82px; height: 110px; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; }
.physical-medal-emblem img { display: block; width: 82px; height: 110px; object-fit: contain; filter: drop-shadow(0 3px 2px rgba(34, 52, 40, .15)); }
.physical-award-body > .physical-award-label { padding: 5px 10px; }
.physical-award-recipients { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 11px; padding: 4px 4px 2px; }
.physical-award-recipient { width: 136px; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 9px 7px; border: 1px solid #edf1ed; border-radius: 8px; background: #fff; text-align: center; }
.physical-award-recipient strong { max-width: 100%; color: #4a5e51; font-size: 13px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.physical-edit-award-details { border-top: 1px solid #f0f3f0; background: #fcfdfc; }
.physical-edit-award-details > summary { padding: 9px 12px; font-size: 11.5px; }
.physical-medal-form { display: grid; gap: 12px; padding: 13px; }
.physical-medal-type-field { max-width: 300px; }
.physical-medal-quantity-field { max-width: 150px; }
.physical-medal-type-field select { width: 100%; min-height: 41px; padding: 8px 10px; border: 1px solid #dce5dd; border-radius: 7px; outline: none; background: #fff; color: #354a3b; font: inherit; font-size: 13px; }
.physical-medal-type-field select:focus { border-color: #6ca180; box-shadow: 0 0 0 3px rgba(91,145,108,.12); }
.physical-medal-athlete-picker { display: grid; gap: 8px; }
.physical-athlete-picker-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.physical-athlete-picker-heading > div { display: grid; gap: 2px; }
.physical-athlete-picker-heading strong { color: #4d6255; font-size: 12.5px; }
.physical-athlete-picker-heading small { color: #929d95; font-size: 11px; }
.physical-athlete-picker-heading > span { color: #4d8060; font-size: 11.5px; font-weight: 650; white-space: nowrap; }
.physical-athlete-search { width: min(100%, 380px); min-height: 37px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid #dce5dd; border-radius: 6px; color: #819187; background: #fff; }
.physical-athlete-search > span { font-size: 19px; line-height: 1; }
.physical-athlete-search input { width: 100%; min-width: 0; border: 0; outline: 0; color: #3c5143; font: inherit; font-size: 12.5px; }
.physical-athlete-choice-grid { max-height: 245px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; overflow: auto; padding: 2px; }
.physical-athlete-choice[hidden], .physical-athlete-no-results[hidden], .physical-athlete-selection-error[hidden] { display: none !important; }
.physical-athlete-choice { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid #e7ede8; border-radius: 6px; background: #fff; cursor: pointer; }
.physical-athlete-choice:has(input:checked) { border-color: #8fbd98; background: #f2f8f2; }
.physical-athlete-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.physical-athlete-choice > input:focus-visible + .person-avatar { outline: 2px solid #4b8b64; outline-offset: 2px; }
.physical-athlete-choice-copy { min-width: 0; flex: 1; display: grid; gap: 2px; }
.physical-athlete-choice-copy strong { overflow: hidden; color: #4d6054; font-size: 11.5px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.physical-athlete-choice-copy small { overflow: hidden; color: #929d95; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.physical-athlete-check { width: 18px; height: 18px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid #d8e2d9; border-radius: 4px; color: transparent; font-size: 12px; }
.physical-athlete-choice:has(input:checked) .physical-athlete-check { border-color: #4d8b63; background: #4d8b63; color: #fff; }
.physical-athlete-no-results, .physical-athlete-selection-error { margin: 0; color: #a34e45; font-size: 11.5px; }
.physical-no-athletes-note { margin: 0; padding: 11px 14px; color: #8b7b63; background: #fbf8f0; font-size: 12px; }
.physical-add-medal-details { border-top: 1px solid #edf1ed; background: #fcfdfc; }
.physical-add-medal-details > summary { padding: 11px 14px; }
.physical-add-medal-details .physical-medal-form > .button-primary, .physical-edit-award-details .physical-medal-form > .button-primary { justify-self: start; }
.physical-category-summary-list { display: grid; gap: 9px; }
.physical-category-summary-card { display: block; padding: 13px 15px; border: 1px solid #e5ece6; border-radius: 8px; background: #fff; color: inherit; text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.physical-category-summary-card:hover { transform: translateY(-1px); border-color: #c9dccd; box-shadow: 0 4px 12px rgba(38,70,48,.06); }
.physical-category-summary-heading { display: flex; align-items: center; gap: 11px; }
.physical-category-summary-name { min-width: 0; flex: 1; display: grid; gap: 3px; }
.physical-category-summary-name strong { overflow: hidden; color: #344a3c; font-size: 14px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.physical-category-summary-name small { overflow: hidden; color: #8b978f; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.physical-category-summary-awards { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 11px 0 0 47px; }
.physical-category-summary-award { min-width: 230px; flex: 1 1 260px; max-width: 430px; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 13px 10px 10px; border: 1px solid #edf1ed; border-radius: 8px; background: #fcfdfc; text-align: center; }
.physical-summary-recipients { width: 100%; min-width: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; }
.physical-summary-recipient { width: 126px; max-width: 100%; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 6px; border: 1px solid #edf1ed; border-radius: 8px; background: #fff; }
.physical-summary-recipient > strong { max-width: 100%; color: #53665a; font-size: 12px; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.physical-medal-athlete .person-avatar.member-photo-avatar { width: 104px; height: 118px; border-radius: 9px; }
.physical-category-summary-list.is-list-view { display: flex; flex-direction: column; gap: 0; overflow: hidden; border: 1px solid #e5ece6; border-radius: 8px; background: #fff; }
.physical-category-summary-list.is-list-view > .physical-category-summary-card { display: grid; grid-template-columns: 38px minmax(155px, .28fr) minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border: 0; border-bottom: 1px solid #edf1ed; border-radius: 0; box-shadow: none; }
.physical-category-summary-list.is-list-view > .physical-category-summary-card:last-of-type { border-bottom: 0; }
.physical-category-summary-list.is-list-view > .physical-category-summary-card:hover { transform: none; background: #fcfdfc; box-shadow: none; }
.physical-category-summary-list.is-list-view .physical-category-summary-heading { display: contents; }
.physical-category-summary-list.is-list-view .physical-category-summary-heading > .physical-sport-number { grid-column: 1; grid-row: 1; }
.physical-category-summary-list.is-list-view .physical-category-summary-name { grid-column: 2; grid-row: 1; }
.physical-category-summary-list.is-list-view .physical-category-summary-heading .physical-sport-row-action { grid-column: 4; grid-row: 1; align-self: start; justify-self: end; margin-top: 2px; white-space: nowrap; }
.physical-category-summary-list.is-list-view .physical-category-summary-awards { grid-column: 3; grid-row: 1; flex-wrap: nowrap; justify-content: flex-start; gap: 8px; min-width: 0; margin: 0; overflow-x: auto; }
.physical-category-summary-list.is-list-view .physical-category-summary-award { min-width: 310px; flex: 1 0 310px; max-width: none; display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; justify-items: center; gap: 3px 9px; padding: 7px 9px; background: #fff; }
.physical-category-summary-list.is-list-view .physical-medal-emblem { width: 82px; height: 74px; grid-column: 1; grid-row: 1; }
.physical-category-summary-list.is-list-view .physical-medal-emblem img { width: 55px; height: 72px; }
.physical-category-summary-list.is-list-view .physical-category-summary-award > .physical-award-label { grid-column: 1; grid-row: 2; }
.physical-category-summary-list.is-list-view .physical-category-summary-award > .physical-pending-medal-badge { grid-column: 2; grid-row: 1 / span 2; justify-self: start; }
.physical-category-summary-list.is-list-view .physical-summary-recipients { gap: 5px; }
.physical-category-summary-list.is-list-view .physical-category-summary-award > .physical-summary-recipients { grid-column: 2; grid-row: 1 / span 2; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; }
.physical-category-summary-list.is-list-view .physical-summary-recipient { width: 88px; gap: 4px; padding: 5px 4px; }
.physical-category-summary-list.is-list-view .physical-medal-athlete .person-avatar.member-photo-avatar { width: 58px; height: 66px; border-radius: 6px; }
.physical-category-summary-list.is-list-view .physical-summary-recipient > strong { font-size: 10.5px; }
.physical-category-summary-list.is-list-view .physical-pending-medal-badge { font-size: 11px; }
.physical-no-medals-label { color: #909b94; font-size: 11.5px; }
.physical-edit-category-details { position: relative; }
.physical-edit-category-details > summary { list-style: none; cursor: pointer; }
.physical-edit-category-details > summary::-webkit-details-marker { display: none; }
.physical-edit-category-popover { width: min(540px, calc(100vw - 40px)); position: absolute; z-index: 12; top: calc(100% + 8px); right: 0; display: grid; gap: 11px; padding: 13px; border: 1px solid #e4ebe5; border-radius: 8px; background: #fff; box-shadow: 0 12px 30px rgba(33,54,43,.14); }
.physical-edit-category-form { grid-template-columns: 1fr 1fr auto; }
.physical-edit-category-popover > form:last-child { justify-self: end; }
.physical-category-awards-section { display: grid; gap: 10px; }
.physical-award-detail-card { margin-bottom: 0; }
.physical-no-category-medals { min-height: 160px; margin: 0; }

@media (max-width: 800px) {
    .physical-add-category-panel { grid-template-columns: 1fr; gap: 12px; }
    .physical-competition-sport-row { grid-template-columns: 36px minmax(130px,1fr) auto; }
    .physical-competition-sport-row > .physical-sport-medals { grid-column: 2 / -1; width: auto; padding-left: 0; }
    .physical-sport-row-action { grid-column: 2 / -1; justify-self: end; margin-top: -6px; }
}
@media (max-width: 560px) {
    .physical-competition-sport-row { grid-template-columns: 32px minmax(0,1fr); gap: 9px; padding: 10px; }
    .physical-competition-sport-row > .physical-sport-medals { grid-column: 1 / -1; order: 3; padding-left: 0; }
    .physical-sport-row-action { grid-column: 1 / -1; order: 4; justify-self: end; margin: -3px 0 0; }
    .physical-add-category-form { grid-template-columns: 1fr; }
    .physical-add-category-form > .button-primary { justify-content: center; }
    .physical-event-card-heading { align-items: stretch; flex-direction: column; }
    .physical-event-edit-form { grid-template-columns: 1fr; }
    .physical-event-card-heading > form:last-child { align-self: flex-end; }
    .physical-award-heading { flex-wrap: wrap; }
    .physical-award-heading > span { order: 3; width: 100%; }
    .physical-award-recipient { width: 125px; }
    .physical-athlete-choice-grid { grid-template-columns: 1fr; }
    .physical-athlete-picker-heading { align-items: flex-start; flex-direction: column; }
    .physical-category-summary-card { padding: 11px; }
    .physical-category-summary-heading { gap: 8px; }
    .physical-category-summary-heading .physical-sport-number { width: 32px; height: 32px; }
    .physical-category-summary-awards { margin-left: 0; }
    .physical-category-summary-award { min-width: min(100%, 230px); }
    .physical-medal-athlete .person-avatar.member-photo-avatar { width: 86px; height: 98px; }
    .physical-summary-recipient { width: 112px; }
    .physical-sport-events-section .physical-section-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
    .physical-section-heading-tools { width: 100%; justify-content: space-between; }
    .physical-category-summary-list.is-list-view > .physical-category-summary-card { grid-template-columns: 32px minmax(0, 1fr) auto; gap: 9px; padding: 11px; }
    .physical-category-summary-list.is-list-view .physical-category-summary-heading > .physical-sport-number { grid-column: 1; grid-row: 1; }
    .physical-category-summary-list.is-list-view .physical-category-summary-name { grid-column: 2; grid-row: 1; }
    .physical-category-summary-list.is-list-view .physical-category-summary-heading .physical-sport-row-action { grid-column: 3; grid-row: 1; }
    .physical-category-summary-list.is-list-view .physical-category-summary-awards { grid-column: 1 / -1; grid-row: 2; }
    .physical-category-summary-list.is-list-view .physical-category-summary-award { min-width: 300px; flex-basis: 300px; grid-template-columns: 88px minmax(0, 1fr); }
    .physical-category-summary-list.is-list-view .physical-medal-emblem { width: 60px; height: 66px; }
    .physical-category-summary-list.is-list-view .physical-medal-emblem img { width: 48px; height: 64px; }
    .physical-category-summary-list.is-list-view .physical-summary-recipient { width: 78px; }
    .physical-category-summary-list.is-list-view .physical-medal-athlete .person-avatar.member-photo-avatar { width: 52px; height: 60px; }
    .physical-category-summary-heading .physical-sport-row-action { font-size: 0; }
    .physical-category-summary-heading .physical-sport-row-action b { font-size: 17px; }
    .physical-edit-category-details { position: static; }
    .physical-edit-category-popover { position: fixed; top: 50%; right: 16px; left: 16px; width: auto; transform: translateY(-50%); }
    .physical-edit-category-form { grid-template-columns: 1fr; }
}
@media (max-width: 1120px) {
    .physical-medal-summary-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Athlete status directory */
.sport-status-pill.is-left { border-color: #efd8d4; color: #a45b51; background: #fff5f3; }
.sport-status-pill.is-left > span { background: #c87569; }
.sport-status-pill.is-graduated { border-color: #deddf0; color: #6b6595; background: #f5f4fb; }
.sport-status-pill.is-graduated > span { background: #8b83bd; }
.athlete-history-notice { margin: 0 0 14px; padding: 12px 15px; border: 1px solid #e3eadf; border-radius: 8px; background: #f7faf5; color: #647b62; font-size: 13px; line-height: 1.6; }
.athlete-history-status { color: #89968e; font-size: 10.8px; line-height: 1.35; }
.athlete-directory-panel { overflow: hidden; }
.athlete-status-tabs { display: flex; gap: 6px; overflow-x: auto; padding: 11px 17px; border-bottom: 1px solid #edf0ed; background: #fff; }
.athlete-status-tabs a { min-height: 34px; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid #e8ede9; border-radius: 20px; color: #748278; background: #fff; font-size: 12.5px; text-decoration: none; }
.athlete-status-tabs a b { color: #8a978e; font-size: 11.5px; font-weight: 650; }
.athlete-status-tabs a:hover, .athlete-status-tabs a.is-active { border-color: #cfe0d2; color: #326b49; background: #f1f7f1; }
.athlete-status-tabs a.is-active b { color: #326b49; }
.athlete-directory-page { max-width: 1440px; display: flex; flex-direction: column; gap: 20px; margin: 0 auto; }
.athlete-directory-hero { min-height: 190px; flex-direction: row; justify-content: flex-start; align-items: center; gap: 24px; padding: 32px 38px; }
.athlete-directory-hero .hero-content { max-width: 680px; }
.athlete-directory-hero .hero-date { font-family: Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.athlete-directory-toolbar { min-height: 90px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.athlete-directory-summary { min-width: 0; display: flex; align-items: center; gap: 13px; }
.athlete-directory-summary-icon { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 16px; color: var(--accent); background: #eaf5ee; }
.athlete-directory-summary-icon svg { width: 24px; height: 24px; }
.athlete-directory-summary-copy { display: grid; gap: 1px; }
.athlete-directory-summary-copy > span { color: var(--muted); font-size: 12px; }
.athlete-directory-summary-copy strong { color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 24px; font-weight: 600; line-height: 1.15; }
.athlete-directory-summary-copy strong small { font-family: 'Noto Sans Thai', sans-serif; font-size: 12px; font-weight: 500; }
.athlete-directory-summary-copy > small { color: #819087; font-size: 11.5px; }
.athlete-directory-toolbar .btn-hero-solid { min-height: 48px; padding: 0 20px; border-radius: 15px; flex: 0 0 auto; }
.athlete-directory-page .athlete-directory-notice { min-height: 62px; display: flex; align-items: center; gap: 12px; margin: 0; padding: 13px 17px; border-color: #dcebe0; border-radius: 18px; color: #536e5c; background: #f0f7f1; font-size: 13px; }
.athlete-directory-notice p { margin: 0; }
.athlete-directory-notice-icon { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; color: #39775a; background: #dceee0; }
.athlete-directory-notice-icon svg { width: 19px; height: 19px; }
.athlete-directory-page .athlete-directory-panel { border-color: var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); }
.athlete-directory-page .list-panel-heading { min-height: 82px; padding: 17px 22px; border-color: var(--line); }
.athlete-directory-page .list-panel-heading h2 { color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 20px; }
.athlete-directory-page .list-total { padding: 7px 11px; border: 1px solid var(--line); border-radius: 13px; background: var(--bg); }
.athlete-directory-page .list-total b { color: var(--accent); }
.athlete-directory-page .athlete-status-tabs { min-width: 0; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: 8px; overflow-x: auto; padding: 13px 20px; border-color: var(--line); background: #fff; scrollbar-width: thin; }
.athlete-directory-page .athlete-status-tabs a { width: max-content; min-height: 44px; display: inline-flex; flex: 0 0 auto; align-self: auto; align-items: center; gap: 9px; padding: 7px 13px; border-color: transparent; border-radius: 14px; color: var(--muted); background: transparent; font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: border-color .16s ease, color .16s ease, background .16s ease, box-shadow .16s ease; }
.athlete-directory-page .athlete-status-tabs a b { min-width: 27px; height: 25px; display: grid; place-items: center; padding: 0 6px; border-radius: 9px; color: #687d70; background: var(--bg); font-size: 11.5px; font-weight: 650; }
.athlete-directory-page .athlete-status-tabs a:hover { border-color: #dcebe0; color: #256b54; background: #f3f8f4; }
.athlete-directory-page .athlete-status-tabs a.is-active { border-color: var(--accent); color: #fff; background: var(--accent); box-shadow: 0 5px 12px rgba(10,127,107,.15); }
.athlete-directory-page .athlete-status-tabs a.is-active b { color: #fff; background: rgba(255,255,255,.18); }
.athlete-directory-page .athlete-status-tabs a:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.athlete-directory-page .athlete-directory-filters { min-height: 0; gap: 10px; padding: 15px 20px; border-color: var(--line); background: #fbfdfb; }
.athlete-directory-page .athlete-directory-filters .sport-search { min-height: 46px; border-radius: 14px; }
.athlete-directory-page .athlete-directory-filters .sport-search input { height: 42px; font-size: 13.5px; }
.athlete-directory-page .athlete-directory-filters .athlete-sport-filter { flex: 0 1 255px; }
.athlete-directory-page .athlete-directory-filters .athlete-sport-filter select { min-height: 46px; padding: 0 13px; border-radius: 14px; font-size: 13.5px; }
.athlete-directory-page .athlete-directory-filters .filter-submit { min-height: 46px; padding: 0 18px; border-color: var(--accent); border-radius: 14px; color: #fff; background: var(--accent); font-size: 13.5px; }
.athlete-directory-page .athlete-directory-filters .filter-submit:hover { border-color: #086b5a; background: #086b5a; }
.athlete-directory-page .athlete-directory-filters .filter-reset { padding: 10px 12px; border-radius: 12px; color: #61766a; background: #f0f6f1; text-decoration: none; }
.athlete-directory-page .athlete-directory-filters .filter-reset:hover { color: #a14d43; background: #fff2ef; }
.athlete-directory-page .athlete-directory-name strong { color: var(--ink); font-size: 13.5px; }
.athlete-directory-page .sport-table thead { background: #f5f9f6; }
.athlete-directory-page .sport-table th { height: 46px; padding-right: 15px; padding-left: 15px; color: #718278; }
.athlete-directory-page .sport-table td { padding-right: 15px; padding-left: 15px; }
.athlete-directory-page .sport-list-footer { min-height: 60px; padding: 10px 20px; border-color: var(--line); background: #fff; }
.athlete-directory-filters .sport-search { width: auto; flex: 1 1 260px; }
.athlete-sport-filter { min-width: 0; display: flex; align-items: center; flex: 0 1 245px; }
.athlete-sport-filter select { width: 100%; min-height: 36px; padding: 0 10px; border: 1px solid #e2e9e3; border-radius: 6px; outline: 0; background: #fff; color: #3f5146; font: inherit; font-size: 13px; }
.athlete-sport-filter select:focus { border-color: #70a58d; box-shadow: 0 0 0 3px rgba(45, 120, 101, .08); }
.athlete-directory-name { min-width: 0; display: grid; gap: 2px; }
.athlete-directory-name strong { color: #43574a; font-size: 13px; font-weight: 650; }
.athlete-directory-name small { color: #8d9991; font-size: 11.5px; }
.athlete-directory-table { min-width: 920px; }
.athlete-directory-form-panel { max-width: 920px; }
.athlete-directory-form .form-field > select { width: 100%; min-height: 43px; padding: 8px 11px; border: 1px solid #dfe7e1; border-radius: 7px; outline: 0; color: #34473a; background: #fff; font: inherit; font-size: 15.8px; }
.athlete-directory-form .form-field > select:focus { border-color: #75a58d; box-shadow: 0 0 0 3px rgba(45, 120, 101, .08); }
.athlete-directory-form .form-field { margin-bottom: 18px; }
.athlete-source-profile { display: flex; align-items: center; gap: 13px; margin: 0 0 18px; padding: 12px; border: 1px solid #e8ede9; border-radius: 8px; background: #fbfdfb; }
.athlete-source-profile .person-avatar { width: 58px; height: 66px; flex: 0 0 auto; border-radius: 7px; }
.athlete-source-profile > div { min-width: 0; display: grid; gap: 3px; }
.athlete-source-profile strong { color: #405448; font-size: 14px; }
.athlete-source-profile span:not(.person-avatar):not(.person-avatar-fallback) { color: #718176; font-size: 12px; }
.athlete-source-profile small, .athlete-source-profile p { color: #929d95; font-size: 11.5px; }
.athlete-source-profile p { margin: 0 0 0 auto; text-align: right; }
.athlete-directory-basic-fields { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 16px; }
.athlete-directory-basic-fields .form-field { min-width: 0; }
.athlete-status-field { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, 245px); grid-template-areas: 'copy label' 'copy select' 'copy error'; align-items: center; gap: 4px 14px; }
.athlete-status-field .status-form-copy { grid-area: copy; }
.athlete-status-select-label { grid-area: label; color: #4b5c51; font-size: 12px; font-weight: 650; }
.athlete-status-field > select { grid-area: select; width: 100%; min-height: 39px; padding: 7px 10px; border: 1px solid #dfe7e1; border-radius: 7px; outline: 0; background: #fff; color: #34473a; font: inherit; font-size: 14px; }
.athlete-status-field > select:focus { border-color: #75a58d; box-shadow: 0 0 0 3px rgba(45, 120, 101, .08); }
.athlete-status-field > .field-error { grid-area: error; }

@media (max-width: 700px) {
    .athlete-directory-basic-fields { grid-template-columns: 1fr; gap: 0; }
    .athlete-source-profile { align-items: flex-start; flex-wrap: wrap; }
    .athlete-source-profile p { width: 100%; margin-left: 71px; text-align: left; }
}

/* Sport type form controls refinement */
.sport-type-form-v2 .status-form-field { grid-column: 1 / -1; margin-bottom: 0; }
.sport-type-form-v2 .sport-type-description-field { margin-bottom: 18px; }
.sport-type-form-v2 .sport-form-actions { justify-content: flex-end; }
.sport-type-action-buttons { display: flex; align-items: center; gap: 10px; }
.sport-type-cancel-button,
.sport-type-save-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 18px; border: 1px solid transparent; border-radius: 14px; font-family: inherit; font-size: 13px; font-weight: 650; text-decoration: none; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease, background .16s ease; }
.sport-type-cancel-button { border-color: #dce8e1; color: #60766a; background: #fff; }
.sport-type-cancel-button svg { width: 17px; height: 17px; }
.sport-type-cancel-button:hover { transform: translateY(-1px); border-color: #c8dcd0; color: #315c47; background: #f8fbf8; }
.sport-type-save-button { min-width: 176px; color: #fff; background: linear-gradient(135deg, #0a8972, #087663); box-shadow: 0 6px 15px rgba(8,127,107,.18); }
.sport-type-save-button svg { width: 18px; height: 18px; padding: 3px; border: 1px solid rgba(255,255,255,.3); border-radius: 7px; }
.sport-type-save-button:hover { transform: translateY(-1px); color: #fff; background: linear-gradient(135deg, #087663, #066b5a); box-shadow: 0 8px 18px rgba(8,127,107,.24); }
.sport-type-cancel-button:focus-visible,
.sport-type-save-button:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }

@media (max-width: 760px) {
    .sport-type-form-v2 .status-form-field { margin-bottom: 0; }
    .sport-type-form-v2 .sport-type-description-field { margin-bottom: 18px; }
    .sport-type-form-v2 .sport-form-actions { align-items: stretch; }
    .sport-type-action-buttons { width: 100%; flex-direction: column-reverse; }
    .sport-type-cancel-button,
    .sport-type-save-button { width: 100%; min-height: 46px; }
}

@media (max-width: 560px) {
    .athlete-status-tabs { padding: 9px 10px; }
    .athlete-directory-filters .sport-search, .athlete-sport-filter { flex-basis: 100%; }
    .athlete-status-field { grid-template-columns: 1fr; grid-template-areas: 'copy' 'label' 'select' 'error'; }
    .athlete-status-select-label { margin-top: 3px; }
}

@media (max-width: 1280px) {
    .athlete-directory-hero { min-height: 0; align-items: flex-start; flex-direction: column; padding: 30px; }
}

@media (max-width: 560px) {
    .athlete-directory-hero { padding: 24px 20px; border-radius: 22px; }
    .athlete-directory-hero .hero-content h1 { font-size: 27px; }
    .athlete-directory-toolbar { align-items: stretch; flex-direction: column; padding: 14px; }
    .athlete-directory-toolbar .btn-hero-solid { width: 100%; justify-content: center; }
    .athlete-directory-notice { align-items: flex-start; padding: 13px; }
    .athlete-directory-notice-icon { margin-top: 1px; }
    .athlete-directory-page .list-panel-heading { min-height: 72px; padding: 14px; }
    .athlete-directory-page .athlete-status-tabs { padding: 10px 12px; }
    .athlete-directory-page .athlete-directory-filters { align-items: stretch; padding: 13px; }
    .athlete-directory-page .athlete-directory-filters .filter-submit { flex: 1 1 auto; }
    .athlete-directory-page .sport-list-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 13px; }
    .athlete-directory-page .sport-list-footer .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Athlete competition and training history */
.athlete-directory-actions { display: flex; justify-content: center; align-items: center; gap: 8px; }
.athlete-history-link { color: #397760; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.athlete-history-link:hover { color: #245943; text-decoration: underline; }
.athlete-history-flash { margin: 0 0 14px; padding: 10px 13px; border: 1px solid #d6eadc; border-radius: 7px; color: #417050; background: #f2f9f3; font-size: 13.5px; }
.athlete-history-section { margin-top: 24px; }
.athlete-history-section-heading { align-items: center; }
.athlete-history-section-heading h2 { margin: 3px 0 2px; color: #354a3c; font-size: 19px; font-weight: 650; }
.athlete-history-section-heading p { margin: 3px 0 0; color: #8c9990; font-size: 12.8px; }
.athlete-history-section-heading > span { color: #819087; font-size: 12.8px; white-space: nowrap; }
.athlete-history-profile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.athlete-profile-medal-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 12px; }
.athlete-profile-medal-summary .sport-summary-card { min-height: 72px; padding: 10px 12px; }
.athlete-profile-medal-summary .physical-medal-summary-image, .athlete-profile-medal-summary .physical-medal-summary-image img { width: 39px; height: 48px; }
.athlete-profile-medal-summary .summary-copy > span { font-size: 12px; }
.athlete-profile-medal-summary .summary-copy strong { font-size: 21px; }
.athlete-history-record-list, .athlete-training-list { display: grid; gap: 9px; }
.athlete-history-record { min-width: 0; display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 14px; padding: 12px 15px; border: 1px solid #e8ede9; border-radius: 8px; background: #fff; }
.athlete-history-record-emblem { display: flex; justify-content: center; align-items: center; }
.athlete-history-record-emblem .physical-medal-emblem, .athlete-history-record-emblem .physical-medal-emblem img { width: 58px; height: 76px; }
.athlete-history-record-copy { min-width: 0; display: grid; gap: 8px; }
.athlete-history-record-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.athlete-history-record-title strong { color: #354a3c; font-size: 15px; font-weight: 650; }
.athlete-history-record-title > span { padding: 4px 9px; border-radius: 20px; background: #f8f5ec; font-size: 12px; font-weight: 650; white-space: nowrap; }
.athlete-history-record-title .medal-type-gold { color: #98782f; background: #fbf5e6; }
.athlete-history-record-title .medal-type-silver { color: #687782; background: #f1f4f5; }
.athlete-history-record-title .medal-type-bronze { color: #a56548; background: #fbf0ea; }
.athlete-history-record-meta { display: flex; flex-wrap: wrap; gap: 5px 15px; color: #748279; font-size: 12.8px; }
.athlete-history-record-meta > span + span::before { content: '·'; margin-right: 15px; color: #b1bcb4; }
.athlete-history-empty { display: grid; justify-items: center; gap: 5px; padding: 25px 15px; border: 1px dashed #dfe8e1; border-radius: 8px; background: #fbfdfb; text-align: center; }
.athlete-history-empty strong { color: #4a5e51; font-size: 14px; }
.athlete-history-empty p { margin: 0 0 5px; color: #8d9b91; font-size: 12.8px; }
.athlete-training-card { padding: 15px 17px; border: 1px solid #e8ede9; border-radius: 8px; background: #fff; }
.athlete-training-card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; }
.athlete-training-card-heading h3 { margin: 3px 0 0; color: #354a3c; font-size: 15.5px; font-weight: 650; }
.athlete-training-card-heading .section-eyebrow { color: #718578; font-size: 11.5px; }
.athlete-training-actions { display: flex; align-items: center; gap: 7px; }
.athlete-training-actions .button-secondary { min-height: 29px; padding: 0 9px; font-size: 12px; }
.athlete-training-actions form { margin: 0; }
.athlete-training-delete:hover { border-color: #efd8d4; color: #a45b51; background: #fff5f3; }
.athlete-training-details { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 12px 0 0; }
.athlete-training-details > div { display: grid; gap: 2px; }
.athlete-training-details dt { color: #8a978f; font-size: 11.5px; }
.athlete-training-details dd { margin: 0; color: #506358; font-size: 12.8px; }
.athlete-training-description { margin: 11px 0 0; padding-top: 10px; border-top: 1px solid #edf0ed; color: #66766c; font-size: 12.8px; line-height: 1.65; white-space: pre-wrap; }
.athlete-training-form-panel { max-width: 900px; }
.athlete-training-form .form-field > input, .athlete-training-form .form-field > textarea { min-height: 40px; padding: 8px 11px; }
.athlete-training-form .form-field > textarea { min-height: 100px; }
.athlete-training-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.athlete-training-readonly-note { margin: 0 0 10px; padding: 9px 12px; border: 1px solid #e7eee7; border-radius: 7px; color: #758379; background: #f8fbf8; font-size: 12.8px; }
.athlete-training-readonly-note a { color: #397760; font-weight: 650; }
.training-directory-panel { overflow: hidden; }
.training-directory-table { min-width: 1020px; }
.training-index-title { min-width: 190px; display: grid; gap: 3px; }
.training-index-title strong { color: #43574a; font-size: 13.2px; font-weight: 650; }
.training-index-title small, .training-index-date small { color: #89968e; font-size: 11.8px; }
.training-index-date { min-width: 120px; white-space: nowrap; }
.training-index-date small { display: block; margin-top: 2px; }
.training-index-participants { max-width: 320px; display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; }
.training-index-participants a, .training-index-participants > span { color: #49735c; font-size: 11.8px; }
.training-index-participants a:hover { text-decoration: underline; }
.training-index-participants > small { width: 100%; color: #929e96; font-size: 10.8px; }
.training-form-panel { max-width: 960px; }
.training-form .form-field > input, .training-form .form-field > textarea { min-height: 40px; padding: 8px 11px; }
.training-form .form-field > textarea { min-height: 100px; }
.training-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.training-participant-picker { margin-top: 5px; }

/* Coach directory and independent competition records */
.coach-directory-page { max-width: 1440px; display: flex; flex-direction: column; gap: 20px; margin: 0 auto; }
.coach-directory-heading { margin: 0; }
.coach-directory-overview { display: flex; align-items: stretch; gap: 10px; }
.coach-directory-summary { min-width: 0; flex: 1 1 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.coach-directory-summary article { min-width: 0; min-height: 82px; display: flex; align-items: center; justify-content: flex-start; gap: 12px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.coach-directory-summary .summary-icon { width: 42px; height: 42px; border-radius: 14px; }
.coach-directory-summary .summary-icon svg { width: 22px; height: 22px; }
.coach-directory-summary .summary-copy { min-width: 0; gap: 1px; }
.coach-directory-summary .summary-copy > span { color: var(--muted); font-size: 12px; }
.coach-directory-summary .summary-copy strong { color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 23px; font-weight: 600; line-height: 1.15; }
.coach-directory-summary .summary-copy small { font-family: 'Noto Sans Thai', sans-serif; font-size: 12px; font-weight: 500; }
.coach-directory-overview .coach-management-link { min-height: 82px; flex: 0 0 220px; justify-content: space-between; gap: 12px; padding: 0 20px; border-radius: 18px; font-size: 14px; }
.coach-directory-overview .coach-management-link svg { flex: 0 0 auto; }
.coach-directory-page .coach-directory-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); }
.coach-directory-page .list-panel-heading { min-height: 82px; padding: 17px 22px; border-color: var(--line); }
.coach-directory-page .list-panel-heading h2 { color: var(--ink); font-family: 'Prompt', sans-serif; font-size: 20px; }
.coach-directory-page .list-total { padding: 7px 11px; border: 1px solid var(--line); border-radius: 13px; background: var(--bg); }
.coach-directory-page .list-total b { color: var(--accent); }
.coach-directory-page .athlete-status-tabs { min-width: 0; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: 8px; overflow-x: auto; padding: 13px 20px; border-color: var(--line); background: #fff; scrollbar-width: thin; }
.coach-directory-page .athlete-status-tabs a { width: max-content; min-height: 44px; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 9px; padding: 7px 13px; border-color: transparent; border-radius: 14px; color: var(--muted); background: transparent; font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: border-color .16s ease, color .16s ease, background .16s ease, box-shadow .16s ease; }
.coach-directory-page .athlete-status-tabs a b { min-width: 27px; height: 25px; display: grid; place-items: center; padding: 0 6px; border-radius: 9px; color: #687d70; background: var(--bg); font-size: 11.5px; font-weight: 650; }
.coach-directory-page .athlete-status-tabs a:hover { border-color: #dcebe0; color: #256b54; background: #f3f8f4; }
.coach-directory-page .athlete-status-tabs a.is-active { border-color: var(--accent); color: #fff; background: var(--accent); box-shadow: 0 5px 12px rgba(10,127,107,.15); }
.coach-directory-page .athlete-status-tabs a.is-active b { color: #fff; background: rgba(255,255,255,.18); }
.coach-directory-page .athlete-status-tabs a:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.coach-directory-page .athlete-directory-filters { min-height: 0; align-items: center; gap: 10px; padding: 15px 20px; border-color: var(--line); background: #fbfdfb; }
.coach-directory-page .athlete-directory-filters .sport-search { min-height: 46px; border-radius: 14px; }
.coach-directory-page .athlete-directory-filters .sport-search input { height: 42px; font-size: 13.5px; }
.coach-directory-page .athlete-directory-filters .athlete-sport-filter { flex: 0 1 255px; }
.coach-directory-page .athlete-directory-filters .athlete-sport-filter select { min-height: 46px; padding: 0 13px; border-radius: 14px; font-size: 13.5px; }
.coach-directory-page .athlete-directory-filters .filter-submit { min-height: 46px; padding: 0 18px; border-color: var(--accent); border-radius: 14px; color: #fff; background: var(--accent); font-size: 13.5px; }
.coach-directory-page .athlete-directory-filters .filter-submit:hover { border-color: #086b5a; background: #086b5a; }
.coach-directory-page .athlete-directory-filters .filter-reset { padding: 10px 12px; border-radius: 12px; color: #61766a; background: #f0f6f1; text-decoration: none; }
.coach-directory-page .athlete-directory-filters .filter-reset:hover { color: #a14d43; background: #fff2ef; }
.coach-directory-page .athlete-directory-name strong { color: var(--ink); font-size: 13.5px; }
.coach-directory-page .sport-table thead { background: #f5f9f6; }
.coach-directory-page .sport-table th { height: 46px; padding-right: 15px; padding-left: 15px; color: #718278; }
.coach-directory-page .sport-table td { padding-right: 15px; padding-left: 15px; }
.coach-directory-table { min-width: 850px; }
.coach-directory-page .sport-list-footer { min-height: 60px; padding: 10px 20px; border-color: var(--line); background: #fff; }
@media (max-width: 900px) {
    .coach-directory-overview { flex-direction: column; }
    .coach-directory-overview .coach-management-link { min-height: 48px; flex-basis: auto; justify-content: center; }
}
@media (max-width: 560px) {
    .coach-directory-summary { grid-template-columns: 1fr; }
    .coach-directory-summary article { min-height: 68px; }
    .coach-directory-page .athlete-directory-filters { align-items: stretch; padding: 13px; }
    .coach-directory-page .athlete-directory-filters .sport-search,
    .coach-directory-page .athlete-directory-filters .athlete-sport-filter { flex-basis: 100%; }
    .coach-directory-page .athlete-directory-filters .filter-submit { flex: 1 1 auto; }
    .coach-directory-page .list-panel-heading { min-height: 72px; padding: 14px; }
    .coach-directory-page .athlete-status-tabs { padding: 10px 12px; }
    .coach-directory-page .sport-list-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 13px; }
    .coach-directory-page .sport-list-footer .sport-pagination { width: 100%; justify-content: space-between; }
}
.competition-directory-panel { overflow: hidden; }
.competition-directory-table { min-width: 1000px; }
.competition-medal-count { display: block; color: #496b55; font-size: 13px; font-weight: 650; }
.competition-medal-breakdown { display: block; margin-top: 2px; color: #8a978e; font-size: 11px; white-space: nowrap; }
.competition-form-panel { max-width: 960px; }
.competition-form .form-field > input, .competition-form .form-field > textarea, .competition-result-form .form-field > input, .competition-result-form .form-field > textarea { min-height: 40px; padding: 8px 11px; }
.competition-form .form-field > textarea, .competition-result-form .form-field > textarea { min-height: 100px; }
.competition-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.competition-result-form .form-field > select { width: 100%; min-height: 42px; padding: 8px 11px; border: 1px solid #dfe7e1; border-radius: 7px; outline: 0; color: #34473a; background: #fff; font: inherit; font-size: 15px; }
.competition-result-form .form-field > select:focus { border-color: #75a58d; box-shadow: 0 0 0 3px rgba(45, 120, 101, .08); }
.competition-event-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 0 12px; }
.competition-event-details article { min-width: 0; display: grid; gap: 4px; padding: 12px 14px; border: 1px solid #e7ede8; border-radius: 8px; background: #fff; }
.competition-event-details article > span { color: #87948b; font-size: 11.8px; }
.competition-event-details article > strong { overflow-wrap: anywhere; color: #485c4e; font-size: 13px; font-weight: 600; }
.competition-event-note { margin: 0 0 13px; padding: 12px 14px; border: 1px solid #e7ede8; border-radius: 8px; color: #68786d; background: #fbfdfb; font-size: 13px; line-height: 1.65; white-space: pre-wrap; }
.competition-show-medal-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 12px; }
.competition-show-medal-summary .sport-summary-card { min-height: 76px; }
.competition-results-list { display: grid; gap: 11px; }
.competition-result-card { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 18px; padding: 15px 17px; border: 1px solid #e6ece7; border-radius: 9px; background: #fff; }
.competition-result-heading { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; padding-bottom: 10px; border-bottom: 1px solid #edf1ed; }
.competition-result-heading h3 { margin: 3px 0 0; color: #354a3c; font-size: 16px; font-weight: 650; }
.competition-result-heading .section-eyebrow { color: #718578; font-size: 11.5px; }
.competition-result-actions { display: flex; align-items: center; gap: 10px; }
.competition-result-actions form { margin: 0; }
.competition-result-award { min-width: 115px; display: grid; justify-items: center; align-content: start; gap: 4px; padding: 4px; }
.competition-result-award .physical-medal-summary-image, .competition-result-award .physical-medal-summary-image img { width: 57px; height: 70px; }
.competition-result-award > strong { font-size: 12px; font-weight: 650; }
.competition-result-award .medal-type-gold { color: #98782f; }
.competition-result-award .medal-type-silver { color: #687782; }
.competition-result-award .medal-type-bronze { color: #a56548; }
.competition-participation-badge, .competition-participation-inline { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 18px; color: #667b6b; background: #f1f6f1; font-size: 11.8px; font-weight: 600; white-space: nowrap; }
.competition-participation-inline { padding: 3px 8px; }
.competition-result-participants { min-width: 0; display: grid; align-content: start; gap: 7px; }
.competition-participants-label { color: #87948b; font-size: 11.8px; }
.competition-participant-list { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 9px; }
.competition-result-athlete { width: 86px; display: grid; justify-items: center; gap: 5px; color: #4c5f52; font-size: 11.5px; line-height: 1.35; text-align: center; }
.competition-result-athlete .person-avatar.member-photo-avatar { width: 62px; height: 72px; border-radius: 7px; }
.competition-result-athlete > span:last-child { overflow-wrap: anywhere; }
.competition-result-note { grid-column: 1 / -1; margin: 0; padding-top: 9px; border-top: 1px solid #edf1ed; color: #79877e; font-size: 12.5px; line-height: 1.6; white-space: pre-wrap; }

@media (max-width: 760px) {
    .competition-event-details { grid-template-columns: 1fr 1fr; }
    .competition-event-details article:first-child { grid-column: 1 / -1; }
    .competition-show-medal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Sport type edit and create form */
.sport-type-form-page { max-width: 1180px; display: flex; flex-direction: column; gap: 15px; margin: 0 auto; }
.sport-type-form-header { min-height: 142px; margin: 0; }
.sport-type-form-header h1 { text-align: left; }
.sport-type-edit-header-stats { position: relative; z-index: 2; min-width: 205px; display: flex; align-items: center; justify-content: center; gap: 18px; padding: 13px 20px; border: 1px solid #dcece4; border-radius: 18px; background: rgba(255,255,255,.84); backdrop-filter: blur(8px); }
.sport-type-edit-header-stats > div { min-width: 50px; display: grid; justify-items: center; gap: 2px; }
.sport-type-edit-header-stats strong { color: #087f6b; font-family: 'Prompt', sans-serif; font-size: 24px; font-weight: 600; line-height: 1.1; }
.sport-type-edit-header-stats span { color: #71847a; font-size: 11.5px; white-space: nowrap; }
.sport-type-edit-header-stats i { width: 1px; height: 31px; background: #dce8e1; }
.sport-type-form-nav-row { display: flex; justify-content: flex-end; margin: -5px 4px 0; }
.sport-type-back-link { min-height: 40px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid #dce8e1; border-radius: 12px; color: #527061; background: #fff; font-size: 12px; font-weight: 600; text-decoration: none; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.sport-type-back-link svg { width: 16px; height: 16px; }
.sport-type-back-link:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.sport-type-form-error-summary { display: grid; gap: 3px; padding: 12px 15px; border: 1px solid #f0d7d2; border-radius: 13px; color: #a14d43; background: #fff8f6; font-size: 12px; }
.sport-type-form-error-summary strong { font-size: 13px; }
.sport-type-form-panel-v2 { width: 100%; max-width: none; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sport-type-form-panel-v2 .sport-form-intro { min-height: 82px; gap: 13px; padding: 16px 23px; border-color: #e8f0ea; background: #fbfdfb; }
.sport-type-form-panel-v2 .sport-form-icon { width: 43px; height: 43px; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.sport-type-form-panel-v2 .sport-form-icon svg { width: 22px; height: 22px; }
.sport-type-form-panel-v2 .sport-form-intro h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 19px; font-weight: 600; }
.sport-type-form-record-id { margin-left: auto; padding: 7px 10px; border: 1px solid #dfebe4; border-radius: 10px; color: #71847a; background: #fff; font-family: Arial, sans-serif; font-size: 11px; font-weight: 650; }
.sport-type-form-v2 { padding: 24px 25px 19px; }
.sport-type-form-fields { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(310px, .85fr); align-items: start; column-gap: 20px; }
.sport-type-form-fields { grid-template-columns: minmax(0, 1fr); }
.sport-type-form-v2 .form-field { min-width: 0; gap: 8px; margin-bottom: 22px; }
.sport-type-form-v2 .form-field > label { color: #344d40; font-size: 13px; }
.sport-type-form-v2 .form-field > input { height: 48px; padding: 0 14px; border-color: #dce8e1; border-radius: 12px; font-size: 14px; }
.sport-type-form-v2 .form-field > textarea { min-height: 155px; padding: 12px 14px; border-color: #dce8e1; border-radius: 12px; font-size: 13px; line-height: 1.7; }
.sport-type-form-v2 .form-field > input:focus, .sport-type-form-v2 .form-field > textarea:focus { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.sport-type-form-v2 .field-help { color: #829188; font-size: 11.5px; }
.sport-type-form-v2 .field-error { font-size: 11.5px; }
.sport-type-form-v2 .status-form-field { min-height: 100px; flex-direction: row; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 22px; padding: 16px; border-color: #e1ece4; border-radius: 14px; background: #f8fbf8; }
.sport-type-form-v2 .status-form-copy { gap: 5px; }
.sport-type-form-v2 .status-form-copy strong { color: #344d40; font-size: 13px; }
.sport-type-form-v2 .status-form-copy small { max-width: 300px; color: #829188; font-size: 11px; line-height: 1.55; }
.sport-type-form-v2 .toggle-control { gap: 8px; }
.sport-type-form-v2 .toggle-track { width: 38px; height: 22px; border-radius: 20px; }
.sport-type-form-v2 .toggle-track::after { width: 14px; height: 14px; top: 3px; left: 3px; }
.sport-type-form-v2 .toggle-control input:checked + .toggle-track::after { transform: translateX(16px); }
.sport-type-form-v2 .toggle-label { color: #4f715f; font-size: 11.5px; white-space: nowrap; }
.sport-type-description-field { grid-column: 1 / -1; }
.sport-type-form-v2 .sport-form-actions { margin-top: 0; padding-top: 18px; gap: 10px; border-color: #e8f0ea; }
.sport-type-form-v2 .sport-form-actions .button-secondary,
.sport-type-form-v2 .save-sport-button { min-height: 46px; padding: 0 17px; border-radius: 12px; font-size: 12.5px; }
.sport-type-form-v2 .sport-form-actions .button-secondary { border-color: #dce8e1; color: #53645a; }
.sport-type-form-v2 .sport-form-actions .button-secondary:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.sport-type-form-v2 .save-sport-button { display: inline-flex; align-items: center; gap: 8px; background: #087f6b; }
.sport-type-form-v2 .save-sport-button:hover { background: #066a5a; }
.sport-type-form-v2 .save-sport-button svg { width: 16px; height: 16px; }
.sport-type-form-v2 .button-secondary:focus-visible, .sport-type-form-v2 .save-sport-button:focus-visible, .sport-type-back-link:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }

@media (max-width: 760px) {
    .sport-type-form-page { gap: 13px; }
    .sport-type-form-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 13px; padding: 20px; border-radius: 19px; }
    .sport-type-form-header h1 { font-size: 25px; }
    .sport-type-edit-header-stats { min-width: 0; padding: 9px 13px; border-radius: 13px; }
    .sport-type-edit-header-stats strong { font-size: 19px; }
    .sport-type-edit-header-stats i { height: 24px; }
    .sport-type-form-nav-row { margin: -1px 0 0; }
    .sport-type-form-nav-row .sport-type-back-link { width: 100%; justify-content: center; }
    .sport-type-form-panel-v2 .sport-form-intro { min-height: 70px; padding: 13px 15px; }
    .sport-type-form-panel-v2 .sport-form-icon { width: 38px; height: 38px; }
    .sport-type-form-v2 { padding: 18px 15px 14px; }
    .sport-type-form-fields { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .sport-type-form-v2 .status-form-field { min-height: 0; align-items: flex-start; flex-direction: column; gap: 12px; padding: 14px; }
    .sport-type-form-v2 .sport-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .sport-type-form-v2 .sport-form-actions .button-secondary,
    .sport-type-form-v2 .save-sport-button { width: 100%; }
    .sport-type-form-record-id { padding: 6px 8px; }
}
@media (max-width: 560px) {
    .coach-directory-summary { grid-template-columns: 1fr; }
    .competition-form-grid { grid-template-columns: 1fr; gap: 0; }
    .competition-event-details { grid-template-columns: 1fr; }
    .competition-event-details article:first-child { grid-column: auto; }
    .competition-result-card { grid-template-columns: 1fr; gap: 9px; padding: 12px; }
    .competition-result-heading { grid-column: 1; align-items: center; }
    .competition-result-award { min-width: 0; grid-template-columns: 48px auto; justify-items: start; align-items: center; padding: 0; }
    .competition-result-award .physical-medal-summary-image, .competition-result-award .physical-medal-summary-image img { width: 42px; height: 52px; }
    .competition-result-participants, .competition-result-note { grid-column: 1; }
    .competition-result-athlete { width: 76px; }
}
@media print {
    .competition-result-card, .competition-event-details article { break-inside: avoid; box-shadow: none; }
    .competition-show-medal-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Athlete call-up request register */
.call-up-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 14px; }
.call-up-directory-panel { overflow: hidden; }
.call-up-directory-table { min-width: 1080px; }
.call-up-type-filter { flex: 0 1 220px; }
.call-up-type-filter select { width: 100%; min-height: 36px; padding: 0 10px; border: 1px solid #e2e9e3; border-radius: 6px; outline: 0; color: #3f5146; background: #fff; font: inherit; font-size: 13px; }
.call-up-type-filter select:focus { border-color: #70a58d; box-shadow: 0 0 0 3px rgba(45, 120, 101, .08); }
.call-up-type-pill { display: inline-flex; padding: 4px 9px; border-radius: 18px; color: #47705a; background: #f0f6f1; font-size: 11.8px; font-weight: 600; white-space: nowrap; }
.call-up-activity-name { display: block; margin-top: 4px; color: #8b978f; font-size: 11px; }
.call-up-no-file { color: #929e96; font-size: 11.8px; }
.call-up-form-panel { max-width: 1020px; }
.call-up-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.call-up-form .form-field > input, .call-up-form .form-field > textarea, .call-up-form .form-field > select { min-height: 40px; padding: 8px 11px; }
.call-up-form .form-field > textarea { min-height: 100px; }
.call-up-form .form-field > select { width: 100%; border: 1px solid #dfe7e1; border-radius: 7px; outline: 0; color: #34473a; background: #fff; font: inherit; font-size: 15px; }
.call-up-form .form-field > select:focus { border-color: #75a58d; box-shadow: 0 0 0 3px rgba(45, 120, 101, .08); }
.call-up-form-wide { grid-column: 1 / -1; }
.call-up-current-file { display: block; margin-top: 6px; color: #849188; font-size: 11.8px; }
.call-up-current-file a { color: #397760; font-weight: 600; }
.call-up-athlete-picker { margin: 8px 0 0; }
.call-up-show-page { max-width: 1120px; margin: 0 auto; }
.call-up-print-sheet { padding: 22px; border: 1px solid #e4ebe5; border-radius: 10px; background: #fff; box-shadow: 0 8px 24px rgba(38, 65, 48, .04); }
.call-up-print-heading { display: flex; align-items: center; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid #e8ede9; }
.call-up-print-heading img { width: 62px; height: 72px; object-fit: contain; }
.call-up-print-heading > div { display: grid; gap: 3px; }
.call-up-print-heading strong { color: #344b3b; font-size: 17px; }
.call-up-print-heading span { color: #6d7d72; font-size: 13px; }
.call-up-print-heading small { color: #8a978e; font-size: 11.8px; }
.call-up-print-subject { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 12px; margin: 16px 0; padding: 12px 14px; border-radius: 7px; background: #f8fbf8; }
.call-up-print-subject span, .call-up-detail-grid article > span, .call-up-print-details > span { color: #849188; font-size: 11.8px; }
.call-up-print-subject strong { color: #3e5345; font-size: 14px; font-weight: 650; }
.call-up-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
.call-up-detail-grid article { min-width: 0; display: grid; gap: 3px; padding: 10px 12px; border: 1px solid #e9eeea; border-radius: 7px; }
.call-up-detail-grid article > strong { color: #4c5f52; font-size: 12.8px; font-weight: 600; overflow-wrap: anywhere; }
.call-up-print-details { margin-top: 10px; padding: 11px 12px; border: 1px solid #e9eeea; border-radius: 7px; }
.call-up-print-details p { margin: 6px 0 0; color: #627267; font-size: 12.8px; line-height: 1.65; white-space: pre-wrap; }
.call-up-request-athletes { margin-top: 20px; }
.call-up-request-athletes .physical-section-heading { margin-bottom: 9px; }
.call-up-athlete-list { display: grid; border: 1px solid #e8ede9; border-radius: 8px; overflow: hidden; }
.call-up-athlete-row { min-width: 0; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 9px 12px; border-bottom: 1px solid #edf1ed; }
.call-up-athlete-row:last-child { border-bottom: 0; }
.call-up-athlete-row .person-avatar { width: 42px; height: 48px; border-radius: 6px; }
.call-up-athlete-row > div { min-width: 0; display: grid; gap: 2px; }
.call-up-athlete-row > div strong { color: #45594b; font-size: 13px; }
.call-up-athlete-row > div small { color: #8a978e; font-size: 11.5px; }
.call-up-attached-document { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 10px 12px; border: 1px solid #e7eee7; border-radius: 7px; background: #f9fbf9; }
.call-up-attached-document span { color: #7f8d83; font-size: 12px; }
.call-up-attached-document a { color: #397760; font-size: 12px; font-weight: 650; overflow-wrap: anywhere; }
.call-up-print-footer { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; padding-top: 9px; border-top: 1px solid #e8ede9; color: #929e96; font-size: 10.8px; }

@media (max-width: 760px) {
    .call-up-summary { grid-template-columns: 1fr 1fr; }
    .call-up-summary article:last-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .call-up-summary { grid-template-columns: 1fr; }
    .call-up-summary article:last-child { grid-column: auto; }
    .call-up-type-filter { flex-basis: 100%; }
    .call-up-form-grid, .call-up-detail-grid { grid-template-columns: 1fr; gap: 0; }
    .call-up-form-wide { grid-column: auto; }
    .call-up-print-sheet { padding: 13px; }
    .call-up-print-subject { grid-template-columns: 1fr; gap: 4px; }
    .call-up-print-footer { flex-direction: column; }
}
@media print {
    .call-up-show-page { max-width: none; margin: 0; }
    .call-up-print-sheet { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
    .call-up-print-heading { border-color: #cbd5ce; }
    .call-up-print-heading strong, .call-up-print-heading span, .call-up-print-heading small, .call-up-print-subject strong, .call-up-detail-grid article > strong, .call-up-print-details p, .call-up-athlete-row > div strong { color: #222 !important; }
    .call-up-print-subject, .call-up-detail-grid article, .call-up-print-details, .call-up-athlete-row { border-color: #dce2dd; background: #fff !important; break-inside: avoid; }
    .call-up-request-athletes { break-inside: avoid; }
}

@media (max-width: 760px) {
    .athlete-history-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .athlete-profile-medal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .athlete-history-section-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
    .athlete-history-section-heading .button-primary { align-self: stretch; justify-content: center; }
    .athlete-history-profile-grid, .athlete-training-form-grid { grid-template-columns: 1fr; gap: 0; }
    .training-form-grid { grid-template-columns: 1fr; gap: 0; }
    .athlete-history-record { grid-template-columns: 55px minmax(0, 1fr); gap: 10px; padding: 10px; }
    .athlete-history-record-emblem .physical-medal-emblem, .athlete-history-record-emblem .physical-medal-emblem img { width: 48px; height: 63px; }
    .athlete-history-record-title { align-items: flex-start; flex-direction: column; gap: 5px; }
    .athlete-history-record-meta { display: grid; gap: 3px; }
    .athlete-history-record-meta > span + span::before { content: none; }
    .athlete-training-card-heading { flex-direction: column; }
}
@media print {
    .athlete-history-section { break-inside: auto; }
    .athlete-history-record, .athlete-training-card { border-color: #dce2dd; box-shadow: none; break-inside: avoid; }
    .athlete-profile-medal-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .athlete-history-empty { border-style: solid; }
}

/* =========================================================
   SPORTS DIRECTORY
   ========================================================= */

.sports-directory-page {
    width: min(100%, 1440px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}


/* =========================
   HEADER
   ========================= */

.sports-directory-header {
    position: relative;
    overflow: hidden;

    display: flex;
    align-items: center;
    justify-content: space-between;

    min-height: 150px;
    padding: 28px 32px;

    border: 1px solid #dcebe3;
    border-radius: 24px;

    background:
        radial-gradient(
            circle at 92% 20%,
            rgba(73, 202, 166, .18),
            transparent 28%
        ),
        radial-gradient(
            circle at 75% 100%,
            rgba(93, 177, 245, .13),
            transparent 32%
        ),
        #ffffff;

    box-shadow:
        0 10px 30px rgba(35, 75, 57, .06);
}

.sports-directory-header::after {
    content: "";
    position: absolute;

    width: 180px;
    height: 180px;

    right: -70px;
    bottom: -100px;

    border-radius: 50%;

    background: rgba(255, 203, 71, .17);
}

.sports-directory-header > div:first-child {
    position: relative;
    z-index: 2;
}

.page-eyebrow {
    display: block;

    color: #23836d;

    font-family: Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;

    letter-spacing: .14em;
}

.sports-directory-header h1 {
    margin: 6px 0 4px;

    color: #183c2d;

    font-family: 'Prompt', sans-serif;
    font-size: 30px;
    font-weight: 600;

    line-height: 1.2;
}

.sports-directory-header p {
    margin: 0;

    color: #7d9086;

    font-size: 13px;
}


.sports-directory-header-count {
    position: relative;
    z-index: 3;

    min-width: 120px;

    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 15px 20px;

    border: 1px solid #dcece4;
    border-radius: 18px;

    background: rgba(255,255,255,.8);
    backdrop-filter: blur(8px);
}

.sports-directory-header-count strong {
    color: #087f6b;

    font-family: 'Prompt', sans-serif;
    font-size: 28px;
    font-weight: 600;
    line-height: 1;
}

.sports-directory-header-count span {
    margin-top: 4px;

    color: #809187;
    font-size: 11px;
}


/* =========================
   SEARCH
   ========================= */

.sports-directory-search {
    display: flex;
    align-items: center;

    padding: 14px;

    border: 1px solid #dfebe4;
    border-radius: 18px;

    background: #fff;

    box-shadow:
        0 6px 20px rgba(35, 75, 57, .045);
}

.directory-search-form {
    width: 100%;

    display: flex;
    align-items: center;
    gap: 9px;
}

.directory-search-box {
    min-height: 48px;

    flex: 1;

    display: flex;
    align-items: center;
    gap: 10px;

    padding: 0 15px;

    border: 1px solid #dce8e1;
    border-radius: 13px;

    background: #f9fcfa;

    transition:
        border-color .16s ease,
        box-shadow .16s ease,
        background .16s ease;
}

.directory-search-box:focus-within {
    border-color: #4da98d;

    background: #fff;

    box-shadow:
        0 0 0 4px rgba(77,169,141,.10);
}

.directory-search-box svg {
    width: 19px;
    height: 19px;

    flex: 0 0 auto;

    color: #7e968a;
}

.directory-search-box input {
    width: 100%;
    height: 44px;

    border: 0;
    outline: 0;

    background: transparent;

    color: #344d40;

    font: inherit;
    font-size: 13px;
}

.directory-search-box input::placeholder {
    color: #a1afa7;
}

.directory-search-button {
    min-height: 48px;

    padding: 0 22px;

    border: 0;
    border-radius: 13px;

    color: #fff;
    background: #087f6b;

    font-size: 13px;
    font-weight: 600;

    cursor: pointer;

    transition:
        background .16s ease,
        transform .16s ease;
}

.directory-search-button:hover {
    background: #066c5b;
    transform: translateY(-1px);
}

.directory-clear-button {
    min-height: 48px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 16px;

    border-radius: 13px;

    color: #62766b;
    background: #f0f5f2;

    font-size: 12px;
    text-decoration: none;
}

.directory-clear-button:hover {
    color: #a04f45;
    background: #fff1ef;
}


/* =========================
   RESULTS HEADER
   ========================= */

.directory-results-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    padding: 4px 2px;
}

.directory-results-heading h2 {
    margin: 4px 0 0;

    color: #254737;

    font-family: 'Prompt', sans-serif;
    font-size: 21px;
    font-weight: 600;
}

.directory-results-total {
    padding: 7px 12px;

    border: 1px solid #dfebe4;
    border-radius: 12px;

    color: #71847a;
    background: #fff;

    font-size: 11px;
}


/* =========================
   SPORT GRID
   ========================= */

.sport-directory-grid {
    display: grid;

    grid-template-columns:
        repeat(
            auto-fill,
            minmax(265px, 1fr)
        );

    gap: 14px;
}


/* =========================
   SPORT CARD
   ========================= */

.sport-directory-card {
    --sport-accent: #087f6b;
    --sport-soft: #e8f6f1;

    position: relative;

    min-width: 0;
    min-height: 265px;

    display: flex;
    flex-direction: column;

    padding: 19px;

    overflow: hidden;

    border: 1px solid #dfebe4;
    border-radius: 20px;

    color: inherit;
    background: #fff;

    text-decoration: none;

    box-shadow:
        0 5px 18px rgba(35,75,57,.045);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.sport-directory-card:nth-child(4n + 2) {
    --sport-accent: #c38a08;
    --sport-soft: #fff6dc;
}

.sport-directory-card:nth-child(4n + 3) {
    --sport-accent: #237eb2;
    --sport-soft: #e8f5fd;
}

.sport-directory-card:nth-child(4n + 4) {
    --sport-accent: #d05d4d;
    --sport-soft: #fff0ed;
}

.sport-directory-card::after {
    content: "";

    position: absolute;

    width: 125px;
    height: 125px;

    right: -65px;
    top: -65px;

    border-radius: 50%;

    background: var(--sport-soft);

    transition: transform .2s ease;
}

.sport-directory-card:hover {
    transform: translateY(-4px);

    border-color: color-mix(
        in srgb,
        var(--sport-accent) 25%,
        #fff
    );

    box-shadow:
        0 14px 30px rgba(35,75,57,.10);
}

.sport-directory-card:hover::after {
    transform: scale(1.15);
}


/* card top */

.sport-card-top {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sport-card-icon {
    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    border-radius: 14px;

    color: var(--sport-accent);
    background: var(--sport-soft);
}

.sport-card-icon svg {
    width: 23px;
    height: 23px;
}


/* status */

.sport-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    padding: 5px 9px;

    border-radius: 20px;

    font-size: 10px;
    font-weight: 600;
}

.sport-status-pill i {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: currentColor;
}

.sport-status-pill.is-active {
    color: #218361;
    background: #e8f7ef;
}

.sport-status-pill.is-inactive {
    color: #9b7770;
    background: #faf0ee;
}


/* content */

.sport-card-content {
    position: relative;
    z-index: 2;

    margin-top: 17px;
}

.sport-card-content h3 {
    margin: 0 0 6px;

    color: #254737;

    font-family: 'Prompt', sans-serif;
    font-size: 20px;
    font-weight: 600;

    line-height: 1.35;
}

.sport-card-content p {
    min-height: 40px;

    display: -webkit-box;
    overflow: hidden;

    margin: 0;

    color: #829188;

    font-size: 12px;
    line-height: 1.65;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}


/* stats */

.sport-card-stats {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns: 1fr 1fr;

    gap: 8px;

    margin-top: auto;
    padding-top: 17px;
}

.sport-card-stats > div {
    padding: 9px 11px;

    border-radius: 12px;

    background: #f7faf8;
}

.sport-card-stats span {
    display: block;

    color: #87978e;

    font-size: 10px;
}

.sport-card-stats strong {
    display: block;

    margin-top: 2px;

    color: var(--sport-accent);

    font-family: 'Prompt', sans-serif;
    font-size: 19px;
    font-weight: 600;
}


/* footer */

.sport-card-footer {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: 13px;
    padding-top: 11px;

    border-top: 1px solid #edf2ee;

    color: var(--sport-accent);

    font-size: 11px;
    font-weight: 600;
}

.sport-card-footer b {
    font-size: 19px;
    font-weight: 400;

    transition: transform .15s ease;
}

.sport-directory-card:hover
.sport-card-footer b {
    transform: translateX(4px);
}


/* =========================
   EMPTY
   ========================= */

.sport-directory-empty {
    grid-column: 1 / -1;

    min-height: 260px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 30px;

    border: 1px solid #dfebe4;
    border-radius: 20px;

    background: #fff;

    text-align: center;
}

.empty-icon {
    width: 58px;
    height: 58px;

    display: grid;
    place-items: center;

    margin-bottom: 12px;

    border-radius: 17px;

    color: #087f6b;
    background: #e8f6f1;
}

.empty-icon svg {
    width: 27px;
    height: 27px;
}

.sport-directory-empty h3 {
    margin: 0 0 5px;

    color: #385243;

    font-family: 'Prompt', sans-serif;
    font-size: 18px;
}

.sport-directory-empty p {
    margin: 0 0 14px;

    color: #89968f;

    font-size: 12px;
}


/* =========================
   PAGINATION
   ========================= */

.directory-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 6px 2px;

    color: #87958e;

    font-size: 11px;
}

.directory-pagination > div {
    display: flex;
    align-items: center;
    gap: 6px;
}

.pager {
    min-height: 34px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 11px;

    border: 1px solid #dce8e1;
    border-radius: 9px;

    color: #537063;
    background: #fff;

    text-decoration: none;
}

.pager:hover {
    border-color: #aad4c3;
    color: #087f6b;
    background: #f3faf6;
}

.pager.disabled {
    opacity: .45;
}

.pager-current {
    padding: 0 7px;
    color: #60776a;
}


/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 900px) {

    .sports-directory-header {
        min-height: 130px;
        padding: 23px;
    }

    .sports-directory-header h1 {
        font-size: 26px;
    }

    .sport-directory-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }
}


@media (max-width: 620px) {

    .sports-directory-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 15px;
    }

    .sports-directory-header-count {
        align-self: flex-start;
        min-width: 105px;
    }

    .directory-search-form {
        flex-wrap: wrap;
    }

    .directory-search-box {
        flex-basis: 100%;
    }

    .directory-search-button,
    .directory-clear-button {
        flex: 1;
    }

    .directory-results-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .sport-directory-grid {
        grid-template-columns: 1fr;
    }

    .directory-pagination {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .directory-pagination > div {
        width: 100%;
        justify-content: space-between;
    }
}

/* Sport type management directory */
.sport-types-page { max-width: 1440px; display: flex; flex-direction: column; gap: 15px; margin: 0 auto; }
.sport-types-header { min-height: 142px; margin: 0; }
.sport-types-header h1 { text-align: left; }
.sport-types-header .sports-directory-header-count { min-width: 132px; }
.sport-types-action-row { display: flex; justify-content: flex-end; margin: -6px 4px 0; }
.sport-types-add-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; border: 1px solid #087f6b; border-radius: 13px; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.15); font-size: 13px; font-weight: 650; text-decoration: none; transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.sport-types-add-button svg { width: 17px; height: 17px; }
.sport-types-add-button > span:first-child:not(:only-child) { font-size: 19px; font-weight: 400; }
.sport-types-add-button:hover { transform: translateY(-1px); border-color: #066a5a; color: #fff; background: #066a5a; box-shadow: 0 7px 16px rgba(8,127,107,.2); }
.sport-types-flash { margin: 0; border-radius: 14px; }
.sport-types-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.sport-types-summary article { min-height: 66px; display: flex; align-items: center; gap: 10px; padding: 11px 15px; border: 1px solid #dfebe4; border-radius: 16px; background: #fff; box-shadow: 0 4px 14px rgba(35,75,57,.035); }
.sport-types-summary article > span:nth-child(2) { color: #71847a; font-size: 12.5px; }
.sport-types-summary article > strong { margin-left: auto; color: #294b3b; font-family: 'Prompt', sans-serif; font-size: 20px; font-weight: 600; }
.sport-types-summary-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: #b8a36d; box-shadow: 0 0 0 4px #f7f3e9; }
.sport-types-summary-dot.is-active { background: #18846d; box-shadow: 0 0 0 4px #e8f5ef; }
.sport-types-summary-dot.is-inactive { background: #909b94; box-shadow: 0 0 0 4px #eff2f0; }
.sport-types-panel { border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sport-types-panel .list-panel-heading { min-height: 78px; padding: 15px 20px; border-color: #e8f0ea; }
.sport-types-panel .list-panel-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.sport-types-panel .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; }
.sport-types-panel .list-total { padding: 8px 12px; border: 1px solid #dfebe4; border-radius: 13px; background: #f9fcfa; }
.sport-types-panel .list-total b { color: #087f6b; }
.sport-types-filters { min-height: 72px; gap: 10px; padding: 12px 20px; border-color: #e8f0ea; background: #fbfdfb; }
.sport-types-filters .sport-search { width: auto; min-height: 46px; flex: 1 1 360px; gap: 10px; padding: 0 13px; border-color: #dce8e1; border-radius: 13px; }
.sport-types-filters .sport-search svg { width: 18px; height: 18px; }
.sport-types-filters .sport-search input { height: 42px; font-size: 13px; }
.sport-types-status-filter { min-height: 46px; display: flex; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid #dce8e1; border-radius: 13px; color: #71847a; background: #fff; font-size: 12px; white-space: nowrap; }
.sport-types-status-filter select { min-width: 112px; border: 0; outline: 0; color: #344d40; background: transparent; font: inherit; font-size: 12.5px; cursor: pointer; }
.sport-types-filters .filter-submit { min-height: 46px; padding: 0 19px; border-color: #087f6b; border-radius: 13px; color: #fff; background: #087f6b; font-size: 12.5px; font-weight: 650; }
.sport-types-filters .filter-submit:hover { border-color: #066a5a; background: #066a5a; }
.sport-types-table { min-width: 1110px; }
.sport-types-table th { height: 46px; padding: 0 14px; background: #f5f9f6; }
.sport-types-table td { height: 70px; padding: 10px 14px; }
.sport-types-table .sport-number-col { width: 66px; }
.sport-types-table .sport-description-col { width: 235px; }
.sport-types-table .sport-action-col { width: 104px; text-align: right; padding-right: 20px; }
.sport-types-table .sport-actions { justify-content: flex-end; gap: 7px; }
.sport-types-name-cell { gap: 10px; }
.sport-types-name-cell .sport-row-icon { width: 38px; height: 38px; flex: 0 0 auto; border-radius: 12px; color: #087f6b; background: #edf7f1; }
.sport-types-name-cell .sport-row-icon svg { width: 20px; height: 20px; }
.sport-types-name-cell strong { color: #344d40; font-size: 13px; font-weight: 650; }
.sport-types-table .sport-description { max-width: 255px; color: #84948a; font-size: 12px; line-height: 1.55; }
.sport-types-member-counts { display: flex; flex-wrap: wrap; gap: 5px; }
.sport-types-member-counts span { padding: 5px 8px; border: 1px solid #e1ece3; border-radius: 20px; color: #71847a; background: #f8fbf8; font-size: 10.5px; white-space: nowrap; }
.sport-types-member-counts strong { color: #087f6b; font-family: 'Prompt', sans-serif; font-size: 11px; font-weight: 600; }
.sport-types-table .sport-status-pill { padding: 6px 9px; font-size: 10.5px; white-space: nowrap; }
.sport-types-table .sport-date { color: #71847a; font-size: 11.5px; white-space: nowrap; }
.sport-types-table .sport-action-button { width: 34px; height: 34px; border-radius: 10px; }
.sport-types-empty { min-height: 286px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 28px 18px; background: linear-gradient(180deg,#fff,#fbfdfb); text-align: center; }
.sport-types-empty-icon { width: 56px; height: 56px; display: grid; place-items: center; margin-bottom: 3px; border: 1px solid #dcebe1; border-radius: 18px; color: #087f6b; background: #eff7f1; }
.sport-types-empty-icon svg { width: 27px; height: 27px; }
.sport-types-empty-eyebrow { color: #8a9a90; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.sport-types-empty strong { color: #344d40; font-family: 'Prompt', sans-serif; font-size: 17px; font-weight: 600; }
.sport-types-empty p { max-width: 450px; margin: 0 0 7px; color: #829188; font-size: 12px; line-height: 1.7; }
.sport-types-empty-secondary { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid #dce8e1; border-radius: 11px; color: #087f6b; background: #fff; font-size: 12px; font-weight: 650; text-decoration: none; }
.sport-types-empty-secondary:hover { border-color: #b9d7c7; background: #f4faf6; }
.sport-types-panel .sport-types-footer { min-height: 60px; padding: 10px 20px; border-top: 1px solid #e8f0ea; background: #fff; }

@media (max-width: 760px) {
    .sport-types-page { gap: 13px; }
    .sport-types-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 13px; padding: 20px; border-radius: 19px; }
    .sport-types-header h1 { font-size: 25px; }
    .sport-types-header .sports-directory-header-count { min-width: 110px; padding: 11px 14px; }
    .sport-types-action-row { margin: -1px 0 0; }
    .sport-types-action-row .sport-types-add-button { width: 100%; min-height: 44px; }
    .sport-types-summary { gap: 7px; }
    .sport-types-summary article { min-height: 61px; gap: 7px; padding: 8px; border-radius: 13px; }
    .sport-types-summary article > span:nth-child(2) { font-size: 10px; line-height: 1.3; }
    .sport-types-summary article > strong { font-size: 17px; }
    .sport-types-summary-dot { width: 7px; height: 7px; box-shadow: 0 0 0 3px #f7f3e9; }
    .sport-types-summary-dot.is-active { box-shadow: 0 0 0 3px #e8f5ef; }
    .sport-types-summary-dot.is-inactive { box-shadow: 0 0 0 3px #eff2f0; }
    .sport-types-panel .list-panel-heading { min-height: 70px; padding: 13px 15px; }
    .sport-types-filters { flex-wrap: wrap; padding: 12px 15px; }
    .sport-types-filters .sport-search { flex: 1 1 100%; }
    .sport-types-status-filter { flex: 1 1 45%; }
    .sport-types-filters .filter-submit { flex: 1; }
    .sport-types-filters .filter-reset { flex: 1 1 100%; text-align: center; }
    .sport-types-table { min-width: 1080px; }
    .sport-types-empty { min-height: 260px; padding: 23px 15px; }
    .sport-types-panel .sport-types-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 12px 15px; }
    .sport-types-panel .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Sports directory view controls and default list layout */
.directory-results-actions { display: flex; align-items: center; gap: 10px; }
.directory-results-actions .directory-view-switch { width: max-content; display: flex; flex: 0 0 auto; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 3px; padding: 4px; border: 1px solid #dfebe4; border-radius: 13px; background: #fff; }
.directory-results-actions .directory-view-switch a { width: auto; min-height: 36px; display: inline-flex; flex: 0 0 auto; flex-direction: row; align-items: center; justify-content: center; gap: 7px; padding: 0 11px; border: 1px solid transparent; border-radius: 9px; color: #71847a; font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: color .16s ease, background .16s ease, border-color .16s ease; }
.directory-results-actions .directory-view-switch a svg { width: 16px; height: 16px; flex: 0 0 auto; }
.directory-results-actions .directory-view-switch a:hover { color: #087f6b; background: #f1f7f3; }
.directory-results-actions .directory-view-switch a.is-active { border-color: #087f6b; color: #fff; background: #087f6b; }
.directory-results-actions .directory-view-switch a:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.sport-directory-grid.is-list-view { display: flex; flex-direction: column; gap: 10px; }
.sport-directory-grid.is-list-view .sport-directory-card { min-height: 88px; display: grid; grid-template-columns: 50px minmax(180px, 1fr) minmax(190px, 240px) minmax(90px, 110px) 100px; align-items: center; gap: 14px; padding: 12px 16px; border-radius: 16px; }
.sport-directory-grid.is-list-view .sport-directory-card:hover { transform: translateY(-1px); }
.sport-directory-grid.is-list-view .sport-directory-card::after { width: 95px; height: 95px; top: -58px; right: -45px; }
.sport-directory-grid.is-list-view .sport-card-top { display: contents; }
.sport-directory-grid.is-list-view .sport-card-icon { grid-column: 1; grid-row: 1; }
.sport-directory-grid.is-list-view .sport-status-pill { grid-column: 4; grid-row: 1; justify-self: start; }
.sport-directory-grid.is-list-view .sport-card-content { min-width: 0; grid-column: 2; grid-row: 1; margin: 0; }
.sport-directory-grid.is-list-view .sport-card-content h3 { margin: 0 0 3px; font-size: 17px; }
.sport-directory-grid.is-list-view .sport-card-content p { min-height: 0; -webkit-line-clamp: 1; }
.sport-directory-grid.is-list-view .sport-card-stats { grid-column: 3; grid-row: 1; gap: 7px; margin: 0; padding: 0; }
.sport-directory-grid.is-list-view .sport-card-stats > div { padding: 6px 8px; border-radius: 10px; }
.sport-directory-grid.is-list-view .sport-card-stats span { font-size: 9.5px; }
.sport-directory-grid.is-list-view .sport-card-stats strong { margin-top: 1px; font-size: 16px; }
.sport-directory-grid.is-list-view .sport-card-footer { grid-column: 5; grid-row: 1; gap: 8px; margin: 0; padding: 0; border: 0; white-space: nowrap; }
.sport-directory-grid.is-list-view .sport-card-footer b { font-size: 18px; }

@media (max-width: 900px) {
    .directory-results-actions { flex-wrap: wrap; justify-content: flex-end; }
    .sport-directory-grid.is-list-view .sport-directory-card { grid-template-columns: 46px minmax(150px, 1fr) minmax(160px, 200px) 94px; gap: 12px; }
    .sport-directory-grid.is-list-view .sport-status-pill { grid-column: 4; }
    .sport-directory-grid.is-list-view .sport-card-stats { grid-column: 3; }
    .sport-directory-grid.is-list-view .sport-card-footer { grid-column: 4; grid-row: 2; justify-content: flex-end; }
    .sport-directory-grid.is-list-view .sport-directory-card { grid-template-rows: auto auto; }
    .sport-directory-grid.is-list-view .sport-card-icon { grid-row: 1 / 3; }
    .sport-directory-grid.is-list-view .sport-card-content { grid-row: 1 / 3; }
    .sport-directory-grid.is-list-view .sport-status-pill { grid-row: 1; }
    .sport-directory-grid.is-list-view .sport-card-stats { grid-row: 1 / 3; }
}

@media (max-width: 620px) {
    .directory-results-actions { width: 100%; justify-content: space-between; }
    .directory-view-switch { flex: 0 0 auto; }
    .sport-directory-grid.is-list-view .sport-directory-card { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 9px 11px; padding: 12px; }
    .sport-directory-grid.is-list-view .sport-card-icon { grid-column: 1; grid-row: 1; }
    .sport-directory-grid.is-list-view .sport-card-content { grid-column: 2; grid-row: 1; }
    .sport-directory-grid.is-list-view .sport-status-pill { grid-column: 3; grid-row: 1; }
    .sport-directory-grid.is-list-view .sport-card-stats { grid-column: 1 / 3; grid-row: 2; }
    .sport-directory-grid.is-list-view .sport-card-footer { grid-column: 3; grid-row: 2; }
}

/* Athlete directory layout follows the sports directory */
.athlete-directory-header-actions { position: relative; z-index: 3; display: flex; align-items: center; }
.athlete-directory-header-count { min-width: 105px; }
.athlete-directory-add-row { display: flex; justify-content: flex-end; margin: -7px 4px 0; }
.athlete-directory-add-row .athlete-add-button { min-height: 46px; padding: 0 16px; border-radius: 13px; font-size: 13px; }
.athlete-directory-page .athlete-directory-notice { margin: 0; border-radius: 16px; }
.athlete-directory-search-form { width: 100%; max-width: none; }
.athlete-directory-search-form .athlete-sport-filter { flex: 0 1 255px; }
.athlete-directory-search-form .athlete-sport-filter select { min-height: 48px; padding: 0 13px; border: 1px solid #dce8e1; border-radius: 13px; color: #344d40; background: #fff; font: inherit; font-size: 13px; }
.athlete-directory-search-form .athlete-sport-filter select:focus { border-color: #4da98d; outline: 0; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.athlete-directory-page .athlete-status-tabs { min-width: 0; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 7px; overflow-x: auto; padding: 8px 11px; border: 1px solid #dfebe4; border-radius: 16px; background: #fff; scrollbar-width: thin; }
.athlete-directory-page .athlete-status-tabs a { width: max-content; min-height: 38px; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; padding: 5px 11px; border: 1px solid transparent; border-radius: 11px; color: #71847a; font-size: 12px; white-space: nowrap; }
.athlete-directory-page .athlete-status-tabs a b { min-width: 24px; height: 23px; display: grid; place-items: center; padding: 0 5px; border-radius: 8px; color: #687d70; background: #f3f8f4; font-size: 10.5px; }
.athlete-directory-page .athlete-status-tabs a:hover { border-color: #dcebe0; color: #087f6b; background: #f1f7f3; }
.athlete-directory-page .athlete-status-tabs a.is-active { border-color: #087f6b; color: #fff; background: #087f6b; }
.athlete-directory-page .athlete-status-tabs a.is-active b { color: #fff; background: rgba(255,255,255,.18); }
.athlete-directory-results-heading { align-items: flex-end; gap: 15px; }
.athlete-directory-page .athlete-directory-results-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.athlete-directory-results-heading .directory-results-actions { flex-wrap: nowrap; }
.athlete-directory-list-view { overflow-x: auto; border: 1px solid #dfebe4; border-radius: 18px; background: #fff; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.athlete-directory-page .athlete-directory-table { min-width: 960px; }
.athlete-directory-page .athlete-directory-table th { height: 46px; background: #f5f9f6; }
.athlete-directory-page .athlete-directory-table td { height: 67px; }
.athlete-directory-page .sport-list-footer { margin-top: 0; padding: 6px 2px; border: 0; background: transparent; }
.athlete-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.athlete-directory-card { min-width: 0; display: flex; flex-direction: column; gap: 13px; padding: 17px; border: 1px solid #dfebe4; border-radius: 20px; background: #fff; box-shadow: 0 5px 18px rgba(35,75,57,.045); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.athlete-directory-card:hover { transform: translateY(-2px); border-color: #cfe0d2; box-shadow: 0 12px 26px rgba(35,75,57,.08); }
.athlete-directory-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.athlete-directory-card-top .person-avatar { width: 54px; height: 54px; }
.athlete-directory-card-copy { min-width: 0; display: grid; gap: 3px; }
.athlete-directory-card-copy a { overflow: hidden; color: #254737; font-family: 'Prompt', sans-serif; font-size: 17px; font-weight: 600; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.athlete-directory-card-copy a:hover { color: #087f6b; }
.athlete-directory-card-copy small { overflow: hidden; color: #829188; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.athlete-directory-card-details { display: grid; gap: 0; margin: 0; }
.athlete-directory-card-details > div { min-width: 0; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 9px; padding: 7px 0; border-top: 1px solid #edf2ee; }
.athlete-directory-card-details dt { color: #87978e; font-size: 10.5px; }
.athlete-directory-card-details dd { overflow: hidden; margin: 0; color: #4e6558; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.athlete-directory-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 9px; border-top: 1px solid #edf2ee; }
.athlete-directory-grid-empty { grid-column: 1 / -1; display: grid; justify-items: center; gap: 7px; padding: 32px 20px; border: 1px solid #dfebe4; border-radius: 18px; background: #fff; text-align: center; }
.athlete-directory-grid-empty strong { color: #385243; font-family: 'Prompt', sans-serif; font-size: 18px; }
.athlete-directory-grid-empty p { margin: 0 0 5px; color: #89968f; font-size: 12px; }

@media (max-width: 900px) {
    .athlete-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .athlete-directory-header-actions { width: auto; justify-content: flex-start; }
    .athlete-directory-add-row { margin: -3px 0 0; }
    .athlete-directory-add-row .athlete-add-button { min-height: 44px; }
    .athlete-directory-search-form { flex-wrap: wrap; }
    .athlete-directory-search-form .directory-search-box,
    .athlete-directory-search-form .athlete-sport-filter { flex: 1 1 100%; }
    .athlete-directory-search-form .directory-search-button,
    .athlete-directory-search-form .directory-clear-button { flex: 1; }
    .athlete-directory-results-heading { align-items: flex-start; flex-direction: column; }
    .athlete-directory-results-heading .directory-results-actions { width: 100%; justify-content: space-between; }
    .athlete-directory-grid { grid-template-columns: 1fr; }
    .athlete-directory-page .sport-list-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
    .athlete-directory-page .sport-list-footer .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Coach directory layout follows the sports directory */
.coach-directory-page { max-width: 1440px; display: flex; flex-direction: column; gap: 18px; margin: 0 auto; }
.coach-directory-titlebar { position: relative; display: flex; align-items: center; min-height: 126px; margin: 0; padding: 25px 30px 25px 34px; overflow: hidden; border: 1px solid #dfebe4; border-radius: 22px; background: #fff; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.coach-directory-titlebar::before { position: absolute; top: 24px; bottom: 24px; left: 0; width: 5px; border-radius: 0 5px 5px 0; background: #087f6b; content: ''; }
.coach-directory-title-copy { position: relative; z-index: 1; }
.coach-directory-titlebar .page-eyebrow { color: #8a9a91; }
.coach-directory-titlebar h1 { margin: 5px 0 2px; color: #244736; font-family: 'Prompt', sans-serif; font-size: 30px; font-weight: 650; letter-spacing: -.025em; }
.coach-directory-titlebar p { margin: 0; color: #7b8b82; font-size: 13px; }
.coach-directory-action-row { display: flex; justify-content: flex-end; margin: -7px 4px 0; }
.coach-directory-action-row .coach-management-link { min-height: 46px; padding: 0 17px; border-radius: 13px; font-size: 13px; }
.coach-directory-page .coach-directory-overview { display: block; margin: 0; }
.coach-directory-page .coach-directory-summary { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.coach-directory-page .coach-directory-summary article { border-color: #dfebe4; border-radius: 17px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.coach-directory-page .coach-directory-status-tabs { min-width: 0; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 7px; overflow-x: auto; padding: 8px 11px; border: 1px solid #dfebe4; border-radius: 16px; background: #fff; scrollbar-width: thin; }
.coach-directory-page .coach-directory-status-tabs a { width: max-content; min-height: 38px; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; padding: 5px 11px; border: 1px solid transparent; border-radius: 11px; color: #71847a; background: transparent; font-size: 12px; text-decoration: none; white-space: nowrap; }
.coach-directory-page .coach-directory-status-tabs a b { min-width: 24px; height: 23px; display: grid; place-items: center; padding: 0 5px; border-radius: 8px; color: #687d70; background: #f3f8f4; font-size: 10.5px; }
.coach-directory-page .coach-directory-status-tabs a:hover { border-color: #dcebe0; color: #087f6b; background: #f1f7f3; }
.coach-directory-page .coach-directory-status-tabs a.is-active { border-color: #087f6b; color: #fff; background: #087f6b; }
.coach-directory-page .coach-directory-status-tabs a.is-active b { color: #fff; background: rgba(255,255,255,.18); }
.coach-directory-search-form { width: 100%; max-width: none; }
.coach-directory-search-form .coach-sport-filter { flex: 0 1 255px; }
.coach-directory-search-form .coach-sport-filter select { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #dce8e1; border-radius: 13px; color: #344d40; background: #fff; font: inherit; font-size: 13px; }
.coach-directory-search-form .coach-sport-filter select:focus { border-color: #4da98d; outline: 0; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.coach-directory-results-heading { align-items: flex-end; gap: 15px; }
.coach-directory-results-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.coach-directory-results-heading .directory-results-actions { flex-wrap: nowrap; }
.coach-directory-list-view { overflow-x: auto; border: 1px solid #dfebe4; border-radius: 18px; background: #fff; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.coach-directory-page .coach-directory-table { min-width: 900px; }
.coach-directory-page .coach-directory-table th { height: 46px; background: #f5f9f6; }
.coach-directory-page .coach-directory-table td { height: 67px; }
.coach-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.coach-directory-card { min-width: 0; display: flex; flex-direction: column; gap: 13px; padding: 17px; border: 1px solid #dfebe4; border-radius: 20px; background: #fff; box-shadow: 0 5px 18px rgba(35,75,57,.045); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.coach-directory-card:hover { transform: translateY(-2px); border-color: #cfe0d2; box-shadow: 0 12px 26px rgba(35,75,57,.08); }
.coach-directory-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.coach-directory-card-top .person-avatar { width: 54px; height: 54px; }
.coach-directory-card-copy { min-width: 0; display: grid; gap: 3px; }
.coach-directory-card-copy a { overflow: hidden; color: #254737; font-family: 'Prompt', sans-serif; font-size: 17px; font-weight: 600; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.coach-directory-card-copy a:hover { color: #087f6b; }
.coach-directory-card-copy small { overflow: hidden; color: #829188; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.coach-directory-card-details { display: grid; gap: 0; margin: 0; }
.coach-directory-card-details > div { min-width: 0; display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 9px; padding: 7px 0; border-top: 1px solid #edf2ee; }
.coach-directory-card-details dt { color: #87978e; font-size: 10.5px; }
.coach-directory-card-details dd { overflow: hidden; margin: 0; color: #4e6558; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.coach-directory-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: auto; padding-top: 9px; border-top: 1px solid #edf2ee; }
.coach-directory-grid-empty { grid-column: 1 / -1; display: grid; justify-items: center; gap: 7px; padding: 32px 20px; border: 1px solid #dfebe4; border-radius: 18px; background: #fff; text-align: center; }
.coach-directory-grid-empty strong { color: #385243; font-family: 'Prompt', sans-serif; font-size: 18px; }
.coach-directory-grid-empty p { margin: 0 0 5px; color: #89968f; font-size: 12px; }
.coach-directory-page .coach-directory-footer { margin-top: 0; padding: 6px 2px; border: 0; background: transparent; }

@media (max-width: 900px) {
    .coach-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .coach-directory-titlebar { min-height: 110px; padding: 21px 21px 21px 25px; border-radius: 19px; }
    .coach-directory-titlebar h1 { font-size: 26px; }
    .coach-directory-titlebar p { max-width: 100%; }
    .coach-directory-action-row { margin: -3px 0 0; }
    .coach-directory-action-row .coach-management-link { width: 100%; min-height: 44px; justify-content: center; }
    .coach-directory-page .coach-directory-summary { grid-template-columns: 1fr; }
    .coach-directory-search-form { flex-wrap: wrap; }
    .coach-directory-search-form .directory-search-box,
    .coach-directory-search-form .coach-sport-filter { flex: 1 1 100%; }
    .coach-directory-search-form .directory-search-button,
    .coach-directory-search-form .directory-clear-button { flex: 1; }
    .coach-directory-results-heading { align-items: flex-start; flex-direction: column; }
    .coach-directory-results-heading .directory-results-actions { width: 100%; justify-content: space-between; }
    .coach-directory-grid { grid-template-columns: 1fr; }
    .coach-directory-page .coach-directory-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
    .coach-directory-page .coach-directory-footer .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Athlete call-up request directory layout */
.call-up-directory-page { max-width: 1440px; display: flex; flex-direction: column; gap: 18px; margin: 0 auto; }
.call-up-directory-titlebar { margin: 0; }
.call-up-directory-add-row { display: flex; justify-content: flex-end; margin: -7px 4px 0; }
.call-up-directory-add-row .call-up-add-button { min-height: 46px; padding: 0 16px; border-radius: 13px; font-size: 13px; }
.call-up-directory-page .athlete-history-flash { margin: 0; border-radius: 14px; }
.call-up-directory-page .call-up-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.call-up-directory-page .call-up-summary article { min-height: 82px; border: 1px solid #dfebe4; border-radius: 17px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.call-up-directory-search-form { width: 100%; max-width: none; }
.call-up-directory-search-form .call-up-type-filter { flex: 0 1 255px; }
.call-up-directory-search-form .call-up-type-filter select { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #dce8e1; border-radius: 13px; color: #344d40; background: #fff; font: inherit; font-size: 13px; }
.call-up-directory-search-form .call-up-type-filter select:focus { border-color: #4da98d; outline: 0; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.call-up-directory-results-heading { align-items: flex-end; gap: 15px; }
.call-up-directory-results-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.call-up-directory-list-view { overflow-x: auto; border: 1px solid #dfebe4; border-radius: 18px; background: #fff; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.call-up-directory-page .call-up-directory-table { min-width: 1080px; }
.call-up-directory-page .call-up-directory-table th { height: 46px; background: #f5f9f6; }
.call-up-directory-page .call-up-directory-table td { height: 68px; }
.call-up-directory-page .call-up-directory-footer { margin-top: 0; padding: 6px 2px; border: 0; background: transparent; }

@media (max-width: 620px) {
    .call-up-directory-add-row { margin: -3px 0 0; }
    .call-up-directory-add-row .call-up-add-button { width: 100%; min-height: 44px; justify-content: center; }
    .call-up-directory-page .call-up-summary { grid-template-columns: 1fr; }
    .call-up-directory-search-form { flex-wrap: wrap; }
    .call-up-directory-search-form .directory-search-box,
    .call-up-directory-search-form .call-up-type-filter { flex: 1 1 100%; }
    .call-up-directory-search-form .directory-search-button,
    .call-up-directory-search-form .directory-clear-button { flex: 1; }
    .call-up-directory-results-heading { align-items: flex-start; flex-direction: column; }
    .call-up-directory-page .call-up-directory-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
    .call-up-directory-page .call-up-directory-footer .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Athlete create and edit form */
.athlete-edit-page { max-width: 1440px; display: flex; flex-direction: column; gap: 16px; margin: 0 auto; }
.athlete-edit-page .athlete-form-header { margin: 0; }
.athlete-edit-back-row { display: flex; justify-content: flex-end; margin-top: -6px; }
.athlete-edit-back-row .button-secondary { min-height: 42px; padding: 0 14px; border-radius: 12px; }
.athlete-edit-page .athlete-edit-form-panel { width: 100%; max-width: none; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 8px 24px rgba(35,75,57,.045); }
.athlete-edit-page .sport-form-intro { min-height: 84px; padding: 18px 27px; background: #fbfdfb; }
.athlete-edit-page .sport-form-icon { width: 43px; height: 43px; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.athlete-edit-page .sport-form-icon svg { width: 22px; height: 22px; }
.athlete-edit-page .sport-form-intro h2 { color: #254737; font-size: 19px; }
.athlete-edit-page .athlete-directory-form { padding: 26px 28px 24px; }
.athlete-edit-page .athlete-directory-form .form-field { margin-bottom: 22px; }
.athlete-edit-page .athlete-directory-form .form-field > label,
.athlete-edit-page .athlete-directory-form .status-form-copy strong { color: #344d40; font-size: 13.5px; }
.athlete-edit-page .athlete-directory-form .form-field > input,
.athlete-edit-page .athlete-directory-form .form-field > textarea,
.athlete-edit-page .athlete-directory-form .form-field > select { border-color: #dce8e1; border-radius: 11px; font-size: 14px; }
.athlete-edit-page .athlete-directory-form .form-field > input { height: 48px; padding: 0 14px; }
.athlete-edit-page .athlete-directory-form .form-field > textarea { min-height: 116px; padding: 12px 14px; }
.athlete-edit-page .athlete-directory-form .form-field > select { min-height: 48px; padding: 8px 14px; font-size: 14px; }
.athlete-edit-page .athlete-directory-form .form-field > input:focus,
.athlete-edit-page .athlete-directory-form .form-field > textarea:focus,
.athlete-edit-page .athlete-directory-form .form-field > select:focus { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.athlete-edit-page .athlete-source-profile { gap: 16px; margin-bottom: 22px; padding: 16px; border-color: #dce8e1; border-radius: 15px; background: #f8fbf8; }
.athlete-edit-page .athlete-source-profile .person-avatar { width: 64px; height: 72px; border-radius: 11px; }
.athlete-edit-page .athlete-source-profile strong { color: #254737; font-family: 'Prompt', sans-serif; font-size: 16px; }
.athlete-edit-page .athlete-source-profile span:not(.person-avatar):not(.person-avatar-fallback) { color: #63796c; font-size: 12.5px; }
.athlete-edit-page .athlete-source-profile small { color: #829188; font-size: 12px; }
.athlete-edit-page .athlete-source-profile p { max-width: 285px; margin: 0 0 0 auto; padding: 10px 12px; border-left: 3px solid #b9dccb; border-radius: 0 10px 10px 0; color: #6d8376; background: #fff; font-size: 11.5px; text-align: left; }
.athlete-edit-page .athlete-directory-basic-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; }
.athlete-edit-page .athlete-status-field { min-height: 100px; padding: 17px 18px; border-color: #dce8e1; border-radius: 14px; background: #f8fbf8; }
.athlete-edit-page .athlete-status-field .status-form-copy small { max-width: 640px; color: #788a80; font-size: 12px; line-height: 1.65; }
.athlete-edit-page .athlete-status-field > select { min-height: 46px; padding: 7px 13px; border-color: #dce8e1; border-radius: 11px; font-size: 14px; }
.athlete-edit-page .sport-form-actions { margin-top: 25px; padding-top: 18px; gap: 10px; border-color: #e7eee9; }
.athlete-edit-page .sport-form-actions .button-secondary { min-height: 46px; padding: 0 18px; border-color: #dce8e1; border-radius: 12px; color: #53645a; font-size: 14px; }
.athlete-edit-page .sport-form-actions .button-secondary:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.athlete-edit-page .save-sport-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 22px; border: 1px solid #087f6b; border-radius: 12px; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.16); font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.athlete-edit-page .save-sport-button:hover { transform: translateY(-1px); border-color: #066a5a; background: #066a5a; box-shadow: 0 7px 15px rgba(8,127,107,.22); }
.athlete-edit-page .save-sport-button:focus-visible,
.athlete-edit-page .sport-form-actions .button-secondary:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.athlete-edit-page .physical-validation-summary { margin: 0; border-radius: 14px; }

@media (max-width: 700px) {
    .athlete-edit-page .athlete-directory-form { padding: 19px 16px; }
    .athlete-edit-page .sport-form-intro { padding: 16px; }
    .athlete-edit-page .athlete-source-profile { gap: 12px; }
    .athlete-edit-page .athlete-source-profile p { width: 100%; max-width: none; margin: 0; }
    .athlete-edit-page .athlete-directory-basic-fields { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .athlete-edit-page .athlete-form-header { min-height: 135px; }
    .athlete-edit-back-row { margin-top: -3px; }
    .athlete-edit-back-row .button-secondary { width: 100%; justify-content: center; }
    .athlete-edit-page .athlete-directory-form .form-field > label,
    .athlete-edit-page .athlete-directory-form .status-form-copy strong { font-size: 13px; }
    .athlete-edit-page .athlete-status-field { padding: 14px; }
    .athlete-edit-page .sport-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .athlete-edit-page .sport-form-actions .button-secondary,
    .athlete-edit-page .save-sport-button { width: 100%; justify-content: center; }
}

/* Sports management directory */
.sports-management-page { max-width: 1440px; display: flex; flex-direction: column; gap: 16px; margin: 0 auto; }
.sports-management-header { min-height: 142px; margin: 0; }
.sports-management-header h1 { text-align: left; }
.sports-management-header .sports-directory-header-count { min-width: 130px; }
.sports-management-action-row { display: flex; justify-content: flex-end; margin: -7px 4px 0; }
.sports-management-action-row .management-settings-link { min-height: 44px; gap: 10px; padding: 0 16px; border-color: #dce8e1; border-radius: 13px; color: #4d6658; font-size: 13px; }
.sports-management-action-row .management-settings-link span { color: #087f6b; font-size: 17px; transition: transform .16s ease; }
.sports-management-action-row .management-settings-link:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.sports-management-action-row .management-settings-link:hover span { transform: translateX(3px); }
.sports-management-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.sports-management-summary .sport-summary-card { min-height: 92px; border-color: #dfebe4; border-radius: 18px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sports-management-list-panel { overflow: hidden; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sports-management-list-panel .list-panel-heading { min-height: 78px; padding: 15px 20px; border-color: #e8f0ea; }
.sports-management-list-panel .list-panel-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.sports-management-list-panel .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; }
.sports-management-list-panel .list-total { padding: 8px 12px; border: 1px solid #dfebe4; border-radius: 13px; background: #f9fcfa; }
.sports-management-list-panel .list-total b { color: #087f6b; }
.sports-management-list-panel .management-filters { min-height: 75px; gap: 10px; padding: 13px 20px; border-bottom: 1px solid #e8f0ea; background: #fbfdfb; }
.sports-management-list-panel .management-filters .sport-search { width: auto; min-height: 47px; flex: 1 1 320px; gap: 10px; padding: 0 14px; border-color: #dce8e1; border-radius: 13px; }
.sports-management-list-panel .management-filters .sport-search svg { width: 18px; height: 18px; }
.sports-management-list-panel .management-filters .sport-search input { height: 43px; font-size: 14px; }
.sports-management-list-panel .management-filters .filter-submit { min-height: 47px; padding: 0 20px; border: 1px solid #087f6b; border-radius: 13px; color: #fff; background: #087f6b; font-size: 13px; font-weight: 650; cursor: pointer; transition: background .16s ease, border-color .16s ease; }
.sports-management-list-panel .management-filters .filter-submit:hover { border-color: #066a5a; background: #066a5a; }
.sports-management-list-panel .management-table { min-width: 820px; }
.sports-management-list-panel .management-table th { height: 47px; padding-right: 16px; padding-left: 16px; background: #f5f9f6; }
.sports-management-list-panel .management-table td { height: 66px; padding-right: 16px; padding-left: 16px; }
.sports-management-list-panel .management-table .sport-number-col { width: 76px; padding-left: 20px !important; }
.sports-management-list-panel .management-table .sport-action-col { width: 150px; text-align: right; padding-right: 25px; }
.sports-management-list-panel .management-table .sport-name-cell { gap: 11px; }
.sports-management-list-panel .management-table .sport-row-icon { width: 36px; height: 36px; border-radius: 11px; color: #96773f; background: #faf4e5; }
.sports-management-list-panel .management-table .sport-row-icon svg { width: 18px; height: 18px; }
.sports-management-list-panel .management-table .sport-name-cell strong { color: #344d40; font-size: 14px; }
.sports-management-list-panel .management-table .sport-row-number { color: #9ba99f !important; }
.sports-management-list-panel .manage-sport-link { min-height: 36px; justify-content: center; padding: 0 11px; border: 1px solid #dce8e1; border-radius: 11px; color: #087f6b; background: #fff; font-size: 12px; transition: background .16s ease, border-color .16s ease; }
.sports-management-list-panel .manage-sport-link span { font-size: 16px; }
.sports-management-list-panel .manage-sport-link:hover { border-color: #b9d7c7; background: #f4faf6; }
.sports-management-list-panel .sport-list-footer { min-height: 60px; padding: 10px 20px; border-top: 1px solid #e8f0ea; background: #fff; }

@media (max-width: 900px) {
    .sports-management-header { min-height: 130px; }
}

@media (max-width: 620px) {
    .sports-management-page { gap: 14px; }
    .sports-management-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 14px; padding: 20px; border-radius: 19px; }
    .sports-management-header h1 { font-size: 25px; }
    .sports-management-header .sports-directory-header-count { min-width: 110px; padding: 11px 14px; }
    .sports-management-action-row { margin: -2px 0 0; }
    .sports-management-action-row .management-settings-link { width: 100%; justify-content: center; }
    .sports-management-summary { grid-template-columns: 1fr; gap: 9px; }
    .sports-management-summary .sport-summary-card { min-height: 78px; }
    .sports-management-list-panel .list-panel-heading { min-height: 70px; padding: 13px 15px; }
    .sports-management-list-panel .management-filters { flex-wrap: wrap; padding: 13px 15px; }
    .sports-management-list-panel .management-filters .sport-search { flex: 1 1 100%; }
    .sports-management-list-panel .management-filters .filter-submit { flex: 1; }
    .sports-management-list-panel .management-filters .filter-reset { flex: 1; text-align: center; }
    .sports-management-list-panel .management-table { min-width: 760px; }
    .sports-management-list-panel .sport-list-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 12px 15px; }
    .sports-management-list-panel .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Physical education competition directory */
.physical-competition-directory { max-width: 1440px; display: flex; flex-direction: column; gap: 16px; margin: 0 auto; }
.physical-competition-header { min-height: 142px; margin: 0; }
.physical-competition-header h1 { text-align: left; }
.physical-competition-header .sports-directory-header-count { min-width: 130px; }
.physical-competition-action-row { display: flex; justify-content: flex-end; margin: -7px 4px 0; }
.physical-competition-add-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; border: 1px solid #087f6b; border-radius: 13px; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.15); font-size: 13px; font-weight: 650; text-decoration: none; transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.physical-competition-add-button > span { font-size: 19px; font-weight: 400; line-height: 1; }
.physical-competition-add-button:hover { transform: translateY(-1px); border-color: #066a5a; color: #fff; background: #066a5a; box-shadow: 0 7px 16px rgba(8,127,107,.2); }
.physical-competition-list-panel { overflow: hidden; padding-bottom: 0; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.physical-competition-list-panel .list-panel-heading { min-height: 78px; padding: 15px 20px; border-color: #e8f0ea; }
.physical-competition-list-panel .list-panel-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.physical-competition-list-panel .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; }
.physical-competition-list-panel .list-total { padding: 8px 12px; border: 1px solid #dfebe4; border-radius: 13px; background: #f9fcfa; }
.physical-competition-list-panel .list-total b { color: #087f6b; }
.physical-competition-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px 20px; }
.physical-competition-card { min-width: 0; display: grid; grid-template-columns: minmax(260px, 1.1fr) minmax(0, 1.8fr) auto; align-items: center; gap: 20px; padding: 18px 20px; border: 1px solid #dfebe4; border-radius: 17px; background: linear-gradient(110deg, #fff 48%, #f9fcfa 100%); box-shadow: 0 4px 15px rgba(35,75,57,.035); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.physical-competition-card:hover { transform: translateY(-1px); border-color: #cbded1; box-shadow: 0 9px 22px rgba(35,75,57,.07); }
.physical-competition-card-main { min-width: 0; display: flex; align-items: center; gap: 14px; }
.physical-competition-icon { width: 54px; height: 54px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid #f0e5c8; border-radius: 16px; background: #fbf5e8; font-size: 26px; }
.physical-competition-card-copy { min-width: 0; display: grid; gap: 3px; }
.physical-competition-edition { justify-self: start; padding: 4px 9px; border: 1px solid #dcebe1; border-radius: 20px; color: #478063; background: #f0f7f1; font-size: 10.5px; font-weight: 650; }
.physical-competition-card h3 { overflow: hidden; margin: 2px 0 0; color: #254737; font-family: 'Prompt', sans-serif; font-size: 16px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.physical-competition-meta { overflow: hidden; min-height: 0; margin: 0; color: #829188; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.physical-competition-card-stats { display: grid; grid-template-columns: repeat(5, minmax(65px, 1fr)); gap: 7px; margin: 0; padding: 0; border: 0; color: #67786d; }
.physical-competition-card-stats > span:first-child { margin: 0; }
.physical-competition-stat { min-width: 0; min-height: 54px; display: grid; align-content: center; justify-items: center; gap: 1px; padding: 6px 7px; border: 1px solid #e8efe9; border-radius: 12px; background: #fff; }
.physical-competition-stat span { color: #829188; font-size: 10px; white-space: nowrap; }
.physical-competition-stat strong { color: #3c5547; font-family: 'Prompt', sans-serif; font-size: 16px; font-weight: 600; line-height: 1.2; }
.physical-competition-sport-stat strong { color: #087f6b; }
.physical-competition-medal-total { background: #fcfaf3; border-color: #f0ead6; }
.physical-competition-medal-total strong { color: #857239; }
.physical-competition-gold strong { color: #a47b24; }
.physical-competition-silver strong { color: #73818a; }
.physical-competition-bronze strong { color: #a06c4b; }
.physical-competition-open { min-height: 38px; align-self: center; display: inline-flex; align-items: center; justify-content: center; gap: 6px; margin: 0; padding: 0 11px; border: 1px solid #dce8e1; border-radius: 11px; color: #087f6b; background: #fff; font-size: 12px; white-space: nowrap; text-decoration: none; }
.physical-competition-open span { color: #9a895a; font-size: 16px; transition: transform .16s ease; }
.physical-competition-open:hover { border-color: #b9d7c7; color: #066a5a; background: #f4faf6; }
.physical-competition-open:hover span { transform: translateX(3px); }
.physical-competition-empty { min-height: 230px; border: 1px dashed #dce8e1; border-radius: 16px; background: #fbfdfb; }
.physical-competition-empty > span { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid #f0e5c8; border-radius: 16px; background: #fbf5e8; font-size: 25px; }
.physical-competition-empty strong { color: #344d40; font-family: 'Prompt', sans-serif; font-size: 18px; }
.physical-competition-empty p { color: #829188; font-size: 12px; }
.physical-competition-list-panel > .sport-list-footer { min-height: 60px; padding: 10px 20px; border-top: 1px solid #e8f0ea; background: #fff; }

@media (max-width: 1050px) {
    .physical-competition-card { grid-template-columns: minmax(0, 1fr) auto; gap: 15px; }
    .physical-competition-card-main { grid-column: 1; }
    .physical-competition-open { grid-column: 2; grid-row: 1; }
    .physical-competition-card-stats { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
    .physical-competition-directory { gap: 14px; }
    .physical-competition-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 14px; padding: 20px; border-radius: 19px; }
    .physical-competition-header h1 { font-size: 25px; }
    .physical-competition-header .sports-directory-header-count { min-width: 110px; padding: 11px 14px; }
    .physical-competition-action-row { margin: -2px 0 0; }
    .physical-competition-add-button { width: 100%; min-height: 44px; }
    .physical-competition-list-panel .list-panel-heading { min-height: 70px; padding: 13px 15px; }
    .physical-competition-grid { gap: 10px; padding: 12px; }
    .physical-competition-card { grid-template-columns: minmax(0, 1fr); gap: 13px; padding: 14px; border-radius: 15px; }
    .physical-competition-card-main, .physical-competition-card-stats, .physical-competition-open { grid-column: 1; }
    .physical-competition-open { grid-row: auto; width: 100%; }
    .physical-competition-card-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
    .physical-competition-stat { min-height: 50px; padding: 5px 3px; border-radius: 10px; }
    .physical-competition-stat span { font-size: 9px; }
    .physical-competition-stat strong { font-size: 14px; }
    .physical-competition-list-panel > .sport-list-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 12px 15px; }
    .physical-competition-list-panel .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Physical education competition detail */
.physical-competition-detail-page { max-width: 1440px; display: flex; flex-direction: column; gap: 16px; margin: 0 auto; }
.physical-detail-header { min-height: 142px; margin: 0; }
.physical-detail-header h1 { text-align: left; }
.physical-detail-header .sports-directory-header-count { min-width: 125px; }
.physical-detail-action-row { display: flex; justify-content: flex-end; gap: 9px; margin: -7px 4px 0; }
.physical-detail-action-row .physical-detail-back-button,
.physical-detail-action-row .physical-detail-edit-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 16px; border-radius: 12px; font-size: 13px; font-weight: 650; text-decoration: none; }
.physical-detail-action-row .physical-detail-back-button { border: 1px solid #dce8e1; color: #52695b; background: #fff; }
.physical-detail-action-row .physical-detail-back-button:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.physical-detail-action-row .physical-detail-edit-button { border: 1px solid #087f6b; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.15); transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.physical-detail-action-row .physical-detail-edit-button:hover { transform: translateY(-1px); border-color: #066a5a; background: #066a5a; box-shadow: 0 7px 16px rgba(8,127,107,.2); }
.physical-detail-action-row a:focus-visible,
.physical-detail-add-sport .physical-add-sport-submit:focus-visible,
.physical-detail-add-sport-trigger:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.physical-competition-detail-page .physical-validation-summary { margin: 0; border-radius: 14px; }
.physical-detail-medal-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.physical-detail-medal-summary .sport-summary-card { min-height: 92px; gap: 13px; padding: 13px 16px; border-color: #dfebe4; border-radius: 17px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.physical-detail-medal-summary .physical-medal-summary-image,
.physical-detail-medal-summary .physical-medal-summary-image img { width: 42px; height: 50px; }
.physical-detail-medal-summary .summary-copy > span { color: #7d9086; font-size: 11.5px; }
.physical-detail-medal-summary .summary-copy strong { color: #304438; font-family: 'Prompt', sans-serif; font-size: 24px; font-weight: 600; }
.physical-detail-medal-summary .summary-copy small { color: #8b9990; font-size: 11px; font-weight: 500; }
.physical-detail-add-sport { margin: 0; border: 1px solid #dfebe4; border-radius: 15px; background: #fff; box-shadow: 0 4px 15px rgba(35,75,57,.035); }
.physical-detail-add-sport > summary { min-height: 54px; display: flex; align-items: center; padding: 0 18px; border-radius: 15px; color: #087f6b; background: #f9fcfa; font-size: 13px; font-weight: 650; }
.physical-detail-add-sport > summary::after { margin-left: auto; font-size: 18px; transition: transform .16s ease; }
.physical-detail-add-sport[open] > summary { border-radius: 15px 15px 0 0; border-bottom: 1px solid #e8f0ea; }
.physical-detail-add-sport[open] > summary::after { transform: rotate(180deg); }
.physical-detail-add-sport .physical-add-sport-body { padding: 15px 18px 18px; }
.physical-detail-add-sport .physical-add-sport-body > p { margin-bottom: 11px; color: #829188; font-size: 12px; }
.physical-detail-add-sport .physical-add-sport-form { width: 100%; max-width: 700px; flex: 0 1 700px; gap: 9px; }
.physical-detail-add-sport .physical-add-sport-form select { min-height: 46px; padding: 0 13px; border: 1px solid #dce8e1; border-radius: 11px; color: #344d40; background: #fff; font: inherit; font-size: 13px; }
.physical-detail-add-sport .physical-add-sport-form select:focus { border-color: #4da98d; outline: 0; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.physical-detail-add-sport .physical-add-sport-submit { min-height: 46px; padding: 0 18px; border: 1px solid #087f6b; border-radius: 11px; color: #fff; background: #087f6b; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; }
.physical-detail-add-sport .physical-add-sport-submit:hover { border-color: #066a5a; background: #066a5a; }
.physical-detail-add-sport .physical-no-sports { max-width: none; margin: 0; padding: 10px 12px; border: 1px solid #f0ead6; border-radius: 11px; background: #fcfaf3; text-align: left; }
.physical-detail-add-sport .physical-field-error { display: block; margin: 8px 0 0; }
.physical-detail-sports-panel { overflow: hidden; border: 1px solid #dfebe4; border-radius: 19px; background: #fff; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.physical-detail-sports-panel .physical-section-heading { min-height: 76px; align-items: center; margin: 0; padding: 14px 20px; border-bottom: 1px solid #e8f0ea; }
.physical-detail-sports-panel .physical-section-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 20px; font-weight: 600; }
.physical-detail-sports-panel .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; }
.physical-detail-sports-panel .physical-section-heading > span { padding: 7px 11px; border: 1px solid #dfebe4; border-radius: 12px; color: #087f6b; background: #f9fcfa; font-size: 12px; font-weight: 650; }
.physical-detail-sports-panel .physical-competition-sport-list { gap: 9px; padding: 15px 20px 19px; }
.physical-detail-sports-panel .physical-competition-sport-row { min-height: 78px; grid-template-columns: 42px minmax(180px, 1fr) minmax(235px, auto) auto; gap: 15px; padding: 12px 15px; border-color: #e3ece5; border-radius: 14px; box-shadow: 0 2px 8px rgba(35,75,57,.025); }
.physical-detail-sports-panel .physical-competition-sport-row:hover { border-color: #c6dccd; background: #fcfefc; box-shadow: 0 7px 16px rgba(35,75,57,.06); }
.physical-detail-sports-panel .physical-sport-number { width: 38px; height: 38px; border: 1px solid #dfebe4; border-radius: 12px; color: #087f6b; background: #eff7f1; font-family: Arial, sans-serif; font-size: 11px; }
.physical-detail-sports-panel .physical-competition-sport-name { gap: 3px; }
.physical-detail-sports-panel .physical-competition-sport-name strong { color: #344d40; font-family: 'Prompt', sans-serif; font-size: 14px; }
.physical-detail-sports-panel .physical-competition-sport-name small { color: #89988e; font-size: 11px; }
.physical-detail-sports-panel .physical-sport-medals { justify-content: flex-end; gap: 8px; }
.physical-detail-sports-panel .physical-sport-medals .medal-mini { min-width: 58px; padding: 7px 8px; border: 1px solid #edf1ed; border-radius: 10px; background: #fff; font-size: 11px; text-align: center; }
.physical-detail-sports-panel .physical-sport-row-action { display: inline-flex; align-items: center; gap: 6px; color: #087f6b; font-size: 11.5px; font-weight: 650; }
.physical-detail-sports-panel .physical-sport-row-action b { color: #9a895a; transition: transform .16s ease; }
.physical-detail-sports-panel .physical-competition-sport-row:hover .physical-sport-row-action b { transform: translateX(3px); }
.physical-detail-sports-panel .physical-no-competition-sports { min-height: 220px; margin: 0; border-color: #dce8e1; border-radius: 15px; background: #fbfdfb; }
.physical-detail-add-sport-trigger { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 0 15px; border: 1px solid #087f6b; border-radius: 11px; color: #fff; background: #087f6b; font-size: 12.5px; font-weight: 650; cursor: pointer; }
.physical-detail-add-sport-trigger:hover { border-color: #066a5a; background: #066a5a; }

@media (max-width: 1120px) {
    .physical-detail-medal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .physical-detail-sports-panel .physical-competition-sport-row { grid-template-columns: 42px minmax(150px, 1fr) auto; }
    .physical-detail-sports-panel .physical-sport-medals { grid-column: 2 / -1; justify-content: flex-start; }
    .physical-detail-sports-panel .physical-sport-row-action { grid-column: 3; grid-row: 1; justify-self: end; }
}

@media (max-width: 860px) {
    .physical-detail-header { min-height: 130px; }
    .physical-detail-sports-panel .physical-section-heading { align-items: flex-start; }
}

@media (max-width: 620px) {
    .physical-competition-detail-page { gap: 14px; }
    .physical-detail-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 14px; padding: 20px; border-radius: 19px; }
    .physical-detail-header h1 { font-size: 25px; }
    .physical-detail-header .sports-directory-header-count { min-width: 110px; padding: 11px 14px; }
    .physical-detail-action-row { margin: -2px 0 0; }
    .physical-detail-action-row > a { flex: 1; }
    .physical-detail-medal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .physical-detail-medal-summary .sport-summary-card { min-height: 72px; gap: 7px; padding: 9px; border-radius: 14px; }
    .physical-detail-medal-summary .physical-medal-summary-image,
    .physical-detail-medal-summary .physical-medal-summary-image img { width: 34px; height: 42px; }
    .physical-detail-medal-summary .summary-copy > span { font-size: 10px; }
    .physical-detail-medal-summary .summary-copy strong { font-size: 19px; }
    .physical-detail-medal-summary .summary-copy small { font-size: 9px; }
    .physical-detail-add-sport > summary { min-height: 49px; padding: 0 13px; }
    .physical-detail-add-sport .physical-add-sport-body { padding: 12px; }
    .physical-detail-add-sport .physical-add-sport-form { flex-direction: column; }
    .physical-detail-add-sport .physical-add-sport-submit { width: 100%; }
    .physical-detail-sports-panel .physical-section-heading { min-height: 0; align-items: flex-start; padding: 13px 14px; }
    .physical-detail-sports-panel .physical-section-heading h2 { font-size: 17px; }
    .physical-detail-sports-panel .physical-competition-sport-list { gap: 8px; padding: 11px; }
    .physical-detail-sports-panel .physical-competition-sport-row { grid-template-columns: 34px minmax(0, 1fr); gap: 9px 10px; padding: 11px; border-radius: 12px; }
    .physical-detail-sports-panel .physical-sport-number { width: 32px; height: 32px; border-radius: 10px; }
    .physical-detail-sports-panel .physical-sport-medals { grid-column: 1 / -1; justify-content: flex-start; gap: 5px; }
    .physical-detail-sports-panel .physical-sport-medals .medal-mini { min-width: 0; flex: 1; padding: 7px 4px; font-size: 10px; }
    .physical-detail-sports-panel .physical-sport-row-action { grid-column: 1 / -1; grid-row: auto; justify-self: end; }
}

/* Training records directory */
.training-directory-page { max-width: 1440px; display: flex; flex-direction: column; gap: 16px; margin: 0 auto; }
.training-directory-header { min-height: 142px; margin: 0; }
.training-directory-header h1 { text-align: left; }
.training-directory-header .sports-directory-header-count { min-width: 130px; }
.training-directory-action-row { display: flex; justify-content: flex-end; margin: -7px 4px 0; }
.training-directory-action-row .training-add-button,
.training-directory-empty .training-add-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; border: 1px solid #087f6b; border-radius: 13px; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.15); font-size: 13px; font-weight: 650; text-decoration: none; transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.training-directory-action-row .training-add-button > span,
.training-directory-empty .training-add-button > span { font-size: 19px; font-weight: 400; line-height: 1; }
.training-directory-action-row .training-add-button:hover,
.training-directory-empty .training-add-button:hover { transform: translateY(-1px); border-color: #066a5a; color: #fff; background: #066a5a; box-shadow: 0 7px 16px rgba(8,127,107,.2); }
.training-directory-flash { margin: 0; border-radius: 14px; }
.training-directory-panel { overflow: hidden; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.training-directory-panel .list-panel-heading { min-height: 78px; padding: 15px 20px; border-color: #e8f0ea; }
.training-directory-panel .list-panel-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.training-directory-panel .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; }
.training-directory-panel .list-total { padding: 8px 12px; border: 1px solid #dfebe4; border-radius: 13px; background: #f9fcfa; }
.training-directory-panel .list-total b { color: #087f6b; }
.training-directory-panel .training-directory-filters { min-height: 74px; gap: 10px; padding: 13px 20px; border-bottom: 1px solid #e8f0ea; background: #fbfdfb; }
.training-directory-panel .training-directory-filters .sport-search { width: auto; min-height: 47px; flex: 1 1 320px; gap: 10px; padding: 0 14px; border-color: #dce8e1; border-radius: 13px; }
.training-directory-panel .training-directory-filters .sport-search svg { width: 18px; height: 18px; }
.training-directory-panel .training-directory-filters .sport-search input { height: 43px; font-size: 14px; }
.training-directory-panel .training-directory-filters .filter-submit { min-height: 47px; padding: 0 20px; border: 1px solid #087f6b; border-radius: 13px; color: #fff; background: #087f6b; font-size: 13px; font-weight: 650; cursor: pointer; transition: background .16s ease, border-color .16s ease; }
.training-directory-panel .training-directory-filters .filter-submit:hover { border-color: #066a5a; background: #066a5a; }
.training-directory-table { min-width: 1040px; }
.training-directory-table th { height: 47px; padding: 0 16px; background: #f5f9f6; }
.training-directory-table td { height: 72px; padding: 11px 16px; }
.training-directory-table .training-index-title { min-width: 230px; gap: 4px; }
.training-directory-table .training-index-title strong { color: #344d40; font-family: 'Prompt', sans-serif; font-size: 13.5px; }
.training-directory-table .training-index-title small { color: #829188; font-size: 11.5px; }
.training-directory-table .training-index-date { color: #4e6558; font-size: 12px; }
.training-directory-table .training-index-date small { color: #89988e; }
.training-directory-table .training-index-participants { max-width: 370px; gap: 5px; }
.training-directory-table .training-index-participants > span { padding: 4px 8px; border: 1px solid #e1ece3; border-radius: 20px; color: #557461; background: #f5faf6; font-size: 10.5px; }
.training-directory-table .training-index-participants > small { margin-top: 2px; color: #84948a; font-size: 10.5px; }
.training-directory-table .sport-action-col { width: 140px; text-align: right; padding-right: 22px; }
.training-directory-table .athlete-directory-actions { justify-content: flex-end; gap: 7px; }
.training-directory-table .training-edit-link { min-height: 34px; padding: 0 11px; border: 1px solid #dce8e1; border-radius: 10px; color: #087f6b; background: #fff; font-size: 11.5px; text-decoration: none; }
.training-directory-table .training-edit-link:hover { border-color: #b9d7c7; background: #f4faf6; }
.training-directory-table .training-delete-button { width: 34px; height: 34px; border-radius: 10px; }
.training-directory-empty { min-height: 310px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 30px 20px; background: linear-gradient(180deg,#fff,#fbfdfb); text-align: center; }
.training-directory-empty-icon { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 3px; border: 1px solid #dcebe1; border-radius: 18px; color: #087f6b; background: #eff7f1; }
.training-directory-empty-icon svg { width: 27px; height: 27px; }
.training-directory-empty-eyebrow { color: #8a9a90; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.training-directory-empty strong { color: #344d40; font-family: 'Prompt', sans-serif; font-size: 18px; font-weight: 600; }
.training-directory-empty p { max-width: 430px; margin: 0 0 7px; color: #829188; font-size: 12px; line-height: 1.7; }
.training-directory-empty .training-empty-secondary { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid #dce8e1; border-radius: 11px; color: #087f6b; background: #fff; font-size: 12px; font-weight: 650; text-decoration: none; }
.training-directory-empty .training-empty-secondary:hover { border-color: #b9d7c7; background: #f4faf6; }
.training-directory-panel .training-directory-footer { min-height: 60px; padding: 10px 20px; border-top: 1px solid #e8f0ea; background: #fff; }

@media (max-width: 700px) {
    .training-directory-page { gap: 14px; }
    .training-directory-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 14px; padding: 20px; border-radius: 19px; }
    .training-directory-header h1 { font-size: 25px; }
    .training-directory-header .sports-directory-header-count { min-width: 110px; padding: 11px 14px; }
    .training-directory-action-row { margin: -2px 0 0; }
    .training-directory-action-row .training-add-button { width: 100%; min-height: 44px; }
    .training-directory-panel .list-panel-heading { min-height: 70px; padding: 13px 15px; }
    .training-directory-panel .training-directory-filters { flex-wrap: wrap; padding: 13px 15px; }
    .training-directory-panel .training-directory-filters .sport-search { flex: 1 1 100%; }
    .training-directory-panel .training-directory-filters .filter-submit { flex: 1; }
    .training-directory-panel .training-directory-filters .filter-reset { flex: 1; text-align: center; }
    .training-directory-table { min-width: 980px; }
    .training-directory-empty { min-height: 280px; padding: 25px 16px; }
    .training-directory-panel .training-directory-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 12px 15px; }
    .training-directory-panel .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Independent competitions directory */
.competition-directory-page { max-width: 1440px; display: flex; flex-direction: column; gap: 16px; margin: 0 auto; }
.competition-directory-header { min-height: 142px; margin: 0; }
.competition-directory-header h1 { text-align: left; }
.competition-directory-header .sports-directory-header-count { min-width: 130px; }
.competition-directory-action-row { display: flex; justify-content: flex-end; margin: -7px 4px 0; }
.competition-directory-action-row .competition-add-button,
.competition-directory-empty .competition-add-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; border: 1px solid #087f6b; border-radius: 13px; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.15); font-size: 13px; font-weight: 650; text-decoration: none; transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.competition-directory-action-row .competition-add-button > span,
.competition-directory-empty .competition-add-button > span { font-size: 19px; font-weight: 400; line-height: 1; }
.competition-directory-action-row .competition-add-button:hover,
.competition-directory-empty .competition-add-button:hover { transform: translateY(-1px); border-color: #066a5a; color: #fff; background: #066a5a; box-shadow: 0 7px 16px rgba(8,127,107,.2); }
.competition-directory-flash { margin: 0; border-radius: 14px; }
.competition-directory-panel { overflow: hidden; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.competition-directory-panel .list-panel-heading { min-height: 78px; padding: 15px 20px; border-color: #e8f0ea; }
.competition-directory-panel .list-panel-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 21px; font-weight: 600; }
.competition-directory-panel .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; }
.competition-directory-panel .list-total { padding: 8px 12px; border: 1px solid #dfebe4; border-radius: 13px; background: #f9fcfa; }
.competition-directory-panel .list-total b { color: #087f6b; }
.competition-directory-panel .competition-directory-filters { min-height: 74px; gap: 10px; padding: 13px 20px; border-bottom: 1px solid #e8f0ea; background: #fbfdfb; }
.competition-directory-panel .competition-directory-filters .sport-search { width: auto; min-height: 47px; flex: 1 1 320px; gap: 10px; padding: 0 14px; border-color: #dce8e1; border-radius: 13px; }
.competition-directory-panel .competition-directory-filters .sport-search svg { width: 18px; height: 18px; }
.competition-directory-panel .competition-directory-filters .sport-search input { height: 43px; font-size: 14px; }
.competition-directory-panel .competition-directory-filters .filter-submit { min-height: 47px; padding: 0 20px; border: 1px solid #087f6b; border-radius: 13px; color: #fff; background: #087f6b; font-size: 13px; font-weight: 650; cursor: pointer; transition: background .16s ease, border-color .16s ease; }
.competition-directory-panel .competition-directory-filters .filter-submit:hover { border-color: #066a5a; background: #066a5a; }
.competition-directory-table { min-width: 1120px; }
.competition-directory-table th { height: 47px; padding: 0 15px; background: #f5f9f6; }
.competition-directory-table td { height: 72px; padding: 11px 15px; }
.competition-index-title { min-width: 220px; display: grid; gap: 4px; }
.competition-index-title > a { overflow: hidden; color: #344d40; font-family: 'Prompt', sans-serif; font-size: 13.5px; font-weight: 600; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.competition-index-title > a:hover { color: #087f6b; }
.competition-index-title small { color: #829188; font-size: 11.5px; }
.competition-index-date { min-width: 125px; color: #4e6558 !important; font-size: 12px !important; white-space: nowrap; }
.competition-index-date small { display: block; margin-top: 3px; color: #89988e; font-size: 10.5px; }
.competition-index-venue { max-width: 220px; overflow: hidden; color: #607168 !important; text-overflow: ellipsis; white-space: nowrap; }
.competition-result-count { padding: 5px 8px; border: 1px solid #e1ece3; border-radius: 20px; color: #52745f; background: #f5faf6; font-size: 10.5px; white-space: nowrap; }
.competition-medal-count { color: #79682f; font-size: 12px; font-weight: 650; white-space: nowrap; }
.competition-medal-breakdown { display: block; margin-top: 4px; color: #8a978f; font-size: 10.5px; white-space: nowrap; }
.competition-directory-table .sport-action-col { width: 145px; text-align: right; padding-right: 21px; }
.competition-directory-table .athlete-directory-actions { justify-content: flex-end; gap: 7px; }
.competition-open-link { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid #dce8e1; border-radius: 10px; color: #087f6b; background: #fff; font-size: 11.5px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.competition-open-link:hover { border-color: #b9d7c7; background: #f4faf6; }
.competition-directory-table .competition-delete-button { width: 34px; height: 34px; border-radius: 10px; }
.competition-directory-empty { min-height: 310px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 30px 20px; background: linear-gradient(180deg,#fff,#fbfdfb); text-align: center; }
.competition-directory-empty-icon { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 3px; border: 1px solid #f0e5c8; border-radius: 18px; color: #987943; background: #fbf5e8; }
.competition-directory-empty-icon svg { width: 27px; height: 27px; }
.competition-directory-empty-eyebrow { color: #8a9a90; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.competition-directory-empty strong { color: #344d40; font-family: 'Prompt', sans-serif; font-size: 18px; font-weight: 600; }
.competition-directory-empty p { max-width: 450px; margin: 0 0 7px; color: #829188; font-size: 12px; line-height: 1.7; }
.competition-directory-empty .competition-empty-secondary { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border: 1px solid #dce8e1; border-radius: 11px; color: #087f6b; background: #fff; font-size: 12px; font-weight: 650; text-decoration: none; }
.competition-directory-empty .competition-empty-secondary:hover { border-color: #b9d7c7; background: #f4faf6; }
.competition-directory-panel .competition-directory-footer { min-height: 60px; padding: 10px 20px; border-top: 1px solid #e8f0ea; background: #fff; }

@media (max-width: 700px) {
    .competition-directory-page { gap: 14px; }
    .competition-directory-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 14px; padding: 20px; border-radius: 19px; }
    .competition-directory-header h1 { font-size: 25px; }
    .competition-directory-header .sports-directory-header-count { min-width: 110px; padding: 11px 14px; }
    .competition-directory-action-row { margin: -2px 0 0; }
    .competition-directory-action-row .competition-add-button { width: 100%; min-height: 44px; }
    .competition-directory-panel .list-panel-heading { min-height: 70px; padding: 13px 15px; }
    .competition-directory-panel .competition-directory-filters { flex-wrap: wrap; padding: 13px 15px; }
    .competition-directory-panel .competition-directory-filters .sport-search { flex: 1 1 100%; }
    .competition-directory-panel .competition-directory-filters .filter-submit { flex: 1; }
    .competition-directory-panel .competition-directory-filters .filter-reset { flex: 1; text-align: center; }
    .competition-directory-table { min-width: 1080px; }
    .competition-directory-empty { min-height: 280px; padding: 25px 16px; }
    .competition-directory-panel .competition-directory-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 12px 15px; }
    .competition-directory-panel .sport-pagination { width: 100%; justify-content: space-between; }
}

/* Keep the competition form overrides after the shared form rules. */
.sport-form-panel.competition-form-panel.competition-form-panel-v2 { width: 100%; max-width: none; }
.competition-form-v2 .competition-form-grid-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.competition-form-v2 .form-field > input,
.competition-form-v2 .form-field > textarea { min-height: 48px; padding: 10px 14px; border-radius: 12px; }
.competition-form-v2 .form-field > textarea { min-height: 155px; }
.competition-form-v2 .form-field > input[type="date"] { min-height: 48px; }

@media (max-width: 760px) {
    .competition-form-v2 .competition-form-grid-v2 { grid-template-columns: minmax(0, 1fr); gap: 0; }
}

/* Training create/edit form */
.training-form-page { max-width: 1440px; display: flex; flex-direction: column; gap: 15px; margin: 0 auto; }
.training-form-header { min-height: 142px; margin: 0; }
.training-form-header h1 { text-align: left; }
.training-form-kind-badge { position: relative; z-index: 2; min-height: 50px; display: inline-flex; align-items: center; gap: 9px; padding: 0 15px; border: 1px solid #dcece4; border-radius: 15px; color: #527061; background: rgba(255,255,255,.84); font-size: 12px; font-weight: 650; white-space: nowrap; backdrop-filter: blur(8px); }
.training-form-kind-badge svg { width: 18px; height: 18px; color: #087f6b; }
.training-form-nav-row { display: flex; justify-content: flex-end; margin: -5px 4px 0; }
.training-form-back-link { min-height: 40px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid #dce8e1; border-radius: 12px; color: #527061; background: #fff; font-size: 12px; font-weight: 600; text-decoration: none; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.training-form-back-link svg { width: 16px; height: 16px; }
.training-form-back-link:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.training-form-error-summary { display: grid; gap: 3px; padding: 12px 15px; border: 1px solid #f0d7d2; border-radius: 13px; color: #a14d43; background: #fff8f6; font-size: 12px; }
.training-form-error-summary strong { font-size: 13px; }
.training-form-panel-v2 { width: 100%; max-width: none; overflow: hidden; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.training-form-panel-v2 .sport-form-intro { min-height: 82px; gap: 13px; padding: 16px 23px; border-color: #e8f0ea; background: #fbfdfb; }
.training-form-icon { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.training-form-icon svg { width: 22px; height: 22px; }
.training-form-panel-v2 .sport-form-intro h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 19px; font-weight: 600; }
.training-form-record-id { margin-left: auto; padding: 7px 10px; border: 1px solid #dfebe4; border-radius: 10px; color: #71847a; background: #fff; font-family: Arial, sans-serif; font-size: 11px; font-weight: 650; }
.training-form-v2 { padding: 24px 25px 20px; }
.training-form-v2 .form-field { min-width: 0; gap: 8px; margin-bottom: 21px; }
.training-form-v2 .form-field > label { color: #344d40; font-size: 13px; }
.training-form-v2 .form-field > input,
.training-form-v2 .form-field > textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid #dce8e1; border-radius: 12px; outline: 0; color: #344d40; background: #fff; font: inherit; font-size: 13px; transition: border-color .16s ease, box-shadow .16s ease; }
.training-form-v2 .form-field > input[type="date"] { min-height: 48px; }
.training-form-v2 .form-field > textarea { min-height: 150px; line-height: 1.7; resize: vertical; }
.training-form-v2 .form-field > input:focus,
.training-form-v2 .form-field > textarea:focus { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.training-form-v2 .form-field > input::placeholder,
.training-form-v2 .form-field > textarea::placeholder { color: #a1b0a7; }
.training-form-v2 .field-help { color: #829188; font-size: 11.5px; }
.training-form-v2 .field-error { color: #b55349; font-size: 11.5px; }
.training-form-name-field { margin-bottom: 7px !important; }
.training-form-grid-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.training-form-certificate-field { grid-column: 1 / -1; }
.training-form-details-field { margin-bottom: 22px !important; }
.training-participants-section { margin: 2px 0 20px; padding: 20px; border: 1px solid #dfebe4; border-radius: 18px; background: #f8fbf8; }
.training-participants-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.training-participants-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.training-participants-icon svg { width: 22px; height: 22px; }
.training-participants-heading .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.training-participants-heading h3 { margin: 2px 0 1px; color: #254737; font-family: 'Prompt', sans-serif; font-size: 17px; font-weight: 600; }
.training-participants-heading p { margin: 0; color: #829188; font-size: 11.5px; }
.training-participants-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.training-form-v2 .training-participant-picker { min-width: 0; margin: 0; padding: 15px; border: 1px solid #e1ece4; border-radius: 14px; background: #fff; }
.training-form-v2 .training-participant-picker > label { color: #344d40; font-size: 12px; }
.training-form-v2 .directory-search-wrap { min-height: 45px; gap: 9px; padding: 0 11px; border-color: #dce8e1; border-radius: 11px; }
.training-form-v2 .directory-search-wrap > svg { width: 17px; height: 17px; }
.training-form-v2 .directory-search-wrap > input[type="search"] { height: 42px; font-size: 12px; }
.training-form-v2 .directory-search-wrap:focus-within { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.training-form-v2 .directory-selected-detail { min-height: 36px; margin-top: 7px; color: #829188; font-size: 11px; line-height: 1.55; }
.training-form-v2 .directory-selection-count { display: inline-flex; margin-top: 9px; padding: 5px 9px; border-radius: 9px; color: #087f6b; background: #eef7f1; font-size: 10.5px; }
.training-form-v2 .directory-selected-chip { min-width: 0; padding: 8px; border-color: #dfebe4; border-radius: 11px; }
.training-participant-error { margin: 0 0 12px; padding: 10px 12px; border: 1px solid #f0d7d2; border-radius: 11px; color: #a14d43; background: #fff8f6; font-size: 11.5px; }
.training-form-actions { margin-top: 2px; padding-top: 18px; display: flex; justify-content: flex-end; align-items: center; gap: 10px; border-top: 1px solid #e8f0ea; }
.training-form-cancel-button,
.training-form-submit-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 18px; border: 1px solid transparent; border-radius: 14px; font-family: inherit; font-size: 13px; font-weight: 650; text-decoration: none; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease, background .16s ease; }
.training-form-cancel-button { border-color: #dce8e1; color: #60766a; background: #fff; }
.training-form-cancel-button svg { width: 17px; height: 17px; }
.training-form-cancel-button:hover { transform: translateY(-1px); border-color: #c8dcd0; color: #315c47; background: #f8fbf8; }
.training-form-submit-button { min-width: 220px; color: #fff; background: linear-gradient(135deg, #0a8972, #087663); box-shadow: 0 6px 15px rgba(8,127,107,.18); }
.training-form-submit-button svg { width: 18px; height: 18px; padding: 3px; border: 1px solid rgba(255,255,255,.3); border-radius: 7px; flex: 0 0 auto; }
.training-form-submit-button:hover { transform: translateY(-1px); color: #fff; background: linear-gradient(135deg, #087663, #066b5a); box-shadow: 0 8px 18px rgba(8,127,107,.24); }
.training-form-cancel-button:focus-visible,
.training-form-submit-button:focus-visible,
.training-form-back-link:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }

@media (max-width: 760px) {
    .training-form-page { gap: 13px; }
    .training-form-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 13px; padding: 20px; border-radius: 19px; }
    .training-form-header h1 { font-size: 25px; }
    .training-form-kind-badge { min-height: 42px; padding: 0 12px; border-radius: 13px; }
    .training-form-nav-row { margin: -1px 0 0; }
    .training-form-nav-row .training-form-back-link { width: 100%; justify-content: center; }
    .training-form-panel-v2 .sport-form-intro { min-height: 70px; padding: 13px 15px; }
    .training-form-icon { width: 38px; height: 38px; }
    .training-form-v2 { padding: 18px 15px 14px; }
    .training-form-grid-v2 { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .training-form-certificate-field { grid-column: auto; }
    .training-participants-section { padding: 14px; border-radius: 15px; }
    .training-participants-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .training-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .training-form-cancel-button,
    .training-form-submit-button { width: 100%; min-height: 46px; }
}

/* Physical education competition create/edit form */
.physical-competition-form-page { max-width: 1440px; display: flex; flex-direction: column; gap: 15px; margin: 0 auto; }
.physical-competition-form-header { min-height: 142px; margin: 0; }
.physical-competition-form-header h1 { text-align: left; }
.physical-competition-form-badge { position: relative; z-index: 2; min-height: 50px; display: inline-flex; align-items: center; gap: 9px; padding: 0 15px; border: 1px solid #dcece4; border-radius: 15px; color: #527061; background: rgba(255,255,255,.84); font-size: 12px; font-weight: 650; white-space: nowrap; backdrop-filter: blur(8px); }
.physical-competition-form-badge svg { width: 18px; height: 18px; color: #087f6b; }
.physical-competition-form-nav-row { display: flex; justify-content: flex-end; margin: -5px 4px 0; }
.physical-competition-form-back-link { min-height: 40px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid #dce8e1; border-radius: 12px; color: #527061; background: #fff; font-size: 12px; font-weight: 600; text-decoration: none; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.physical-competition-form-back-link svg { width: 16px; height: 16px; }
.physical-competition-form-back-link:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.physical-competition-form-error-summary { display: grid; gap: 3px; padding: 12px 15px; border: 1px solid #f0d7d2; border-radius: 13px; color: #a14d43; background: #fff8f6; font-size: 12px; }
.physical-competition-form-error-summary strong { font-size: 13px; }
.physical-form-panel.physical-form-panel-v2 { width: 100%; max-width: none; overflow: hidden; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.physical-competition-form-intro { min-height: 82px; display: flex; align-items: center; gap: 13px; padding: 16px 23px; border-bottom: 1px solid #e8f0ea; background: #fbfdfb; }
.physical-competition-form-icon { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.physical-competition-form-icon svg { width: 22px; height: 22px; }
.physical-competition-form-intro > div { display: grid; gap: 2px; }
.physical-competition-form-intro .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.physical-competition-form-intro h2 { margin: 0; color: #254737; font-family: 'Prompt', sans-serif; font-size: 19px; font-weight: 600; }
.physical-competition-form-intro p { margin: 0; color: #829188; font-size: 11px; }
.physical-competition-form-record-id { margin-left: auto; padding: 7px 10px; border: 1px solid #dfebe4; border-radius: 10px; color: #71847a; background: #fff; font-family: Arial, sans-serif; font-size: 11px; font-weight: 650; }
.physical-competition-form-v2 { padding: 24px 25px 20px; }
.physical-competition-form-grid-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.physical-competition-form-v2 .physical-field { gap: 8px; margin-bottom: 21px; color: #344d40; font-size: 13px; }
.physical-competition-form-v2 .physical-field > span b { color: #c55246; }
.physical-competition-form-v2 .physical-field input,
.physical-competition-form-v2 .physical-field textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid #dce8e1; border-radius: 12px; outline: 0; color: #344d40; background: #fff; font: inherit; font-size: 13px; transition: border-color .16s ease, box-shadow .16s ease; }
.physical-competition-form-v2 .physical-field textarea { min-height: 155px; line-height: 1.7; resize: vertical; }
.physical-competition-form-v2 .physical-field input:focus,
.physical-competition-form-v2 .physical-field textarea:focus { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.physical-competition-form-v2 .physical-field input::placeholder,
.physical-competition-form-v2 .physical-field textarea::placeholder { color: #a1b0a7; }
.physical-field-help { color: #829188; font-size: 11.5px; font-weight: 400; }
.physical-competition-form-v2 .physical-field-error { color: #b55349; font-size: 11.5px; font-weight: 500; }
.physical-competition-form-actions { margin-top: 2px; padding-top: 18px; display: flex; justify-content: flex-end; align-items: center; gap: 10px; border-top: 1px solid #e8f0ea; }
.physical-competition-form-cancel,
.physical-competition-form-submit { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 18px; border: 1px solid transparent; border-radius: 14px; font-family: inherit; font-size: 13px; font-weight: 650; text-decoration: none; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease, background .16s ease; }
.physical-competition-form-cancel { border-color: #dce8e1; color: #60766a; background: #fff; }
.physical-competition-form-cancel svg { width: 17px; height: 17px; }
.physical-competition-form-cancel:hover { transform: translateY(-1px); border-color: #c8dcd0; color: #315c47; background: #f8fbf8; }
.physical-competition-form-submit { min-width: 176px; color: #fff; background: linear-gradient(135deg, #0a8972, #087663); box-shadow: 0 6px 15px rgba(8,127,107,.18); }
.physical-competition-form-submit svg { width: 18px; height: 18px; padding: 3px; border: 1px solid rgba(255,255,255,.3); border-radius: 7px; }
.physical-competition-form-submit:hover { transform: translateY(-1px); color: #fff; background: linear-gradient(135deg, #087663, #066b5a); box-shadow: 0 8px 18px rgba(8,127,107,.24); }
.physical-competition-form-cancel:focus-visible,
.physical-competition-form-submit:focus-visible,
.physical-competition-form-back-link:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }

@media (max-width: 760px) {
    .physical-competition-form-page { gap: 13px; }
    .physical-competition-form-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 13px; padding: 20px; border-radius: 19px; }
    .physical-competition-form-header h1 { font-size: 25px; }
    .physical-competition-form-badge { min-height: 42px; padding: 0 12px; border-radius: 13px; }
    .physical-competition-form-nav-row { margin: -1px 0 0; }
    .physical-competition-form-nav-row .physical-competition-form-back-link { width: 100%; justify-content: center; }
    .physical-competition-form-intro { min-height: 70px; padding: 13px 15px; }
    .physical-competition-form-icon { width: 38px; height: 38px; }
    .physical-competition-form-v2 { padding: 18px 15px 14px; }
    .physical-competition-form-grid-v2 { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .physical-competition-form-grid-v2 .physical-field-wide { grid-column: auto; }
    .physical-competition-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .physical-competition-form-cancel,
    .physical-competition-form-submit { width: 100%; min-height: 46px; }
}

/* Sport roster detail */
.sport-roster-page { max-width: 1440px; gap: 15px; }
.sport-roster-header { min-height: 154px; padding: 27px 31px; border-color: #087663; border-radius: 22px; background: linear-gradient(112deg, #087f6b, #0b806d 68%, #087663); box-shadow: 0 10px 26px rgba(8, 105, 84, .13); }
.sport-roster-header::before { content: ""; width: 195px; height: 195px; position: absolute; right: 155px; bottom: -137px; z-index: 1; border-radius: 50%; background: rgba(77, 182, 245, .82); }
.sport-roster-header::after { width: 225px; height: 225px; top: -107px; right: -48px; bottom: auto; background: #ffc93c; }
.sport-roster-header > div:first-child { max-width: 760px; }
.sport-roster-header .page-eyebrow { color: rgba(255,255,255,.8); font-size: 10.5px; }
.sport-roster-header h1 { margin: 7px 0 5px; color: #fff; font-size: 29px; }
.sport-roster-header p { color: rgba(255,255,255,.82); font-size: 13px; }
.sport-roster-header .sports-directory-header-count { min-width: 132px; border-color: rgba(255,255,255,.48); border-radius: 17px; color: #fff; background: rgba(255,255,255,.15); backdrop-filter: blur(10px); }
.sport-roster-header .sports-directory-header-count strong { color: #fff; font-size: 30px; }
.sport-roster-header .sports-directory-header-count span { color: rgba(255,255,255,.82); font-size: 11px; }
.sport-roster-nav { min-height: 44px; display: flex; flex-direction: row; justify-content: flex-end; align-items: center; gap: 9px; margin: -3px 2px 0; }
.sport-roster-nav-link { min-height: 40px; display: inline-flex; justify-content: center; align-items: center; gap: 8px; padding: 0 13px; border: 1px solid #dce8e1; border-radius: 12px; color: #527061; background: #fff; font-size: 12px; font-weight: 600; text-decoration: none; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.sport-roster-nav-link svg { width: 16px; height: 16px; color: #087f6b; }
.sport-roster-nav-link:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.sport-roster-nav-link:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.sport-roster-summary { margin: 0; gap: 12px; }
.sport-roster-summary .sport-summary-card { min-height: 84px; border-color: #dfebe4; border-radius: 17px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sport-roster-panel { margin: 0; border-color: #dfebe4; border-radius: 19px; box-shadow: 0 5px 18px rgba(35,75,57,.045); }
.sport-roster-panel .roster-heading { min-height: 88px; gap: 14px; padding: 17px 20px; border-color: #e8f0ea; }
.sport-roster-panel .roster-heading-copy { min-width: 0; flex: 1 1 auto; }
.sport-roster-panel .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.sport-roster-panel .roster-heading h2 { margin: 3px 0 2px; color: #254737; font-family: 'Prompt', sans-serif; font-size: 19px; font-weight: 600; }
.sport-roster-panel .roster-heading p { color: #829188; font-size: 11.5px; }
.roster-section-count { min-height: 34px; display: inline-flex; align-items: center; gap: 5px; padding: 0 10px; border: 1px solid #e1ece4; border-radius: 11px; color: #829188; background: #f8fbf8; font-size: 11px; white-space: nowrap; }
.roster-section-count strong { color: #087f6b; font-family: 'Prompt', sans-serif; font-size: 14px; font-weight: 600; }
.sport-roster-panel .add-sport-button { min-height: 42px; gap: 6px; padding: 0 14px; border-radius: 12px; font-size: 12px; box-shadow: 0 5px 12px rgba(8,127,107,.12); }
.sport-roster-panel .add-sport-button > span { font-size: 18px; line-height: 1; }
.sport-roster-panel .roster-table { min-width: 980px; }
.sport-roster-panel .roster-table th { height: 46px; color: #788a7f; background: #f6faf7; font-size: 10.5px; }
.sport-roster-panel .roster-table td { height: 64px; color: #52675b; font-size: 11.5px; }
.sport-roster-panel .roster-table th,
.sport-roster-panel .roster-table td { padding-right: 15px; padding-left: 15px; }
.sport-roster-panel .roster-person-name { color: #344d40; font-size: 12px; }
.sport-roster-panel .roster-empty { min-height: 200px; gap: 7px; }
.sport-roster-panel .roster-empty strong { color: #344d40; font-family: 'Prompt', sans-serif; font-size: 16px; font-weight: 600; }
.sport-roster-panel .roster-empty p { color: #829188; font-size: 12px; }
.sport-roster-panel .empty-primary-button { min-height: 38px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid #dce8e1; border-radius: 11px; color: #087f6b; background: #fff; font-size: 11.5px; font-weight: 650; text-decoration: none; transition: border-color .16s ease, background .16s ease; }
.sport-roster-panel .empty-primary-button:hover { border-color: #b9d7c7; background: #f4faf6; }

@media (max-width: 760px) {
    .sport-roster-page { gap: 13px; }
    .sport-roster-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 14px; padding: 20px; border-radius: 19px; }
    .sport-roster-header h1 { font-size: 25px; }
    .sport-roster-header::before { right: 68px; }
    .sport-roster-header::after { width: 165px; height: 165px; top: -91px; right: -57px; }
    .sport-roster-header .sports-directory-header-count { min-width: 110px; align-items: flex-start; padding: 10px 13px; }
    .sport-roster-nav { width: 100%; align-items: stretch; justify-content: stretch; margin: 0; }
    .sport-roster-nav-link { flex: 1 1 0; padding: 0 9px; font-size: 11px; }
    .sport-roster-summary { grid-template-columns: minmax(0, 1fr); gap: 9px; }
    .sport-roster-summary .sport-summary-card { min-height: 68px; }
    .sport-roster-panel .roster-heading { align-items: flex-start; flex-wrap: wrap; padding: 15px; }
    .sport-roster-panel .roster-heading-copy { flex-basis: 100%; }
    .sport-roster-panel .roster-heading p { max-width: none; }
    .sport-roster-panel .roster-section-count { margin-right: auto; }
    .sport-roster-panel .add-sport-button { min-height: 40px; }
}

@media (max-width: 420px) {
    .sport-roster-nav { flex-direction: column; }
    .sport-roster-nav-link { width: 100%; flex: auto; }
    .sport-roster-panel .add-sport-button { flex: 1 1 auto; }
}

/* Match the athlete directory layout on sport roster details */
.sport-roster-page { gap: 20px; }
.sport-roster-header { min-height: 150px; padding: 28px 32px; border-color: #dcebe3; border-radius: 24px; background: radial-gradient(circle at 92% 20%, rgba(73,202,166,.12), transparent 28%), radial-gradient(circle at 75% 100%, rgba(93,177,245,.10), transparent 32%), #fff; box-shadow: 0 10px 30px rgba(35,75,57,.06); }
.sport-roster-header::before { content: none; }
.sport-roster-header::after { width: 180px; height: 180px; top: auto; right: -70px; bottom: -100px; background: rgba(255,203,71,.17); }
.sport-roster-header .page-eyebrow { color: #23836d; font-size: 11px; }
.sport-roster-header h1 { margin: 6px 0 4px; color: #183c2d; font-size: 30px; }
.sport-roster-header p { color: #7d9086; font-size: 13px; }
.sport-roster-header .sports-directory-header-count { min-width: 105px; border-color: #dcece4; border-radius: 18px; background: rgba(255,255,255,.8); }
.sport-roster-header .sports-directory-header-count strong { color: #087f6b; font-size: 28px; }
.sport-roster-header .sports-directory-header-count span { color: #809187; font-size: 11px; }
.sport-roster-action-row { min-height: 46px; justify-content: space-between; align-items: center; gap: 12px; margin: -7px 4px 0; }
.sport-roster-nav { min-height: 40px; display: flex; flex-direction: row; align-items: center; gap: 8px; }
.sport-roster-nav-link { min-height: 36px; padding: 0 11px; border-color: #dce8e1; border-radius: 11px; color: #60766a; font-size: 11.5px; text-decoration: none; }
.sport-roster-add-actions { display: flex; align-items: center; gap: 9px; }
.sport-roster-add-actions .athlete-add-button,
.sport-roster-add-coach { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 15px; border-radius: 13px; font-size: 12.5px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.sport-roster-add-actions .athlete-add-button { border: 1px solid #ffcc36; color: #26382c; background: #ffcc36; box-shadow: 0 5px 12px rgba(229,174,29,.16); }
.sport-roster-add-actions .athlete-add-button:hover { border-color: #f2bb1e; color: #26382c; background: #f2bb1e; }
.sport-roster-add-actions .athlete-add-button svg,
.sport-roster-add-coach svg { width: 17px; height: 17px; }
.sport-roster-add-coach { border: 1px solid #dce8e1; color: #087f6b; background: #fff; transition: border-color .16s ease, background .16s ease; }
.sport-roster-add-coach:hover { border-color: #b9d7c7; background: #f4faf6; }
.sport-roster-add-coach:focus-visible,
.sport-roster-add-actions .athlete-add-button:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.sport-roster-panel { overflow: hidden; margin: 0; border-color: #dfebe4; border-radius: 18px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sport-roster-panel .roster-heading { min-height: 78px; gap: 12px; padding: 15px 20px; border-color: #e8f0ea; }
.sport-roster-panel .roster-heading-copy { min-width: 0; flex: 1 1 auto; }
.sport-roster-panel .section-eyebrow { color: #87998d; font-family: Arial,sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.sport-roster-panel .roster-heading h2 { margin: 3px 0 0; color: #254737; font-family: 'Prompt',sans-serif; font-size: 20px; font-weight: 600; }
.sport-roster-panel .roster-heading p { margin-top: 2px; color: #829188; font-size: 11.5px; }
.sport-roster-panel .roster-section-count { min-height: 32px; border-color: #dfebe4; border-radius: 12px; background: #f8fbf8; }
.sport-roster-panel .athlete-directory-list-view { overflow-x: auto; border: 0; border-top: 1px solid #edf2ee; border-radius: 0; box-shadow: none; }
.sport-roster-panel .athlete-directory-table { min-width: 960px; }
.sport-roster-panel .athlete-directory-table th { height: 46px; background: #f5f9f6; }
.sport-roster-panel .athlete-directory-table td { height: 67px; }
.sport-roster-panel .athlete-directory-table th,
.sport-roster-panel .athlete-directory-table td { padding-right: 15px; padding-left: 15px; }
.sport-roster-panel .roster-person-name { color: #344d40; font-size: 13.5px; }
.sport-roster-panel .roster-empty { min-height: 200px; gap: 7px; }
.sport-roster-panel .roster-empty strong { color: #385243; font-family: 'Prompt',sans-serif; font-size: 18px; font-weight: 600; }
.sport-roster-panel .roster-empty p { margin: 0; color: #89968f; font-size: 12px; }
.sport-roster-panel .sport-list-footer { min-height: 60px; margin: 0; padding: 10px 20px; border-top: 1px solid #e8f0ea; background: #fff; }
.sport-roster-notice { min-height: 62px; }

@media (max-width: 900px) {
    .sport-roster-header { min-height: 130px; }
}

@media (max-width: 620px) {
    .sport-roster-page { gap: 16px; }
    .sport-roster-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 14px; padding: 20px; border-radius: 19px; }
    .sport-roster-header h1 { font-size: 25px; }
    .sport-roster-header::after { width: 160px; height: 160px; top: auto; right: -80px; bottom: -95px; }
    .sport-roster-action-row { align-items: stretch; flex-direction: column; margin: -3px 0 0; }
    .sport-roster-nav { width: 100%; }
    .sport-roster-nav-link { flex: 1 1 auto; justify-content: center; }
    .sport-roster-add-actions { width: 100%; }
    .sport-roster-add-actions .athlete-add-button,
    .sport-roster-add-coach { flex: 1 1 0; }
    .sport-roster-panel .roster-heading { align-items: flex-start; padding: 14px; }
    .sport-roster-panel .roster-heading h2 { font-size: 18px; }
    .sport-roster-panel .roster-heading p { max-width: none; }
    .sport-roster-panel .sport-list-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 13px; }
    .sport-roster-panel .sport-list-footer .sport-pagination { width: 100%; justify-content: space-between; }
}

@media (max-width: 420px) {
    .sport-roster-nav { flex-direction: column; align-items: stretch; }
    .sport-roster-nav-link { width: 100%; }
}

/* Athlete and coach forms inside sport management */
.sport-management-person-form-page { max-width: 1440px; gap: 16px; }
.sport-management-person-form-page .athlete-form-header { margin: 0; }
.sport-management-person-form-page .athlete-edit-back-row { margin-top: -6px; }
.sport-management-person-form-page .athlete-edit-back-row .button-secondary { min-height: 42px; padding: 0 14px; border-radius: 12px; }
.sport-management-person-form-page .athlete-edit-form-panel { width: 100%; max-width: none; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 8px 24px rgba(35,75,57,.045); }
.sport-management-person-form-page .sport-form-intro { min-height: 84px; padding: 18px 27px; border-color: #e8f0ea; background: #fbfdfb; }
.sport-management-person-form-page .sport-form-icon { width: 43px; height: 43px; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.sport-management-person-form-page .sport-form-icon svg { width: 22px; height: 22px; }
.sport-management-person-form-page .sport-form-intro h2 { color: #254737; font-family: 'Prompt',sans-serif; font-size: 19px; font-weight: 600; }
.sport-management-person-form-page .athlete-directory-form { padding: 26px 28px 24px; }
.sport-management-person-form-page .athlete-directory-form .form-field { margin-bottom: 22px; }
.sport-management-person-form-page .athlete-directory-form .form-field > label,
.sport-management-person-form-page .athlete-directory-form .status-form-copy strong { color: #344d40; font-size: 13.5px; }
.sport-management-person-form-page .athlete-directory-form .form-field > input,
.sport-management-person-form-page .athlete-directory-form .form-field > textarea,
.sport-management-person-form-page .athlete-directory-form .form-field > select { min-height: 48px; padding: 10px 14px; border-color: #dce8e1; border-radius: 12px; font-size: 14px; }
.sport-management-person-form-page .athlete-directory-form .form-field > textarea { min-height: 116px; line-height: 1.65; }
.sport-management-person-form-page .athlete-directory-form .form-field > input:focus,
.sport-management-person-form-page .athlete-directory-form .form-field > textarea:focus,
.sport-management-person-form-page .athlete-directory-form .form-field > select:focus { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.sport-management-person-form-page .directory-search-wrap { min-height: 51px; padding: 0 14px; border-color: #dce8e1; border-radius: 13px; }
.sport-management-person-form-page .directory-search-wrap > input[type="search"] { height: 47px; font-size: 14px; }
.sport-management-person-form-page .directory-search-wrap:focus-within { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.sport-management-person-form-page .directory-selected-detail { min-height: 20px; margin-top: 8px; color: #829188; font-size: 12px; }
.sport-management-person-form-page .directory-selected-list { gap: 9px; margin-top: 12px; }
.sport-management-person-form-page .directory-selected-chip { min-width: min(100%, 320px); padding: 9px 11px; border-color: #dce8e1; border-radius: 13px; background: #f8fbf8; }
.sport-management-person-form-page .directory-selection-count { width: fit-content; margin-top: 10px; padding: 6px 10px; border: 1px solid #dcebe0; border-radius: 10px; color: #34775b; background: #f0f7f1; font-size: 11.5px; }
.sport-management-person-form-page .person-form-grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
.sport-management-person-form-page .person-note-field { margin-top: 0; }
.sport-management-person-form-page .sport-person-status-field { min-height: 96px; padding: 17px 18px; border-color: #dce8e1; border-radius: 14px; background: #f8fbf8; }
.sport-management-person-form-page .sport-person-status-field .status-form-copy { gap: 5px; }
.sport-management-person-form-page .sport-person-status-field .status-form-copy strong { color: #344d40; font-size: 13.5px; }
.sport-management-person-form-page .sport-person-status-field .status-form-copy small { max-width: 680px; color: #788a80; font-size: 12px; line-height: 1.65; }
.sport-management-person-form-page .sport-form-actions { margin-top: 25px; padding-top: 18px; gap: 10px; border-color: #e7eee9; }
.sport-management-person-form-page .sport-form-actions .button-secondary { min-height: 46px; padding: 0 18px; border-color: #dce8e1; border-radius: 12px; color: #53645a; font-size: 14px; }
.sport-management-person-form-page .sport-form-actions .button-secondary:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.sport-management-person-form-page .save-sport-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 22px; border: 1px solid #087f6b; border-radius: 12px; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.16); font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.sport-management-person-form-page .save-sport-button:hover { transform: translateY(-1px); border-color: #066a5a; background: #066a5a; box-shadow: 0 7px 15px rgba(8,127,107,.22); }
.sport-management-person-form-page .save-sport-button:focus-visible,
.sport-management-person-form-page .sport-form-actions .button-secondary:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.sport-management-person-form-page .physical-validation-summary { margin: 0; border-radius: 14px; }

@media (max-width: 700px) {
    .sport-management-person-form-page .athlete-directory-form { padding: 19px 16px; }
    .sport-management-person-form-page .sport-form-intro { padding: 16px; }
}

@media (max-width: 560px) {
    .sport-management-person-form-page { gap: 13px; }
    .sport-management-person-form-page .athlete-form-header { min-height: 135px; }
    .sport-management-person-form-page .athlete-edit-back-row { margin-top: -3px; }
    .sport-management-person-form-page .athlete-edit-back-row .button-secondary { width: 100%; justify-content: center; }
    .sport-management-person-form-page .athlete-directory-form .form-field > label,
    .sport-management-person-form-page .athlete-directory-form .status-form-copy strong { font-size: 13px; }
    .sport-management-person-form-page .sport-person-status-field { align-items: flex-start; flex-direction: column; gap: 12px; padding: 14px; }
    .sport-management-person-form-page .sport-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .sport-management-person-form-page .sport-form-actions .button-secondary,
    .sport-management-person-form-page .save-sport-button { width: 100%; justify-content: center; }
}

/* Athlete request form follows the athlete profile form */
.call-up-form-page { gap: 16px; }
.call-up-form-page .athlete-form-header { margin: 0; }
.call-up-form-page .call-up-form-panel { width: 100%; max-width: none; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 8px 24px rgba(35,75,57,.045); }
.call-up-form-page .sport-form-intro { min-height: 84px; padding: 18px 27px; border-color: #e8f0ea; background: #fbfdfb; }
.call-up-form-page .sport-form-icon { width: 43px; height: 43px; border-radius: 13px; color: #087f6b; background: #eaf6ef; }
.call-up-form-page .sport-form-icon svg { width: 22px; height: 22px; }
.call-up-form-page .sport-form-intro h2 { color: #254737; font-family: 'Prompt',sans-serif; font-size: 19px; font-weight: 600; }
.call-up-form-page .call-up-form { padding: 26px 28px 24px; }
.call-up-form-page .call-up-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; }
.call-up-form-page .call-up-form .form-field { margin-bottom: 20px; }
.call-up-form-page .call-up-form .form-field > label { color: #344d40; font-size: 13.5px; }
.call-up-form-page .call-up-form .form-field > input,
.call-up-form-page .call-up-form .form-field > textarea,
.call-up-form-page .call-up-form .form-field > select { min-height: 48px; padding: 10px 14px; border-color: #dce8e1; border-radius: 12px; color: #344d40; font-size: 14px; }
.call-up-form-page .call-up-form .form-field > textarea { min-height: 128px; line-height: 1.65; }
.call-up-form-page .call-up-form .form-field > input:focus,
.call-up-form-page .call-up-form .form-field > textarea:focus,
.call-up-form-page .call-up-form .form-field > select:focus { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.call-up-form-page .call-up-form .form-field > input::placeholder,
.call-up-form-page .call-up-form .form-field > textarea::placeholder { color: #a1b0a7; }
.call-up-form-page .call-up-form .form-field > input[type="file"] { min-height: 52px; padding: 6px 9px; border-style: dashed; background: #fbfdfb; }
.call-up-form-page .call-up-form .form-field > input[type="file"]::file-selector-button { min-height: 36px; margin-right: 10px; padding: 0 12px; border: 1px solid #dce8e1; border-radius: 9px; color: #527061; background: #fff; font: inherit; font-size: 12px; cursor: pointer; }
.call-up-form-page .call-up-form .form-field > input[type="file"]::file-selector-button:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.call-up-form-page .call-up-form-wide { grid-column: 1 / -1; }
.call-up-form-page .call-up-current-file { margin-top: 5px; color: #829188; font-size: 12px; }
.call-up-form-page .call-up-current-file a { color: #087f6b; }
.call-up-form-page .call-up-athlete-picker { margin: 4px 0 0; padding: 18px; border: 1px solid #dce8e1; border-radius: 16px; background: #f8fbf8; }
.call-up-form-page .call-up-athlete-picker > label { color: #344d40; font-size: 13.5px; }
.call-up-form-page .call-up-athlete-picker .directory-search-wrap { min-height: 50px; padding: 0 13px; border-color: #dce8e1; border-radius: 12px; }
.call-up-form-page .call-up-athlete-picker .directory-search-wrap > input[type="search"] { height: 46px; font-size: 13.5px; }
.call-up-form-page .call-up-athlete-picker .directory-search-wrap:focus-within { border-color: #4da98d; box-shadow: 0 0 0 4px rgba(77,169,141,.10); }
.call-up-form-page .call-up-athlete-picker .directory-selected-detail { min-height: 20px; margin-top: 8px; color: #829188; font-size: 12px; }
.call-up-form-page .call-up-athlete-picker .directory-selected-list { gap: 9px; margin-top: 11px; }
.call-up-form-page .call-up-athlete-picker .directory-selected-chip { min-width: min(100%,320px); padding: 9px 11px; border-color: #dce8e1; border-radius: 13px; }
.call-up-form-page .call-up-athlete-picker .directory-selection-count { width: fit-content; margin-top: 10px; padding: 6px 10px; border: 1px solid #dcebe0; border-radius: 10px; color: #34775b; background: #f0f7f1; font-size: 11.5px; }
.call-up-form-page .sport-form-actions { margin-top: 25px; padding-top: 18px; gap: 10px; border-color: #e7eee9; }
.call-up-form-page .sport-form-actions .button-secondary { min-height: 46px; padding: 0 18px; border-color: #dce8e1; border-radius: 12px; color: #53645a; font-size: 14px; }
.call-up-form-page .sport-form-actions .button-secondary:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.call-up-form-page .save-sport-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; border: 1px solid #087f6b; border-radius: 12px; color: #fff; background: #087f6b; box-shadow: 0 5px 12px rgba(8,127,107,.16); font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.call-up-form-page .save-sport-button:hover { transform: translateY(-1px); border-color: #066a5a; background: #066a5a; box-shadow: 0 7px 15px rgba(8,127,107,.22); }
.call-up-form-page .save-sport-button:focus-visible,
.call-up-form-page .sport-form-actions .button-secondary:focus-visible { outline: 3px solid rgba(45,120,101,.2); outline-offset: 2px; }
.call-up-form-page .physical-validation-summary { margin: 0; border-radius: 14px; }

@media (max-width: 700px) {
    .call-up-form-page .call-up-form { padding: 19px 16px; }
    .call-up-form-page .sport-form-intro { padding: 16px; }
}

@media (max-width: 560px) {
    .call-up-form-page { gap: 13px; }
    .call-up-form-page .athlete-form-header { min-height: 135px; }
    .call-up-form-page .athlete-edit-back-row { margin-top: -3px; }
    .call-up-form-page .athlete-edit-back-row .button-secondary { width: 100%; justify-content: center; }
    .call-up-form-page .call-up-form-grid { grid-template-columns: 1fr; gap: 0; }
    .call-up-form-page .call-up-form-wide { grid-column: auto; }
    .call-up-form-page .call-up-athlete-picker { padding: 14px; }
    .call-up-form-page .call-up-form .form-field > label { font-size: 13px; }
    .call-up-form-page .sport-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .call-up-form-page .sport-form-actions .button-secondary,
    .call-up-form-page .save-sport-button { width: 100%; justify-content: center; }
}

/* Sport directory detail follows the athlete directory layout */
.sport-type-overview-page.athlete-directory-page { max-width: 1440px; gap: 16px; }
.sport-type-overview-header { min-height: 142px; margin: 0; }
.sport-type-overview-header h1 { text-align: left; }
.sport-type-overview-header p { max-width: 680px; }
.sport-type-overview-header .sports-directory-header-count { min-width: 125px; }
.sport-type-overview-action-row { align-items: center; gap: 9px; margin: -5px 4px 0; }
.sport-type-overview-action-row .button-secondary { min-height: 44px; padding: 0 14px; border-color: #dce8e1; border-radius: 13px; color: #536b5d; font-size: 13px; text-decoration: none; }
.sport-type-overview-action-row .button-secondary:hover { border-color: #b9d7c7; color: #087f6b; background: #f4faf6; }
.sport-type-overview-action-row .person-print-button { background: #fff; font-family: inherit; }
.sport-type-overview-action-row .person-print-button svg { width: 16px; height: 16px; }
.sport-type-overview-action-row .athlete-add-button { min-height: 44px; display: inline-flex; justify-content: center; padding: 0 16px; border-radius: 13px; font-size: 13px; }
.sport-type-member-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin: 0; }
.sport-type-member-summary article { min-height: 68px; padding: 12px 16px; border-color: #dfebe4; border-radius: 17px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sport-type-member-summary article span { color: #71847a; font-size: 12.5px; }
.sport-type-member-summary article strong { color: #294b3b; font-family: 'Prompt', sans-serif; font-size: 18px; }
.sport-type-member-summary article strong.is-active { color: #087f6b; }
.sport-type-member-summary article strong.is-inactive { color: #7d8982; }
.sport-type-directory-panel { overflow: hidden; margin: 0; border-color: #dfebe4; border-radius: 20px; box-shadow: 0 5px 18px rgba(35,75,57,.04); }
.sport-type-directory-heading { min-height: 78px; padding: 15px 20px; border-color: #e8f0ea; }
.sport-type-directory-heading .section-eyebrow { color: #87998d; font-family: Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; }
.sport-type-directory-heading h2 { color: #254737; font-family: 'Prompt', sans-serif; font-size: 20px; }
.sport-type-directory-heading > span { padding: 7px 11px; border: 1px solid #dfebe4; border-radius: 13px; color: #71847a; background: #f9fcfa; font-size: 12px; }
.sport-type-member-grid { grid-template-columns: 1fr; gap: 0; padding: 0 20px; }
.sport-type-member-card { min-height: 86px; gap: 13px; padding: 13px 2px; border: 0; border-bottom: 1px solid #edf2ee; border-radius: 0; background: transparent; }
.sport-type-member-card:last-child { border-bottom: 0; }
.person-avatar.member-photo-avatar { width: 54px; height: 54px; border-radius: 17px; }
.member-photo-avatar .person-avatar-fallback { font-size: 19px; }
.sport-type-member-copy { gap: 2px; }
.sport-type-member-copy strong { color: #254737; font-size: 14px; }
.sport-type-member-copy small { color: #829188; font-size: 11.5px; }
.sport-type-member-card .sport-status-pill { padding: 5px 9px; border-radius: 11px; font-size: 11px; }
.sport-type-empty { min-height: 150px; display: grid; align-content: center; justify-items: center; gap: 6px; padding: 24px 18px; color: #89968f; font-size: 13px; }
.sport-type-empty::before { content: ''; width: 34px; height: 34px; display: block; margin-bottom: 3px; border: 1px solid #dcebe4; border-radius: 12px; background: #f1f8f3; }

@media (max-width: 700px) {
    .sport-type-member-summary { grid-template-columns: 1fr; gap: 8px; }
}

@media (max-width: 560px) {
    .sport-type-overview-page.athlete-directory-page { gap: 13px; }
    .sport-type-overview-header { min-height: 135px; }
    .sport-type-overview-header .sports-directory-header-count { min-width: 100px; padding: 11px 14px; }
    .sport-type-overview-action-row { align-items: stretch; flex-direction: column; margin: -3px 0 0; }
    .sport-type-overview-action-row .button-secondary,
    .sport-type-overview-action-row .athlete-add-button { width: 100%; justify-content: center; }
    .sport-type-directory-heading { min-height: 70px; padding: 13px 14px; }
    .sport-type-directory-heading h2 { font-size: 18px; }
    .sport-type-member-grid { padding: 0 13px; }
    .sport-type-member-card { min-height: 75px; gap: 9px; padding: 10px 0; }
    .person-avatar.member-photo-avatar { width: 46px; height: 46px; border-radius: 14px; }
    .sport-type-member-copy strong { font-size: 12.5px; }
    .sport-type-member-copy small { font-size: 10.5px; }
    .sport-type-member-card .sport-status-pill { padding: 4px 6px; font-size: 9.5px; }
}

@media print {
    .sport-type-overview-header { display: none !important; }
    .sport-type-member-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sport-type-member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 8px; }
    .sport-type-member-card { min-height: 76px; gap: 8px; padding: 6px; border: 1px solid #dce2dd; border-radius: 6px; }
    .sport-type-member-card:last-child { border-bottom: 1px solid #dce2dd; }
    .person-avatar.member-photo-avatar { width: 58px; height: 66px; border-radius: 6px; }
}
