/* RTP — Per-screen styles */

/* ── Global layout override ──────────────────────────── */
body.rtp-page {
  margin: 0;
  padding: 0;
  background: var(--rtp-bg);
}

/* ── Entry screen ────────────────────────────────────── */
.rtp-entry__hero {
  padding: 40px 20px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.rtp-entry__headline {
  font-family: var(--rtp-font-ko);
  font-size: 28px;
  font-weight: 800;
  color: var(--rtp-ink);
  line-height: 1.25;
  letter-spacing: -0.8px;
  margin-top: 12px;
}
.rtp-entry__headline em { color: var(--rtp-orange); font-style: normal; }
.rtp-entry__sub { font-size: 14px; color: var(--rtp-ink-2); margin-top: 10px; line-height: 1.5; }
.rtp-entry__quota-hint {
  margin-top: auto;
  padding: 14px 16px;
  background: var(--rtp-bg);
  border-radius: var(--rtp-radius-lg);
  display: flex;
  align-items: center;
  gap: 10px;
}
.rtp-entry__quota-count { font-family: var(--rtp-font-num); font-weight: 700; font-size: 13px; color: var(--rtp-orange); }
.rtp-entry__quota-text { font-size: 12px; color: var(--rtp-ink-2); }
.rtp-entry__suggest-label { font-size: 12px; color: var(--rtp-ink-3); font-weight: 600; margin-bottom: 10px; }
.rtp-entry__chips { display: flex; flex-wrap: wrap; gap: 8px; }
/* 온보딩 포인터가 첫 칩 위에 떠야 하므로 윗공간 확보 (라벨과 안 겹치게) */
.rtp-entry__chips--onb { margin-top: 38px; }

/* ── Onboarding pointers (👇) — 처음 온 비로그인 사용자 유도 ──────────── */
/* 메인페이지 .player-card-pointer 패턴을 basketball 화면용으로 이식 */
.rtp-onb-anchor { position: relative; }
.rtp-onb-pointer {
  position: absolute;
  z-index: 6;
  left: 50%;
  margin-left: -12px;
  pointer-events: none;
  line-height: 1;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.18));
}
.rtp-onb-pointer__emoji {
  display: block;
  font-size: 24px;
  line-height: 1;
  user-select: none;
  animation: rtp-onb-down 1.2s ease-in-out infinite;
}
.rtp-onb-pointer--gone { opacity: 0; transition: opacity .35s ease; }
.rtp-onb-pointer--gone .rtp-onb-pointer__emoji { animation: none; }

/* 타겟별 위치 보정 — 각각 가리키는 요소 바로 위에 오도록 */
.rtp-onb-pointer--chip { top: -28px; }   /* entry 첫 칩 */
.rtp-onb-pointer--tab  { top: -20px; }   /* STATS 탭 (위는 헤더 가운데 빈 공간) */
.rtp-onb-pointer--pill { top: -24px; }   /* 리바·어시 pill */
.rtp-onb-pointer--vod  { top: -26px; }   /* 최근경기 VOD ▶ */

/* 위에서 시작해 아래로 누르듯 (손가락이 아래를 가리키는 방향 유지) */
@keyframes rtp-onb-down {
  0%, 100% { transform: translateY(-8px); }
  45% { transform: translateY(8px) scale(0.92); }
  60% { transform: translateY(4px) scale(0.96); }
  75% { transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .rtp-onb-pointer__emoji { animation: none; transform: translateY(0); }
}

/* Entry — dark hero variant (basketball_entry mini 20260520-1920) */
.rtp-entry__hero--dark {
  background: #15171c;
  padding: 0 20px 32px;
  gap: 16px;
}
.rtp-entry__hero--dark .rtp-entry__headline { color: #fff; margin-top: 16px; }
.rtp-entry__hero--dark .rtp-entry__headline em { color: var(--rtp-orange); }
.rtp-entry__hero--dark .rtp-entry__sub { color: rgba(255,255,255,0.7); }
.rtp-entry__body { padding: 24px 20px; background: var(--rtp-bg); flex: 1; }

/* Entry — slim hero (toggle redesign 20260522) */
.rtp-entry__hero--slim {
  flex: 0 0 auto;
  padding: 4px 20px 24px;
  gap: 8px;
}
.rtp-entry__hero--slim .rtp-entry__headline { margin-top: 4px; font-size: 26px; }
.rtp-entry__hero--slim .rtp-entry__sub { margin-top: 6px; }

/* Header slim variant — tighter top padding, no bottom gap to hero */
.rtp-header--hero-dark-slim {
  padding: 16px 20px 10px;
}

/* ── Auth toggle (회원가입 / 로그인) ─────────────────────── */
.rtp-auth-toggle {
  display: inline-flex;
  padding: 4px;
  background: rgba(255,255,255,0.08);
  border-radius: 999px;
  gap: 2px;
}
.rtp-auth-toggle__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: 999px;
  font-family: var(--rtp-font-ko);
  font-size: 13px;
  font-weight: 700;
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  min-height: 32px;
  transition: background var(--rtp-t-fast), color var(--rtp-t-fast);
}
.rtp-auth-toggle__btn--active {
  background: var(--rtp-orange);
  color: #fff;
  box-shadow: 0 2px 8px rgba(255,143,0,0.35);
}
.rtp-auth-toggle__btn:not(.rtp-auth-toggle__btn--active):hover {
  color: #fff;
}

/* ── Search box — card variant (stands out on grey bg) ──── */
.rtp-search--card {
  background: var(--rtp-white);
  border: 1.5px solid var(--rtp-line, #e5e7eb);
  box-shadow: 0 2px 8px rgba(15,17,28,0.06);
}
.rtp-search--card:focus-within {
  border-color: var(--rtp-orange);
  background: var(--rtp-white);
  box-shadow: 0 4px 14px rgba(255,143,0,0.18);
}

/* ── Suggest chips — clickable affordance ───────────────── */
.rtp-entry__suggest-label { margin-top: 18px; }
.rtp-chip--clickable {
  height: 38px;
  padding: 0 14px;
  background: var(--rtp-white);
  border: 1.5px solid var(--rtp-line, #e5e7eb);
  color: var(--rtp-ink);
  text-decoration: none;
  font-weight: 700;
  box-shadow: 0 1px 3px rgba(15,17,28,0.05);
  transition: background var(--rtp-t-fast),
              border-color var(--rtp-t-fast),
              color var(--rtp-t-fast),
              transform var(--rtp-t-fast);
}
.rtp-chip--clickable:hover,
.rtp-chip--clickable:focus-visible {
  background: var(--rtp-orange);
  border-color: var(--rtp-orange);
  color: #fff;
  transform: translateY(-1px);
  outline: none;
}
.rtp-chip--clickable:active { transform: translateY(0); }
.rtp-chip--clickable .rtp-chip__hash {
  color: var(--rtp-orange);
  font-weight: 800;
  margin-right: 2px;
}
.rtp-chip--clickable:hover .rtp-chip__hash,
.rtp-chip--clickable:focus-visible .rtp-chip__hash {
  color: #fff;
}

/* ── Search row (entry page) ─────────────────────────── */
.rtp-search-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.rtp-search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  min-height: 48px;
  border-radius: var(--rtp-radius-lg);
  border: none;
  background: var(--rtp-orange);
  color: #fff;
  font-family: var(--rtp-font-ko);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--rtp-t-fast), transform var(--rtp-t-fast);
  flex-shrink: 0;
}
.rtp-search-submit:hover { filter: brightness(0.92); }
.rtp-search-submit:active { transform: scale(0.96); }

/* ── Search screen ───────────────────────────────────── */
.rtp-search-header {
  padding: 50px 16px 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rtp-search-results { padding: 8px 20px; flex: 1; }
.rtp-search-section-label {
  font-size: 11px;
  color: var(--rtp-ink-3);
  font-weight: 700;
  letter-spacing: 0.4px;
  padding: 12px 0;
}

/* ── Signup account ──────────────────────────────────── */
.rtp-account-form { padding: 24px 24px 0; flex: 1; }
.rtp-account-heading {
  font-family: var(--rtp-font-ko);
  font-size: 24px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.6px;
  margin-bottom: 24px;
}
.rtp-account-footer { padding: 12px 20px 28px; }

/* ── Signup done ─────────────────────────────────────── */
.rtp-done__icon {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}
.rtp-done__icon-circle {
  width: 96px;
  height: 96px;
  border-radius: 999px;
  background: var(--rtp-orange-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}
.rtp-done__title {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.6px;
  text-align: center;
}
.rtp-done__title em { color: var(--rtp-orange); font-style: normal; }
.rtp-done__sub {
  font-size: 13px;
  color: var(--rtp-ink-2);
  margin-top: 12px;
  text-align: center;
  line-height: 1.55;
}
.rtp-done__ctas { margin-top: 32px; display: flex; flex-direction: column; gap: 10px; }
.rtp-done__cta {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--rtp-line);
  border-radius: var(--rtp-radius-xl);
  text-decoration: none;
  color: inherit;
}
.rtp-done__cta--accent { border-color: var(--rtp-blue); background: var(--rtp-blue-soft); }
.rtp-done__cta-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--rtp-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--rtp-font-num);
  font-size: 14px;
  font-weight: 800;
  color: var(--rtp-ink-2);
}
.rtp-done__cta--accent .rtp-done__cta-icon { background: var(--rtp-blue); color: #fff; }
.rtp-done__cta-title { font-size: 14px; font-weight: 700; color: var(--rtp-ink); }
.rtp-done__cta-sub { font-size: 11px; color: var(--rtp-ink-3); margin-top: 2px; }

/* ── Step screens (1/2/3) ────────────────────────────── */
.rtp-step-body { padding: 20px 24px 0; flex: 1; overflow: auto; }
.rtp-step-heading {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.8px;
  color: var(--rtp-ink);
}
.rtp-step-sub { font-size: 12px; color: var(--rtp-ink-3); margin-top: 8px; }
.rtp-step-footer { padding: 12px 20px 28px; display: flex; flex-direction: column; align-items: stretch; }
.rtp-step-footer .rtp-btn { width: 100%; }
.rtp-step-footer--with-home {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: stretch;
}
.rtp-step-footer--with-home .rtp-btn--home-escape {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 12px;
}

.rtp-field-underline {
  margin-top: 4px;
  font-family: var(--rtp-font-ko);
  font-size: 22px;
  font-weight: 700;
  color: var(--rtp-ink);
  padding-bottom: 8px;
  border-bottom: 1.5px solid var(--rtp-ink);
}

/* ── My Profile (ProfileF) ───────────────────────────── */
.rtp-my-page { background: var(--rtp-bg); flex: 1; overflow: auto; }
.rtp-my-hero-wrap { padding: 16px 16px 12px; }
.rtp-my-recent { padding: 12px 16px 24px; }
.rtp-my-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  padding: 0 4px;
}
.rtp-my-section-title { font-size: 12px; font-weight: 700; color: var(--rtp-ink); }
.rtp-my-section-more { font-size: 11px; color: var(--rtp-ink-3); font-weight: 600; }
.rtp-my-cards { display: flex; flex-direction: column; gap: 8px; }

/* ── My Stats (StatsC) ───────────────────────────────── */
.rtp-stats-page { background: var(--rtp-white); flex: 1; overflow: auto; }
.rtp-stats-compare { padding: 18px 16px; border: 1px solid var(--rtp-line); border-radius: var(--rtp-radius-xl); display: flex; flex-direction: column; gap: 18px; margin-bottom: 20px; }
.rtp-compare-row { display: flex; flex-direction: column; gap: 6px; }
.rtp-compare-label { font-size: 12px; color: var(--rtp-ink-2); font-weight: 600; display: flex; justify-content: space-between; }
.rtp-compare-val { font-family: var(--rtp-font-num); font-size: 13px; font-weight: 700; }
.rtp-compare-val--mine { color: var(--rtp-blue); }
.rtp-compare-track { height: 8px; background: var(--rtp-bg); border-radius: 4px; position: relative; overflow: hidden; margin-top: 4px; }
.rtp-compare-fill { height: 100%; background: var(--rtp-blue); border-radius: 4px; }
.rtp-chart-wrap { padding: 4px 0 8px; }
.rtp-chart-dates {
  display: flex;
  justify-content: space-between;
  padding: 0 4px;
  font-family: var(--rtp-font-num);
  font-size: 9px;
  color: var(--rtp-ink-3);
  margin-top: 4px;
}

/* ── Paywall screen ──────────────────────────────────── */
.rtp-paywall-bg { filter: blur(2px); pointer-events: none; height: 50vh; overflow: hidden; }
.rtp-paywall-counter {
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--rtp-orange-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--rtp-font-num);
  font-weight: 800;
  color: var(--rtp-orange);
  font-size: 22px;
  margin: 0 auto 14px;
}
.rtp-paywall-title {
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  letter-spacing: -0.5px;
  color: var(--rtp-ink);
}
.rtp-paywall-sub {
  font-size: 13px;
  color: var(--rtp-ink-2);
  text-align: center;
  margin-top: 8px;
  line-height: 1.5;
}
.rtp-paywall-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 22px; }

/* ── No-match notice ─────────────────────────────────── */
.rtp-no-match {
  padding: 16px;
  background: var(--rtp-blue-soft);
  border-radius: var(--rtp-radius-lg);
  font-size: 13px;
  color: var(--rtp-blue-ink);
  line-height: 1.5;
  margin-top: 12px;
}

/* ── Desktop: center the mobile shell ───────────────────*/
@media (min-width: 600px) {
  .rtp-shell { align-items: center; }
  .rtp-container { border-left: 1px solid var(--rtp-line-soft); border-right: 1px solid var(--rtp-line-soft); }
}

/* ── Stats: Summary Row (R1) ───────────────────────── */
.rtp-stats-summary {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  background: var(--rtp-white); border: 1px solid var(--rtp-line);
  border-radius: 14px; padding: 14px 12px; margin-top: 16px;
}
.rtp-stats-summary__cell {
  display: flex; flex-direction: column; gap: 4px; align-items: flex-start;
  padding: 0 8px; border-right: 1px solid var(--rtp-line-soft);
}
.rtp-stats-summary__cell:last-child { border-right: none; }
.rtp-stats-summary__k { font-size: 11px; color: var(--rtp-ink-3); font-weight: 600; }
.rtp-stats-summary__v {
  font-family: var(--rtp-font-num); font-size: 22px; font-weight: 800;
  color: var(--rtp-ink); letter-spacing: -0.5px;
}
.rtp-stats-summary__v small {
  font-size: 11px; font-weight: 600; color: var(--rtp-ink-3); margin-left: 2px;
}
.rtp-stats-summary__cell--accent .rtp-stats-summary__v { color: var(--rtp-orange); }

/* ── Stats: Pills (R2) ─────────────────────────────── */
.rtp-stats-pills { display: flex; gap: 8px; margin: 18px 0 14px; }
.rtp-pill {
  flex: 1; min-height: 44px; padding: 10px 14px; border-radius: 999px; border: none;
  cursor: pointer; background: var(--rtp-bg); color: var(--rtp-ink-2);
  font-weight: 700; font-size: 13px; line-height: 1.2;
}
.rtp-pill--active { background: var(--rtp-ink); color: var(--rtp-white); }
.rtp-panel { animation: rtp-fade-in 160ms ease; }
.rtp-panel[hidden] { display: none; }
@keyframes rtp-fade-in { from { opacity: 0; } to { opacity: 1; } }
.rtp-panel__title {
  font-size: 13px; font-weight: 700; color: var(--rtp-ink); margin: 8px 0 10px;
  display: flex; justify-content: space-between; align-items: baseline;
}
.rtp-panel__title-aside {
  font-family: var(--rtp-font-num); font-size: 12px; color: var(--rtp-ink-3); font-weight: 700;
}

/* ── Scoring panel (R3) — stacked bar + donuts ──── */
.rtp-stacked-bar {
  display: flex; height: 10px; border-radius: 999px; overflow: hidden;
  background: var(--rtp-bg);
}
.rtp-stacked-bar__seg { display: block; height: 100%; }
.rtp-stacked-bar__seg--fg2 { flex: var(--fg2, 0); background: var(--rtp-blue, #3182f6); }
.rtp-stacked-bar__seg--fg3 { flex: var(--fg3, 0); background: var(--rtp-orange); }
.rtp-stacked-bar__seg--ft  { flex: var(--ft, 0);  background: var(--rtp-ink); }
.rtp-stacked-bar__legend {
  list-style: none; padding: 10px 0 18px; margin: 0;
  display: flex; gap: 16px; font-size: 12px; color: var(--rtp-ink-2);
}
.rtp-stacked-bar__legend li { display: inline-flex; align-items: center; gap: 6px; }
.rtp-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.rtp-dot--fg2 { background: var(--rtp-blue, #3182f6); }
.rtp-dot--fg3 { background: var(--rtp-orange); }
.rtp-dot--ft  { background: var(--rtp-ink); }

.rtp-donuts {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding-bottom: 12px;
}
.rtp-donut {
  background: var(--rtp-bg); border-radius: 14px; padding: 14px 8px;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.rtp-donut__svg { width: 68px; height: 68px; }
.rtp-donut__track { fill: none; stroke: var(--rtp-white); stroke-width: 6; }
.rtp-donut__fill {
  fill: none; stroke-width: 6; stroke-linecap: round;
  transform: rotate(-90deg); transform-origin: 50% 50%;
}
.rtp-donut__fill--2p { stroke: var(--rtp-blue, #3182f6); }
.rtp-donut__fill--3p { stroke: var(--rtp-orange); }
.rtp-donut__fill--ft { stroke: var(--rtp-ink); }
.rtp-donut__pct { font-family: var(--rtp-font-num); font-size: 16px; font-weight: 800; }
.rtp-donut__pct sup { font-size: 9px; font-weight: 700; }
.rtp-donut__lbl { font-size: 13px; font-weight: 700; color: var(--rtp-ink); }
.rtp-donut__ratio {
  font-family: var(--rtp-font-num); font-size: 11px; color: var(--rtp-ink-3); font-weight: 600;
}

/* ── Reb·Ast panel (R4) ────────────────────────── */
.rtp-reb-card {
  background: var(--rtp-white); border: 1px solid var(--rtp-line); border-radius: 14px;
  padding: 16px; display: flex; gap: 16px;
}
.rtp-reb-card__big { display: flex; flex-direction: column; min-width: 92px; }
.rtp-reb-card__val { font-family: var(--rtp-font-num); font-size: 32px; font-weight: 800; }
.rtp-reb-card__sub {
  font-size: 11px; color: var(--rtp-ink-3); font-weight: 700; letter-spacing: 0.4px;
}
.rtp-reb-card__split {
  flex: 1; display: flex; flex-direction: column; gap: 8px; justify-content: center;
}
.rtp-reb-card__row {
  display: grid; grid-template-columns: 1fr auto; gap: 6px 12px;
  font-size: 12px; align-items: baseline;
}
.rtp-reb-card__row span:nth-child(2) { font-family: var(--rtp-font-num); font-weight: 800; }
.rtp-reb-card__bar {
  grid-column: 1 / span 2; height: 6px; background: var(--rtp-bg);
  border-radius: 999px; overflow: hidden;
}
.rtp-reb-card__bar > i { display: block; height: 100%; }
.rtp-reb-card__bar--oreb { background: var(--rtp-orange); }
.rtp-reb-card__bar--dreb { background: var(--rtp-blue, #3182f6); }
.rtp-ast-card {
  margin-top: 10px; background: var(--rtp-white); border: 1px solid var(--rtp-line);
  border-radius: 14px; padding: 16px;
  display: flex; justify-content: space-between; align-items: center;
}
.rtp-ast-card__k { font-size: 13px; font-weight: 700; color: var(--rtp-ink-2); }
.rtp-ast-card__sub {
  font-size: 11px; color: var(--rtp-ink-3); font-weight: 700; letter-spacing: 0.4px;
}
.rtp-ast-card__v { font-family: var(--rtp-font-num); font-size: 36px; font-weight: 800; }

/* ── Defense panel (R5) ────────────────────────── */
.rtp-def-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rtp-def-tile {
  background: var(--rtp-bg); border-radius: 14px; padding: 14px;
  display: flex; flex-direction: column; gap: 4px; align-items: flex-start; min-height: 78px;
}
.rtp-def-tile__k { font-size: 12px; color: var(--rtp-ink-2); font-weight: 700; }
.rtp-def-tile__v {
  font-family: var(--rtp-font-num); font-size: 26px; font-weight: 800; line-height: 1;
}
.rtp-def-tile__sub {
  font-size: 10px; color: var(--rtp-ink-3); font-weight: 700;
  letter-spacing: 0.5px; margin-left: auto;
}
.rtp-def-tile--accent {
  background: var(--rtp-orange-soft, #ffeee6); border: 1px solid var(--rtp-orange);
}
.rtp-def-tile--accent .rtp-def-tile__k,
.rtp-def-tile--accent .rtp-def-tile__v { color: var(--rtp-orange); }
.rtp-gd-info {
  font-size: 12px; color: var(--rtp-ink-3); font-weight: 600;
  align-items: flex-start; justify-content: center; line-height: 1.4;
}

/* ── F1: Tabs indicator — fixed width, centered under active tab ── */
.rtp-tabs__indicator {
  width: 40px !important;
}

/* ── F2: Lock overlay — own.png tone ──────────────────── */
.rtp-lock-overlay--own {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 24px 16px;
}
.rtp-lock-overlay__icon-circle {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255,143,0,.15);
  color: var(--rtp-orange, #ff8f00);
  display: flex;
  align-items: center;
  justify-content: center;
}
.rtp-lock-overlay__title {
  font-size: 18px;
  font-weight: 800;
  line-height: 1.3;
  color: #fff;
  text-align: center;
  margin-top: 6px;
}
.rtp-lock-overlay__sub {
  font-size: 12px;
  color: rgba(255,255,255,.6);
  text-align: center;
  margin-top: -2px;
}

/* Lock overlay — dark card (20260522: profile/stats 잠금 카드) */
.rtp-lock-overlay--card-dark {
  background: linear-gradient(180deg, #1c1f25 0%, #15171c 100%);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--rtp-radius-xl);
  box-shadow: 0 8px 24px rgba(0,0,0,0.35);
  padding: 28px 20px 24px;
  margin: 16px;
  gap: 10px;
}
.rtp-lock-overlay--card-dark .rtp-lock-overlay__title {
  color: #fff;
  font-size: 19px;
  letter-spacing: -0.4px;
}
.rtp-lock-overlay--card-dark .rtp-lock-overlay__sub {
  color: rgba(255,255,255,0.55);
  font-size: 13px;
  margin-top: 2px;
  letter-spacing: -0.2px;
}
.rtp-lock-overlay--card-dark .rtp-btn {
  margin-top: 14px;
  min-width: 160px;
}
/* When inside the rtp-hero already (profile tab), don't double-card it */
.rtp-hero .rtp-lock-overlay--card-dark {
  background: rgba(15,17,28,0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  margin: 12px -2px 0;
  border: 1px solid rgba(255,255,255,0.08);
  padding: 20px 16px 18px;
}

/* Stats lock — owner-style analysis preview (blurred) + centered overlay */
.rtp-stats-lock {
  position: relative;
  margin: 0 0 16px;
  min-height: 480px;
  overflow: hidden;
}
.rtp-stats-lock__bg {
  position: relative;
  padding: 0 20px 24px;
  pointer-events: none;
  user-select: none;
}
/* override .rtp-blurred opacity context so the analysis preview reads as background */
.rtp-stats-lock__bg.rtp-blurred {
  filter: blur(7px);
  opacity: 0.75;
}
.rtp-stats-lock__overlay {
  position: absolute;
  inset: 0;
  margin: 0;
  background: rgba(15,17,28,0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border: none;
  border-radius: 0;
  box-shadow: none;
  z-index: 2;
  padding: 80px 24px 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

/* Centered CTA wrapper */
.rtp-cta-wrap {
  padding: 16px;
  display: flex;
  justify-content: center;
}
.rtp-cta--hero-block {
  width: 100%;
  max-width: 320px;
}

/* ── F8: Stats no-pct fallback card (light-theme) ───── */
.rtp-stats-no-pct {
  background: var(--rtp-bg);
  border: 1px solid var(--rtp-line-soft, #e5e8eb);
  border-radius: 14px;
  padding: 28px 18px;
  text-align: center;
  margin-top: 12px;
}
.rtp-stats-no-pct__icon {
  font-size: 28px;
  color: var(--rtp-orange);
  margin-bottom: 8px;
  line-height: 1;
}
.rtp-stats-no-pct__title {
  font-size: 15px;
  font-weight: 800;
  color: var(--rtp-ink);
  line-height: 1.45;
  letter-spacing: -0.2px;
}
.rtp-stats-no-pct__sub {
  font-size: 12px;
  color: var(--rtp-ink-3);
  margin-top: 6px;
  line-height: 1.5;
}

/* ── F5: Account step header progress bar ─────────────── */
.rtp-step-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px 8px;
}
.rtp-progress {
  flex: 1;
}
.rtp-progress__track {
  height: 4px;
  background: var(--rtp-line, rgba(255,255,255,.1));
  border-radius: 999px;
  overflow: hidden;
}
.rtp-progress__fill {
  height: 100%;
  background: var(--rtp-orange);
  border-radius: 999px;
  transition: width 300ms ease;
}
.rtp-progress__label {
  font-size: 12px;
  font-weight: 700;
  color: var(--rtp-ink-3);
  white-space: nowrap;
}

/* ── Season toggle chips (profile hero) ──────────────── */
.rtp-season-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  border-radius: 999px;
  font-family: var(--rtp-font-num);
  font-size: 12px;
  font-weight: 700;
  color: rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.06);
  text-decoration: none;
  min-height: 28px;
  transition: background var(--rtp-t-fast), color var(--rtp-t-fast);
}
.rtp-season-chip:hover { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.8); }
.rtp-season-chip--active {
  background: var(--rtp-orange);
  color: #fff;
}

/* ── R24·R25: Partial blur cells (incomplete profile) ── */
.rtp-hero__stat--blurred {
  filter: blur(6px);
  opacity: .5;
  pointer-events: none;
  user-select: none;
}
.rtp-stats-summary__cell--blurred {
  filter: blur(6px);
  opacity: .5;
  pointer-events: none;
  user-select: none;
}
.rtp-hero__stat-value--blurred {
  filter: blur(6px);
  opacity: .5;
  pointer-events: none;
  user-select: none;
}

/* ── R29: Year dropdown (native <details>) ── */
.rtp-year-dropdown {
  display: inline-block;
  position: relative;
}
.rtp-year-dropdown > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  background: var(--rtp-bg);
  border: 1px solid var(--rtp-line-soft, #e5e8eb);
  border-radius: 999px;
  font-family: var(--rtp-font-num);
  font-size: 14px;
  color: var(--rtp-ink);
  font-weight: 700;
  min-height: 32px;
  letter-spacing: -0.2px;
}
.rtp-year-dropdown > summary::-webkit-details-marker { display: none; }
.rtp-year-dropdown > summary::after {
  content: '▾';
  font-size: 12px;
  color: var(--rtp-ink-2);
  transition: transform .15s;
  margin-left: 2px;
}
.rtp-year-dropdown[open] > summary::after {
  transform: rotate(180deg);
}
.rtp-year-dropdown__panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: var(--rtp-white, #fff);
  border: 1px solid var(--rtp-line-soft, #e5e8eb);
  border-radius: 12px;
  padding: 6px 0;
  list-style: none;
  margin: 0;
  min-width: 100px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  z-index: 10;
}
.rtp-year-dropdown__panel li { padding: 0; }
.rtp-year-dropdown__panel a {
  display: block;
  padding: 10px 16px;
  color: var(--rtp-ink);
  text-decoration: none;
  font-family: var(--rtp-font-num);
  font-size: 14px;
  font-weight: 600;
  min-height: 44px;
  box-sizing: border-box;
  line-height: 24px;
}
.rtp-year-dropdown__panel a:hover,
.rtp-year-dropdown__panel a.rtp-year-dropdown__current {
  background: var(--rtp-bg);
  color: var(--rtp-orange);
}

/* ── Hero dark background — year dropdown override ── */
.rtp-hero .rtp-year-dropdown > summary {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.12);
  color: #fff;
}
.rtp-hero .rtp-year-dropdown > summary::after {
  color: rgba(255,255,255,0.5);
}

/* ── R-refeature: Stats scoring panel lock card (pretty centered) ── */
.rtp-stats-lock-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 36px 20px 28px;
  margin: 8px 0;
  background: linear-gradient(180deg, #1c1f25 0%, #15171c 100%);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--rtp-radius-xl);
  box-shadow: 0 8px 24px rgba(0,0,0,0.35);
  text-align: center;
  min-height: 280px;
}
.rtp-stats-lock-card__icon-circle {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255,143,0,.18);
  color: var(--rtp-orange, #ff8f00);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}
.rtp-stats-lock-card__title {
  font-size: 19px;
  font-weight: 800;
  line-height: 1.35;
  color: #fff;
  letter-spacing: -0.4px;
  margin-top: 8px;
}
.rtp-stats-lock-card__sub {
  font-size: 13px;
  color: rgba(255,255,255,.6);
  letter-spacing: -0.2px;
  margin-top: 2px;
}
.rtp-stats-lock-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  min-width: 160px;
  min-height: 44px;
  padding: 12px 22px;
  background: linear-gradient(135deg, var(--rtp-cta-hero-start) 0%, var(--rtp-cta-hero-end) 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(255,143,0,.25);
  white-space: nowrap;
}
.rtp-stats-lock-card__cta:hover { transform: translateY(-1px); }
.rtp-stats-lock-card__cta:active { transform: scale(.96); }

/* When inside a rtp-panel (scoring), tighten outer margin */
.rtp-panel > .rtp-stats-lock-card { margin: 0; }

/* ── R-refeature: signup_account 로그인 안내 ─────────── */
.rtp-account-footer__login-hint {
  margin: 14px 0 0;
  text-align: center;
  font-size: 13px;
  color: var(--rtp-ink-3);
  font-weight: 500;
}
.rtp-account-footer__login-link {
  margin-left: 4px;
  color: var(--rtp-orange);
  font-weight: 700;
  text-decoration: none;
  padding: 4px 6px;
  min-height: 32px;
  display: inline-block;
}
.rtp-account-footer__login-link:hover {
  text-decoration: underline;
}

/* ── R-refeature: single-year plain text (no dropdown needed) ─ */
.rtp-year-plain {
  display: inline-block;
  padding: 6px 14px;
  background: var(--rtp-bg);
  border: 1px solid var(--rtp-line-soft, #e5e8eb);
  border-radius: 999px;
  font-family: var(--rtp-font-num);
  font-size: 14px;
  font-weight: 700;
  color: var(--rtp-ink);
  min-height: 32px;
  letter-spacing: -0.2px;
}

/* ── signup_match_probabilistic: % badge + tier chip ──── */

/* Probabilistic card layout wrapper */
.rtp-match-card--prob { align-items: flex-start; }
.rtp-match-card__body { flex: 1; min-width: 0; }
.rtp-match-card__name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* % probability badge — top-right label on card */
.rtp-match-card__pct {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 6px;
  border-radius: 6px;
  background: var(--rtp-blue-ink);
  color: var(--rtp-white);
  font-family: var(--rtp-font-num);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}

/* tier label chip — inline after meta text */
.rtp-match-card__tier {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 6px;
  border-radius: var(--rtp-radius-sm);
  background: var(--rtp-line);
  color: var(--rtp-ink-2);
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
  margin-left: 4px;
  vertical-align: middle;
}

/* ── Confirm banner (R8 — my_profile) ─────────────────── */
.rtp-confirm-banner {
  margin: 0 16px 24px;
  padding: 16px;
  background: var(--rtp-white);
  border: 1px solid var(--rtp-line);
  border-radius: var(--rtp-radius-xl);
}
.rtp-confirm-banner__desc {
  font-size: 13px;
  color: var(--rtp-ink-2);
  line-height: 1.5;
  margin: 0 0 14px;
}
.rtp-confirm-banner__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.rtp-confirm-banner__form { margin: 0; padding: 0; }
.rtp-confirm-banner__btn {
  min-height: 48px;
  height: 48px;
  white-space: nowrap;
}

/* ── 시즌 순위 (Phase E) ───────────────────────────── */
.rtp-rank { margin-top: 18px; }
.rtp-rank__title {
  font-size: 13px; font-weight: 700; color: var(--rtp-ink); margin: 0 0 10px;
}
.rtp-rank__pool { margin-bottom: 16px; }
.rtp-rank__pool-label {
  font-size: 12px; font-weight: 700; color: var(--rtp-ink-3); margin: 0 0 8px;
}
.rtp-rank__title { display: flex; align-items: baseline; justify-content: space-between; }
.rtp-rank__hint { font-size: 11px; font-weight: 600; color: var(--rtp-ink-3); }
.rtp-rank__chev { color: var(--rtp-ink-3); font-size: 20px; font-weight: 400; line-height: 1; }

/* 공용 기록/리그 컬럼 (label 위 + 값 아래) — 왼쪽 정렬 */
.rtp-rank-col { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.rtp-rank-col--right { align-items: flex-end; text-align: right; }
.rtp-rank-col__k { font-size: 11px; font-weight: 600; color: var(--rtp-ink-3); }
.rtp-rank-col__v {
  font-family: var(--rtp-font-num); font-size: 17px; font-weight: 800;
  color: var(--rtp-ink); letter-spacing: -0.2px; line-height: 1; white-space: nowrap;
}
/* 영문 태그 — 숫자 뒤에 작게 회색 */
.rtp-rank-col__tag {
  font-family: var(--rtp-font-num); font-size: 11px; font-weight: 700;
  color: var(--rtp-ink-3); letter-spacing: 0.06em; margin-left: 3px;
}
.rtp-rank-col__pct {
  font-family: var(--rtp-font-num); font-size: 14px; font-weight: 700;
  color: var(--rtp-orange); line-height: 1; white-space: nowrap;
}

/* ── 히어로(가장 잘한 부문, 다크) ── */
.rtp-rank-hero {
  display: flex; flex-direction: column; gap: 12px;
  background: var(--rtp-hero-dark, #15181f); color: var(--rtp-white);
  border-radius: 14px; padding: 16px; margin-bottom: 8px;
  text-decoration: none;
  border-top: 2px solid var(--rtp-orange, #ff6b35);
  box-shadow: 0 8px 22px rgba(255,107,53,.20);
}
.rtp-rank-hero__top { display: flex; align-items: center; gap: 8px; }
.rtp-rank-hero__flag {
  display: inline-flex; align-items: center; flex-shrink: 0;
  padding: 3px 9px; border-radius: 999px;
  background: var(--rtp-orange, #ff6b35); color: #fff;
  font-size: 10.5px; font-weight: 800; letter-spacing: .02em;
}
.rtp-rank-hero__title { flex: 1; font-size: 13px; font-weight: 700; opacity: .92; }
.rtp-rank-hero__top .rtp-rank__chev { color: rgba(255,255,255,.55); }
.rtp-rank-hero__body { display: flex; align-items: flex-end; justify-content: space-between; }
.rtp-rank-hero .rtp-rank-col__k { color: rgba(255,255,255,.55); }
.rtp-rank-hero .rtp-rank-col__v { color: var(--rtp-white); font-size: 24px; }
.rtp-rank-hero .rtp-rank-col__tag { color: rgba(255,255,255,.5); }

/* ── 부문 행(row) — 라벨 | 기록 | 칸막이 리그 | › ── */
.rtp-rank-row {
  display: flex; align-items: center; gap: 14px;
  background: var(--rtp-white); border: 1px solid var(--rtp-line);
  border-radius: 12px; padding: 13px 16px; margin-bottom: 8px;
  text-decoration: none;
}
.rtp-rank-row__label { flex: 0 0 46px; font-size: 14px; font-weight: 700; color: var(--rtp-ink); white-space: nowrap; }
.rtp-rank-row > .rtp-rank-col { flex: 1 1 0; }
.rtp-rank-row .rtp-rank-col--div { border-left: 1px solid var(--rtp-line); padding-left: 16px; }
.rtp-rank-row .rtp-rank__chev { flex: 0 0 auto; }
.rtp-rank-row--empty { background: var(--rtp-bg); }
.rtp-rank-row__empty-txt { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--rtp-ink-4); }

/* 비공개 안내 (시즌 순위) */
.rtp-rank__note {
  margin: 4px 0 0; font-size: 12px; font-weight: 600;
  color: var(--rtp-ink-3); text-align: center;
}

/* provisional 본인뷰 — 집계 대기 */
.rtp-rank--pending .rtp-rank__pending {
  background: var(--rtp-bg); border: 1px dashed var(--rtp-line);
  border-radius: 14px; padding: 18px; text-align: center;
}
.rtp-rank__pending-badge {
  display: inline-block; background: var(--rtp-orange-soft); color: var(--rtp-orange);
  font-weight: 800; font-size: 13px; padding: 6px 14px; border-radius: 999px;
}
.rtp-rank__pending-sub {
  font-size: 12px; color: var(--rtp-ink-3); margin: 10px 0 0;
}
