/* Ranking page V2 — premium podium + compact table. Scoped to .pd-rank-v2; same markup data as before.
   Remove this file's loadFile() line in prediction.view.php (dispPredictionRanking) to restore the previous look. */
.pd-rank-board.pd-rank-v2 { --rk-gold-a:#ffe38a; --rk-gold-b:#d9a21f; --rk-silver-a:#e8edf8; --rk-silver-b:#9aa6bf; --rk-bronze-a:#f0b184; --rk-bronze-b:#a8653a; --rk-line:rgba(var(--rt-brand-rgb),.28); }
.pd-rank-v2 .pd-rank-defs { position:absolute; width:0; height:0; overflow:hidden; }

/* — header — */
.pd-rank-v2 .pd-rank-service-head { border:1px solid var(--rk-line); border-radius:14px; background:linear-gradient(115deg,rgba(var(--rt-brand-rgb),.2),rgba(10,16,40,.92) 55%); }
.pd-rank-v2 .pd-rank-summary > div { border-radius:10px; }
.pd-rank-v2 .pd-rank-summary dd { font-size:15px; font-weight:800; }
.pd-rank-v2 .pd-rank-summary dd.pd-profit-up { color:#2ee6a6; }

/* — filters — */
.pd-rank-v2 .pd-rank-filter-group { display:flex; align-items:center; gap:10px; min-width:0; }
.pd-rank-v2 .pd-rank-filter-label { flex:none; color:var(--rt-text-2); font-size:12px; font-weight:700; white-space:nowrap; }
.pd-rank-v2 .pd-rank-tabs li.is-active a, .pd-rank-v2 .pd-rank-tabs li.is-active { }

/* — TOP3 — */
.pd-rank-v2 .pd-rank-top3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; gap:22px; margin:64px 0 18px; padding:0; }
.pd-rank-v2 .pd-rank-podium { --pod-a:var(--rk-silver-a); --pod-b:var(--rk-silver-b); --pod-rgb:170,185,225;
  position:relative; display:flex; flex-direction:column; align-items:center; min-width:0; overflow:visible; box-sizing:border-box;
  padding:92px 16px 16px; border:1px solid rgba(var(--pod-rgb),.5); border-radius:16px; color:var(--rt-text); text-decoration:none;
  background:
   radial-gradient(130% 62% at 50% 0%,rgba(var(--pod-rgb),.22),transparent 62%),
   radial-gradient(circle at 14% 22%,rgba(255,255,255,.55) 0 1px,transparent 1.6px),
   radial-gradient(circle at 86% 30%,rgba(255,255,255,.4) 0 1px,transparent 1.6px),
   radial-gradient(circle at 24% 62%,rgba(var(--pod-rgb),.5) 0 1.2px,transparent 1.8px),
   linear-gradient(180deg,#151a3a,#0a1028);
  box-shadow:0 0 0 1px rgba(var(--pod-rgb),.12),0 16px 36px rgba(var(--pod-rgb),.12); transition:transform .16s ease,box-shadow .16s ease; }
.pd-rank-v2 .pd-rank-podium::before, .pd-rank-v2 .pd-rank-podium::after { content:none; display:none; }
.pd-rank-v2 .pd-rank-podium:hover { transform:translateY(-2px); background:
   radial-gradient(130% 62% at 50% 0%,rgba(var(--pod-rgb),.28),transparent 62%),linear-gradient(180deg,#171d40,#0b1130); }
.pd-rank-v2 .pd-rank-podium:focus-visible { outline:2px solid var(--rt-brand); outline-offset:3px; }
.pd-rank-v2 .pd-rank-podium.is-top1 { --pod-a:var(--rk-gold-a); --pod-b:var(--rk-gold-b); --pod-rgb:240,190,60; order:2; padding-top:118px; padding-bottom:20px; border-width:2px; box-shadow:0 0 0 1px rgba(var(--pod-rgb),.2),0 22px 52px rgba(var(--pod-rgb),.2); }
.pd-rank-v2 .pd-rank-podium.is-top2 { order:1; --pod-a:var(--rk-silver-a); --pod-b:var(--rk-silver-b); --pod-rgb:160,176,226; }
.pd-rank-v2 .pd-rank-podium.is-top3 { order:3; --pod-a:var(--rk-bronze-a); --pod-b:var(--rk-bronze-b); --pod-rgb:226,140,88; }
.pd-rank-v2 .pd-podium-art { position:absolute; left:50%; top:-52px; width:132px; height:132px; transform:translateX(-50%); pointer-events:none; }
.pd-rank-v2 .is-top1 .pd-podium-art { top:-70px; width:170px; height:170px; }
.pd-rank-v2 .pd-podium-laurel { position:absolute; inset:0; width:100%; height:100%; fill:var(--pod-b); opacity:.92; filter:drop-shadow(0 0 6px rgba(var(--pod-rgb),.35)); }
.pd-rank-v2 .pd-podium-laurel use { fill:inherit; }
.pd-rank-v2 .pd-podium-avatar { position:absolute; left:50%; top:52%; width:70px; height:70px; box-sizing:border-box; transform:translate(-50%,-50%); display:grid; place-items:center; overflow:hidden; border:3px solid var(--pod-a); border-radius:50%; background:#1b2147; box-shadow:0 0 0 3px rgba(var(--pod-rgb),.22),0 6px 18px rgba(0,0,0,.45); }
.pd-rank-v2 .is-top1 .pd-podium-avatar { width:92px; height:92px; border-width:4px; }
.pd-rank-v2 .pd-podium-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
.pd-rank-v2 .pd-podium-avatar svg { width:78%; height:78%; fill:rgba(var(--pod-rgb),.55); }
.pd-rank-v2 .pd-podium-medal { position:absolute; left:50%; top:-2px; transform:translateX(-50%); display:grid; place-items:center; width:38px; height:38px; border:2px solid rgba(255,255,255,.55); border-radius:50%; background:linear-gradient(160deg,var(--pod-a),var(--pod-b)); color:#2a1d05; font-size:19px; font-weight:900; box-shadow:0 4px 12px rgba(0,0,0,.45); }
.pd-rank-v2 .is-top1 .pd-podium-medal { top:14px; width:46px; height:46px; font-size:23px; }
.pd-rank-v2 .pd-rank-podium-crown { position:absolute; left:50%; top:-10px; width:46px; height:36px; transform:translateX(-50%); fill:var(--pod-a); filter:drop-shadow(0 2px 6px rgba(var(--pod-rgb),.6)); }
.pd-rank-v2 .pd-podium-name { max-width:100%; overflow:hidden; color:#fff; font-size:19px; font-weight:800; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.pd-rank-v2 .is-top1 .pd-podium-name { font-size:23px; }
.pd-rank-v2 .pd-podium-profit { margin:4px 0 12px; color:var(--rt-text-2); font-size:28px; font-weight:900; letter-spacing:-.3px; line-height:1.15; font-variant-numeric:tabular-nums; }
.pd-rank-v2 .is-top1 .pd-podium-profit { font-size:36px; }
.pd-rank-v2 .pd-podium-profit.pd-profit-up { color:#2ee6a6; text-shadow:0 0 18px rgba(46,230,166,.28); }
.pd-rank-v2 .pd-podium-profit.pd-profit-down { color:var(--rt-negative); }
.pd-rank-v2 .pd-podium-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:100%; box-sizing:border-box; padding:10px 4px; border:1px solid rgba(var(--pod-rgb),.22); border-radius:10px; background:rgba(4,9,26,.62); }
.pd-rank-v2 .pd-podium-stats > span { min-width:0; padding:0 4px; text-align:center; }
.pd-rank-v2 .pd-podium-stats > span + span { border-left:1px solid rgba(var(--pod-rgb),.18); }
.pd-rank-v2 .pd-podium-stats small, .pd-rank-v2 .pd-podium-stats b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pd-rank-v2 .pd-podium-stats small { color:var(--rt-text-2); font-size:11px; font-weight:600; }
.pd-rank-v2 .pd-podium-stats b { margin-top:5px; color:#fff; font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; }
.pd-rank-v2 .pd-rank-podium-cta { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }

/* — table — */
.pd-rank-v2 .pd-rt { border:1px solid var(--rk-line); border-radius:14px; background:linear-gradient(180deg,rgba(12,18,44,.96),rgba(8,13,34,.98)); }
.pd-rank-v2 .pd-rt-head, .pd-rank-v2 .pd-rt-row { grid-template-columns:72px minmax(190px,1.5fr) repeat(3,minmax(56px,.6fr)) minmax(190px,1.7fr) minmax(76px,.8fr) minmax(110px,1fr); column-gap:10px; }
.pd-rank-v2 .pd-rt-head { padding-block:13px; background:linear-gradient(180deg,rgba(var(--rt-brand-rgb),.14),rgba(var(--rt-brand-rgb),.05)); }
.pd-rank-v2 .pd-rt-head > span:nth-child(2) { text-align:left; padding-left:50px; }
.pd-rank-v2 .pd-rt-row { min-height:54px; }
.pd-rank-v2 .pd-rt-nick { justify-content:flex-start; gap:12px; }
.pd-rank-v2 .pd-rt-avatar { flex:none; display:grid; place-items:center; width:36px; height:36px; overflow:hidden; border:2px solid rgba(var(--rt-brand-rgb),.5); border-radius:50%; background:#1b2147; }
.pd-rank-v2 .pd-rt-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
.pd-rank-v2 .pd-rt-avatar svg { width:78%; height:78%; fill:rgba(var(--rt-brand-rgb),.65); }
.pd-rank-v2 .pd-rt-name { font-size:15px; font-weight:700; }
.pd-rank-v2 .pd-rt-rank .pd-rank-badge { min-width:30px; height:30px; border:1px solid rgba(var(--rt-brand-rgb),.4); background:rgba(var(--rt-brand-rgb),.12); font-size:13px; font-weight:800; }
.pd-rank-v2 .pd-rt-row.is-rank1 .pd-rank-badge, .pd-rank-v2 .pd-rt-row.is-rank2 .pd-rank-badge, .pd-rank-v2 .pd-rt-row.is-rank3 .pd-rank-badge { border:0; width:34px; height:34px; color:#2a1d05; box-shadow:inset 0 0 0 2px rgba(255,255,255,.45),0 2px 8px rgba(0,0,0,.4); font-size:15px; }
.pd-rank-v2 .pd-rt-row.is-rank1 .pd-rank-badge { background:linear-gradient(160deg,var(--rk-gold-a),var(--rk-gold-b)); }
.pd-rank-v2 .pd-rt-row.is-rank2 .pd-rank-badge { background:linear-gradient(160deg,var(--rk-silver-a),var(--rk-silver-b)); }
.pd-rank-v2 .pd-rt-row.is-rank3 .pd-rank-badge { background:linear-gradient(160deg,var(--rk-bronze-a),var(--rk-bronze-b)); }
.pd-rank-v2 .pd-rt-row.is-rank1 { background:linear-gradient(90deg,rgba(240,190,60,.16),rgba(240,190,60,.03) 60%); box-shadow:inset 0 0 0 1px rgba(240,190,60,.45); }
.pd-rank-v2 .pd-rt-row.is-rank2 { background:linear-gradient(90deg,rgba(160,176,226,.13),rgba(160,176,226,.02) 60%); }
.pd-rank-v2 .pd-rt-row.is-rank3 { background:linear-gradient(90deg,rgba(226,140,88,.15),rgba(226,140,88,.03) 60%); box-shadow:inset 0 0 0 1px rgba(226,140,88,.4); }
.pd-rank-v2 .pd-rt-row.is-me { box-shadow:inset 3px 0 0 var(--rt-brand); }
.pd-rank-v2 .pd-rt-rate { display:flex; align-items:center; justify-content:center; gap:10px; overflow:visible; }
.pd-rank-v2 .pd-rt-bar { flex:1 1 90px; max-width:150px; height:8px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.1); }
.pd-rank-v2 .pd-rt-bar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#7b4dff,#a77bff); }
.pd-rank-v2 .pd-rt-rate b { flex:none; min-width:58px; font-weight:600; text-align:right; }
.pd-rank-v2 .pd-rt-c:last-child { font-size:16px; font-weight:800; }
.pd-rank-v2 .pd-rt-c.pd-profit-up { color:#2ee6a6; }

@media (max-width:1100px) {
 .pd-rank-v2 .pd-rank-top3 { gap:14px; }
 .pd-rank-v2 .pd-podium-profit { font-size:23px; } .pd-rank-v2 .is-top1 .pd-podium-profit { font-size:30px; }
 .pd-rank-v2 .pd-podium-stats b { font-size:13.5px; }
 .pd-rank-v2 .pd-rt-head, .pd-rank-v2 .pd-rt-row { grid-template-columns:56px minmax(150px,1.4fr) repeat(3,minmax(40px,.5fr)) minmax(150px,1.5fr) minmax(64px,.7fr) minmax(90px,1fr); column-gap:6px; }
 .pd-rank-v2 .pd-rt-bar { flex-basis:60px; }
}
@media (max-width:900px) {
 .pd-rank-v2 .pd-rt-head, .pd-rank-v2 .pd-rt-row { grid-template-columns:44px minmax(120px,1.4fr) repeat(3,minmax(34px,.4fr)) minmax(110px,1.3fr) minmax(52px,.7fr) minmax(76px,1fr); padding-left:6px; padding-right:10px; }
 .pd-rank-v2 .pd-rt-bar { display:none; }
 .pd-rank-v2 .pd-rt-head > span:nth-child(2) { padding-left:46px; }
}
@media (max-width:640px) {
 .pd-rank-v2 .pd-rank-filter-group { flex-wrap:wrap; gap:6px; }
 .pd-rank-v2 .pd-rank-sort-group .pd-rank-tabs { flex-wrap:nowrap; max-width:100%; overflow-x:auto; scrollbar-width:none; }
 .pd-rank-v2 .pd-rank-sort-group .pd-rank-tabs::-webkit-scrollbar { display:none; }
 .pd-rank-v2 .pd-rank-sort-group .pd-rank-tabs li { flex:none; }
 .pd-rank-v2 .pd-rank-top3 { grid-template-columns:1fr 1fr; gap:66px 10px; margin-top:58px; }
 .pd-rank-v2 .pd-rank-podium { padding:84px 8px 12px; border-radius:14px; }
 .pd-rank-v2 .pd-rank-podium.is-top1 { grid-column:1 / -1; order:1; padding-top:112px; }
 .pd-rank-v2 .pd-rank-podium.is-top2 { order:2; } .pd-rank-v2 .pd-rank-podium.is-top3 { order:3; }
 .pd-rank-v2 .pd-podium-art { top:-46px; width:112px; height:112px; }
 .pd-rank-v2 .is-top1 .pd-podium-art { top:-64px; width:160px; height:160px; }
 .pd-rank-v2 .pd-podium-avatar { width:58px; height:58px; }
 .pd-rank-v2 .is-top1 .pd-podium-avatar { width:86px; height:86px; }
 .pd-rank-v2 .pd-podium-medal { width:32px; height:32px; font-size:16px; top:-2px; }
 .pd-rank-v2 .is-top1 .pd-podium-medal { top:12px; width:42px; height:42px; font-size:21px; }
 .pd-rank-v2 .pd-podium-name { font-size:15px; } .pd-rank-v2 .is-top1 .pd-podium-name { font-size:20px; }
 .pd-rank-v2 .pd-podium-profit { margin-bottom:9px; font-size:20px; } .pd-rank-v2 .is-top1 .pd-podium-profit { font-size:30px; }
 .pd-rank-v2 .pd-rank-podium:not(.is-top1) .pd-podium-stats { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:8px; }
 .pd-rank-v2 .pd-rank-podium:not(.is-top1) .pd-podium-stats > span:nth-child(odd) { border-left:0; }
 .pd-rank-v2 .pd-rank-podium:not(.is-top1) .pd-podium-stats > span:nth-child(n+3) { padding-top:8px; border-top:1px solid rgba(var(--pod-rgb),.18); }
 .pd-rank-v2 .pd-podium-stats b { font-size:13px; } .pd-rank-v2 .pd-podium-stats small { font-size:10px; }
 /* table rows: avatar + name + profit on top, labelled stats below */
 .pd-rank-v2 .pd-rt-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 8px; padding:11px 12px; }
 .pd-rank-v2 .pd-rt-rank { flex:0 0 34px; }
 .pd-rank-v2 .pd-rt-nick { order:1; flex:1 1 0; min-width:0; gap:8px; }
 .pd-rank-v2 .pd-rt-avatar { width:30px; height:30px; }
 .pd-rank-v2 .pd-rt-row > .pd-rt-c:last-child { order:2; flex:0 0 auto; font-size:15px; }
 .pd-rank-v2 .pd-rt-row > .pd-rt-c { order:4; flex:1 1 14%; }
 .pd-rank-v2 .pd-rt-row > .pd-rt-rate { flex:2 1 30%; flex-direction:column; align-items:stretch; gap:3px; }
 .pd-rank-v2 .pd-rt-rate b { min-width:0; text-align:center; }
 .pd-rank-v2 .pd-rt-bar { display:block; flex:none; max-width:none; height:6px; order:2; }
 .pd-rank-v2 .pd-rt-rate::before { order:0; text-align:center; }
}

/* 적중률: 숫자는 사이트 기본 글자색, 막대는 기본 퍼플. */
html:root .pd-rank-v2 .pd-rt-rate b { color:var(--rt-text, #f7f7fa); }
html:root .pd-rank-v2 .pd-rt-bar i { background:linear-gradient(90deg,#7b4dff,#a77bff); }
html:root .pd-rank-v2 .pd-rank-metric.is-rate dd, html:root .pd-rank-v2 .pd-podium-stats > span:nth-child(4) b { color:var(--rt-text, #f7f7fa); }
