/* Press Box — Mobile-first, BEM with pb- prefix */

:root {
    --pb-highlight-color: #0038A8;
    --pb-highlight-text: #ffffff;
    --pb-bg: #ffffff;
    --pb-bg-alt: #f7f8fa;
    --pb-border: #e2e4e8;
    --pb-text: #1a1a1a;
    --pb-text-muted: #6b7280;
    --pb-win: #16a34a;
    --pb-loss: #dc2626;
    --pb-ot-loss: #d97706;
    --pb-live: #dc2626;
    --pb-highlight-color-light: rgba(0, 56, 168, 0.06);
    --pb-radius: 6px;
    --pb-spacing-xs: 4px;
    --pb-spacing-sm: 8px;
    --pb-spacing-md: 16px;
    --pb-spacing-lg: 24px;
    --pb-injury-ltir: #dc2626;
    --pb-injury-ir: #ea580c;
    --pb-injury-dtd: #ca8a04;
}

/* ---- Shared ---- */

/* WordPress wpautop() inserts empty <p> tags inside block output.
   Hide them so they don't become stray flex/grid children. */
.pb-wrap p:empty {
    display: none;
}

.pb-wrap {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: var(--pb-text);
    max-width: 900px;
    margin: 0 auto 32px;
}

.pb-section-title {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 var(--pb-spacing-md);
    padding-bottom: var(--pb-spacing-sm);
    border-bottom: 2px solid var(--pb-highlight-color);
}

.pb-games-header {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 var(--pb-spacing-md);
    padding-bottom: var(--pb-spacing-sm);
    border-bottom: 2px solid var(--pb-highlight-color);
}

.pb-date-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--pb-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: var(--pb-spacing-md) 0 var(--pb-spacing-sm);
}

.pb-empty {
    text-align: center;
    padding: var(--pb-spacing-lg);
    color: var(--pb-text-muted);
    font-style: italic;
}

.pb-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
    border-radius: var(--pb-radius);
    padding: var(--pb-spacing-md);
    text-align: center;
}

/* ─────────────────────────────────────────────────────────────────────── */
/* Games Today — broadcast scoreboard                                      */
/* Architecture: outer .pb-game is a flex-column container. The team row   */
/* (left team / center / right team) lives inside .pb-game__row as a       */
/* 1fr/auto/1fr grid. Records, venue, TV broadcasts, three-stars, and      */
/* Watch/Tickets actions each render as their own full-width row beneath   */
/* the team row — long broadcast strings wrap freely instead of squeezing  */
/* the team columns. Mirrors the press-box-mlb game-card pattern.          */
/* ─────────────────────────────────────────────────────────────────────── */

.pb-games-today__games {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--pb-spacing-md);
}

@media (min-width: 768px) {
    .pb-games-today__games {
        grid-template-columns: 1fr 1fr;
    }
}

/* OUTER CARD — five named columns, one row. */
/* Game card: outer is a flex-column container so the team row, records,
   venue, broadcast list, three-stars line, and Watch/Tickets buttons each
   stack as their own full-width row beneath the team layout. The 3-column
   grid lives only inside .pb-game__row, which keeps long broadcast strings
   from squeezing the team columns or pushing the right team off-card.
   Mirrors the press-box-mlb game-card pattern. */
.pb-game {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--pb-spacing-xs);
    padding: var(--pb-spacing-md) var(--pb-spacing-lg);
    background: var(--pb-bg);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.pb-game:hover {
    border-color: rgba(0, 0, 0, 0.18);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 16px rgba(0, 0, 0, 0.05);
}

.pb-game--live {
    border-color: var(--pb-live);
    border-width: 2px;
    padding: calc(var(--pb-spacing-md) - 1px) calc(var(--pb-spacing-lg) - 1px);
    background: linear-gradient(180deg, rgba(220, 38, 38, 0.035) 0%, var(--pb-bg) 24%);
}

.pb-game--upcoming {
    background: var(--pb-bg-alt);
}

.pb-game__row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    column-gap: 14px;
    width: 100%;
}

.pb-game__team {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
    /* min-width:0 lets the grid track shrink below its content size, so a
       wide center column or long abbrev can't push the opposite team
       outside the card border. */
    min-width: 0;
}

.pb-game__team--left {
    justify-content: flex-end;
    text-align: right;
}

.pb-game__team--right {
    justify-content: flex-start;
    text-align: left;
}

.pb-game__center {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 0;
    gap: 2px;
}

/* LOGO LINK */
.pb-game__logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    padding: 4px;
    margin: -4px;
    line-height: 0;
    cursor: pointer;
    transition: background-color 0.15s ease, transform 0.1s ease;
}

.pb-game__logo-link:hover {
    background-color: var(--pb-highlight-color-light, rgba(0, 0, 0, 0.06));
    transform: translateY(-1px);
}

.pb-game__logo-link:active {
    transform: translateY(0);
}

.pb-game__logo-link:focus-visible {
    outline: 2px solid var(--pb-highlight-color);
    outline-offset: 2px;
    background-color: var(--pb-highlight-color-light, rgba(0, 0, 0, 0.04));
}

/* Logo dimensions — !important defeats theme `.entry-content img` resets. */
.pb-game .pb-game__logo,
img.pb-game__logo,
span.pb-game__logo {
    width: 40px !important;
    height: 40px !important;
    object-fit: contain;
    flex-shrink: 0;
    max-width: none !important;
    min-width: 40px;
    display: inline-block;
}

.pb-game .pb-game__logo--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pb-bg-alt);
    color: var(--pb-text-muted);
    border: 1px solid var(--pb-border);
    border-radius: 50%;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.04em;
    line-height: 1;
}

/* TEAM NAME / RECORD */
.pb-game__name {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    color: var(--pb-text);
}

.pb-game__name a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 1px;
    transition: background-size 0.2s ease, color 0.15s ease;
}

.pb-game__name a:hover,
.pb-game__name a:focus-visible {
    color: var(--pb-highlight-color, #0038A8);
    background-size: 100% 2px;
    outline: none;
}

.pb-game__record {
    margin-top: 2px;
    font-size: 11px;
    font-weight: 500;
    color: var(--pb-text-muted);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

/* CENTER CONTENT */
.pb-game__score {
    font-family: ui-monospace, "SF Mono", "Roboto Mono", Menlo, Consolas, monospace;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--pb-text);
}

.pb-game__status {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 700;
    color: var(--pb-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.14em;
}

.pb-game__status--live {
    color: var(--pb-live);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    animation: none;
}

.pb-game__status--live::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pb-live);
    animation: pb-pulse 1.4s ease-in-out infinite;
}

@keyframes pb-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.35; transform: scale(0.7); }
}

.pb-game__time {
    font-family: ui-monospace, "SF Mono", "Roboto Mono", Menlo, Consolas, monospace;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: var(--pb-text);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

/* Meta rows beneath the team row: full width, centered, free to wrap so
   long broadcast strings can never push the team layout out of shape. */
.pb-game__records,
.pb-game__venue,
.pb-game__tv,
.pb-game__stars {
    text-align: center;
    font-size: 11px;
    color: var(--pb-text-muted);
}

.pb-game__records {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--pb-spacing-sm);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

.pb-game__venue {
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.pb-game__tv {
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.pb-game__stars {
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.45;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* BADGE (Olympics / 4 Nations / Playoffs) */
.pb-game__badge {
    position: absolute;
    top: 0;
    right: var(--pb-spacing-md);
    transform: translateY(-50%);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 3px 9px;
    border-radius: 100px;
    background: #0a3161;
    color: #fff;
    line-height: 1;
    z-index: 1;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
}

/* UP NEXT */
.pb-games-divider {
    border-top: 1px dashed var(--pb-border);
    margin: var(--pb-spacing-lg) 0;
}

.pb-games-header--upcoming {
    font-size: 14px;
    font-weight: 700;
    color: var(--pb-text-muted);
    border-bottom: 1px solid var(--pb-border);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* ---- Schedule ---- */

.pb-schedule {
    display: flex;
    flex-direction: column;
}

/* Header */

.pb-schedule__header {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 var(--pb-spacing-md);
    padding-bottom: var(--pb-spacing-sm);
    border-bottom: 2px solid var(--pb-highlight-color);
}

/* Hero Card */

.pb-schedule__hero {
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    padding: var(--pb-spacing-lg);
    margin-bottom: var(--pb-spacing-lg);
    background: var(--pb-bg);
}

.pb-schedule__hero--live {
    border-left: 4px solid var(--pb-live);
}

.pb-schedule__hero--final {
    border-left: 4px solid var(--pb-text-muted);
}

.pb-schedule__hero--upcoming {
    border-left: 4px solid var(--pb-highlight-color);
}

.pb-schedule__hero-label {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 3px;
    margin-bottom: var(--pb-spacing-sm);
}

.pb-schedule__hero--upcoming .pb-schedule__hero-label {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
}

.pb-schedule__hero--live .pb-schedule__hero-label {
    background: var(--pb-live);
    color: #fff;
}

.pb-schedule__hero--final .pb-schedule__hero-label {
    background: var(--pb-bg-alt);
    color: var(--pb-text-muted);
}

.pb-schedule__hero--win { border-left-color: var(--pb-win); }
.pb-schedule__hero--win .pb-schedule__hero-label { background: var(--pb-win); color: #fff; }

.pb-schedule__hero--loss { border-left-color: var(--pb-loss); }
.pb-schedule__hero--loss .pb-schedule__hero-label { background: var(--pb-loss); color: #fff; }

.pb-schedule__hero--ot-loss { border-left-color: var(--pb-ot-loss); }
.pb-schedule__hero--ot-loss .pb-schedule__hero-label { background: var(--pb-ot-loss); color: #fff; }

.pb-schedule__hero-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--pb-spacing-xs);
}

.pb-schedule__hero-opponent {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
    font-size: 20px;
    font-weight: 700;
}

.pb-schedule__hero-logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.pb-schedule__hero-meta {
    font-size: 15px;
    color: var(--pb-text);
}

.pb-schedule__hero-date {
    font-weight: 600;
}

.pb-schedule__hero-details {
    font-size: 13px;
    color: var(--pb-text-muted);
}

.pb-schedule__hero-score {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-top: var(--pb-spacing-sm);
}

.pb-schedule__hero-status {
    font-size: 13px;
    color: var(--pb-text-muted);
    text-transform: uppercase;
    font-weight: 600;
}

.pb-schedule__hero-status--live {
    color: var(--pb-live);
    animation: pb-pulse 1.5s ease-in-out infinite;
}

/* Columns (Recent + Upcoming side by side) */

.pb-schedule__columns {
    display: flex;
    flex-direction: column;
    gap: var(--pb-spacing-lg);
}

/* Section */

.pb-schedule__section {
    margin-bottom: 0;
    min-width: 0;
}

.pb-schedule__section-title {
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 2px solid var(--pb-highlight-color);
}

/* Compact Rows. Recent/live rows are 4-col (date, opp, result, score);
   upcoming rows are 4-col (date, opp, time, actions) — see modifier below. */

.pb-schedule__row {
    display: grid;
    grid-template-columns: 80px 1fr 60px 80px;
    align-items: center;
    gap: var(--pb-spacing-sm);
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    background: var(--pb-bg);
    border-radius: var(--pb-radius);
    font-size: 14px;
}

.pb-schedule__row--upcoming {
    grid-template-columns: 80px 1fr auto auto;
}

.pb-schedule__row:nth-child(even) {
    background: var(--pb-bg-alt);
}

.pb-schedule__date {
    font-weight: 600;
    white-space: nowrap;
}

.pb-schedule__opponent {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
    font-weight: 500;
    min-width: 0;
}

.pb-schedule__opponent-logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
}

.pb-schedule__result {
    font-weight: 700;
    text-align: center;
}

.pb-schedule__result--win {
    color: var(--pb-win);
}

.pb-schedule__result--loss {
    color: var(--pb-loss);
}

.pb-schedule__result--live {
    color: var(--pb-live);
}

.pb-schedule__score {
    text-align: center;
    white-space: nowrap;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* Accordion */

.pb-schedule__accordion {
    margin-top: var(--pb-spacing-sm);
}

.pb-schedule__accordion summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 14px;
    color: var(--pb-text);
    list-style: none;
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    background: var(--pb-bg-alt);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    user-select: none;
    transition: background 0.15s;
}

.pb-schedule__accordion summary:hover {
    background: var(--pb-border);
}

.pb-schedule__accordion summary::-webkit-details-marker {
    display: none;
}

.pb-schedule__accordion summary::before {
    content: '\25B6';
    display: inline-block;
    margin-right: var(--pb-spacing-sm);
    font-size: 10px;
    transition: transform 0.2s;
}

.pb-schedule__accordion[open] summary::before {
    transform: rotate(90deg);
}

.pb-schedule__accordion-content {
    padding-top: var(--pb-spacing-xs);
}

/* ---- Standings ---- */

.pb-standings {
    padding-top: var(--pb-spacing-md);
}

.pb-standings__header {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 var(--pb-spacing-md);
    padding-bottom: var(--pb-spacing-sm);
    border-bottom: 2px solid var(--pb-highlight-color);
}

.pb-standings__tabs {
    display: flex;
    gap: var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-md);
    margin-bottom: var(--pb-spacing-lg);
    border-bottom: 1px solid var(--pb-border);
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
}

.pb-standings__tab {
    background: none;
    border: 1px solid transparent;
    border-radius: var(--pb-radius);
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    color: var(--pb-text-muted);
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.pb-standings__tab:hover {
    color: var(--pb-text);
    background: var(--pb-bg-alt);
}

.pb-standings__tab--active {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
    border-color: var(--pb-highlight-color);
    font-weight: 700;
}

.pb-standings__tab--active:hover {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
}

.pb-standings__panel[hidden] {
    display: none;
}

.pb-standings__conference {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-standings__conference-name {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 var(--pb-spacing-md);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 2px solid var(--pb-highlight-color);
}

.pb-standings__section {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-standings__section-name {
    font-size: 15px;
    font-weight: 700;
    margin: 0 0 var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 1px solid var(--pb-border);
}

.pb-standings__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.pb-standings__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    min-width: 500px;
}

.pb-standings__table th {
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--pb-text-muted);
    padding: var(--pb-spacing-xs) var(--pb-spacing-sm);
    border-bottom: 1px solid var(--pb-border);
    white-space: nowrap;
}

.pb-standings__table th:first-child {
    text-align: left;
}

.pb-standings__table td {
    text-align: center;
    padding: var(--pb-spacing-xs) var(--pb-spacing-sm);
    border-bottom: 1px solid var(--pb-border);
}

.pb-standings__table td:first-child {
    text-align: left;
}

.pb-standings__table tr:last-child td {
    border-bottom: none;
}

.pb-standings__team-cell {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
}

.pb-standings__logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.pb-standings__team-name {
    font-weight: 600;
}

.pb-standings__cutoff td {
    padding: 0;
    border-bottom: none;
}

.pb-standings__cutoff-line {
    height: 2px;
    background: #cc0000;
    margin: var(--pb-spacing-xs) 0;
}

.pb-standings__row--highlight {
    background: var(--pb-highlight-color-light, rgba(0, 56, 168, 0.06));
}

.pb-standings__row--highlight .pb-standings__team-name {
    color: var(--pb-highlight-color);
    font-weight: 700;
}

.pb-standings__points {
    font-weight: 700;
}

.pb-standings__streak--positive {
    color: var(--pb-win);
}

.pb-standings__streak--negative {
    color: var(--pb-loss);
}

/* ---- Cap Snapshot ---- */

.pb-cap {
    padding: 0;
}

.pb-cap__notice {
    text-align: center;
    padding: var(--pb-spacing-lg);
    color: var(--pb-text-muted);
    background: var(--pb-bg-alt);
    border-radius: var(--pb-radius);
    border: 1px dashed var(--pb-border);
}

.pb-cap__season {
    font-size: 13px;
    font-weight: 400;
    color: var(--pb-text-muted);
    margin-left: var(--pb-spacing-sm);
}

/* Summary Cards */

.pb-cap__summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--pb-spacing-sm);
    margin-bottom: var(--pb-spacing-lg);
}

.pb-cap__card {
    background: var(--pb-bg-alt);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    padding: var(--pb-spacing-md);
    text-align: center;
}

.pb-cap__card-label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--pb-text-muted);
    letter-spacing: 0.5px;
    margin-bottom: var(--pb-spacing-xs);
}

.pb-cap__card-value {
    font-size: 18px;
    font-weight: 700;
}

.pb-cap__card-value--positive {
    color: var(--pb-win);
}

.pb-cap__card-value--negative {
    color: var(--pb-loss);
}

/* Breakdown */

.pb-cap__breakdown {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-cap__breakdown-title,
.pb-cap__buyouts-title,
.pb-cap__roster-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 1px solid var(--pb-border);
}

.pb-cap__breakdown-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--pb-spacing-xs) var(--pb-spacing-lg);
}

.pb-cap__breakdown-item {
    display: flex;
    justify-content: space-between;
    padding: var(--pb-spacing-xs) 0;
}

.pb-cap__breakdown-label {
    color: var(--pb-text-muted);
}

.pb-cap__breakdown-value {
    font-weight: 600;
}

.pb-cap__breakdown-meta {
    margin-top: var(--pb-spacing-sm);
    font-size: 13px;
    color: var(--pb-text-muted);
}

/* Buyouts */

.pb-cap__buyouts {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-cap__buyout-row {
    display: flex;
    justify-content: space-between;
    padding: var(--pb-spacing-xs) 0;
    border-bottom: 1px solid var(--pb-border);
}

.pb-cap__buyout-row:last-child {
    border-bottom: none;
}

.pb-cap__buyout-name {
    font-weight: 600;
}

.pb-cap__buyout-hit {
    color: var(--pb-loss);
    font-weight: 600;
}

/* Roster Table */

.pb-cap__roster {
    margin-bottom: var(--pb-spacing-md);
}

.pb-cap__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}

.pb-cap__table th {
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--pb-text-muted);
    padding: var(--pb-spacing-xs) var(--pb-spacing-sm);
    border-bottom: 1px solid var(--pb-border);
    white-space: nowrap;
}

.pb-cap__table th:first-child {
    text-align: left;
}

.pb-cap__table td {
    text-align: center;
    padding: var(--pb-spacing-xs) var(--pb-spacing-sm);
    border-bottom: 1px solid var(--pb-border);
}

.pb-cap__table td:first-child {
    text-align: left;
}

.pb-cap__table tr:last-child td {
    border-bottom: none;
}

.pb-cap__player-name {
    font-weight: 600;
}

.pb-cap__player-pos {
    color: var(--pb-text-muted);
}

.pb-cap__player-hit {
    font-weight: 600;
}

.pb-cap__player-expiry {
    font-size: 13px;
    white-space: nowrap;
}

.pb-cap__player-status {
    font-size: 12px;
    font-weight: 600;
}

/* Attribution */

.pb-cap__attribution {
    margin-top: var(--pb-spacing-md);
    font-size: 12px;
    color: var(--pb-text-muted);
    text-align: right;
}

.pb-cap__attribution a {
    color: var(--pb-highlight-color);
    text-decoration: none;
}

.pb-cap__attribution a:hover {
    text-decoration: underline;
}

/* Data cell links inherit parent color (stay black, not browser-default blue) */

.pb-cap__player-name a,
.pb-cap__player-hit a,
.pb-cap__card-value a,
.pb-cap__breakdown-value a,
.pb-injury__player-name a,
.pb-injury__player-cap a,
.pb-injury__card-value a,
.pb-injury__returning-name a,
.pb-injury__returning-cap a,
.pb-trade__item-name a,
.pb-trade__item-cap a,
.pb-hw__player-name a,
.pb-hw__player-cap a,
.pb-hw__cap-value a {
    color: inherit;
}

/* ---- Injury Report ---- */

.pb-injury {
    padding: 0;
}

.pb-injury__notice {
    text-align: center;
    padding: var(--pb-spacing-lg);
    color: var(--pb-text-muted);
    background: var(--pb-bg-alt);
    border-radius: var(--pb-radius);
    border: 1px dashed var(--pb-border);
}

/* Summary Cards */

.pb-injury__summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--pb-spacing-sm);
    margin-bottom: var(--pb-spacing-lg);
}

.pb-injury__card {
    background: var(--pb-bg-alt);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    padding: var(--pb-spacing-md);
    text-align: center;
}

.pb-injury__card-label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--pb-text-muted);
    letter-spacing: 0.5px;
    margin-bottom: var(--pb-spacing-xs);
}

.pb-injury__card-value {
    font-size: 24px;
    font-weight: 700;
}

.pb-injury__card-value--positive {
    color: var(--pb-win);
}

.pb-injury__card-value--accent {
    font-size: 14px;
    color: var(--pb-highlight-color);
}

/* Injuries Table */

.pb-injury__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: var(--pb-spacing-lg);
}

.pb-injury__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.pb-injury__table th {
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--pb-text-muted);
    padding: var(--pb-spacing-xs) var(--pb-spacing-sm);
    border-bottom: 1px solid var(--pb-border);
    white-space: nowrap;
}

/* Sortable table headers (shared across all sortable tables) */
th[data-sort] {
    cursor: pointer;
    user-select: none;
    transition: color 0.15s;
}
th[data-sort]:hover {
    color: var(--pb-text);
}

/* Sort arrow via ::after pseudo-element */
th[data-sort]::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 4px;
    vertical-align: middle;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid var(--pb-border);
    opacity: 0.4;
}

/* Active sorted column */
.pb-sortable__th--sorted {
    color: var(--pb-text);
}
.pb-sortable__th--sorted[data-sort-dir="asc"]::after {
    border-top: 4px solid var(--pb-text);
    border-bottom: none;
    opacity: 1;
}
.pb-sortable__th--sorted[data-sort-dir="desc"]::after {
    border-top: none;
    border-bottom: 4px solid var(--pb-text);
    opacity: 1;
}

.pb-injury__table th:first-child {
    text-align: left;
}

.pb-injury__table td {
    text-align: center;
    padding: var(--pb-spacing-xs) var(--pb-spacing-sm);
    border-bottom: 1px solid var(--pb-border);
}

.pb-injury__table td:first-child {
    text-align: left;
}

.pb-injury__table tr:last-child td {
    border-bottom: none;
}

.pb-injury__row--notable {
    background: var(--pb-highlight-color-light);
}

.pb-injury__player-name {
    font-weight: 600;
    white-space: nowrap;
}

.pb-injury__notable-marker {
    color: var(--pb-highlight-color);
    font-size: 12px;
    margin-left: 2px;
}

.pb-injury__player-pos {
    color: var(--pb-text-muted);
}

.pb-injury__player-cap {
    font-weight: 600;
}

.pb-injury__player-injury {
    font-size: 13px;
    color: var(--pb-text-muted);
}

.pb-injury__player-days {
    font-weight: 600;
}

.pb-injury__player-return {
    font-size: 13px;
    white-space: nowrap;
}

/* Status Badges */

.pb-injury__badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 3px;
    color: #fff;
    cursor: help;
}

.pb-injury__badge--ltir {
    background: var(--pb-injury-ltir);
}

.pb-injury__badge--ir {
    background: var(--pb-injury-ir);
}

.pb-injury__badge--dtd {
    background: var(--pb-injury-dtd);
}

.pb-injury__badge--out {
    background: var(--pb-text-muted);
}

/* Returning Soon Spotlight */

.pb-injury__returning {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-injury__returning-title {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 1px solid var(--pb-border);
}

.pb-injury__returning-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--pb-spacing-md);
}

.pb-injury__returning-card {
    display: flex;
    gap: var(--pb-spacing-md);
    padding: var(--pb-spacing-md) var(--pb-spacing-lg);
    background: var(--pb-bg);
    border: 1px solid var(--pb-border);
    border-left: 3px solid var(--pb-highlight-color);
    border-radius: var(--pb-radius);
}

.pb-injury__returning-headshot {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    align-self: flex-start;
}

.pb-injury__returning-img {
    width: 110px;
    height: 110px;
    border-radius: var(--pb-radius);
    object-fit: cover;
    background: var(--pb-bg-alt);
}

.pb-injury__returning-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 110px;
    height: 110px;
    border-radius: var(--pb-radius);
    overflow: hidden;
}

.pb-injury__returning-info {
    flex: 1;
    min-width: 0;
}

.pb-injury__returning-name {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 2px;
}

.pb-injury__returning-meta {
    font-size: 13px;
    color: var(--pb-text-muted);
    margin-bottom: 2px;
}

.pb-injury__returning-cap {
    font-size: 12px;
    color: var(--pb-text-muted);
    margin-bottom: 8px;
}

.pb-injury__returning-eligible {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
    color: #15803d;
    background: #dcfce7;
    padding: 2px 8px;
    border-radius: 3px;
    margin-bottom: 4px;
}

.pb-injury__returning-eligible-icon {
    font-size: 11px;
    font-weight: 700;
}

.pb-injury__returning-quote {
    font-size: 13px;
    font-style: italic;
    color: var(--pb-text);
    line-height: 1.3;
}

/* Timeline */

.pb-injury__timeline {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-injury__timeline-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 1px solid var(--pb-border);
}

.pb-injury__timeline-chart {
    position: relative;
    padding: var(--pb-spacing-lg) 0 var(--pb-spacing-md);
}

.pb-injury__timeline-months {
    position: relative;
    height: 20px;
    margin-bottom: var(--pb-spacing-sm);
}

.pb-injury__timeline-month {
    position: absolute;
    font-size: 11px;
    font-weight: 600;
    color: var(--pb-text-muted);
    text-transform: uppercase;
    transform: translateX(-50%);
}

.pb-injury__timeline-today {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--pb-highlight-color);
    z-index: 2;
}

.pb-injury__timeline-today-label {
    position: absolute;
    top: -2px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10px;
    font-weight: 700;
    color: var(--pb-highlight-color);
    white-space: nowrap;
}

.pb-injury__timeline-bars {
    position: relative;
}

.pb-injury__timeline-row {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
    margin-bottom: var(--pb-spacing-xs);
}

.pb-injury__timeline-name {
    width: 120px;
    flex-shrink: 0;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pb-injury__timeline-track {
    flex: 1;
    position: relative;
    height: 16px;
    background: var(--pb-bg-alt);
    border-radius: 3px;
    overflow: hidden;
}

.pb-injury__timeline-bar {
    position: absolute;
    top: 0;
    height: 100%;
    border-radius: 3px;
    opacity: 0.8;
}

/* Opponent Injuries */

.pb-injury__opponents {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-injury__opponents-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 1px solid var(--pb-border);
}

.pb-injury__opponents-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--pb-spacing-sm);
}

.pb-injury__opponent-row {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    background: var(--pb-bg-alt);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
}

.pb-injury__opponent-header {
    font-weight: 700;
    font-size: 14px;
}

.pb-injury__opponent-date {
    font-weight: 400;
    color: var(--pb-text-muted);
    font-size: 13px;
}

.pb-injury__opponent-players {
    font-size: 13px;
    color: var(--pb-text);
    line-height: 1.4;
}

/* Definitions */

.pb-injury__definitions {
    margin-top: var(--pb-spacing-md);
    margin-bottom: var(--pb-spacing-md);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
}

.pb-injury__definitions summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 14px;
    color: var(--pb-text);
    list-style: none;
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    background: var(--pb-bg-alt);
    border-radius: var(--pb-radius);
    user-select: none;
    transition: background 0.15s;
}

.pb-injury__definitions summary:hover {
    background: var(--pb-border);
}

.pb-injury__definitions summary::-webkit-details-marker {
    display: none;
}

.pb-injury__definitions summary::before {
    content: '\25B6';
    display: inline-block;
    margin-right: var(--pb-spacing-sm);
    font-size: 10px;
    transition: transform 0.2s;
}

.pb-injury__definitions[open] summary::before {
    transform: rotate(90deg);
}

.pb-injury__definitions-content {
    padding: var(--pb-spacing-md);
}

.pb-injury__definitions dl {
    margin: 0;
}

.pb-injury__definitions dt {
    font-weight: 700;
    font-size: 14px;
    margin-top: var(--pb-spacing-sm);
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
}

.pb-injury__definitions dt:first-child {
    margin-top: 0;
}

.pb-injury__definitions dd {
    margin: var(--pb-spacing-xs) 0 0 0;
    font-size: 13px;
    color: var(--pb-text-muted);
    line-height: 1.4;
}

/* Attribution */

.pb-injury__attribution {
    margin-top: var(--pb-spacing-md);
    font-size: 12px;
    color: var(--pb-text-muted);
    text-align: right;
}

.pb-injury__attribution a {
    color: var(--pb-highlight-color);
    text-decoration: none;
}

.pb-injury__attribution a:hover {
    text-decoration: underline;
}

/* ---- Trade Feed ---- */

.pb-trade {
    padding: 0;
}

.pb-trade__notice {
    text-align: center;
    padding: var(--pb-spacing-lg);
    color: var(--pb-text-muted);
    background: var(--pb-bg-alt);
    border-radius: var(--pb-radius);
    border: 1px dashed var(--pb-border);
}

/* Deadline Posture Indicator */

.pb-trade__posture {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-md);
    padding: var(--pb-spacing-md) var(--pb-spacing-lg);
    margin-bottom: var(--pb-spacing-lg);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    background: var(--pb-bg);
}

.pb-trade__posture--selling {
    border-left: 4px solid #dc2626;
    background: rgba(220, 38, 38, 0.03);
}

.pb-trade__posture--buying {
    border-left: 4px solid #16a34a;
    background: rgba(22, 163, 74, 0.03);
}

.pb-trade__posture--holding {
    border-left: 4px solid var(--pb-text-muted);
    background: var(--pb-bg-alt);
}

.pb-trade__posture-badge {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-xs);
    flex-shrink: 0;
}

.pb-trade__posture-icon {
    font-size: 20px;
    line-height: 1;
}

.pb-trade__posture-label {
    font-size: 18px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.pb-trade__posture--selling .pb-trade__posture-label {
    color: #dc2626;
}

.pb-trade__posture--buying .pb-trade__posture-label {
    color: #16a34a;
}

.pb-trade__posture--holding .pb-trade__posture-label {
    color: var(--pb-text-muted);
}

.pb-trade__posture-modifier {
    font-size: 12px;
    font-weight: 600;
    color: var(--pb-text-muted);
    text-transform: lowercase;
}

.pb-trade__posture-details {
    font-size: 15px;
    color: var(--pb-text);
    line-height: 1.4;
}

/* Section Titles */

.pb-trade__section-title {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 1px solid var(--pb-border);
}

/* Trade Cards */

.pb-trade__card-trade {
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    margin-bottom: var(--pb-spacing-md);
    overflow: hidden;
}

.pb-trade__trade-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    background: var(--pb-bg-alt);
    border-bottom: 1px solid var(--pb-border);
}

.pb-trade__trade-header-left {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
    min-width: 0;
}

.pb-trade__trade-partner {
    font-weight: 700;
    font-size: 15px;
}

.pb-trade__trade-date {
    font-size: 13px;
    color: var(--pb-text-muted);
    white-space: nowrap;
}

/* Two-column acquired/sent grid */

.pb-trade__trade-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.pb-trade__trade-col {
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
}

.pb-trade__trade-col--acquired {
    border-left: 3px solid var(--pb-win);
    background: rgba(22, 163, 74, 0.03);
}

.pb-trade__trade-col--sent {
    border-left: 3px solid var(--pb-border);
    background: var(--pb-bg);
}

.pb-trade__col-label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--pb-text-muted);
    margin-bottom: var(--pb-spacing-xs);
}

.pb-trade__trade-details {
    padding: var(--pb-spacing-xs) var(--pb-spacing-md);
    font-size: 13px;
    color: var(--pb-text-muted);
    border-top: 1px solid var(--pb-border);
    background: var(--pb-bg-alt);
    line-height: 1.4;
}

/* Trade Items — Player */

.pb-trade__item {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.pb-trade__item:last-child {
    margin-bottom: 0;
}

.pb-trade__item--player {
    align-items: flex-start;
}

.pb-trade__item-headshot {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
}

.pb-trade__item-img {
    width: 110px;
    height: 110px;
    border-radius: var(--pb-radius);
    object-fit: cover;
    background: var(--pb-bg-alt);
}

.pb-trade__item-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 110px;
    height: 110px;
    border-radius: var(--pb-radius);
    overflow: hidden;
}

.pb-trade__item-info {
    flex: 1;
    min-width: 0;
}

.pb-trade__item-name {
    font-weight: 600;
    font-size: 15px;
    line-height: 1.2;
}

.pb-trade__item-meta {
    font-size: 13px;
    color: var(--pb-text-muted);
    margin-top: 2px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--pb-spacing-xs);
}

.pb-trade__item-meta > span::after {
    content: '\00b7';
    margin-left: var(--pb-spacing-xs);
}

.pb-trade__item-meta > span:last-child::after {
    content: none;
}

.pb-trade__item-pos {
    font-weight: 600;
}

.pb-trade__item-empty {
    color: var(--pb-text-muted);
    font-style: italic;
    font-size: 13px;
}

/* Trade Items — Draft Pick */

.pb-trade__item--pick {
    align-items: center;
    padding: 4px 0;
}

.pb-trade__item-icon {
    color: var(--pb-text-muted);
    font-size: 10px;
    flex-shrink: 0;
    width: 16px;
    text-align: center;
}

.pb-trade__item--pick .pb-trade__item-name {
    font-weight: 500;
    font-size: 15px;
    color: var(--pb-text);
}

.pb-trade__item-conditions {
    font-size: 13px;
    color: var(--pb-text-muted);
    font-style: italic;
    margin-top: 2px;
}

/* Badges */

.pb-trade__badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 2px 6px;
    border-radius: 3px;
    margin-top: 3px;
}

.pb-trade__badge--ufa {
    background: #fef3c7;
    color: #92400e;
}

.pb-trade__badge--retained {
    background: #fef3c7;
    color: #92400e;
}

/* League Activity */

.pb-trade__league {
    margin-bottom: var(--pb-spacing-lg);
}

.pb-trade__league-item {
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    margin-bottom: var(--pb-spacing-xs);
}

.pb-trade__league-summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-sm);
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    font-size: 14px;
    list-style: none;
    user-select: none;
    transition: background 0.15s;
}

.pb-trade__league-summary:hover {
    background: var(--pb-bg-alt);
}

.pb-trade__league-summary::-webkit-details-marker {
    display: none;
}

.pb-trade__league-summary::before {
    content: '\25B6';
    display: inline-block;
    font-size: 9px;
    color: var(--pb-text-muted);
    transition: transform 0.2s;
    flex-shrink: 0;
}

.pb-trade__league-item[open] .pb-trade__league-summary::before {
    transform: rotate(90deg);
}

.pb-trade__league-teams {
    font-weight: 700;
    flex: 1;
}

.pb-trade__league-date {
    font-size: 13px;
    color: var(--pb-text-muted);
    white-space: nowrap;
}

.pb-trade__league-content {
    padding: 0;
    border-top: 1px solid var(--pb-border);
}

/* Deadline Countdown */

.pb-trade__deadline {
    text-align: center;
    padding: var(--pb-spacing-lg);
    margin-top: var(--pb-spacing-md);
    background: var(--pb-bg-alt);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
}

.pb-trade__deadline-title {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--pb-spacing-md);
}

.pb-trade__deadline-countdown {
    margin-bottom: var(--pb-spacing-sm);
}

.pb-trade__deadline-number {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    color: var(--pb-highlight-color);
}

.pb-trade__deadline-unit {
    font-size: 14px;
    font-weight: 600;
    color: var(--pb-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.pb-trade__deadline-date {
    font-size: 14px;
    color: var(--pb-text);
    margin-bottom: var(--pb-spacing-sm);
}

.pb-trade__deadline-volume {
    font-size: 13px;
    color: var(--pb-text-muted);
}

.pb-trade__deadline-freeze {
    margin-top: var(--pb-spacing-sm);
    font-size: 12px;
    color: var(--pb-ot-loss);
    font-style: italic;
}

/* War Chest */

/* Summary Cards */

.pb-trade__war-chest-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--pb-spacing-sm);
    margin-bottom: var(--pb-spacing-lg);
}

.pb-trade__war-chest-card {
    background: var(--pb-bg-alt);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    padding: var(--pb-spacing-md);
    text-align: center;
}

.pb-trade__war-chest-card-label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--pb-text-muted);
    letter-spacing: 0.5px;
    margin-bottom: var(--pb-spacing-xs);
}

.pb-trade__war-chest-card-value {
    font-size: 24px;
    font-weight: 700;
}

.pb-trade__war-chest-card-value--negative {
    color: var(--pb-loss);
}

.pb-trade__war-chest-card-net {
    font-size: 13px;
    font-weight: 600;
    margin-left: 2px;
}

.pb-trade__war-chest-card-net--positive {
    color: var(--pb-win);
}

.pb-trade__war-chest-card-net--negative {
    color: var(--pb-loss);
}

/* Draft Capital */

.pb-trade__war-chest-draft {
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-radius);
    margin-bottom: var(--pb-spacing-lg);
    overflow: hidden;
}

.pb-trade__war-chest-draft-title {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--pb-text-muted);
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    background: var(--pb-bg-alt);
    border-bottom: 1px solid var(--pb-border);
}

.pb-trade__war-chest-year {
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    border-bottom: 1px solid var(--pb-border);
}

.pb-trade__war-chest-year:last-child {
    border-bottom: none;
}

.pb-trade__war-chest-year-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--pb-spacing-xs);
}

.pb-trade__war-chest-year-label {
    font-size: 14px;
    font-weight: 700;
}

.pb-trade__war-chest-year-count {
    font-size: 13px;
    color: var(--pb-text-muted);
}

.pb-trade__war-chest-net--positive {
    color: var(--pb-win);
    font-weight: 600;
}

.pb-trade__war-chest-net--negative {
    color: var(--pb-loss);
    font-weight: 600;
}

.pb-trade__war-chest-picks {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.pb-trade__war-chest-pick {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 10px;
    background: var(--pb-bg-alt);
    border: 1px solid var(--pb-border);
    white-space: nowrap;
}

.pb-trade__war-chest-pick--acquired {
    background: rgba(22, 163, 74, 0.08);
    border-color: rgba(22, 163, 74, 0.3);
    color: #15803d;
}

.pb-trade__war-chest-pick--owed {
    background: rgba(220, 38, 38, 0.06);
    border-color: rgba(220, 38, 38, 0.25);
    color: var(--pb-loss);
    text-decoration: line-through;
    text-decoration-color: var(--pb-loss);
}

.pb-trade__war-chest-pick-origin {
    font-weight: 400;
    font-size: 11px;
}

.pb-trade__war-chest-pick-dest {
    font-weight: 400;
    font-size: 11px;
    text-decoration: none;
}

.pb-trade__war-chest-pick-notice {
    font-size: 13px;
    color: var(--pb-text-muted);
    font-style: italic;
    padding: var(--pb-spacing-xs) 0;
}

/* Pick group labels (Owned / Traded Away) */

.pb-trade__war-chest-pick-group {
    margin-bottom: var(--pb-spacing-xs);
}

.pb-trade__war-chest-pick-group:last-child {
    margin-bottom: 0;
}

.pb-trade__war-chest-pick-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--pb-text-muted);
    margin-bottom: 3px;
}

/* Trade Grade Badges */

.pb-trade__grade {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 4px;
    white-space: nowrap;
    flex-shrink: 0;
}

.pb-trade__grade--positive {
    background: rgba(22, 163, 74, 0.15);
    color: #15803d;
    border: 1px solid rgba(22, 163, 74, 0.25);
}

.pb-trade__grade--neutral {
    background: rgba(217, 119, 6, 0.15);
    color: #92400e;
    border: 1px solid rgba(217, 119, 6, 0.25);
}

.pb-trade__grade--negative {
    background: rgba(220, 38, 38, 0.15);
    color: #b91c1c;
    border: 1px solid rgba(220, 38, 38, 0.25);
}

.pb-trade__grade-arrow {
    font-size: 12px;
    line-height: 1;
}

.pb-trade__grade-text {
    font-size: 12px;
    font-weight: 600;
}

/* Attribution */

.pb-trade__attribution {
    margin-top: var(--pb-spacing-md);
    font-size: 12px;
    color: var(--pb-text-muted);
    text-align: right;
}

.pb-trade__attribution a {
    color: var(--pb-highlight-color);
    text-decoration: none;
}

.pb-trade__attribution a:hover {
    text-decoration: underline;
}

/* ---- Responsive ---- */

@media (max-width: 600px) {
    .pb-games-header {
        font-size: 18px;
    }

    .pb-game {
        padding: var(--pb-spacing-md);
        gap: var(--pb-spacing-xs);
    }

    .pb-game--live {
        padding: calc(var(--pb-spacing-md) - 1px);
    }

    .pb-game__row {
        column-gap: var(--pb-spacing-sm);
    }

    .pb-game__badge {
        position: static;
        transform: none;
        align-self: center;
        margin: 0 0 var(--pb-spacing-xs);
    }

    .pb-game__stars,
    .pb-game__tv,
    .pb-game__records,
    .pb-game__venue {
        font-size: 11px;
    }

    .pb-game__time {
        font-size: 16px;
    }

    .pb-games-header--upcoming {
        font-size: 12px;
    }

    .pb-game .pb-game__logo,
    img.pb-game__logo,
    span.pb-game__logo {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px;
    }

    .pb-game .pb-game__logo--placeholder {
        font-size: 11px;
    }

    .pb-game__logo-link {
        padding: 2px;
        margin: -2px;
    }

    .pb-schedule__header {
        font-size: 18px;
    }

    .pb-schedule__hero {
        padding: var(--pb-spacing-md);
    }

    .pb-schedule__hero-opponent {
        font-size: 16px;
    }

    .pb-schedule__hero-logo {
        width: 32px;
        height: 32px;
    }

    .pb-schedule__hero-score {
        font-size: 18px;
    }

    .pb-schedule__row {
        grid-template-columns: 55px 1fr 40px 65px;
        font-size: 13px;
        padding: var(--pb-spacing-xs) var(--pb-spacing-sm);
    }

    /* Upcoming rows on mobile: keep date/opp/time on one line, wrap the
       Tickets/Watch pills to a second full-width row below. */
    .pb-schedule__row--upcoming {
        grid-template-columns: 55px 1fr auto;
        grid-template-areas:
            "date    opp     time"
            "actions actions actions";
        row-gap: var(--pb-spacing-xs);
    }
    .pb-schedule__row--upcoming .pb-schedule__date     { grid-area: date; }
    .pb-schedule__row--upcoming .pb-schedule__opponent { grid-area: opp; }
    .pb-schedule__row--upcoming .pb-schedule__score    { grid-area: time; }
    .pb-schedule__row--upcoming .pb-schedule__actions  { grid-area: actions; justify-content: flex-start; }

    .pb-schedule__accordion summary {
        padding: var(--pb-spacing-sm);
        -webkit-tap-highlight-color: transparent;
    }

    .pb-schedule__section--upcoming {
        order: -1;
    }

    .pb-standings__table {
        font-size: 13px;
    }

    .pb-standings__table th,
    .pb-standings__table td {
        padding: var(--pb-spacing-xs) 4px;
    }

    .pb-standings__logo {
        display: none;
    }

    .pb-cap__summary {
        grid-template-columns: 1fr;
    }

    .pb-cap__card-value {
        font-size: 16px;
    }

    .pb-cap__breakdown-grid {
        grid-template-columns: 1fr;
    }

    .pb-cap__table {
        font-size: 13px;
    }

    .pb-cap__table th,
    .pb-cap__table td {
        padding: var(--pb-spacing-xs) 4px;
    }

    .pb-injury__summary {
        grid-template-columns: 1fr;
    }

    .pb-injury__card-value {
        font-size: 16px;
    }

    .pb-injury__table {
        font-size: 13px;
    }

    .pb-injury__table th,
    .pb-injury__table td {
        padding: var(--pb-spacing-xs) 4px;
    }

    .pb-injury__col-cap,
    .pb-injury__col-days {
        display: none;
    }

    .pb-injury__returning-grid {
        grid-template-columns: 1fr;
    }

    .pb-injury__returning-card {
        padding: var(--pb-spacing-md);
    }

    .pb-injury__returning-headshot {
        width: 80px;
        height: 80px;
    }

    .pb-injury__returning-img,
    .pb-injury__returning-fallback,
    .pb-injury__returning-fallback svg {
        width: 80px;
        height: 80px;
    }

    .pb-injury__returning-name {
        font-size: 15px;
    }

    .pb-injury__timeline {
        display: none;
    }

    .pb-injury__timeline-name {
        width: 80px;
        font-size: 11px;
    }

    .pb-injury__opponents-grid {
        grid-template-columns: 1fr;
    }

    .pb-trade__war-chest-summary {
        grid-template-columns: 1fr 1fr;
    }

    .pb-trade__war-chest-card-value {
        font-size: 16px;
    }

    .pb-trade__posture {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--pb-spacing-sm);
        padding: var(--pb-spacing-md);
    }

    .pb-trade__posture-details {
        font-size: 13px;
    }

    .pb-trade__trade-body {
        grid-template-columns: 1fr;
    }

    .pb-trade__trade-col--sent {
        border-top: 1px solid var(--pb-border);
    }

    .pb-trade__item-headshot {
        width: 80px;
        height: 80px;
    }

    .pb-trade__item-img,
    .pb-trade__item-fallback,
    .pb-trade__item-fallback svg {
        width: 80px;
        height: 80px;
    }

    .pb-trade__deadline-number {
        font-size: 22px;
    }

    .pb-trade__grade-text {
        display: none;
    }

    .pb-trade__trade-header {
        flex-wrap: wrap;
        gap: var(--pb-spacing-xs);
    }

    .pb-trade__trade-header-left {
        gap: var(--pb-spacing-xs);
    }
}

@media (min-width: 768px) {
    .pb-schedule__columns {
        flex-direction: row;
    }

    .pb-schedule__section {
        flex: 1;
    }

    .pb-cap__summary {
        grid-template-columns: repeat(4, 1fr);
    }

    .pb-injury__summary {
        grid-template-columns: repeat(4, 1fr);
    }

    .pb-trade__war-chest-summary {
        grid-template-columns: repeat(4, 1fr);
    }

    .pb-trade__posture {
        gap: var(--pb-spacing-lg);
    }
}

@media (min-width: 601px) and (max-width: 768px) {
    .pb-game .pb-game__logo,
    img.pb-game__logo,
    span.pb-game__logo {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px;
    }
}

/* ============================================================
   Homepage Widget
   ============================================================ */

.pb-hw {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    border: 1px solid #e5e7eb;
    border-top: 3px solid var(--pb-highlight-color);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.pb-hw__columns {
    display: flex;
    flex-direction: column;
}

.pb-hw__col {
    padding: 14px 16px;
}

.pb-hw__col + .pb-hw__col {
    border-top: 1px solid #e5e7eb;
}

.pb-hw__heading {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--pb-highlight-color);
    margin: 0 0 12px;
}

/* --- Next Game --- */

.pb-hw__matchup {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pb-hw__opponent-logo {
    flex-shrink: 0;
}

.pb-hw__game-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pb-hw__opponent {
    font-weight: 700;
    font-size: 17px;
}

.pb-hw__detail {
    font-size: 14px;
    color: #6b7280;
}

.pb-hw__detail-sep {
    margin: 0 2px;
    color: #9ca3af;
}

.pb-hw__heading--sub {
    margin-top: 14px;
    margin-bottom: 6px;
}

.pb-hw__series {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: -4px 0 14px 0;
    font-size: 12px;
    color: #374151;
    line-height: 1.4;
}

.pb-hw__series-round {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pb-highlight, #0038A8);
    font-size: 11px;
}

.pb-hw__series-game {
    font-weight: 600;
}

.pb-hw__series-state {
    color: #6b7280;
    font-weight: 600;
}

.pb-hw__series-dot {
    color: #d1d5db;
}

.pb-hw__last-game {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: #374151;
}

.pb-hw__last-game-line {
    font-weight: 500;
}

.pb-hw__badge {
    display: inline-block;
    padding: 1px 8px;
    font-size: 14px;
    font-weight: 700;
    border-radius: 4px;
    color: #fff;
    white-space: nowrap;
}

.pb-hw__badge--win {
    background: var(--pb-win, #16a34a);
}

.pb-hw__badge--loss {
    background: var(--pb-loss, #dc2626);
}

.pb-hw__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.pb-hw__ticket-btn {
    display: block;
    padding: 7px 14px;
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    border-radius: 100px;
    transition: opacity 0.15s;
    text-align: center;
}

.pb-hw__ticket-btn:hover {
    opacity: 0.9;
    color: var(--pb-highlight-text) !important;
}

.pb-hw__schedule-link {
    display: block;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--pb-highlight-color) !important;
    text-align: center;
    text-decoration: none;
    border: 2px solid var(--pb-highlight-color);
    border-radius: 100px;
    transition: background 0.15s, color 0.15s;
}

.pb-hw__schedule-link:hover {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
}

/* --- Cap Snapshot — Donut Chart --- */

.pb-hw__donut-wrap {
    display: flex;
    align-items: center;
    gap: 14px;
}

.pb-hw__donut {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
}

.pb-hw__donut-hole {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 58%;
    height: 58%;
    background: #fff;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.pb-hw__donut-legend {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 12px;
    color: #374151;
}

.pb-hw__legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.pb-hw__legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pb-hw__cap-total {
    margin-top: 14px;
    font-size: 12px;
    color: #6b7280;
    text-align: center;
}

.pb-hw__cap-total-value {
    display: block;
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    font-variant-numeric: tabular-nums;
}

/* --- Top Players --- */

.pb-hw__players-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.pb-hw__players-table th {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    color: #6b7280;
    padding: 0 0 4px;
    text-align: center;
}

.pb-hw__players-table th:nth-child(2) {
    text-align: left;
}

.pb-hw__players-table td {
    padding: 2px 0;
    text-align: center;
}

.pb-hw__rank {
    color: #9ca3af;
    font-size: 13px;
    font-weight: 700;
    width: 20px;
}

.pb-hw__player-name {
    text-align: left !important;
    font-weight: 700;
    font-size: 14px;
}

.pb-hw__player-pos {
    font-weight: 400;
    color: #6b7280;
    margin-left: 4px;
    font-size: 12px;
}

.pb-hw__player-cap {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    text-align: right !important;
}

/* --- Desktop: three-column layout --- */

@media (min-width: 768px) {
    .pb-hw__columns {
        flex-direction: row;
    }

    .pb-hw__col {
        flex: 1;
        min-width: 0;
    }

    .pb-hw__col + .pb-hw__col {
        border-top: none;
        border-left: 1px solid #e5e7eb;
    }
}

/* --- Homepage Widget: league-wide variant --- */

.pb-hw--league .pb-hw__col {
    padding: 20px;
}

.pb-hw__slate-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pb-hw__slate-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #f3f4f6;
    font-size: 14px;
}

.pb-hw__slate-row:last-child {
    border-bottom: none;
}

.pb-hw__slate-teams {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.pb-hw__slate-abbr {
    letter-spacing: 0.02em;
}

.pb-hw__slate-at {
    color: #9ca3af;
    font-weight: 400;
}

.pb-hw__slate-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #6b7280;
    font-size: 13px;
}

.pb-hw__slate-score {
    font-weight: 700;
    color: #111827;
    font-variant-numeric: tabular-nums;
}

.pb-hw__slate-tag {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 2px 6px;
    border-radius: 3px;
    background: #e5e7eb;
    color: #374151;
}

.pb-hw__slate-tag--live {
    background: #ef4444;
    color: #fff;
}

.pb-hw__slate-time {
    font-variant-numeric: tabular-nums;
}

.pb-hw__div-leaders {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.pb-hw__div-leaders td {
    padding: 8px 4px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.pb-hw__div-leaders tr:last-child td {
    border-bottom: none;
}

.pb-hw__div-label {
    color: #6b7280;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
    width: 1%;
}

.pb-hw__div-team strong {
    margin-right: 6px;
}

.pb-hw__div-name {
    color: #6b7280;
    font-size: 13px;
}

.pb-hw__div-record {
    color: #6b7280;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.pb-hw__div-pts {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
    width: 1%;
}

.pb-hw__div-pts-label {
    color: #9ca3af;
    font-weight: 400;
    font-size: 11px;
    margin-left: 2px;
}

.pb-hw__empty {
    color: #6b7280;
    font-style: italic;
    padding: 12px 0;
    font-size: 14px;
}

/* --- Homepage Widget: team offseason card (null next_game) --- */

.pb-hw__offseason-card {
    padding: 8px 0;
}

.pb-hw__offseason-headline {
    font-size: 15px;
    color: #374151;
    margin: 0 0 10px 0;
}

.pb-hw__offseason-sub {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #9ca3af;
    margin: 14px 0 6px 0;
}

/* --- Roster --- */

.pb-roster {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    color: #111827;
}

.pb-roster__notice {
    padding: 24px;
    text-align: center;
    color: #6b7280;
    font-style: italic;
}

.pb-roster__header {
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    background: linear-gradient(180deg, var(--pb-highlight-color-light, #f3f4f6) 0%, #fff 100%);
}

.pb-roster__title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
}

.pb-roster__section {
    padding: 12px 20px 20px;
    border-bottom: 1px solid #f3f4f6;
}

.pb-roster__section:last-child {
    border-bottom: none;
}

.pb-roster__section-title {
    margin: 8px 0 10px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #6b7280;
    font-weight: 600;
}

.pb-roster__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

.pb-roster__table th,
.pb-roster__table td {
    padding: 8px 8px;
    text-align: left;
    border-bottom: 1px solid #f3f4f6;
}

.pb-roster__table thead th {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #9ca3af;
    font-weight: 700;
    border-bottom: 2px solid #e5e7eb;
}

.pb-roster__table tbody tr:last-child td {
    border-bottom: none;
}

.pb-roster__col-num,
.pb-roster__col-age,
.pb-roster__col-wt,
.pb-roster__col-pos,
.pb-roster__col-shoots {
    text-align: center;
    width: 1%;
    white-space: nowrap;
}

.pb-roster__col-num {
    color: var(--pb-highlight-color, #0038A8);
    font-weight: 600;
}

.pb-roster__col-name a {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
}

.pb-roster__col-name a:hover {
    text-decoration: underline;
}

@media (max-width: 640px) {
    .pb-roster__table {
        font-size: 13px;
    }

    .pb-roster__table th,
    .pb-roster__table td {
        padding: 6px 4px;
    }

    .pb-roster__col-ht,
    .pb-roster__col-wt {
        display: none;
    }
}

/* ─────────────────────────────────────────────────────────────────────── */
/* Team Tag Page — mirrors Press Box MLB design language                   */
/* No gradients. Solid surfaces, single-row record bar, pill tabs,         */
/* sectioned today panel.                                                  */
/* ─────────────────────────────────────────────────────────────────────── */

.pb-team-tag {
    border: 1px solid var(--pb-border);
    border-top: 3px solid var(--pb-highlight-color);
    border-radius: var(--pb-radius);
    overflow: hidden;
    background: var(--pb-bg);
    color: var(--pb-text);
    margin-bottom: var(--pb-spacing-lg);
}

/* RECORD BAR — single horizontal line with logo, name+record, points,
   streak chip, IL badge. Solid bg-alt surface, no gradient. */
.pb-team-tag__record {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--pb-spacing-sm) var(--pb-spacing-md);
    padding: var(--pb-spacing-md) var(--pb-spacing-lg);
    background: var(--pb-bg-alt);
    border-bottom: 1px solid var(--pb-border);
}

/* Header logo intentionally larger than the inline `width="36"` HTML
   attribute — the !important defeats themes that ship a default
   `.entry-content img { height: auto }` rule. */
.pb-team-tag__logo {
    width: 88px !important;
    height: 88px !important;
    object-fit: contain;
    flex-shrink: 0;
    max-width: none !important;
}

.pb-team-tag__record-text {
    font-size: 20px;
    font-weight: 700;
    color: var(--pb-text);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
}

.pb-team-tag__record-detail {
    font-size: 14px;
    color: var(--pb-text-muted);
    font-variant-numeric: tabular-nums;
}

.pb-team-tag__record-streak {
    font-size: 13px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--pb-radius);
    background: var(--pb-bg);
    border: 1px solid var(--pb-border);
    color: var(--pb-text);
    font-variant-numeric: tabular-nums;
}

.pb-team-tag__record-streak[data-code="W"] {
    background: var(--pb-win);
    color: #fff;
    border-color: var(--pb-win);
}

.pb-team-tag__record-streak[data-code="L"] {
    background: var(--pb-loss);
    color: #fff;
    border-color: var(--pb-loss);
}

.pb-team-tag__il-badge {
    appearance: none;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: var(--pb-radius);
    background: var(--pb-injury-dtd, #ca8a04);
    color: #fff;
    border: 0;
    cursor: pointer;
    transition: opacity 0.15s ease;
}

.pb-team-tag__il-badge:hover,
.pb-team-tag__il-badge:focus-visible {
    opacity: 0.88;
    outline: none;
}

/* TABS — pill style. Active tab = filled with team highlight color
   (matches MLB exactly). Inactive: muted text, hover bg-alt. */
.pb-team-tag__tabs {
    display: flex;
    gap: var(--pb-spacing-xs);
    padding: var(--pb-spacing-sm) var(--pb-spacing-lg);
    border-bottom: 1px solid var(--pb-border);
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.pb-team-tag__tabs::-webkit-scrollbar {
    display: none;
}

.pb-team-tag__tab {
    appearance: none;
    background: none;
    border: 1px solid transparent;
    border-radius: var(--pb-radius);
    padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--pb-text-muted);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.pb-team-tag__tab:hover {
    color: var(--pb-text);
    background: var(--pb-bg-alt);
}

.pb-team-tag__tab:focus-visible {
    outline: 2px solid var(--pb-highlight-color);
    outline-offset: -1px;
}

.pb-team-tag__tab--active,
.pb-team-tag__tab--active:hover {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text);
    border-color: var(--pb-highlight-color);
    font-weight: 700;
}

/* PANELS */
.pb-team-tag__panel {
    padding: var(--pb-spacing-md) var(--pb-spacing-lg) var(--pb-spacing-lg);
}

.pb-team-tag__panel[hidden] {
    display: none;
}

.pb-team-tag__panel-loading {
    padding: var(--pb-spacing-lg) 0;
    text-align: center;
    color: var(--pb-text-muted);
    font-size: 14px;
    font-style: italic;
}

.pb-team-tag__panel-error {
    padding: var(--pb-spacing-md);
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
    border-radius: var(--pb-radius);
    font-size: 14px;
}

/* Lazy-loaded child blocks have their own borders/margins — strip them
   when nested inside a panel so they sit cleanly. */
.pb-team-tag__panel .pb-schedule,
.pb-team-tag__panel .pb-standings,
.pb-team-tag__panel .pb-roster,
.pb-team-tag__panel .pb-injury-report,
.pb-team-tag__panel .pb-trade {
    border: none;
    border-radius: 0;
    margin-bottom: 0;
    padding: 0;
}

/* TODAY BODY — 2-col on desktop (games left, future leaders/extras right),
   stacks on mobile. NHL has no leaders today, so games-col is full width. */
.pb-team-tag__body {
    display: flex;
    gap: var(--pb-spacing-lg);
}

.pb-team-tag__games-col {
    flex: 1;
    min-width: 0;
}

.pb-team-tag__leaders-col {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--pb-spacing-md);
}

.pb-team-tag__leader {
    display: flex;
    align-items: baseline;
    gap: var(--pb-spacing-sm);
    padding: 4px 0;
    font-size: 14px;
    border-bottom: 1px solid var(--pb-border);
}

.pb-team-tag__leader:last-child {
    border-bottom: none;
}

.pb-team-tag__leader-name {
    font-weight: 700;
    color: var(--pb-text);
    flex-shrink: 0;
}

.pb-team-tag__leader-name a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
    transition: color 0.15s, border-color 0.15s;
}

.pb-team-tag__leader-name a:hover,
.pb-team-tag__leader-name a:focus-visible {
    color: var(--pb-highlight-color);
    border-bottom-color: var(--pb-highlight-color);
    outline: none;
}

.pb-team-tag__leader-pos {
    font-size: 11px;
    font-weight: 600;
    color: var(--pb-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.pb-team-tag__leader-stat {
    margin-left: auto;
    font-size: 12px;
    color: var(--pb-text-muted);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

/* SECTION (Last Game / Next Game) */
.pb-team-tag__section {
    margin-bottom: var(--pb-spacing-md);
}

.pb-team-tag__section:last-child {
    margin-bottom: 0;
}

.pb-team-tag__section-title {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--pb-text-muted);
    margin: 0 0 var(--pb-spacing-sm);
    padding-bottom: var(--pb-spacing-xs);
    border-bottom: 1px solid var(--pb-border);
}

/* GAME ROW */
.pb-team-tag__game {
    display: flex;
    align-items: center;
    gap: var(--pb-spacing-md);
    padding: var(--pb-spacing-sm) 0;
    border-bottom: 1px solid var(--pb-border);
    font-size: 14px;
}

.pb-team-tag__game:last-child {
    border-bottom: none;
}

.pb-team-tag__game--last {
    gap: var(--pb-spacing-sm);
}

.pb-team-tag__game--last .pb-team-tag__game-opp {
    flex: none;
}

/* RESULT BADGE — filled rounded rect, semantic background. */
.pb-team-tag__result-badge {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    font-size: 12px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: var(--pb-radius);
    color: #fff;
    line-height: 1.4;
    flex-shrink: 0;
}

.pb-team-tag__result-badge--w {
    background: var(--pb-win);
}

.pb-team-tag__result-badge--l {
    background: var(--pb-loss);
}

.pb-team-tag__result-badge--otl {
    background: var(--pb-ot-loss);
}

.pb-team-tag__ot {
    font-size: 10px;
    font-weight: 600;
    opacity: 0.9;
    letter-spacing: 0.04em;
}

.pb-team-tag__game-score {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--pb-text);
}

.pb-team-tag__game-opp {
    flex: 1;
    font-weight: 600;
    color: var(--pb-text);
    min-width: 0;
}

.pb-team-tag__opp-logo {
    object-fit: contain;
    flex-shrink: 0;
}

.pb-team-tag__game-time {
    font-size: 13px;
    white-space: nowrap;
    color: var(--pb-text);
    font-variant-numeric: tabular-nums;
}

.pb-team-tag__game-broadcast {
    font-size: 13px;
    color: var(--pb-text-muted);
    font-style: italic;
    white-space: nowrap;
}

.pb-team-tag__game-broadcast a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
    transition: color 0.15s, border-color 0.15s;
}

.pb-team-tag__game-broadcast a:hover {
    color: var(--pb-highlight-color);
    border-bottom-color: var(--pb-highlight-color);
}

/* GAME ACTIONS — Tickets / Watch icons */
.pb-team-tag__game-actions {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    margin-left: auto;
}

.pb-team-tag__action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--pb-bg);
    border: 1px solid var(--pb-border);
    border-radius: 50%;
    font-size: 13px;
    line-height: 1;
    text-decoration: none;
    color: var(--pb-text);
    transition: background-color 0.15s, border-color 0.15s, transform 0.1s;
}

.pb-team-tag__action-icon:hover {
    background: var(--pb-highlight-color-light, var(--pb-bg-alt));
    border-color: var(--pb-highlight-color);
    text-decoration: none;
}

.pb-team-tag__action-icon:active {
    transform: translateY(1px);
}

/* MOBILE — stack body, tighter padding. */
@media (max-width: 600px) {
    .pb-team-tag__record {
        gap: var(--pb-spacing-xs) var(--pb-spacing-sm);
        padding: var(--pb-spacing-sm) var(--pb-spacing-md);
    }
    .pb-team-tag__record-text {
        font-size: 18px;
    }
    .pb-team-tag__logo {
        width: 64px !important;
        height: 64px !important;
    }
    .pb-team-tag__tabs {
        padding: var(--pb-spacing-sm);
    }
    .pb-team-tag__panel {
        padding: var(--pb-spacing-sm) var(--pb-spacing-md) var(--pb-spacing-md);
    }
    .pb-team-tag__body {
        flex-direction: column;
        gap: var(--pb-spacing-md);
    }
    .pb-team-tag__game {
        flex-wrap: wrap;
        gap: var(--pb-spacing-xs) var(--pb-spacing-sm);
    }
    .pb-team-tag__game-actions {
        margin-left: 0;
    }
}

/* --- Tag archive wrapper (loop_start-injected Player Card / Team Tag Page) --- */

.pb-tag-archive-header {
    margin: 0 0 24px;
}

/* --- Player Card --- */

.pb-player-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    color: #111827;
}

.pb-player-card__notice {
    padding: 24px;
    text-align: center;
    color: #6b7280;
    font-style: italic;
}

.pb-player-card__header {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    background: linear-gradient(180deg, var(--pb-highlight-color-light, #f3f4f6) 0%, #fff 100%);
}

.pb-player-card__headshot {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    background: #f3f4f6;
    flex-shrink: 0;
}

.pb-player-card__identity {
    flex: 1;
    min-width: 0;
}

.pb-player-card__team {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    color: #6b7280;
    margin-bottom: 4px;
}

.pb-player-card__team-logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.pb-player-card__name {
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.2;
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

.pb-player-card__number {
    color: var(--pb-highlight-color, #0038A8);
    font-weight: 700;
}

.pb-player-card__position {
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    background: var(--pb-highlight-color, #0038A8);
    padding: 2px 6px;
    border-radius: 3px;
    letter-spacing: 0.5px;
}

.pb-player-card__status {
    margin: 4px 0 0;
    font-size: 12px;
    color: #9ca3af;
    font-style: italic;
}

.pb-player-card__bio dl {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 16px;
    row-gap: 6px;
    padding: 16px 20px;
    margin: 0;
    font-size: 14px;
    border-bottom: 1px solid #f3f4f6;
}

.pb-player-card__bio dt {
    color: #6b7280;
    font-weight: 500;
}

.pb-player-card__bio dd {
    margin: 0;
    color: #111827;
}

.pb-player-card__age {
    color: #9ca3af;
    font-size: 13px;
    margin-left: 4px;
}

.pb-player-card__stats {
    padding: 16px 20px;
    border-bottom: 1px solid #f3f4f6;
    overflow-x: auto;
}

.pb-player-card__stats h3 {
    margin: 0 0 8px;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #6b7280;
    font-weight: 700;
}

.pb-player-card__stats-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

.pb-player-card__stats-table th,
.pb-player-card__stats-table td {
    padding: 6px 8px;
    text-align: right;
    border-bottom: 1px solid #f3f4f6;
}

.pb-player-card__stats-table th:first-child,
.pb-player-card__stats-table td:first-child {
    text-align: left;
}

.pb-player-card__stats-table th {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #9ca3af;
    font-weight: 600;
}

.pb-player-card__stats-table tbody tr:last-child td {
    border-bottom: none;
}

.pb-player-card__footer {
    padding: 12px 20px;
    font-size: 13px;
    text-align: right;
}

.pb-player-card__footer a {
    color: var(--pb-highlight-color, #0038A8);
    text-decoration: none;
}

.pb-player-card__footer a:hover {
    text-decoration: underline;
}

@media (max-width: 480px) {
    .pb-player-card__header {
        flex-direction: column;
        text-align: center;
    }

    .pb-player-card__name {
        justify-content: center;
    }

    .pb-player-card__bio dl {
        grid-template-columns: 1fr;
        row-gap: 2px;
    }

    .pb-player-card__bio dt {
        margin-top: 8px;
    }
}

/* Broadcast-name → streaming-partner links inherit container color with hover underline. */
.pb-game__tv a,
.pb-hw__tv-link,
.pb-schedule__hero-tv-link {
    color: inherit;
    text-decoration: none;
}
.pb-game__tv a:hover,
.pb-hw__tv-link:hover,
.pb-schedule__hero-tv-link:hover {
    text-decoration: underline;
}

/* Games Today card: Watch + Tickets pill buttons on upcoming games. */
.pb-game__actions {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 6px;
}
.pb-game__action {
    display: inline-block;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 100px;
    text-decoration: none;
    transition: opacity 0.15s;
}
.pb-game__action--watch {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
}
.pb-game__action--tickets {
    border: 1px solid var(--pb-highlight-color);
    color: var(--pb-highlight-color) !important;
}
.pb-game__action:hover {
    opacity: 0.85;
    text-decoration: none;
}

/* Schedule compact row: Tickets + Watch pill buttons on upcoming rows.
   Sized to sit alongside the time on a single line; mobile wraps below. */
.pb-schedule__actions {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
}
.pb-schedule__action-btn {
    display: inline-block;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    border-radius: 100px;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity 0.15s;
}
.pb-schedule__action-btn--tickets {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
}
.pb-schedule__action-btn--watch {
    border: 1px solid var(--pb-highlight-color);
    color: var(--pb-highlight-color) !important;
}
.pb-schedule__action-btn:hover {
    opacity: 0.85;
    text-decoration: none;
}

/* Schedule hero: Tickets + Watch pill buttons on upcoming state. */
.pb-schedule__hero-actions {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 10px;
}
.pb-schedule__hero-btn {
    display: inline-block;
    padding: 7px 16px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 100px;
    text-decoration: none;
    transition: opacity 0.15s;
}
.pb-schedule__hero-btn--tickets {
    background: var(--pb-highlight-color);
    color: var(--pb-highlight-text) !important;
}
.pb-schedule__hero-btn--watch {
    border: 1px solid var(--pb-highlight-color);
    color: var(--pb-highlight-color) !important;
}
.pb-schedule__hero-btn:hover {
    opacity: 0.85;
    text-decoration: none;
}

/* (Team Tag Page styles consolidated above — see "/* --- Team Tag Page" block.) */
