/* Player profile snapshot and the dedicated Player Data Room. */
.player-stats-snapshot,
.player-data-room {
    --player-orange: var(--site-primary, #f56600);
    --player-purple: var(--site-secondary, #522d80);
    --player-ink: var(--color-text, #172434);
    --player-muted: var(--color-text-secondary, #586675);
    --player-surface: var(--color-bg-surface, #fff);
    --player-soft: var(--color-bg-light, #f4f6f8);
    --player-border: var(--color-border, #d8dee5);
    color: var(--player-ink);
    font-size: max(12px, 1rem);
}

.player-stats-snapshot {
    margin: 14px 0 18px;
    overflow: hidden;
    border: 1px solid var(--player-border);
    border-radius: 10px;
    background: var(--player-surface);
    box-shadow: 0 8px 22px rgba(23, 36, 52, .08);
}

.player-stats-snapshot__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    color: #fff;
    background: var(--player-orange);
}

.player-stats-snapshot__eyebrow,
.player-data-room__eyebrow,
.player-data-room__section-head span,
.player-chart-card__kicker,
.advanced-player-metrics__group {
    display: block;
    margin-bottom: 2px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.player-stats-snapshot__head h2,
.player-data-room h1,
.player-data-room h2,
.player-data-room h3,
.player-stats-snapshot dd,
.player-overview-grid dd {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
}
.player-kicking-context {
    margin: 0 0 25px;
    padding: 16px 18px;
    border-left: 4px solid var(--player-orange);
    border-radius: 8px;
    background: var(--player-soft);
}
.player-kicking-context__head span {
    display: block;
    margin-bottom: 2px;
    color: var(--player-orange);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.player-kicking-context__head h3 { margin: 0; font-size: 20px; }
.player-kicking-context__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 13px 0 0;
}
.player-kicking-context__metrics > div {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--player-border);
    border-radius: 7px;
    background: var(--player-surface);
}
.player-kicking-context__metrics dt { color: var(--player-muted); font-weight: 800; }
.player-kicking-context__metrics dd { margin: 5px 0 0; color: var(--player-ink); font: 700 25px Georgia, "Times New Roman", serif; }
.player-kicking-context__metrics small { margin-left: 4px; font: 400 12px Arial, sans-serif; }
.player-kicking-context__metrics p { margin: 8px 0 4px; color: var(--player-muted); }
.player-kicking-context__metrics span { color: var(--player-muted); font-size: 12px; }

.player-stats-snapshot__head h2 { color: #fff; font-size: clamp(19px, 2vw, 24px); }
.player-stats-snapshot__cta {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid rgba(255,255,255,.82);
    border-radius: 999px;
    color: #fff !important;
    font-weight: 800;
    text-decoration: none !important;
    white-space: nowrap;
}
.player-stats-snapshot__cta:hover,
.player-stats-snapshot__cta:focus-visible { background: #fff; color: #ad4100 !important; }

.player-stats-snapshot__grid,
.player-overview-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: 0;
    padding: 0;
}
.player-stats-snapshot__item,
.player-overview-grid > div {
    min-width: 0;
    padding: 15px 10px;
    text-align: center;
    border-right: 1px solid var(--player-border);
}
.player-stats-snapshot__item:last-child,
.player-overview-grid > div:last-child { border-right: 0; }
.player-stats-snapshot dt,
.player-overview-grid dt {
    color: var(--player-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.player-stats-snapshot dd,
.player-overview-grid dd {
    margin: 4px 0 0;
    color: var(--player-ink);
    font-size: clamp(18px, 2vw, 25px);
    font-weight: 700;
    line-height: 1.1;
}

.player-data-room {
    width: min(100%, 1500px);
    margin: 16px auto 34px;
}
.player-data-room__hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    min-height: 190px;
    padding: 26px 30px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 82% 22%, rgba(245,102,0,.35), transparent 28%),
        linear-gradient(122deg, #172633, #243746 64%, #192733);
    border-radius: 15px 15px 0 0;
}
.player-data-room__hero::after {
    content: "";
    position: absolute;
    right: -45px;
    bottom: -85px;
    width: 260px;
    height: 260px;
    border: 30px solid rgba(255,255,255,.055);
    border-radius: 50%;
}
.player-data-room__identity { position: relative; z-index: 1; display: flex; align-items: center; gap: 22px; }
.player-data-room__portrait {
    display: grid;
    flex: 0 0 104px;
    width: 104px;
    height: 104px;
    overflow: hidden;
    place-items: center;
    border: 3px solid rgba(255,255,255,.85);
    border-radius: 50%;
    background: rgba(255,255,255,.09);
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.player-data-room__portrait img { width: 100%; height: 100%; object-fit: cover; }
.player-data-room__portrait .material-icons { font-size: 52px; }
.player-data-room__eyebrow { color: #ffb47c; }
.player-data-room__hero h1 { color: #fff; font-size: clamp(27px, 4vw, 48px); line-height: 1.05; }
.player-data-room__hero p { margin: 8px 0 0; color: rgba(255,255,255,.8); font-size: 15px; }
.player-data-room__back {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 15px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 999px;
    color: #fff !important;
    font-weight: 800;
    text-decoration: none !important;
    white-space: nowrap;
}
.player-data-room__back:hover,
.player-data-room__back:focus-visible { background: #fff; color: #172633 !important; }

.player-data-room__tabs {
    position: sticky;
    z-index: 15;
    top: 0;
    display: flex;
    gap: 7px;
    padding: 11px 14px;
    overflow-x: auto;
    border: 1px solid var(--player-border);
    border-top: 0;
    background: var(--player-surface);
    scrollbar-width: thin;
}
.player-data-room__tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    padding: 0 17px;
    border: 1px solid var(--player-border);
    border-radius: 999px;
    color: var(--player-ink) !important;
    background: var(--player-soft);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
    white-space: nowrap;
}
.player-data-room__tabs a:hover { border-color: var(--player-orange); }
.player-data-room__tabs a[aria-selected="true"] {
    border-color: var(--player-orange);
    color: #fff !important;
    background: var(--player-orange);
    box-shadow: 0 4px 12px rgba(245,102,0,.25);
}
.player-data-room__tabs a[aria-selected="true"] .material-icons { color: #fff !important; }
.player-data-room__tabs .material-icons {
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    overflow: hidden;
    font-size: 18px;
    line-height: 18px;
}
/* The URL fragment is unavailable to server rendering.  This applies the
   intended tab before the body can first paint; football-player-stats.js
   removes the marker as soon as it owns the interactive tab state. */
html[data-player-stats-initial-tab] .player-data-room__tabs a[aria-selected="true"] {
    border-color: var(--player-border);
    color: var(--player-ink) !important;
    background: var(--player-soft);
    box-shadow: none;
}
html[data-player-stats-initial-tab] .player-data-room__tabs a[aria-selected="true"] .material-icons {
    color: var(--player-orange) !important;
}
html[data-player-stats-initial-tab="overview"] .player-data-room__tabs [data-stats-tab="overview"],
html[data-player-stats-initial-tab="season-stats"] .player-data-room__tabs [data-stats-tab="season-stats"],
html[data-player-stats-initial-tab="game-log"] .player-data-room__tabs [data-stats-tab="game-log"],
html[data-player-stats-initial-tab="advanced"] .player-data-room__tabs [data-stats-tab="advanced"] {
    border-color: var(--player-orange);
    color: #fff !important;
    background: var(--player-orange);
    box-shadow: 0 4px 12px rgba(245,102,0,.25);
}
html[data-player-stats-initial-tab] .player-data-room [data-stats-panel] { display: none; }
html[data-player-stats-initial-tab="overview"] .player-data-room [data-stats-panel="overview"],
html[data-player-stats-initial-tab="season-stats"] .player-data-room [data-stats-panel="season-stats"],
html[data-player-stats-initial-tab="game-log"] .player-data-room [data-stats-panel="game-log"],
html[data-player-stats-initial-tab="advanced"] .player-data-room [data-stats-panel="advanced"] { display: block; }
.player-data-room.is-enhanced [data-stats-panel][hidden] { display: none; }
.player-data-room__panels { border: 1px solid var(--player-border); border-top: 0; background: var(--player-surface); }
.player-data-room__panel { padding: clamp(18px, 3vw, 34px); outline: none; }
.player-data-room__section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    padding-bottom: 11px;
    border-bottom: 2px solid var(--player-orange);
}
.player-data-room__section-head span,
.player-chart-card__kicker { color: var(--player-orange); }
.player-data-room__section-head h2 { font-size: clamp(22px, 3vw, 31px); }
.player-data-room__section-head strong { color: var(--player-muted); }

.player-overview-grid {
    margin-bottom: 25px;
    overflow: hidden;
    border: 1px solid var(--player-border);
    border-radius: 10px;
    background: var(--player-soft);
}
.player-data-room__notice,
.player-data-room__empty { padding: 28px; text-align: center; color: var(--player-muted); }
.player-data-room__empty { border: 1px solid var(--player-border); background: var(--player-surface); }
.player-data-room__empty .material-icons { color: var(--player-orange); font-size: 48px; }

.player-chart-card {
    margin: 22px 0;
    padding: 18px;
    border: 1px solid var(--player-border);
    border-radius: 12px;
    background: var(--player-soft);
}
.player-chart-card--nested { margin: 18px 0 0; }
.player-chart-card > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 8px;
}
.player-chart-card h3 { font-size: 21px; }
.player-chart-card label,
.advanced-player-metrics__controls label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--player-muted);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}
.player-chart-card__controls,
.advanced-player-metrics__controls { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.player-chart-card__metric-picker { display: inline-flex; align-items: center; gap: 7px; }
.player-chart-card__next-metric {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--player-orange);
    border-radius: 50%;
    color: #fff !important;
    background: var(--player-orange);
    cursor: pointer;
}
.player-chart-card__next-metric:hover,
.player-chart-card__next-metric:focus-visible { color: var(--player-orange) !important; background: var(--player-surface); }
.player-chart-card__next-metric .material-icons { color: currentColor !important; font-size: 19px; }
.player-chart-card select,
.advanced-player-metrics select {
    box-sizing: border-box;
    min-height: 38px;
    padding: 0 32px 0 12px;
    border: 1px solid var(--player-border);
    border-radius: 999px;
    color: var(--player-ink);
    background: var(--player-surface);
    font-size: 13px;
}
.player-chart-card__canvas { width: 100%; height: 340px; }
.player-chart-card__canvas--short { height: 280px; }
.player-chart-card__summary { min-height: 20px; margin: 4px 0 0; color: var(--player-muted); }

.player-season-comparison {
    display: grid;
    grid-template-columns: minmax(150px, .55fr) minmax(0, 2fr);
    gap: 18px;
    margin: 0 0 24px;
    padding: 18px;
    border-left: 5px solid var(--player-orange);
    border-radius: 8px;
    background: var(--player-soft);
}
.player-season-comparison > div > span { color: var(--player-orange); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.player-season-comparison__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.player-season-comparison__item { padding: 10px; border: 1px solid var(--player-border); border-radius: 7px; background: var(--player-surface); }
.player-season-comparison__item span { display: block; color: var(--player-muted); font-size: 12px; font-weight: 800; }
.player-season-comparison__item strong { display: block; margin-top: 3px; font: 700 17px Georgia, serif; }
.player-season-comparison__change { margin-left: 5px; font: 800 12px Arial, sans-serif; }
.is-positive { color: #19743b !important; }
.is-negative { color: #b22924 !important; }

.player-stat-table { margin: 0 0 25px; }
.player-stat-table h3 { margin-bottom: 8px; font-size: 19px; }
.player-stat-table__scroll {
    max-width: 100%;
    overflow: auto;
    border: 1px solid var(--player-border);
    border-radius: 7px;
    scrollbar-color: #6d7781 #e8ebee;
    scrollbar-width: auto;
}
.player-stat-table__scroll.is-draggable { cursor: grab; }
.player-stat-table__scroll.is-dragging { cursor: grabbing; user-select: none; }
.player-stat-table table { width: 100%; min-width: 690px; border-collapse: separate; border-spacing: 0; table-layout: auto; }
.player-stat-table th,
.player-stat-table td,
.player-game-log th,
.player-game-log td { padding: 10px 9px; border-bottom: 1px solid var(--player-border); text-align: right; white-space: nowrap; }
.player-stat-table th:first-child,
.player-stat-table td:first-child,
.player-game-log th:nth-child(-n+3),
.player-game-log td:nth-child(-n+3) { text-align: left; }
.player-stat-table thead th,
.player-game-log thead th {
    position: sticky;
    z-index: 3;
    top: 0;
    color: var(--player-muted);
    background: var(--player-soft);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.player-stat-table tfoot td,
.player-game-log tfoot td {
    position: sticky;
    z-index: 2;
    bottom: 0;
    border-top: 2px solid var(--player-orange);
    border-bottom: 0;
    background: #fff6ef;
    font-weight: 800;
}
.player-game-log { max-height: 560px; }
.player-game-log table { min-width: 1100px; width: max-content; }
.player-game-log a { color: var(--player-purple); font-weight: 700; text-decoration: none; }
.player-game-log a:hover,
.player-game-log a:focus-visible { text-decoration: underline; }
.player-data-room__archive { margin-top: 15px; padding: 14px; border: 1px solid var(--player-border); border-radius: 8px; }
.player-data-room__archive summary,
.advanced-player-metrics summary { cursor: pointer; font-weight: 800; }

.advanced-player-metrics { overflow: hidden; border: 1px solid var(--player-border); border-radius: 11px; }
.advanced-player-metrics__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    color: #fff;
    background: var(--player-orange);
}
.advanced-player-metrics__head h3 { color: #fff; font-size: 21px; }
.advanced-player-metrics__controls label { color: #fff; }
.advanced-player-metrics__body { padding: 17px; }
.advanced-player-metrics__highlights,
.advanced-player-metrics__all { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.advanced-player-metrics__card,
.advanced-player-metrics__detail {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--player-border);
    border-left: 4px solid var(--player-orange);
    border-radius: 7px;
    background: var(--player-soft);
}
.advanced-player-metrics [data-advanced-row][hidden] { display: none !important; }
.advanced-player-metrics__group { color: var(--player-muted); }
.advanced-player-metrics__label { margin-bottom: 4px; }
.advanced-player-metrics__value,
.advanced-player-metrics__detail > strong { color: var(--player-ink); font: 700 27px Georgia, serif; }
.advanced-player-metrics small { margin-left: 4px; font: 400 12px Arial, sans-serif; }
.advanced-player-metrics__context { margin-top: 5px; color: var(--player-muted); }
.advanced-player-metrics__comparison {
    align-self: flex-start;
    margin-top: 8px;
    padding: 4px 8px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}
.advanced-player-metrics__warning { margin-top: 8px; color: #985c00; font-size: 12px; font-weight: 700; }
.advanced-player-metrics__guide { margin: 0 0 14px; padding: 0 0 13px; border-bottom: 1px solid var(--player-border); }
.advanced-player-metrics__details {
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid var(--player-border);
    border-radius: 8px;
    background: var(--player-soft);
}
.advanced-player-metrics__details > summary {
    position: relative;
    display: block;
    padding: 13px 48px 13px 15px;
    cursor: pointer;
    list-style: none;
}
.advanced-player-metrics__details > summary::-webkit-details-marker { display: none; }
.advanced-player-metrics__details > summary::after {
    position: absolute;
    top: 50%;
    right: 16px;
    color: var(--player-orange);
    content: "+";
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    transform: translateY(-50%);
}
.advanced-player-metrics__details[open] > summary { border-bottom: 1px solid var(--player-border); }
.advanced-player-metrics__details[open] > summary::after { content: "-"; }
.advanced-player-metrics__details-title { display: block; color: var(--player-ink); font-weight: 800; }
.advanced-player-metrics__details-copy { display: block; margin-top: 3px; color: var(--player-muted); font-size: 13px; }
.advanced-player-metrics__guide-body dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.advanced-player-metrics__guide-body dl > div { padding: 11px; border-radius: 7px; background: var(--player-soft); }
.advanced-player-metrics__guide-body dt { font-weight: 800; }
.advanced-player-metrics__guide-body dd { margin: 4px 0 0; color: var(--player-muted); }
.advanced-player-metrics__all { margin: 0; padding: 13px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.advanced-player-metrics__detail > p { margin: 8px 0 4px; color: var(--player-muted); }

@media (prefers-reduced-motion: no-preference) {
    .player-data-room__tabs a,
    .player-stats-snapshot__cta,
    .player-data-room__back { transition: color .16s ease, background .16s ease, border-color .16s ease, transform .16s ease; }
    .player-data-room__tabs a:hover { transform: translateY(-1px); }
}

@media (max-width: 880px) {
    .player-stats-snapshot__grid,
    .player-overview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .player-stats-snapshot__item:nth-child(3),
    .player-overview-grid > div:nth-child(3) { border-right: 0; }
    .player-stats-snapshot__item:nth-child(-n+3),
    .player-overview-grid > div:nth-child(-n+3) { border-bottom: 1px solid var(--player-border); }
    .player-data-room__hero { align-items: flex-start; flex-direction: column; }
    .player-data-room__back { align-self: flex-end; }
    .player-season-comparison { grid-template-columns: 1fr; }
    .advanced-player-metrics__head,
    .player-chart-card > header { align-items: flex-start; flex-direction: column; }
    .advanced-player-metrics__highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .player-stats-snapshot__head { align-items: flex-start; flex-direction: column; }
    .player-stats-snapshot__cta { width: 100%; justify-content: center; }
    .player-stats-snapshot__grid,
    .player-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .player-stats-snapshot__item:nth-child(3),
    .player-overview-grid > div:nth-child(3) { border-right: 1px solid var(--player-border); }
    .player-stats-snapshot__item:nth-child(2n),
    .player-overview-grid > div:nth-child(2n) { border-right: 0; }
    .player-stats-snapshot__item,
    .player-overview-grid > div { border-bottom: 1px solid var(--player-border); }
    .player-data-room__hero { padding: 22px 17px; }
    .player-data-room__identity { align-items: flex-start; }
    .player-data-room__portrait { flex-basis: 76px; width: 76px; height: 76px; }
    .player-data-room__hero h1 { font-size: 27px; }
    .player-data-room__panel { padding: 17px 12px; }
    .player-chart-card__metric-picker { width: 100%; }
    .player-chart-card__metric-picker label { flex: 1 1 auto; min-width: 0; }
    .player-chart-card__metric-picker select { width: 100%; min-width: 0; }
    .player-season-comparison__grid,
    .player-kicking-context__metrics,
    .advanced-player-metrics__highlights,
    .advanced-player-metrics__all,
    .advanced-player-metrics__guide-body dl { grid-template-columns: 1fr; }
    .player-chart-card__canvas { height: 290px; }
}

/* Explicit dark-mode contrast. Never use site purple for text on dark surfaces. */
[data-theme="dark"] .player-stats-snapshot,
[data-theme="dark"] .player-data-room,
.dark-mode .player-stats-snapshot,
.dark-mode .player-data-room,
body.dark .player-stats-snapshot,
body.dark .player-data-room {
    --player-ink: var(--dm-text-primary, #f2ede6);
    --player-muted: var(--dm-text-secondary, #c7beb4);
    --player-surface: var(--dm-bg-surface, #121a20);
    --player-soft: var(--dm-bg-elevated, #19242c);
    --player-border: var(--dm-border, #3a4852);
}
/* Controls sit on elevated purple cards in the Data Room.  Use a charcoal
   inset field, not another purple pill, so a select is unmistakably interactive. */
[data-theme="dark"] .player-chart-card select,
[data-theme="dark"] .advanced-player-metrics select,
.dark-mode .player-chart-card select,
.dark-mode .advanced-player-metrics select,
body.dark .player-chart-card select,
body.dark .advanced-player-metrics select {
    border: 2px solid #9aaeba;
    color: var(--dm-text-primary, #f2ede6);
    background-color: #0e171d;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 2px 4px rgba(0,0,0,.32);
    color-scheme: dark;
}
[data-theme="dark"] .player-chart-card select:focus-visible,
[data-theme="dark"] .advanced-player-metrics select:focus-visible,
.dark-mode .player-chart-card select:focus-visible,
.dark-mode .advanced-player-metrics select:focus-visible,
body.dark .player-chart-card select:focus-visible,
body.dark .advanced-player-metrics select:focus-visible {
    outline: 2px solid var(--player-orange);
    outline-offset: 2px;
}
[data-theme="dark"] .player-game-log a,
.dark-mode .player-game-log a,
body.dark .player-game-log a { color: var(--dm-text-primary, #f2ede6); }
[data-theme="dark"] .player-stat-table tfoot td,
[data-theme="dark"] .player-game-log tfoot td,
.dark-mode .player-stat-table tfoot td,
.dark-mode .player-game-log tfoot td,
body.dark .player-stat-table tfoot td,
body.dark .player-game-log tfoot td { color: var(--dm-text-primary, #f2ede6); background: #2a211b; }
[data-theme="dark"] .is-positive,
.dark-mode .is-positive,
body.dark .is-positive { color: #79d89a !important; }
[data-theme="dark"] .is-negative,
.dark-mode .is-negative,
body.dark .is-negative { color: #ff8d88 !important; }
