/**
 * Basketball Portal Styles — MySQL-backed rebuild
 * Scoped under .portal-container to avoid Bootstrap conflicts.
 * v3.16.0 — One-pager player card
 */

/* ============================================
   CSS Variables (Shared across all portal pages)
   ============================================ */
.portal-container,
.alumni-portal,
.events-portal {
    --portal-primary: #ff7426;
    --portal-primary-dark: #e06620;
    --portal-primary-light: #ff9900;
    --portal-dark-bg: #1a1a1a;
    --portal-darker-bg: #0f0f0f;
    --portal-card-bg: #ffffff;
    --portal-border: #e5e7eb;
    --portal-text: #333333;
    --portal-text-light: #666666;
    --portal-radius: 8px;
    --portal-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    --portal-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.15);
    --portal-transition: all 0.2s ease;
    --portal-success: #28a745;
    --portal-warning: #ffc107;
    --portal-danger: #dc3545;
    --portal-info: #17a2b8;

    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

/* WordPress overrides for portal pages */
body:has(.portal-container) .site-content {
    width: 100%;
    max-width: none;
}

body:has(.portal-container) .default-page {
    max-width: none;
    padding: 0;
}

/* ============================================
   Loading Overlay
   ============================================ */
.portal-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 15, 15, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    color: var(--portal-primary);
    transition: opacity 0.3s ease;
}

.portal-loading-inner {
    text-align: center;
    font-size: 1rem;
}

.portal-spinner {
    width: 3rem;
    height: 3rem;
    border: 4px solid #333;
    border-top: 4px solid var(--portal-primary);
    border-radius: 50%;
    animation: portal-spin 1s linear infinite;
    margin: 0 auto 1rem;
}

@keyframes portal-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.portal-loading {
    text-align: center;
    padding: 3rem;
    color: var(--portal-text-light);
}

.portal-loading .portal-spinner {
    width: 2.5rem;
    height: 2.5rem;
}

/* ============================================
   Portal Header
   ============================================ */
.portal-header {
    background: linear-gradient(135deg, var(--portal-darker-bg) 0%, var(--portal-dark-bg) 100%);
    color: var(--portal-primary);
    padding: 1.5rem 0;
    text-align: center;
    border-bottom: 3px solid var(--portal-primary);
    border-radius: var(--portal-radius) var(--portal-radius) 0 0;
    margin-bottom: 0;
}

.portal-header h1 {
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin: 0;
    color: var(--portal-primary);
}

.portal-header-subtitle {
    margin-top: 0.5rem;
}

.portal-season-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.1);
    padding: 0.25rem 1rem;
    border-radius: 20px;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.8);
}

/* ============================================
   Tabs
   ============================================ */
.portal-tabs-section {
    margin-bottom: 1rem;
}

.portal-tabs-container {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
}

.portal-tabs-center {
    display: flex;
    gap: 0.5rem;
}

.portal-tab-btn {
    padding: 0.6rem 1.5rem;
    border: 2px solid var(--portal-primary);
    border-radius: var(--portal-radius);
    background: white;
    color: var(--portal-text);
    font-weight: 600;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: var(--portal-transition);
    touch-action: manipulation; /* UX-4: Removes 300ms tap delay on mobile */
}

.portal-tab-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--portal-shadow);
}

.portal-tab-btn.active {
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-primary-light) 100%);
    color: white;
    border-color: var(--portal-primary);
}

/* ============================================
   Cards
   ============================================ */
.portal-card {
    background: var(--portal-card-bg);
    border-radius: var(--portal-radius);
    box-shadow: var(--portal-shadow);
    margin-bottom: 1rem;
    padding: 1.25rem;
}

/* ============================================
   Stats Dashboard
   ============================================ */
.portal-section-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--portal-text);
    margin-bottom: 1rem;
}

.portal-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.75rem;
}

.portal-stat-card {
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-primary-light) 100%);
    color: white;
    padding: 1rem 0.75rem;
    border-radius: var(--portal-radius);
    text-align: center;
    cursor: default;
    transition: var(--portal-transition);
}

.portal-stat-card[data-action] {
    cursor: pointer;
}

.portal-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--portal-shadow);
}

.portal-stat-number {
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.2;
}

.portal-stat-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.9;
    margin-top: 0.25rem;
}

/* ============================================
   Filters
   ============================================ */
.portal-filters-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.portal-filters-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.portal-filter-group {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.portal-filter-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--portal-text-light);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.portal-filter-input {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--portal-border);
    border-radius: 6px;
    font-size: 0.9rem;
    color: var(--portal-text);
    background: white;
    transition: var(--portal-transition);
    width: 100%;
}

.portal-filter-input:focus {
    outline: none;
    border-color: var(--portal-primary);
    box-shadow: 0 0 0 3px rgba(255, 116, 38, 0.15);
}

.portal-more-filters-toggle {
    text-align: center;
    margin: 1rem 0;
}

.portal-secondary-filters {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--portal-border);
}

/* Quick Filter Buttons */
.portal-quick-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--portal-border);
}

.portal-quick-filter-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--portal-text-light);
    text-transform: uppercase;
}

.portal-filter-btn {
    padding: 0.4rem 1rem;
    border: 1px solid var(--portal-border);
    border-radius: 20px;
    background: white;
    color: var(--portal-text);
    cursor: pointer;
    font-size: 0.85rem;
    transition: var(--portal-transition);
    touch-action: manipulation; /* UX-4: Removes 300ms tap delay on mobile */
}

.portal-filter-btn:hover {
    background: var(--portal-primary);
    color: white;
    border-color: var(--portal-primary);
}

.portal-filter-btn.active {
    background: var(--portal-primary);
    color: white;
    border-color: var(--portal-primary);
}

/* ============================================
   Action Bar
   ============================================ */
.portal-action-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.portal-action-bar-right {
    display: flex;
    gap: 0.5rem;
}

.portal-showing-count {
    font-size: 0.9rem;
    color: var(--portal-text-light);
    font-weight: 500;
}

/* ============================================
   Buttons
   ============================================ */
.portal-btn {
    padding: 0.6rem 1.25rem;
    border: none;
    border-radius: var(--portal-radius);
    cursor: pointer;
    font-weight: 600;
    font-size: 0.85rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    transition: var(--portal-transition);
    touch-action: manipulation; /* UX-4: Removes 300ms tap delay on mobile */
}

.portal-btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--portal-shadow);
}

.portal-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.portal-btn-primary {
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-primary-light) 100%);
    color: white;
}

.portal-btn-secondary {
    background: #6c757d;
    color: white;
}

.portal-btn-outline {
    background: transparent;
    border: 1px solid var(--portal-border);
    color: var(--portal-text);
}

.portal-btn-outline:hover {
    background: var(--portal-primary);
    color: white;
    border-color: var(--portal-primary);
}

.portal-btn-small {
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
}

.portal-btn-interest {
    white-space: nowrap;
}

/* ============================================
   Virtual Table
   ============================================ */
.portal-virtual-table-container {
    position: relative;
    height: 70vh;
    min-height: 600px;
    border: 1px solid var(--portal-border);
    border-radius: var(--portal-radius);
    overflow: hidden;
}

.portal-virtual-table-header {
    position: sticky;
    top: 0;
    z-index: 10;
    display: grid;
    grid-template-columns: 40px 2fr 1.5fr 60px 60px 70px 70px 1.5fr 60px 100px;
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-primary-light) 100%);
    color: white;
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.portal-th {
    padding: 0.85rem 0.5rem;
    display: flex;
    align-items: center;
}

.portal-th input[type="checkbox"] {
    cursor: pointer;
    width: 16px;
    height: 16px;
}

.portal-virtual-table-viewport {
    height: calc(100% - 48px);
    overflow-y: auto;
    position: relative;
}

.portal-virtual-table-spacer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    pointer-events: none;
}

.portal-virtual-table-content {
    position: relative;
}

/* Table Rows */
.portal-virtual-row {
    display: grid;
    grid-template-columns: 40px 2fr 1.5fr 60px 60px 70px 70px 1.5fr 60px 100px;
    min-height: 52px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
    transition: background 0.15s ease;
    align-items: center;
    touch-action: manipulation; /* UX-4: Removes 300ms tap delay on mobile */
}

.portal-virtual-row:nth-child(even) {
    background: #fafafa;
}

.portal-virtual-row:hover {
    background: #fff3e6;
}

.portal-virtual-row.selected {
    background: #fff0db;
}

.portal-virtual-cell {
    padding: 0.5rem;
    font-size: 0.85rem;
    color: var(--portal-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-virtual-cell input[type="checkbox"] {
    cursor: pointer;
    width: 16px;
    height: 16px;
}

/* Player name link */
.portal-player-name {
    color: var(--portal-primary);
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.portal-player-name:hover {
    text-decoration: underline;
}

/* Favorite button */
.portal-favorite-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    padding: 0;
    margin-left: 0.25rem;
    opacity: 0.4;
    transition: var(--portal-transition);
}

.portal-favorite-btn.favorited {
    opacity: 1;
    color: var(--portal-warning);
}

/* State badge */
.portal-state-badge {
    display: inline-block;
    background: linear-gradient(135deg, var(--portal-info) 0%, #20c997 100%);
    color: white;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
}

.portal-hometown-badge {
    display: inline-block;
    padding: 0.15rem 0.45rem;
    background: #e0f0ff;
    border-radius: 3px;
    font-size: 0.75rem;
    font-weight: 700;
    color: #0d6efd;
}

/* Offer badges in table rows */
.portal-offer-badge {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    font-size: 0.7rem;
    font-weight: 600;
    color: white;
    margin-right: 0.2rem;
    background: #6c757d; /* Default gray background for unmatched levels */
}

.portal-offer-badge.d1 { background: #9b59b6; }
.portal-offer-badge.d2 { background: #3498db; }
.portal-offer-badge.d3 { background: #27ae60; }
.portal-offer-badge.naia { background: #e67e22; }
.portal-offer-badge.njcaa,
.portal-offer-badge.juco { background: #1abc9c; }

/* GPA Eligibility Badges */
.gpa-badge {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: help;
}

/* GPA Help Tooltip */
.portal-gpa-help {
    display: inline-block;
    margin-left: 0.5rem;
    color: white;
    background: #17a2b8;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    text-align: center;
    line-height: 20px;
    font-size: 13px;
    font-weight: bold;
    cursor: pointer;
    position: relative;
    vertical-align: middle;
    z-index: 1;
    user-select: none;
}

.portal-gpa-help:hover {
    background: #ff7426;
    transform: scale(1.1);
    transition: all 0.2s ease;
}

.portal-gpa-tooltip {
    display: none;
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background: #2c3e50;
    color: white;
    padding: 1.25rem;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
    width: 300px;
    z-index: 99999;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
    text-align: left;
    font-weight: normal;
    white-space: normal;
}

.portal-gpa-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 8px solid transparent;
    border-top-color: #2c3e50;
}

.portal-gpa-help:hover .portal-gpa-tooltip,
.portal-gpa-help:focus .portal-gpa-tooltip,
.portal-gpa-help:active .portal-gpa-tooltip {
    display: block;
}

/* Make tooltip text readable */
.portal-gpa-tooltip strong {
    color: #3498db;
    font-weight: 600;
}

.gpa-critical {
    background: #f8d7da;
    color: #721c24;
}

.gpa-warning {
    background: #fff3cd;
    color: #856404;
}

.gpa-caution {
    background: #ffeeba;
    color: #856404;
}

.gpa-good {
    background: #d4edda;
    color: #155724;
}

.gpa-excellent {
    background: #c3e6cb;
    color: #155724;
}

/* Video Badge in table rows */
.portal-video-badge {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    font-size: 0.65rem;
    font-weight: 700;
    color: white;
    background: #dc3545;
    margin-left: 0.3rem;
    cursor: pointer;
    vertical-align: middle;
}

.portal-video-badge:hover {
    background: #c82333;
}

/* Featured Badge in table rows */
.portal-featured-badge {
    display: inline-block;
    padding: 0.1rem 0.35rem;
    margin-left: 0.35rem;
    font-size: 0.9rem;
    vertical-align: middle;
    filter: drop-shadow(0 1px 2px rgba(255, 193, 7, 0.4));
}

/* Hot Player badge (UX-3) */
.portal-hot-badge {
    display: inline-block;
    padding: 0.1rem 0.35rem;
    margin-left: 0.35rem;
    font-size: 0.9rem;
    vertical-align: middle;
    filter: drop-shadow(0 1px 2px rgba(255, 87, 34, 0.5));
    animation: pulse-hot 2s ease-in-out infinite;
    cursor: help;
}

@keyframes pulse-hot {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.15);
        opacity: 0.9;
    }
}

/* Express Interest button in table */
.portal-interest-cell-btn {
    padding: 0.25rem 0.6rem;
    border: none;
    border-radius: 4px;
    background: linear-gradient(135deg, var(--portal-info) 0%, #20c997 100%);
    color: white;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--portal-transition);
    white-space: nowrap;
}

.portal-interest-cell-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.portal-interest-cell-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* ============================================
   Modals
   ============================================ */
.portal-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    z-index: 10000;
    padding: 2rem 1rem;
    overflow-y: auto;
}

.portal-modal-content {
    background: white;
    border-radius: 15px;
    width: 100%;
    max-height: calc(100vh - 4rem);
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: portal-modal-in 0.3s ease-out;
    position: relative;
}

.portal-modal-lg {
    max-width: 800px;
}

.portal-modal-xl {
    max-width: 1000px;
}

@keyframes portal-modal-in {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(-20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.portal-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 2rem;
    background: linear-gradient(135deg, #17a2b8 0%, #20c997 100%);
    color: white;
    position: relative;
}

.portal-modal-header-info {
    flex: 1;
    min-width: 0;
}

.portal-modal-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-left: 1rem;
    flex-shrink: 0;
}

.portal-modal-header-actions .portal-btn-outline {
    background: rgba(255, 255, 255, 0.95);
    border-color: white;
    color: #333;
}

.portal-modal-header-actions .portal-btn-outline:hover {
    background: white;
    border-color: white;
    color: var(--portal-primary);
}

.portal-modal-player-name {
    font-size: 2.2rem;
    font-weight: 800;
    margin: 0 0 0.5rem 0;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    color: white;
}

.portal-modal-player-sub {
    font-size: 1.2rem;
    opacity: 0.95;
    margin-bottom: 1rem;
    color: white;
}

.portal-modal-badges {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.portal-modal-close {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: white;
    font-size: 1.5rem;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--portal-transition);
    line-height: 1;
    touch-action: manipulation; /* UX-4: Removes 300ms tap delay on mobile */
}

.portal-modal-close:hover {
    background: rgba(255, 255, 255, 0.3);
}

.portal-modal-body {
    padding: 2rem;
    max-height: 70vh;
    overflow-y: auto;
}

/* Player Info Grid in Modal */
.portal-player-info-table {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
    background: #f8f9fa;
    padding: 1.25rem;
    border-radius: var(--portal-radius);
    border: 1px solid #e9ecef;
}

.portal-info-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1.5rem;
}

.portal-info-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.portal-info-label {
    font-size: 0.75rem;
    color: var(--portal-text-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.portal-info-value {
    font-size: 0.95rem;
    color: var(--portal-text);
    font-weight: 700;
    background: white;
    padding: 0.4rem 0.65rem;
    border-radius: 6px;
    border: 1px solid #ddd;
}

/* Detail sections */
.portal-detail-section-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--portal-text);
    margin: 1.5rem 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--portal-primary);
}

.portal-detail-section-content {
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--portal-text);
    white-space: pre-wrap;
}

/* UX-4: Enforce aspect ratio for video iframes in modals */
.portal-detail-section-content iframe,
.portal-modal-body iframe {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
    border-radius: var(--portal-radius);
}

/* Notes */
.portal-notes-textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--portal-border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-family: inherit;
    resize: vertical;
    transition: var(--portal-transition);
    margin-top: 0.5rem;
}

.portal-notes-textarea:focus {
    outline: none;
    border-color: var(--portal-primary);
    box-shadow: 0 0 0 3px rgba(255, 116, 38, 0.15);
}

.portal-notes-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.portal-notes-status {
    font-size: 0.8rem;
    color: var(--portal-success);
    font-weight: 500;
}

/* Video links (legacy) */
.portal-video-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: #f8f9fa;
    border: 1px solid var(--portal-border);
    border-radius: 6px;
    color: var(--portal-primary);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9rem;
    transition: var(--portal-transition);
    margin: 0.25rem;
}

.portal-video-link:hover {
    background: var(--portal-primary);
    color: white;
    border-color: var(--portal-primary);
}

/* Modal Video Cards */
.portal-modal-video-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    margin-top: 0.75rem;
}

.portal-modal-video-card {
    display: block;
    text-decoration: none;
    background: #f8f9fa;
    border: 1px solid var(--portal-border);
    border-radius: var(--portal-radius);
    overflow: hidden;
    transition: var(--portal-transition);
}

.portal-modal-video-card:hover {
    border-color: var(--portal-primary);
    box-shadow: var(--portal-shadow);
    transform: translateY(-2px);
}

.portal-modal-video-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #222 center / cover no-repeat;
    overflow: hidden;
}

.portal-modal-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 44px;
    height: 44px;
    background: rgba(0, 0, 0, 0.6);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.1rem;
    transition: var(--portal-transition);
}

.portal-modal-video-card:hover .portal-modal-video-play {
    background: var(--portal-primary);
}

.portal-modal-video-info {
    padding: 0.6rem 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--portal-text);
}

.portal-modal-video-platform {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    color: white;
}

.portal-modal-video-youtube { background: #ff0000; }
.portal-modal-video-hudl { background: #ff6600; }
.portal-modal-video-vimeo { background: #1ab7ea; }
.portal-modal-video-fieldlevel { background: #0066cc; }
.portal-modal-video-generic { background: #6c757d; }

/* Interest list in modal */
.portal-interest-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.9rem;
}

.portal-interest-item:last-child {
    border-bottom: none;
}

/* ============================================
   Comparison Modal
   ============================================ */
.portal-comparison-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
}

.portal-comparison-player {
    background: #f8f9fa;
    border-radius: var(--portal-radius);
    padding: 1.25rem;
    border: 1px solid var(--portal-border);
}

.portal-comparison-player h3 {
    color: var(--portal-primary);
    font-size: 1.1rem;
    margin: 0 0 1rem;
}

.portal-comparison-stat {
    display: flex;
    justify-content: space-between;
    padding: 0.4rem 0;
    border-bottom: 1px solid #eee;
    font-size: 0.85rem;
}

.portal-comparison-stat:last-child {
    border-bottom: none;
}

.portal-comparison-label {
    color: var(--portal-text-light);
    font-weight: 500;
}

.portal-comparison-value {
    color: var(--portal-text);
    font-weight: 700;
}

/* ============================================
   Toast Notifications
   ============================================ */
.portal-toast-container {
    position: fixed;
    top: 80px;
    right: 1rem;
    z-index: 10001;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.portal-toast {
    padding: 0.75rem 1.25rem;
    border-radius: var(--portal-radius);
    color: white;
    font-size: 0.85rem;
    font-weight: 500;
    box-shadow: var(--portal-shadow-lg);
    animation: portal-toast-in 0.3s ease;
    max-width: 350px;
}

.portal-toast.success { background: var(--portal-success); }
.portal-toast.error { background: var(--portal-danger); }
.portal-toast.info { background: var(--portal-info); }
.portal-toast.warning { background: var(--portal-warning); color: #333; }

@keyframes portal-toast-in {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

/* ============================================
   Error Message
   ============================================ */
.portal-error-message {
    background: linear-gradient(135deg, var(--portal-danger) 0%, #c82333 100%);
    color: white;
    padding: 1rem 1.25rem;
    border-radius: var(--portal-radius);
}

/* ============================================
   Responsive — Tablet
   ============================================ */
@media (max-width: 992px) {
    .portal-virtual-table-header,
    .portal-virtual-row {
        grid-template-columns: 40px 2fr 1.2fr 55px 55px 65px 65px 1fr 55px;
    }

    /* Hide actions column on tablet */
    .portal-th-actions,
    .portal-virtual-cell:nth-child(10) {
        display: none;
    }

    .portal-stats-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ============================================
   Responsive — Mobile
   ============================================ */
@media (max-width: 768px) {
    .portal-container {
        padding: 0 0.5rem 1rem;
    }

    .portal-header h1 {
        font-size: 1.3rem;
    }

    .portal-tabs-center {
        flex-direction: column;
        width: 100%;
        padding: 0 1rem;
    }

    .portal-tab-btn {
        width: 100%;
        text-align: center;
    }

    .portal-filters-grid {
        grid-template-columns: 1fr;
    }

    .portal-action-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .portal-virtual-table-container {
        height: 50vh;
        min-height: 400px;
    }

    .portal-virtual-table-header,
    .portal-virtual-row {
        grid-template-columns: 2fr 1fr 55px 65px 65px 55px;
        font-size: 0.75rem;
    }

    /* Hide checkbox, hometown-state, position, actions on mobile */
    .portal-th-checkbox,
    .portal-virtual-cell:nth-child(1),
    .portal-th-hometown,
    .portal-virtual-cell:nth-child(5),
    .portal-th-position,
    .portal-virtual-cell:nth-child(8),
    .portal-th-actions,
    .portal-virtual-cell:nth-child(10) {
        display: none;
    }

    .portal-modal-content {
        border-radius: 8px;
    }

    .portal-modal-lg,
    .portal-modal-xl {
        max-width: 100%;
    }

    .portal-modal-body {
        max-height: 60vh;
    }

    .portal-modal-header {
        flex-direction: column;
        gap: 0.75rem;
    }

    .portal-modal-header-actions {
        margin-left: 0;
        width: 100%;
        justify-content: space-between;
    }

    .portal-info-row {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .portal-comparison-grid {
        grid-template-columns: 1fr;
    }

    .portal-quick-filters {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ============================================
   Player Profile Page
   ============================================ */

/* WordPress overrides for profile pages */
body:has(.portal-profile) .site-content {
    width: 100%;
    max-width: none;
}

body:has(.portal-profile) .default-page {
    max-width: none;
    padding: 0;
}

.portal-profile {
    --portal-primary: var(--main-color, #ff7426);
    --portal-primary-dark: #e06620;
    --portal-primary-light: #ff9900;
    --portal-dark-bg: #1a1a1a;
    --portal-darker-bg: #0f0f0f;
    --portal-card-bg: #ffffff;
    --portal-border: #e5e7eb;
    --portal-text: #333333;
    --portal-text-light: #666666;
    --portal-radius: 8px;
    --portal-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    --portal-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.15);
    --portal-transition: all 0.2s ease;
    --portal-success: #28a745;
    --portal-warning: #ffc107;
    --portal-danger: #dc3545;
    --portal-info: #17a2b8;

    max-width: 1000px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

/* Back Navigation */
.portal-profile-back {
    padding: 1rem 0;
}

.portal-profile-back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--portal-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    transition: var(--portal-transition);
}

.portal-profile-back-link:hover {
    color: var(--portal-primary-dark);
}

/* Profile Header */
.portal-profile-header {
    background: linear-gradient(135deg, var(--portal-dark-bg) 0%, var(--portal-darker-bg) 100%);
    border-radius: var(--portal-radius);
    padding: 2rem 2rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--portal-shadow-lg);
}

.portal-profile-header-content {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.portal-profile-name {
    font-size: 2rem;
    font-weight: 800;
    color: var(--portal-primary);
    margin: 0;
    line-height: 1.2;
}

.portal-profile-header-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.portal-profile-level-badge {
    background: var(--portal-primary);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.portal-profile-header-detail {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.95rem;
    font-weight: 500;
}

.portal-profile-header-actions {
    margin-top: 0.5rem;
}

.portal-profile-interest-btn {
    white-space: nowrap;
}

/* Profile Sections */
.portal-profile-section {
    background: var(--portal-card-bg);
    border: 1px solid var(--portal-border);
    border-radius: var(--portal-radius);
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: var(--portal-shadow);
}

/* Contact unlock prompt */
.portal-contact-locked {
    border-style: dashed;
    border-color: var(--portal-primary);
}

.portal-contact-unlock-prompt {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 0.75rem;
    padding: 1rem;
    background: color-mix(in srgb, var(--portal-primary) 6%, transparent);
    border-radius: calc(var(--portal-radius) - 2px);
}

.portal-contact-unlock-icon {
    font-size: 1.75rem;
    flex-shrink: 0;
}

.portal-contact-unlock-text {
    flex: 1;
}

.portal-contact-unlock-text strong {
    display: block;
    font-size: 0.95rem;
    color: var(--portal-text);
    margin-bottom: 0.25rem;
}

.portal-contact-unlock-text p {
    font-size: 0.85rem;
    color: var(--portal-text-muted, #6b7280);
    margin: 0;
}

.portal-contact-unlock-btn {
    flex-shrink: 0;
}

@media (max-width: 600px) {
    .portal-contact-unlock-prompt {
        flex-direction: column;
        text-align: center;
    }
}

/* Info Grid */
.portal-profile-info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-top: 1rem;
}

.portal-profile-info-card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.portal-profile-info-card .portal-info-label {
    font-size: 0.75rem;
    color: var(--portal-text-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.portal-profile-info-card .portal-info-value {
    font-size: 0.95rem;
    color: var(--portal-text);
    font-weight: 700;
    background: #f8f9fa;
    padding: 0.4rem 0.65rem;
    border-radius: 6px;
    border: 1px solid #ddd;
}

/* Offers */
.portal-profile-offers {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.portal-profile-offer-count {
    font-size: 1rem;
    color: var(--portal-text);
}

.portal-profile-offer-levels {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

/* Scouting Report */
.portal-profile-scouting-report {
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--portal-text);
    white-space: pre-wrap;
    margin-top: 0.75rem;
    padding-left: 1rem;
    border-left: 3px solid var(--portal-primary);
}

/* Video Grid */
.portal-profile-video-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1rem;
    margin-top: 0.75rem;
}

.portal-profile-video-card {
    display: block;
    text-decoration: none;
    background: #f8f9fa;
    border: 1px solid var(--portal-border);
    border-radius: var(--portal-radius);
    overflow: hidden;
    transition: var(--portal-transition);
}

.portal-profile-video-card:hover {
    border-color: var(--portal-primary);
    box-shadow: var(--portal-shadow);
    transform: translateY(-2px);
}

.portal-profile-video-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #222;
    overflow: hidden;
}

.portal-profile-video-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.portal-profile-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 48px;
    height: 48px;
    background: rgba(0, 0, 0, 0.65);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.2rem;
    transition: var(--portal-transition);
}

.portal-profile-video-card:hover .portal-profile-video-play {
    background: var(--portal-primary);
}

.portal-profile-video-info {
    padding: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.portal-profile-video-platform {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    color: white;
}

.portal-profile-video-youtube { background: #ff0000; }
.portal-profile-video-hudl { background: #ff6600; }
.portal-profile-video-vimeo { background: #1ab7ea; }
.portal-profile-video-fieldlevel { background: #0066cc; }
.portal-profile-video-generic { background: #6c757d; }

.portal-profile-video-label {
    font-size: 0.85rem;
    color: var(--portal-text);
    font-weight: 500;
}

/* Interest Table */
.portal-profile-interest-table {
    margin-top: 0.75rem;
}

.portal-profile-interest-header {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--portal-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--portal-border);
}

/* Share Buttons */
.portal-profile-share-buttons {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.portal-profile-share-btn {
    padding: 0.6rem 1.25rem;
    border: none;
    border-radius: var(--portal-radius);
    cursor: pointer;
    font-weight: 600;
    font-size: 0.85rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    transition: var(--portal-transition);
}

.portal-profile-share-btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--portal-shadow);
}

.portal-profile-share-twitter {
    background: #1da1f2;
    color: white;
}

.portal-profile-share-twitter:hover {
    background: #0d8bd9;
    color: white;
}

.portal-profile-share-copy {
    background: #6c757d;
    color: white;
}

.portal-profile-share-copy:hover {
    background: #545b62;
}

.portal-profile-share-copy.copied {
    background: var(--portal-success);
}

/* ============================================
   Profile Responsive — Tablet
   ============================================ */
@media (max-width: 992px) {
    .portal-profile-info-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .portal-profile-video-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================
   Profile Responsive — Mobile
   ============================================ */
@media (max-width: 768px) {
    .portal-profile {
        padding: 0 0.5rem 1rem;
    }

    .portal-profile-header {
        padding: 1.5rem 1rem;
    }

    .portal-profile-name {
        font-size: 1.5rem;
    }

    .portal-profile-section {
        padding: 1rem;
    }

    .portal-profile-info-grid {
        grid-template-columns: 1fr;
    }

    .portal-profile-video-grid {
        grid-template-columns: 1fr;
    }

    .portal-profile-share-buttons {
        flex-direction: column;
    }

    .portal-profile-share-btn {
        width: 100%;
    }

    .portal-profile-header-meta {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ============================================
   Print Styles
   ============================================ */
@media print {
    .portal-loading-overlay,
    .portal-modal,
    .portal-toast-container,
    .portal-tabs-section,
    .portal-filters-section,
    .portal-action-bar,
    .portal-quick-filters,
    .portal-more-filters-toggle {
        display: none !important;
    }

    .portal-virtual-table-container {
        height: auto !important;
        overflow: visible !important;
    }
}

/* =========================================================================
   COACH DASHBOARD — .coach-dashboard scope
   ========================================================================= */

.coach-dashboard {
    --cd-bg: #f5f5f5;
    --cd-dark: #0f0f0f;
    --cd-dark-2: #1a1a1a;
    --cd-accent: #ff7426;
    --cd-accent-light: rgba(255, 116, 38, 0.08);
    --cd-green: #28a745;
    --cd-blue: #2196f3;
    --cd-red: #e74c3c;
    --cd-yellow: #ffc107;
    --cd-muted: #6c757d;
    --cd-border: #e8e8e8;
    --cd-radius: 8px;

    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px 60px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--cd-bg);
    min-height: 60vh;
}

/* ----- Login / Access Gates ----- */

.cd-login-gate,
.cd-access-denied {
    max-width: 480px;
    margin: 60px auto;
    padding: 40px;
    background: #fff;
    border-radius: var(--cd-radius);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    text-align: center;
}

.cd-login-gate h2,
.cd-access-denied h2 {
    margin: 0 0 12px;
    font-size: 24px;
    color: #333;
}

.cd-login-gate p,
.cd-access-denied p {
    margin: 0 0 24px;
    color: #666;
}

.cd-btn {
    display: inline-block;
    padding: 10px 24px;
    background: var(--cd-accent);
    color: #fff;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
}

/* ----- Dashboard Header ----- */

.cd-header {
    background: linear-gradient(135deg, var(--cd-dark) 0%, var(--cd-dark-2) 100%);
    color: #fff;
    border-radius: var(--cd-radius);
    margin-bottom: 24px;
    border-bottom: 3px solid var(--cd-accent);
}

.cd-header-inner {
    padding: 36px 30px;
    text-align: center;
}

.cd-header h1 {
    margin: 0 0 6px;
    font-size: 28px;
    font-weight: 700;
    color: #fff;
}

.cd-welcome {
    margin: 0;
    font-size: 15px;
    opacity: 0.85;
    color: #fff;
}

/* Role switcher */
.cd-role-switcher {
    margin-top: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 13px;
}

.cd-role-active {
    padding: 4px 12px;
    background: var(--cd-accent);
    border-radius: 4px;
    font-weight: 600;
}

.cd-role-link {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: underline;
}

.cd-role-link:hover {
    color: #fff;
}

/* Admin notice */
.cd-admin-notice {
    margin-top: 12px;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    font-size: 13px;
}

.cd-admin-notice a {
    color: var(--cd-accent);
    margin-left: 8px;
}

/* Loading */
.cd-loading {
    margin-top: 16px;
    padding: 12px 24px;
    display: inline-block;
    background: rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    font-weight: 600;
    font-size: 14px;
}

/* ----- Stats Cards ----- */

.cd-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}

.cd-stat-card {
    text-align: center;
    padding: 24px 16px;
    border-radius: var(--cd-radius);
    color: #fff;
}

.cd-stat-total {
    background: var(--cd-dark-2);
    border: 2px solid var(--cd-accent);
}

.cd-stat-interest {
    background: var(--cd-green);
}

.cd-stat-recent {
    background: var(--cd-yellow);
    color: #333;
}

.cd-stat-messages {
    background: #4b5563;
    color: #fff;
}

.cd-stat-number {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
}

.cd-stat-total .cd-stat-number {
    color: var(--cd-accent);
}

.cd-stat-label {
    font-size: 13px;
    margin-top: 4px;
}

/* ----- View Controls ----- */

.cd-view-controls {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.cd-view-btn {
    padding: 8px 18px;
    border: 1px solid var(--cd-border);
    border-radius: 6px;
    background: #fff;
    color: #555;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

.cd-view-btn:hover {
    border-color: var(--cd-accent);
    color: var(--cd-accent);
}

.cd-view-btn.active {
    background: var(--cd-accent);
    color: #fff;
    border-color: var(--cd-accent);
}

/* ----- Priority Groups ----- */

.cd-groups {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 1100px; /* Limit width to match fixed column widths */
    margin: 0 auto;
}

.cd-group {
    background: #fff;
    border-radius: var(--cd-radius);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow-x: auto; /* Allow horizontal scroll on small screens */
}

.cd-group-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    background: #fafafa;
    border-left: 4px solid var(--cd-muted);
    cursor: pointer;
    user-select: none;
    transition: background 0.15s;
}

.cd-group-header:hover {
    background: #f0f0f0;
}

.cd-group-title {
    font-weight: 700;
    font-size: 15px;
    color: #333;
}

.cd-group-count {
    padding: 2px 10px;
    background: var(--cd-dark-2);
    color: #fff;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

.cd-group-toggle {
    margin-left: auto;
    font-size: 12px;
    color: #999;
}

/* ----- Player Table ----- */

.cd-table-header {
    background: var(--cd-dark-2);
    color: #fff;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cd-row {
    display: grid;
    gap: 8px;
    padding: 12px 20px;
    align-items: center;
}

.cd-row[data-cols="9"] {
    /* Fixed-width columns like pc-prod: Player, School, State, Height, Class, Position, Interest, Status, Actions */
    grid-template-columns: 200px 140px 65px 65px 75px 90px 80px 90px 120px;
}

.cd-row[data-cols="8"] {
    /* 8 columns (without one column) */
    grid-template-columns: 200px 140px 65px 65px 75px 90px 80px 120px;
}

.cd-row[data-cols="6"] {
    /* Simplified view: Player, School, State, Height, Interest, Actions */
    grid-template-columns: 200px 140px 65px 65px 80px 120px;
}

.cd-row[data-cols="5"] {
    grid-template-columns: 200px 140px 65px 65px 120px;
}

.cd-player-header {
    display: grid;
    grid-template-columns: 200px 120px 80px 70px 100px 120px 80px 1fr;
    gap: 12px;
    padding: 16px;
    background: #1a1a1a;
    color: white;
    font-weight: 600;
    font-size: 13px;
}

.cd-player-row {
    display: grid;
    grid-template-columns: 200px 120px 80px 70px 100px 120px 80px 1fr;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 13px;
    color: #444;
    transition: background 0.1s;
    align-items: center;
}

.cd-player-row:hover {
    background: #fafafa;
}

.cd-player-row--priority {
    border-left: 4px solid var(--cd-accent);
    background: var(--cd-accent-light);
}

.cd-player-row--priority:hover {
    background: rgba(255, 116, 38, 0.12);
}

.cd-player-name {
    font-weight: 600;
    color: #1a1a1a;
}

.cd-player-name a {
    color: var(--cd-blue);
    text-decoration: none;
}

.cd-player-name a:hover {
    text-decoration: underline;
}

.cd-player-school {
    color: #555;
}

.cd-player-interest {
    font-weight: 600;
    text-align: center;
}

.cd-interest--high {
    color: var(--cd-green);
    background: #d4edda;
    border-radius: 4px;
    padding: 2px 6px;
}

.cd-interest--some {
    color: var(--cd-blue);
    background: #cce5ff;
    border-radius: 4px;
    padding: 2px 6px;
}

.cd-interest--none {
    color: #888;
}

.cd-player-status {
    text-align: right;
}

.cd-offers-badge {
    display: inline-block;
    padding: 2px 8px;
    background: linear-gradient(135deg, var(--cd-accent), #ffbe3d);
    color: #fff;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
}

.cd-priority-row {
    border-left: 4px solid var(--cd-accent);
    background: var(--cd-accent-light);
}

.cd-priority-row:hover {
    background: rgba(255, 116, 38, 0.12);
}

.cd-cell-name {
    font-weight: 600;
    color: #1a1a1a;
}

.cd-cell-name a {
    color: var(--cd-blue);
    text-decoration: none;
}

.cd-cell-name a:hover {
    text-decoration: underline;
}

.cd-cell-interest {
    font-weight: 600;
    text-align: center;
    color: var(--cd-muted);
}

.cd-cell-interest.cd-hot {
    color: var(--cd-green);
}

.cd-cell-interest.cd-warm {
    color: var(--cd-blue);
}

.cd-offer-badge {
    display: inline-block;
    padding: 2px 8px;
    background: linear-gradient(135deg, var(--cd-accent), #ffbe3d);
    color: #fff;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
}

/* ----- Interest Modal ----- */

.cd-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.cd-modal {
    background: #fff;
    border-radius: 12px;
    max-width: 560px;
    width: 100%;
    max-height: 80vh;
    overflow-y: auto;
    padding: 30px;
    position: relative;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.cd-modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: none;
    border: none;
    font-size: 28px;
    color: #999;
    cursor: pointer;
    line-height: 1;
}

.cd-modal-close:hover {
    color: #333;
}

.cd-modal-summary h3 {
    margin: 0 0 6px;
    font-size: 22px;
    color: #1a1a1a;
}

.cd-modal-meta {
    font-size: 13px;
    color: #666;
    margin-bottom: 16px;
}

.cd-modal-offers {
    padding: 10px 16px;
    background: linear-gradient(135deg, var(--cd-accent), #ffbe3d);
    color: #fff;
    border-radius: 6px;
    font-weight: 700;
    font-size: 14px;
    margin-bottom: 16px;
    text-align: center;
}

.cd-modal-interests {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cd-interest-card {
    padding: 12px;
    margin-bottom: 8px;
    background: #f8f9fa;
    border-radius: 6px;
    border-left: 4px solid #007bff;
}

.cd-interest-coach {
    font-weight: 700;
    font-size: 14px;
    color: #1a1a1a;
    margin-bottom: 2px;
}

.cd-interest-school {
    font-size: 13px;
    color: #495057;
}

.cd-interest-level {
    font-size: 12px;
    color: #555;
    font-weight: 400;
    margin-top: 2px;
}

.cd-interest-notes {
    margin-top: 6px;
    padding: 6px 8px;
    background: rgba(255,255,255,0.7);
    border-radius: 4px;
    font-size: 12px;
    color: #333;
    border-left: 2px solid #17a2b8;
}

.cd-interest-time {
    margin-top: 4px;
    font-size: 11px;
    color: #999;
}

.cd-modal-empty {
    text-align: center;
    color: #999;
    padding: 20px 0;
}

/* ----- Empty / Error ----- */

.cd-empty {
    text-align: center;
    padding: 40px;
    background: #fff;
    border-radius: var(--cd-radius);
    color: #666;
    font-size: 15px;
}

.cd-error {
    padding: 20px 24px;
    background: #f8d7da;
    color: #721c24;
    border-radius: var(--cd-radius);
}

/* ----- Player Card Grid ----- */

.cd-group-body.cd-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 12px;
    padding: 16px;
}

.cd-player-card {
    background: white;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
    border: 1px solid #e9ecef;
    transition: all 0.2s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.cd-player-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    border-color: var(--cd-blue);
}

.cd-player-card.cd-card-priority {
    border-left: 4px solid var(--cd-accent);
    background: linear-gradient(135deg, #ffffff 0%, #fff9f6 100%);
}

.cd-player-card.cd-card-priority:hover {
    box-shadow: 0 8px 25px rgba(255, 116, 38, 0.2);
}

.cd-card-main {
    padding: 16px 20px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    flex: 1;
}

.cd-card-player-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    overflow: hidden;
}

.cd-card-player-name {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.cd-card-player-name a {
    color: var(--cd-blue);
    text-decoration: none;
}

.cd-card-player-name a:hover {
    color: var(--cd-accent);
    text-decoration: underline;
}

.cd-card-player-details {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 12px;
    color: #666;
}

.cd-card-detail {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    white-space: nowrap;
}

.cd-card-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    min-width: 80px;
}

.cd-card-interest-badge {
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    background: var(--cd-muted);
    color: white;
    text-align: center;
    white-space: nowrap;
}

.cd-card-interest-badge.interest-hot { background: var(--cd-green); }
.cd-card-interest-badge.interest-warm { background: var(--cd-blue); }

.cd-card-offer-badge {
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    background: linear-gradient(135deg, var(--cd-accent), #ffbe3d);
    color: white;
    text-align: center;
    white-space: nowrap;
}

.cd-card-actions-section {
    border-top: 1px solid #eee;
    padding: 12px 20px;
    background: #f8f9fa;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}

.cd-card-actions-section .cd-edit-btn,
.cd-card-actions-section .cd-commit-btn {
    flex: 0 0 auto;
}

/* ----- Player list mobile card layout ----- */

@media (max-width: 900px) {
    .cd-player-header {
        display: none;
    }

    .cd-player-row {
        display: flex;
        flex-wrap: wrap;
        position: relative;
        background: white;
        border-radius: 8px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
        margin-bottom: 10px;
        padding: 14px;
        border-bottom: none;
        gap: 0;
    }

    .cd-player-row--priority {
        border-left: 4px solid var(--cd-accent);
    }

    .cd-player-name {
        width: 100%;
        font-size: 15px;
        font-weight: 700;
        margin-bottom: 4px;
        padding-right: 80px;
    }

    .cd-player-school {
        display: block;
        width: 100%;
        font-size: 13px;
        color: #555;
        margin-bottom: 6px;
    }

    .cd-player-cell {
        display: inline-block;
        background: #f0f0f0;
        border-radius: 4px;
        font-size: 11px;
        padding: 3px 8px;
        margin-right: 4px;
        margin-bottom: 4px;
        color: #444;
    }

    .cd-player-interest {
        display: inline-block;
        border-radius: 4px;
        font-size: 11px;
        padding: 3px 8px;
        margin-right: 4px;
        margin-bottom: 4px;
        text-align: left;
        font-weight: 600;
    }

    .cd-interest--none {
        background: #f0f0f0;
        padding: 3px 8px;
    }

    .cd-player-status {
        position: absolute;
        top: 14px;
        right: 14px;
        text-align: right;
    }
}

/* ----- Responsive ----- */

@media (max-width: 768px) {
    .coach-dashboard {
        padding: 0 12px 40px;
    }

    .cd-header-inner {
        padding: 24px 16px;
    }

    .cd-header h1 {
        font-size: 22px;
    }

    .cd-stats {
        grid-template-columns: 1fr;
    }

    .cd-view-controls {
        flex-wrap: wrap;
    }

    .cd-group-body.cd-card-grid {
        grid-template-columns: 1fr;
    }

    .cd-row[data-cols="8"],
    .cd-row[data-cols="5"] {
        grid-template-columns: 1fr 1fr;
        gap: 4px 12px;
    }

    .cd-table-header {
        display: none;
    }

    .cd-cell::before {
        content: attr(data-label);
        font-weight: 600;
        color: #999;
        font-size: 10px;
        text-transform: uppercase;
        display: block;
    }

    .cd-modal {
        padding: 20px;
        max-height: 90vh;
    }
}

/* =============================================================================
   RECRUITING DASHBOARD — Scoped under .recruiting-dashboard
   ============================================================================= */

.recruiting-dashboard {
    --rd-bg: #f5f6f8;
    --rd-surface: #ffffff;
    --rd-dark: #0f0f0f;
    --rd-text: #1a1a1a;
    --rd-text-light: #666;
    --rd-accent: #ff7426;
    --rd-accent-dark: #e56520;
    --rd-border: #e5e7eb;
    --rd-radius: 8px;
    --rd-green: #28a745;
    --rd-blue: #007bff;
    --rd-orange: #fd7e14;
    --rd-teal: #20c997;
    --rd-yellow: #ffc107;
    --rd-gray: #6c757d;

    max-width: 1400px;
    margin: 0 auto;
    padding: 0 16px 40px;
    background: var(--rd-bg);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* WordPress overrides */
.recruiting-dashboard * { box-sizing: border-box; }
.recruiting-dashboard a { text-decoration: none; }

/* Login / access denied gates */
.rd-login-gate,
.rd-access-denied {
    max-width: 480px;
    margin: 60px auto;
    padding: 40px;
    background: var(--rd-surface);
    border-radius: var(--rd-radius);
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    text-align: center;
}

.rd-login-gate h2,
.rd-access-denied h2 {
    color: var(--rd-text);
    margin: 0 0 12px;
    font-size: 24px;
}

.rd-login-gate p,
.rd-access-denied p {
    color: var(--rd-text-light);
    margin: 0 0 24px;
}

.rd-btn {
    display: inline-block;
    padding: 10px 24px;
    background: var(--rd-accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
}

.rd-btn:hover { background: var(--rd-accent-dark); }

/* Header */
.rd-header {
    background: linear-gradient(135deg, var(--rd-dark) 0%, #1a1a1a 100%);
    color: #fff;
    padding: 32px;
    border-radius: var(--rd-radius);
    margin-bottom: 24px;
    border-bottom: 3px solid var(--rd-accent);
}

.rd-header h1 {
    margin: 0 0 4px;
    font-size: 28px;
    font-weight: 700;
    color: #fff;
}

.rd-welcome {
    margin: 0;
    font-size: 15px;
    opacity: 0.85;
    color: #ddd;
}

.rd-role-switcher {
    margin-top: 12px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rd-role-active {
    background: var(--rd-accent);
    color: #fff;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}

.rd-role-link {
    color: rgba(255,255,255,0.8);
    font-size: 13px;
    border-bottom: 1px dashed rgba(255,255,255,0.4);
}

.rd-role-link:hover { color: #fff; }

.rd-admin-notice {
    margin-top: 12px;
    padding: 8px 16px;
    background: rgba(255,255,255,0.12);
    border-radius: 6px;
    font-size: 13px;
}

.rd-admin-notice a {
    color: var(--rd-accent);
    margin-left: 8px;
}

.rd-loading {
    margin-top: 16px;
    padding: 12px 24px;
    background: rgba(255,255,255,0.15);
    border-radius: 6px;
    font-weight: 600;
    display: inline-block;
}

/* Header Layout (with invite button) */
.rd-header-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 12px;
}

.rd-header-left {
    flex: 1;
}

.rd-header-right {
    display: flex;
    align-items: center;
}

/* Invite Staff Button */
.rd-invite-btn {
    display: inline-flex;
    align-items: center;
    padding: 10px 20px;
    background: var(--rd-accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.rd-invite-btn:hover {
    background: var(--rd-accent-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 116, 38, 0.3);
}

.rd-invite-btn:active {
    transform: translateY(0);
}

/* Staff Invite Modal */
.rd-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10000;
}

.rd-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
}

.rd-modal-content {
    position: relative;
    max-width: 560px;
    margin: 60px auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    z-index: 10001;
    animation: modalSlideIn 0.3s ease;
}

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

.rd-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 28px;
    border-bottom: 1px solid #e5e7eb;
}

.rd-modal-header h2 {
    margin: 0;
    font-size: 22px;
    color: var(--rd-text);
    font-weight: 700;
}

.rd-modal-close {
    background: none;
    border: none;
    font-size: 32px;
    line-height: 1;
    color: #999;
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.rd-modal-close:hover {
    background: #f3f4f6;
    color: var(--rd-text);
}

.rd-modal-body {
    padding: 24px 28px 28px;
}

.rd-modal-description {
    margin: 0 0 24px;
    color: var(--rd-text-light);
    font-size: 14px;
    line-height: 1.5;
}

/* Form Styles */
.rd-form-group {
    margin-bottom: 20px;
}

.rd-form-group label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--rd-text);
}

.rd-required {
    color: #dc3545;
}

.rd-input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    transition: all 0.2s ease;
}

.rd-input:focus {
    outline: none;
    border-color: var(--rd-accent);
    box-shadow: 0 0 0 3px rgba(255, 116, 38, 0.1);
}

.rd-input[readonly] {
    background: #f9fafb;
    color: #6b7280;
    cursor: not-allowed;
}

.rd-field-hint {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: #9ca3af;
    font-style: italic;
}

.rd-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Message (success/error) */
.rd-message {
    padding: 12px 16px;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 20px;
    line-height: 1.5;
}

.rd-message-success {
    background: #d1fae5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.rd-message-error {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

/* Modal Footer */
.rd-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 28px;
}

.rd-btn-secondary {
    background: #e5e7eb;
    color: var(--rd-text);
}

.rd-btn-secondary:hover {
    background: #d1d5db;
}

.rd-btn-primary {
    background: var(--rd-accent);
    color: #fff;
}

.rd-btn-primary:hover {
    background: var(--rd-accent-dark);
}

.rd-btn-primary:disabled,
.rd-btn-secondary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Stats Cards */
.rd-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.rd-stat-card {
    background: var(--rd-surface);
    padding: 20px;
    border-radius: var(--rd-radius);
    text-align: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    border-top: 3px solid var(--rd-border);
}

.rd-stat-recent  { border-top-color: var(--rd-green); }
.rd-stat-matches { border-top-color: var(--rd-blue); }
.rd-stat-high    { border-top-color: var(--rd-yellow); }

.rd-stat-number {
    font-size: 32px;
    font-weight: 700;
    color: var(--rd-text);
    line-height: 1.2;
}

.rd-stat-interests { border-top-color: var(--rd-accent); }
.rd-stat-interests .rd-stat-number { color: var(--rd-accent); }

.rd-stat-messages { border-top-color: #4b5563; }
.rd-stat-messages .rd-stat-number { color: #4b5563; }

.rd-stat-label {
    font-size: 13px;
    color: var(--rd-text-light);
    margin-top: 4px;
}

/* Read-Only Notice (Admin Viewing Mode) */
.rd-readonly-notice {
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
    border: 2px solid #ffc107;
    border-radius: var(--rd-radius);
    padding: 16px 20px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: 0 2px 12px rgba(255, 193, 7, 0.2);
}

.rd-notice-icon {
    font-size: 32px;
    line-height: 1;
    flex-shrink: 0;
}

.rd-notice-content {
    flex: 1;
}

.rd-notice-content strong {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #856404;
    margin-bottom: 4px;
}

.rd-notice-content p {
    margin: 0;
    font-size: 14px;
    color: #856404;
    line-height: 1.4;
}

/* Tabs */
.rd-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--rd-border);
}

.rd-tab-btn {
    padding: 12px 24px;
    background: none;
    border: none;
    font-size: 14px;
    font-weight: 600;
    color: var(--rd-text-light);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.2s, border-color 0.2s;
}

.rd-tab-btn:hover { color: var(--rd-text); }

.rd-tab-btn.active {
    color: var(--rd-accent);
    border-bottom-color: var(--rd-accent);
}

/* Filter Panel */
.rd-filter-panel {
    display: flex;
    gap: 16px;
    align-items: flex-end;
    margin-bottom: 16px;
    padding: 16px;
    background: var(--rd-surface);
    border-radius: var(--rd-radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.rd-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rd-filter-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--rd-text-light);
}

.rd-filter-select,
.rd-filter-input {
    padding: 8px 12px;
    border: 1px solid var(--rd-border);
    border-radius: 6px;
    font-size: 13px;
    color: var(--rd-text);
    background: #fff;
    min-width: 140px;
}

.rd-filter-input { max-width: 80px; text-transform: uppercase; }

/* Gap #37: Interest Filter Panel Enhancements */
.rd-interest-filter-panel .rd-filter-input {
    max-width: 200px;
    text-transform: none;
}

.rd-clear-filters {
    padding: 8px 16px;
    background: #f5f5f5;
    border: 1px solid var(--rd-border);
    border-radius: 6px;
    font-size: 13px;
    color: var(--rd-text);
    cursor: pointer;
    transition: all 0.15s;
    align-self: flex-end;
}

.rd-clear-filters:hover {
    background: #e9ecef;
    border-color: #999;
}

.rd-results-count {
    font-size: 13px;
    color: var(--rd-text-light);
    margin-bottom: 12px;
    padding: 8px 12px;
    background: #f8f9fa;
    border-radius: 6px;
    border-left: 3px solid var(--rd-primary);
}

/* Gap #12: Interest Level Timeline Modal */
.rd-timeline-modal {
    max-width: 600px;
}

.rd-timeline-container {
    max-height: 400px;
    overflow-y: auto;
    padding: 0 8px;
    margin-bottom: 1rem;
}

.rd-timeline-item {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
    position: relative;
}

.rd-timeline-item:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 19px;
    top: 40px;
    bottom: -24px;
    width: 2px;
    background: #e9ecef;
}

.rd-timeline-current::before {
    background: var(--rd-primary) !important;
}

.rd-timeline-marker {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #f8f9fa;
    border: 2px solid #e9ecef;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    position: relative;
    z-index: 1;
}

.rd-timeline-current .rd-timeline-marker {
    background: var(--rd-primary);
    border-color: var(--rd-primary);
    box-shadow: 0 0 0 4px rgba(255, 136, 0, 0.1);
}

.rd-timeline-content {
    flex: 1;
    padding-top: 4px;
}

.rd-timeline-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 4px;
}

.rd-timeline-label {
    font-weight: 600;
    font-size: 14px;
    color: var(--rd-text);
}

.rd-timeline-date {
    font-size: 12px;
    color: var(--rd-text-light);
    margin-bottom: 6px;
}

.rd-timeline-notes {
    font-size: 13px;
    color: #666;
    font-style: italic;
    padding: 8px 12px;
    background: #f8f9fa;
    border-left: 3px solid #ddd;
    border-radius: 4px;
    margin-top: 8px;
}

.rd-action-timeline {
    background: #f8f9fa;
    color: var(--rd-text);
    border: 1px solid var(--rd-border);
}

.rd-action-timeline:hover {
    background: #e9ecef;
}

/* Table Layout */
.rd-table-header {
    background: var(--rd-dark);
    color: #fff;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    border-radius: var(--rd-radius) var(--rd-radius) 0 0;
    margin-bottom: 16px;
}

.rd-table-header .rd-cell { padding: 12px 10px; }

.rd-row {
    background: white;
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
    border: 1px solid #e9ecef;
    transition: all 0.2s ease;
    margin-bottom: 12px;
    font-size: 13px;
}

.rd-row:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    border-color: #17a2b8;
    background: white;
}

.rd-row .rd-cell { padding: 16px 12px; display: flex; align-items: center; }

/* Grid definitions */
.rd-row-interests { display: grid; grid-template-columns: 1.5fr 1.2fr 0.8fr 0.7fr 0.7fr 0.7fr 1.2fr 0.8fr 1fr; gap: 0; }
.rd-row-matches   { display: grid; grid-template-columns: 0.5fr 0.6fr 1.5fr 1.2fr 0.8fr 0.7fr 0.6fr 0.7fr 1fr 0.8fr; gap: 0; }

.rd-cell-notes { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* State Badge */
.rd-state-badge {
    display: inline-block;
    background: #f0f0f0;
    color: #555;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 11px;
    margin-left: 4px;
}

/* Player Link */
.rd-player-link {
    color: var(--rd-accent);
    font-weight: 600;
}

.rd-player-link:hover { text-decoration: underline; }

/* Tier Badges */
.rd-tier-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    min-width: 35px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.rd-tier-a { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.rd-tier-b { background: #cce5ff; color: #004085; border: 1px solid #b8daff; }
.rd-tier-c { background: #fff3cd; color: #856404; border: 1px solid #ffeaa7; }
.rd-tier-d { background: #e9ecef; color: #495057; border: 1px solid #dee2e6; }

/* Interest Level Badges */
.rd-interest-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}

.rd-interest-high   { background: #d4edda; color: #155724; }
.rd-interest-medium { background: #fff3cd; color: #856404; }
.rd-interest-low    { background: #e0f7f5; color: #0d6957; }

/* Action Buttons */
.rd-action-btn {
    padding: 5px 12px;
    border: 1px solid var(--rd-border);
    border-radius: 4px;
    background: #fff;
    font-size: 12px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.15s;
}

.rd-action-edit:hover { border-color: var(--rd-blue); color: var(--rd-blue); }
.rd-action-withdraw:hover { border-color: #dc3545; color: #dc3545; }

.rd-action-express {
    background: var(--rd-accent);
    color: #fff;
    border-color: var(--rd-accent);
    font-weight: 600;
}

.rd-action-express:hover { background: var(--rd-accent-dark); border-color: var(--rd-accent-dark); }

.rd-action-cancel {
    background: #f8f9fa;
    color: var(--rd-text-light);
}

.rd-action-cancel:hover { background: #e9ecef; }

/* Toast */
.rd-toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    padding: 14px 24px;
    border-radius: 8px;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    z-index: 100001;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s, transform 0.3s;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.rd-toast-visible { opacity: 1; transform: translateY(0); }
.rd-toast-success { background: var(--rd-green); }
.rd-toast-error   { background: #dc3545; }
.rd-toast-info    { background: var(--rd-blue); }

/* Empty / Error */
.rd-empty {
    text-align: center;
    padding: 48px 24px;
    background: var(--rd-surface);
    border-radius: var(--rd-radius);
    color: var(--rd-text-light);
}

.rd-empty p { margin: 8px 0; }

.rd-error {
    padding: 20px;
    background: #f8d7da;
    color: #721c24;
    border-radius: var(--rd-radius);
}

/* ---- Card-Based Layout (PC-Prod Style) ---- */

.rd-interest-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
    gap: 20px;
    margin: 0;
}

.rd-interest-card {
    background: white;
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
    border: 1px solid #e9ecef;
    transition: all 0.2s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: auto;
    touch-action: manipulation; /* UX-4: Removes 300ms tap delay on mobile */
}

.rd-interest-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    border-color: var(--rd-teal);
}

.rd-interest-card.priority-high {
    border-left: 4px solid var(--rd-teal);
    background: linear-gradient(135deg, #ffffff 0%, #f8fcff 100%);
}

.rd-interest-card.priority-high:hover {
    box-shadow: 0 8px 25px rgba(23, 162, 184, 0.2);
}

.rd-card-main {
    padding: 20px;
    cursor: pointer;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 15px;
}

.rd-card-player-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rd-card-player-name {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 6px;
    text-decoration: none;
    /* UX-4: Fix long name overflow on mobile */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.rd-card-player-name:hover {
    color: var(--rd-teal);
}

.rd-interest-card.priority-high .rd-card-player-name {
    color: var(--rd-teal);
}

.rd-card-player-details {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
    color: #666;
}

.rd-card-detail {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    white-space: nowrap;
}

.rd-card-detail.notes-field {
    white-space: normal;
    word-wrap: break-word;
    max-width: 300px;
    line-height: 1.3;
}

.rd-card-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    min-width: 80px;
}

.rd-card-level-badge {
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    text-align: center;
    min-width: 60px;
}

.rd-card-level-badge.level-high { background: var(--rd-green); color: white; }
.rd-card-level-badge.level-medium { background: #ffc107; color: #333; }
.rd-card-level-badge.level-low { background: #6c757d; color: white; }

.rd-card-date {
    font-size: 11px;
    color: #888;
    text-align: right;
}

.rd-card-activity-section {
    border-top: 1px solid #eee;
    padding: 15px 20px;
    background: #f8f9fa;
    display: flex;
    gap: 15px;
    align-items: center;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}

.rd-card-activity-label {
    font-size: 12px;
    font-weight: 600;
    color: #666;
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
}

.rd-card-activity-label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

/* ---- Responsive ---- */

@media (max-width: 992px) {
    .rd-stats { grid-template-columns: repeat(2, 1fr); }
    .rd-filter-panel { flex-wrap: wrap; }
    .rd-row-interests { grid-template-columns: 1fr 1fr; gap: 4px 12px; }
    .rd-row-matches   { grid-template-columns: 1fr 1fr; gap: 4px 12px; }
    .rd-table-header { display: none; }

    .rd-row .rd-cell::before {
        content: attr(data-label);
        font-weight: 600;
        color: #999;
        font-size: 10px;
        text-transform: uppercase;
        display: block;
    }

    /* Card layout responsive */
    .rd-interest-grid {
        grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    }
}

@media (max-width: 768px) {
    .recruiting-dashboard { padding: 0 8px 24px; }
    .rd-header { padding: 20px 16px; }
    .rd-header h1 { font-size: 22px; }
    .rd-stats { grid-template-columns: 1fr 1fr; }
    .rd-stat-number { font-size: 24px; }
    .rd-tab-btn { padding: 10px 16px; font-size: 13px; }

    /* Staff Invite Mobile */
    .rd-header-top {
        flex-direction: column;
        gap: 16px;
    }
    .rd-invite-btn {
        width: 100%;
        justify-content: center;
        padding: 12px 20px;
    }
    .rd-modal-content {
        margin: 20px auto;
        max-width: calc(100% - 32px);
    }
    .rd-modal-header,
    .rd-modal-body {
        padding: 20px;
    }
    .rd-form-row {
        grid-template-columns: 1fr;
    }
    .rd-modal-footer {
        flex-direction: column-reverse;
    }
    .rd-modal-footer .rd-btn {
        width: 100%;
    }

    .rd-row-interests,
    .rd-row-matches {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .rd-row { padding: 12px; }
    .rd-filter-panel { flex-direction: column; }
    .rd-filter-select, .rd-filter-input { min-width: 100%; }

    /* Card layout mobile */
    .rd-interest-grid {
        grid-template-columns: 1fr;
    }
    .rd-card-player-details {
        font-size: 12px;
    }
    .rd-card-detail {
        padding: 1px 4px;
        font-size: 12px;
    }
    .rd-card-activity-section {
        flex-wrap: wrap;
        gap: 10px;
    }
}

/* =============================================================================
   SHARED INTEREST MODAL — Used by portal, profile, and recruiting dashboard
   ============================================================================= */

.interest-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
    backdrop-filter: blur(4px);
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.interest-modal {
    background: #fff;
    border-radius: 15px;
    max-width: 600px;
    width: 100%;
    position: relative;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    overflow-y: auto;
    max-height: 90vh;
}

.interest-modal-header {
    background: linear-gradient(135deg, #17a2b8 0%, #20c997 100%);
    padding: 2rem;
    position: relative;
}

.interest-modal h3 {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    color: white;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.interest-modal-close {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    background: rgba(255, 255, 255, 0.2);
    border: none;
    border-radius: 50%;
    font-size: 1.5rem;
    color: white;
    cursor: pointer;
    line-height: 1;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
}

.interest-modal-close:hover {
    background: rgba(255, 255, 255, 0.3);
}

.interest-modal-body {
    padding: 32px;
}

.interest-form-group {
    margin-bottom: 16px;
}

.interest-form-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 6px;
}

.interest-form-select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    color: #333;
    background: #fff;
}

.interest-form-textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    color: #333;
    resize: vertical;
    font-family: inherit;
}

.interest-form-select:focus,
.interest-form-textarea:focus {
    outline: none;
    border-color: #ff7426;
    box-shadow: 0 0 0 3px rgba(255,116,38,0.15);
}

.interest-form-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin-top: 20px;
}

/* Fix: Modal buttons need explicit colors (CSS vars don't work outside .portal-container) */
.interest-modal .rd-action-btn {
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    border: none;
}

.interest-modal .rd-action-express {
    background: linear-gradient(135deg, #ff7426 0%, #ff9900 100%);
    color: #fff;
    box-shadow: 0 2px 8px rgba(255, 116, 38, 0.25);
}

.interest-modal .rd-action-express:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 116, 38, 0.35);
}

.interest-modal .rd-action-express:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.interest-modal .rd-action-cancel {
    background: #6c757d;
    color: #fff;
}

.interest-modal .rd-action-cancel:hover {
    background: #5a6268;
}

.interest-modal .rd-action-message {
    background: #4b5563;
    color: #fff;
}

.interest-modal .rd-action-message:hover {
    background: #374151;
}

/* Explicit button styles inside interest modal (outside .portal-container, so CSS vars don't resolve) */
.interest-form-actions .portal-btn {
    padding: 0.6rem 1.25rem;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.interest-form-actions .portal-btn-primary {
    background: linear-gradient(135deg, #ff7426 0%, #ff9900 100%);
    color: #fff;
}

.interest-form-actions .portal-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 116, 38, 0.35);
}

.interest-form-actions .portal-btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.interest-form-actions .portal-btn-secondary {
    background: #6c757d;
    color: #fff;
}

.interest-form-actions .portal-btn-secondary:hover {
    background: #5a6268;
}

.interest-submitted .portal-btn-interest,
.portal-btn-interest.interested {
    background: #28a745;
    cursor: default;
    opacity: 0.9;
}

/* Anonymous interest form — extended styles */
.interest-modal-anon {
    max-width: 520px;
}

.interest-form-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    color: #333;
    background: #fff;
    font-family: inherit;
}

.interest-form-input:focus {
    outline: none;
    border-color: #ff7426;
    box-shadow: 0 0 0 3px rgba(255,116,38,0.15);
}

.interest-required {
    color: #dc3545;
    font-weight: 700;
}

.interest-form-error {
    background: #fff5f5;
    border: 1px solid #fc8181;
    color: #c53030;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 16px;
}

.interest-form-disclaimer {
    font-size: 12px;
    color: #888;
    margin: 12px 0 0;
    line-height: 1.5;
}

.interest-form-login-prompt {
    font-size: 13px;
    color: #666;
    margin: 6px 0 0;
    text-align: center;
}

.interest-login-link {
    color: #1a73e8;
    text-decoration: none;
    font-weight: 500;
}

.interest-login-link:hover {
    text-decoration: underline;
}

/* =============================================================================
   M14: PROFILE EDIT MODAL
   ============================================================================= */

.pe-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.pe-overlay.pe-loading {
    align-items: center;
    justify-content: center;
}

.pe-modal-loading {
    background: #fff;
    border-radius: 12px;
    padding: 48px 40px;
    text-align: center;
    color: #555;
}

.pe-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid #e9ecef;
    border-top-color: #17a2b8;
    border-radius: 50%;
    animation: pe-spin 0.7s linear infinite;
    margin: 0 auto 16px;
}

@keyframes pe-spin { to { transform: rotate(360deg); } }

.pe-modal {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    width: 100%;
    max-width: 660px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Header */
.pe-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 20px 24px 16px;
    border-bottom: 1px solid #e9ecef;
    flex-shrink: 0;
}

.pe-title {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #17a2b8;
    margin-bottom: 2px;
}

.pe-player-name {
    font-size: 20px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.2;
}

.pe-close {
    background: none;
    border: none;
    font-size: 24px;
    color: #aaa;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
    flex-shrink: 0;
    margin-top: -2px;
    transition: color 0.15s;
}

.pe-close:hover { color: #333; }

/* Completeness bar */
.pe-completeness {
    padding: 12px 24px;
    background: #f8f9fa;
    border-bottom: 1px solid #e9ecef;
    flex-shrink: 0;
}

.pe-completeness-track {
    height: 6px;
    background: #e9ecef;
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 6px;
}

.pe-completeness-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.4s ease;
}

.pe-completeness-meta {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #666;
}

/* Tabs */
.pe-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid #e9ecef;
    overflow-x: auto;
    flex-shrink: 0;
    scrollbar-width: none;
}

.pe-tabs::-webkit-scrollbar { display: none; }

.pe-tab {
    padding: 11px 16px;
    font-size: 13px;
    font-weight: 500;
    color: #666;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
    margin-bottom: -1px;
}

.pe-tab:hover { color: #17a2b8; }

.pe-tab.pe-tab-active {
    color: #17a2b8;
    border-bottom-color: #17a2b8;
    font-weight: 600;
}

/* Body / fields */
.pe-body {
    flex: 1;
    overflow-y: auto;
    padding: 0;
}

.pe-panel { padding: 20px 24px; }

.pe-fields-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 20px;
}

.pe-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.pe-label {
    font-size: 12px;
    font-weight: 600;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pe-input {
    padding: 9px 12px;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    font-size: 14px;
    color: #1a1a1a;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
    width: 100%;
    box-sizing: border-box;
}

.pe-input:focus {
    outline: none;
    border-color: #17a2b8;
    box-shadow: 0 0 0 3px rgba(23,162,184,0.12);
}

.pe-muted {
    color: #999;
    font-size: 14px;
    font-style: italic;
    margin: 0;
}

/* History panel */
.pe-history-panel { display: flex; flex-direction: column; gap: 12px; }

.pe-history-item {
    padding: 12px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border-left: 3px solid #17a2b8;
}

.pe-history-meta {
    display: flex;
    justify-content: space-between;
    margin-bottom: 4px;
}

.pe-history-date {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.pe-history-count {
    font-size: 12px;
    color: #888;
}

.pe-history-fields {
    font-size: 12px;
    color: #555;
    text-transform: capitalize;
}

/* Footer */
.pe-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 24px;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
    flex-shrink: 0;
    gap: 12px;
}

.pe-locked-notice {
    font-size: 12px;
    color: #888;
}

.pe-footer-btns {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.pe-btn {
    padding: 8px 20px;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
}

.pe-btn:active { transform: translateY(1px); }

.pe-btn-primary {
    background: #17a2b8;
    color: #fff;
}

.pe-btn-primary:hover:not(:disabled) { background: #138496; }

.pe-btn-primary:disabled {
    background: #ccc;
    cursor: not-allowed;
}

.pe-btn-secondary {
    background: #e9ecef;
    color: #333;
}

.pe-btn-secondary:hover { background: #dee2e6; }

/* Mobile */
@media (max-width: 560px) {
    .pe-fields-grid { grid-template-columns: 1fr; }
    .pe-footer { flex-direction: column; align-items: stretch; }
    .pe-locked-notice { text-align: center; }
    .pe-footer-btns { justify-content: stretch; }
    .pe-footer-btns .pe-btn { flex: 1; }
}

/* Sortable column headers */
.rd-sortable { cursor: pointer; user-select: none; }
.rd-sortable:hover { color: var(--rd-accent, #ff7426); }

/* Name links in recruiting dashboard */
.rd-cell-name a {
    color: #1a1a1a;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    transition: color 0.2s ease;
}
.rd-cell-name a:hover {
    color: #17a2b8;
    text-decoration: none;
}

/* Score cell */
.rd-cell-score { font-weight: 700; }

/* =============================================================================
   COLLEGES PORTAL (NEEDS PAGES) — Scoped under .colleges-portal
   ============================================================================= */

/* WordPress overrides for colleges portal pages */
body:has(.colleges-portal) .site-content {
    width: 100%;
    max-width: none;
}

body:has(.colleges-portal) .default-page {
    max-width: none;
    padding: 0;
}

.colleges-portal {
    --cp-accent: #ff7426;
    --cp-accent-dark: #e06620;
    --cp-dark: #0f0f0f;
    --cp-dark-2: #1a1a1a;
    --cp-surface: #ffffff;
    --cp-bg: #f5f6f8;
    --cp-text: #333333;
    --cp-text-light: #666666;
    --cp-border: #e5e7eb;
    --cp-radius: 8px;
    --cp-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    --cp-success: #28a745;
    --cp-danger: #dc3545;
    --cp-warning: #ffc107;
    --cp-info: #17a2b8;

    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ----- Loading Overlay ----- */
.cp-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.95);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cp-loading-inner {
    text-align: center;
    color: var(--cp-accent);
    font-size: 1.1rem;
    font-weight: 600;
}

.cp-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #eee;
    border-top: 4px solid var(--cp-accent);
    border-radius: 50%;
    animation: cp-spin 0.8s linear infinite;
    margin: 0 auto 1rem;
}

@keyframes cp-spin {
    to { transform: rotate(360deg); }
}

/* ----- Disabled Message (urgent) ----- */
.cp-disabled-message {
    max-width: 600px;
    margin: 60px auto;
    padding: 60px 30px;
    background: linear-gradient(135deg, var(--cp-danger), #e65663);
    color: #fff;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.cp-disabled-text {
    font-size: 1.3em;
    font-weight: 700;
}

.cp-disabled-next {
    font-size: 1.1em;
    margin-top: 15px;
    opacity: 0.95;
}

/* ----- Header ----- */
.cp-header {
    background: linear-gradient(135deg, var(--cp-dark), var(--cp-dark-2));
    border-radius: var(--cp-radius);
    margin-bottom: 20px;
    border-bottom: 3px solid var(--cp-accent);
    overflow: hidden;
}

.cp-header-inner {
    padding: 32px 30px;
    text-align: center;
    color: #fff;
}

.cp-title {
    font-size: 2rem;
    font-weight: 800;
    color: var(--cp-accent);
    margin: 0 0 8px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    letter-spacing: 1px;
}

.cp-subtitle {
    font-size: 1.1rem;
    opacity: 0.9;
    color: #ddd;
}

/* Urgent badge */
.cp-urgent-badge {
    background: linear-gradient(135deg, var(--cp-danger), #e65663);
    color: #fff;
    padding: 8px 20px;
    border-radius: 20px;
    font-size: 0.9em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    animation: cp-urgent-flash 1.5s ease-in-out infinite;
    box-shadow: 0 0 15px rgba(220, 53, 69, 0.6);
}

@keyframes cp-urgent-flash {
    0%, 100% { opacity: 1; box-shadow: 0 0 15px rgba(220, 53, 69, 0.6); transform: scale(1); }
    50% { opacity: 0.7; box-shadow: 0 0 25px rgba(220, 53, 69, 0.9); transform: scale(1.05); }
}

/* Countdown timer */
.cp-countdown {
    background: linear-gradient(135deg, var(--cp-warning), #ffb300);
    color: #000;
    padding: 10px 20px;
    border-radius: 20px;
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 12px;
    box-shadow: 0 5px 15px rgba(255, 193, 7, 0.3);
}

/* Gender tabs (urgent) */
.cp-gender-tabs {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-top: 15px;
    flex-wrap: wrap;
}

.cp-gender-tab {
    background: rgba(255, 255, 255, 0.15);
    color: var(--cp-accent);
    border: 2px solid var(--cp-accent);
    padding: 10px 20px;
    border-radius: 20px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
    font-size: 0.85em;
    letter-spacing: 0.5px;
}

.cp-gender-tab:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: scale(1.05);
}

.cp-gender-tab.active {
    background: var(--cp-accent);
    color: #000;
    box-shadow: 0 5px 15px rgba(255, 116, 38, 0.4);
}

/* ----- Stats Grid ----- */
.cp-stats-section {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border-radius: var(--cp-radius);
    margin-bottom: 20px;
    border: 1px solid var(--cp-border);
    overflow: hidden;
    transition: all 0.3s ease;
}

.cp-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
    padding: 18px;
}

.cp-stat-card {
    background: linear-gradient(135deg, var(--cp-accent), #ff9900);
    color: #000;
    padding: 14px 10px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(255, 116, 38, 0.25);
    transition: all 0.2s ease;
    cursor: pointer;
}

.cp-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(255, 116, 38, 0.35);
}

.cp-stat-total {
    background: linear-gradient(135deg, var(--cp-dark-2), #333);
    color: #fff;
    border: 2px solid var(--cp-accent);
}

.cp-stat-total .cp-stat-number {
    color: var(--cp-accent);
}

.cp-stat-toggle {
    background: linear-gradient(135deg, #6c757d, #868e96);
    color: #fff;
}

.cp-stat-number {
    font-size: 1.6em;
    font-weight: 700;
    margin-bottom: 2px;
}

.cp-stat-label {
    font-size: 0.7em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    line-height: 1.2;
}

.cp-stats-collapsed .cp-stat-card:not(.cp-stat-total):not(.cp-stat-toggle) {
    display: none;
}

.cp-stats-collapsed .cp-stats-grid {
    grid-template-columns: 1fr 1fr;
}

/* ----- Filters ----- */
.cp-filters-section {
    background: var(--cp-surface);
    border-radius: var(--cp-radius);
    padding: 20px;
    margin-bottom: 20px;
    border: 1px solid var(--cp-border);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.cp-filters-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-end;
}

.cp-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 140px;
}

.cp-filter-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--cp-text-light);
    letter-spacing: 0.5px;
}

.cp-filter-select {
    padding: 10px 12px;
    border: 2px solid var(--cp-border);
    border-radius: 8px;
    background: #fff;
    color: var(--cp-text);
    font-size: 0.9em;
    transition: border-color 0.2s;
    cursor: pointer;
    min-height: 42px;
}

.cp-filter-select:focus {
    outline: none;
    border-color: var(--cp-accent);
    box-shadow: 0 0 0 3px rgba(255, 116, 38, 0.15);
}

.cp-filter-select:hover {
    border-color: var(--cp-accent);
}

.cp-filter-actions {
    display: flex;
    gap: 10px;
    align-items: flex-end;
}

.cp-btn {
    padding: 10px 20px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.85em;
    transition: all 0.2s ease;
}

.cp-btn-danger {
    background: linear-gradient(135deg, var(--cp-danger), #e65663);
    color: #fff;
}

.cp-btn-danger:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(220, 53, 69, 0.3);
}

.cp-filter-results {
    background: linear-gradient(135deg, var(--cp-success), #34ce57);
    color: #fff;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.85em;
    white-space: nowrap;
}

/* ----- Loading / No Data ----- */
.cp-loading {
    text-align: center;
    padding: 50px;
    color: var(--cp-accent);
    font-size: 1.1em;
    font-weight: 600;
}

.cp-no-data {
    text-align: center;
    padding: 50px;
    color: var(--cp-text-light);
    font-size: 1.1em;
    background: #f8f9fa;
    border-radius: 10px;
}

/* ----- Table ----- */
.cp-table-container {
    overflow-x: auto;
    border-radius: var(--cp-radius);
    box-shadow: var(--cp-shadow);
    background: #fff;
}

.cp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9em;
}

.cp-table th {
    background: linear-gradient(135deg, var(--cp-accent), #ff9900);
    color: #000;
    padding: 14px 12px;
    text-align: left;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 0.85em;
    position: sticky;
    top: 0;
    z-index: 10;
}

.cp-table th:hover {
    background: linear-gradient(135deg, #ff9900, #ffaa00);
}

.cp-table td {
    padding: 12px;
    border-bottom: 1px solid #eee;
    transition: background 0.15s;
    vertical-align: middle;
}

.cp-table tr:hover td {
    background: #fff7f0;
}

.cp-table tr:nth-child(even) td {
    background: #fafbfc;
}

.cp-table tr:hover td {
    background: #fff3e0;
}

.cp-cell-school {
    font-weight: 600;
    color: var(--cp-text);
}

/* Level badges */
.cp-level-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.8em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #fff;
}

.cp-level-d1 { background: linear-gradient(135deg, #dc3545, #e65663); }
.cp-level-d2 { background: linear-gradient(135deg, #007bff, #2196f3); }
.cp-level-d3 { background: linear-gradient(135deg, #28a745, #34ce57); }
.cp-level-naia { background: linear-gradient(135deg, #6f42c1, #8e44ad); }
.cp-level-njcaa { background: linear-gradient(135deg, #fd7e14, #ff8800); }

/* Position badges */
.cp-position-badge {
    display: inline-block;
    background: linear-gradient(135deg, #6c757d, #868e96);
    color: #fff;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 0.75em;
    font-weight: 700;
    margin: 2px;
}

/* Gender badges */
.cp-gender-badge {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.8em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #fff;
}

.cp-gender-mb { background: linear-gradient(135deg, #0066cc, #0052a3); }
.cp-gender-wb { background: linear-gradient(135deg, #d946a6, #c41e8f); }

/* Scholarship coloring */
.cp-scholarship-yes { color: var(--cp-success); font-weight: 600; }
.cp-scholarship-no { color: var(--cp-danger); font-weight: 600; }
.cp-scholarship-partial { color: var(--cp-warning); font-weight: 600; }

/* View details button */
.cp-view-btn {
    background: linear-gradient(135deg, var(--cp-accent), #ff9900);
    color: #000;
    border: none;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.8em;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.cp-view-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(255, 116, 38, 0.4);
}

.cp-view-btn-empty {
    background: linear-gradient(135deg, #6c757d, #868e96);
    color: #fff;
}

.cp-view-btn-empty:hover {
    background: linear-gradient(135deg, #5a6268, #6c757d);
}

/* ----- Modal ----- */
.cp-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    animation: cp-fade-in 0.2s ease;
}

@keyframes cp-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.cp-modal-content {
    background: var(--cp-surface);
    border-radius: 16px;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
    max-width: 600px;
    width: 100%;
    max-height: 85vh;
    overflow: hidden;
    animation: cp-slide-in 0.3s ease;
}

@keyframes cp-slide-in {
    from { opacity: 0; transform: scale(0.9) translateY(-20px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.cp-modal-header {
    background: linear-gradient(135deg, var(--cp-accent), #ff9900);
    color: #000;
    padding: 20px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cp-modal-title {
    font-size: 1.3em;
    font-weight: 700;
    margin: 0;
    color: #fff;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
}

.cp-modal-close {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: #fff;
    font-size: 1.5rem;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    line-height: 1;
}

.cp-modal-close:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: rotate(90deg);
}

.cp-modal-body {
    padding: 24px;
    overflow-y: auto;
    max-height: calc(85vh - 80px);
}

.cp-modal-gender-banner {
    text-align: center;
    margin-bottom: 16px;
}

.cp-modal-gender-banner .cp-gender-badge {
    padding: 10px 24px;
    font-size: 1em;
}

.cp-modal-section-title {
    font-size: 1em;
    font-weight: 700;
    color: var(--cp-accent);
    margin: 0 0 10px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--cp-accent);
}

.cp-modal-positions {
    background: #fff7f0;
    border: 2px solid var(--cp-accent);
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 16px;
}

.cp-position-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cp-modal-school-info,
.cp-modal-coach-info {
    background: #f8f9fa;
    padding: 16px;
    border-radius: 10px;
    margin-bottom: 16px;
    border-left: 4px solid var(--cp-accent);
}

.cp-modal-coach-info {
    border-left-color: var(--cp-success);
}

.cp-modal-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}

.cp-modal-detail {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cp-modal-detail-label {
    font-size: 0.75em;
    font-weight: 600;
    color: var(--cp-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cp-modal-detail-value {
    font-size: 0.95em;
    color: var(--cp-text);
    font-weight: 600;
}

.cp-modal-detail-value a {
    color: var(--cp-success);
    text-decoration: underline;
}

.cp-modal-archetype {
    background: var(--cp-surface);
    border: 2px solid var(--cp-border);
    border-radius: 10px;
    padding: 16px;
}

.cp-modal-archetype-text {
    font-size: 0.95em;
    line-height: 1.6;
    color: var(--cp-text);
    white-space: pre-wrap;
}

.cp-text-muted {
    color: var(--cp-text-light);
    font-style: italic;
}

/* ----- Toast ----- */
.cp-toast-container {
    position: fixed;
    top: 80px;
    right: 1rem;
    z-index: 10001;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ----- Responsive — Tablet ----- */
@media (max-width: 992px) {
    .cp-stats-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .cp-filters-row {
        flex-wrap: wrap;
    }

    .cp-filter-group {
        min-width: calc(50% - 8px);
    }
}

/* ----- Responsive — Mobile ----- */
@media (max-width: 768px) {
    .colleges-portal {
        padding: 0 0.5rem 1rem;
    }

    .cp-header-inner {
        padding: 20px 16px;
    }

    .cp-title {
        font-size: 1.5rem;
    }

    .cp-stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
        padding: 12px;
    }

    .cp-stat-number {
        font-size: 1.3em;
    }

    .cp-filters-row {
        flex-direction: column;
    }

    .cp-filter-group {
        min-width: 100%;
    }

    .cp-filter-actions {
        flex-direction: column;
        width: 100%;
    }

    .cp-filter-results {
        text-align: center;
    }

    .cp-table th,
    .cp-table td {
        padding: 8px 6px;
        font-size: 0.8em;
    }

    .cp-gender-tabs {
        gap: 6px;
    }

    .cp-gender-tab {
        padding: 8px 14px;
        font-size: 0.8em;
    }

    .cp-countdown {
        display: block;
        margin-top: 10px;
    }

    .cp-modal-content {
        max-width: 100%;
        border-radius: 12px;
    }

    .cp-modal-body {
        max-height: 70vh;
    }

    .cp-modal-details-grid {
        grid-template-columns: 1fr;
    }
}

/* ----- Print ----- */
@media print {
    .cp-loading-overlay,
    .cp-modal,
    .cp-toast-container,
    .cp-gender-tabs,
    .cp-filters-section,
    .cp-urgent-badge,
    .cp-countdown,
    .cp-stat-toggle {
        display: none !important;
    }
}

/* ============================================
   Staff Registration (.staff-registration)
   Scoped styles for invite-token registration page
   ============================================ */
.staff-registration {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
    background-color: #f5f6f8;
}

.sr-container {
    width: 100%;
    max-width: 540px;
}

.sr-card {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    padding: 40px;
    border-top: 4px solid var(--portal-blue, #004e89);
}

.sr-error-card {
    text-align: center;
    border-top-color: #dc3545;
}

.sr-icon-circle {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: bold;
    margin: 0 auto 20px;
}

.sr-icon-error {
    background: #f8d7da;
    color: #dc3545;
}

.sr-header {
    text-align: center;
    margin-bottom: 30px;
}

.sr-title {
    font-size: 24px;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 8px;
}

.sr-subtitle {
    font-size: 15px;
    color: #666;
    margin: 0;
}

.sr-message {
    font-size: 15px;
    color: #555;
    line-height: 1.6;
    margin: 0 0 24px;
}

.sr-link-btn {
    display: inline-block;
    padding: 10px 24px;
    background: var(--portal-blue, #004e89);
    color: #fff;
    text-decoration: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
}

.sr-link-btn:hover {
    background: #003a6a;
    color: #fff;
}

.sr-form-error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
    border-radius: 6px;
    padding: 12px 16px;
    margin-bottom: 20px;
    font-size: 14px;
}

.sr-field {
    margin-bottom: 20px;
}

.sr-field label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 6px;
}

.sr-input {
    width: 100%;
    padding: 10px 14px;
    font-size: 15px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    color: #333;
    transition: border-color 0.2s;
    box-sizing: border-box;
}

.sr-input:focus {
    outline: none;
    border-color: var(--portal-blue, #004e89);
    box-shadow: 0 0 0 3px rgba(0, 78, 137, 0.1);
}

.sr-input.sr-readonly {
    background: #f3f4f6;
    color: #6b7280;
    cursor: not-allowed;
}

.sr-field-hint {
    display: block;
    font-size: 12px;
    color: #888;
    margin-top: 4px;
}

.sr-password-strength {
    height: 4px;
    background: #e5e7eb;
    border-radius: 2px;
    margin-top: 8px;
    overflow: hidden;
}

.sr-strength-bar {
    height: 100%;
    width: 0;
    border-radius: 2px;
    transition: width 0.3s, background-color 0.3s;
}

.sr-match-status {
    font-weight: 500;
}

.sr-checkbox-field label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-weight: 400;
    font-size: 14px;
    color: #555;
    cursor: pointer;
}

.sr-checkbox-field input[type="checkbox"] {
    margin-top: 2px;
    flex-shrink: 0;
}

.sr-submit-btn {
    width: 100%;
    padding: 12px 24px;
    background: var(--portal-blue, #004e89);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    margin-top: 8px;
}

.sr-submit-btn:hover {
    background: #003a6a;
}

.sr-submit-btn:disabled {
    background: #9ca3af;
    cursor: not-allowed;
}

@media screen and (max-width: 600px) {
    .staff-registration {
        padding: 20px 12px;
    }

    .sr-card {
        padding: 24px 20px;
    }

    .sr-title {
        font-size: 20px;
    }
}

/* =========================================================================
   PLAYER SUBMISSION FORM (M9)
   Scoped under .player-submission with ps-* prefix
   ========================================================================= */

.player-submission {
    max-width: 900px;
    margin: 0 auto;
    padding: 40px 20px 60px;
    font-family: var(--portal-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    color: #1a1a2e;
}

.ps-header {
    text-align: center;
    margin-bottom: 36px;
}

.ps-header h1 {
    font-size: 28px;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 8px;
}

.ps-subtitle {
    color: #6c757d;
    font-size: 15px;
    margin: 0;
}

/* Quick/Full Mode Toggle */
.ps-mode-toggle {
    margin-top: 12px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.ps-mode-hint {
    color: #6c757d;
    font-size: 13px;
    font-style: italic;
}

/* Form Sections */
.ps-section {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 24px;
    margin-bottom: 20px;
}

.ps-section-title {
    font-size: 17px;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #f0f0f5;
}

.ps-conditional {
    transition: opacity 0.2s ease;
}

/* Grids */
.ps-grid {
    display: grid;
    gap: 16px;
}

.ps-grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.ps-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

/* Fields */
.ps-field {
    display: flex;
    flex-direction: column;
}

.ps-field label {
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 5px;
}

.ps-field input,
.ps-field select,
.ps-field textarea {
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    color: #1a1a2e;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ps-field input:focus,
.ps-field select:focus,
.ps-field textarea:focus {
    outline: none;
    border-color: #ff6b35;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.12);
}

.ps-field textarea {
    resize: vertical;
    min-height: 80px;
}

/* Validation */
.ps-error {
    display: none;
    color: #dc3545;
    font-size: 12px;
    margin-top: 4px;
}

.ps-field-hint {
    color: #6c757d;
    font-size: 12px;
    margin-top: 4px;
    display: block;
}

.ps-input-error {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1) !important;
}

.ps-form-error {
    display: none;
    background: #fff5f5;
    color: #dc3545;
    padding: 12px 16px;
    border-radius: 6px;
    border: 1px solid #fecaca;
    font-size: 14px;
    margin-top: 12px;
}

/* Radio Groups */
.ps-radio-group {
    display: flex;
    gap: 16px;
    padding-top: 4px;
}

.ps-radio {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 400;
    cursor: pointer;
}

.ps-radio input[type="radio"] {
    width: 16px;
    height: 16px;
    accent-color: #ff6b35;
}

/* Collapsible Sections */
.ps-toggle {
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ps-toggle:hover {
    color: #ff6b35;
}

.ps-toggle-icon {
    font-size: 20px;
    font-weight: 700;
    color: #ff6b35;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
}

.ps-collapsible-content {
    padding-top: 16px;
}

/* Submit Button */
.ps-submit-row {
    text-align: center;
    margin-top: 24px;
}

.ps-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 48px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    background: #ff6b35;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.1s ease;
}

.ps-submit-btn:hover:not(:disabled) {
    background: #e55a28;
    transform: translateY(-1px);
}

.ps-submit-btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.ps-submit-spinner {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Success Panel */
.ps-success {
    text-align: center;
    padding: 48px 24px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.ps-success-icon {
    width: 64px;
    height: 64px;
    line-height: 64px;
    font-size: 32px;
    color: #fff;
    background: #28a745;
    border-radius: 50%;
    margin: 0 auto 20px;
}

.ps-success h2 {
    font-size: 22px;
    color: #1a1a2e;
    margin: 0 0 10px;
}

.ps-success p {
    color: #6c757d;
    font-size: 15px;
    margin: 0 0 24px;
}

.ps-success-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

.ps-success-actions .btn {
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 6px;
    text-decoration: none;
    cursor: pointer;
    border: none;
}

.ps-success-actions .btn-primary {
    background: #ff6b35;
    color: #fff;
}

.ps-success-actions .btn-primary:hover {
    background: #e55a28;
}

.ps-success-actions .btn-secondary {
    background: #f0f0f5;
    color: #374151;
}

.ps-success-actions .btn-secondary:hover {
    background: #e2e8f0;
}

/* Responsive */
@media screen and (max-width: 768px) {
    .player-submission {
        padding: 24px 16px 40px;
    }

    .ps-grid-2,
    .ps-grid-3 {
        grid-template-columns: 1fr;
    }

    .ps-section {
        padding: 20px 16px;
    }

    .ps-submit-btn {
        width: 100%;
    }
}

@media screen and (max-width: 480px) {
    .ps-header h1 {
        font-size: 22px;
    }

    .ps-success-actions {
        flex-direction: column;
    }

    .ps-success-actions .btn {
        width: 100%;
    }
}

/* =========================================================================
   ALUMNI PORTAL (M9)
   Scoped under #alumni-portal with ap-* prefix
   ========================================================================= */

#alumni-portal {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px 60px;
    font-family: var(--portal-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    color: #1a1a2e;
}

#alumni-portal h1 {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 8px;
    color: #1a1a2e;
}

.ap-subtitle {
    color: #6c757d;
    font-size: 15px;
    margin: 0 0 28px;
}

/* Stats Dashboard */
.ap-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.ap-stat-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px;
    text-align: center;
    border-top: 3px solid #ff6b35;
}

.ap-stat-value {
    font-size: 28px;
    font-weight: 700;
    color: #1a1a2e;
    display: block;
}

.ap-stat-label {
    font-size: 12px;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 4px;
    display: block;
}

/* Filters */
.ap-filters {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 20px;
}

.ap-filter-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.ap-filter-row + .ap-filter-row {
    margin-top: 12px;
}

.ap-search-wrap {
    position: relative;
    flex: 1;
    min-width: 200px;
}

#ap-search {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
}

#ap-search:focus {
    outline: none;
    border-color: #ff6b35;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.12);
}

#ap-autocomplete {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 0 0 6px 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 20;
    max-height: 260px;
    overflow-y: auto;
}

.autocomplete-item {
    padding: 10px 12px;
    font-size: 13px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f5;
}

.autocomplete-item:last-child {
    border-bottom: none;
}

.autocomplete-item:hover {
    background: #fff7f3;
    color: #ff6b35;
}

.ap-filters select {
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #374151;
    background: #fff;
    min-width: 130px;
}

.ap-filters select:focus {
    outline: none;
    border-color: #ff6b35;
}

/* Filter toolbar */
.ap-filter-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.ap-filter-count {
    font-size: 14px;
    color: #6c757d;
}

.ap-clear-filters {
    display: none;
    background: none;
    border: none;
    color: #ff6b35;
    font-size: 13px;
    cursor: pointer;
    text-decoration: underline;
}

.ap-clear-filters:hover {
    color: #e55a28;
}

/* Card Grid */
.ap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.alumni-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    border-left: 3px solid #ff6b35;
}

.alumni-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.alumni-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px;
    gap: 8px;
}

.alumni-name {
    font-size: 15px;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0;
    line-height: 1.3;
}

.alumni-badge {
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 12px;
    white-space: nowrap;
    flex-shrink: 0;
}

.badge-d1 { background: #e8f5e9; color: #2e7d32; }
.badge-d2 { background: #e3f2fd; color: #1565c0; }
.badge-d3 { background: #f3e5f5; color: #7b1fa2; }
.badge-naia { background: #fff3e0; color: #e65100; }
.badge-njcaa { background: #fce4ec; color: #c62828; }

.alumni-card-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.alumni-detail {
    font-size: 13px;
    color: #4a5568;
}

.alumni-detail strong {
    color: #374151;
}

/* Empty State */
.ap-empty {
    display: none;
    text-align: center;
    padding: 48px 20px;
    color: #6c757d;
}

.ap-empty p {
    margin: 0 0 12px;
    font-size: 15px;
}

.ap-empty button {
    background: none;
    border: none;
    color: #ff6b35;
    cursor: pointer;
    font-size: 14px;
    text-decoration: underline;
}

/* Pagination */
.ap-pagination {
    display: none;
    justify-content: center;
    align-items: center;
    gap: 16px;
    padding: 16px 0;
}

.ap-pagination button {
    padding: 8px 20px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    color: #374151;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.ap-pagination button:hover:not(:disabled) {
    background: #f8f9fa;
    border-color: #ff6b35;
    color: #ff6b35;
}

.ap-pagination button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.ap-page-info {
    font-size: 13px;
    color: #6c757d;
}

/* Modal */
.ap-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    background: rgba(0,0,0,0.5);
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.ap-modal-content {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    max-width: 520px;
    width: 100%;
    position: relative;
    max-height: 80vh;
    overflow-y: auto;
}

.ap-modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: none;
    border: none;
    font-size: 24px;
    color: #6c757d;
    cursor: pointer;
    line-height: 1;
}

.ap-modal-close:hover {
    color: #1a1a2e;
}

#ap-modal-body h2 {
    font-size: 20px;
    margin: 0 0 16px;
    color: #1a1a2e;
}

.modal-details {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.modal-detail-row {
    font-size: 14px;
    color: #4a5568;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f5;
}

.modal-detail-row:last-child {
    border-bottom: none;
}

.modal-detail-row strong {
    color: #374151;
    display: inline-block;
    min-width: 140px;
}

/* Loading */
.ap-loading {
    text-align: center;
    padding: 60px 20px;
    color: #6c757d;
}

/* Alumni Responsive */
@media screen and (max-width: 768px) {
    #alumni-portal {
        padding: 24px 16px 40px;
    }

    .ap-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .ap-filter-row {
        flex-direction: column;
    }

    .ap-search-wrap {
        width: 100%;
    }

    .ap-filters select {
        width: 100%;
    }

    .ap-grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 480px) {
    .ap-stats {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .ap-stat-card {
        padding: 14px 10px;
    }

    .ap-stat-value {
        font-size: 22px;
    }

    .ap-modal-content {
        padding: 24px 20px;
    }
}

/* =========================================================================
   EVENTS PORTAL (M9)
   Scoped under #events-portal with ep-* prefix
   ========================================================================= */

#events-portal {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px 60px;
    font-family: var(--portal-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    color: #1a1a2e;
}

#events-portal h1 {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 8px;
    color: #1a1a2e;
}

.ep-subtitle {
    color: #6c757d;
    font-size: 15px;
    margin: 0 0 28px;
}

/* Stats */
.ep-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.ep-stat-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px;
    text-align: center;
    border-top: 3px solid #004e89;
}

.ep-stat-value {
    font-size: 28px;
    font-weight: 700;
    color: #1a1a2e;
    display: block;
}

.ep-stat-label {
    font-size: 12px;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 4px;
    display: block;
}

/* Filters */
.ep-filters {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 20px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

#ep-search {
    flex: 1;
    min-width: 200px;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
}

#ep-search:focus {
    outline: none;
    border-color: #004e89;
    box-shadow: 0 0 0 3px rgba(0, 78, 137, 0.12);
}

#ep-status-filter {
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #374151;
    background: #fff;
    min-width: 140px;
}

#ep-status-filter:focus {
    outline: none;
    border-color: #004e89;
}

/* Filter toolbar */
.ep-filter-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.ep-filter-count {
    font-size: 14px;
    color: #6c757d;
}

.ep-clear-filters {
    display: none;
    background: none;
    border: none;
    color: #004e89;
    font-size: 13px;
    cursor: pointer;
    text-decoration: underline;
}

.ep-clear-filters:hover {
    color: #003366;
}

/* Event Cards Grid */
.ep-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 20px;
    margin-bottom: 24px;
}

.event-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 20px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.event-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.event-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    gap: 8px;
}

.event-status {
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 12px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.status-soon {
    background: #fff3e0;
    color: #e65100;
}

.status-upcoming {
    background: #e3f2fd;
    color: #1565c0;
}

.event-countdown {
    font-size: 12px;
    color: #6c757d;
    font-style: italic;
}

.event-name {
    font-size: 17px;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0 0 12px;
    line-height: 1.3;
}

.event-details {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.event-details > div {
    font-size: 13px;
    color: #4a5568;
}

.event-details strong {
    color: #374151;
}

/* Event Action Buttons */
.event-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.btn-event {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 6px;
    text-decoration: none;
    transition: background 0.15s ease;
}

.btn-register {
    background: #004e89;
    color: #fff;
}

.btn-register:hover {
    background: #003d6d;
    color: #fff;
}

.btn-flyer {
    background: #f0f0f5;
    color: #374151;
}

.btn-flyer:hover {
    background: #e2e8f0;
}

/* Empty State */
.ep-empty {
    display: none;
    text-align: center;
    padding: 48px 20px;
    color: #6c757d;
    font-size: 15px;
}

/* Loading */
.ep-loading {
    text-align: center;
    padding: 60px 20px;
    color: #6c757d;
}

/* Events Responsive */
@media screen and (max-width: 768px) {
    #events-portal {
        padding: 24px 16px 40px;
    }

    .ep-stats {
        grid-template-columns: 1fr;
    }

    .ep-filters {
        flex-direction: column;
    }

    #ep-search,
    #ep-status-filter {
        width: 100%;
    }

    .ep-grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 480px) {
    .ep-stat-card {
        padding: 14px 10px;
    }

    .ep-stat-value {
        font-size: 22px;
    }

    .event-card {
        padding: 16px;
    }

    .event-actions {
        flex-direction: column;
    }

    .btn-event {
        width: 100%;
        justify-content: center;
    }
}
/* =============================================================================
   UNIFIED PORTAL STYLING - Apply basketball page design to all portals
   Add this to the END of portal-styles.css
   ============================================================================= */

/* Alumni Portal - Card Grid Layout */
.alumni-portal {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}

.alumni-portal .portal-header {
    background: linear-gradient(135deg, var(--portal-darker-bg) 0%, var(--portal-dark-bg) 100%);
    color: var(--portal-primary);
    padding: 1.5rem 0;
    margin-bottom: 2rem;
}

.alumni-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

.alumni-card {
    background: white;
    border-radius: var(--portal-radius);
    padding: 1.5rem;
    box-shadow: var(--portal-shadow);
    transition: var(--portal-transition);
    border-left: 4px solid var(--portal-info);
}

.alumni-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--portal-shadow-lg);
    border-left-color: var(--portal-primary);
}

.alumni-card-name {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--portal-dark-bg);
    margin-bottom: 0.5rem;
}

.alumni-card-school {
    font-size: 1rem;
    color: var(--portal-info);
    font-weight: 600;
    margin-bottom: 0.75rem;
}

/* Events Portal - Card Grid Layout */
/* ====================================
   EVENTS PORTAL (pc-prod style)
   ==================================== */

.events-portal {
    background: #1a1a1a;
    min-height: 100vh;
    padding: 0 0 4rem 0;
}

.events-portal .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* Header Section */
.events-header {
    background: linear-gradient(135deg, #ff6b35 0%, #ff8800 100%);
    padding: 3rem 0;
    margin-bottom: 2rem;
    text-align: center;
}

.events-header h1 {
    font-size: 2.5rem;
    font-weight: 800;
    color: white;
    margin: 0 0 0.5rem 0;
}

.events-subtitle {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
}

/* Stats Section - Orange Cards (pc-prod style) */
#ep-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
    margin: 2rem 0;
}

.events-stat-card {
    background: linear-gradient(135deg, #ff6b35 0%, #ff8800 100%);
    padding: 2rem 1.5rem;
    border-radius: 8px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(255, 107, 53, 0.2);
    transition: all 0.3s ease;
}

.events-stat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(255, 107, 53, 0.3);
}

.events-stat-card .stat-number {
    font-size: 3rem;
    font-weight: 800;
    color: white;
    margin-bottom: 0.5rem;
}

.events-stat-card .stat-label {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.95);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Filter Section - White Card */
#ep-filters {
    background: white;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.events-filters .filter-row {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

.events-filters .filter-search input {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    font-size: 0.95rem;
    transition: border-color 0.2s;
}

.events-filters .filter-search input:focus {
    outline: none;
    border-color: #ff6b35;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1);
}

.events-filters .filter-select {
    padding: 0.75rem 1rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    font-size: 0.95rem;
    cursor: pointer;
    transition: border-color 0.2s;
}

.events-filters .filter-select:focus {
    outline: none;
    border-color: #ff6b35;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1);
}

.events-filters .filter-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
    color: #666;
}

.events-filters .btn-clear-filters {
    background: #ff6b35;
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    transition: background 0.2s;
}

.events-filters .btn-clear-filters:hover {
    background: #e55a28;
}

/* Events Grid */
#ep-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

/* Event Cards - pc-prod style */
.event-card {
    background: white;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    border-left: 5px solid #ff6b35;
    position: relative;
}

.event-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Status Badge */
.event-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.event-status {
    display: inline-block;
    padding: 0.4rem 0.8rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.event-status.status-soon {
    background: #ff6b35;
    color: white;
}

.event-status.status-upcoming {
    background: #f0f0f0;
    color: #333;
}

.event-countdown {
    font-size: 0.85rem;
    color: #666;
    font-weight: 500;
}

/* Event Name - Orange */
.event-name {
    font-size: 1.3rem;
    font-weight: 700;
    color: #ff6b35;
    margin: 0.5rem 0 1rem 0;
    line-height: 1.3;
}

/* Event Details */
.event-details {
    margin-bottom: 1rem;
}

.event-date,
.event-location,
.event-host,
.event-teams,
.event-packets,
.event-contact {
    font-size: 0.9rem;
    color: #333;
    margin-bottom: 0.6rem;
    line-height: 1.5;
}

.event-date strong,
.event-location strong,
.event-host strong,
.event-teams strong,
.event-packets strong,
.event-contact strong {
    color: #1a1a1a;
    font-weight: 600;
}

/* Event Actions */
.event-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #f0f0f0;
}

.btn-event {
    flex: 1;
    min-width: 120px;
    padding: 0.6rem 1rem;
    border-radius: 6px;
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
    text-align: center;
    transition: all 0.2s;
    display: inline-block;
}

.btn-register {
    background: #ff6b35;
    color: white;
}

.btn-register:hover {
    background: #e55a28;
}

.btn-flyer {
    background: #f0f0f0;
    color: #333;
    border: 1px solid #ddd;
}

.btn-flyer:hover {
    background: #e8e8e8;
}

/* Loading State */
.events-loading {
    grid-column: 1 / -1;
    text-align: center;
    padding: 4rem 2rem;
    color: #999;
}

.loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(255, 107, 53, 0.2);
    border-top-color: #ff6b35;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin: 0 auto 1rem;
}

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

/* Empty State */
#ep-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 4rem 2rem;
    color: #999;
    font-size: 1.1rem;
}

/* Responsive */
@media (max-width: 768px) {
    .events-header h1 {
        font-size: 2rem;
    }

    .events-header .events-subtitle {
        font-size: 1rem;
    }

    #ep-stats {
        grid-template-columns: 1fr;
    }

    .events-filters .filter-row {
        grid-template-columns: 1fr;
    }

    #ep-grid {
        grid-template-columns: 1fr;
    }

    .event-actions {
        flex-direction: column;
    }

    .btn-event {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .events-header h1 {
        font-size: 1.5rem;
    }

    .events-stat-card .stat-number {
        font-size: 2.5rem;
    }
}

/* College Needs Portal - Table Styling */
.cp-table-container {
    background: white;
    border-radius: var(--portal-radius);
    overflow: hidden;
    box-shadow: var(--portal-shadow);
}

.cp-table {
    width: 100%;
    border-collapse: collapse;
}

.cp-table thead {
    background: linear-gradient(135deg, var(--portal-dark-bg) 0%, #2a2a2a 100%);
    color: white;
}

.cp-table th {
    padding: 1rem;
    text-align: left;
    font-weight: 600;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cp-table tbody tr {
    border-bottom: 1px solid var(--portal-border);
    transition: background 0.2s ease;
}

.cp-table tbody tr:hover {
    background: #f8f9fa;
}

.cp-table td {
    padding: 1rem;
    color: var(--portal-text);
}

/* Shared Stats Grid (like basketball pages) */
.portal-stats-section,
.alumni-stats-section,
.events-stats-section,
.cp-stats-section {
    margin-bottom: 2rem;
}

.portal-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.portal-stat-card {
    background: white;
    padding: 1.25rem;
    border-radius: var(--portal-radius);
    text-align: center;
    box-shadow: var(--portal-shadow);
    transition: var(--portal-transition);
    cursor: pointer;
}

.portal-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--portal-shadow-lg);
}

.portal-stat-number {
    font-size: 2rem;
    font-weight: 800;
    color: var(--portal-primary);
    margin-bottom: 0.25rem;
}

.portal-stat-label {
    font-size: 0.875rem;
    color: var(--portal-text-light);
    font-weight: 500;
}

/* Alumni Cards - Enhanced 3-column layout */
.alumni-card-grid {
    grid-template-columns: repeat(3, 1fr) !important;
}

.alumni-card {
    background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%) !important;
    border-radius: 12px !important;
    padding: 1.75rem !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
    border-top: 3px solid #17a2b8 !important;
    border-left: none !important;
}

.alumni-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 80px;
    height: 80px;
    background: radial-gradient(circle, rgba(23,162,184,0.1) 0%, transparent 70%);
    border-radius: 50%;
    transform: translate(25%, -25%);
}

.alumni-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 12px 24px rgba(23,162,184,0.15) !important;
    border-top-color: #ff7426 !important;
}

.alumni-card-name {
    font-size: 1.35rem !important;
    font-weight: 800 !important;
}

.alumni-card-school {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
}

@media (max-width: 1024px) {
    .alumni-card-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 640px) {
    .alumni-card-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ALUMNI GRID - CORRECT CLASS NAMES */
.alumni-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.5rem !important;
}

.alumni-grid .alumni-card {
    background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%) !important;
    border-radius: 12px !important;
    padding: 1.75rem !important;
    border-top: 3px solid #17a2b8 !important;
    position: relative !important;
}

@media (max-width: 1024px) {
    .alumni-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 640px) {
    .alumni-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ===================================
   ALUMNI PORTAL - PC-PROD INSPIRED DESIGN
   =================================== */

/* Body background for alumni portal */
body.page-id-alumni,
body.alumni .alumni-portal {
    background: linear-gradient(135deg, #0f0f0f 0%, #1a1a1a 50%, #2d2d2d 100%);
    min-height: 100vh;
}

.alumni-portal {
    padding: 2rem 0;
}

.alumni-portal .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Header Statement Card */
.alumni-header-card {
    background: #ffffff;
    background: linear-gradient(135deg, rgba(255, 136, 0, 0.12) 0%, rgba(255, 136, 0, 0.06) 100%), #ffffff;
    border-left: 6px solid #ff7426;
    border-radius: 8px;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.alumni-header-title {
    font-size: 1.8rem;
    font-weight: 700;
    color: #222429;
    margin: 0 0 0.75rem 0;
    line-height: 1.3;
}

.alumni-header-desc {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #555555;
    margin: 0;
    font-weight: 500;
}

/* Stats Card */
.alumni-stats-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
    padding: 1.5rem;
}

.alumni-stats-section {
    background: linear-gradient(135deg, rgba(255, 136, 0, 0.08) 0%, rgba(255, 136, 0, 0.03) 100%);
    padding: 2rem;
    border-radius: 8px;
    border-left: 4px solid #ff8800;
    margin: -1.5rem -1.5rem 0 -1.5rem;
}

.alumni-stats-title {
    font-size: 0.96rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 1rem;
}

.alumni-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.8rem;
}

.alumni-stat-card {
    background: linear-gradient(135deg, #ff8800 0%, #ff9900 100%) !important;
    color: white !important;
    padding: 1.2rem !important;
    border-radius: 8px !important;
    text-align: center !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    border: none !important;
    border-top: none !important;
}

.alumni-stat-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 24px rgba(255, 136, 0, 0.3) !important;
}

.alumni-stat-card .stat-number {
    font-size: 1.2rem !important;
    font-weight: 800 !important;
    margin-bottom: 0.5rem !important;
    color: white !important;
}

.alumni-stat-card .stat-label {
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    color: white !important;
}

/* Filters Card */
.alumni-filters-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
    padding: 1.5rem;
}

.alumni-filters-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.2rem;
}

.alumni-filters-title {
    font-size: 0.96rem;
    font-weight: 700;
    color: #333;
}

.alumni-filters .filter-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.8rem;
    margin-bottom: 0.8rem;
}

.alumni-filters .filter-row:last-child {
    margin-bottom: 0;
}

.alumni-filters .filter-group {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.alumni-filters .filter-label {
    font-size: 0.68rem;
    font-weight: 600;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.alumni-filters .filter-input,
.alumni-filters .filter-select {
    padding: 0.6rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 0.75rem;
    font-family: inherit;
    background: white;
}

.alumni-filters .filter-input:focus,
.alumni-filters .filter-select:focus {
    outline: none;
    border-color: #ff8800;
    box-shadow: 0 0 0 3px rgba(255, 136, 0, 0.1);
}

.btn-clear-filters {
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    background: #6c757d;
    color: white;
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.btn-clear-filters:hover {
    background: #5a6268;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Results Info Card */
.alumni-results-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
    padding: 1rem 1.5rem;
}

.alumni-results-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.filter-count {
    font-size: 0.9rem;
    color: #666;
    font-weight: 500;
}

/* Alumni Grid Card */
.alumni-grid-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
    padding: 1.5rem;
}

.alumni-loading {
    text-align: center;
    padding: 3rem;
    color: #666;
}

.loading-spinner {
    width: 3rem;
    height: 3rem;
    border: 4px solid #ddd;
    border-top: 4px solid #ff8800;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 1rem;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Alumni Cards within Grid */
.alumni-grid .alumni-card {
    background: white !important;
    border: 2px solid #17a2b8 !important;
    border-left: 6px solid #17a2b8 !important;
    border-radius: 8px !important;
    padding: 1rem !important;
    position: relative !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
}

.alumni-grid .alumni-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #17a2b8 0%, #0dcaf0 100%);
}

.alumni-grid .alumni-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(23, 162, 184, 0.25) !important;
    border-color: #17a2b8 !important;
}

/* Pagination */
.alumni-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    margin-top: 2rem;
    padding: 1.5rem;
    background: #f9f9f9;
    border-radius: 8px;
    flex-wrap: wrap;
}

.btn-page {
    background: #ff8800;
    color: white;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 600;
    transition: all 0.2s ease;
}

.btn-page:hover:not(:disabled) {
    background: #e07600;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(255, 136, 0, 0.3);
}

.btn-page:disabled {
    background: #ccc;
    cursor: not-allowed;
    opacity: 0.6;
}

.page-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
    color: #666;
    min-width: 200px;
    text-align: center;
}

/* Empty State */
.alumni-empty {
    text-align: center;
    padding: 3rem;
    color: #666;
}

.alumni-empty p {
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

/* Trust Disclaimer */
.alumni-disclaimer {
    background: #f9f9f9;
    border-top: 2px solid #ddd;
    border-radius: 8px;
    padding: 1.5rem;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.alumni-disclaimer p {
    font-size: 0.9rem;
    color: #666;
    margin: 0;
    line-height: 1.5;
}

/* Responsive */
@media (max-width: 768px) {
    .alumni-header-title {
        font-size: 1.5rem;
    }

    .alumni-header-desc {
        font-size: 0.95rem;
    }

    .alumni-filters .filter-row {
        grid-template-columns: 1fr;
    }

    .alumni-pagination {
        gap: 0.75rem;
    }

    .btn-page {
        padding: 0.6rem 1rem;
        font-size: 0.9rem;
    }

    .page-info {
        min-width: 150px;
        font-size: 0.9rem;
    }
}

/* ====================================
   EVENT SUBMISSION FORM (.event-submission)
   ==================================== */

.event-submission {
    max-width: 900px;
    margin: 40px auto;
    padding: 0 20px;
}

.es-header {
    text-align: center;
    margin-bottom: 40px;
}

.es-header h1 {
    font-size: 2.5em;
    color: #1a1a2e;
    margin-bottom: 10px;
}

.es-subtitle {
    font-size: 1.1em;
    color: #6c757d;
}

.es-section {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 25px;
}

.es-section-title {
    font-size: 1.3em;
    color: #1a1a2e;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #ff6b35;
}

.es-field {
    margin-bottom: 20px;
}

.es-field label {
    display: block;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
    font-size: 0.95em;
}

.es-field input[type="text"],
.es-field input[type="date"],
.es-field input[type="number"],
.es-field input[type="url"],
.es-field textarea {
    width: 100%;
    padding: 12px;
    border: 2px solid #e2e8f0;
    border-radius: 6px;
    font-size: 0.95em;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.es-field input:focus,
.es-field textarea:focus {
    outline: none;
    border-color: #ff6b35;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1);
}

.es-field textarea {
    resize: vertical;
    font-family: inherit;
}

.es-input-error {
    border-color: #dc3545 !important;
}

.es-error {
    display: none;
    color: #dc3545;
    font-size: 0.85em;
    margin-top: 5px;
}

.es-hint {
    display: block;
    color: #6c757d;
    font-size: 0.85em;
    margin-top: 5px;
}

.es-radio-group {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.es-radio-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: normal;
    cursor: pointer;
    margin-bottom: 0;
}

.es-radio-group input[type="radio"] {
    cursor: pointer;
    margin: 0;
}

.es-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.es-conditional {
    display: none;
}

.es-submit-wrapper {
    text-align: center;
    margin-top: 30px;
}

.es-btn {
    padding: 14px 40px;
    font-size: 1em;
    font-weight: 600;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
}

.es-btn-primary {
    background: linear-gradient(135deg, #ff6b35 0%, #ff8800 100%);
    color: white;
}

.es-btn-primary:hover:not(:disabled) {
    background: linear-gradient(135deg, #e55a28 0%, #ff6b35 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 107, 53, 0.3);
}

.es-btn-primary:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.es-btn-secondary {
    background: white;
    color: #ff6b35;
    border: 2px solid #ff6b35;
}

.es-btn-secondary:hover {
    background: #ff6b35;
    color: white;
}

.es-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 3px solid rgba(255, 107, 53, 0.3);
    border-top-color: #ff6b35;
    border-radius: 50%;
    animation: es-spin 0.8s linear infinite;
    margin-left: 10px;
    vertical-align: middle;
}

@keyframes es-spin {
    to { transform: rotate(360deg); }
}

.es-success-panel {
    background: white;
    border: 2px solid #28a745;
    border-radius: 12px;
    padding: 60px 40px;
    text-align: center;
    margin: 40px auto;
    max-width: 600px;
}

.es-success-icon {
    font-size: 4em;
    color: #28a745;
    margin-bottom: 20px;
}

.es-success-panel h2 {
    color: #1a1a2e;
    margin-bottom: 15px;
}

.es-success-panel p {
    color: #6c757d;
    margin-bottom: 30px;
}

.es-success-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.required {
    color: #dc3545;
}

/* Responsive */
@media (max-width: 768px) {
    .es-grid-2 {
        grid-template-columns: 1fr;
    }

    .es-header h1 {
        font-size: 1.8em;
    }

    .es-section {
        padding: 20px;
    }
}

@media (max-width: 480px) {
    .es-header h1 {
        font-size: 1.5em;
    }

    .es-header {
        margin-bottom: 25px;
    }

    .es-subtitle {
        font-size: 0.95em;
    }

    .es-btn {
        width: 100%;
    }

    .es-success-actions {
        flex-direction: column;
    }

    .es-success-actions .es-btn {
        width: 100%;
    }

    .es-radio-group {
        flex-direction: column;
        gap: 10px;
    }
}

/* ====================================
   SCHEDULE SUBMISSION FORM (.schedule-submission)
   ==================================== */

.schedule-submission {
    max-width: 1000px;
    margin: 40px auto;
    padding: 0 20px;
}

.ss-header {
    text-align: center;
    margin-bottom: 40px;
}

.ss-header h1 {
    font-size: 2.5em;
    color: #1a1a2e;
    margin-bottom: 10px;
}

.ss-subtitle {
    font-size: 1.1em;
    color: #6c757d;
}

.ss-section {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 25px;
}

.ss-section-title {
    font-size: 1.3em;
    color: #1a1a2e;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #ff6b35;
}

.ss-field {
    margin-bottom: 20px;
}

.ss-field label {
    display: block;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
    font-size: 0.95em;
}

.ss-field input[type="text"],
.ss-field input[type="email"],
.ss-field input[type="tel"],
.ss-field input[type="url"],
.ss-field input[type="date"],
.ss-field select,
.ss-field textarea {
    width: 100%;
    padding: 12px;
    border: 2px solid #e2e8f0;
    border-radius: 6px;
    font-size: 0.95em;
    transition: all 0.3s ease;
}

.ss-field input:focus,
.ss-field select:focus,
.ss-field textarea:focus {
    outline: none;
    border-color: #ff6b35;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1);
}

.ss-field textarea {
    resize: vertical;
    font-family: inherit;
}

.ss-input-error {
    border-color: #dc3545 !important;
}

.ss-error {
    display: none;
    color: #dc3545;
    font-size: 0.85em;
    margin-top: 5px;
}

.ss-hint {
    display: block;
    color: #6c757d;
    font-size: 0.85em;
    margin-top: 5px;
}

.ss-info-text {
    background: #f0f7ff;
    border-left: 4px solid #007bff;
    padding: 12px 16px;
    margin: 1rem 0;
    font-size: 0.9em;
    color: #004085;
    border-radius: 4px;
}

.ss-radio-group {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.ss-radio-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: normal;
    cursor: pointer;
}

.ss-radio-group input[type="radio"],
.ss-field input[type="checkbox"] {
    cursor: pointer;
}

.ss-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* Featured Players */
.ss-featured-player-group {
    background: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
}

.ss-featured-player-group h4 {
    color: #ff6b35;
    margin-bottom: 15px;
    font-size: 1.1em;
}

.ss-featured-player-group .optional {
    color: #999;
    font-weight: normal;
    font-size: 0.9em;
}

/* Submit Button */
.ss-submit-wrapper {
    text-align: center;
    margin-top: 30px;
}

.ss-btn {
    padding: 14px 40px;
    font-size: 1em;
    font-weight: 600;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
}

.ss-btn-primary {
    background: linear-gradient(135deg, #ff6b35 0%, #ff8800 100%);
    color: white;
}

.ss-btn-primary:hover:not(:disabled) {
    background: linear-gradient(135deg, #e55a28 0%, #ff6b35 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 107, 53, 0.3);
}

.ss-btn-primary:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.ss-btn-secondary {
    background: white;
    color: #ff6b35;
    border: 2px solid #ff6b35;
}

.ss-btn-secondary:hover {
    background: #ff6b35;
    color: white;
}

.ss-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 3px solid rgba(255, 107, 53, 0.3);
    border-top-color: #ff6b35;
    border-radius: 50%;
    animation: ss-spin 0.8s linear infinite;
    margin-left: 10px;
}

@keyframes ss-spin {
    to { transform: rotate(360deg); }
}

/* Success Panel */
.ss-success-panel {
    background: white;
    border: 2px solid #28a745;
    border-radius: 12px;
    padding: 60px 40px;
    text-align: center;
    margin: 40px auto;
    max-width: 700px;
}

.ss-success-icon {
    font-size: 4em;
    color: #28a745;
    margin-bottom: 20px;
}

.ss-success-panel h2 {
    color: #1a1a2e;
    margin-bottom: 15px;
}

.ss-success-panel p {
    color: #6c757d;
    margin-bottom: 30px;
}

.ss-success-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.required {
    color: #dc3545;
}

/* Responsive */
@media (max-width: 768px) {
    .ss-grid-2 {
        grid-template-columns: 1fr;
    }

    .ss-header h1 {
        font-size: 1.8em;
    }

    .ss-section {
        padding: 20px;
    }

    .ss-featured-player-group {
        padding: 15px;
    }
}

@media (max-width: 480px) {
    .ss-header h1 {
        font-size: 1.5em;
    }

    .ss-btn {
        width: 100%;
    }

    .ss-success-actions {
        flex-direction: column;
    }

    .ss-success-actions .ss-btn {
        width: 100%;
    }

    .ss-radio-group {
        flex-direction: column;
        gap: 10px;
    }
}

/* ====================================
   FEATURED PLAYERS (.featured-players-list)
   ==================================== */

.featured-players-list {
    margin-top: 0.75rem;
    padding: 0.75rem;
    background: #f8f9fa;
    border-left: 3px solid #ff6b35;
    border-radius: 4px;
}

.featured-player-item {
    margin-bottom: 0.5rem;
    line-height: 1.6;
}

.featured-player-item:last-child {
    margin-bottom: 0;
}

.featured-player-link {
    color: #ff6b35;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.featured-player-link:hover {
    color: #e55a28;
    text-decoration: underline;
}

.profile-icon {
    font-size: 0.85em;
    opacity: 0.7;
}

.player-details {
    color: #666;
    font-size: 0.9em;
    font-weight: normal;
}

.player-notes {
    margin-top: 0.25rem;
    font-size: 0.85em;
    color: #555;
    font-style: italic;
    padding-left: 1rem;
}

/* Featured Players in Event Cards */
.event-card .featured-players-list {
    margin-top: 1rem;
    background: #fff;
    border-left: 3px solid #ff6b35;
}

.event-card .featured-player-item {
    font-size: 0.9em;
}

/* Player Video Links */
.player-video-link {
    display: inline-block;
    margin-left: 0.5rem;
    color: #007bff;
    text-decoration: none;
    font-size: 0.9em;
    font-weight: 600;
    transition: color 0.2s ease;
}

.player-video-link:hover {
    color: #0056b3;
    text-decoration: underline;
}

.player-video-link:before {
    content: '🎥 ';
}

/* ============================================================================
   M13: COMMITMENT TRACKING & ACTIVITY TRACKING STYLES
   ============================================================================ */

/* ============================================
   Coach Dashboard - Commitment Features
   ============================================ */

/* Mark as Committed Button */
.cd-commit-btn {
    padding: 0.4rem 0.75rem;
    background: #17a2b8;
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--portal-transition);
    white-space: nowrap;
}

.cd-commit-btn:hover {
    background: #138496;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(23, 162, 184, 0.3);
}

.cd-commit-btn:active {
    transform: translateY(0);
}

/* M14: Edit Profile Button */
.cd-edit-btn {
    padding: 0.4rem 0.75rem;
    background: #17a2b8; /* Info color */
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--portal-transition);
    white-space: nowrap;
    margin-right: 6px;
}

.cd-edit-btn:hover {
    background: #138496;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(23, 162, 184, 0.3);
}

.cd-edit-btn:active {
    transform: translateY(0);
}

/* Actions cell - support multiple buttons */
.cd-cell-actions {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

/* Committed Players Toggle Button */
.cd-committed-toggle {
    margin-left: auto;
    background: #6c757d;
}

.cd-committed-toggle:hover {
    background: #5a6268;
}

.cd-committed-toggle.active {
    background: var(--portal-primary);
}

/* Committed Players Section */
.cd-committed-section {
    margin-top: 2rem;
    background: white;
    border-radius: var(--portal-radius);
    box-shadow: var(--portal-shadow);
    overflow: hidden;
}

.cd-committed-section .cd-group-header {
    background: linear-gradient(135deg, #6c757d 0%, #5a6268 100%);
    color: white;
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-left: 4px solid #495057;
}

.cd-committed-row {
    border-left: 3px solid #6c757d;
    background: #f8f9fa;
}

.cd-committed-row:hover {
    background: #e9ecef;
}

/* Undo Commitment Button */
.cd-undo-btn {
    padding: 0.4rem 0.75rem;
    background: var(--portal-danger);
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--portal-transition);
}

.cd-undo-btn:hover {
    background: #c82333;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(220, 53, 69, 0.3);
}

/* Commitment Modal */
.commitment-modal {
    max-width: 500px;
}

.commitment-modal h3 {
    margin: 0 0 1rem;
    color: var(--portal-text);
    font-size: 1.5rem;
}

.commitment-modal .cd-modal-summary {
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 6px;
    margin-bottom: 1.5rem;
    border-left: 3px solid var(--portal-primary);
}

.commitment-modal .form-group {
    margin-bottom: 1.25rem;
}

.commitment-modal .form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: var(--portal-text);
    font-size: 0.95rem;
}

.commitment-modal .form-group .required {
    color: var(--portal-danger);
    margin-left: 2px;
}

.commitment-modal .form-group input[type="text"],
.commitment-modal .form-group input[type="date"],
.commitment-modal .form-group select,
.commitment-modal .form-group textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 0.95rem;
    transition: var(--portal-transition);
    font-family: inherit;
}

.commitment-modal .form-group input:focus,
.commitment-modal .form-group select:focus,
.commitment-modal .form-group textarea:focus {
    outline: none;
    border-color: var(--portal-primary);
    box-shadow: 0 0 0 3px rgba(255, 116, 38, 0.1);
}

.commitment-modal .form-group textarea {
    resize: vertical;
    min-height: 80px;
}

.commitment-modal .form-buttons {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
}

.commitment-modal .cd-btn {
    flex: 1;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 6px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--portal-transition);
}

.commitment-modal .cd-btn-primary {
    background: var(--portal-primary, #ff7426);
    color: #fff;
    border: 1px solid var(--portal-primary, #ff7426);
}

.commitment-modal .cd-btn-primary:hover {
    background: var(--portal-primary-dark, #e55a28);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 116, 38, 0.3);
}

.commitment-modal .cd-btn-primary:disabled {
    background: #ccc;
    cursor: not-allowed;
    transform: none;
}

.commitment-modal .cd-btn-secondary {
    background: #6c757d;
    color: #fff;
    border: 1px solid #6c757d;
}

.commitment-modal .cd-btn-secondary:hover {
    background: #5a6268;
}

/* Toast Notifications */
.cd-toast {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    padding: 1rem 1.5rem;
    background: white;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    font-weight: 600;
    z-index: 10000;
    animation: cd-toast-in 0.3s ease;
    min-width: 280px;
    border-left: 4px solid #6c757d;
}

@keyframes cd-toast-in {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cd-toast-success {
    border-left-color: var(--portal-success);
    color: var(--portal-success);
}

.cd-toast-error {
    border-left-color: var(--portal-danger);
    color: var(--portal-danger);
}

.cd-toast-info {
    border-left-color: var(--portal-info);
    color: var(--portal-info);
}

/* ============================================
   Recruiting Dashboard - Activity Tracking
   ============================================ */

/* Activity Column */
.rd-cell-activity {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-start;
}

/* Activity Checkboxes (Interests Tab) */
.rd-activity-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    cursor: pointer;
    font-size: 1.1rem;
    transition: var(--portal-transition);
}

.rd-activity-checkbox:hover {
    opacity: 0.7;
}

.rd-activity-checkbox input[type="checkbox"] {
    cursor: pointer;
    width: 16px;
    height: 16px;
    margin: 0;
}

.rd-activity-checkbox input[type="checkbox"]:checked {
    accent-color: var(--portal-primary);
}

/* Activity Icons (Matches Tab) */
.rd-activity-icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    border-radius: 50%;
    font-size: 0.9rem;
    cursor: help;
    transition: var(--portal-transition);
}

.rd-activity-contacted {
    background: #e3f2fd;
    color: #1976d2;
}

.rd-activity-offered {
    background: #fff3e0;
    color: #f57c00;
}

.rd-activity-video {
    background: #f3e5f5;
    color: #7b1fa2;
}

.rd-activity-icon:hover {
    transform: scale(1.15);
}

/* Activity Timeline Modal */
.rd-activity-timeline {
    padding: 1rem 0;
}

.rd-timeline-item {
    display: grid;
    grid-template-columns: 40px 1fr auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.75rem;
    margin-bottom: 0.75rem;
    background: #f8f9fa;
    border-radius: 6px;
    border-left: 3px solid var(--portal-primary);
}

.rd-timeline-item:last-child {
    margin-bottom: 0;
}

.rd-timeline-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border-radius: 50%;
    font-size: 1.1rem;
    border: 2px solid var(--portal-border);
}

.rd-timeline-label {
    font-weight: 600;
    color: var(--portal-text);
}

.rd-timeline-date {
    color: var(--portal-text-light);
    font-size: 0.9rem;
}

.rd-activity-notes {
    margin-top: 1.5rem;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 6px;
    border-left: 3px solid var(--portal-info);
}

.rd-activity-notes h4 {
    margin: 0 0 0.5rem;
    font-size: 1rem;
    color: var(--portal-text);
}

.rd-activity-notes p {
    margin: 0;
    color: var(--portal-text-light);
    line-height: 1.6;
}

/* Activity Filter */
.rd-filter-group:has(select:has(option[value="contacted"])) label {
    /* Activity filter label styling - matches other filter labels */
}

/* Toast Notifications (Recruiting Dashboard) */
.rd-toast {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    padding: 1rem 1.5rem;
    background: white;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    font-weight: 600;
    z-index: 10000;
    min-width: 280px;
    border-left: 4px solid #6c757d;
    opacity: 0;
    transform: translateY(20px);
    transition: var(--portal-transition);
}

.rd-toast-visible {
    opacity: 1;
    transform: translateY(0);
}

.rd-toast-success {
    border-left-color: var(--portal-success);
    color: var(--portal-success);
}

.rd-toast-error {
    border-left-color: var(--portal-danger);
    color: var(--portal-danger);
}

/* ============================================
   Responsive Adjustments for M13 Features
   ============================================ */

@media (max-width: 768px) {
    /* Commitment Modal */
    .commitment-modal {
        max-width: 90vw;
        margin: 1rem;
    }

    .commitment-modal .form-buttons {
        flex-direction: column;
    }

    /* Toast Notifications */
    .cd-toast,
    .rd-toast {
        bottom: 1rem;
        right: 1rem;
        left: 1rem;
        min-width: auto;
    }

    /* Activity Checkboxes - Stack on mobile */
    .rd-cell-activity {
        flex-direction: column;
        gap: 0.5rem;
        align-items: flex-start;
    }

    /* Activity Timeline */
    .rd-timeline-item {
        grid-template-columns: 30px 1fr;
        gap: 0.5rem;
    }

    .rd-timeline-date {
        grid-column: 2;
        margin-top: 0.25rem;
        font-size: 0.85rem;
    }

    /* Committed Players Section - Reduce padding */
    .cd-committed-section .cd-group-header {
        padding: 0.75rem 1rem;
    }

    /* Action buttons - smaller on mobile */
    .cd-commit-btn,
    .cd-undo-btn,
    .cd-edit-btn {
        padding: 0.35rem 0.6rem;
        font-size: 0.8rem;
    }
}

@media (max-width: 480px) {
    /* Further mobile optimization */
    .commitment-modal .cd-modal-summary {
        padding: 0.75rem;
        font-size: 0.9rem;
    }

    .commitment-modal .form-group input,
    .commitment-modal .form-group select,
    .commitment-modal .form-group textarea {
        font-size: 0.9rem;
        padding: 0.6rem;
    }

    .rd-activity-checkbox {
        font-size: 1rem;
    }

    .rd-activity-icon {
        width: 20px;
        height: 20px;
        line-height: 20px;
        font-size: 0.8rem;
    }
}

/* ============================================
   Accessibility Enhancements
   ============================================ */

/* Focus styles for checkboxes */
.rd-activity-checkbox input[type="checkbox"]:focus {
    outline: 2px solid var(--portal-primary);
    outline-offset: 2px;
}

/* Focus styles for commit buttons */
.cd-commit-btn:focus,
.cd-undo-btn:focus,
.cd-edit-btn:focus {
    outline: 2px solid var(--portal-primary);
    outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .rd-activity-icon {
        border: 2px solid currentColor;
    }

    .cd-toast,
    .rd-toast {
        border: 2px solid currentColor;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .cd-commit-btn,
    .cd-undo-btn,
    .cd-edit-btn,
    .rd-activity-icon,
    .cd-toast,
    .rd-toast {
        transition: none;
        animation: none;
    }

    .cd-commit-btn:hover,
    .cd-undo-btn:hover,
    .cd-edit-btn:hover,
    .rd-activity-icon:hover {
        transform: none;
    }
}

/* Print styles - hide interactive elements */
@media print {
    .cd-commit-btn,
    .cd-undo-btn,
    .cd-edit-btn,
    .cd-committed-toggle,
    .rd-activity-checkbox input,
    .cd-toast,
    .rd-toast {
        display: none;
    }
}

/* =============================================================================
 * M14 GAP #9: PROFILE VIEW ANALYTICS WIDGETS
 * ============================================================================= */

/* Recent Views Widget (Coach Dashboard) */
.cd-recent-views-section {
    margin-top: 30px;
}

.cd-section-heading {
    font-size: 20px;
    margin-bottom: 15px;
    color: #333;
    font-weight: 600;
}

.cd-recent-views-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 15px;
    margin-top: 15px;
}

.cd-view-card {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 15px;
    transition: all 0.2s ease;
}

.cd-view-card:hover {
    border-color: #ff6b35;
    box-shadow: 0 2px 8px rgba(255, 107, 53, 0.15);
    transform: translateY(-2px);
}

.cd-view-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px;
}

.cd-view-player-name {
    font-weight: 600;
    color: #ff6b35;
    text-decoration: none;
    font-size: 16px;
    flex: 1;
}

.cd-view-player-name:hover {
    text-decoration: underline;
}

.cd-view-time {
    font-size: 12px;
    color: #6c757d;
    white-space: nowrap;
    margin-left: 10px;
}

.cd-view-details {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
    font-size: 13px;
    color: #495057;
    flex-wrap: wrap;
}

.cd-view-position,
.cd-view-class {
    background: white;
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 500;
}

.cd-view-school {
    color: #6c757d;
}

.cd-view-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 8px;
    font-size: 12px;
    flex-wrap: wrap;
}

.cd-view-duration {
    color: #6c757d;
}

.cd-view-badge {
    background: #e3f2fd;
    color: #1976d2;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 11px;
}

/* Engagement Widget (Recruiting Dashboard) */
.rd-engagement-widget {
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 20px;
}

.rd-engagement-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.rd-engagement-icon {
    flex-shrink: 0;
    font-size: 32px;
}

.rd-engagement-info {
    flex: 1;
}

.rd-engagement-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 15px;
}

.rd-eng-stat {
    text-align: center;
    padding: 10px;
    background: white;
    border-radius: 6px;
}

.rd-eng-label {
    display: block;
    font-size: 12px;
    color: #6c757d;
    margin-bottom: 5px;
}

.rd-eng-value {
    display: block;
    font-size: 20px;
    font-weight: 600;
    color: #333;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .cd-recent-views-grid {
        grid-template-columns: 1fr;
    }

    .rd-engagement-stats {
        grid-template-columns: 1fr;
    }

    .rd-engagement-header {
        flex-direction: column;
        text-align: center;
    }
}

/* ============================================
   M14: PROFILE EDIT MODAL (Gap #4/#33)
   ============================================ */

/* Modal overlay */
.pem-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pem-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.75);
    cursor: pointer;
}

/* Modal content */
.pem-content {
    position: relative;
    width: 90%;
    max-width: 900px;
    max-height: 90vh;
    background: white;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Modal header */
.pem-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #ff7426 0%, #ff9900 100%);
    color: white;
}

.pem-header h2 {
    margin: 0;
    font-size: 22px;
    font-weight: 600;
}

.pem-close {
    width: 36px;
    height: 36px;
    border: none;
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border-radius: 50%;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    transition: var(--portal-transition);
}

.pem-close:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.05);
}

/* Player info section */
.pem-player-info {
    padding: 20px 24px;
    background: #f8f9fa;
    border-bottom: 1px solid #e5e7eb;
}

.pem-player-name {
    font-size: 20px;
    font-weight: 600;
    color: #333;
    margin-bottom: 6px;
}

.pem-player-meta {
    font-size: 14px;
    color: #666;
    margin-bottom: 12px;
}

/* Completeness bar */
.pem-completeness {
    margin-top: 12px;
}

.pem-completeness-bar {
    width: 100%;
    height: 8px;
    background: #e5e7eb;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 6px;
}

.pem-completeness-fill {
    height: 100%;
    transition: width 0.3s ease;
}

.pem-completeness-fill.pem-tier-incomplete {
    background: #dc3545;
}

.pem-completeness-fill.pem-tier-basic {
    background: #ffc107;
}

.pem-completeness-fill.pem-tier-complete {
    background: #17a2b8;
}

.pem-completeness-fill.pem-tier-excellent {
    background: #28a745;
}

.pem-completeness-text {
    font-size: 13px;
    color: #666;
    font-weight: 500;
}

/* Tabs */
.pem-tabs {
    display: flex;
    gap: 4px;
    padding: 0 24px;
    background: white;
    border-bottom: 2px solid #e5e7eb;
    overflow-x: auto;
}

.pem-tab {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 16px;
    border: none;
    background: transparent;
    color: #666;
    cursor: pointer;
    transition: var(--portal-transition);
    white-space: nowrap;
    font-size: 14px;
    font-weight: 500;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
}

.pem-tab:hover {
    color: #ff7426;
    background: #fff5f0;
}

.pem-tab-active {
    color: #ff7426;
    border-bottom-color: #ff7426;
    background: #fff5f0;
}

.pem-tab-icon {
    font-size: 16px;
}

/* Tab content */
.pem-tab-content {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
}

/* Form */
.pem-form {
    display: grid;
    gap: 20px;
}

.pem-field {
    display: flex;
    flex-direction: column;
}

.pem-label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 6px;
}

.pem-required {
    color: #dc3545;
    margin-left: 3px;
}

.pem-input,
.pem-textarea,
.pem-select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    color: #333;
    background: white;
    transition: var(--portal-transition);
}

.pem-input:focus,
.pem-textarea:focus,
.pem-select:focus {
    outline: none;
    border-color: #ff7426;
    box-shadow: 0 0 0 3px rgba(255, 116, 38, 0.1);
}

.pem-textarea {
    resize: vertical;
    min-height: 80px;
}

.pem-help {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #6c757d;
}

/* Locked fields */
.pem-field-locked {
    opacity: 0.7;
}

.pem-locked-field {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: #f8f9fa;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.pem-lock-icon {
    font-size: 18px;
    color: #6c757d;
}

.pem-locked-value {
    flex: 1;
    font-weight: 500;
    color: #333;
}

.pem-locked-reason {
    font-size: 12px;
    color: #6c757d;
}

.pem-no-fields {
    text-align: center;
    padding: 40px 20px;
    color: #6c757d;
    font-size: 14px;
}

/* Modal footer */
.pem-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-top: 1px solid #e5e7eb;
    background: #f8f9fa;
}

.pem-footer-left,
.pem-footer-right {
    display: flex;
    gap: 10px;
}

.pem-btn-primary,
.pem-btn-secondary {
    padding: 10px 20px;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--portal-transition);
}

.pem-btn-primary {
    background: linear-gradient(135deg, #ff7426 0%, #ff9900 100%);
    color: white;
}

.pem-btn-primary:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 116, 38, 0.3);
}

.pem-btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pem-btn-secondary {
    background: white;
    color: #333;
    border: 1px solid #d1d5db;
}

.pem-btn-secondary:hover {
    background: #f8f9fa;
    border-color: #9ca3af;
}

.pem-icon {
    display: inline-block;
    margin-right: 4px;
}

/* Loading state */
.pem-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
}

.pem-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #e5e7eb;
    border-top-color: #ff7426;
    border-radius: 50%;
    animation: pem-spin 0.8s linear infinite;
}

@keyframes pem-spin {
    to {
        transform: rotate(360deg);
    }
}

.pem-loading p {
    margin-top: 16px;
    color: #6c757d;
    font-size: 14px;
}

/* ============================================
   EDIT HISTORY MODAL
   ============================================ */

.pem-history-modal .pem-content {
    max-width: 700px;
}

.pem-history-content {
    max-height: 80vh;
}

.pem-history-list {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
}

.pem-empty-state {
    text-align: center;
    padding: 60px 20px;
}

.pem-empty-icon {
    font-size: 48px;
    margin-bottom: 16px;
}

.pem-empty-state p {
    font-size: 16px;
    color: #333;
    margin-bottom: 8px;
}

.pem-empty-state small {
    color: #6c757d;
    font-size: 14px;
}

.pem-history-entry {
    padding: 20px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 16px;
    background: white;
}

.pem-history-entry:last-child {
    margin-bottom: 0;
}

.pem-history-date {
    font-size: 12px;
    color: #6c757d;
    margin-bottom: 6px;
}

.pem-history-user {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 12px;
}

.pem-history-changes {
    font-size: 14px;
    color: #333;
}

.pem-changes-list {
    list-style: none;
    padding: 0;
    margin: 12px 0 0 0;
}

.pem-changes-list li {
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.pem-changes-list li:last-child {
    border-bottom: none;
}

.pem-old-value {
    color: #dc3545;
    text-decoration: line-through;
}

.pem-new-value {
    color: #28a745;
    font-weight: 500;
}

/* ============================================
   RESPONSIVE (Mobile)
   ============================================ */

@media (max-width: 768px) {
    .pem-content {
        width: 95%;
        max-height: 95vh;
    }

    .pem-header h2 {
        font-size: 18px;
    }

    .pem-tabs {
        padding: 0 12px;
    }

    .pem-tab {
        padding: 10px 12px;
        font-size: 13px;
    }

    .pem-tab-content {
        padding: 16px;
    }

    .pem-footer {
        flex-direction: column;
        gap: 12px;
    }

    .pem-footer-left,
    .pem-footer-right {
        width: 100%;
        flex-direction: column;
    }

    .pem-btn-primary,
    .pem-btn-secondary {
        width: 100%;
    }
}

/* ============================================
   M14: VIDEO VALIDATION STATUS BADGES (Gap #6/#47)
   ============================================ */

/* Status badge overlay on video thumbnails */
.portal-video-status-overlay {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
}

.portal-video-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    font-size: 16px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    transition: var(--portal-transition);
}

.portal-video-status:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Individual status styles */
.portal-video-validated {
    border: 2px solid #28a745;
}

.portal-video-broken {
    border: 2px solid #dc3545;
    animation: pulse-error 2s infinite;
}

.portal-video-unchecked {
    border: 2px solid #ffc107;
}

/* Pulse animation for broken links */
@keyframes pulse-error {
    0%, 100% {
        box-shadow: 0 2px 6px rgba(220, 53, 69, 0.2);
    }
    50% {
        box-shadow: 0 4px 12px rgba(220, 53, 69, 0.5);
    }
}

/* Video card state styling */
.portal-profile-video-card.video-broken {
    opacity: 0.8;
}

.portal-profile-video-card.video-broken:hover {
    opacity: 1;
}

.portal-profile-video-card.video-validated {
    border: 2px solid transparent;
}

.portal-profile-video-card.video-validated:hover {
    border-color: #28a745;
}

/* Ensure thumbnail has relative positioning for overlay */
.portal-profile-video-thumb {
    position: relative;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .portal-video-status {
        width: 24px;
        height: 24px;
        font-size: 14px;
    }

    .portal-video-status-overlay {
        top: 6px;
        right: 6px;
    }
}

/* ============================================
   VIDEO PREVIEW (submission form inline preview)
   ============================================ */

.vp-preview {
    max-width: 320px;
    margin-top: 8px;
    border-radius: 6px;
    overflow: hidden;
}

.vp-preview img {
    display: block;
    width: 100%;
    border-radius: 4px;
}

.vp-platform {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

.vp-preview--text {
    display: inline-block;
    background: #d4edda;
    color: #155724;
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 600;
}

/* ============================================
   M14 GAP #9: PROFILE ANALYTICS WIDGETS
   ============================================ */

/* Coach Dashboard Analytics */
.cd-analytics-widget {
    margin: 20px 0;
    padding: 20px;
    background: white;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.cd-analytics-header h3 {
    margin: 0 0 16px 0;
    font-size: 18px;
    color: #333;
}

.cd-analytics-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 20px;
}

.cd-analytics-stat {
    text-align: center;
    padding: 16px;
    background: #f8f9fa;
    border-radius: 6px;
}

.cd-analytics-number {
    font-size: 32px;
    font-weight: bold;
    color: #ff7426;
}

.cd-analytics-label {
    font-size: 13px;
    color: #666;
    margin-top: 4px;
}

.cd-analytics-section {
    margin-top: 20px;
}

.cd-analytics-section h4 {
    font-size: 16px;
    margin-bottom: 12px;
    color: #333;
}

.cd-analytics-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cd-analytics-player {
    display: flex;
    align-items: center;
    padding: 12px;
    background: #f8f9fa;
    border-radius: 6px;
    transition: var(--portal-transition);
}

.cd-analytics-player:hover {
    background: #e9ecef;
}

.cd-analytics-player-rank {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ff7426;
    color: white;
    border-radius: 50%;
    font-weight: bold;
    font-size: 14px;
    margin-right: 12px;
}

.cd-analytics-player-info {
    flex: 1;
}

.cd-analytics-player-name {
    font-weight: 600;
    color: #333;
    text-decoration: none;
}

.cd-analytics-player-name:hover {
    color: #ff7426;
}

.cd-analytics-player-meta {
    font-size: 13px;
    color: #666;
    margin-top: 2px;
}

.cd-analytics-player-views {
    text-align: right;
}

.cd-analytics-views-number {
    display: block;
    font-size: 20px;
    font-weight: bold;
    color: #ff7426;
}

.cd-analytics-views-label {
    font-size: 12px;
    color: #666;
}

.cd-trend-chart {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    height: 60px;
    padding: 10px 0;
}

.cd-trend-bar {
    flex: 1;
    background: linear-gradient(180deg, #ff7426 0%, #ff9900 100%);
    border-radius: 2px 2px 0 0;
    min-height: 2px;
    transition: var(--portal-transition);
}

.cd-trend-bar:hover {
    opacity: 0.8;
}

/* Recruiting Dashboard Analytics */
.rd-analytics-widget {
    margin: 20px 0;
}

.rd-analytics-box {
    padding: 20px;
    background: linear-gradient(135deg, #004e89 0%, #006ba6 100%);
    color: white;
    border-radius: 8px;
    text-align: center;
}

.rd-analytics-box h4 {
    margin: 0 0 12px 0;
    font-size: 16px;
}

.rd-analytics-summary {
    margin: 16px 0;
}

.rd-analytics-big {
    display: block;
    font-size: 42px;
    font-weight: bold;
}

.rd-analytics-small {
    display: block;
    font-size: 14px;
    opacity: 0.9;
    margin-top: 4px;
}

.rd-analytics-detail {
    font-size: 13px;
    opacity: 0.85;
    margin-top: 12px;
}

.cd-analytics-loading,
.cd-analytics-empty,
.cd-analytics-error,
.rd-analytics-loading,
.rd-analytics-empty {
    padding: 20px;
    text-align: center;
    color: #666;
    font-size: 14px;
}

@media (max-width: 768px) {
    .cd-analytics-summary {
        grid-template-columns: 1fr;
    }

    .cd-analytics-number {
        font-size: 24px;
    }

    .cd-trend-chart {
        height: 40px;
    }

    .rd-analytics-big {
        font-size: 32px;
    }
}

/* ==========================================================================
   Add Player Button + Modal
   ========================================================================== */

.cd-add-player-wrap {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 16px;
}

.cd-add-player-btn {
    background: #ff7426;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
}

.cd-add-player-btn:hover {
    background: #e55a28;
    transform: translateY(-1px);
}

/* Modal overrides for the wider add-player form */
.cd-add-player-modal-inner {
    max-width: 620px;
}

.cd-modal-header {
    margin-bottom: 24px;
    padding-right: 32px; /* room for close button */
}

.cd-modal-title {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
}

.cd-modal-subtitle {
    margin: 0;
    font-size: 13px;
    color: #666;
}

/* Form layout */
.cd-modal-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cd-form-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cd-form-label {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.cd-required {
    color: #ff7426;
    margin-left: 2px;
}

.cd-form-input {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    color: #1a1a1a;
    background: #fff;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.cd-form-input:focus {
    outline: none;
    border-color: #ff7426;
    box-shadow: 0 0 0 3px rgba(255, 116, 38, 0.12);
}

.cd-form-textarea {
    resize: vertical;
    min-height: 80px;
    font-family: inherit;
}

.cd-form-error {
    font-size: 12px;
    color: #dc3545;
    min-height: 16px;
}

/* Action buttons */
.cd-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid #eee;
}

.cd-btn-primary {
    background: #ff7426;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
}

.cd-btn-primary:hover {
    background: #e55a28;
    transform: translateY(-1px);
}

.cd-btn-primary:disabled {
    background: #ccc;
    cursor: not-allowed;
    transform: none;
}

.cd-btn-secondary {
    background: #6c757d;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.cd-btn-secondary:hover {
    background: #5a6268;
}

@media (max-width: 600px) {
    .cd-add-player-modal-inner {
        padding: 20px;
    }

    .cd-form-actions {
        flex-direction: column-reverse;
    }

    .cd-btn-primary,
    .cd-btn-secondary {
        width: 100%;
        text-align: center;
    }
}

/* === Match Score Breakdown === */
.match-score-badge { position: relative; cursor: pointer; user-select: none; }

.score-tooltip {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 200;
    background: #1a1a1a;
    color: #fff;
    border-radius: 8px;
    padding: 12px 14px;
    width: 240px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
    pointer-events: none;
}
.match-score-badge:hover .score-tooltip { display: block; }

.score-drawer {
    display: none;
    background: #f8f9fa;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 16px;
    margin-top: 10px;
}
.score-drawer.open { display: block; }

.score-breakdown-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    margin-bottom: 6px;
    color: #374151;
}
.score-breakdown-row:last-child { margin-bottom: 0; }
.score-breakdown-label { width: 90px; flex-shrink: 0; }
.score-breakdown-bar-wrap {
    flex: 1;
    background: #e5e7eb;
    border-radius: 4px;
    height: 6px;
    overflow: hidden;
}
.score-breakdown-bar { height: 100%; background: #28a745; border-radius: 4px; }
.score-breakdown-pct { width: 36px; text-align: right; font-weight: 600; }

/* === Recent Views (Who Viewed My Player) === */
.cd-recent-views {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 24px 28px;
    margin-bottom: 28px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.07);
}
.cd-recent-views h3 {
    margin: 0 0 16px 0;
    font-size: 18px;
    font-weight: 700;
    color: #111827;
}
.cd-rv-player { margin-bottom: 18px; }
.cd-rv-player:last-child { margin-bottom: 0; }
.cd-rv-player-name {
    font-weight: 700;
    font-size: 15px;
    color: #1a1a1a;
    margin-bottom: 6px;
}
.cd-rv-viewer {
    font-size: 13px;
    color: #4b5563;
    padding-left: 12px;
    margin-bottom: 3px;
}
.cd-rv-viewer strong { color: #111827; }
.cd-rv-level {
    display: inline-block;
    background: #dbeafe;
    color: #1d4ed8;
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 11px;
    font-weight: 700;
    margin-left: 4px;
}
.cd-rv-level.d1 { background: #dcfce7; color: #15803d; }
.cd-rv-empty { color: #9ca3af; font-size: 14px; }

/* === Eligibility Badges === */
.eligibility-badge {
    display: inline-block;
    border-radius: 999px;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    margin-left: 6px;
    vertical-align: middle;
}
.eligibility-badge.d1 { background: #16a34a; }
.eligibility-badge.d2 { background: #2563eb; }

/* === Form Draft Autosave === */
.draft-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    padding: 10px 16px;
    margin-bottom: 18px;
    font-size: 13px;
    color: #1e40af;
}
.draft-banner button {
    background: none;
    border: none;
    color: #1e40af;
    text-decoration: underline;
    cursor: pointer;
    font-size: 13px;
    padding: 0;
}

/* === Match Card Actions === */
.interest-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}
.view-full-profile-btn {
    background: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
}
.view-full-profile-btn:hover { background: #0069d9; }

/* === Express Interest (match cards) === */
.match-interest-btn {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #86efac;
    border-radius: 4px;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}
.match-interest-btn:hover:not(:disabled) { background: #dcfce7; }
.match-interest-btn.interested {
    background: #dcfce7;
    color: #15803d;
    cursor: default;
    font-weight: 600;
}
.match-interest-inline {
    display: flex;
    align-items: center;
    gap: 6px;
}
.match-interest-level-select {
    font-size: 13px;
    border: 1px solid #86efac;
    border-radius: 4px;
    padding: 6px 8px;
    color: #15803d;
}
.match-interest-confirm-btn {
    background: #16a34a;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 7px 12px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.match-interest-confirm-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.match-interest-cancel-btn {
    background: none;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 7px 10px;
    font-size: 13px;
    color: #6b7280;
    cursor: pointer;
}

/* === Staff Annotations === */
.annotation-toggle-btn {
    background: #f3f4f6;
    color: #374151;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}
.annotation-toggle-btn:hover { background: #e5e7eb; }
.annotation-panel {
    display: none;
    margin-top: 12px;
    padding: 14px;
    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}
.annotation-panel.open { display: block; }
.annotation-rating-row,
.annotation-priority-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.annotation-label {
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    width: 52px;
    flex-shrink: 0;
}
.annotation-stars { display: flex; gap: 3px; }
.annotation-star {
    font-size: 20px;
    color: #d1d5db;
    cursor: pointer;
    transition: color 0.1s;
    line-height: 1;
}
.annotation-star.filled { color: #f59e0b; }
.annotation-star:hover { color: #fbbf24; }
.annotation-priority-select {
    font-size: 13px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 4px 8px;
    color: #374151;
}
.annotation-notes {
    width: 100%;
    min-height: 80px;
    font-size: 13px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 8px;
    color: #374151;
    resize: vertical;
    box-sizing: border-box;
    margin-bottom: 10px;
    font-family: inherit;
}
.annotation-notes:focus { outline: none; border-color: #6366f1; }
.annotation-save-row { display: flex; align-items: center; gap: 10px; }
.annotation-save-btn {
    background: #6366f1;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 7px 16px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.annotation-save-btn:hover:not(:disabled) { background: #4f46e5; }
.annotation-save-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.annotation-save-status { font-size: 12px; }
.annotation-save-status.saved { color: #16a34a; }
.annotation-save-status.error { color: #dc2626; }

/* ============================================================
   RECRUITER SHORTLISTS
   ============================================================ */
.rd-shortlists-tab { padding: 0; }
.rd-shortlist-container { padding: 0; }

.rd-shortlist-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.rd-shortlist-title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--rd-text, #1a1a2e);
}
.rd-shortlist-create-btn {
    background: var(--rd-blue, #004e89);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.rd-shortlist-create-btn:hover { background: #003a6b; }

.rd-shortlist-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}
.rd-shortlist-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    border-left: 5px solid #004e89;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.rd-shortlist-card-top {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.rd-shortlist-name {
    font-weight: 700;
    font-size: 15px;
    color: var(--rd-text, #1a1a2e);
    word-break: break-word;
}
.rd-shortlist-count {
    font-size: 12px;
    color: #888;
}
.rd-shortlist-card-actions {
    display: flex;
    gap: 8px;
}

/* Tag button on interest cards */
.rd-action-tag { background: #f0f4ff; color: #004e89; border: 1px solid #c5d5f5; }
.rd-action-tag:hover { background: #dce8ff; }
.rd-action-tag.rd-action-tag-active { background: #004e89; color: #fff; border-color: #004e89; }
.rd-action-tag.rd-action-tag-active:hover { background: #003a6b; }

/* Shortlist picker modal list */
.rd-shortlist-picker-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 0;
    max-height: 300px;
    overflow-y: auto;
}
.rd-shortlist-picker-row {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    padding: 6px 8px;
    border-radius: 4px;
    transition: background 0.1s;
}
.rd-shortlist-picker-row:hover { background: #f5f8ff; }
.rd-shortlist-picker-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Inline player list in shortlist detail modal */
.rd-shortlist-player-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 320px;
    overflow-y: auto;
}
.rd-shortlist-player-list li {
    padding: 8px 10px;
    background: #f9fafb;
    border-radius: 4px;
    font-size: 14px;
    display: flex;
    align-items: center;
}
.rd-shortlist-player-list a { color: #004e89; text-decoration: none; font-weight: 600; }
.rd-shortlist-player-list a:hover { text-decoration: underline; }
.rd-shortlist-remove-inline {
    background: transparent;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    color: #888;
    cursor: pointer;
    transition: color 0.1s, border-color 0.1s;
}
.rd-shortlist-remove-inline:hover { color: #dc3545; border-color: #dc3545; }

.rd-shortlist-modal-msg {
    padding: 8px 12px;
    border-radius: 4px;
    margin-top: 8px;
    font-size: 13px;
}
.rd-shortlist-modal-msg.rd-message-error { background: #fff0f0; color: #c0392b; }
.rd-shortlist-modal-msg.rd-message-success { background: #f0fff4; color: #27ae60; }
.rd-shortlist-modal-body { padding: 8px 0; }

@media (max-width: 600px) {
    .rd-shortlist-grid { grid-template-columns: 1fr; }
}

/* ============================================
   One-Pager Player Card
   ============================================ */

body.one-pager-body {
    margin: 0;
    padding: 2rem 1rem;
    background: #f4f4f4;
    font-family: Arial, sans-serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
}

.op-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
    width: 100%;
    max-width: 760px;
    overflow: hidden;
    page-break-inside: avoid;
}

.op-banner {
    background: linear-gradient(135deg, #1a1a2e 0%, #f97316 100%);
    color: #fff;
    padding: 1.5rem 1.75rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.op-banner-main {
    flex: 1;
}

.op-player-name {
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: 0.5px;
    line-height: 1.1;
}

.op-player-meta {
    font-size: 0.875rem;
    opacity: 0.85;
    margin-top: 0.25rem;
}

.op-pills {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.op-pill {
    background: rgba(255, 255, 255, 0.2);
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
}

.op-offers-badge {
    background: #f97316;
    color: #fff;
    font-weight: 700;
    font-size: 0.875rem;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    white-space: nowrap;
    align-self: flex-start;
    margin-top: 0.25rem;
    border: 2px solid rgba(255, 255, 255, 0.35);
}

.op-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-top: 1px solid #f0f0f0;
}

.op-stats {
    padding: 1.25rem 1.5rem;
    border-right: 1px solid #f0f0f0;
}

.op-scouting {
    padding: 1.25rem 1.5rem;
}

.op-section-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #999;
    letter-spacing: 0.8px;
    margin-bottom: 0.5rem;
}

.op-section-label--sub {
    margin-top: 1rem;
}

.op-stat-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

.op-stat-block {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 0.6rem 0.25rem;
    text-align: center;
}

.op-stat-value {
    font-size: 1.5rem;
    font-weight: 800;
    color: #1a1a2e;
    line-height: 1;
}

.op-stat-row--small .op-stat-block {
    padding: 0.4rem 0.25rem;
}

.op-stat-value--small {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1;
}

.op-stat-label {
    font-size: 0.65rem;
    color: #888;
    margin-top: 0.2rem;
}

.op-no-stats {
    color: #888;
    font-size: 0.875rem;
    margin: 0;
}

.op-scouting-text {
    font-size: 0.85rem;
    color: #444;
    line-height: 1.6;
    margin: 0;
}

.op-video-link {
    display: block;
    font-size: 0.8rem;
    color: #f97316;
    word-break: break-all;
    text-decoration: none;
}

.op-video-link:hover {
    text-decoration: underline;
}

.op-footer {
    border-top: 1px solid #f0f0f0;
    padding: 0.6rem 1.5rem;
    font-size: 0.75rem;
    color: #999;
    text-align: right;
    background: #fafafa;
}

.op-print-btn {
    margin-top: 1.5rem;
    background: #f97316;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.7rem 1.75rem;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
}

.op-print-btn:hover {
    background: #e06620;
}

.cd-share-btn {
    padding: 0.4rem 0.75rem;
    background: #f97316;
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--portal-transition);
    white-space: nowrap;
}

.cd-share-btn:hover {
    background: #e06620;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(249, 115, 22, 0.3);
}

.cd-share-btn:active {
    transform: translateY(0);
}

.cd-share-btn:disabled {
    background: #28a745;
    cursor: default;
    transform: none;
    box-shadow: none;
}

@media print {
    body.one-pager-body {
        background: #fff;
        padding: 0;
    }
    .op-print-btn {
        display: none;
    }
    .op-card {
        box-shadow: none;
        border-radius: 0;
        border: none;
        max-width: 100%;
    }
    @page {
        size: letter;
        margin: 0.5in;
    }
}

@media (max-width: 600px) {
    .op-body {
        grid-template-columns: 1fr;
    }
    .op-stats {
        border-right: none;
        border-bottom: 1px solid #f0f0f0;
    }
}

/* =========================================================================
   MESSAGING — v3.17.0
   ========================================================================= */

/* Profile inline panel */
.msg-inline-panel {
    margin-top: 1rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 1rem;
    max-width: 600px;
}
.msg-inline-header {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--portal-primary, #1e3a5f);
    margin-bottom: 0.75rem;
}
.msg-inline-thread {
    min-height: 80px;
    max-height: 240px;
    overflow-y: auto;
    margin-bottom: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Dashboard pane */
.msg-pane-wrapper {
    display: flex;
    flex-direction: column;
    border-radius: var(--rd-radius, 8px);
    overflow: hidden;
    border: 1px solid rgba(255,116,38,0.35);
    border-top: 3px solid var(--rd-accent, #ff7426);
    box-shadow: 0 4px 20px rgba(0,0,0,0.12), 0 1px 6px rgba(255,116,38,0.1);
    margin-bottom: 1.5rem;
}
.msg-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.7rem 1rem;
    background: linear-gradient(135deg, var(--rd-dark, #0f0f0f) 0%, #1a1a1a 100%);
    border-bottom: 2px solid var(--rd-accent, #ff7426);
    flex-shrink: 0;
}
.msg-panel-title {
    font-size: 0.92rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.msg-panel-close {
    background: none;
    border: none;
    color: rgba(255,255,255,0.6);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.1rem 0.45rem;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
}
.msg-panel-close:hover {
    color: #fff;
    background: rgba(255,116,38,0.25);
}
.msg-pane {
    display: flex;
    gap: 0;
    overflow: hidden;
    min-height: 360px;
    max-height: 520px;
    background: #fff;
}
.msg-thread-list {
    width: 38%;
    min-width: 200px;
    border-right: 1px solid #e5e7eb;
    overflow-y: auto;
    flex-shrink: 0;
    background: #f5f6f8;
}
.msg-thread-view {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
}
.msg-thread-messages {
    flex: 1;
    overflow-y: auto;
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Thread list rows */
.msg-thread-row {
    padding: 0.65rem 0.85rem;
    cursor: pointer;
    border-bottom: 1px solid #eaecef;
    border-left: 3px solid transparent;
    transition: background 0.15s, border-left-color 0.15s;
}
.msg-thread-row:hover { background: #eef0f3; }
.msg-thread-row--active {
    background: #fff3ea;
    border-left-color: var(--rd-accent, #ff7426);
}
.msg-thread-row--unread .msg-thread-player { font-weight: 700; }
.msg-thread-player {
    font-size: 0.88rem;
    color: var(--portal-primary, #1e3a5f);
    font-weight: 600;
}
.msg-thread-meta {
    font-size: 0.78rem;
    color: #6b7280;
    margin-top: 0.1rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.msg-thread-preview {
    font-size: 0.76rem;
    color: #9ca3af;
    margin-top: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Unread dot */
.msg-unread-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    background: #f97316;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Tab badge */
.msg-tab-badge {
    display: inline-block;
    background: #f97316;
    color: #fff;
    border-radius: 10px;
    padding: 1px 7px;
    font-size: 0.72rem;
    font-weight: 700;
    margin-left: 4px;
}

/* Injected tab strip (fallback when dashboard has no tab nav) */
.rd-msg-tab-strip,
.cd-msg-tab-strip {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.rd-msg-tab-btn,
.cd-msg-tab-btn {
    padding: 0.45rem 1rem;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    color: var(--portal-primary, #1e3a5f);
    transition: background 0.15s;
}
.rd-msg-tab-btn:hover,
.cd-msg-tab-btn:hover { background: #e5e7eb; }

/* Message bubbles */
.msg-bubble {
    max-width: 75%;
    padding: 0.5rem 0.75rem;
    border-radius: 12px;
    font-size: 0.85rem;
    line-height: 1.4;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.msg-bubble--sent {
    background: rgba(255,116,38,0.1);
    border: 1px solid rgba(255,116,38,0.35);
    align-self: flex-end;
}
.msg-bubble--received {
    background: #f0f1f4;
    border: 1px solid #e5e7eb;
    align-self: flex-start;
}
.msg-bubble-sender {
    font-size: 0.72rem;
    font-weight: 700;
    color: #6b7280;
}
.msg-bubble-body { color: #111827; }

/* Compose area */
.msg-inline-compose {
    display: flex;
    gap: 0.5rem;
    align-items: flex-end;
    padding: 0.75rem;
    border-top: 1px solid #e5e7eb;
    background: #fafafa;
    flex-shrink: 0;
}
.msg-compose-input {
    flex: 1;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    resize: none;
    font-family: inherit;
    background: #fff;
}
.msg-compose-input:focus {
    outline: none;
    border-color: #f97316;
    box-shadow: 0 0 0 2px rgba(249,115,22,0.15);
}
.msg-send-btn {
    padding: 0.5rem 1rem;
    background: #f97316;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}
.msg-send-btn:hover { background: #ea6c0e; }
.msg-send-btn:disabled { background: #d1d5db; cursor: default; }

/* Profile message button */
.msg-profile-btn {
    margin-left: 0.5rem;
}

/* State messages */
.msg-loading, .msg-empty, .msg-error {
    padding: 1rem;
    font-size: 0.85rem;
    color: #6b7280;
    text-align: center;
}
.msg-error { color: #dc2626; }

@media (max-width: 600px) {
    .msg-pane { flex-direction: column; max-height: none; }
    .msg-thread-list { width: 100%; border-right: none; border-bottom: 1px solid #e5e7eb; max-height: 180px; }
}

/* =============================================================================
   COACH VERIFIED BADGE (Ramsay #8)
   Green checkmark surfaced next to coach names that have completed email
   verification AND admin approval.
   ============================================================================= */
.pc-coach-verified-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-left: 6px;
    border-radius: 50%;
    background: #16a34a;
    color: #fff;
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
    vertical-align: baseline;
    cursor: help;
    box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.12);
}
.pc-coach-verified-badge--lg {
    width: 20px;
    height: 20px;
    font-size: 12px;
    margin-left: 8px;
}

/* =============================================================================
   NCAA RECRUITING PERIOD BANNER (Ramsay #7)
   Appears at the top of both dashboards when a dead, quiet, or evaluation
   period is active. No banner during contact periods.
   ============================================================================= */
.ncaa-period-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    margin: 0;
    font-size: 13px;
    line-height: 1.4;
    border-bottom: 1px solid transparent;
}
.ncaa-period-banner--dead {
    background: #fef2f2;
    border-color: #fecaca;
    color: #7f1d1d;
}
.ncaa-period-banner--quiet {
    background: #fffbeb;
    border-color: #fde68a;
    color: #78350f;
}
.ncaa-period-banner--evaluation {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1e3a5f;
}
.ncaa-banner-icon {
    font-size: 18px;
    flex-shrink: 0;
}
.ncaa-banner-body {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    align-items: baseline;
}
.ncaa-banner-label {
    font-weight: 700;
    white-space: nowrap;
}
.ncaa-banner-msg {
    opacity: 0.9;
}
.ncaa-banner-link {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 600;
    text-decoration: underline;
    opacity: 0.75;
    white-space: nowrap;
}
.ncaa-period-banner--dead   .ncaa-banner-link { color: #7f1d1d; }
.ncaa-period-banner--quiet  .ncaa-banner-link { color: #78350f; }
.ncaa-period-banner--evaluation .ncaa-banner-link { color: #1e3a5f; }
@media (max-width: 600px) {
    .ncaa-period-banner { flex-wrap: wrap; }
    .ncaa-banner-link { margin-top: 4px; }
}
