.ranking-card,.ranking-page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:clamp(18px,4vw,32px);box-shadow:var(--shadow-soft);margin:20px 0 32px}.ranking-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ranking-heading h1,.ranking-heading h2{margin:0;font-family:var(--font-heading)}.ranking-deadline,.ranking-period,.ranking-rules{color:var(--color-muted);font-size:.85rem}.ranking-summary{display:flex;gap:12px 24px;flex-wrap:wrap;align-items:center;margin:18px 0}.ranking-own-position{font-size:1.3rem;color:#4448c8}.ranking-gap{font-weight:650}.ranking-section{margin:28px 0}.ranking-section h2{font-size:1.15rem}.ranking-list{list-style:none;padding:0;display:grid;gap:10px;margin:14px 0}.ranking-row{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 16px;background:#fff;border:1px solid var(--color-border);border-radius:16px;position:relative;box-sizing:border-box}.ranking-position{min-width:28px;font-family:var(--font-heading);font-weight:700;color:#5b5ff8}.ranking-name{flex:1;min-width:0;overflow-wrap:anywhere;font-weight:650}.ranking-coins{font-size:.88rem;white-space:nowrap}.ranking-you{font-size:.7rem;font-weight:800;padding:4px 8px;border-radius:10px;background:#5b5ff8;color:white}.ranking-row.is-self{background:#eef0ff;border:2px solid #5b5ff8;z-index:2;box-shadow:0 5px 18px #5b5ff827}.ranking-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.podium-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:20px 10px;border:1px solid #ddd;border-radius:22px;background:linear-gradient(150deg,#fff,#f6f8fd);animation:ranking-enter .5s ease both;overflow-wrap:anywhere}.podium-card h3{font-size:1rem;margin:0}.podium-card>span:last-child{font-size:.75rem}.podium-medal{display:grid;place-items:center;width:48px;height:54px;font:700 1.4rem var(--font-heading);clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);background:#f6d18d;color:#61400c}.podium-1{border-color:#e4bc6b;background:linear-gradient(145deg,#fff,#fff5dc)}.podium-2 .podium-medal{background:#dce3ef;color:#424e61}.podium-3 .podium-medal{background:#edc3a3;color:#6a4024}.ranking-paging{display:flex;gap:10px;flex-wrap:wrap}.ranking-history{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0}.ranking-history select{max-width:100%;padding:12px;border:1px solid var(--color-border);border-radius:12px;background:#fff;color:var(--color-text)}.ranking-privacy{display:flex;align-items:center;gap:12px;min-height:44px}.ranking-privacy input{width:22px;height:22px;accent-color:#5b5ff8}.ranking-title-badge{padding:12px 16px;border-radius:14px;background:#fff5dc;border:1px solid #e4bc6b}.ranking-celebration{border-top:1px solid var(--color-border);padding:16px 0;margin-top:14px;text-align:left;max-width:100%;overflow:hidden}.ranking-celebration h3{font:700 1.15rem var(--font-heading);color:#4448c8}.ranking-celebration .is-self{box-shadow:0 0 0 4px #19c2d825,0 0 25px #5b5ff82e}.ranking-celebration .ranking-row{will-change:transform}.ranking-gain{font:700 1.1rem var(--font-heading);text-align:center;color:#4448c8}.ranking-jump-rail{height:220px;padding:12px 0;position:relative;background:linear-gradient(90deg,transparent 49%,#19c2d855 49%,#19c2d855 51%,transparent 51%);border-radius:18px}.ranking-jump-card{margin:0 8px;list-style:none}.ranking-jump-label{text-align:center;font-size:.9rem}.ranking-skip{display:block;margin:auto}.ranking-error{color:#8d284d}@keyframes ranking-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-width:560px){.ranking-podium{gap:7px}.podium-card{padding:16px 6px;gap:8px;border-radius:16px}.podium-card h3{font-size:.85rem}.podium-card strong{font-size:.8rem}.ranking-row{gap:8px;padding:10px;min-height:64px}.ranking-position{min-width:22px}.ranking-coins{font-size:.78rem}.ranking-you{padding:3px 5px}.ranking-summary{gap:10px 18px}.ranking-paging button{flex:1}.ranking-paging button:last-child{flex-basis:100%}}@media(prefers-reduced-motion:reduce){.podium-card{animation:none}.ranking-celebration *{animation:none!important;transition:none!important;will-change:auto}}
#reward-dialog [hidden]{display:none!important}.header-tools .performance-link svg{vertical-align:middle;flex-shrink:0}.ranking-row:focus-within{outline:3px solid #4448c8;outline-offset:2px}
.ranking-achievement-badge{display:grid;place-items:center;width:58px;height:64px;margin:auto;font:700 1.5rem var(--font-heading);color:#fff;background:#5b5ff8;clip-path:polygon(50% 0,95% 24%,95% 76%,50% 100%,5% 76%,5% 24%);animation:ranking-enter .4s ease both}.ranking-celebration[data-achievement="leader"]{background:radial-gradient(ellipse at 50% 0,#ff9f4333,transparent 70%)}.ranking-celebration[data-achievement="leader"] .ranking-achievement-badge{background:linear-gradient(135deg,#ffe29a,#ffb347);color:#61400c}.ranking-celebration[data-achievement="podium"] .ranking-achievement-badge{background:linear-gradient(135deg,#5b5ff8,#b33e76)}@media(prefers-reduced-motion:reduce){.ranking-achievement-badge{animation:none}}
.ranking-jump-rail{list-style:none;margin:12px 0}

/* Names remain compact; full authorized text is retained in the DOM/title. */
.ranking-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.ranking-own-identity{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}
.ranking-own-identity .ranking-you{flex-shrink:0}.podium-card h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.podium-card.is-self{outline:2px solid var(--color-primary);outline-offset:2px}
.ranking-player{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.ranking-player .ranking-name{flex:0 1 auto;max-width:100%}.ranking-own-identity{flex-wrap:wrap}.podium-card .participant-streak{align-self:center}.ranking-row .participant-streak{min-height:23px;font-size:.72rem;padding:1px 6px}
/* Top-three distinction belongs to the list, without a separate podium. */
.ranking-row .ranking-position.rank-medal{display:inline-grid;place-items:center;flex:0 0 34px;min-width:34px;width:34px;height:39px;font:800 1rem var(--font-heading);clip-path:polygon(50% 0,95% 24%,95% 76%,50% 100%,5% 76%,5% 24%)}.ranking-row .rank-medal-1{background:linear-gradient(135deg,#ffe8a5,#e9b54e);color:#65430c}.ranking-row .rank-medal-2{background:linear-gradient(135deg,#f0f3f9,#c4cede);color:#424f63}.ranking-row .rank-medal-3{background:linear-gradient(135deg,#f5d8bd,#d29a70);color:#653e24}
