.player-profile { width: 100%; min-width: 0; max-width: 1248px; margin: 0 auto; padding: 24px 24px 40px; color: var(--text-primary); --pp-line: rgba(255,255,255,.09); --pp-surface: #191b1e; }
.player-profile a { color: var(--secondary-color); text-underline-offset: 3px; }
.player-profile h1, .player-profile h2, .player-profile h3, .player-profile p, .player-profile dl { margin: 0; }
.player-profile h1 { font-size: clamp(2rem, 4vw, 2.7rem); font-weight: 750; line-height: 1.12; letter-spacing: -.04em; }
.player-profile h2 { font-size: 1.35rem; font-weight: 650; letter-spacing: -.025em; }
.player-profile h3 { font-size: .95rem; font-weight: 600; }
.player-profile p { color: var(--text-secondary); line-height: 1.5; }
.player-profile abbr { text-decoration: none; }
.player-profile button, .player-profile select { font: inherit; }
.player-profile button { cursor: pointer; }
.player-profile :is(button, input, select, a):focus-visible { outline: 2px solid var(--secondary-color); outline-offset: 4px; }
.player-profile [hidden] { display: none !important; }
.pp-breadcrumb { display: flex; gap: 12px; font-size: .8rem; color: var(--text-secondary); margin-bottom: 24px; }
.pp-hero { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding: 8px 0 24px; }
.pp-identity { display: flex; align-items: center; gap: 24px; min-width: 0; }
.pp-portrait { width: 150px; height: 142px; flex-shrink: 0; overflow: hidden; border-bottom: 2px solid var(--primary-color); background: linear-gradient(0deg, rgba(59,130,246,.1), transparent 80%); border-radius: 8px 8px 0 0; }
.pp-portrait img { width: 182px; height: 133px; max-width: none; object-fit: contain; margin: 9px 0 0 -16px; }
.player-profile .pp-eyebrow { display: block; color: var(--text-secondary); font-size: .68rem; font-weight: 650; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 8px; }
.player-profile .pp-player-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: .9rem; margin-top: 10px; }
.player-profile .pp-updated { margin-top: 12px; font-size: .72rem; color: var(--text-muted); }
.pp-next-game { border-left: 1px solid var(--pp-line); padding-left: 24px; max-width: 310px; font-size: .8rem; }
.pp-next-game strong { display: block; font-size: .95rem; line-height: 1.6; }
.pp-next-game strong span { color: var(--text-secondary); font-weight: 400; }
.pp-next-game time { display: block; color: var(--text-secondary); margin: 4px 0 10px; }
.pp-season-strip { padding: 16px 0 10px; border-top: 1px solid var(--pp-line); border-bottom: 1px solid var(--pp-line); }
.pp-season-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.pp-season-heading h2 { font-size: .85rem; letter-spacing: 0; }
.pp-season-heading span { font-size: .7rem; color: var(--text-secondary); }
.pp-recent-form small { display: block; font-size: .6rem; white-space: normal; color: var(--text-secondary); }
.player-profile .pp-season-table { table-layout: fixed; font-size: .9rem; }
.player-profile .pp-season-table :is(th, td) { padding: 9px 8px; text-align: right; border: 0; }
.player-profile .pp-season-table :is(th, td):first-child { width: 104px; padding-left: 0; text-align: left; }
.player-profile .pp-season-table :is(th, td):nth-child(2) { width: 48px; color: var(--text-secondary); }
.player-profile .pp-season-table :is(th, td):last-child { padding-right: 0; }
.player-profile .pp-season-table thead { background: transparent; font-size: .6rem; }
.player-profile .pp-season-table thead th { padding-top: 0; padding-bottom: 5px; }
.player-profile .pp-season-table tbody th { font-size: .8rem; font-weight: 500; }
.player-profile .pp-season-table tbody tr:first-child { font-weight: 650; background: rgba(255,255,255,.025); }
.player-profile .pp-season-table tbody tr + tr { border-top: 1px solid var(--pp-line); }
.pp-trends, .pp-log, .pp-props { margin-top: 32px; min-width: 0; }
.pp-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }
.pp-section-heading p { margin-top: 4px; font-size: .8rem; }
.pp-toolbar { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 14px 0; border-top: 1px solid var(--pp-line); border-bottom: 1px solid var(--pp-line); }
.pp-filter-group { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pp-filter-label { font-size: .65rem; font-weight: 600; color: var(--text-secondary); white-space: nowrap; }
.pp-segmented { display: flex; flex: 1; gap: 3px; padding: 3px; background: #101215; border: 1px solid var(--pp-line); border-radius: 7px; }
.pp-segmented button { flex: 1; color: var(--text-secondary); padding: 7px 12px; border: 0; border-radius: 4px; background: transparent; font-size: .8rem; min-height: 36px; font-variant-numeric: tabular-nums; transition: background .15s, color .15s; }
.pp-segmented button:hover { background: #242a32; color: #fff; }
.pp-segmented button[aria-pressed=true] { background: #273b56; color: #d5e7ff; box-shadow: inset 0 0 0 1px #41638f; }
.pp-window button { min-width: 44px; padding-inline: 12px; }
.pp-toggle { white-space: nowrap; display: flex; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--pp-line); border-radius: 7px; background: #101215; color: var(--text-secondary); font-size: .8rem !important; min-height: 44px; }
.pp-b2b-short { display: none; }
.pp-switch { flex-shrink: 0; display: block; width: 28px; height: 16px; border-radius: 20px; background: #424750; padding: 3px; transition: background .15s; }
.pp-switch::after { content: ''; display: block; width: 10px; height: 10px; background: #d8dde5; border-radius: 50%; transition: transform .15s; }
.pp-toggle[aria-pressed=true] { background: #1b2c42; border-color: #41638f; color: #d5e7ff; }
.pp-toggle[aria-pressed=true] .pp-switch { background: #3b82f6; }
.pp-toggle[aria-pressed=true] .pp-switch::after { transform: translateX(12px); background: white; }
.pp-sample { font-size: .75rem; color: var(--text-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pp-count { padding: 5px 9px; border: 1px solid var(--pp-line); border-radius: 6px; }
.player-profile .pp-note { font-size: .73rem; color: var(--text-muted); margin: 12px 0; }
.profile-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pp-chart-card { min-width: 0; border: 1px solid var(--pp-line); background: var(--pp-surface); border-radius: 10px; padding: 18px 18px 8px; }
.pp-chart-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.pp-chart-title h3 { margin-bottom: 5px; }
.pp-chart-average { display: flex; align-items: baseline; gap: 6px; font-variant-numeric: tabular-nums; }
.pp-chart-average strong { font-size: 1.45rem; line-height: 1.2; font-weight: 650; }
.pp-chart-average span { color: var(--text-secondary); font-size: .7rem; }
.profile-chart { position: relative; height: 240px; }
.pp-chart-empty { position: absolute; inset: 0; display: grid; place-items: center; font-size: .85rem; }
.profile-table-scroll { overflow-x: auto; border: 1px solid var(--pp-line); border-radius: 8px; }
.player-profile table { border-collapse: collapse; width: 100%; font-size: .8rem; font-variant-numeric: tabular-nums; }
.player-profile th, .player-profile td { padding: 12px 14px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--pp-line); }
.player-profile thead { background: var(--pp-surface); color: var(--text-secondary); font-size: .65rem; }
.player-profile tbody th { font-weight: 400; }
.player-profile :is(th, td):nth-child(-n+3) { text-align: left; }
.player-profile tr:last-child :is(td, th) { border-bottom: 0; }
.player-profile tbody tr:hover { background: rgba(255,255,255,.025); }
.pp-venue, .pp-muted { color: var(--text-muted); }
.pp-venue { display: inline-block; width: 18px; }
.pp-badge { font-size: .6rem; font-weight: 600; border-radius: 4px; padding: 3px 5px; color: #b3d3ff; background: rgba(59,130,246,.13); }
.pp-game-type { color: var(--text-muted); font-size: .65rem; margin-left: 4px; }
.pp-props { border-top: 1px solid var(--pp-line); padding-top: 28px; }
.pp-props > p { font-size: .85rem; }
.pp-action { border: 1px solid var(--primary-color); border-radius: 6px; padding: 10px 14px; font-size: .8rem; white-space: nowrap; }
.pp-markets { padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.pp-markets li { border: 1px solid var(--pp-line); background: var(--pp-surface); border-radius: 6px; padding: 12px 16px; display: flex; align-items: center; gap: 20px; font-size: .8rem; }
.pp-markets strong { font-size: 1.1rem; }
.pp-upsell { margin: 24px 0; font-size: .8rem; }
.pp-upsell > div { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 8px; }
.pp-related { display: flex; gap: 20px; flex-wrap: wrap; border-top: 1px solid var(--pp-line); padding-top: 20px; font-size: .75rem; }
.pp-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.profile-directory { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; padding: 0; list-style: none; }
.profile-directory li { margin: 0; padding: 20px; }
.profile-filters { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; }
.profile-filters input, .profile-filters select { display: block; padding: 12px; margin-top: 8px; max-width: 100%; background: var(--bg-secondary); color: var(--text-primary); border: 1px solid var(--text-muted); border-radius: 6px; }
@media (max-width: 900px) { .pp-next-game { max-width: 240px; } .pp-identity { gap: 16px; } .pp-portrait { width: 110px; } .pp-portrait img { margin-left: -36px; } }
@media (min-width: 601px) and (max-width: 850px) {
    .pp-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; }
    .pp-filter-group:first-child { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .player-profile { padding: 18px 16px 32px; }
    .pp-breadcrumb { margin-bottom: 16px; }
    .pp-hero { flex-direction: column; align-items: stretch; gap: 18px; padding-bottom: 20px; }
    .pp-identity { gap: 14px; }
    .pp-portrait { width: 85px; height: 112px; }
    .pp-portrait img { width: 145px; height: 106px; margin: 6px 0 0 -30px; }
    .player-profile h1 { font-size: 1.9rem; }
    .player-profile .pp-eyebrow { font-size: .57rem; }
    .player-profile .pp-player-meta { font-size: .75rem; gap: 6px; }
    .player-profile .pp-updated { font-size: .63rem; margin-top: 8px; }
    .pp-next-game { border-left: 0; padding: 12px 0 0; border-top: 1px solid var(--pp-line); max-width: none; }
    .pp-next-game time { display: inline-block; margin: 4px 12px 0 0; }
    .pp-next-game a { font-size: .72rem; }
    .pp-season-heading h2 { font-size: .75rem; }
    .pp-season-heading span { font-size: .6rem; }
    .player-profile .pp-season-table { font-size: .72rem; }
    .player-profile .pp-season-table :is(th, td) { padding: 9px 2px; }
    .player-profile .pp-season-table :is(th, td):first-child { width: 54px; }
    .player-profile .pp-season-table :is(th, td):nth-child(2) { width: 25px; }
    .player-profile .pp-season-table tbody th { font-size: .65rem; }
    .player-profile .pp-season-table thead { font-size: .55rem; }
    .pp-section-heading { align-items: flex-start; gap: 10px; }
    .pp-section-heading p { font-size: .73rem; max-width: 180px; }
    .pp-trends, .pp-log { margin-top: 26px; }
    .pp-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 12px 0; }
    .pp-filter-group { gap: 10px; }
    .pp-filter-group:first-child { grid-column: 1 / -1; }
    .pp-venue-filter > .pp-filter-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .pp-segmented button { padding: 7px 8px; min-width: 0; }
    .pp-toggle { padding: 10px 8px; gap: 6px; font-size: .7rem !important; }
    .pp-b2b-long { display: none; }
    .pp-b2b-short { display: inline; }
    .pp-trends > .pp-section-heading p { max-width: none; }
    .pp-chart-title h3 { font-size: .85rem; }
    .profile-charts { grid-template-columns: 1fr; gap: 12px; }
    .pp-chart-card { padding: 14px 12px 4px; }
    .profile-chart { height: 225px; }
    .player-profile th, .player-profile td { padding: 10px; }
    .pp-props .pp-section-heading { flex-wrap: wrap; }
}

/* Compact historical line controls */
.pp-quote-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 12px; min-height: 24px; margin-bottom: 8px; }
.pp-market-quote { color: var(--text-secondary); font-size: .7rem; }
.pp-line-controls { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
.pp-line-controls > label { font-size: .65rem; color: var(--text-secondary); }
.pp-line-stepper { display: inline-flex; align-items: stretch; border: 1px solid var(--pp-line); border-radius: 6px; }
.pp-line-stepper button { border: 0; background: #24272c; color: var(--text-primary); min-width: 32px; min-height: 36px; font-size: 1.1rem; border-radius: 5px; }
.pp-line-stepper button:hover { background: #343c48; }
.pp-line-stepper input { appearance: textfield; -moz-appearance: textfield; width: 54px; padding: 6px 0; text-align: center; background: transparent; color: var(--text-primary); border: 0; font: inherit; font-size: .9rem; font-variant-numeric: tabular-nums; }
.pp-line-stepper input::-webkit-inner-spin-button, .pp-line-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pp-line-stepper input:invalid { color: #f87171; }
.player-profile .pp-line-reset { background: none; border: 0; color: var(--secondary-color); font-size: .7rem; padding: 2px 0; margin-left: auto; text-decoration: underline; text-underline-offset: 3px; }
.pp-hit-rates { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 20px; border-top: 1px solid var(--pp-line); padding-top: 10px; margin-bottom: 10px; font-variant-numeric: tabular-nums; }
.pp-hit-rates > div { display: flex; gap: 5px; align-items: baseline; }
.pp-hit-rates span { color: var(--text-secondary); font-size: .65rem; }
.pp-hit-rates strong { font-size: .95rem; font-weight: 650; }
.pp-hit-rates small { color: var(--text-secondary); font-size: .65rem; }
.pp-hit-rates > small { margin-left: auto; }
.pp-hit-rates [data-hit-over] { color: #4ade80; }
.pp-hit-rates [data-hit-under] { color: #f87171; }
.pp-log .profile-table-scroll { max-height: 580px; }
.pp-log thead th { position: sticky; top: 0; z-index: 1; background: var(--pp-surface); }
@media (max-width: 600px) {
    .pp-hit-rates { gap: 6px 12px; }
    .pp-hit-rates > div { gap: 4px; }
    .pp-hit-rates > small { flex-basis: 100%; margin-left: 0; }
}

.player-profile .pp-summary { font-size: .8rem; line-height: 1.7; margin: 16px 0 0; max-width: 100ch; }
.pp-summary a { white-space: nowrap; }
.pp-history-options { margin-top: 12px; font-size: .75rem; }
.pp-history-options > summary, .pp-methodology > summary { cursor: pointer; color: var(--text-secondary); width: fit-content; }
.pp-extra-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-top: 12px; }
.pp-extra-filters label { display: flex; flex-direction: column; gap: 6px; color: var(--text-secondary); }
.pp-extra-filters select, .pp-extra-filters button { min-height: 40px; padding: 8px 10px; font: inherit; border: 1px solid var(--pp-line); border-radius: 6px; background: var(--pp-surface); color: var(--text-primary); }
.pp-extra-filters button { color: var(--secondary-color); }
.pp-quote-source { color: var(--text-muted); font-size: .65rem; margin: -2px 0 10px; }
.pp-teammates { margin: 28px 0; }
.pp-teammates h2 { font-size: 1rem; }
.pp-teammates ul { display: flex; flex-wrap: wrap; gap: 10px 20px; list-style: none; padding: 0; margin: 12px 0 0; font-size: .8rem; }
.pp-methodology { border-top: 1px solid var(--pp-line); padding: 18px 0; font-size: .75rem; }
.pp-methodology p { margin-top: 12px; max-width: 100ch; }
.player-profile summary:focus-visible { outline: 2px solid var(--secondary-color); outline-offset: 4px; }
@media (max-width: 600px) {
    .pp-extra-filters label { flex: 1 1 120px; min-width: 0; }
    .pp-extra-filters select { width: 100%; }
}

.pp-chart-key { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 0 0 6px; font-size: .65rem; }
.pp-stat-key, .pp-minutes-key { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.pp-stat-key { color: var(--text-secondary); }
.pp-bar-swatch { width: 7px; height: 10px; border-radius: 2px 2px 0 0; background: #929ca9; }
.player-profile .pp-minutes-key { padding: 7px 0 7px 6px; border: 0; background: transparent; color: #c4b5fd; font-size: inherit; border-radius: 4px; }
.pp-minutes-key strong { font-weight: 600; font-variant-numeric: tabular-nums; margin-left: 2px; }
.pp-minutes-key > span:last-child { color: var(--text-secondary); }
.pp-line-swatch { position: relative; width: 16px; height: 2px; background: currentColor; border-radius: 2px; }
.pp-line-swatch::after { content: ''; position: absolute; width: 5px; height: 5px; border-radius: 50%; background: currentColor; top: -1.5px; left: 6px; }
.player-profile .pp-minutes-key[aria-pressed=false] { color: var(--text-muted); }
.pp-minutes-key[aria-pressed=false] .pp-line-swatch { opacity: .45; }
.pp-minutes-key:disabled { cursor: default; }
@media (max-width: 600px) {
    .pp-chart-key { font-size: .58rem; gap: 4px; }
    .pp-stat-key, .pp-minutes-key { gap: 4px; }
}
