.podium-page { max-width: 1220px; margin: 0 auto; color: var(--text-main); }
.podium-header { position: relative; display: flex; align-items: center; gap: 18px; overflow: hidden; padding: 25px 28px; border: 1px solid var(--border-color); border-radius: 14px; background: linear-gradient(110deg,rgba(137,37,46,.32),transparent 52%),linear-gradient(155deg,var(--card-bg),var(--preview-bg)); }
.podium-header::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,transparent 85%,rgba(210,34,44,.16)); }
.podium-header > img { z-index: 1; width: 70px; height: 70px; object-fit: contain; filter: drop-shadow(0 6px 12px #0007); }
.podium-header > div { z-index: 1; flex: 1; min-width: 0; }
.podium-header > div > span,.podium-section-title > span { color: #f0b679; font: 700 11px 'Roboto Mono',monospace; letter-spacing: .15em; }
.podium-header h2 { margin: 3px 0; font: 700 clamp(28px,4vw,43px) 'Oswald',sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.podium-header p { margin: 0; color: var(--text-label); font-size: 13px; }
.podium-header button { z-index: 1; }
.podium-note { margin: 13px 2px 27px; color: var(--text-muted); font-size: 13px; }
.podium-sections { display: grid; gap: 28px; }
.podium-section { padding: 22px 24px 0; overflow: hidden; border: 1px solid var(--border-color); border-radius: 14px; background: var(--card-bg); box-shadow: var(--shadow); }
.podium-section-title h3 { margin: 4px 0 2px; font: 600 clamp(21px,2.6vw,28px) 'Oswald',sans-serif; }
.podium-section-title p { margin: 0; color: var(--text-muted); font-size: 13px; }
.podium-stand { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: 14px; max-width: 960px; min-height: 375px; margin: 28px auto 0; }
.podium-place { --medal: #aeb9c5; --pedestal: #758699; min-width: 0; text-align: center; }
.podium-place.place-1 { --medal: #f6c968; --pedestal: #c99537; }
.podium-place.place-3 { --medal: #d99e79; --pedestal: #a66d50; }
.podium-person { display: flex; flex-direction: column; align-items: center; min-height: 205px; padding: 0 8px 12px; }
.podium-portrait { position: relative; display: grid; place-items: center; width: 76px; height: 76px; margin-bottom: 10px; overflow: hidden; border: 3px solid var(--medal); border-radius: 50%; background: linear-gradient(140deg,#354a5d,#121e2c); box-shadow: 0 0 0 5px color-mix(in srgb,var(--medal) 14%,transparent),0 8px 22px #0006; }
.podium-place.place-1 .podium-portrait { width: 90px; height: 90px; }
.podium-portrait span { font: 700 25px 'Oswald',sans-serif; color: #fff; }
.podium-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.podium-portrait.has-avatar img { opacity: 1; }
.podium-medal { padding: 3px 9px; border: 1px solid var(--medal); border-radius: 999px; color: var(--medal); font: 700 11px 'Roboto Mono',monospace; }
.podium-person strong { max-width: 100%; margin-top: 9px; overflow-wrap: anywhere; font-size: clamp(13px,1.7vw,18px); }
.podium-person small { display: block; min-height: 20px; margin-top: 4px; color: var(--text-muted); font-size: 11px; }
.podium-person b { margin-top: 7px; color: var(--medal); font: 700 16px 'Oswald',sans-serif; }
.podium-pedestal { position: relative; display: grid; place-items: center; height: 105px; border: 1px solid var(--medal); border-bottom: 0; border-radius: 9px 9px 0 0; background: var(--pedestal); background: linear-gradient(155deg,color-mix(in srgb,var(--pedestal) 76%,white),var(--pedestal) 47%,color-mix(in srgb,var(--pedestal) 60%,black)); box-shadow: inset 0 3px 0 #fff5,0 -12px 30px color-mix(in srgb,var(--medal) 12%,transparent); }
.podium-place.place-1 .podium-pedestal { height: 150px; }
.podium-place.place-3 .podium-pedestal { height: 78px; }
.podium-pedestal span { color: #fff; font: 700 52px 'Oswald',sans-serif; text-shadow: 0 3px 9px #0007; }
.podium-error { grid-column: 1 / -1; align-self: start; color: #f08282; }
[data-theme="light"] .podium-header { background: linear-gradient(110deg,rgba(210,34,44,.11),transparent 55%),#fff; }
[data-theme="light"] .podium-header > div > span,[data-theme="light"] .podium-section-title > span { color: #9e4734; }
.roster-podium-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.roster-podium-badge { --award: #b5c3d1; --award-ink: #4a6175; display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px 4px 4px; border: 1px solid color-mix(in srgb,var(--award) 55%,transparent); border-radius: 7px; background: linear-gradient(125deg,color-mix(in srgb,var(--award) 18%,transparent),color-mix(in srgb,var(--award) 6%,transparent)); color: var(--text-main); white-space: nowrap; box-shadow: inset 0 1px 0 #fff1; }
.roster-podium-badge.podium-place-1 { --award: #f5c765; --award-ink: #765c25; }
.roster-podium-badge.podium-place-3 { --award: #dba183; --award-ink: #87533c; }
.roster-podium-number { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 5px; background: var(--award); color: #1e2229; font: 700 14px 'Oswald',sans-serif; }
.roster-podium-label { display: flex; flex-direction: column; gap: 1px; line-height: 1; }
.roster-podium-label strong { color: var(--award); font: 700 10px 'Roboto Mono',monospace; }
.roster-podium-label small { color: var(--text-muted); font: 600 9px 'Roboto Mono',monospace; }
.roster-podium-streak { align-self: center; margin-left: 2px; padding: 2px 4px; border-radius: 4px; background: color-mix(in srgb,var(--award) 20%,transparent); color: var(--award); font: 800 11px 'Roboto Mono',monospace; }
[data-theme="light"] .roster-podium-badge { box-shadow: inset 0 1px 0 #fff9; }
[data-theme="light"] .roster-podium-label strong,[data-theme="light"] .roster-podium-streak { color: var(--award-ink); }
@media (max-width: 650px) {
  .podium-header { flex-wrap: wrap; padding: 18px; }
  .podium-header > img { width: 54px; height: 54px; }
  .podium-header button { margin-left: auto; }
  .podium-section { padding: 18px 12px 0; }
  .podium-stand { gap: 5px; min-height: 300px; }
  .podium-person { min-height: 195px; padding: 0 2px 8px; }
  .podium-portrait,.podium-place.place-1 .podium-portrait { width: 52px; height: 52px; }
  .podium-portrait span { font-size: 17px; }
  .podium-person strong { font-size: 12px; }
  .podium-person small { font-size: 10px; }
  .podium-person b { font-size: 13px; }
  .podium-pedestal { height: 75px; }
  .podium-place.place-1 .podium-pedestal { height: 112px; }
  .podium-place.place-3 .podium-pedestal { height: 55px; }
  .podium-pedestal span { font-size: 36px; }
}
