@import url("/css/responsive.css");

/* NFL Fantasy Mate - compact source attribution shared by public pages. */
.footer-note .data-source-link {
    color: var(--fm-gold, #f2c230);
    font-weight: 750;
    text-decoration: underline;
    text-decoration-color: rgba(242, 194, 48, .5);
    text-underline-offset: 2px;
}

.footer-note .data-source-link:hover {
    color: var(--fm-gold-soft, #ffe27a);
    text-decoration-color: currentColor;
}

.market-source-note {
    max-width: 760px;
    margin: 12px 0 0;
    color: #9fa6a9;
    font-size: .76rem;
    font-weight: 650;
    line-height: 1.55;
}

.market-source-note a {
    color: var(--fm-gold, #f2c230);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-color: rgba(242, 194, 48, .48);
    text-underline-offset: 2px;
}

.market-source-note a:hover {
    color: var(--fm-gold-soft, #ffe27a);
    text-decoration-color: currentColor;
}

.data-sources-section {
    scroll-margin-top: 104px;
}

.data-sources-heading {
    max-width: 800px;
}

.data-sources-heading h2 {
    margin: 0;
    font-size: clamp(2rem, 3.4vw, 3rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.data-sources-heading > p:last-child {
    max-width: 760px;
    margin: 1rem 0 0;
    color: #60666a;
    font-size: 1rem;
    line-height: 1.7;
}

.data-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 2.25rem;
}

.data-source-card {
    padding: 26px;
    background: #fff;
    border: 1px solid rgba(17, 19, 21, .12);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(17, 19, 21, .055);
}

.data-source-type {
    margin: 0 0 .55rem;
    color: #8c6900;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .11em;
}

.data-source-card h3 {
    margin: 0 0 1rem;
    font-size: 1.45rem;
    line-height: 1.15;
}

.data-source-card h3 a,
.data-source-detail a {
    color: #725800;
    text-decoration: underline;
    text-decoration-color: rgba(114, 88, 0, .35);
    text-underline-offset: 2px;
}

.data-source-card h3 a:hover,
.data-source-detail a:hover {
    color: #111315;
    text-decoration-color: currentColor;
}

.data-source-card > p:not(.data-source-type) {
    margin: 0 0 1rem;
    color: #60666a;
    font-size: .95rem;
    line-height: 1.72;
}

.data-source-card > p:last-child {
    margin-bottom: 0;
}

.data-source-detail {
    padding-top: .9rem;
    border-top: 1px solid rgba(17, 19, 21, .10);
    font-size: .84rem !important;
}

.data-sources-disclaimer {
    margin: 1.35rem 0 0;
    color: #737a7e;
    font-size: .78rem;
    line-height: 1.55;
}

@media (max-width: 760px) {
    .data-source-grid {
        grid-template-columns: 1fr;
    }

    .data-source-card {
        padding: 22px 20px;
    }
}


/* Global primary-navigation order. Kept here because this stylesheet is loaded by every public page. */
.primary-nav > a[href="/players/"] { order: 1; }
.primary-nav > a[href="/market/"] { order: 2; }
.primary-nav > a[href="/teams/"] { order: 3; }
.primary-nav > a[href="/coaching/"] { order: 4; }
.primary-nav > a[href="/signals/"] { order: 5; }
.primary-nav > a[href="/articles/"] { order: 6; }
.primary-nav > a[href="/podcast/"],
.primary-nav > span.nav-placeholder { order: 7; }
.primary-nav > a[href="/dynasty-edge/"] { order: 8; }
.primary-nav > a[href="/about/"] { order: 9; }


/* Market mobile table geometry.
   Desktop reserves 260px for Player. On a phone that consumes most of the
   visible table viewport even when the player name is short. Compact only the
   mobile identity column; the remaining metrics still scroll horizontally. */
@media (max-width: 760px) {
    .market-table th:first-child,
    .market-table td:first-child {
        width: 190px;
        min-width: 190px;
        max-width: 190px;
    }

    .market-player-link {
        max-width: 100%;
    }

    .market-player-link strong,
    .market-player-link span {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 420px) {
    .market-table th:first-child,
    .market-table td:first-child {
        width: 170px;
        min-width: 170px;
        max-width: 170px;
    }
}

/* Players Explorer mobile table geometry.
   The desktop analytical tables intentionally remain wide, but the first
   Player column should not consume most of a 390px viewport before the first
   metric becomes visible. This mirrors the Market mobile treatment. */
@media (max-width: 760px) {
    .players-page .player-table th:first-child,
    .players-page .player-table td:first-child,
    .players-page .historical-table th:first-child,
    .players-page .historical-table td:first-child {
        width: 185px;
        min-width: 185px;
        max-width: 185px;
    }

    .players-page .player-cell,
    .players-page .player-name,
    .players-page .player-meta {
        max-width: 100%;
    }

    .players-page .player-name {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        overflow-wrap: anywhere;
        line-height: 1.18;
    }

    .players-page .player-meta {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 420px) {
    .players-page .player-table th:first-child,
    .players-page .player-table td:first-child,
    .players-page .historical-table th:first-child,
    .players-page .historical-table td:first-child {
        width: 165px;
        min-width: 165px;
        max-width: 165px;
    }
}

/* Players Raw Metrics mobile table geometry.
   research-tables.css loads after this shared stylesheet, so the geometry
   declarations are intentionally important to keep the compact mobile
   identity column without changing the desktop research-table system. */
@media (max-width: 760px) {
    .players-page .player-raw-metrics-view .research-table th:first-child,
    .players-page .player-raw-metrics-view .research-table td:first-child {
        width: 185px !important;
        min-width: 185px !important;
        max-width: 185px !important;
        white-space: normal !important;
    }

    .players-page .player-raw-metrics-view .research-table th:nth-child(2),
    .players-page .player-raw-metrics-view .research-table td:nth-child(2) {
        width: 90px !important;
        min-width: 90px !important;
        max-width: 90px !important;
    }

    .players-page .player-raw-metrics-view .research-entity-link {
        white-space: normal;
        overflow-wrap: anywhere;
        line-height: 1.18;
    }
}

@media (max-width: 420px) {
    .players-page .player-raw-metrics-view .research-table th:first-child,
    .players-page .player-raw-metrics-view .research-table td:first-child {
        width: 165px !important;
        min-width: 165px !important;
        max-width: 165px !important;
    }

    .players-page .player-raw-metrics-view .research-table th:nth-child(2),
    .players-page .player-raw-metrics-view .research-table td:nth-child(2) {
        width: 82px !important;
        min-width: 82px !important;
        max-width: 82px !important;
    }
}

/* Coaching mobile table alignment.
   League Staff coach names are buttons, whose browser-default text alignment is
   centered. Explicit left alignment keeps wrapped names consistent with the
   left-aligned table headers and Team column. */
.coaching-page .coaching-table td {
    text-align: left;
}

.coaching-page .coaching-coach-link {
    text-align: left;
    line-height: 1.3;
}
