html {
  font-size: 14px;
}

/* Matchup details */
.matchup-tiebreak-score { align-items: center; align-self: flex-end; background: color-mix(in srgb, var(--bs-warning) 14%, transparent); border: 1px solid color-mix(in srgb, var(--bs-warning) 55%, transparent); border-radius: .55rem; display: inline-flex; gap: .5rem; padding: .35rem .7rem; }
.matchup-tiebreak-score span, .tiebreak-player-label { color: var(--bs-warning-text-emphasis); font-size: .65rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.table > tbody > tr.tiebreak-player-7 > * { background-color: rgba(116, 83, 18, .72); }
.table > tbody > tr.tiebreak-player-8 > * { background-color: rgba(22, 74, 111, .74); }
.table > tbody > tr.tiebreak-player-extra > * { background-color: rgba(69, 55, 96, .72); }
html[data-theme="light"] .table > tbody > tr.tiebreak-player-7 > * { background-color: #f5e5b5; }
html[data-theme="light"] .table > tbody > tr.tiebreak-player-8 > * { background-color: #cfe7f7; }
html[data-theme="light"] .table > tbody > tr.tiebreak-player-extra > * { background-color: #e3d9f2; }

:root {
  --background: #111418;
  --surface: #171b21;
  --surface-elevated: #1d232b;
  --surface-hover: #232b34;
  --text-primary: #f4f7fa;
  --text-secondary: #c0c8d2;
  --text-muted: #8f9ba8;
  --text-disabled: #66717d;
  --border-subtle: #252c34;
  --border-default: #323b46;
  --border-strong: #46515d;
  --primary: #16b8a6;
  --secondary: #f49b43;
  --accent: #7da2ff;
  --success: #35c779;
  --warning: #e5b449;
  --danger: #ef6464;
  --info: #55b9f3;
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --sticky-rank-width: 48px;
  --sticky-player-width: 304px;
  --sticky-position-width: 88px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.roster-screen {
  color: var(--text-primary);
  background: var(--background);
  border: 1px solid var(--border-subtle);
  margin-left: 50%;
  min-height: calc(100vh - 128px);
  padding: var(--space-1);
  transform: translateX(-50%);
  width: min(1680px, calc(100vw - 16px));
}

.roster-screen h1,
.roster-screen h2,
.roster-screen p {
  margin: 0;
}

.roster-empty-state {
  background: var(--surface);
  border: 1px solid var(--border-default);
  color: var(--text-secondary);
  padding: var(--space-2);
}

.roster-header {
  align-items: center;
  display: flex;
  gap: var(--space-1);
  justify-content: space-between;
  margin-bottom: var(--space-1);
  min-height: 40px;
}

.roster-franchise {
  align-items: center;
  display: flex;
  gap: var(--space-1);
  min-width: 0;
}

.roster-logo {
  align-items: center;
  background: var(--surface-elevated);
  border: 1px solid var(--border-strong);
  color: var(--primary);
  display: flex;
  flex: 0 0 72px;
  font-size: 0.72rem;
  font-weight: 700;
  height: 72px;
  justify-content: center;
  line-height: 1;
  width: 72px;
}
.roster-logo img { height: 100%; object-fit: contain; padding: .25rem; width: 100%; }

.roster-franchise h1 {
  color: var(--text-primary);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.15;
}

.roster-meta {
  color: var(--text-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.72rem;
  gap: var(--space-1);
  margin-top: 2px;
}

.roster-team-switcher {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 320px;
}

.roster-team-switcher label {
  color: var(--text-muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.roster-team-switcher select {
  background: var(--surface);
  border: 1px solid var(--border-default);
  color: var(--text-primary);
  min-height: 28px;
  padding: 2px var(--space-1);
  width: 100%;
}

.roster-summary {
  background: var(--surface);
  border: 1px solid var(--border-default);
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: var(--space-1);
}

.roster-metric {
  border-right: 1px solid var(--border-subtle);
  display: flex;
  gap: 6px;
  align-items: baseline;
  justify-content: space-between;
  flex: 1 1 220px;
  min-width: 0;
  padding: 6px var(--space-1);
}

.roster-metric:last-child {
  border-right: 0;
}

.roster-metric span {
  color: var(--text-muted);
  display: inline;
  font-size: 0.7rem;
  line-height: 1.2;
  margin-bottom: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.roster-metric strong {
  color: var(--text-primary);
  display: inline;
  font-size: 0.9rem;
  line-height: 1.2;
  white-space: nowrap;
}

.is-danger {
  color: var(--danger) !important;
}

.is-warning {
  color: var(--warning) !important;
}

.roster-table-shell {
  background: var(--surface);
  border: 1px solid var(--border-default);
}

.roster-table-scroll {
  max-height: calc(100vh - 248px);
  overflow: auto;
  position: relative;
}

.roster-table {
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.82rem;
  min-width: 1120px;
  width: 100%;
}

.roster-table th,
.roster-table td {
  background: var(--surface);
  border-bottom: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  height: 36px;
  padding: 5px var(--space-1);
  vertical-align: middle;
  white-space: nowrap;
}

.roster-table thead th {
  background: var(--surface);
  border-bottom: 1px solid var(--border-strong);
  color: var(--text-secondary);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0;
  position: sticky;
  text-transform: uppercase;
  top: 0;
  z-index: 5;
}

.roster-table tbody tr:hover td {
  background: var(--surface-hover);
}

.roster-table tfoot th {
  background: var(--surface-elevated);
  border-top: 1px solid var(--border-default);
  color: var(--text-primary);
  height: 32px;
  font-weight: 700;
}

.sticky-col {
  position: sticky;
  z-index: 4;
}

.roster-table thead .sticky-col {
  z-index: 7;
}

.roster-table tfoot .sticky-col {
  z-index: 6;
}

.sticky-rank {
  left: 0;
  min-width: var(--sticky-rank-width);
  width: var(--sticky-rank-width);
}

.sticky-player {
  left: var(--sticky-rank-width);
  min-width: var(--sticky-player-width);
  width: var(--sticky-player-width);
}

.sticky-position {
  left: calc(var(--sticky-rank-width) + var(--sticky-player-width));
  min-width: var(--sticky-position-width);
  width: var(--sticky-position-width);
}

.sticky-position::after {
  background: var(--border-strong);
  content: "";
  height: 100%;
  position: absolute;
  right: -1px;
  top: 0;
  width: 1px;
}

.money-col {
  min-width: 128px;
  text-align: right;
}

.picks-col {
  color: var(--text-secondary);
  font-weight: 500;
  line-height: 1.35;
  text-align: right;
  white-space: nowrap;
}

.picks-col span {
  display: block;
}

.action-col {
  min-width: 72px;
  text-align: center;
}

.roster-rank {
  color: var(--text-muted);
  text-align: center;
}

.roster-player-name {
  color: var(--text-primary);
  font-weight: 650;
  max-width: calc(var(--sticky-player-width) - 24px);
  overflow: hidden;
  text-overflow: ellipsis;
}

.roster-player-note,
.muted-cell {
  color: var(--text-muted);
}

.roster-player-note {
  font-size: 0.72rem;
  line-height: 1.1;
  margin-top: 2px;
}

.icon-button {
  align-items: center;
  background: var(--surface-elevated);
  border: 1px solid var(--border-default);
  color: var(--text-secondary);
  display: inline-flex;
  font-size: 0.7rem;
  height: 22px;
  justify-content: center;
  line-height: 1;
  margin: 0 2px;
  padding: 0;
  width: 22px;
}

.icon-button:hover {
  background: var(--surface-hover);
  border-color: var(--primary);
  color: var(--text-primary);
}

.roster-secondary {
  display: grid;
  gap: var(--space-1);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  margin-top: var(--space-1);
}

.roster-secondary > div {
  background: var(--surface);
  border: 1px solid var(--border-default);
  min-width: 0;
  padding: var(--space-1);
}

.roster-secondary h2 {
  color: var(--text-primary);
  font-size: 0.95rem;
  margin-bottom: var(--space-1);
}

.roster-secondary p {
  color: var(--text-muted);
}

.roster-secondary ul {
  display: grid;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.roster-secondary li {
  align-items: center;
  border-bottom: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  display: flex;
  gap: var(--space-1);
  justify-content: space-between;
  padding-bottom: 6px;
}

.roster-secondary li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.roster-secondary strong {
  color: var(--text-primary);
  font-weight: 650;
  text-align: right;
}

@media (max-width: 767.98px) {
  :root {
    --sticky-rank-width: 28px;
    --sticky-player-width: 132px;
    --sticky-position-width: 52px;
  }

  .roster-screen {
    padding: var(--space-1);
    width: calc(100vw - 16px);
  }

  .roster-header {
    align-items: stretch;
    flex-direction: column;
  }

  .roster-team-switcher {
    min-width: 0;
    width: 100%;
  }

  .roster-summary,
  .roster-secondary {
    grid-template-columns: 1fr 1fr;
  }

  .roster-table-scroll {
    max-height: none;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }

  .roster-table {
    font-size: .76rem;
  }

  .roster-table th,
  .roster-table td {
    height: 34px;
    padding-left: 6px;
    padding-right: 6px;
  }

  .roster-table .sticky-rank {
    display: table-cell;
    min-width: var(--sticky-rank-width);
    padding-left: 2px;
    padding-right: 2px;
    width: var(--sticky-rank-width);
  }

  .roster-table .sticky-player {
    left: var(--sticky-rank-width);
    min-width: var(--sticky-player-width);
    width: var(--sticky-player-width);
  }

  .roster-table .sticky-position {
    left: calc(var(--sticky-rank-width) + var(--sticky-player-width));
    min-width: var(--sticky-position-width);
    position: sticky;
    width: var(--sticky-position-width);
  }

  .roster-table .sticky-position::after {
    display: block;
  }

  .roster-player-name {
    max-width: calc(var(--sticky-player-width) - 12px);
  }

  .roster-table .money-col {
    font-size: .68rem;
    max-width: 82px;
    min-width: 82px;
    padding-left: 3px;
    padding-right: 3px;
    width: 82px;
  }
}
.league-screen {
  background: var(--background);
  border: 1px solid var(--border-subtle);
  color: var(--text-primary);
  margin-left: 50%;
  min-height: calc(100vh - 128px);
  padding: var(--space-2);
  transform: translateX(-50%);
  width: min(1680px, calc(100vw - 16px));
}

.league-screen .text-muted { color: var(--text-muted) !important; }
.league-screen .card,
.league-screen .card-header,
.league-screen .card-footer {
  background: var(--surface);
  border-color: var(--border-default);
  color: var(--text-primary);
}
.league-screen .card-header { background: var(--surface-elevated); }
.league-screen .table { --bs-table-bg: var(--surface); --bs-table-color: var(--text-secondary); --bs-table-border-color: var(--border-subtle); color: var(--text-secondary); }
.league-screen .table > :not(caption) > * > * { background: var(--surface); color: var(--text-secondary); }
.league-screen .table tbody tr:hover > * { background: var(--surface-hover); }
.league-screen .table .table-success > * { background: rgba(53, 199, 121, 0.14); color: var(--text-primary); }
.league-screen .form-control,
.league-screen .form-select {
  background-color: var(--surface);
  border-color: var(--border-default);
  color: var(--text-primary);
}
.league-screen .form-label { color: var(--text-muted); font-size: 0.75rem; text-transform: uppercase; }
.league-screen a { color: var(--primary); }
.league-screen a.card { color: var(--text-primary) !important; }
.league-screen .btn-outline-secondary { border-color: var(--border-strong); color: var(--text-secondary); }
.league-screen .btn-outline-secondary:hover { background: var(--surface-hover); color: var(--text-primary); }
.league-screen .border-bottom { border-color: var(--border-default) !important; }
.league-screen .border-warning { border-color: var(--warning) !important; }
.title-trophy { line-height: 1; min-width: 40px; text-align: center; }
.title-label { letter-spacing: .04em; text-transform: uppercase; }
.titles-season-grid { display: grid; gap: .75rem; }
.titles-season-grid .card-body { justify-content: center; text-align: center; }
.titles-season-airball { display: flex; justify-content: center; }
.titles-season-airball > .card { max-width: 580px; min-width: min(100%, 420px); width: 70%; }
.titles-season-conferences { display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.titles-season-divisions { display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.titles-season-divisions .card-body { padding: .75rem; }
.titles-season-divisions .title-label { font-size: .58rem !important; }
@media (max-width: 760px) {
  .titles-season-airball > .card { min-width: 0; width: 100%; }
  .titles-season-conferences { grid-template-columns: 1fr; }
  .titles-season-divisions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.roster-meta a,
.roster-trophies a { color: var(--primary); text-decoration: none; }
.roster-trophies { flex-basis: 340px; }

@media (max-width: 767.98px) {
  .league-screen { padding: var(--space-1); width: calc(100vw - 16px); }
}

/* Shared visual shell for every application screen. */
.app-shell {
  background: var(--background);
  border: 1px solid var(--border-subtle);
  color: var(--text-primary);
  margin-left: 50%;
  min-height: calc(100vh - 8.5rem);
  padding: 1.5rem clamp(1rem, 3vw, 3rem) 2.5rem;
  transform: translateX(-50%);
  width: 100vw;
}
.app-shell > .league-screen,
.app-shell > .roster-screen {
  border: 0;
  margin: 0;
  min-height: auto;
  padding: 0;
  transform: none;
  width: 100%;
}
.app-shell .text-muted { color: var(--text-muted) !important; }
.app-shell .card,
.app-shell .card-header,
.app-shell .card-footer { background: var(--surface); border-color: var(--border-default); color: var(--text-primary); }
.app-shell .card-header { background: var(--surface-elevated); }
.app-shell .table { --bs-table-bg: var(--surface); --bs-table-color: var(--text-secondary); --bs-table-border-color: var(--border-subtle); color: var(--text-secondary); }
.app-shell .table > :not(caption) > * > * { background: var(--surface); color: var(--text-secondary); }
.app-shell .table tbody tr:hover > * { background: var(--surface-hover); }
.app-shell .table .table-success > * { background: rgba(53, 199, 121, 0.14); color: var(--text-primary); }
.app-shell .form-control,
.app-shell .form-select { background-color: var(--surface); border-color: var(--border-default); color: var(--text-primary); }
.app-shell .form-label { color: var(--text-muted); font-size: .75rem; text-transform: uppercase; }
.app-shell a { color: var(--primary); }
.app-shell .btn-outline-secondary { border-color: var(--border-strong); color: var(--text-secondary); }
.app-shell .btn-outline-secondary:hover { background: var(--surface-hover); color: var(--text-primary); }
.app-shell .border-bottom { border-color: var(--border-default) !important; }
.app-shell .team-table tbody tr:nth-child(odd) > * { background: var(--surface); }
.app-shell .team-table tbody tr:nth-child(even) > * { background: var(--surface-elevated); }
.app-shell .team-table tbody tr:hover > * { background: var(--surface-hover); }
.app-shell .team-table td { border-bottom-color: transparent; }
/* Classification hub */
.app-shell .alert-light,
.app-shell .alert-secondary { background: var(--surface-elevated); border-color: var(--border-default) !important; color: var(--text-secondary); }
.app-shell .table > tbody > tr > td[rowspan] { background: var(--surface) !important; }
.classification-screen { max-width: 1800px; margin: 0 auto; }
.classification-filters .form-select { min-width: 150px; }
.classification-tabs { border-bottom: 1px solid var(--border-default); display: flex; gap: .25rem; margin-bottom: 1.25rem; overflow-x: auto; }
.classification-tabs a { border-bottom: 3px solid transparent; color: var(--text-muted); font-size: .82rem; font-weight: 700; padding: .8rem 1rem; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.classification-tabs a:hover { color: var(--text-primary); }
.classification-tabs a.active { border-bottom-color: var(--primary); color: var(--primary); }
.conference-grid,
.division-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.standings-panel { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.standings-panel h2 { background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); font-size: 1rem; letter-spacing: .05em; margin: 0; padding: .85rem 1rem; text-transform: uppercase; }
.standings-panel h2 small { color: var(--text-muted); float: right; font-size: .68rem; margin-top: .2rem; }
.standings-panel .table { margin-bottom: 0; }
.standings-table th { color: var(--text-muted) !important; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.standings-table td { white-space: nowrap; }
.standings-table td small,
.round-results td small { color: var(--text-muted); display: block; font-size: .68rem; }
.standings-table .rank { color: var(--primary); font-weight: 800; text-align: center; width: 2.5rem; }
.round-results .table-responsive { max-height: calc(100vh - 280px); }
.round-results th:not(.sticky-team),
.round-results td:not(.sticky-team) { min-width: 42px; text-align: center; }
.round-results .sticky-team { left: 0; min-width: 190px; position: sticky; z-index: 2; }
.round-results thead .sticky-team { background: var(--surface-elevated) !important; z-index: 3; }
.round-results tbody .sticky-team { background: var(--surface) !important; }
.round-result { align-items: center; border-radius: 50%; display: inline-flex; font-size: .72rem; font-weight: 800; height: 27px; justify-content: center; width: 27px; }
.result-v { background: rgba(53,199,121,.2); color: #5de39a; }
.result-d { background: rgba(239,91,91,.2); color: #ff8585; }
.result-e { background: rgba(240,180,41,.18); color: #f2c45e; }
.result-none { color: var(--text-muted); }
.result-legend { display: flex; gap: 1rem; padding: .8rem 1rem; }
.result-legend span { align-items: center; color: var(--text-muted); display: flex; font-size: .75rem; gap: .35rem; }
.result-legend i { border-radius: 50%; display: inline-block; height: 10px; width: 10px; }
@media (max-width: 1050px) { .conference-grid, .division-grid { grid-template-columns: 1fr; } }
/* Compact, borderless standings tables with subtle alternating rows. */
.classification-screen .table > :not(caption) > * > * { border-bottom-color: transparent; }
.classification-screen .table tbody tr:nth-child(odd) > * { background: var(--surface); }
.classification-screen .table tbody tr:nth-child(even) > * { background: var(--surface-elevated); }
.classification-screen .table tbody tr:hover > * { background: var(--surface-hover); }
.round-results th:not(.sticky-team),
.round-results td:not(.sticky-team) { font-size: .62rem; min-width: 32px; padding-left: .18rem; padding-right: .18rem; }
.round-results thead th:not(.sticky-team) { font-size: .58rem; letter-spacing: 0; }
.round-results .round-result { font-size: .62rem; height: 23px; width: 23px; }
.round-results tbody tr:nth-child(odd) .sticky-team { background: var(--surface) !important; }
.round-results tbody tr:nth-child(even) .sticky-team { background: var(--surface-elevated) !important; }
.round-results tbody tr:hover .sticky-team { background: var(--surface-hover) !important; }
/* Application chrome and light/dark themes. */
html[data-theme="light"] {
  --background: #f3f5f7;
  --surface: #ffffff;
  --surface-elevated: #e9edf1;
  --surface-hover: #dde4ea;
  --text-primary: #17202a;
  --text-secondary: #344150;
  --text-muted: #647283;
  --text-disabled: #98a3af;
  --border-subtle: #e1e6eb;
  --border-default: #cbd3dc;
  --border-strong: #aab6c2;
  --primary: #087f73;
  --secondary: #c96d18;
  --accent: #4268c9;
  --success: #218c54;
  --warning: #a8750b;
  --danger: #c94040;
  --info: #247eaf;
}
html, body { background: var(--background); color: var(--text-primary); }
body { margin: 0; min-height: 100vh; }
.app-layout { display: flex; min-height: 100vh; }
.app-sidebar { background: var(--surface); border-right: 1px solid var(--border-default); display: flex; flex: 0 0 230px; flex-direction: column; height: 100vh; left: 0; position: sticky; top: 0; z-index: 1030; }
.sidebar-brand { align-items: center; border-bottom: 1px solid var(--border-subtle); display: flex; height: 72px; justify-content: space-between; padding: 0 1.15rem; }
.sidebar-brand > a { align-items: center; color: var(--text-primary); display: flex; font-size: .95rem; font-weight: 900; gap: .7rem; letter-spacing: .08em; text-decoration: none; }
.brand-mark { align-items: center; background: transparent; border-radius: 8px; color: white; display: inline-flex; font-size: .72rem; height: 42px; justify-content: center; letter-spacing: 0; width: 30px; }
.brand-mark img { height: 100%; object-fit: contain; width: 100%; }
.sidebar-close { display: none; }
.sidebar-nav { flex: 1; overflow-y: auto; padding: .8rem; }
.sidebar-nav > a { border-radius: 6px; color: var(--text-secondary); display: block; font-size: .86rem; font-weight: 600; margin-bottom: .12rem; padding: .62rem .75rem; text-decoration: none; }
.sidebar-nav > a:hover { background: var(--surface-hover); color: var(--text-primary); }
.sidebar-section { color: var(--text-muted); font-size: .62rem; font-weight: 800; letter-spacing: .08em; padding: 1rem .75rem .35rem; text-transform: uppercase; }
.sidebar-footer { border-top: 1px solid var(--border-subtle); padding: .75rem; }
.theme-toggle { align-items: center; background: var(--surface-elevated); border: 1px solid var(--border-default); border-radius: 6px; color: var(--text-secondary); display: flex; font-size: .78rem; gap: .55rem; padding: .55rem .65rem; width: 100%; }
.theme-toggle:hover { background: var(--surface-hover); color: var(--text-primary); }
.theme-icon { font-size: 1rem; }
html[data-theme="dark"] .theme-icon-dark,
html[data-theme="dark"] .theme-label-dark,
html[data-theme="light"] .theme-icon-light,
html[data-theme="light"] .theme-label-light { display: none; }
.sidebar-account { display: flex; gap: .35rem; margin-top: .55rem; }
.sidebar-account a,
.sidebar-account button { background: transparent; border: 0; color: var(--text-muted); font-size: .74rem; padding: .25rem .4rem; text-decoration: none; }
.sidebar-account a:hover,
.sidebar-account button:hover { color: var(--primary); }
.sidebar-account form { margin: 0; }
.app-content { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.app-content .app-shell { border: 0; flex: 1; margin: 0; min-height: calc(100vh - 46px); padding: 1.5rem clamp(1rem, 2.5vw, 2.5rem) 2.5rem; transform: none; width: auto; }
.app-footer { background: var(--surface); border-top: 1px solid var(--border-subtle); color: var(--text-muted); font-size: .72rem; padding: .9rem 1.5rem; text-align: right; }
.mobile-header { display: none; }
.sidebar-backdrop { display: none; }
html[data-theme="light"] .result-v { color: #17683e; }
html[data-theme="light"] .result-d { color: #a72d2d; }
html[data-theme="light"] .result-e { color: #805a08; }
@media (max-width: 900px) {
  .app-sidebar { box-shadow: 12px 0 30px rgba(0,0,0,.2); position: fixed; transform: translateX(-105%); transition: transform .2s ease; width: 245px; }
  body.sidebar-visible .app-sidebar { transform: translateX(0); }
  .sidebar-close { background: transparent; border: 0; color: var(--text-muted); display: block; font-size: 1.6rem; }
  .sidebar-backdrop { background: rgba(0,0,0,.48); inset: 0; position: fixed; z-index: 1020; }
  body.sidebar-visible .sidebar-backdrop { display: block; }
  .mobile-header { align-items: center; background: var(--surface); border-bottom: 1px solid var(--border-default); display: flex; gap: 1rem; height: 56px; padding: 0 1rem; }
  .mobile-header a { color: var(--text-primary); font-size: .82rem; font-weight: 900; letter-spacing: .08em; text-decoration: none; }
  .sidebar-open { background: transparent; border: 0; color: var(--text-primary); font-size: 1.25rem; padding: .25rem; }
  .app-content .app-shell { min-height: calc(100vh - 102px); padding-top: 1rem; }
}
/* Roster views navigation and compact all-player list. */
.roster-tabs { border-bottom: 1px solid var(--border-default); display: flex; gap: .25rem; margin-bottom: 1.25rem; }
.roster-tabs a { border-bottom: 3px solid transparent; color: var(--text-muted); font-size: .76rem; font-weight: 800; letter-spacing: .05em; padding: .7rem .9rem; text-decoration: none; text-transform: uppercase; }
.roster-tabs a:hover { color: var(--text-primary); }
.roster-tabs a.active { border-bottom-color: var(--primary); color: var(--primary); }
.list-roster-header { align-items: end; display: flex; justify-content: space-between; margin-bottom: 1.25rem; }
.list-roster-header h1 { font-size: 1.65rem; }
.list-roster-header p { color: var(--text-muted); margin-top: .25rem; }
.list-roster-scroll { max-height: calc(100vh - 230px); }
.list-roster-table { font-size: .76rem; }
.list-roster-table th { font-size: .65rem; letter-spacing: .04em; text-transform: uppercase; }
.list-roster-table td { padding-bottom: .42rem; padding-top: .42rem; }
.list-roster-table tbody tr:nth-child(odd) td { background: var(--surface); }
.list-roster-table tbody tr:nth-child(even) td { background: var(--surface-elevated); }
.list-roster-table tbody tr:hover td { background: var(--surface-hover); }
.list-roster-table .list-team { font-weight: 750; min-width: 170px; }
.list-roster-table .list-team a { color: var(--primary); text-decoration: none; }
.list-roster-table .list-player { color: var(--text-primary); font-weight: 650; min-width: 170px; }
.list-roster-table .position-badge { background: var(--surface-hover); border: 1px solid var(--border-default); border-radius: 999px; color: var(--text-secondary); display: inline-block; font-size: .65rem; font-weight: 800; min-width: 32px; padding: .15rem .3rem; }
.list-roster-table .salary-cell { min-width: 88px; text-align: right; }
.list-roster-table .extra-roster-row td { color: var(--text-muted); }
@media (max-width: 720px) { .list-roster-header { align-items: start; flex-direction: column; gap: .5rem; } }
/* Hierarchical sidebar navigation. */
.sidebar-group { border-bottom: 1px solid var(--border-subtle); padding: .2rem 0; }
.sidebar-group summary { align-items: center; border-radius: 6px; color: var(--text-primary); cursor: pointer; display: flex; font-size: .82rem; font-weight: 800; justify-content: space-between; list-style: none; padding: .65rem .75rem; }
.sidebar-group summary::-webkit-details-marker { display: none; }
.sidebar-group summary::after { color: var(--text-muted); content: "›"; font-size: 1rem; transform: rotate(0); transition: transform .15s ease; }
.sidebar-group[open] summary::after { transform: rotate(90deg); }
.sidebar-group summary:hover { background: var(--surface-hover); }
.sidebar-subnav { padding: 0 0 .35rem .65rem; }
.sidebar-subnav a,
.sidebar-disabled { border-left: 1px solid var(--border-default); color: var(--text-secondary); display: block; font-size: .74rem; line-height: 1.2; padding: .48rem .65rem .48rem .8rem; text-decoration: none; }
.sidebar-subnav a:hover { border-left-color: var(--primary); color: var(--primary); }
.sidebar-disabled { color: var(--text-disabled); cursor: default; }
.sidebar-disabled em,
.sidebar-future em { color: var(--text-disabled); display: block; font-size: .55rem; font-style: normal; letter-spacing: .04em; margin-top: .15rem; text-transform: uppercase; }
.sidebar-future { border-bottom: 1px solid var(--border-subtle); color: var(--text-primary); font-size: .82rem; font-weight: 800; padding: .8rem .75rem; }
/* Team-card layout for the roster list. */
.roster-list-grid { display: grid; gap: 1rem; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.roster-list-card { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.roster-list-card h2 { background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); font-size: .76rem; margin: 0; min-height: 46px; padding: .65rem .7rem; text-transform: uppercase; }
.roster-list-card h2 a { color: var(--primary); display: block; font-weight: 850; line-height: 1.25; text-decoration: none; }
.roster-list-card h2 a:hover { color: var(--text-primary); }
.roster-list-player { align-items: center; display: flex; font-size: .68rem; gap: .35rem; justify-content: space-between; min-height: 29px; padding: .34rem .55rem; }
.roster-list-player:nth-child(odd) { background: var(--surface); }
.roster-list-player:nth-child(even) { background: var(--surface-elevated); }
.roster-list-player:hover { background: var(--surface-hover); }
.roster-list-player > span { color: var(--text-secondary); line-height: 1.15; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.roster-list-player > strong { color: var(--text-primary); flex: 0 0 auto; font-size: .62rem; }
.roster-list-player.is-extra > span { color: var(--text-muted); font-style: italic; }
@media (max-width: 1350px) { .roster-list-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px) { .roster-list-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  .roster-list-grid { gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roster-list-card h2 { font-size: .68rem; min-height: 42px; padding: .55rem; }
  .roster-list-player { font-size: .62rem; padding-left: .4rem; padding-right: .4rem; }
}
/* Calendars */
.trade-machine { margin: 0 auto; max-width: 1750px; }
.trade-machine-hero { align-items: end; background: linear-gradient(125deg, var(--surface-elevated), var(--surface)); border: 1px solid var(--border-default); display: flex; justify-content: space-between; margin-bottom: 1rem; padding: 1.25rem 1.4rem; }
.trade-machine-hero h1 { font-size: 1.65rem; margin: .15rem 0 .2rem; }
.trade-machine-hero p { color: var(--text-muted); margin: 0; }
.trade-machine-actions { align-items: end; display: flex; gap: .55rem; }
.trade-machine-actions label { color: var(--text-muted); font-size: .62rem; font-weight: 800; min-width: 190px; text-transform: uppercase; }
.trade-machine-board { display: grid; gap: .65rem; overflow-x: auto; padding-bottom: .25rem; }
.machine-team-card { background: var(--surface); border: 1px solid var(--border-default); min-width: 260px; }
.machine-team-card.empty { align-items: stretch; display: flex; justify-content: flex-start; min-height: 0; }
.machine-team-picker { background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); padding: .7rem; width: 100%; }
.machine-team-picker span { color: var(--text-muted); display: block; font-size: .62rem; font-weight: 800; margin-bottom: .4rem; text-transform: uppercase; }
.machine-team-card > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; gap: .5rem; justify-content: space-between; padding: .7rem; }
.machine-team-card > header > div { flex: 1; min-width: 0; }
.machine-team-card > header span { color: var(--text-muted); display: block; font-size: .56rem; font-weight: 800; margin-bottom: .2rem; text-transform: uppercase; }
.machine-team-card > header button { background: transparent; border: 0; color: var(--text-muted); font-size: 1.2rem; }
.machine-team-cap { align-items: center; border-bottom: 1px solid var(--border-default); display: flex; font-size: .68rem; justify-content: space-between; padding: .55rem .7rem; }
.machine-team-cap span { color: var(--text-muted); text-transform: uppercase; }
.machine-acquiring { background: color-mix(in srgb, var(--primary) 9%, var(--surface)); border-bottom: 1px solid var(--border-default); min-height: 62px; padding: .5rem .65rem; }
.machine-acquiring h2 { color: var(--primary); font-size: .58rem; font-weight: 850; letter-spacing: .06em; margin: 0 0 .3rem; text-transform: uppercase; }
.machine-acquiring > div { align-items: center; border-top: 1px solid var(--border-subtle); display: flex; font-size: .65rem; justify-content: space-between; padding: .25rem 0; }
.machine-acquiring p { color: var(--text-muted); font-size: .62rem; margin: .55rem 0 0; }
.machine-assets { padding: .65rem; }
.machine-assets h2 { color: var(--text-muted); font-size: .58rem; font-weight: 850; letter-spacing: .06em; margin: .75rem 0 .35rem; text-transform: uppercase; }
.machine-assets h2:first-child { margin-top: 0; }
.machine-asset { background: var(--surface-elevated); border-left: 2px solid transparent; display: grid; gap: .35rem; grid-template-columns: minmax(0, 1fr); margin-bottom: 2px; padding: .42rem; }
.machine-asset.moving { background: color-mix(in srgb, var(--primary) 11%, var(--surface)); border-left-color: var(--primary); }
.machine-asset > div { align-items: baseline; display: flex; gap: .35rem; min-width: 0; }
.machine-asset b { font-size: .68rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.machine-asset small { color: var(--text-muted); font-size: .58rem; }
.machine-destination { font-size: .62rem; min-height: 27px; padding-bottom: .15rem; padding-top: .15rem; }
.machine-fine { display: grid; gap: .35rem; }
.machine-fine > span { color: var(--text-muted); font-size: .62rem; }
.trade-pick-condition { margin: .35rem 0 .55rem; font-size: .75rem; }
.trade-rule-warning { color: #ffbf69; }
.machine-fine label { display: grid; gap: .25rem; margin-top: .45rem; }
.trade-fine-row { align-items: center; display: grid; gap: .5rem; grid-template-columns: minmax(100px, .75fr) 1fr; }
.trade-fine-row span { display: grid; line-height: 1.15; }
.trade-fine-row small { color: var(--text-muted); font-size: .65rem; font-weight: 500; }
.machine-fines { display: grid; gap: .5rem; }
.machine-fine-row { align-items: center; display: grid; gap: .35rem; grid-template-columns: minmax(85px, .65fr) minmax(150px, 1.35fr) minmax(140px, 1.2fr) auto; }
.machine-fine-row .form-control, .machine-fine-row .form-select { font-size: .62rem; min-height: 29px; }
.machine-fine-row .btn { min-height: 29px; padding: .15rem .45rem; }
.machine-fine-add { justify-self: start; }

.market-page { display: grid; gap: 1rem; }
.market-hero { align-items: end; background: linear-gradient(120deg, var(--surface), var(--surface-elevated)); border: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: 1.25rem; }
.market-hero h1 { font-size: clamp(1.6rem, 3vw, 2.5rem); font-weight: 900; margin: .15rem 0; }
.market-hero p { color: var(--text-muted); margin: 0; max-width: 720px; }
.market-reference { border-left: 3px solid var(--primary); display: grid; min-width: 175px; padding-left: .8rem; }
.market-reference span, .market-reference small { color: var(--text-muted); font-size: .7rem; }
.market-reference .market-data-warning { color: #e5a85c; margin-top: .25rem; max-width: 230px; }
.market-reference strong { font-size: 1.15rem; }
.market-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .75rem; grid-template-columns: 1.35fr .8fr 1.15fr .65fr auto; padding: 1rem; }
.market-filters label { color: var(--text-muted); display: grid; font-size: .72rem; font-weight: 700; gap: .35rem; }
.market-filter-actions { display: flex; gap: .4rem; }
.market-board { background: var(--surface); border: 1px solid var(--border-default); }
.market-board > header { align-items: center; border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .85rem 1rem; }
.market-board > header span { color: var(--text-muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.market-board > header h2 { font-size: 1rem; margin: .1rem 0 0; }
.market-windows { background: var(--surface-elevated); display: flex; padding: .2rem; }
.market-windows button { background: transparent; border: 0; color: var(--text-muted); font-size: .7rem; font-weight: 800; padding: .45rem .7rem; }
.market-windows button.active { background: var(--primary); color: #fff; }
.market-table-wrap { overflow-x: auto; }
.market-table { border-collapse: collapse; min-width: 790px; width: 100%; }
.market-table th { background: var(--surface-elevated); color: var(--text-muted); font-size: .62rem; letter-spacing: .04em; padding: .6rem .75rem; text-align: left; }
.market-table th[data-sort] { cursor: pointer; padding-right: 1.25rem; position: relative; user-select: none; }
.market-table th[data-sort]::after { content: "↕"; opacity: .3; position: absolute; right: .4rem; }
.market-table th.sort-asc::after { content: "↑"; opacity: 1; }
.market-table th.sort-desc::after { content: "↓"; opacity: 1; }
.market-table td { font-size: .76rem; padding: .65rem .75rem; }
.market-table tbody tr:nth-child(odd) { background: color-mix(in srgb, var(--surface-elevated) 42%, transparent); }
.market-table tbody tr:nth-child(even) { background: var(--surface); }
.market-table tbody tr:hover { background: var(--surface-hover); }
.market-table .stat { font-variant-numeric: tabular-nums; text-align: right; }
.market-table .position { text-align: center; }
.market-table .turnover { color: var(--warning); }
.market-table .no-games { color: var(--text-muted); opacity: .55; }
.market-position { background: var(--surface-elevated); border: 1px solid var(--border-default); border-radius: 999px; display: inline-block; font-size: .62rem; font-weight: 800; padding: .15rem .4rem; }
.market-empty { color: var(--text-muted); padding: 2rem; text-align: center; }
.market-tabs { background: var(--surface); border: 1px solid var(--border-default); display: flex; overflow-x: auto; }
.market-tabs a { border-bottom: 3px solid transparent; color: var(--text-muted); font-size: .75rem; font-weight: 800; padding: .8rem 1rem; text-decoration: none; white-space: nowrap; }
.market-tabs a:hover { background: var(--surface-hover); color: var(--text-default); }
.market-tabs a.active { border-bottom-color: var(--primary); color: var(--primary); }
.market-status { align-items: center; border: 1px solid var(--border-default); display: flex; gap: .65rem; padding: .7rem 1rem; }
.market-status strong { font-size: .75rem; text-transform: uppercase; }
.market-status span { color: var(--text-muted); font-size: .72rem; }
.market-status.open { border-left: 4px solid #2db67c; }
.market-status.closed { border-left: 4px solid #d87d4a; }
.market-table th.action, .market-table td.action { text-align: right; }
.market-bid-dialog { background: var(--surface); border: 1px solid var(--border-default); color: var(--text-default); max-width: 440px; padding: 0; width: calc(100% - 2rem); }
.market-bid-dialog::backdrop { background: rgba(0, 0, 0, .72); }
.market-bid-dialog form { display: grid; gap: 1rem; padding: 1rem; }
.market-bid-dialog header { align-items: start; border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding-bottom: .7rem; }
.market-bid-dialog header span { color: var(--text-muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.market-bid-dialog h2 { font-size: 1.15rem; margin: .1rem 0 0; }
.market-bid-dialog header button { background: transparent; border: 0; color: var(--text-muted); font-size: 1.3rem; }
.market-bid-dialog label { color: var(--text-muted); display: grid; font-size: .72rem; font-weight: 700; gap: .35rem; }
.market-bid-dialog p { color: var(--text-muted); font-size: .7rem; margin: 0; }
.market-bid-dialog footer { display: flex; gap: .5rem; justify-content: flex-end; }
.market-history, .market-results { background: var(--surface); border: 1px solid var(--border-default); }
.market-history > header, .market-results > header { align-items: center; border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .85rem 1rem; }
.market-history > header span, .market-results > header span { color: var(--text-muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.market-history > header h2, .market-results > header h2 { font-size: 1rem; margin: .1rem 0 0; }
.market-results > header small { color: var(--text-muted); }
.market-result-week { border-bottom: 1px solid var(--border-default); }
.market-result-week summary { align-items: center; cursor: pointer; display: flex; gap: .7rem; padding: .75rem 1rem; }
.market-result-week summary span { color: var(--text-muted); font-size: .7rem; }
.market-bid-status { background: var(--surface-elevated); border-radius: 999px; display: inline-block; font-size: .6rem; font-weight: 800; padding: .2rem .45rem; }
.market-bid-status.vencedor { background: rgba(45, 182, 124, .18); color: #43d69a; }
.market-bid-status.perdedor, .market-bid-status.invalido { background: rgba(216, 87, 87, .16); color: #f08080; }
.market-bid-actions, .market-bid-actions form { align-items: center; display: flex; gap: .35rem; }
.market-bid-actions input { max-width: 115px; }
@media (max-width: 1050px) {
    .market-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .market-hero, .market-board > header { align-items: stretch; flex-direction: column; gap: 1rem; }
    .market-reference { border-left: 0; border-top: 3px solid var(--primary); padding-left: 0; padding-top: .6rem; }
    .market-filters { grid-template-columns: 1fr; }
    .market-filter-actions .btn { flex: 1; }
    .market-windows { display: grid; grid-template-columns: repeat(3, 1fr); }
    .market-windows button { padding: .45rem .25rem; }
    .market-status, .market-history > header, .market-results > header { align-items: flex-start; flex-direction: column; }
    .market-bid-actions { align-items: stretch; flex-direction: column; }
}
.trade-add-team { background: transparent; border: 1px dashed var(--border-default); color: var(--primary); font-size: .68rem; font-weight: 800; margin-top: .65rem; padding: .65rem; text-transform: uppercase; width: 100%; }
.trade-add-team:hover { background: var(--surface-hover); }
.trade-machine-result { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; scroll-margin-top: 1rem; }
.trade-machine-result > header { background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); padding: .75rem 1rem; }
.trade-machine-result h2 { font-size: .95rem; margin: .1rem 0 0; }
.machine-result-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.machine-result-grid article { border-right: 1px solid var(--border-default); padding: .8rem; }
.machine-result-grid h3 { font-size: .78rem; }
.machine-result-grid p { color: var(--text-muted); font-size: .58rem; font-weight: 800; margin-bottom: .25rem; text-transform: uppercase; }
.machine-result-grid ul { list-style: none; margin: 0 0 .65rem; min-height: 38px; padding: 0; }
.machine-result-grid li { border-bottom: 1px solid var(--border-subtle); display: flex; font-size: .65rem; justify-content: space-between; padding: .25rem 0; }
.machine-result-grid li.muted { color: var(--text-muted); }
@media (max-width: 900px) {
  .trade-machine-hero { align-items: stretch; flex-direction: column; gap: 1rem; }
  .trade-machine-actions { align-items: stretch; flex-wrap: wrap; }
  .trade-machine-actions label { flex: 1 0 100%; min-width: 0; }
}

.trade-simple { margin: 0 auto; max-width: 1500px; }
.trade-simple-header { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: flex; justify-content: space-between; margin-bottom: 1rem; padding: 1.2rem 1.35rem; }
.trade-simple-header h1 { font-size: 1.55rem; margin: .15rem 0 .25rem; }
.trade-simple-header p { color: var(--text-muted); margin: 0; }
.trade-simple-header label { color: var(--text-muted); font-size: .68rem; font-weight: 800; min-width: 230px; text-transform: uppercase; }
.trade-kicker { color: var(--primary); font-size: .6rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.trade-empty, .trade-panel-placeholder { color: var(--text-muted); padding: 2rem; text-align: center; }
.trade-team-selectors { align-items: end; display: grid; gap: 1rem; grid-template-columns: 1fr auto 1fr; margin-bottom: 1rem; }
.trade-team-selectors label { color: var(--text-muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.trade-team-selectors > span { color: var(--primary); font-size: 1.25rem; padding-bottom: .35rem; }
.trade-columns { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trade-team-panel { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.trade-team-panel > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .8rem 1rem; }
.trade-team-panel > header span { color: var(--text-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.trade-team-panel > header h2 { font-size: .95rem; margin: .12rem 0 0; }
.trade-team-panel > header > strong { color: var(--text-muted); font-size: .65rem; }
.trade-cap-line { align-items: center; border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .65rem 1rem; }
.trade-cap-line span { color: var(--text-muted); font-size: .65rem; text-transform: uppercase; }
.trade-cap-line b { font-size: .82rem; }
.trade-assets { padding: .8rem; }
.trade-assets h3 { color: var(--text-muted); font-size: .62rem; font-weight: 850; letter-spacing: .06em; margin: .8rem 0 .45rem; text-transform: uppercase; }
.trade-assets h3:first-child { margin-top: 0; }
.trade-player-list, .trade-pick-list { display: grid; gap: 2px; }
.trade-asset { align-items: center; background: var(--surface-elevated); border: 1px solid transparent; cursor: pointer; display: grid; font-size: .72rem; gap: .55rem; grid-template-columns: auto minmax(0, 1fr) auto; padding: .45rem .55rem; }
.trade-asset:hover { background: var(--surface-hover); }
.trade-asset.selected { background: color-mix(in srgb, var(--primary) 12%, var(--surface)); border-color: var(--primary); }
.trade-asset span { align-items: baseline; display: flex; gap: .35rem; min-width: 0; }
.trade-asset b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trade-asset small { color: var(--text-muted); font-size: .61rem; }
.trade-asset strong { font-size: .68rem; white-space: nowrap; }
.trade-fine { align-items: center; display: grid; gap: 1rem; grid-template-columns: 1fr 180px; }
.trade-fine span { color: var(--text-muted); font-size: .7rem; }
.trade-summary { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.trade-summary > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .75rem 1rem; }
.trade-summary h2 { font-size: .92rem; margin: .08rem 0 0; }
.trade-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trade-summary-grid article { padding: .9rem 1rem; }
.trade-summary-grid article + article { border-left: 1px solid var(--border-default); }
.trade-summary-grid h3 { font-size: .8rem; }
.trade-summary-grid ul { list-style: none; margin: 0 0 .75rem; min-height: 42px; padding: 0; }
.trade-summary-grid li { border-bottom: 1px solid var(--border-subtle); display: flex; font-size: .7rem; justify-content: space-between; padding: .3rem 0; }
.trade-summary-grid li.muted { color: var(--text-muted); }
.trade-result { background: var(--surface-elevated); border-left: 3px solid var(--success); display: grid; font-size: .68rem; gap: .25rem; padding: .55rem .7rem; }
.trade-result span { display: flex; justify-content: space-between; }
.trade-result > strong { color: var(--success); font-size: .62rem; text-transform: uppercase; }
.trade-result.invalid { border-color: var(--danger); }
.trade-result.invalid > strong { color: var(--danger); }
@media (max-width: 850px) {
  .trade-simple-header { align-items: stretch; flex-direction: column; gap: 1rem; }
  .trade-simple-header label { min-width: 0; }
  .trade-columns, .trade-summary-grid { grid-template-columns: 1fr; }
  .trade-summary-grid article + article { border-left: 0; border-top: 1px solid var(--border-default); }
}
@media (max-width: 560px) {
  .trade-team-selectors { grid-template-columns: 1fr; }
  .trade-team-selectors > span { display: none; }
  .trade-fine { gap: .35rem; grid-template-columns: 1fr; }
}

.calendar-screen { max-width: 1750px; margin: 0 auto; }
.calendar-header { align-items: end; display: flex; gap: 1.5rem; justify-content: space-between; margin-bottom: 1rem; }
.calendar-header h1 { font-size: 1.65rem; margin: 0 0 .25rem; }
.calendar-header form { min-width: 260px; }
.calendar-tabs { border-bottom: 1px solid var(--border-default); display: flex; gap: .25rem; margin-bottom: 1.25rem; overflow-x: auto; }
.calendar-tabs a { border-bottom: 3px solid transparent; color: var(--text-muted); font-size: .76rem; font-weight: 800; letter-spacing: .04em; padding: .72rem .9rem; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.calendar-tabs a.active { border-bottom-color: var(--primary); color: var(--primary); }
.calendar-empty { background: var(--surface); border: 1px solid var(--border-default); color: var(--text-muted); padding: 2rem; text-align: center; }
.calendar-groups { display: grid; gap: 1rem; }
.calendar-group { background: var(--surface); border: 1px solid var(--border-default); }
.calendar-group > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .72rem .9rem; }
.calendar-group > header h2 { font-size: .84rem; font-weight: 850; letter-spacing: .035em; margin: 0; text-transform: uppercase; }
.calendar-group > header span { color: var(--text-muted); font-size: .68rem; }
.calendar-games { display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--border-subtle); }
.calendar-game { background: var(--surface); color: var(--text-secondary) !important; display: block; min-width: 0; padding: .65rem .75rem; text-decoration: none; }
.calendar-game:hover { background: var(--surface-hover); }
.calendar-game.is-future { border-left: 3px solid var(--accent); }
.calendar-game-meta { color: var(--text-muted); font-size: .61rem; margin-bottom: .35rem; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.calendar-team { align-items: center; display: flex; font-size: .75rem; gap: .5rem; justify-content: space-between; line-height: 1.25; padding: .15rem 0; }
.calendar-team span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-team strong { color: var(--text-muted); flex: 0 0 auto; font-size: .82rem; }
.calendar-team.winner span,
.calendar-team.winner strong { color: var(--text-primary); font-weight: 850; }
.calendar-game-status { border-top: 1px solid var(--border-subtle); color: var(--text-muted); font-size: .6rem; margin-top: .4rem; padding-top: .35rem; text-transform: uppercase; }
@media (max-width: 1250px) { .calendar-games { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 850px) { .calendar-games { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .calendar-header { align-items: stretch; flex-direction: column; }
  .calendar-header form { min-width: 0; }
  .calendar-games { grid-template-columns: 1fr; }
}

/* Records */
.records-page { margin: 0 auto; max-width: 1650px; }
.records-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .7rem; grid-template-columns: repeat(4, minmax(170px, 250px)) auto; justify-content: start; margin-bottom: 1rem; padding: .85rem; }
.records-filters label { color: var(--text-muted); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.records-filters .form-select { font-size: .76rem; margin-top: .28rem; }
.records-highlights { background: var(--border-subtle); display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1rem; }
.records-highlights article { background: var(--surface); border-top: 3px solid var(--primary); padding: .75rem .85rem; }
.records-highlights span, .records-highlights strong, .records-highlights b, .records-highlights small { display: block; }
.records-highlights span { color: var(--text-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.records-highlights strong { color: var(--primary); font-size: 1.3rem; margin: .22rem 0; }
.records-highlights article.negative { border-top-color: var(--danger); }
.records-highlights article.negative strong { color: var(--danger); }
.records-highlights b { font-size: .7rem; }
.records-highlights small { color: var(--text-muted); font-size: .56rem; margin-top: .08rem; }
.records-grid { background: var(--border-subtle); display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.records-card { background: var(--surface); min-width: 0; }
.records-card > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .6rem .7rem; }
.records-card > header div { align-items: baseline; display: flex; gap: .4rem; }
.records-card > header strong { color: var(--primary); font-size: .82rem; }
.records-card.turnovers > header strong { color: var(--warning); }
.records-card > header span, .records-card > header small { color: var(--text-muted); font-size: .57rem; }
.records-card ol { list-style: none; margin: 0; padding: 0; }
.records-card li { align-items: center; display: grid; gap: .42rem; grid-template-columns: 22px minmax(0, 1fr) 55px; min-height: 42px; padding: .38rem .62rem; }
.records-card li:nth-child(odd) { background: var(--surface-elevated); }
.records-card li > span { color: var(--text-muted); font-size: .62rem; text-align: center; }
.records-card li div { min-width: 0; }
.records-card li div strong, .records-card li div small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.records-card li div strong { font-size: .7rem; }
.records-card li div small { color: var(--text-muted); font-size: .54rem; }
.records-card li > b { font-size: .72rem; text-align: right; }
@media (max-width: 1100px) { .records-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) {
  .records-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .records-highlights, .records-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .records-filters, .records-highlights, .records-grid { grid-template-columns: 1fr; }
}

/* Compare two teams */
.compare-teams-page { margin: 0 auto; max-width: 1650px; }
.compare-teams-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .65rem; grid-template-columns: repeat(6, minmax(130px, 1fr)) auto; margin-bottom: 1rem; padding: .85rem; }
.compare-teams-filters label { color: var(--text-muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.compare-teams-filters .form-select { font-size: .75rem; margin-top: .28rem; }
.compare-season-summary { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.compare-season-summary > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .85rem; }
.compare-season-summary > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.compare-season-summary > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.compare-season-summary > header small { color: var(--text-muted); font-size: .6rem; }
.compare-season-wrap { overflow-x: auto; }
.compare-season-summary table { border-collapse: collapse; font-size: .72rem; min-width: 900px; width: 100%; }
.compare-season-summary th { color: var(--text-muted); font-size: .56rem; padding: .5rem .58rem; text-align: center; }
.compare-season-summary th:first-child, .compare-season-summary td:first-child { text-align: left; }
.compare-season-summary td { padding: .58rem; text-align: center; }
.compare-season-summary tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.compare-season-summary td strong, .compare-season-summary td small { display: block; }
.compare-season-summary td small { color: var(--text-muted); font-size: .54rem; margin-top: .08rem; }
.compare-scoreboard { align-items: stretch; background: var(--border-subtle); display: grid; gap: 1px; grid-template-columns: 1fr 130px 1fr; margin-bottom: 1rem; }
.compare-scoreboard article, .compare-scoreboard > div { background: var(--surface); padding: .85rem 1rem; text-align: center; }
.compare-scoreboard article span, .compare-scoreboard article strong, .compare-scoreboard article small, .compare-scoreboard > div span, .compare-scoreboard > div strong { display: block; }
.compare-scoreboard span { color: var(--text-muted); font-size: .65rem; font-weight: 800; }
.compare-scoreboard strong { color: var(--primary); font-size: 1.65rem; margin: .18rem 0; }
.compare-scoreboard small { color: var(--text-muted); font-size: .56rem; }
.compare-rounds, .compare-history { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.compare-rounds > header, .compare-history > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .85rem; }
.compare-rounds > header span, .compare-history > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.compare-rounds > header h2, .compare-history > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.compare-rounds > header small, .compare-history > header small { color: var(--text-muted); font-size: .6rem; }
.compare-rounds table { border-collapse: collapse; font-size: .68rem; min-width: 900px; width: 100%; }
.compare-rounds th, .compare-rounds td { padding: .48rem .52rem; text-align: center; }
.compare-rounds th { color: var(--text-muted); font-size: .55rem; }
.compare-rounds tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.compare-rounds td small { color: var(--text-muted); display: block; font-size: .52rem; white-space: nowrap; }
.compare-rounds td.win { color: var(--success); }
.compare-rounds td.loss { color: var(--danger); }
.compare-rounds td.tie { color: var(--warning); }
.compare-history-grid { display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--border-subtle); }
.compare-history-summary { background: var(--border-subtle); border-bottom: 1px solid var(--border-default); display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.compare-history-summary article { background: var(--surface); padding: .7rem .8rem; }
.compare-history-summary span, .compare-history-summary strong, .compare-history-summary small { display: block; }
.compare-history-summary span { color: var(--text-muted); font-size: .56rem; font-weight: 800; text-transform: uppercase; }
.compare-history-summary strong { font-size: 1rem; margin: .18rem 0; }
.compare-history-summary small { color: var(--text-muted); font-size: .54rem; }
.compare-history-grid article { background: var(--surface); border-top: 1px solid var(--border-default); padding: .7rem .8rem; }
.compare-history-grid article > div { align-items: center; display: flex; justify-content: space-between; }
.compare-history-grid article span, .compare-history-grid article small { color: var(--text-muted); font-size: .56rem; }
.compare-history-grid article b.win { color: var(--success); }
.compare-history-grid article b.loss { color: var(--danger); }
.compare-history-grid article b.tie { color: var(--warning); }
.compare-history-grid article > strong { display: block; font-size: 1rem; margin: .35rem 0; }
.compare-history-grid article > small { display: block; }
.compare-history-grid article a { color: var(--primary); display: inline-block; font-size: .58rem; font-weight: 750; margin-top: .4rem; }
@media (max-width: 1050px) {
  .compare-teams-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .compare-history-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .compare-teams-filters { grid-template-columns: 1fr; }
  .compare-scoreboard { grid-template-columns: 1fr; }
  .compare-history-grid { grid-template-columns: 1fr; }
}
/* Home dashboard */
.home-dashboard { max-width: 1650px; margin: 0 auto; }
.home-hero { align-items: end; background: linear-gradient(130deg, var(--surface-elevated), var(--surface)); border: 1px solid var(--border-default); display: flex; justify-content: space-between; margin-bottom: 1rem; overflow: hidden; padding: 1.35rem 1.5rem; position: relative; }
.home-hero::after { background: var(--primary); content: ""; height: 180px; opacity: .12; position: absolute; right: -50px; top: -80px; transform: rotate(28deg); width: 180px; }
.home-kicker { color: var(--primary); font-size: .64rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.home-hero h1 { font-size: 2rem; margin: .2rem 0; }
.home-hero p { color: var(--text-muted); margin: 0; }
.home-hero form { min-width: 250px; position: relative; z-index: 1; }
.home-highlights { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin-bottom: 1rem; }
.home-highlight { background: var(--surface); border: 1px solid var(--border-default); color: var(--text-primary) !important; display: flex; flex-direction: column; min-height: 105px; padding: 1rem 1.1rem; text-decoration: none; }
.home-highlight:hover { background: var(--surface-hover); }
.home-highlight > span { color: var(--text-muted); font-size: .62rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.home-highlight > strong { font-size: 1rem; margin-top: auto; }
.home-highlight > small { color: var(--text-muted); margin-top: .18rem; }
.home-highlight.champion { border-left: 3px solid var(--primary); }
.home-main-grid { display: grid; gap: 1rem; grid-template-columns: minmax(0, 3fr) minmax(230px, 1fr); margin-bottom: 1rem; }
.home-panel { background: var(--surface); border: 1px solid var(--border-default); }
.home-panel > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .75rem 1rem; }
.home-panel > header span { color: var(--text-muted); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.home-panel > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.home-panel > header > a { font-size: .68rem; font-weight: 700; text-decoration: none; }
.home-conferences { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-conference + .home-conference { border-left: 1px solid var(--border-default); }
.home-conference h3 { border-bottom: 1px solid var(--border-subtle); font-size: .72rem; letter-spacing: .06em; margin: 0; padding: .6rem .8rem; text-transform: uppercase; }
.home-standing-row { align-items: center; color: var(--text-secondary) !important; display: grid; font-size: .72rem; gap: .5rem; grid-template-columns: 20px minmax(0, 1fr) auto 30px; min-height: 34px; padding: .3rem .7rem; text-decoration: none; }
.home-standing-row:nth-child(odd) { background: var(--surface-elevated); }
.home-standing-row:hover { background: var(--surface-hover); }
.home-standing-row b { color: var(--primary); text-align: center; }
.home-standing-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-standing-row strong { color: var(--text-primary); }
.home-standing-row small { color: var(--text-muted); text-align: right; }
.quick-links > div { display: grid; }
.quick-links a { align-items: center; border-bottom: 1px solid var(--border-subtle); color: var(--text-secondary); display: flex; font-size: .75rem; justify-content: space-between; padding: .72rem .8rem; text-decoration: none; }
.quick-links a:hover { background: var(--surface-hover); color: var(--primary); }
.quick-links a span { font-size: 1rem; }
.home-season-finished { align-items: center; background: var(--surface); border: 1px solid var(--border-default); display: flex; gap: 1rem; margin-bottom: 1rem; padding: .85rem 1rem; }
.home-season-finished span { color: var(--success); font-size: .62rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.home-season-finished strong { font-size: .75rem; }
.home-games-section { margin-bottom: 1rem; }
.home-games { background: var(--border-subtle); display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-game { background: var(--surface); color: var(--text-secondary) !important; padding: .6rem .7rem; text-decoration: none; }
.home-game:hover { background: var(--surface-hover); }
.draft-page { margin: 0 auto; max-width: 1500px; }
.draft-hero { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: flex; justify-content: space-between; margin-bottom: 1rem; padding: 1.2rem 1.35rem; }
.draft-hero h1 { font-size: 1.55rem; margin: .15rem 0 .25rem; }
.draft-hero p { color: var(--text-muted); margin: 0; }
.draft-hero label { color: var(--text-muted); font-size: .68rem; font-weight: 800; min-width: 230px; text-transform: uppercase; }
.draft-summary { background: var(--surface); border: 1px solid var(--border-default); display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 1rem; }
.draft-summary div { display: flex; flex-direction: column; padding: .75rem 1rem; }
.draft-summary div + div { border-left: 1px solid var(--border-default); }
.draft-summary span { color: var(--text-muted); font-size: .6rem; font-weight: 800; text-transform: uppercase; }
.draft-summary strong { font-size: .9rem; margin-top: .15rem; }
.draft-round { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.draft-round > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem 1rem; }
.draft-round > header span { color: var(--primary); font-size: .58rem; font-weight: 850; text-transform: uppercase; }
.draft-round > header h2 { font-size: .95rem; margin: .1rem 0 0; }
.draft-round > header > strong { color: var(--text-muted); font-size: .68rem; }
.draft-table-wrap { overflow-x: auto; }
.draft-table { border-collapse: collapse; font-size: .7rem; width: 100%; }
.draft-table th { color: var(--text-muted); font-size: .57rem; letter-spacing: .04em; padding: .48rem .65rem; text-transform: uppercase; white-space: nowrap; }
.draft-table td { padding: .52rem .65rem; vertical-align: middle; }
.draft-table tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.draft-table tbody tr:hover { background: var(--surface-hover); }
.draft-table .pick-number { width: 94px; }
.draft-table .pick-number strong, .draft-table .pick-number small { display: block; }
.draft-table .pick-number strong { color: var(--primary); font-size: .78rem; }
.draft-table .pick-number small, .draft-origin { color: var(--text-muted); font-size: .6rem; }
.draft-status, .draft-condition { background: var(--surface-hover); border-radius: 999px; display: inline-block; font-size: .58rem; font-weight: 800; padding: .2rem .45rem; text-transform: uppercase; white-space: nowrap; }
.draft-condition { background: color-mix(in srgb, var(--warning) 16%, var(--surface)); color: var(--warning); cursor: help; }
.draft-empty { background: var(--surface); border: 1px solid var(--border-default); color: var(--text-muted); padding: 2rem; text-align: center; }
.draft-tabs { margin-bottom: 1rem; }
.draft-tabs > span { color: var(--text-muted); font-size: .68rem; font-weight: 800; padding: .65rem .85rem; text-transform: uppercase; }
.draft-tabs em { font-size: .5rem; margin-left: .25rem; }
.draft-team-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
.draft-asset-panel, .draft-history { background: var(--surface); border: 1px solid var(--border-default); }
.draft-asset-panel > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .75rem 1rem; }
.draft-asset-panel > header span { color: var(--primary); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.draft-asset-panel h2 { font-size: .9rem; margin: .1rem 0 0; }
.draft-asset-panel > header > strong { color: var(--text-muted); }
.draft-pick-cards { display: grid; gap: 2px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: .75rem; }
.draft-pick-cards article { background: var(--surface-elevated); display: flex; flex-direction: column; padding: .55rem .65rem; }
.draft-pick-cards strong { font-size: .7rem; }
.draft-pick-cards span { color: var(--text-muted); font-size: .62rem; }
.draft-pick-cards small { color: var(--warning); font-size: .55rem; margin-top: .2rem; }
.draft-panel-empty { color: var(--text-muted); font-size: .7rem; margin: 0; padding: 1.5rem; text-align: center; }
.draft-rule-warning { background: color-mix(in srgb, var(--warning) 12%, var(--surface)); border-left: 3px solid var(--warning); color: var(--warning); font-size: .7rem; margin-bottom: .65rem; padding: .65rem .8rem; }
.draft-history summary { cursor: pointer; font-size: .75rem; font-weight: 800; padding: .8rem 1rem; }
.draft-history summary span { color: var(--text-muted); float: right; font-size: .62rem; }
.draft-live-hero { align-items: center; background: linear-gradient(120deg, var(--surface-elevated), var(--surface)); border: 1px solid var(--border-default); display: flex; justify-content: space-between; margin-bottom: .7rem; padding: 1.15rem 1.35rem; }
.draft-live-hero h1 { font-size: 1.55rem; margin: .12rem 0 0; }
.draft-live-state { border-left: 3px solid var(--warning); display: flex; flex-direction: column; padding-left: .8rem; }
.draft-live-state span { color: var(--text-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.draft-live-state strong { color: var(--warning); font-size: .75rem; }
.draft-live-notice { background: color-mix(in srgb, var(--warning) 10%, var(--surface)); border: 1px solid color-mix(in srgb, var(--warning) 35%, var(--border-default)); display: flex; flex-direction: column; margin-bottom: 1rem; padding: .7rem .85rem; }
.draft-live-notice strong { color: var(--warning); font-size: .7rem; }
.draft-live-notice span { color: var(--text-muted); font-size: .65rem; }
.draft-live-layout { display: grid; gap: 1rem; grid-template-columns: minmax(390px, 1.2fr) minmax(300px, .8fr); }
.draft-live-board, .draft-live-action { background: var(--surface); border: 1px solid var(--border-default); }
.draft-live-board { order: 2; }
.draft-live-right { align-self: start; display: grid; gap: 1rem; min-width: 0; order: 1; }
.draft-live-board > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .75rem 1rem; }
.draft-live-board > header span { color: var(--primary); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.draft-live-board h2, .draft-live-action h2 { font-size: .9rem; margin: .1rem 0 0; }
.draft-live-board > header > strong { color: var(--text-muted); font-size: .65rem; }
.draft-live-picks { display: grid; grid-template-columns: 1fr; }
.draft-live-picks article { align-items: center; display: grid; gap: .55rem; grid-template-columns: 28px minmax(0, 1fr) auto; padding: .5rem .65rem; }
.draft-live-picks article:nth-child(odd) { background: var(--surface-elevated); }
.draft-live-number { color: var(--primary); font-size: .8rem; font-weight: 900; }
.draft-live-picks strong, .draft-live-picks small { display: block; }
.draft-live-picks strong { font-size: .68rem; }
.draft-live-picks small, .draft-live-wait { color: var(--text-muted); font-size: .57rem; }
.draft-live-action { display: grid; gap: .8rem; padding: 1rem; }
.draft-live-action label { color: var(--text-muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.draft-live-filters { display: grid; gap: .65rem; grid-template-columns: minmax(0, 1fr) 92px; }
.draft-live-filters-main { grid-template-columns: minmax(0, 1fr) 86px minmax(145px, .75fr); }
.draft-live-filters label { min-width: 0; }
.draft-live-action p { color: var(--text-muted); font-size: .62rem; margin: 0; }
.draft-admin-bar { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: flex; gap: .7rem; margin-bottom: 1rem; padding: .7rem; }
.draft-admin-bar label { color: var(--text-muted); font-size: .62rem; max-width: 160px; }
.draft-pick-current { box-shadow: inset 3px 0 var(--primary); }
.draft-pick-done { opacity: .78; }
.draft-pick-done .draft-live-number { color: var(--success); }
.draft-recent { border-top: 1px solid var(--border-default); display: grid; gap: .4rem; padding-top: .75rem; }
.draft-recent h3 { font-size: .72rem; margin: 0; text-transform: uppercase; }
.draft-recent > div { background: var(--surface-elevated); display: flex; flex-direction: column; padding: .42rem .55rem; }
.draft-recent strong { font-size: .65rem; }.draft-recent small,.draft-recent > span { color: var(--text-muted); font-size: .56rem; }
.draft-prospects { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.draft-prospects > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .75rem 1rem; }
.draft-prospects h2 { font-size: .9rem; margin: .1rem 0 0; }.draft-prospects > header > strong { color: var(--text-muted); font-size: .65rem; }
.draft-prospects .table { font-size: .68rem; margin-bottom: 0; }.draft-prospects form { margin: 0; }
@media (max-width: 700px) {
 .draft-hero { align-items: stretch; flex-direction: column; gap: 1rem; }
 .draft-hero label { min-width: 0; }
 .draft-summary { grid-template-columns: 1fr; }
  .draft-summary div + div { border-left: 0; border-top: 1px solid var(--border-default); }
  .draft-team-grid, .draft-pick-cards { grid-template-columns: 1fr; }
  .draft-live-hero { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .draft-live-layout, .draft-live-picks { grid-template-columns: 1fr; }
  .draft-live-picks article:nth-child(4n+1), .draft-live-picks article:nth-child(4n+2) { background: transparent; }
  .draft-live-picks article:nth-child(odd) { background: var(--surface-elevated); }
  .draft-live-action { position: static; }
  .draft-live-filters { grid-template-columns: 1fr; }
}
.home-game-meta { color: var(--text-muted); font-size: .57rem; margin-bottom: .3rem; text-transform: uppercase; }
.home-game-team { display: flex; font-size: .7rem; gap: .4rem; justify-content: space-between; padding: .12rem 0; }
.home-game-team span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-game-team strong { color: var(--text-muted); }
.home-game-team.winner span, .home-game-team.winner strong { color: var(--text-primary); font-weight: 850; }
@media (max-width: 1100px) { .home-games { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) {
  .home-hero { align-items: stretch; flex-direction: column; gap: 1rem; }
  .home-hero form { min-width: 0; }
  .home-highlights, .home-main-grid { grid-template-columns: 1fr; }
  .home-games { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .home-highlights { grid-template-columns: 1fr; }
  .home-conferences { grid-template-columns: 1fr; }
  .home-conference + .home-conference { border-left: 0; border-top: 1px solid var(--border-default); }
  .home-games { grid-template-columns: 1fr; }
  .home-season-finished { align-items: start; flex-direction: column; gap: .25rem; }
}
.trade-submit-panel,
.trade-proposals {
  margin-top: 1.25rem;
  padding: 1rem;
  border: 1px solid var(--border-color);
  border-radius: 14px;
  background: var(--surface-color);
}
.trade-submit-panel label { display: block; }
.trade-submit-panel > div:last-child { display: flex; gap: .65rem; justify-content: flex-end; margin-top: .8rem; }
.trade-proposals > header { margin-bottom: .8rem; }
.trade-proposal-list { display: grid; gap: .9rem; }
.trade-proposal-card { padding: 1rem; border-radius: 12px; background: var(--surface-muted); }
.trade-proposal-card > header, .trade-proposal-card > footer {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.trade-proposal-card h3 { margin: .15rem 0 0; font-size: 1rem; }
.trade-proposal-assets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: .9rem 0; }
.trade-proposal-assets ul { margin: .35rem 0 0; padding-left: 1.1rem; }
.trade-proposal-assets small { display: block; opacity: .75; }
.trade-proposal-participants { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.trade-proposal-participants span { padding: .3rem .55rem; border-radius: 999px; background: var(--surface-color); font-size: .78rem; }
.trade-proposal-note { padding: .65rem; border-left: 3px solid var(--primary-color); }
.trade-proposal-card footer > div { display: flex; gap: .45rem; flex-wrap: wrap; }
.trade-proposal-card footer form { display: inline; }
.trade-status { padding: .3rem .6rem; border-radius: 999px; font-size: .72rem; letter-spacing: .04em; }
.trade-status-enviada { background: #184b75; color: #d8efff; }
.trade-status-aceita { background: #195d42; color: #d7ffed; }
.trade-status-rejeitada, .trade-status-cancelada { background: #67333a; color: #ffe0e4; }
.trade-status-rascunho { background: #4b4e55; color: #f0f1f3; }
@media (max-width: 720px) {
  .trade-proposal-assets { grid-template-columns: 1fr; }
  .trade-proposal-card > header, .trade-proposal-card > footer { align-items: flex-start; flex-direction: column; }
}

/* Fantasy player statistics */
.player-stats-page { margin: 0 auto; max-width: 1650px; }
.player-stats-hero { align-items: end; background: linear-gradient(130deg, var(--surface-elevated), var(--surface)); border: 1px solid var(--border-default); display: flex; justify-content: space-between; margin-bottom: 1rem; padding: 1.2rem 1.35rem; }
.player-stats-hero h1 { font-size: 1.65rem; margin: .15rem 0 .2rem; }
.player-stats-hero p { color: var(--text-muted); font-size: .8rem; margin: 0; }
.player-stats-summary { border-left: 3px solid var(--primary); display: flex; flex-direction: column; min-width: 150px; padding-left: .8rem; }
.player-stats-summary span { color: var(--text-muted); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.player-stats-summary strong { font-size: 1.25rem; }
.player-stats-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .7rem; grid-template-columns: repeat(7, minmax(110px, 1fr)) auto; margin-bottom: 1rem; padding: .85rem; }
.player-stats-filters label { color: var(--text-muted); font-size: .68rem; font-weight: 800; min-width: 0; text-transform: uppercase; }
.player-stats-filters .form-control, .player-stats-filters .form-select { font-size: .78rem; margin-top: .28rem; }
.player-stats-filter-actions { display: flex; gap: .4rem; }
.player-stats-filter-actions .btn { font-size: .68rem; white-space: nowrap; }
.player-leaders-section, .player-ranking-section { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.player-leaders-section > header, .player-ranking-section > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .9rem; }
.player-leaders-section > header span, .player-ranking-section > header span { color: var(--primary); font-size: .56rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.player-leaders-section > header h2, .player-ranking-section > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.player-leaders-section > header small, .player-ranking-section > header small { color: var(--text-muted); font-size: .6rem; }
.player-leaders-grid { display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--border-subtle); }
.player-leader-card { background: var(--surface); min-width: 0; }
.player-leader-card > header { align-items: center; border-bottom: 1px solid var(--border-subtle); display: flex; justify-content: space-between; padding: .55rem .65rem; }
.player-leader-card > header div { align-items: baseline; display: flex; gap: .4rem; }
.player-leader-card > header strong { color: var(--primary); font-size: .78rem; }
.player-leader-card > header span, .player-leader-card > header small { color: var(--text-muted); font-size: .61rem; }
.player-leader-card.turnovers > header strong { color: var(--warning); }
.player-leader-card ol { list-style: none; margin: 0; padding: 0; }
.player-leader-card li { align-items: center; display: grid; font-size: .72rem; gap: .38rem; grid-template-columns: 20px minmax(0, 1fr) 34px 46px; min-height: 34px; padding: .28rem .55rem; }
.player-leader-card li:nth-child(odd), .player-ranking-table tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.leader-rank { color: var(--text-muted); text-align: center; }
.player-leader-card a { color: var(--text-primary); font-weight: 700; overflow: hidden; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.player-leader-card a:hover { color: var(--primary); }
.leader-games { color: var(--text-muted); font-size: .61rem; text-align: right; }
.player-leader-card li > strong { color: var(--text-primary); text-align: right; }
.player-ranking-wrap { overflow-x: auto; }
.player-ranking-table { border-collapse: collapse; font-size: .75rem; width: 100%; }
.player-ranking-table th { color: var(--text-muted); cursor: pointer; font-size: .62rem; letter-spacing: .04em; padding: .48rem .6rem; position: relative; text-transform: uppercase; white-space: nowrap; }
.player-ranking-table th:hover, .player-ranking-table th.active-sort { color: var(--primary); }
.player-ranking-table th.active-sort::after { content: "▼"; font-size: .45rem; margin-left: .25rem; }
.player-ranking-table th.active-sort.sort-asc::after { content: "▲"; }
.player-ranking-table td { padding: .48rem .6rem; }
.player-ranking-table tbody tr:target { background: color-mix(in srgb, var(--primary) 16%, var(--surface)); }
.player-ranking-table tbody tr:hover { background: var(--surface-hover); }
.player-ranking-table .number { font-variant-numeric: tabular-nums; text-align: right; }
.player-ranking-table .turnover { color: var(--warning); }
.player-position { background: var(--surface-hover); border-radius: 999px; display: inline-block; font-size: .56rem; font-weight: 800; padding: .16rem .38rem; white-space: nowrap; }
.player-team { color: var(--text-secondary); display: block; max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.player-stats-empty { background: var(--surface); border: 1px solid var(--border-default); color: var(--text-muted); padding: 2rem; text-align: center; }
@media (max-width: 1250px) {
  .player-stats-filters { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
  .player-leaders-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  .player-stats-hero { align-items: start; flex-direction: column; gap: .8rem; }
  .player-stats-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .player-leaders-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .player-stats-filters, .player-leaders-grid { grid-template-columns: 1fr; }
  .player-stats-filter-actions { grid-column: 1; }
}

/* Fantasy team statistics */
.team-stats-page { margin: 0 auto; max-width: 1650px; }
.team-stats-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .7rem; grid-template-columns: repeat(3, minmax(170px, 260px)) auto; justify-content: start; margin-bottom: 1rem; padding: .85rem; }
.team-stats-filters label { color: var(--text-muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.team-stats-filters .form-select { font-size: .78rem; margin-top: .28rem; }
.team-stats-filters .btn { font-size: .68rem; }
.team-rankings-section { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.team-rankings-section > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .9rem; }
.team-rankings-section > header span { color: var(--primary); font-size: .56rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.team-rankings-section > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.team-rankings-section > header small { color: var(--text-muted); font-size: .6rem; }
.team-rankings-grid { background: var(--border-subtle); display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.team-ranking-card { background: var(--surface); min-width: 0; }
.team-ranking-card > header { align-items: center; border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .55rem .65rem; }
.team-ranking-card > header div { align-items: baseline; display: flex; gap: .4rem; }
.team-ranking-card > header strong { color: var(--primary); font-size: .78rem; }
.team-ranking-card > header span, .team-ranking-card > header small { color: var(--text-muted); font-size: .61rem; }
.team-ranking-card.turnovers > header strong { color: var(--warning); }
.team-ranking-head, .team-ranking-card li { align-items: center; display: grid; gap: .35rem; grid-template-columns: 20px minmax(0, 1fr) 24px 50px 45px; }
.team-ranking-head { color: var(--text-muted); font-size: .54rem; font-weight: 800; padding: .35rem .55rem; text-align: right; text-transform: uppercase; }
.team-ranking-head span:nth-child(2) { text-align: left; }
.team-ranking-card ol { list-style: none; margin: 0; padding: 0; }
.team-ranking-card li { font-size: .7rem; min-height: 32px; padding: .25rem .55rem; text-align: right; }
.team-ranking-card li:nth-child(odd) { background: var(--surface-elevated); }
.team-ranking-card li > strong { overflow: hidden; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.team-ranking-card li > b { color: var(--text-primary); }
.team-ranking-card li > small, .team-ranking-card li > span { color: var(--text-muted); }
.team-ranking-card .team-rank { text-align: center; }
@media (max-width: 1250px) { .team-rankings-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 850px) {
  .team-stats-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-rankings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .team-stats-filters, .team-rankings-grid { grid-template-columns: 1fr; }
}

/* Team statistics summary */
.team-summary-page { margin: 0 auto; max-width: 1650px; }
.team-summary-panel { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.team-summary-panel > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .9rem; }
.team-summary-panel > header > div:first-child span { color: var(--primary); font-size: .56rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.team-summary-panel > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.team-summary-legend { display: flex; gap: .28rem; }
.team-summary-legend span { border-radius: 3px; color: var(--text-primary); font-size: .52rem; font-weight: 800; min-width: 38px; padding: .2rem .28rem; text-align: center; }
.team-summary-wrap { overflow-x: auto; }
.team-summary-table { border-collapse: separate; border-spacing: 1px; font-size: .75rem; min-width: 850px; width: 100%; }
.team-summary-table th { background: var(--surface); color: var(--text-muted); font-size: .62rem; letter-spacing: .04em; padding: .48rem .6rem; text-align: center; text-transform: uppercase; white-space: nowrap; }
.team-summary-table th.summary-sortable { cursor: pointer; }
.team-summary-table th.summary-sortable:hover, .team-summary-table th.summary-sortable.active-sort { color: var(--primary); }
.team-summary-table th.summary-sortable::after { content: "↕"; font-size: .58rem; margin-left: .25rem; opacity: .45; }
.team-summary-table th.summary-sortable.active-sort::after { content: "▼"; opacity: 1; }
.team-summary-table th.summary-sortable.active-sort.sort-asc::after { content: "▲"; }
.team-summary-table td { height: 43px; padding: .35rem .55rem; text-align: center; }
.team-summary-table .sticky-team { left: 0; min-width: 195px; position: sticky; text-align: left; z-index: 2; }
.team-summary-table thead .sticky-team { background: var(--surface); z-index: 3; }
.team-summary-table tbody .sticky-team { background: var(--surface); }
.team-summary-table tbody tr:nth-child(odd) .sticky-team, .team-summary-table tbody tr:nth-child(odd) .games { background: var(--surface-elevated); }
.team-summary-table .games { background: var(--surface); color: var(--text-muted); width: 42px; }
.summary-stat strong, .summary-stat small { display: block; }
.summary-stat strong { font-variant-numeric: tabular-nums; }
.summary-stat small { color: currentColor; font-size: .57rem; opacity: .75; }
.summary-stat.none { background: var(--surface-elevated); color: var(--text-muted); }
.summary-stat.elite, .team-summary-legend .elite { background: color-mix(in srgb, var(--success) 32%, var(--surface)); color: var(--success); }
.summary-stat.strong, .team-summary-legend .strong { background: color-mix(in srgb, var(--success) 16%, var(--surface)); color: color-mix(in srgb, var(--success) 82%, var(--text-primary)); }
.summary-stat.middle, .team-summary-legend .middle { background: var(--surface-elevated); color: var(--text-secondary); }
.summary-stat.weak, .team-summary-legend .weak { background: color-mix(in srgb, var(--warning) 17%, var(--surface)); color: var(--warning); }
.summary-stat.bottom, .team-summary-legend .bottom { background: color-mix(in srgb, var(--danger) 22%, var(--surface)); color: var(--danger); }
.team-summary-panel > footer { border-top: 1px solid var(--border-subtle); color: var(--text-muted); font-size: .56rem; padding: .55rem .75rem; }
@media (max-width: 700px) {
  .team-summary-panel > header { align-items: flex-start; flex-direction: column; gap: .65rem; }
  .team-summary-legend { flex-wrap: wrap; }
}

/* Historical standings */
.historical-standings-page { margin: 0 auto; max-width: 1650px; }
.historical-standings-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .7rem; grid-template-columns: repeat(4, minmax(150px, 240px)) auto; justify-content: start; margin-bottom: 1rem; padding: .85rem; }
.historical-standings-filters label { color: var(--text-muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.historical-standings-filters .form-select { font-size: .78rem; margin-top: .28rem; }
.historical-standings-filters .btn { font-size: .75rem; }
.historical-tabs { margin-bottom: 1rem; }
.historical-dimension-tabs { margin-bottom: .45rem; }
.historical-standings-groups { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.historical-standings-groups.single { grid-template-columns: 1fr; }
.historical-standings-panel { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.historical-standings-panel > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .65rem .8rem; }
.historical-standings-panel > header h2 { font-size: .96rem; margin: 0; }
.historical-standings-panel > header small, .historical-standings-panel > header span { color: var(--text-muted); font-size: .66rem; }
.historical-table-wrap { overflow-x: auto; }
.historical-standings-table { border-collapse: collapse; font-size: .8rem; min-width: 760px; width: 100%; }
.historical-standings-table th { color: var(--text-muted); font-size: .66rem; letter-spacing: .03em; padding: .5rem .55rem; text-align: right; text-transform: uppercase; white-space: nowrap; }
.historical-standings-table th:nth-child(2) { text-align: left; }
.historical-standings-table td { font-variant-numeric: tabular-nums; padding: .52rem .55rem; text-align: right; }
.historical-standings-table td:nth-child(2) { text-align: left; }
.historical-standings-table tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.historical-standings-table tbody tr:hover { background: var(--surface-hover); }
.historical-standings-table td strong, .historical-standings-table td small { display: block; }
.historical-standings-table td small { color: var(--text-muted); font-size: .66rem; margin-top: .1rem; }
.historical-standings-table .rank { color: var(--primary); font-weight: 850; text-align: center; }
.historical-standings-table .percentage { font-weight: 800; }
.historical-standings-table .positive { color: var(--success); }
.historical-standings-table .negative { color: var(--danger); }
.historical-standings-table .no-history { color: var(--text-muted); opacity: .65; }
@media (max-width: 1050px) { .historical-standings-groups { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .historical-standings-filters { grid-template-columns: 1fr; }
}

/* Team performance by season */
.team-performance-page { margin: 0 auto; max-width: 1650px; }
.team-performance-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .7rem; grid-template-columns: repeat(6, minmax(120px, 1fr)) auto; justify-content: start; margin-bottom: 1rem; padding: .85rem; }
.team-performance-filters label { color: var(--text-muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.team-performance-filters .form-select { font-size: .78rem; margin-top: .28rem; }
.team-performance-grid { display: grid; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
.team-performance-card { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.team-performance-card > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-subtle); display: flex; justify-content: space-between; padding: .65rem .8rem; }
.team-performance-card > header > div:first-child { align-items: baseline; display: flex; gap: .45rem; }
.team-performance-card > header strong { color: var(--primary); font-size: .9rem; }
.team-performance-card > header span { color: var(--text-muted); font-size: .66rem; }
.team-performance-averages { display: flex; gap: .8rem; }
.team-performance-averages b { color: var(--text-primary); margin-left: .18rem; }
.team-performance-card svg { display: block; height: 175px; padding: .4rem .5rem; width: 100%; }
.team-performance-card polyline { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.chart-axis { stroke: var(--border-default); stroke-width: 1; }
.chart-team { stroke: var(--primary); stroke-width: 3; }
.chart-league { stroke: var(--text-muted); stroke-dasharray: 5 4; stroke-width: 2; }
.team-performance-card > footer { align-items: center; border-top: 1px solid var(--border-subtle); color: var(--text-muted); display: flex; font-size: .62rem; gap: .8rem; padding: .45rem .7rem; }
.team-performance-card > footer span { align-items: center; display: flex; gap: .25rem; }
.team-performance-card > footer i { display: inline-block; height: 2px; width: 18px; }
.team-line { background: var(--primary); }
.league-line { border-top: 2px dashed var(--text-muted); }
.team-performance-card > footer em { margin-left: auto; }
.performance-standing-panel, .performance-category-summary, .performance-players, .performance-stat-evolution { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.performance-standing-panel > header, .performance-category-summary > header, .performance-players > header, .performance-stat-evolution > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .9rem; }
.performance-standing-panel > header span, .performance-category-summary > header span, .performance-players > header span, .performance-stat-evolution > header span { color: var(--primary); font-size: .62rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.performance-standing-panel > header h2, .performance-category-summary > header h2, .performance-players > header h2, .performance-stat-evolution > header h2 { font-size: .98rem; margin: .08rem 0 0; }
.performance-standing-panel > header > strong { color: var(--primary); font-size: 1.35rem; }
.standing-scope-control { align-items: center; display: flex; gap: .8rem; }
.standing-scope-control nav { background: var(--surface); border: 1px solid var(--border-default); display: flex; }
.standing-scope-control nav a { color: var(--text-muted); font-size: .64rem; font-weight: 800; padding: .35rem .55rem; text-decoration: none; }
.standing-scope-control nav a.active { background: var(--primary); color: var(--primary-contrast); }
.standing-scope-control > strong { color: var(--primary); font-size: 1.35rem; min-width: 38px; text-align: right; }
.performance-standing-panel > svg { display: block; height: 250px; padding: .7rem 1rem; width: 100%; }
.performance-standing-panel polyline { fill: none; filter: none; stroke-linecap: round; stroke-linejoin: round; }
.performance-standing-panel svg circle { fill: var(--primary); }
.chart-grid { stroke: var(--border-subtle); stroke-width: 1; }
.chart-label { fill: var(--text-muted); font-size: 12px; }
.chart-axis-title { fill: var(--text-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.performance-standing-panel > footer { display: flex; gap: .65rem; overflow-x: auto; padding: .55rem .8rem; }
.performance-standing-panel > footer span { color: var(--text-muted); font-size: .6rem; white-space: nowrap; }
.performance-standing-panel > footer b { color: var(--text-primary); margin-left: .12rem; }
.performance-unavailable { color: var(--text-muted); padding: 2rem; text-align: center; }
.performance-category-grid { display: grid; gap: 1px; grid-template-columns: repeat(7, minmax(0, 1fr)); background: var(--border-subtle); }
.performance-category-grid article { background: var(--surface); border-top: 4px solid var(--border-default); min-width: 0; padding: .8rem; text-align: center; }
.performance-category-grid article.elite { border-top-color: var(--success); }
.performance-category-grid article.strong { border-top-color: color-mix(in srgb, var(--success) 60%, var(--primary)); }
.performance-category-grid article.weak { border-top-color: var(--warning); }
.performance-category-grid article.bottom { border-top-color: var(--danger); }
.performance-category-grid article > div strong, .performance-category-grid article > div span, .performance-category-grid article > b, .performance-category-grid article > small { display: block; }
.performance-category-grid article > div strong { color: var(--primary); font-size: .78rem; }
.performance-category-grid article > div span { color: var(--text-muted); font-size: .58rem; margin-top: .1rem; }
.performance-category-grid article > b { font-size: 1.5rem; margin: .5rem 0 .25rem; }
.performance-category-grid article > small { color: var(--text-muted); font-size: .58rem; }
.performance-category-summary > footer { display: flex; gap: .8rem; padding: .5rem .75rem; }
.performance-category-summary > footer span { font-size: .58rem; font-weight: 800; }
.performance-category-summary > footer .elite { color: var(--success); }
.performance-category-summary > footer .strong { color: color-mix(in srgb, var(--success) 60%, var(--primary)); }
.performance-category-summary > footer .middle { color: var(--text-muted); }
.performance-category-summary > footer .weak { color: var(--warning); }
.performance-category-summary > footer .bottom { color: var(--danger); }
.performance-players > header small { color: var(--text-muted); font-size: .6rem; }
.performance-players-wrap { overflow-x: auto; }
.performance-players table { border-collapse: collapse; font-size: .72rem; min-width: 900px; width: 100%; }
.performance-players th { color: var(--text-muted); cursor: pointer; font-size: .6rem; padding: .5rem .6rem; text-align: right; white-space: nowrap; }
.performance-players th:first-child { text-align: left; }
.performance-players th:hover, .performance-players th.active-sort { color: var(--primary); }
.performance-players th::after { content: "↕"; margin-left: .2rem; opacity: .4; }
.performance-players th.active-sort::after { content: "▼"; opacity: 1; }
.performance-players th.active-sort.sort-asc::after { content: "▲"; }
.performance-players td { font-variant-numeric: tabular-nums; padding: .5rem .6rem; text-align: right; }
.performance-players td:first-child { text-align: left; }
.performance-players tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.performance-players tbody tr:hover { background: var(--surface-hover); }
.performance-players .ifg { color: var(--primary); }
.performance-stat-evolution > .team-performance-grid { margin: 0; padding: .8rem; }
.team-performance-rounds { background: var(--surface); border: 1px solid var(--border-default); }
.team-performance-rounds > header { background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); padding: .65rem .8rem; }
.team-performance-rounds > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.team-performance-rounds > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.team-performance-table-wrap { overflow-x: auto; }
.team-performance-rounds table { border-collapse: collapse; font-size: .72rem; min-width: 900px; width: 100%; }
.team-performance-rounds th { color: var(--text-muted); font-size: .6rem; padding: .5rem .6rem; text-align: center; }
.team-performance-rounds th:first-child, .team-performance-rounds td:first-child { text-align: left; }
.team-performance-rounds td { padding: .5rem .6rem; text-align: center; }
.team-performance-rounds tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.team-performance-rounds td strong, .team-performance-rounds td small { display: block; }
.team-performance-rounds td small { color: var(--text-muted); font-size: .56rem; margin-top: .1rem; }
@media (max-width: 900px) {
  .team-performance-grid { grid-template-columns: 1fr; }
  .team-performance-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .performance-category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .team-performance-filters { grid-template-columns: 1fr; }
  .performance-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Team campaign */
.team-campaign-page { margin: 0 auto; max-width: 1650px; }
.team-campaign-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .7rem; grid-template-columns: repeat(3, minmax(180px, 260px)) auto; justify-content: start; margin-bottom: 1rem; padding: .85rem; }
.team-campaign-filters label { color: var(--text-muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.team-campaign-filters .form-select { font-size: .78rem; margin-top: .28rem; }
.historical-campaign-filters { grid-template-columns: repeat(2, minmax(180px, 260px)) auto; }
.campaign-summary { display: grid; gap: 1px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 1rem; background: var(--border-subtle); }
.campaign-summary article { background: var(--surface); border-top: 3px solid var(--border-default); padding: .75rem .85rem; }
.campaign-summary article.win { border-top-color: var(--success); }
.campaign-summary article.loss { border-top-color: var(--danger); }
.campaign-summary span, .campaign-summary strong { display: block; }
.campaign-summary span { color: var(--text-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.campaign-summary strong { font-size: 1.15rem; margin-top: .18rem; }
.campaign-layout { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.65fr) minmax(400px, 1fr); }
.campaign-matchups, .campaign-opponents { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.campaign-matchups > header, .campaign-opponents > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .85rem; }
.campaign-matchups > header span, .campaign-opponents > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.campaign-matchups > header h2, .campaign-opponents > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.campaign-matchups > header small { color: var(--text-muted); font-size: .6rem; }
.campaign-table-wrap { overflow-x: auto; }
.campaign-matchups table { border-collapse: collapse; font-size: .7rem; min-width: 100%; width: 100%; }
.campaign-matchups th { color: var(--text-muted); font-size: .56rem; padding: .48rem .55rem; text-align: right; text-transform: uppercase; white-space: nowrap; }
.campaign-matchups th:first-child, .campaign-matchups th:nth-child(2), .campaign-matchups td:first-child, .campaign-matchups td:nth-child(2) { text-align: left; }
.campaign-matchups td { padding: .48rem .55rem; text-align: right; }
.campaign-matchups tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.campaign-matchups tbody tr:hover { background: var(--surface-hover); }
.campaign-matchups td small { color: var(--text-muted); display: block; font-size: .54rem; }
.campaign-matchups td a { color: var(--primary); font-size: .6rem; font-weight: 750; }
.campaign-result { border-radius: 3px; display: inline-block; font-weight: 900; min-width: 24px; padding: .18rem .3rem; text-align: center; }
.campaign-result.win { background: color-mix(in srgb, var(--success) 18%, var(--surface)); color: var(--success); }
.campaign-result.loss { background: color-mix(in srgb, var(--danger) 18%, var(--surface)); color: var(--danger); }
.campaign-result.tie { background: var(--surface-hover); color: var(--text-muted); }
.campaign-layout .positive { color: var(--success); font-weight: 800; }
.campaign-layout .negative { color: var(--danger); font-weight: 800; }
.campaign-matchups { margin-bottom: 1rem; }
.campaign-matchups > header .btn { font-size: .62rem; }
.campaign-history-matrix { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; }
.campaign-history-matrix > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .85rem; }
.campaign-history-matrix > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.campaign-history-matrix > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.campaign-history-matrix > header small { color: var(--text-muted); font-size: .6rem; }
.campaign-matrix-wrap { overflow-x: auto; }
.campaign-matrix { border-collapse: collapse; font-size: .68rem; min-width: 1050px; width: 100%; }
.campaign-matrix th { color: var(--text-muted); font-size: .55rem; padding: .48rem .5rem; text-align: center; white-space: nowrap; }
.campaign-matrix th:first-child, .campaign-matrix td:first-child { left: 0; min-width: 190px; position: sticky; text-align: left; z-index: 2; }
.campaign-matrix thead th:first-child { background: var(--surface); z-index: 3; }
.campaign-matrix tbody td:first-child { background: var(--surface); }
.campaign-matrix tbody tr:nth-child(odd) td:first-child { background: var(--surface-elevated); }
.campaign-matrix td { font-variant-numeric: tabular-nums; padding: .48rem .5rem; text-align: center; white-space: nowrap; }
.campaign-matrix tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.campaign-matrix td.positive { color: var(--success); font-weight: 800; }
.campaign-matrix td.negative { color: var(--danger); font-weight: 800; }
.campaign-matrix td.balanced { color: var(--warning); font-weight: 800; }
.campaign-matrix td.empty { color: var(--text-muted); opacity: .55; }
.campaign-matrix .matrix-total { background: color-mix(in srgb, var(--primary) 7%, var(--surface)); border-left: 1px solid var(--border-default); font-weight: 850; }
.campaign-matrix tfoot th, .campaign-matrix tfoot td { background: color-mix(in srgb, var(--primary) 7%, var(--surface)); border-top: 1px solid var(--border-default); font-weight: 850; padding: .55rem .5rem; text-align: center; white-space: nowrap; }
.campaign-matrix tfoot th { left: 0; position: sticky; text-align: left; z-index: 3; }

/* Round simulator */
.round-simulator-page { margin: 0 auto; max-width: 1650px; }
.round-simulator-filters { align-items: end; background: var(--surface); border: 1px solid var(--border-default); display: grid; gap: .65rem; grid-template-columns: repeat(7, minmax(115px, 1fr)) auto; margin-bottom: 1rem; padding: .85rem; }
.round-simulator-filters label { color: var(--text-muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.round-simulator-filters .form-select { font-size: .75rem; margin-top: .28rem; }
.simulator-summary { background: var(--border-subtle); display: grid; gap: 1px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1rem; }
.simulator-summary article { background: var(--surface); border-top: 3px solid var(--border-default); padding: .75rem .85rem; }
.simulator-summary article.win { border-top-color: var(--success); }
.simulator-summary article.tie { border-top-color: var(--warning); }
.simulator-summary article.loss { border-top-color: var(--danger); }
.simulator-summary span, .simulator-summary strong { display: block; }
.simulator-summary span { color: var(--text-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.simulator-summary strong { font-size: 1.25rem; margin-top: .15rem; }
.simulator-results { background: var(--surface); border: 1px solid var(--border-default); }
.simulator-results > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .85rem; }
.simulator-results > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.simulator-results > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.simulator-results > header small { color: var(--text-muted); font-size: .6rem; }
.simulator-table-wrap { overflow-x: auto; }
.simulator-results table { border-collapse: collapse; font-size: .68rem; min-width: 1050px; width: 100%; }
.simulator-results th { color: var(--text-muted); font-size: .55rem; padding: .48rem .52rem; text-align: center; }
.simulator-results th:first-child, .simulator-results td:first-child { text-align: left; }
.simulator-results td { padding: .48rem .52rem; text-align: center; }
.simulator-results tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.simulator-results tbody tr:hover { background: var(--surface-hover); }
.simulator-results td small { color: var(--text-muted); display: block; font-size: .52rem; margin-top: .08rem; white-space: nowrap; }
.simulator-results td.win { color: var(--success); }
.simulator-results td.loss { color: var(--danger); }
.simulator-results td.tie { color: var(--warning); }
.simulator-playoff-note { color: var(--text-muted); font-size: .62rem; margin: .55rem 0 0; }
@media (max-width: 1050px) { .round-simulator-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .round-simulator-filters { grid-template-columns: 1fr; }
  .simulator-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .campaign-layout { grid-template-columns: 1fr; }
  .campaign-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .team-campaign-filters { grid-template-columns: 1fr; }
  .campaign-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.compare-history-games {
    border-top: 1px solid var(--border-default);
    margin-top: 1.25rem;
    padding-top: 1.25rem;
}
.ifg-leaders-layout { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
.ifg-leaders { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.ifg-leaders > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .7rem .85rem; }
.ifg-leaders > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.ifg-leaders > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.ifg-leaders > header small { color: var(--text-muted); font-size: .6rem; }
.ifg-leaders ol { display: grid; gap: 1px; grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; background: var(--border-subtle); }
.ifg-leaders li { align-items: center; background: var(--surface); display: grid; gap: .7rem; grid-template-columns: 1.5rem minmax(0, 1fr) auto; padding: .65rem .8rem; }
.ifg-leaders li > span { color: var(--primary); font-size: .7rem; font-weight: 900; text-align: center; }
.ifg-leaders li div { align-items: baseline; display: flex; gap: .45rem; min-width: 0; }
.ifg-leaders li div strong { flex: 0 0 auto; font-size: .72rem; }
.ifg-leaders li div small { color: var(--text-muted); font-size: .54rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ifg-leaders li b { color: var(--primary); font-size: 1rem; }
.player-ranking-table td.ifg-position, .player-ranking-table th.ifg-position { text-align: center; }
.player-ranking-table td.ifg-team { min-width: 240px; }
.player-ranking-table td.ifg-team .player-team { max-width: 280px; }
@media (max-width: 850px) { .ifg-leaders-layout { grid-template-columns: 1fr; } }
.ifg-explanation { background: var(--surface); border: 1px solid var(--border-default); margin-top: 1rem; }
.ifg-explanation > header { background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); padding: .7rem .85rem; }
.ifg-explanation > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.ifg-explanation > header h2 { font-size: .92rem; margin: .08rem 0 0; }
.ifg-explanation-content { color: var(--text-secondary); padding: 1rem; }
.ifg-explanation-grid { display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1rem 0; }
.ifg-explanation-grid article { background: var(--surface-elevated); border-top: 3px solid var(--primary); padding: .8rem; }
.ifg-explanation-grid strong { color: var(--text-primary); display: block; font-size: .7rem; margin-bottom: .3rem; }
.ifg-explanation-grid p, .ifg-explanation-content > p, .ifg-explanation details { font-size: .66rem; margin-bottom: 0; }
.ifg-explanation details { border-top: 1px solid var(--border-subtle); padding-top: .75rem; }
.ifg-explanation summary { color: var(--primary); cursor: pointer; font-weight: 800; margin-bottom: .5rem; }
.ifg-explanation code { color: var(--warning); }
.rules-intro { background: var(--surface); border: 1px solid var(--border-default); margin-bottom: 1rem; padding: 1rem; }
.rules-intro h2 { font-size: 1rem; }
.rules-intro p { color: var(--text-muted); margin: 0; }
.rules-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rules-grid article { background: var(--surface); border: 1px solid var(--border-default); border-top: 3px solid var(--primary); padding: 1rem; }
.rules-grid article > span { color: var(--primary); font-size: .62rem; font-weight: 900; }
.rules-grid h2 { font-size: .9rem; margin: .35rem 0; }
.rules-grid p { color: var(--text-muted); font-size: .68rem; margin: 0; }
.rules-sections { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rules-sections > section { background: var(--surface); border: 1px solid var(--border-default); min-width: 0; }
.rules-sections > section > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; gap: .65rem; padding: .75rem .9rem; }
.rules-sections > section > header span { color: var(--primary); font-size: .65rem; font-weight: 900; }
.rules-sections > section > header h2 { font-size: .92rem; margin: 0; }
.rules-sections ul { margin: 0; padding: .85rem 1rem .9rem 1.9rem; }
.rules-sections li { color: var(--text-secondary); font-size: .69rem; line-height: 1.5; margin-bottom: .48rem; }
.rules-sections li:last-child { margin-bottom: 0; }
.rules-sections strong { color: var(--text-primary); }
.rules-review-note { color: var(--text-muted); font-size: .65rem; margin: 1rem 0 0; text-align: center; }
@media (max-width: 900px) {
  .ifg-explanation-grid, .rules-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rules-sections { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .ifg-explanation-grid, .rules-grid { grid-template-columns: 1fr; }
}
.restricted-player-mark { color: var(--danger); font-size: 1.05em; font-weight: 900; line-height: 1; margin-left: .2rem; position: relative; top: .08em; vertical-align: baseline; }
.restricted-final-salary { color: var(--danger) !important; font-weight: inherit; }
.roster-position-cell, .roster-table th.sticky-position { text-align: center; }
.roster-extra-player > td { background: color-mix(in srgb, var(--primary) 8%, var(--surface)) !important; }
.roster-extra-player .roster-rank { color: var(--primary); font-weight: 900; }
.roster-inline-action { display: inline; }
.roster-inline-action .icon-button { font-size: .58rem; width: auto; }
.blocked-first-pick { color: #4da3ff; font-weight: 850; }
.roster-pick-legend { color: var(--text-muted); font-size: .6rem; padding: .6rem .8rem; }
.roster-pick-legend span { background: #4da3ff; display: inline-block; height: .55rem; margin-right: .35rem; width: .55rem; }
.rookie-scale-section { background: var(--surface); border: 1px solid var(--border-default); margin-top: 1rem; }
.rookie-scale-section > header { align-items: center; background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); display: flex; justify-content: space-between; padding: .75rem .9rem; }
.rookie-scale-section > header span { color: var(--primary); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.rookie-scale-section > header h2 { font-size: .95rem; margin: .08rem 0 0; }
.rookie-scale-section > header a { color: var(--primary); font-size: .62rem; }
.rookie-scale-section table { border-collapse: collapse; font-size: .7rem; width: 100%; }
.rookie-scale-section th, .rookie-scale-section td { padding: .5rem .7rem; text-align: right; }
.rookie-scale-section th:first-child, .rookie-scale-section td:first-child { text-align: center; }
.rookie-scale-section tbody tr:nth-child(odd) { background: var(--surface-elevated); }
.player-position, .market-position, .position-badge { background: var(--surface-elevated); border: 1px solid var(--border-default); border-radius: 999px; display: inline-block; font-size: .6rem; font-weight: 800; line-height: 1; padding: .2rem .42rem; text-align: center; white-space: nowrap; }
.auth-page { align-items: center; display: flex; justify-content: center; min-height: calc(100vh - 145px); padding: 2rem 1rem; }
.auth-card { background: var(--surface); border: 1px solid var(--border-default); border-top: 4px solid var(--primary); box-shadow: 0 18px 48px rgba(0,0,0,.14); max-width: 430px; padding: 1.5rem; width: 100%; }
.auth-header { align-items: center; display: flex; gap: .85rem; margin-bottom: 1rem; }
.auth-header h1 { font-size: 1.4rem; margin: .12rem 0 0; }
.auth-header small { color: var(--text-muted); font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.auth-brand { align-items: center; background: var(--primary); border-radius: 9px; color: #fff; display: inline-flex; font-size: .8rem; font-weight: 900; height: 42px; justify-content: center; width: 42px; }
.auth-brand img { height: 100%; object-fit: contain; width: 100%; }
.auth-card > p { color: var(--text-muted); font-size: .76rem; margin-bottom: 1.15rem; }
.auth-card form > label:not(.auth-check) { color: var(--text-secondary); display: block; font-size: .67rem; font-weight: 800; margin: .8rem 0 .28rem; }
.auth-card .form-control { background: var(--surface-elevated); border-color: var(--border-default); color: var(--text-primary); }
.auth-card .form-control:focus { background: var(--surface); border-color: var(--primary); color: var(--text-primary); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--primary) 20%, transparent); }
.auth-card .text-danger { display: block; font-size: .64rem; margin-top: .22rem; }
.auth-check { align-items: center; color: var(--text-muted); display: flex; font-size: .68rem; gap: .45rem; margin: .9rem 0; }
.auth-check .form-check-input { margin: 0; }
.auth-card footer { border-top: 1px solid var(--border-subtle); margin-top: 1rem; padding-top: .85rem; text-align: center; }
.auth-card footer a { color: var(--primary); font-size: .7rem; font-weight: 750; text-decoration: none; }
.auth-card footer a:hover { text-decoration: underline; }
@media (max-width: 600px) { .auth-page { min-height: calc(100vh - 120px); padding: 1rem 0; } .auth-card { box-shadow: none; padding: 1.15rem; } }
.team-logo { background: transparent; display: inline-block; flex: 0 0 auto; object-fit: contain; }
.team-logo-xs { height: 22px; width: 22px; }
.team-logo-sm { height: 32px; width: 32px; }
.team-logo-md { height: 48px; width: 48px; }
.team-name-with-logo { align-items: center; display: flex; gap: .5rem; min-width: 0; }
.team-name-with-logo > a, .team-name-with-logo > span { min-width: 0; }
.matchup-title-logos { align-items: center; display: flex; gap: .75rem; }
.matchup-title-logos h1 { text-align: center; }
.titles-season-grid .team-logo { align-self: center; }
@media (max-width: 600px) {
  .roster-logo { flex-basis: 56px; height: 56px; width: 56px; }
  .matchup-title-logos { gap: .4rem; }
  .matchup-title-logos .team-logo-md { height: 36px; width: 36px; }
}
.players-filters{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.players-table th[data-sort]{cursor:pointer}.players-table .player-link{color:var(--text-primary);text-decoration:none}.players-table .player-link:hover{color:var(--accent)}.players-table .muted{color:var(--text-muted)}
.player-details-page{display:grid;gap:1.25rem}.player-back{color:var(--text-muted);text-decoration:none}.player-profile-card,.player-detail-section,.player-facts{background:var(--surface);border:1px solid var(--border-color);border-radius:18px}.player-profile-card{display:flex;align-items:center;gap:1.2rem;padding:1.5rem}.player-profile-card h1{margin:.2rem 0 .6rem}.player-profile-avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--accent),#f97316);color:#fff}.player-profile-tags{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;color:var(--text-muted)}.player-facts{display:grid;grid-template-columns:repeat(6,1fr);padding:1rem}.player-facts div{display:grid;gap:.2rem;padding:.35rem 1rem;border-right:1px solid var(--border-color)}.player-facts div:last-child{border:0}.player-facts span,.player-detail-section header span{color:var(--text-muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.player-detail-section{padding:1.15rem}.player-detail-section header h2{font-size:1.15rem;margin:.2rem 0 1rem}.player-empty{color:var(--text-muted);margin:0}.player-title-grid{display:flex;gap:.75rem;flex-wrap:wrap}.player-title-grid div{display:grid;grid-template-columns:auto auto;gap:.1rem .55rem;align-items:center;padding:.75rem 1rem;border-radius:12px;background:var(--surface-raised)}.player-title-grid span{grid-row:1/3;font-size:1.5rem}.player-title-grid small{color:var(--text-muted)}@media(max-width:900px){.player-facts{grid-template-columns:repeat(2,1fr)}.player-facts div{border-right:0;border-bottom:1px solid var(--border-color)}}
.player-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.player-stat-mode{display:flex;padding:3px;border:1px solid var(--border-color);border-radius:10px;background:var(--surface-raised)}.player-stat-mode button{border:0;border-radius:7px;padding:.35rem .75rem;background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:700}.player-stat-mode button.active{background:var(--accent);color:#fff}.player-nba-stats-table th:not(:first-child),.player-nba-stats-table td:not(:first-child){text-align:center}.player-nba-stats-table th:first-child,.player-nba-stats-table td:first-child{min-width:105px}@media(max-width:600px){.player-section-heading{align-items:center}.player-stat-mode button{padding:.3rem .55rem}.player-nba-stats-table{font-size:.78rem}.player-nba-stats-table th,.player-nba-stats-table td{padding:.55rem .45rem}}
.roster-player-link{color:inherit;text-decoration:none}.roster-player-link:hover{color:var(--accent);text-decoration:underline}

.position-choice-form { display: grid; gap: .35rem; min-width: 190px; }
.position-choice-current { align-items: center; color: var(--text-muted); display: flex; font-size: .68rem; gap: .4rem; white-space: nowrap; }
.position-choice-actions { align-items: stretch; display: flex; gap: .3rem; }
.position-choice-option { cursor: pointer; margin: 0; }
.position-choice-option input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.position-choice-option span { align-items: center; background: var(--surface-elevated); border: 1px solid var(--border-default); border-radius: .35rem; color: var(--text-secondary); display: flex; font-size: .75rem; font-weight: 800; height: 100%; justify-content: center; min-height: 31px; min-width: 42px; padding: .25rem .55rem; }
.position-choice-option input:checked + span { background: color-mix(in srgb, var(--primary) 22%, var(--surface)); border-color: var(--primary); color: var(--text-primary); }
.position-choice-option input:focus-visible + span { box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--primary) 35%, transparent); }

@media (max-width: 767.98px) {
  .position-choice-form { min-width: 176px; }
  .position-choice-current { font-size: .72rem; }
  .position-choice-option span { min-height: 36px; min-width: 48px; }
  .position-choice-actions .btn { min-height: 36px; }
}
.trade-notification-link{align-items:center;color:var(--text-primary);display:inline-flex;font-size:1rem;justify-content:center;margin-left:auto;position:relative;text-decoration:none}.trade-notification-link strong{align-items:center;background:var(--danger);border:2px solid var(--surface);border-radius:999px;color:#fff;display:flex;font-size:.52rem;height:1.1rem;justify-content:center;min-width:1.1rem;padding:0 .2rem;position:absolute;right:-.55rem;top:-.45rem}.trade-proposal-attention{border-color:var(--warning)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--warning) 35%,transparent)}
.anonymous-layout .app-layout{display:block}.anonymous-layout .app-content{margin-left:0;min-height:100vh;width:100%}.anonymous-layout .app-footer{margin-left:0}
.trade-asset-blocked{opacity:.5}.trade-asset-blocked span:after{color:var(--danger);content:attr(data-blocked-reason);display:block;font-size:.52rem;font-weight:750}
.home-trade-alert{background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid var(--border-default);border-left:4px solid var(--primary);margin-bottom:1rem}.home-trade-alert>header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:.75rem .9rem}.home-trade-alert>header span{color:var(--primary);font-size:.6rem;font-weight:850;text-transform:uppercase}.home-trade-alert>header h2{font-size:.95rem;margin:.08rem 0 0}.home-trade-alert>header a{color:var(--primary);font-size:.65rem;font-weight:750;text-decoration:none}.home-trade-alert>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.home-trade-alert>div>a{color:var(--text-primary);display:grid;gap:.1rem;padding:.7rem .9rem;text-decoration:none}.home-trade-alert>div>a.needs-action{background:color-mix(in srgb,var(--warning) 10%,transparent)}.home-trade-alert>div>a span,.home-trade-alert>div>a small{color:var(--text-muted);font-size:.58rem}.home-trade-alert>div>a strong{font-size:.7rem}.home-trade-alert>div>a.needs-action small{color:var(--warning);font-weight:800}@media(max-width:800px){.home-trade-alert>div{grid-template-columns:1fr}}
.contract-inferred{display:block;color:var(--text-muted);font-weight:400}.movement-inline-link{display:block;margin-top:.25rem;font-size:.78rem;color:var(--accent);text-decoration:none}.movement-inline-link:hover{text-decoration:underline}.movement-money{display:block;color:var(--text-primary);font-weight:700;margin-top:.2rem}
.notifications-page{display:grid;gap:1rem}.notification-list,.notification-preferences{display:grid;gap:.75rem}.notification-card,.notification-preference-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.15rem;border:1px solid var(--line-color,#30394a);border-radius:14px;background:var(--panel-bg,#151a23)}.notification-card.is-unread{border-left:4px solid #2f80ed}.notification-card.is-read{opacity:.72}.notification-card h2,.notification-preference-card h2{font-size:1rem;margin:.2rem 0}.notification-preference-card h2 small{font-size:.8rem;color:var(--text-muted,#9ca7b8)}.notification-card p,.notification-preference-card p{margin:0;color:var(--text-muted,#9ca7b8)}.notification-preference-card{grid-template-columns:minmax(250px,1fr) minmax(160px,.35fr) minmax(190px,.4fr)}.notification-channels{display:grid;gap:.35rem}.notification-channels small{color:var(--text-muted,#9ca7b8)}.sidebar-account-link{display:block;margin-bottom:.65rem;color:inherit;text-decoration:none;font-size:.88rem}@media(max-width:850px){.notification-card,.notification-preference-card{grid-template-columns:1fr}.notification-card form .btn{width:100%}}
.player-outside-nba-form{display:flex;justify-content:flex-end;margin:-.5rem 0 1rem;font-size:.85rem}.player-outside-nba-form .form-check{display:flex;align-items:center;gap:.45rem}
.notification-card,.notification-preference-card{background:var(--surface);border-color:var(--border-default);color:var(--text-primary)}
