.preseason-page {
    min-height: 100vh;
    width: 100%;
    background: #f8f9fa;
    color: #243447;
}

.preseason-player-eyebrow {
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.preseason-filter-card,
.preseason-player-filter {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 10px;
    box-shadow: none;
}

.preseason-chart-card {
    border: 0;
    border-radius: 14px;
    box-shadow: 0 4px 18px rgba(30, 61, 89, .08);
}

.preseason-control-label {
    display: block;
    color: #1e3d59;
    font-size: .74rem;
    font-weight: 700;
    margin-bottom: .45rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.preseason-freshness {
    align-items: center;
    background: #f1f7f5;
    border-radius: 8px;
    color: #2a6f62;
    display: flex;
    font-size: .82rem;
    font-weight: 600;
    min-height: 40px;
    padding: 0 12px;
}

.preseason-slider-label,
.preseason-player-selector-title {
    color: #1e3d59;
    font-size: .78rem;
    font-weight: 700;
}

.preseason-slider-label i,
.preseason-player-selector-title i {
    color: #f05a28;
}

.preseason-date-slider {
    margin: 12px 8px 2px;
}

.preseason-player-selector-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
}

.preseason-player-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    justify-content: center;
}

.preseason-player-choice {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 10px;
    color: #495057;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    min-width: 62px;
    padding: 6px 4px;
    transition: all .15s ease;
}

.preseason-player-choice:hover {
    background: white;
    border-color: #dee2e6;
}

.preseason-player-choice-active {
    background: white;
    border-color: #d6ad24;
    box-shadow: 0 2px 7px rgba(214, 173, 36, .22);
}

.preseason-player-thumb {
    border: 2px solid #dee2e6;
    border-radius: 50%;
    height: 48px;
    object-fit: cover;
    width: 48px;
}

.preseason-player-choice-active .preseason-player-thumb { border-color: #d6ad24; }

.preseason-player-choice-active .preseason-player-thumb-name { color: #8a6b00; }

.preseason-player-filter .form-check-input:checked {
    background-color: #1e3d59;
    border-color: #1e3d59;
}

.preseason-player-thumb-name {
    font-size: 9px;
    font-weight: 600;
    line-height: 1.1;
    margin-top: 4px;
    max-width: 56px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.preseason-tabs {
    background: white;
    border-bottom: 1px solid #e9ecef;
    border-radius: 15px 15px 0 0;
    display: flex;
    overflow: hidden;
}

.preseason-tab-content {
    background: white;
    border-radius: 0 0 15px 15px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
    padding: 30px;
}

.preseason-panel {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.preseason-kpi-card {
    background: white;
    border: 1px solid #edf2f7;
    border-radius: 13px;
    height: 100%;
    min-height: 104px;
    padding: 17px;
    box-shadow: none;
}

.preseason-kpi-label {
    color: #64748b;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.preseason-kpi-subtitle {
    color: #94a3b8;
    font-size: .62rem;
    font-weight: 600;
    line-height: 1.25;
    margin-top: 3px;
}

.preseason-kpi-value-row {
    margin-top: 9px;
}

.preseason-kpi-value {
    color: #1e3d59;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 1.72rem;
    font-weight: 800;
    line-height: 1;
}

.preseason-kpi-unit {
    color: #64748b;
    font-size: .72rem;
    font-weight: 600;
    margin-left: 3px;
}

.preseason-kpi-note {
    color: #94a3b8;
    font-size: .63rem;
    margin-top: 5px;
}

.preseason-method-note {
    background: #f8f9fa;
    border-left: 3px solid #1e3d59;
    color: #526274;
    font-size: .75rem;
    padding: 10px 12px;
}

.preseason-section-title,
.preseason-card-title {
    color: #1e3d59;
    font-weight: 700;
    margin: 0;
}

.preseason-section-title { font-size: 1.35rem; }
.preseason-card-title { font-size: 1.08rem; }
.preseason-section-subtitle,
.preseason-chart-card .card-header small { color: #64748b; font-size: .75rem; }
.preseason-chart-card .card-header { background: white; border-bottom: 1px solid #edf2f7; padding: 15px 18px; }

.preseason-session-card-header {
    align-items: center;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.preseason-metric-select {
    flex: 0 0 330px;
    font-size: .82rem;
    min-width: 330px;
}

.preseason-map-card-header {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

.preseason-map-controls {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 7px;
}

.preseason-map-controls > div {
    background: #f5f7f9;
    border: 1px solid #e2e8ee;
    border-radius: 9px;
    padding: 5px 6px 6px;
}

.preseason-map-control-label {
    color: #64748b;
    display: block;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .04em;
    margin: 0 0 3px 2px;
    text-transform: uppercase;
}

.preseason-map-toggle {
    display: flex;
    flex: 0 0 auto;
}

.preseason-map-toggle .btn {
    font-size: .68rem;
    white-space: nowrap;
}

.preseason-map-toggle .btn.active {
    background: #1e3d59;
    border-color: #1e3d59;
    color: white;
}

.preseason-relative-warning {
    background: #fff8ed;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    color: #9a4b12;
    font-size: .68rem;
    line-height: 1.4;
    padding: 9px 10px;
}

.preseason-ranking-count {
    color: #6c757d;
    font-size: .68rem;
    margin-bottom: 10px;
}

.preseason-ranking-controls {
    align-items: flex-end;
    display: flex;
    gap: 18px;
    justify-content: flex-end;
    margin: 0;
    padding: 0;
}

.preseason-ranking-card-header {
    align-items: flex-end;
    display: flex;
    gap: 24px;
    justify-content: space-between;
}

.preseason-ranking-mode { display: flex; }

.preseason-ranking-mode .btn {
    font-size: .75rem;
    min-width: 130px;
    white-space: nowrap;
}

.preseason-ranking-mode .btn.active {
    background: #1e3d59;
    border-color: #1e3d59;
    color: white;
}

.preseason-ranking-min-sessions {
    font-size: .8rem;
    max-width: 150px;
    min-height: 32px;
}

.preseason-ranking-matrix-scroll {
    overflow-x: auto;
    padding-bottom: 5px;
}

.preseason-ranking-matrix { min-width: 1180px; }

.preseason-ranking-matrix-row {
    align-items: center;
    border-bottom: 1px solid #edf2f7;
    display: grid;
    grid-template-columns: 48px repeat(6, minmax(178px, 1fr));
    min-height: 58px;
}

.preseason-ranking-matrix-row:nth-child(even) { background: #fbfcfd; }

.preseason-ranking-matrix-head {
    background: #1e3d59;
    border-radius: 7px 7px 0 0;
    color: white;
    min-height: 44px;
    position: sticky;
    top: 0;
    z-index: 2;
}

.preseason-ranking-matrix-rank-header,
.preseason-ranking-matrix-header {
    font-size: .7rem;
    font-weight: 700;
    padding: 10px;
    text-align: center;
}

.preseason-ranking-matrix-position {
    align-items: center;
    border-radius: 50%;
    color: white;
    display: flex;
    font-size: .68rem;
    font-weight: 700;
    height: 24px;
    justify-content: center;
    margin: 0 auto;
    width: 24px;
}

.preseason-ranking-matrix-cell {
    align-items: center;
    align-self: stretch;
    cursor: pointer;
    display: flex;
    min-width: 0;
    padding: 7px 9px;
    transition: background-color .15s ease, box-shadow .15s ease;
}

.preseason-ranking-matrix-cell:hover { background: #f2f6f9; }

.preseason-ranking-player-selected {
    background: #fff8dc !important;
    box-shadow: inset 0 0 0 2px #d6ad24;
}

.preseason-ranking-player-selected .preseason-ranking-matrix-name,
.preseason-ranking-player-selected .preseason-ranking-matrix-value { color: #8a6b00; }

.preseason-ranking-matrix-photo {
    background: #f8f9fa;
    border: 2px solid #dee2e6;
    border-radius: 50%;
    flex: 0 0 36px;
    height: 36px;
    margin-right: 8px;
    object-fit: cover;
    width: 36px;
}

.preseason-ranking-matrix-player {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.preseason-ranking-matrix-name {
    color: #212529;
    font-size: .69rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.preseason-ranking-matrix-value {
    color: #1e3d59;
    font-size: .68rem;
    font-weight: 700;
    margin-right: 7px;
}

.preseason-ranking-matrix-sessions {
    color: #94a3b8;
    font-size: .58rem;
}

.preseason-player-header {
    align-items: center;
    background: linear-gradient(110deg, #1e3d59, #285b7c);
    border-radius: 14px;
    color: white;
    display: flex;
    justify-content: space-between;
    padding: 20px 24px;
}
.preseason-player-name { color: #d6ad24; font-size: 1.8rem; margin: .2rem 0; }
.preseason-player-status { color: rgba(255,255,255,.65); font-size: .72rem; }
.preseason-player-session-summary {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    min-width: 230px;
}
.preseason-player-session-main { align-items: baseline; display: flex; gap: 8px; }
.preseason-player-session-value {
    color: white;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 3.6rem;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: .9;
}
.preseason-player-session-label {
    color: rgba(255, 255, 255, .9);
    font-size: .86rem;
    font-weight: 700;
    text-transform: uppercase;
}
.preseason-player-session-note {
    color: rgba(255, 255, 255, .62);
    font-size: .66rem;
    margin-top: 5px;
}
.preseason-player-secondary-ranks { margin-top: 10px; }
.preseason-rank-pill { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; display: inline-block; font-size: .62rem; font-weight: 600; margin-left: 6px; padding: 5px 8px; }
.preseason-rank-pill-orange { background: rgba(240,90,40,.24); }

.preseason-player-chart-controls {
    align-items: center;
    display: flex;
    gap: 10px;
    width: 100%;
}

.preseason-player-weekly-card-header {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.preseason-player-weekly-card-header .preseason-player-metric-select {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

.preseason-player-metric-select {
    border-color: #1e3d59;
    color: #1e3d59;
    font-weight: 600;
}

.preseason-player-metric-select:focus {
    border-color: #2b8dc6;
    box-shadow: 0 0 0 .2rem rgba(43, 141, 198, .15);
}

.preseason-player-chart-mode .btn.active {
    background: #1e3d59;
    border-color: #1e3d59;
    color: white;
}

.preseason-player-chart-mode {
    flex: 0 0 270px;
}

.preseason-player-chart-mode .btn {
    flex: 1;
    min-width: 0;
}

@media (max-width: 1200px) {
    .preseason-session-card-header,
    .preseason-map-card-header {
        align-items: stretch;
        flex-direction: column;
    }

    .preseason-map-controls {
        align-items: stretch;
        flex-direction: column;
    }

    .preseason-player-chart-controls {
        align-items: center;
        flex-direction: row;
    }

    .preseason-player-chart-controls .preseason-metric-select {
        flex: 1 1 auto;
        min-width: 0;
        width: auto;
    }

    .preseason-player-chart-mode {
        display: flex;
        flex: 0 0 auto;
    }

    .preseason-map-toggle {
        width: 100%;
    }

    .preseason-map-toggle .btn {
        flex: 1;
    }
}

@media (max-width: 768px) {
    .preseason-tab-content { padding: 16px; }
    .preseason-session-card-header { align-items: stretch; flex-direction: column; }
    .preseason-metric-select { flex-basis: auto; min-width: 0; width: 100%; }
    .preseason-player-selector-header { align-items: flex-start; flex-direction: column; gap: 10px; }
    .preseason-map-card-header { align-items: stretch; flex-direction: column; }
    .preseason-map-controls { align-items: stretch; flex-direction: column; }
    .preseason-map-toggle { width: 100%; }
    .preseason-map-toggle .btn { flex: 1; }
    .preseason-ranking-controls { align-items: stretch; flex-direction: column; }
    .preseason-ranking-card-header { align-items: stretch; flex-direction: column; }
    .preseason-ranking-mode { width: 100%; }
    .preseason-ranking-mode .btn { flex: 1; min-width: 0; }
    .preseason-ranking-min-sessions { max-width: none; width: 100%; }
    .preseason-player-header { align-items: flex-start; flex-direction: column; gap: 16px; }
    .preseason-player-session-summary { align-items: flex-start; min-width: 0; }
    .preseason-rank-pill { margin: 0 6px 0 0; }
    .preseason-player-chart-controls { align-items: stretch; flex-direction: column; }
    .preseason-player-chart-mode { flex-basis: auto; width: 100%; }
}
