.up-rank-page{padding:22px 28px 40px;}
.up-rank-shell{max-width:1560px;margin:0 auto;display:grid;gap:16px;}
.up-rank-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:8px 2px 4px;}
.up-rank-head .eyebrow{display:block;color:#ef476f;font-size:13px;font-weight:900;letter-spacing:.16em;margin-bottom:7px;}
.up-rank-head h1{margin:0;font-size:26px;line-height:1.05;letter-spacing:-.04em;}
.up-rank-head p{margin:8px 0 0;color:var(--muted,#667284);font-size:14px;}
.up-rank-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.up-rank-head-actions a,.up-rank-head-actions button{min-height:40px;padding:0 14px;border-radius:12px;border:1px solid var(--line,#dfe4ea);background:var(--panel,#fff);color:inherit;font-weight:800;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.up-rank-head-actions .is-disabled{opacity:.45;pointer-events:none;}
.up-rank-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.up-rank-summary article{border:1px solid var(--line,#dfe4ea);background:var(--panel,#fff);border-radius:18px;padding:18px 20px;min-height:104px;display:flex;flex-direction:column;justify-content:center;}
.up-rank-summary span{font-size:13px;color:var(--muted,#788291);font-weight:800;}
.up-rank-summary strong{font-size:22px;letter-spacing:-.04em;margin-top:5px;}
.up-rank-panel{border:1px solid var(--line,#dfe4ea);background:var(--panel,#fff);border-radius:20px;overflow:hidden;}
.up-rank-search{height:40px;border:1px solid var(--line,#dfe4ea);background:var(--surface,#f6f7f9);color:inherit;border-radius:12px;padding:0 14px;outline:none;}
.up-rank-search:focus{border-color:#ef476f;box-shadow:0 0 0 3px rgba(239,71,111,.12);}
.up-rank-status{justify-self:end;font-size:14px;font-weight:800;color:var(--muted,#667284);}
.up-rank-status[data-tone="ok"]{color:#68b26f}
.up-rank-status[data-tone="error"]{color:#ef476f}
.up-rank-status[data-tone="loading"]{color:#e8b24e}
.up-rank-refresh{height:38px;border-radius:11px;border:1px solid var(--line,#dfe4ea);background:var(--surface,#f6f7f9);color:inherit;font-weight:900;padding:0 12px;cursor:pointer;}
.up-rank-source{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;color:var(--muted,#667284);font-size:14px;border-bottom:1px solid var(--line,#dfe4ea);}
.up-rank-source b{color:inherit;font-weight:900;}
.up-rank-sort-button{border:0;background:none;color:inherit;font:inherit;font-weight:900;cursor:pointer;padding:0;white-space:nowrap}
.up-rank-sort-button:hover{color:#ef476f}
.up-rank-rank{text-align:center}
.up-rank-rank>b{display:inline-flex;width:31px;height:31px;border-radius:10px;align-items:center;justify-content:center;background:var(--surface,#f1f3f6);font-size:15px}
.up-rank-avatar-fallback{width:38px;height:38px;border-radius:12px;object-fit:cover;flex:0 0 auto}
.up-rank-avatar-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ef476f,#7c3aed);color:white;font-weight:900}
.up-rank-settings-modal{max-width:590px}
.up-rank-settings-modal .up-rank-setting-switch{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px;border:1px solid var(--line,#dfe4ea);border-radius:14px}
.up-rank-settings-modal .up-rank-setting-switch input{width:20px;height:20px}
.up-rank-settings-help{font-size:14px;color:var(--muted,#667284);line-height:1.6}
.up-rank-settings-status{min-height:20px;font-size:14px;color:var(--muted,#667284);}
html.dark .up-rank-page,[data-theme="dark"] .up-rank-page{color:#f6f7f9}
.dark .up-rank-summary article,.dark .up-rank-panel,.dark .up-rank-head-actions a,.dark .up-rank-head-actions button,[data-theme="dark"] .up-rank-summary article,[data-theme="dark"] .up-rank-panel,[data-theme="dark"] .up-rank-head-actions a,[data-theme="dark"] .up-rank-head-actions button{background:#0f1520;border-color:#263242}
.dark .up-rank-search,.dark .up-rank-refresh,[data-theme="dark"] .up-rank-search,[data-theme="dark"] .up-rank-refresh{background:#182231;border-color:#334154;color:#f6f7f9}
.dark .up-rank-source,[data-theme="dark"] .up-rank-source{border-color:#263242}
.dark .up-rank-rank>b,[data-theme="dark"] .up-rank-rank>b{background:#182231}
.dark .up-rank-sort-button,[data-theme="dark"] .up-rank-sort-button{color:#dfe4ea}
@media(max-width:900px){.up-rank-page{padding:14px 12px 90px}
.up-rank-head{align-items:flex-start;flex-direction:column}
.up-rank-summary{grid-template-columns:1fr 1fr}
.up-rank-summary article:last-child{grid-column:1/-1}
.up-rank-status{grid-column:1/-1;grid-row:2;justify-self:start}
.up-rank-source{align-items:flex-start;flex-direction:column}
.up-rank-rank{position:absolute;right:12px;top:12px;width:auto!important}}
.up-rank-summary{grid-template-columns:repeat(4,minmax(0,1fr));}
.up-rank-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 16px;border-bottom:1px solid var(--line,#dfe4ea);background:var(--surface,#f6f7f9)}
.up-rank-filterbar button{height:34px;padding:0 11px;border:1px solid var(--line,#dfe4ea);border-radius:999px;background:var(--panel,#fff);color:inherit;font-size:13px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.up-rank-filterbar button span{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--surface,#e9edf2);color:var(--muted,#667284);font-size:12px}
.up-rank-filterbar button:hover{border-color:#ef476f}
.up-rank-filterbar button.active{border-color:#ef476f;background:rgba(239,71,111,.09);color:#d63363;box-shadow:0 0 0 2px rgba(239,71,111,.07) inset}
.up-rank-filterbar button.active span{background:#ef476f;color:#fff}
.up-rank-crew-pins{padding:13px 16px 14px;border-bottom:1px solid var(--line,#dfe4ea);background:linear-gradient(180deg,rgba(239,71,111,.025),transparent)}
.up-rank-crew-pins-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:9px}
.up-rank-crew-pins-head>div{display:flex;align-items:baseline;gap:8px}
.up-rank-crew-pins-head span{font-size:12px;letter-spacing:.14em;font-weight:900;color:#ef476f}
.up-rank-crew-pins-head strong{font-size:14px}
.up-rank-crew-pins-head small{font-size:12px;color:var(--muted,#667284)}
.up-rank-crew-pin-list{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.up-rank-pin-card{position:relative;min-width:184px;max-width:230px;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto auto;column-gap:9px;align-items:center;padding:10px 11px;border:1px solid var(--line,#dfe4ea);border-radius:14px;background:var(--panel,#fff);color:inherit;text-decoration:none;flex:0 0 auto;overflow:hidden}
.up-rank-pin-card>img,.up-rank-pin-card>span{grid-row:1/4;width:36px;height:36px;border-radius:11px;object-fit:cover;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ef476f,#7c3aed);color:#fff;font-size:13px;font-weight:900}
.up-rank-pin-card em{font-style:normal;font-size:12px;font-weight:900;letter-spacing:.03em}
.up-rank-pin-card strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up-rank-pin-card small{font-size:12px;color:var(--muted,#667284);font-weight:900}
.up-rank-pin-card.is-jinho{border-color:rgba(239,71,111,.42);background:linear-gradient(135deg,rgba(239,71,111,.10),var(--panel,#fff) 62%)}
.up-rank-pin-card.is-jinho em{color:#ef476f}
.up-rank-pin-card.is-jindegi{border-color:rgba(46,125,50,.38);background:linear-gradient(135deg,rgba(46,125,50,.10),var(--panel,#fff) 62%)}
.up-rank-pin-card.is-jindegi em{color:#2e7d32}
.up-rank-crew-badge{display:inline-flex;vertical-align:middle;align-items:center;height:18px;padding:0 6px;border-radius:999px;font-style:normal;font-size:12px;font-weight:900;margin-left:5px;transform:translateY(-1px)}
.up-rank-crew-badge.is-jinho{background:rgba(239,71,111,.12);color:#d63363;border:1px solid rgba(239,71,111,.23)}
.up-rank-crew-badge.is-jindegi{background:rgba(46,125,50,.12);color:#2e7d32;border:1px solid rgba(46,125,50,.22)}
.up-rank-setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.up-rank-settings-modal .up-rank-setting-switch.compact{padding:12px 13px}
.up-rank-settings-modal .up-rank-setting-switch.compact span{display:flex;flex-direction:column;gap:3px}
.up-rank-settings-modal .up-rank-setting-switch.compact small{font-size:12px;color:var(--muted,#667284);line-height:1.45}
.dark .up-rank-filterbar,[data-theme="dark"] .up-rank-filterbar{background:#0f1520;border-color:#263242}
.dark .up-rank-filterbar button,[data-theme="dark"] .up-rank-filterbar button{background:#182231;border-color:#334154;color:#dfe4ea}
.dark .up-rank-filterbar button span,[data-theme="dark"] .up-rank-filterbar button span{background:#263242;color:#a0a8b3}
.dark .up-rank-filterbar button.active,[data-theme="dark"] .up-rank-filterbar button.active{background:rgba(239,71,111,.13);border-color:#ef476f;color:#ff8aa5}
.dark .up-rank-filterbar button.active span,[data-theme="dark"] .up-rank-filterbar button.active span{background:#ef476f;color:#fff}
.dark .up-rank-crew-pins,[data-theme="dark"] .up-rank-crew-pins{background:linear-gradient(180deg,rgba(239,71,111,.035),transparent);border-color:#263242}
.dark .up-rank-pin-card,[data-theme="dark"] .up-rank-pin-card{background:#131b27;border-color:#334154}
.dark .up-rank-pin-card.is-jinho,[data-theme="dark"] .up-rank-pin-card.is-jinho{background:linear-gradient(135deg,rgba(239,71,111,.12),#131b27 62%)}
.dark .up-rank-pin-card.is-jindegi,[data-theme="dark"] .up-rank-pin-card.is-jindegi{background:linear-gradient(135deg,rgba(70,160,78,.12),#131b27 62%)}
.dark .up-rank-pin-card.is-jindegi em,[data-theme="dark"] .up-rank-pin-card.is-jindegi em{color:#80cc87}
.dark .up-rank-crew-badge.is-jinho,[data-theme="dark"] .up-rank-crew-badge.is-jinho{color:#ff8aa5;background:rgba(239,71,111,.12)}
.dark .up-rank-crew-badge.is-jindegi,[data-theme="dark"] .up-rank-crew-badge.is-jindegi{color:#80cc87;background:rgba(70,160,78,.12)}
@media(max-width:900px){.up-rank-summary{grid-template-columns:1fr 1fr}
.up-rank-summary article:last-child{grid-column:auto}
.up-rank-filterbar{padding:10px;gap:6px;overflow-x:auto;flex-wrap:nowrap}
.up-rank-filterbar button{flex:0 0 auto}
.up-rank-crew-pins{padding:11px 10px}
.up-rank-crew-pins-head{align-items:flex-start;flex-direction:column;gap:3px}
.up-rank-crew-pins-head>div{display:block}
.up-rank-crew-pins-head span{display:block;margin-bottom:2px}
.up-rank-pin-card{min-width:168px}
.up-rank-setting-grid{grid-template-columns:1fr}}
@keyframes upRankRiseFlash{0%{background:rgba(47,158,68,.17)}42%{background:rgba(47,158,68,.075)}100%{background:transparent}}
@keyframes upRankFallFlash{0%{background:rgba(229,72,97,.15)}42%{background:rgba(229,72,97,.065)}100%{background:transparent}}
@keyframes upRankRiseFlashDark{0%{background:rgba(72,176,83,.18)}100%{background:transparent}}
@keyframes upRankFallFlashDark{0%{background:rgba(239,71,111,.17)}100%{background:transparent}}
@media(max-width:900px){.up-rank-status{grid-column:1/-1;grid-row:2;justify-self:start}}
.up-rank-pin-card{min-width:220px;max-width:290px;grid-template-rows:auto auto;}
.up-rank-pin-card>img,.up-rank-pin-card>span{grid-row:1/3;}
.up-rank-pin-card>em{grid-column:2;grid-row:1;}
.up-rank-pin-mainline{grid-column:2;grid-row:2;display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;white-space:nowrap;}
.up-rank-pin-mainline strong{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:14px;line-height:1.25;font-weight:900;}
.up-rank-pin-mainline b{flex:0 0 auto;font-size:14px;line-height:1.25;font-weight:900;color:var(--muted,#667284);}
.up-rank-pin-card.is-jinho .up-rank-pin-mainline b{color:#d63363;}
.up-rank-pin-card.is-jindegi .up-rank-pin-mainline b{color:#2e7d32;}
.dark .up-rank-pin-card.is-jinho .up-rank-pin-mainline b,[data-theme="dark"] .up-rank-pin-card.is-jinho .up-rank-pin-mainline b{color:#ff8aa5;}
.dark .up-rank-pin-card.is-jindegi .up-rank-pin-mainline b,[data-theme="dark"] .up-rank-pin-card.is-jindegi .up-rank-pin-mainline b{color:#80cc87;}
@media(max-width:900px){.up-rank-pin-card{min-width:205px;max-width:260px;}
.up-rank-pin-mainline{gap:6px;}
.up-rank-pin-mainline strong,.up-rank-pin-mainline b{font-size:14px;}}
.up-rank-page{
  --crew-jinho:#c2185b;
  --crew-jinho-accent:#e83e78;
  --crew-jinho-bg:#fff0f5;
  --crew-jinho-bg-strong:#ffe3ed;
  --crew-jinho-border:#f08aad;
  --crew-jindegi:#176b35;
  --crew-jindegi-accent:#2f9650;
  --crew-jindegi-bg:#eef9f1;
  --crew-jindegi-bg-strong:#daf2e1;
  --crew-jindegi-border:#69b77d;
}
.dark .up-rank-page,[data-theme="dark"] .up-rank-page{
  --crew-jinho:#ff8fb0;
  --crew-jinho-accent:#ff5f91;
  --crew-jinho-bg:rgba(255,77,132,.145);
  --crew-jinho-bg-strong:rgba(255,77,132,.22);
  --crew-jinho-border:#ff709d;
  --crew-jindegi:#ff9a93;
  --crew-jindegi-accent:#ff554d;
  --crew-jindegi-bg:rgba(232,64,55,.16);
  --crew-jindegi-bg-strong:rgba(232,64,55,.245);
  --crew-jindegi-border:#ff716a;
}
.up-rank-pin-card.is-jinho{
  border:2px solid var(--crew-jinho-border);
  background:linear-gradient(135deg,var(--crew-jinho-bg-strong),#fff 72%);
  box-shadow:inset 4px 0 0 var(--crew-jinho-accent);
}
.up-rank-pin-card.is-jindegi{
  border:2px solid var(--crew-jindegi-border);
  background:linear-gradient(135deg,var(--crew-jindegi-bg-strong),#fff 72%);
  box-shadow:inset 4px 0 0 var(--crew-jindegi-accent);
}
.up-rank-pin-card.is-jinho>em,.up-rank-pin-card.is-jinho .up-rank-pin-mainline b{color:var(--crew-jinho)}
.up-rank-pin-card.is-jindegi>em,.up-rank-pin-card.is-jindegi .up-rank-pin-mainline b{color:var(--crew-jindegi)}
.dark .up-rank-pin-card.is-jinho,[data-theme="dark"] .up-rank-pin-card.is-jinho{
  border-color:var(--crew-jinho-border);
  background:linear-gradient(135deg,var(--crew-jinho-bg-strong),#131b27 72%);
  box-shadow:inset 4px 0 0 var(--crew-jinho-accent);
}
.dark .up-rank-pin-card.is-jindegi,[data-theme="dark"] .up-rank-pin-card.is-jindegi{
  border-color:var(--crew-jindegi-border);
  background:linear-gradient(135deg,var(--crew-jindegi-bg-strong),#131b27 72%);
  box-shadow:inset 4px 0 0 var(--crew-jindegi-accent);
}
.up-rank-crew-badge.is-jinho{
  color:var(--crew-jinho);
  background:var(--crew-jinho-bg-strong);
  border:1px solid var(--crew-jinho-border);
}
.up-rank-crew-badge.is-jindegi{
  color:var(--crew-jindegi);
  background:var(--crew-jindegi-bg-strong);
  border:1px solid var(--crew-jindegi-border);
}
.up-rank-filterbar button[data-up-rank-filter="jinho"].active{
  color:var(--crew-jinho);
  border-color:var(--crew-jinho-border);
  background:var(--crew-jinho-bg-strong);
}
.up-rank-filterbar button[data-up-rank-filter="jindegi"].active{
  color:var(--crew-jindegi);
  border-color:var(--crew-jindegi-border);
  background:var(--crew-jindegi-bg-strong);
}
.up-rank-filterbar button[data-up-rank-filter="jinho"].active span{background:var(--crew-jinho-accent);color:#fff}
.up-rank-filterbar button[data-up-rank-filter="jindegi"].active span{background:var(--crew-jindegi-accent);color:#fff}
.up-rank-page{
  --rank-bg:#f1f3f6;
  --rank-card:#ffffff;
  --rank-card-2:#f6f7f9;
  --rank-line:#dfe4ea;
  --rank-text:#131b27;
  --rank-muted:#667284;
  --rank-accent:#ef476f;
  --rank-accent-soft:rgba(239,71,111,.09);
  --rank-green:#2f9e44;
  --rank-red:#e54861;
  padding:26px 30px 56px;
}
.dark .up-rank-page,[data-theme="dark"] .up-rank-page{
  --rank-bg:#090d14;
  --rank-card:#0f1520;
  --rank-card-2:#131b27;
  --rank-line:#263242;
  --rank-text:#f6f7f9;
  --rank-muted:#8d98a8;
  --rank-accent:#ff6f93;
  --rank-accent-soft:rgba(255,111,147,.11);
  --rank-green:#79d884;
  --rank-red:#ff7b8e;
}
.up-rank-shell{max-width:1500px;gap:20px}
.up-rank-head{padding:8px 4px 0;align-items:center}
.up-rank-head .eyebrow{font-size:12px;letter-spacing:.2em;color:var(--rank-accent)}
.up-rank-head h1{font-size:30px;color:var(--rank-text)}
.up-rank-head p{font-size:15px;line-height:1.55;color:var(--rank-muted);max-width:680px}
.up-rank-head-actions a,.up-rank-head-actions button{border-color:var(--rank-line);background:var(--rank-card);border-radius:13px;min-height:42px;padding:0 15px;color:var(--rank-text)}
.up-rank-head-actions a:hover,.up-rank-head-actions button:hover{border-color:var(--rank-accent);color:var(--rank-accent)}
.up-rank-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.up-rank-summary article{position:relative;min-height:116px;border:1px solid var(--rank-line);background:var(--rank-card);border-radius:18px;padding:20px 22px;overflow:hidden}
.up-rank-summary article::after{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--rank-accent);opacity:.85}
.up-rank-summary span{font-size:12px;letter-spacing:.08em;color:var(--rank-muted);font-weight:900}
.up-rank-summary strong{font-size:23px;color:var(--rank-text);letter-spacing:-.04em;margin-top:7px}
.up-rank-summary small{font-size:13px;color:var(--rank-muted);margin-top:6px}
.up-rank-section-head,.up-rank-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.up-rank-section-head>div>span,.up-rank-panel-head>div>span{display:block;color:var(--rank-accent);font-size:12px;font-weight:950;letter-spacing:.17em;margin-bottom:5px}
.up-rank-section-head h2,.up-rank-panel-head h2{margin:0;color:var(--rank-text);font-size:20px;letter-spacing:-.035em}
.up-rank-section-head p,.up-rank-panel-head p{margin:5px 0 0;color:var(--rank-muted);font-size:14px}
.up-rank-section-head>p{margin:0 0 2px}
.up-rank-podium{border:1px solid var(--rank-line);background:var(--rank-card);border-radius:22px;padding:20px}
.up-rank-podium-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:16px;align-items:stretch;border:1px solid var(--rank-line);border-radius:18px;overflow:hidden;background:var(--rank-card-2)}
.up-rank-podium-card{position:relative;min-height:124px;border:0;border-right:1px solid var(--rank-line);border-radius:0;background:var(--rank-card-2);color:var(--rank-text);text-decoration:none;padding:18px 20px;display:grid;grid-template-columns:auto 58px minmax(0,1fr) auto;grid-template-rows:1fr;align-items:center;gap:14px;transition:background .18s ease,color .18s ease}
.up-rank-podium-card:last-child{border-right:0}
.up-rank-podium-card:hover{background:color-mix(in srgb,var(--rank-card-2) 86%,var(--rank-accent) 14%)}
.up-rank-podium-card.rank-1{min-height:124px;background:linear-gradient(90deg,rgba(226,174,47,.10),var(--rank-card-2) 42%)}
.up-rank-podium-card.rank-2{background:linear-gradient(90deg,rgba(145,157,170,.08),var(--rank-card-2) 42%)}
.up-rank-podium-card.rank-3{background:linear-gradient(90deg,rgba(183,116,58,.08),var(--rank-card-2) 42%)}
.up-rank-podium-place{position:static;width:54px;min-width:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--rank-muted)}
.up-rank-podium-medal{font-size:18px;line-height:1}
.up-rank-podium-rank{display:inline-flex;align-items:baseline;gap:2px;font-size:13px;font-weight:950;color:var(--rank-muted);white-space:nowrap}
.up-rank-podium-rank>b{font-size:21px;line-height:1;letter-spacing:-.05em;color:var(--rank-text)}
.up-rank-podium-move{margin:2px 0 0;padding:3px 6px;border-radius:999px;font-size:12px;font-weight:950;line-height:1}
.up-rank-podium-move.up{color:var(--rank-green);background:rgba(47,158,68,.12)}
.up-rank-podium-move.down{color:var(--rank-red);background:rgba(229,72,97,.12)}
.up-rank-podium-avatar{width:58px;height:58px;border-radius:18px;overflow:hidden;background:var(--rank-card);border:1px solid var(--rank-line);display:flex;align-items:center;justify-content:center}
.up-rank-podium-avatar img,.up-rank-podium-avatar-fallback{width:100%;height:100%;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:950}
.up-rank-podium-avatar-fallback{background:linear-gradient(135deg,var(--rank-accent),#7c3aed);color:#fff}
.up-rank-podium-user{min-width:0;padding:0}
.up-rank-podium-user strong{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up-rank-podium-user small{display:block;color:var(--rank-muted);font-size:13px;margin-top:4px}
.up-rank-podium-up{display:flex;align-items:baseline;justify-content:flex-end;gap:5px;white-space:nowrap;padding-left:8px}
.up-rank-podium-up strong{font-size:22px;letter-spacing:-.04em;color:var(--rank-text)}
.up-rank-podium-up span{font-size:13px;color:var(--rank-accent);font-weight:950}
.up-rank-panel{border:0;background:transparent;border-radius:0;overflow:visible}
.up-rank-panel-head{padding:2px 2px 12px}
.up-rank-live-tools{display:flex;align-items:center;gap:10px}
.up-rank-status{display:inline-flex;align-items:center;gap:7px;justify-self:auto;font-size:13px;font-weight:900;color:var(--rank-muted)}
.up-rank-status::before{content:"";width:8px;height:8px;border-radius:50%;background:#8d98a8;box-shadow:0 0 0 3px rgba(141, 152, 168, .12)}
.up-rank-status[data-tone="ok"]{color:var(--rank-green)}
.up-rank-status[data-tone="ok"]::before{background:var(--rank-green);box-shadow:0 0 0 3px rgba(47,158,68,.14)}
.up-rank-status[data-tone="loading"]{color:#d89b2b}
.up-rank-status[data-tone="loading"]::before{background:#d89b2b}
.up-rank-status[data-tone="error"]{color:var(--rank-red)}
.up-rank-status[data-tone="error"]::before{background:var(--rank-red)}
.up-rank-refresh{height:38px;padding:0 13px;border:1px solid var(--rank-line);border-radius:11px;background:var(--rank-card);color:var(--rank-text)}
.up-rank-refresh:hover{border-color:var(--rank-accent);color:var(--rank-accent)}
.up-rank-controls{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;padding:14px 16px 10px;background:var(--rank-card);border:1px solid var(--rank-line);border-bottom:0;border-radius:18px 18px 0 0}
.up-rank-search{height:44px;border:1px solid var(--rank-line);background:var(--rank-card-2);color:var(--rank-text);border-radius:12px;padding:0 15px;font-size:14px}
.up-rank-search::placeholder{color:var(--rank-muted)}
.up-rank-search:focus{border-color:var(--rank-accent);box-shadow:0 0 0 3px var(--rank-accent-soft)}
.up-rank-sort-button{height:44px;min-width:108px;padding:0 14px;border:1px solid var(--rank-line);border-radius:12px;background:var(--rank-card-2);color:var(--rank-text);font-size:14px;font-weight:950}
.up-rank-sort-button:hover{border-color:var(--rank-accent);color:var(--rank-accent)}
.up-rank-filterbar{padding:0 16px 12px;background:var(--rank-card);border-left:1px solid var(--rank-line);border-right:1px solid var(--rank-line);border-bottom:0;gap:7px}
.up-rank-filterbar button{height:34px;padding:0 12px;border-color:var(--rank-line);background:var(--rank-card-2);font-size:13px;color:var(--rank-text)}
.up-rank-filterbar button span{background:var(--rank-card);color:var(--rank-muted)}
.up-rank-filterbar button.active{background:var(--rank-accent-soft);border-color:var(--rank-accent);color:var(--rank-accent);box-shadow:none}
.up-rank-filterbar button.active span{background:var(--rank-accent);color:#fff}
.up-rank-source{padding:10px 16px 13px;background:var(--rank-card);border:1px solid var(--rank-line);border-top:0;border-radius:0 0 18px 18px;color:var(--rank-muted);font-size:13px}
.up-rank-source b{color:var(--rank-text)}
.up-rank-crew-pins{margin-top:12px;padding:15px 16px;border:1px solid var(--rank-line);border-radius:18px;background:var(--rank-card)}
.up-rank-crew-pins-head{margin-bottom:11px;align-items:center}
.up-rank-crew-pins-head span{color:var(--rank-accent);font-size:12px}
.up-rank-crew-pins-head strong{font-size:14px;color:var(--rank-text)}
.up-rank-crew-pins-head small{font-size:12px;color:var(--rank-muted)}
.up-rank-crew-pin-list{gap:10px}
.up-rank-pin-card{min-width:230px;max-width:310px;padding:11px 12px;border-radius:15px;background:var(--rank-card-2);border-color:var(--rank-line)}
.up-rank-rank{text-align:left;white-space:nowrap}
.up-rank-rank>b{display:inline;font-size:21px;line-height:1;letter-spacing:-.05em;background:none!important;color:var(--rank-text)!important;width:auto;height:auto;border-radius:0;box-shadow:none!important}
.up-rank-avatar-fallback{width:44px;height:44px;border-radius:14px}
.up-rank-crew-badge{height:19px;padding:0 7px;font-size:12px;margin-left:6px}
.dark .up-rank-summary article,.dark .up-rank-podium,.dark .up-rank-controls,.dark .up-rank-filterbar,.dark .up-rank-source,.dark .up-rank-crew-pins,[data-theme="dark"] .up-rank-summary article,[data-theme="dark"] .up-rank-podium,[data-theme="dark"] .up-rank-controls,[data-theme="dark"] .up-rank-filterbar,[data-theme="dark"] .up-rank-source,[data-theme="dark"] .up-rank-crew-pins{background:var(--rank-card);border-color:var(--rank-line)}
.dark .up-rank-search,.dark .up-rank-refresh,[data-theme="dark"] .up-rank-search,[data-theme="dark"] .up-rank-refresh{background:var(--rank-card-2);border-color:var(--rank-line);color:var(--rank-text)}
.dark .up-rank-filterbar button,[data-theme="dark"] .up-rank-filterbar button{background:var(--rank-card-2);border-color:var(--rank-line);color:var(--rank-text)}
.dark .up-rank-filterbar button span,[data-theme="dark"] .up-rank-filterbar button span{background:#182231;color:var(--rank-muted)}
.dark .up-rank-pin-card,[data-theme="dark"] .up-rank-pin-card{background:var(--rank-card-2);border-color:var(--rank-line)}
.dark .up-rank-podium-card,[data-theme="dark"] .up-rank-podium-card{background:var(--rank-card-2);border-color:var(--rank-line)}
@media(max-width:1100px){.up-rank-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.up-rank-page{padding:16px 12px 92px}
.up-rank-head{gap:14px}
.up-rank-head h1{font-size:26px}
.up-rank-summary{grid-template-columns:1fr 1fr;gap:8px}
.up-rank-summary article{min-height:102px;padding:16px 17px}
.up-rank-summary strong{font-size:20px}
.up-rank-podium{padding:15px 12px}
.up-rank-section-head{align-items:flex-start;flex-direction:column;gap:4px}
.up-rank-podium-list{grid-template-columns:1fr;gap:0;border-radius:16px}
.up-rank-podium-card,.up-rank-podium-card.rank-1{min-height:96px;grid-template-columns:46px 50px minmax(0,1fr) auto;padding:12px 13px;border-right:0;border-bottom:1px solid var(--rank-line)}
.up-rank-podium-card:last-child{border-bottom:0}
.up-rank-podium-avatar{width:50px;height:50px;border-radius:15px}
.up-rank-podium-place{width:46px;min-width:46px}
.up-rank-podium-medal{font-size:17px}
.up-rank-podium-rank>b{font-size:18px}
.up-rank-podium-up strong{font-size:19px}
.up-rank-panel-head{align-items:flex-start;flex-direction:column;gap:10px;padding:0 2px 10px}
.up-rank-live-tools{width:100%;justify-content:space-between}
.up-rank-controls{grid-template-columns:1fr auto;padding:10px;border-radius:16px 16px 0 0}
.up-rank-search{min-width:0}
.up-rank-sort-button{min-width:92px;padding:0 10px}
.up-rank-filterbar{padding:0 10px 10px;overflow-x:auto;flex-wrap:nowrap}
.up-rank-source{padding:9px 10px 11px}
.up-rank-crew-pins{padding:12px;margin-top:9px}
.up-rank-rank{right:12px;top:11px}
.up-rank-rank>b{font-size:20px}
.up-rank-avatar-fallback{width:42px;height:42px}}
@media(max-width:560px){.up-rank-summary{grid-template-columns:1fr 1fr}
.up-rank-summary article{min-height:94px;padding:14px}
.up-rank-summary strong{font-size:19px}
.up-rank-summary small{font-size:12px}
.up-rank-controls{grid-template-columns:1fr}
.up-rank-sort-button{width:100%}}
.up-rank-podium-inline{
  margin-top:12px;
  border-radius:18px;
  padding:15px 16px 16px;
}
.up-rank-podium-inline .up-rank-section-head h2{font-size:18px}
.up-rank-podium-inline .up-rank-section-head p{font-size:12px}
.up-rank-podium-inline .up-rank-podium-list{margin-top:11px}
.up-rank-pin-card{
  font:inherit;
  text-align:left;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
.up-rank-pin-card:focus-visible{outline:2px solid var(--rank-accent);outline-offset:3px}
.up-rank-pin-card:hover{transform:translateY(-1px);filter:brightness(1.02)}
.up-rank-pin-card:active{transform:translateY(0)}
.up-rank-podium-card.is-scroll-target{
  position:relative;
  z-index:2;
  box-shadow:inset 0 0 0 2px var(--rank-accent),0 0 0 4px var(--rank-accent-soft);
  animation:upRankLocateCard 1.05s ease-in-out 2;
}
@keyframes upRankLocateCard{
  0%,100%{filter:none}
  50%{filter:brightness(1.08)}
}
@media(max-width:900px){.up-rank-podium-inline{padding:13px 10px 14px}
.up-rank-podium-inline .up-rank-section-head{align-items:flex-start}}
/* v2227 · 업 순위 FHD 가로 잘림 방지 / 가용 폭 기준 반응형 */
#page-uprank.up-rank-page{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
}
#page-uprank .up-rank-shell{
  width:min(100%,1500px)!important;
  max-width:100%!important;
  min-width:0!important;
  margin-inline:auto!important;
}
#page-uprank .up-rank-head,#page-uprank .up-rank-summary,#page-uprank .up-rank-panel,#page-uprank .up-rank-controls,#page-uprank .up-rank-filterbar,#page-uprank .up-rank-source,#page-uprank .up-rank-crew-pins,#page-uprank .up-rank-podium,#page-uprank .up-rank-podium-list{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
#page-uprank .up-rank-summary>article,#page-uprank .up-rank-podium-card,#page-uprank .up-rank-podium-user,#page-uprank .up-rank-panel-head>div,#page-uprank .up-rank-head>div{
  min-width:0!important;
}
#page-uprank .up-rank-crew-pin-list{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain;
}
/* 사이드바가 유지되는 FHD/작은 데스크톱에서 내부 요소가 화면 밖으로 밀리지 않게 압축 */
@media (min-width:901px) and (max-width:1920px){#page-uprank.up-rank-page{padding:22px clamp(12px,1vw,20px) 48px!important}
#page-uprank .up-rank-shell{gap:16px!important}
#page-uprank .up-rank-head{gap:14px!important}
#page-uprank .up-rank-head h1{font-size:clamp(29px,1.8vw,34px)!important}
#page-uprank .up-rank-head-actions{min-width:0!important;flex:0 1 auto!important}
#page-uprank .up-rank-summary{gap:9px!important}
#page-uprank .up-rank-summary article{padding:16px 17px!important;min-height:104px!important}
#page-uprank .up-rank-summary strong{font-size:clamp(21px,1.45vw,26px)!important;white-space:normal!important;overflow-wrap:anywhere!important}
#page-uprank .up-rank-summary small{font-size:12px!important}
#page-uprank .up-rank-podium{padding:16px!important}
#page-uprank .up-rank-podium-card,#page-uprank .up-rank-podium-card.rank-1{
    min-height:108px!important;
    padding:14px 12px!important;
    grid-template-columns:46px 50px minmax(0,1fr) auto!important;
    gap:10px!important;
  }
#page-uprank .up-rank-podium-place{width:46px!important;min-width:46px!important}
#page-uprank .up-rank-podium-avatar{width:50px!important;height:50px!important;border-radius:15px!important}
#page-uprank .up-rank-podium-user strong{font-size:15px!important}
#page-uprank .up-rank-podium-user small{font-size:12px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
#page-uprank .up-rank-podium-up{padding-left:3px!important;gap:3px!important}
#page-uprank .up-rank-podium-up strong{font-size:19px!important}
#page-uprank .up-rank-podium-up span{font-size:12px!important}}
/* FHD에서도 실제 사용 가능 폭이 좁아지는 창/확대 배율 대응 */
@media (min-width:901px) and (max-width:1500px){#page-uprank .up-rank-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#page-uprank .up-rank-podium-list{grid-template-columns:1fr!important}
#page-uprank .up-rank-podium-card,#page-uprank .up-rank-podium-card.rank-1{
    grid-template-columns:46px 50px minmax(0,1fr) auto!important;
    border-right:0!important;
    border-bottom:1px solid var(--rank-line)!important;
  }
#page-uprank .up-rank-podium-card:last-child{border-bottom:0!important}}
/* v2247: 업 순위 게시글 탭 · 여러 게시글을 등록해 전환할 수 있습니다. */
.up-rank-board-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.up-rank-board-tabs[hidden]{display:none}
.up-rank-board-tab{border:1px solid var(--line,#eadfe3);background:#fff;color:#6b555e;border-radius:999px;
  padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:.15s;max-width:240px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up-rank-board-tab:hover{border-color:#e6a5b8;color:#c2185b}
.up-rank-board-tab.is-active{background:#fdeaf1;border-color:#e6a5b8;color:#c2185b}
body.dark .up-rank-board-tab{background:transparent;border-color:#3a2c33;color:#b9a7ae}
body.dark .up-rank-board-tab.is-active{background:#40202c;border-color:#8d4560;color:#ff9ec0}
.up-rank-board-editor{display:flex;flex-direction:column;gap:8px}
.up-rank-board-editor-label{font-weight:700;font-size:13px}
.up-rank-board-editor-label small{display:block;font-weight:500;color:#7a666d;margin-top:2px}
.up-rank-board-row{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr) auto;gap:6px;align-items:center}
.up-rank-board-row input{width:100%;min-width:0}
.up-rank-board-remove{border:1px solid var(--line,#eadfe3);background:#fff;border-radius:8px;
  padding:6px 10px;cursor:pointer;font-size:13px;color:#a8404f;white-space:nowrap}
.up-rank-board-remove:hover{background:#fdeaf1}
.up-rank-board-add{align-self:flex-start;border:1px dashed #e6a5b8;background:transparent;color:#c2185b;
  border-radius:8px;padding:7px 12px;cursor:pointer;font-size:13px;font-weight:700}
.up-rank-board-add:hover{background:#fdeaf1}
.up-rank-board-add:disabled{opacity:.45;cursor:not-allowed}
@media (max-width:640px){.up-rank-board-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'label remove' 'url url'}
.up-rank-board-row input:first-child{grid-area:label}
.up-rank-board-row input:nth-child(2){grid-area:url}
.up-rank-board-remove{grid-area:remove}}
/* ===== v2248 · 업 순위 스코어보드 리디자인 =====
   이 화면의 유일한 목적: 누가 통과선 안에 있고, 컷까지 몇 UP이며, 시간이 얼마 남았는가.
   그래서 (1) 다열 배치로 스크롤을 없애고 (2) 통과선을 실제 선으로 긋고
   (3) 컷 근처 참가자에게 UP 차이를 직접 보여줍니다. 댓글 본문은 title 속성으로만 남깁니다. */
.up-rank-page{
  --ur-live:#e4154f;      /* 진행 중 · UP */
  --ur-in:#1f9d6b;        /* 통과권 */
  --ur-bubble:#c98a17;    /* 컷 경계 */
  --ur-rail:#efe3e8;
  --ur-dim:#8b7480;
}
body.dark .up-rank-page{--ur-rail:#3a2b33;--ur-dim:#a08d97}
/* 보드: 참고 사이트처럼 세로로 이어지는 열을 가로로 나열합니다.
   column-count는 열 우선으로 흐르므로 1→9, 10→18 순서가 자연스럽게 유지됩니다. */
.ur-board-wrap{margin-top:12px}
.ur-board-head{display:none}
.ur-board{column-count:1;column-gap:16px}
@media (min-width:760px){.ur-board{column-count:2}}
@media (min-width:1220px){.ur-board{column-count:3}}
.ur-row{
  display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;
  padding:9px 10px;border-bottom:1px solid var(--ur-rail);
  text-decoration:none;color:inherit;break-inside:avoid;
  transition:background .12s ease;
}
.ur-row:hover{background:color-mix(in srgb,var(--ur-live) 7%,transparent)}
.ur-row:focus-visible{outline:2px solid var(--ur-live);outline-offset:-2px;border-radius:8px}
/* 순위 숫자가 이 화면의 표제입니다. 고정폭 숫자로 자릿수가 달라도 세로선이 맞습니다. */
.ur-rank{display:flex;align-items:baseline;gap:4px}
.ur-rank b{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em;min-width:26px;text-align:right}
.ur-row.is-top .ur-rank b{color:var(--ur-live)}
.ur-row.rank-1 .ur-rank b{font-size:23px}
.ur-move{font-size:10px;font-weight:800;line-height:1}
.ur-move.up{color:var(--ur-in)}
.ur-move.down{color:var(--ur-dim)}
.ur-who{display:flex;align-items:center;gap:8px;min-width:0}
.ur-who img,.ur-who .up-rank-avatar-fallback{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.ur-name{min-width:0;display:flex;flex-direction:column;line-height:1.25}
.ur-name strong{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ur-name small{font-size:11px;color:var(--ur-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ur-up{display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.ur-up b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ur-gap{font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}
.ur-gap.in{color:var(--ur-in)}
.ur-gap.out{color:var(--ur-bubble)}
/* 통과선. 이 화면의 signature입니다. 장식이 아니라 실제 경계를 그립니다. */
.ur-cutline{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin:6px 0;padding:5px 10px;break-inside:avoid;
  border-top:2px dashed var(--ur-bubble);
  background:color-mix(in srgb,var(--ur-bubble) 9%,transparent);
}
/* 통과선 아래는 한 단계 물러나게 해서 경계가 눈으로 읽히게 합니다. */
.ur-row.is-out{opacity:.5}
.ur-row.is-out:hover{opacity:1}
.ur-row.is-cutline{background:color-mix(in srgb,var(--ur-bubble) 12%,transparent)}
.ur-empty{padding:28px 12px;text-align:center;color:var(--ur-dim)}
.ur-empty strong{display:block;font-size:14px;color:inherit;margin-bottom:4px}
.ur-empty span{font-size:12px}
/* 마감 카운트다운 */
.ur-deadline-card strong{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ur-deadline-card.is-soon strong{color:var(--ur-live)}
.ur-deadline-card.is-over{opacity:.55}
.ur-deadline-card[hidden]{display:none}
/* 설정: 게시글별 커트라인·마감 */
.up-rank-board-row{display:block;padding:10px;border:1px solid var(--line,#eadfe3);border-radius:12px;margin-bottom:8px}
.ur-board-row-main{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr) auto;gap:6px;align-items:center}
.ur-board-row-opts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px;padding-top:8px;border-top:1px dashed var(--ur-rail)}
.ur-opt{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;margin:0}
.ur-opt input[type=number]{width:64px;margin:0;padding:5px 7px}
.ur-opt input[type=checkbox]{margin:0;width:auto}
.ur-opt.wide{flex:1 1 240px;flex-direction:column;align-items:stretch;gap:3px}
.ur-opt.wide small{font-weight:500;color:var(--ur-dim)}
.ur-opt input[type=datetime-local]{margin:0;padding:6px 8px}
@media (prefers-reduced-motion:reduce){.ur-row{transition:none}}
/* ============================================================
   v2248 · 업 순위 화면 정리
   이 화면의 유일한 긴장은 "커트라인 안에 드느냐"입니다.
   그래서 커트라인을 면으로 나누는 것 하나에만 힘을 주고,
   나머지 표면(요약 카드·패널·필터)은 최대한 조용하게 눌렀습니다.
   ============================================================ */
.up-rank-shell{
  --ur-ink:#17121a; --ur-muted:#6f6470; --ur-line:#e8e2e6;
  --ur-surface:#fff; --ur-canvas:#f6f4f6;
  --ur-accent:#d81b60; --ur-pass:#0f9d6a; --ur-out:#9aa0a6;
}
body.dark .up-rank-shell{
  --ur-ink:#f2e9ee; --ur-muted:#9d8f97; --ur-line:#332830;
  --ur-surface:#191319; --ur-canvas:#120e13;
  --ur-accent:#ff6f9c; --ur-pass:#3fcf95; --ur-out:#6b6169;
}
/* 요약 · 카드 4장이 각자 테두리를 갖던 것을 한 덩어리로 묶습니다.
   상자 수가 줄어드는 것만으로 화면이 훨씬 조용해집니다. */
.up-rank-shell .up-rank-summary{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  border:1px solid var(--ur-line);border-radius:14px;
  background:var(--ur-surface);overflow:hidden;
}
.up-rank-shell .up-rank-summary article{
  min-height:0!important;padding:14px 16px!important;
  border:0!important;border-radius:0!important;
  border-left:1px solid var(--ur-line)!important;
  background:transparent!important;box-shadow:none!important;
}
.up-rank-shell .up-rank-summary article:first-child{border-left:0!important}
.up-rank-shell .up-rank-summary article::before,.up-rank-shell .up-rank-summary article::after{display:none!important}
.up-rank-shell .up-rank-summary article>span{font-size:11px;letter-spacing:.04em;color:var(--ur-muted);font-weight:700}
.up-rank-shell .up-rank-summary article>strong{
  font-size:21px;font-weight:800;color:var(--ur-ink);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;margin:3px 0 1px;
}
.up-rank-shell .up-rank-summary article>small{font-size:11px;color:var(--ur-muted)}
@media (max-width:760px){.up-rank-shell .up-rank-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.up-rank-shell .up-rank-summary article:nth-child(-n+2){border-bottom:1px solid var(--ur-line)!important}
.up-rank-shell .up-rank-summary article:nth-child(odd){border-left:0!important}}
/* 마감 카운트다운 · 1시간 미만이면 색이 바뀝니다. */
.ur-deadline-card #upRankCountdown{
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;
}
.ur-deadline-card.is-soon #upRankCountdown{color:var(--ur-accent)}
.ur-deadline-card.is-over #upRankCountdown{color:var(--ur-out)}
/* 순위 카드 · 통과 구간은 밝게, 탈락 구간은 눌러서 경계를 만듭니다. */
.up-rank-shell .ur-board{column-gap:12px}
.up-rank-shell .ur-row{
  display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;
  padding:9px 12px;margin:0 0 6px;border:1px solid var(--ur-line);border-radius:11px;
  background:var(--ur-surface);text-decoration:none;color:inherit;
  break-inside:avoid;transition:border-color .15s,transform .15s;
}
.up-rank-shell .ur-row:hover{border-color:var(--ur-accent);transform:translateY(-1px)}
.up-rank-shell .ur-rank b{
  font-size:19px;font-weight:800;color:var(--ur-ink);letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.up-rank-shell .ur-name strong{font-size:13px;font-weight:700}
.up-rank-shell .ur-name small{font-size:11px;color:var(--ur-muted)}
.up-rank-shell .ur-up b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
/* 1~3위 · 메달 색은 왼쪽 얇은 띠 하나로만 표현합니다. */
.up-rank-shell .ur-row.is-top{border-left-width:3px}
.up-rank-shell .ur-row.rank-1{border-left-color:#d4a017}
.up-rank-shell .ur-row.rank-2{border-left-color:#9aa3ad}
.up-rank-shell .ur-row.rank-3{border-left-color:#b3763f}
/* 커트라인 · 이 화면의 signature.
   통과선 아래는 표면을 캔버스색으로 낮추고 흐리게 해 한눈에 갈립니다. */
.up-rank-shell .ur-row.is-cutline{
  border-color:var(--ur-pass);
  box-shadow:inset 0 -2px 0 var(--ur-pass);
}
.up-rank-shell .ur-row.is-out{
  background:var(--ur-canvas);opacity:.62;
}
.up-rank-shell .ur-row.is-out:hover{opacity:1}
.up-rank-shell .ur-gap.in{color:var(--ur-pass);font-weight:700}
.up-rank-shell .ur-gap.out{color:var(--ur-out);font-weight:700}
/* 게시글 탭 · 헤더 바로 아래에서 조용히 구분만 합니다. */
.up-rank-shell .up-rank-board-tabs{border-bottom:1px solid var(--ur-line);padding-bottom:8px;margin-bottom:12px}
@media (prefers-reduced-motion:reduce){.up-rank-shell .ur-row{transition:none}
.up-rank-shell .ur-row:hover{transform:none}}
/* ============================================================
   v2249 · 업 순위 레이아웃 재정리
   문제: 목록에 닿기까지 9개의 띠를 지나야 하고, 각 띠가 상자였습니다.
   해결: 상자를 없애고 띠를 3개로 합칩니다. 헤더 / 도구줄 / 목록.
   ============================================================ */
/* --- 1. 헤더: 눈썹 문구와 설명은 제목과 중복이라 지웁니다 --- */
.up-rank-shell .up-rank-head .eyebrow{display:none}
.up-rank-shell .up-rank-head #upRankDisplayDescription{
  font-size:12px;color:var(--ur-muted);margin:4px 0 0;
}
.up-rank-shell .up-rank-head h1{
  font-size:26px;font-weight:800;letter-spacing:-.03em;margin:0;color:var(--ur-ink);
}
.up-rank-shell .up-rank-head{
  align-items:flex-end;padding-bottom:14px;margin-bottom:0;
  border:0;background:transparent;box-shadow:none;
}
.up-rank-shell .up-rank-head-actions a,.up-rank-shell .up-rank-head-actions button{
  border:1px solid var(--ur-line);background:transparent;color:var(--ur-muted);
  border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600;box-shadow:none;
}
.up-rank-shell .up-rank-head-actions a:hover,.up-rank-shell .up-rank-head-actions button:hover{border-color:var(--ur-accent);color:var(--ur-accent)}
/* --- 2. 탭: 알약 대신 밑줄. 문서 안의 탭처럼 조용하게 --- */
.up-rank-shell .up-rank-board-tabs{
  gap:2px;margin:0 0 14px;padding:0;
  border-bottom:1px solid var(--ur-line);
}
.up-rank-shell .up-rank-board-tab{
  border:0;background:transparent;border-radius:0;
  padding:9px 14px;margin-bottom:-1px;
  border-bottom:2px solid transparent;
  color:var(--ur-muted);font-size:13px;font-weight:700;
}
.up-rank-shell .up-rank-board-tab:hover{color:var(--ur-ink);background:transparent}
.up-rank-shell .up-rank-board-tab.is-active{
  background:transparent;color:var(--ur-ink);
  border-bottom-color:var(--ur-accent);
}
/* --- 3. 요약: 상자 4개 → 구분선으로 나뉜 한 줄 텍스트 --- */
.up-rank-shell .up-rank-summary{
  display:flex!important;flex-wrap:wrap;align-items:baseline;
  gap:0!important;grid-template-columns:none!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  padding:0;margin:0 0 16px;
}
.up-rank-shell .up-rank-summary article{
  display:flex;align-items:baseline;gap:6px;
  min-height:0!important;padding:0 16px 0 0!important;margin-right:16px;
  border:0!important;border-right:1px solid var(--ur-line)!important;
  border-radius:0!important;background:transparent!important;box-shadow:none!important;
}
.up-rank-shell .up-rank-summary article:last-child{border-right:0!important;margin-right:0}
.up-rank-shell .up-rank-summary article>span{
  font-size:12px;font-weight:600;color:var(--ur-muted);letter-spacing:0;
}
.up-rank-shell .up-rank-summary article>strong{
  font-size:16px;font-weight:800;color:var(--ur-ink);margin:0;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
/* 부제는 값과 중복이라 화면에서 감춥니다 (읽기 도구에는 남습니다). */
.up-rank-shell .up-rank-summary article>small{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;
}
/* --- 4. 순위 패널: 바깥 상자를 없애고 목록이 바로 보이게 --- */
.up-rank-shell .up-rank-panel{
  border:0!important;background:transparent!important;
  box-shadow:none!important;padding:0!important;
}
.up-rank-shell .up-rank-panel-head{margin-bottom:10px}
.up-rank-shell .up-rank-panel-head>div>span,.up-rank-shell .up-rank-panel-head>div>p{display:none}
.up-rank-shell .up-rank-panel-head h2{font-size:15px;font-weight:800;margin:0;letter-spacing:-.02em}
/* --- 5. 도구줄: 검색 · 필터 · 정렬을 한 줄로 --- */
.up-rank-shell .up-rank-controls{gap:8px;margin:0 0 8px}
.up-rank-shell .up-rank-search{
  border:1px solid var(--ur-line);border-radius:9px;background:var(--ur-surface);
  padding:9px 12px;font-size:13px;box-shadow:none;
}
.up-rank-shell .up-rank-search:focus{outline:2px solid var(--ur-accent);outline-offset:-1px}
.up-rank-shell .up-rank-sort-button,.up-rank-shell .up-rank-refresh{
  border:1px solid var(--ur-line);background:transparent;color:var(--ur-muted);
  border-radius:9px;padding:9px 12px;font-size:12px;font-weight:700;box-shadow:none;
}
.up-rank-shell .up-rank-filterbar{gap:4px;margin:0 0 8px;padding:0;border:0;background:transparent}
.up-rank-shell .up-rank-filterbar button{
  border:1px solid transparent;background:transparent;color:var(--ur-muted);
  border-radius:7px;padding:6px 10px;font-size:12px;font-weight:700;box-shadow:none;
}
.up-rank-shell .up-rank-filterbar button:hover{background:var(--ur-canvas);color:var(--ur-ink)}
.up-rank-shell .up-rank-filterbar button.active{
  background:var(--ur-canvas);border-color:var(--ur-line);color:var(--ur-ink);
}
.up-rank-shell .up-rank-filterbar button span{color:var(--ur-muted);font-variant-numeric:tabular-nums}
.up-rank-shell .up-rank-filterbar button.active span{color:var(--ur-accent)}
/* 출처 줄은 확인용 정보라 가장 작게 내립니다. */
.up-rank-shell .up-rank-source{
  border:0;background:transparent;padding:0;margin:0 0 14px;
  font-size:11px;color:var(--ur-muted);
}
.up-rank-shell .up-rank-source b{font-weight:600;color:var(--ur-muted)}
/* --- 6. CREW WATCH: 초록 테두리 상자 → 조용한 칩 --- */
.up-rank-shell .up-rank-crew-pins{
  border:0!important;background:transparent!important;box-shadow:none!important;
  padding:0!important;margin:0 0 14px;
}
.up-rank-shell .up-rank-crew-pins-head span{display:none}
.up-rank-shell .up-rank-crew-pins-head strong{font-size:12px;font-weight:700;color:var(--ur-muted)}
.up-rank-shell .up-rank-crew-pins-head small{font-size:11px;color:var(--ur-muted)}
.up-rank-shell .up-rank-crew-pin-list>*{
  border:1px solid var(--ur-line)!important;background:var(--ur-surface)!important;
  border-radius:9px!important;box-shadow:none!important;padding:8px 11px!important;
}
.up-rank-shell .up-rank-crew-pin-list>*:hover{border-color:var(--ur-accent)!important}
/* --- 7. 목록: 3열은 4위·46위·88위가 나란히 놓여 읽기 어렵습니다. 한 줄로 되돌립니다. --- */
.up-rank-shell .ur-board{column-count:1!important;column-gap:0!important}
.up-rank-shell .ur-row{
  grid-template-columns:52px minmax(0,1fr) auto;
  padding:10px 14px;margin:0 0 5px;border-radius:10px;
}
.up-rank-shell .ur-rank b{font-size:18px}
.up-rank-shell .ur-up b{font-size:16px}
/* 넓은 화면에서는 목록 폭만 제한해 한 줄이 지나치게 길어지지 않게 합니다. */
@media (min-width:1100px){.up-rank-shell .ur-board-wrap{max-width:900px}
.up-rank-shell .up-rank-controls{max-width:900px}}
/* ============================================================
   v2250 · 피드백 반영
   1) 목록 오른쪽 빈 공간 제거  2) 제목 보강  3) 요약 압축
   4) 탭 가시성 확보  5) 크루 가로 스크롤 제거  6) 커트라인 흐림 제거
   ============================================================ */
/* --- 1. 목록 폭 제한을 없애 오른쪽 여백을 제거합니다 --- */
.up-rank-shell .ur-board-wrap,.up-rank-shell .up-rank-controls{max-width:none}
@media (min-width:1100px){.up-rank-shell .ur-board-wrap,.up-rank-shell .up-rank-controls{max-width:none}}
/* --- 2. 제목: 크기를 키우고 실시간 표시를 붙여 존재감을 줍니다 --- */
.up-rank-shell .up-rank-head{padding:4px 2px 16px}
.up-rank-shell .up-rank-head h1{
  font-size:34px;font-weight:800;letter-spacing:-.035em;line-height:1.15;
}
.up-rank-shell .up-rank-head h1::after{
  content:'';display:inline-block;width:7px;height:7px;margin-left:10px;
  vertical-align:middle;border-radius:50%;background:var(--ur-accent);
  animation:urLivePulse 2s ease-in-out infinite;
}
@keyframes urLivePulse{0%,100%{opacity:1}50%{opacity:.25}}
.up-rank-shell .up-rank-head #upRankDisplayDescription{font-size:13px;margin-top:6px}
/* --- 3. 요약: 세로 여백을 줄이고 한 줄에 붙입니다 --- */
.up-rank-shell .up-rank-summary{margin:0 0 18px;padding:0}
.up-rank-shell .up-rank-summary article{
  padding:0 14px 0 0!important;margin-right:14px;
  flex-direction:row;align-items:baseline;gap:7px;
}
.up-rank-shell .up-rank-summary article>span{font-size:11px;font-weight:600}
.up-rank-shell .up-rank-summary article>strong{font-size:15px;line-height:1.2}
/* 마감이 설정되지 않은 게시글에서는 '마감까지 -' 를 아예 감춥니다. */
.up-rank-shell .up-rank-summary article.ur-deadline-card[hidden]{display:none!important}
/* --- 4. 탭: 활성 탭을 확실히 읽히게 --- */
.up-rank-shell .up-rank-board-tabs{gap:0;margin:0 0 18px}
.up-rank-shell .up-rank-board-tab{
  padding:10px 18px;font-size:15px;font-weight:700;
  border-bottom-width:3px;color:var(--ur-muted);
}
.up-rank-shell .up-rank-board-tab:hover{color:var(--ur-ink);background:var(--ur-canvas)}
.up-rank-shell .up-rank-board-tab.is-active{
  color:var(--ur-accent);font-weight:800;
  border-bottom-color:var(--ur-accent);background:transparent;
}
/* --- 5. 크루 순위: 가로 스크롤 대신 줄바꿈으로 전부 보이게 --- */
.up-rank-shell .up-rank-crew-pin-list{
  display:flex;flex-wrap:wrap;overflow:visible;gap:6px;
}
.up-rank-shell .up-rank-crew-pin-list>*{flex:0 1 auto;padding:7px 10px!important}
.up-rank-shell .up-rank-crew-pins{margin-bottom:18px}
/* --- 6. 커트라인 아래를 흐리게 하지 않습니다. 구분선과 색으로만 알립니다. --- */
.up-rank-shell .ur-row.is-out{opacity:1;background:var(--ur-surface)}
.up-rank-shell .ur-row.is-out .ur-rank b,.up-rank-shell .ur-row.is-out .ur-up b{color:var(--ur-muted)}
.up-rank-shell .ur-row.is-cutline{
  border-color:var(--ur-pass);box-shadow:none;
  border-bottom-width:2px;border-bottom-color:var(--ur-pass);
}
/* ============================================================
   v2250 · 실사용 피드백 반영
   1) 목록 오른쪽 빈 공간  2) 허전한 제목  3) 요약이 차지하는 높이
   4) 눈에 안 띄는 탭      5) 크루 가로 스크롤  6) 커트라인 아래 흐림
   ============================================================ */
/* 1. 목록 폭 제한을 없앱니다. 오른쪽에 빈 공간이 남는 게 더 어색합니다. */
@media (min-width:1100px){.up-rank-shell .ur-board-wrap{max-width:none}
.up-rank-shell .up-rank-controls{max-width:none}}
/* 2. 제목 옆에 지금 상태를 붙여 허전함을 없앱니다.
      장식이 아니라 "지금 몇 명이 겨루는 중인지"라는 실제 정보입니다. */
.up-rank-shell .up-rank-head h1{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:30px;
}
.up-rank-shell .up-rank-head h1::after{
  content:attr(data-live);
  font-size:11px;font-weight:800;letter-spacing:.06em;
  color:var(--ur-accent);border:1px solid currentColor;
  border-radius:999px;padding:3px 9px;white-space:nowrap;
}
.up-rank-shell .up-rank-head h1:not([data-live])::after,.up-rank-shell .up-rank-head h1[data-live=""]::after{display:none}
/* 3. 요약: 세로로 쌓이던 것을 한 줄로 눕혀 높이를 줄입니다. */
.up-rank-shell .up-rank-summary{margin:0 0 12px;padding:0}
.up-rank-shell .up-rank-summary article{
  flex-direction:row!important;align-items:baseline!important;
  justify-content:flex-start!important;
  padding:0 14px 0 0!important;margin-right:14px;
}
.up-rank-shell .up-rank-summary article>span{font-size:11px;white-space:nowrap}
.up-rank-shell .up-rank-summary article>strong{font-size:15px}
/* 마감이 없는 게시글에서는 카드가 아예 사라지게 합니다.
   display:flex가 hidden 속성을 덮어써서 '마감까지 -'가 남아 있었습니다. */
.up-rank-shell .up-rank-summary article[hidden]{display:none!important}
/* 4. 탭: 밑줄만으로는 약했습니다. 글자를 키우고 선을 굵게, 활성 배경을 얹습니다. */
.up-rank-shell .up-rank-board-tabs{gap:4px;margin:0 0 16px}
.up-rank-shell .up-rank-board-tab{
  font-size:15px;font-weight:800;padding:10px 16px;
  color:var(--ur-muted);border-bottom-width:3px;border-radius:8px 8px 0 0;
}
.up-rank-shell .up-rank-board-tab:hover{color:var(--ur-ink);background:var(--ur-canvas)}
.up-rank-shell .up-rank-board-tab.is-active{
  color:var(--ur-accent);background:var(--ur-canvas);
  border-bottom-color:var(--ur-accent);
}
/* 5. 크루: 가로 스크롤 대신 줄바꿈. 12명이면 두 줄에 다 들어옵니다. */
.up-rank-shell .up-rank-crew-pin-list{
  display:flex!important;flex-wrap:wrap!important;gap:6px!important;
  overflow:visible!important;scroll-snap-type:none!important;
}
.up-rank-shell .up-rank-crew-pin-list::-webkit-scrollbar{display:none}
.up-rank-shell .up-rank-crew-pin-list>*{
  flex:0 0 auto!important;min-width:0!important;width:auto!important;
  scroll-snap-align:none!important;
}
/* 스크롤이 사라졌으므로 아래 스크롤바 장식도 함께 감춥니다. */
.up-rank-shell .up-rank-crew-pins [class*="scroll"]{display:none!important}
/* 6. 커트라인 아래 흐림 제거.
      통과 여부는 커트라인 선 하나로 충분하고, 흐림은 읽기를 방해합니다. */
.up-rank-shell .ur-row.is-out{
  background:var(--ur-surface);opacity:1;filter:none;
}
/* 대신 왼쪽에 얇은 회색 띠로만 조용히 구분합니다. */
.up-rank-shell .ur-row.is-out{border-left:3px solid var(--ur-line)}
.up-rank-shell .ur-row.is-cutline{
  border-color:var(--ur-pass);box-shadow:inset 0 -2px 0 var(--ur-pass);
}
/* ============================================================
   v2251 · 목록까지 도달하는 높이 줄이기
   제목부터 검색창까지 화면의 절반을 쓰고 있었습니다.
   실제 정보를 주지 않는 줄을 걷어내고, 남길 것은 한 줄로 눕힙니다.
   ============================================================ */
/* UP 옆의 차이값(+290 · −10)은 증가율처럼 보여 오해를 만듭니다.
   이 화면에서 궁금한 변화는 "몇 계단 올랐나"이므로 순위 변동만 남깁니다. */
.up-rank-shell .ur-gap{display:none!important}
.up-rank-shell .ur-move{
  font-size:11px;font-weight:800;line-height:1;margin-left:5px;
  font-variant-numeric:tabular-nums;
}
.up-rank-shell .ur-move.up{color:#e0245e}
.up-rank-shell .ur-move.down{color:#3b82f6}
/* 제목 · 설명문은 제목과 중복이라 접습니다. */
.up-rank-shell .up-rank-head{padding:0 0 10px!important;gap:10px!important}
.up-rank-shell .up-rank-head h1{font-size:22px!important}
.up-rank-shell .up-rank-head h1::after{font-size:10px;padding:2px 7px}
.up-rank-shell .up-rank-head #upRankDisplayDescription{display:none}
.up-rank-shell .up-rank-head-actions a,.up-rank-shell .up-rank-head-actions button{padding:5px 10px;font-size:11px}
/* 탭 */
.up-rank-shell .up-rank-board-tabs{margin:0 0 10px!important}
.up-rank-shell .up-rank-board-tab{font-size:14px!important;padding:7px 13px!important}
/* 요약 · 한 줄로 눕히고 값 크기를 본문 수준으로 낮춥니다. */
.up-rank-shell .up-rank-summary{
  margin:0 0 10px!important;padding:8px 0!important;
  border-top:1px solid var(--ur-line)!important;
  border-bottom:1px solid var(--ur-line)!important;
  row-gap:4px!important;
}
.up-rank-shell .up-rank-summary article{
  padding:0 12px 0 0!important;margin-right:12px!important;min-height:0!important;
}
.up-rank-shell .up-rank-summary article>span{font-size:11px!important}
.up-rank-shell .up-rank-summary article>strong{font-size:14px!important;line-height:1.2!important}
/* "현재 순위" 제목 텍스트만 접고, 갱신 버튼과 상태 문구는 남깁니다.
   줄 전체를 숨기면 [지금 갱신]까지 사라집니다. */
.up-rank-shell .up-rank-panel-head{
  margin:0 0 6px!important;padding:0!important;min-height:0!important;
  justify-content:flex-end!important;
}
.up-rank-shell .up-rank-panel-head>div:first-child{display:none!important}
.up-rank-shell .up-rank-controls{
  display:flex!important;align-items:center;gap:6px;margin:0 0 6px!important;
}
.up-rank-shell .up-rank-search{flex:1 1 auto;padding:7px 11px!important;font-size:13px!important}
.up-rank-shell .up-rank-sort-button{flex:0 0 auto;padding:7px 11px!important}
/* 갱신 버튼과 상태 문구는 오른쪽 정렬로 한 줄에 붙입니다. */
.up-rank-shell .up-rank-live-tools{
  display:flex;align-items:center;gap:6px;
}
.up-rank-shell .up-rank-refresh{padding:7px 11px!important;white-space:nowrap}
.up-rank-shell .up-rank-status{font-size:11px;color:var(--ur-muted)}
/* 필터 · 출처 */
.up-rank-shell .up-rank-filterbar{margin:0 0 6px!important}
.up-rank-shell .up-rank-filterbar button{padding:5px 9px!important;font-size:12px!important}
.up-rank-shell .up-rank-source{margin:0 0 8px!important;font-size:10px!important;opacity:.75}
/* 크루 칩 · 칩을 작게 해 두 줄이 한 줄에 가깝게 보이도록 */
.up-rank-shell .up-rank-crew-pins{margin:0 0 8px!important}
.up-rank-shell .up-rank-crew-pins-head{margin-bottom:5px}
.up-rank-shell .up-rank-crew-pins-head small{display:none}
.up-rank-shell .up-rank-crew-pin-list>*{padding:5px 8px!important;font-size:11px!important;gap:5px!important}
.up-rank-shell .up-rank-crew-pin-list img{width:20px!important;height:20px!important}
/* TOP 3 · 별도 제목줄을 접고 카드만 남깁니다. */
.up-rank-shell .up-rank-podium .up-rank-section-head{display:none!important}
.up-rank-shell .up-rank-podium{margin:0 0 8px!important;padding:0!important;border:0!important;background:transparent!important}
.up-rank-shell .up-rank-podium-list>*{padding:9px 12px!important}
/* ============================================================
   v2253 · 짧은 진드기 미리보기 + 전체 순위 펼치기
   - 요약 바 압축 / 갱신 우측 상단 소형화
   - 진드기 미리보기 카드 강화
   - 커트라인 강조 리디자인
   - 전체 순위 접기/펼치기
   ============================================================ */
.up-rank-shell .up-rank-summary{
  display:flex !important;flex-wrap:wrap;align-items:center;gap:10px !important;
  margin:0 0 16px;padding:0;border:0 !important;background:transparent !important;
}
.up-rank-shell .up-rank-summary article{
  display:flex;align-items:baseline;gap:6px;min-height:0 !important;
  padding:0 12px 0 0 !important;margin:0 12px 0 0;border:0 !important;
  border-right:1px solid var(--ur-line) !important;background:transparent !important;
  border-radius:0 !important;box-shadow:none !important;
}
.up-rank-shell .up-rank-summary article > span{font-size:11px;font-weight:700;color:var(--ur-muted)}
.up-rank-shell .up-rank-summary article > strong{font-size:14px;font-weight:800;letter-spacing:-.02em;color:var(--ur-ink)}
.up-rank-shell .up-rank-summary article > small{display:none}
.up-rank-shell .up-rank-summary .ur-deadline-card{
  border:1px solid var(--ur-line) !important;border-radius:12px !important;background:var(--ur-surface) !important;
  padding:9px 12px !important;margin:0;border-right:0 !important;display:grid;gap:2px;align-items:start;
}
.up-rank-shell .up-rank-summary .ur-deadline-card{margin-left:auto}
.up-rank-shell .up-rank-summary .ur-deadline-card > span{font-size:10px;color:var(--ur-muted)}
.up-rank-shell .up-rank-summary .ur-deadline-card > strong{font-size:13px}
.up-rank-shell .up-rank-summary .ur-deadline-card > small{display:block;font-size:10px;color:var(--ur-muted)}
.up-rank-shell .up-rank-crew-pins{margin:2px 0 14px}
.up-rank-shell .up-rank-crew-pins-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin:0 0 10px;
}
.up-rank-shell .up-rank-crew-pins-head span{display:block;font-size:10px;letter-spacing:.14em;color:var(--ur-muted)}
.up-rank-shell .up-rank-crew-pins-head strong{font-size:20px;font-weight:800;color:var(--ur-ink)}
.up-rank-shell .up-rank-crew-pins-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.up-rank-shell .up-rank-crew-pins-tools small{font-size:11px;color:var(--ur-muted)}
.up-rank-shell .up-rank-expand-button{
  border:1px solid var(--ur-line);background:var(--ur-surface);color:var(--ur-ink);
  border-radius:999px;padding:9px 14px;font-size:12px;font-weight:800;cursor:pointer;
  transition:border-color .18s ease, transform .18s ease, color .18s ease;
}
.up-rank-shell .up-rank-expand-button:hover{border-color:var(--ur-accent);color:var(--ur-accent);transform:translateY(-1px)}
.up-rank-shell .up-rank-expand-button.is-open{border-color:var(--ur-accent);color:var(--ur-accent)}
.up-rank-shell .up-rank-crew-pin-list{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;
}
.up-rank-shell .up-rank-pin-card{
  display:flex;align-items:center;gap:12px;padding:10px 12px !important;border-radius:14px !important;
}
.up-rank-shell .up-rank-pin-avatar{
  width:48px;height:48px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:var(--ur-canvas);flex:0 0 48px;border:1px solid var(--ur-line);
}
.up-rank-shell .up-rank-pin-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.up-rank-shell .up-rank-pin-avatar span{font-size:18px;font-weight:800;color:var(--ur-ink)}
.up-rank-shell .up-rank-pin-mainline{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px}
.up-rank-shell .up-rank-pin-mainline strong{font-size:18px;font-weight:800;color:var(--ur-ink);line-height:1.1}
.up-rank-shell .up-rank-pin-mainline span{font-size:13px;font-weight:700;color:var(--ur-muted)}
.up-rank-shell .up-rank-pin-mainline b{font-size:15px;font-weight:800;color:var(--ur-accent)}
.up-rank-shell .up-rank-panel.is-collapsed{
  max-height:0;opacity:0;overflow:hidden;pointer-events:none;margin:0 !important;padding:0 !important;
  transform:translateY(-6px);transition:max-height .32s ease, opacity .22s ease, transform .22s ease;
}
.up-rank-shell .up-rank-panel{transition:max-height .32s ease, opacity .22s ease, transform .22s ease}
.up-rank-shell .ur-cutline{
  display:flex;align-items:center;gap:12px;margin:10px 0 12px;padding:2px 0;
}
.up-rank-shell .ur-cutline-line{
  flex:1;height:1px;position:relative;background:linear-gradient(90deg, transparent, rgba(218, 43, 87, .6), transparent);
}
.up-rank-shell .ur-cutline-line::before{
  content:'';position:absolute;left:0;right:0;top:-6px;height:6px;
  background:repeating-linear-gradient(-45deg, transparent 0 8px, rgba(218,43,87,.18) 8px 16px);
  clip-path:polygon(0 100%,4% 0,8% 100%,12% 0,16% 100%,20% 0,24% 100%,28% 0,32% 100%,36% 0,40% 100%,44% 0,48% 100%,52% 0,56% 100%,60% 0,64% 100%,68% 0,72% 100%,76% 0,80% 100%,84% 0,88% 100%,92% 0,96% 100%,100% 0,100% 100%,0 100%);
}
.up-rank-shell .ur-cutline-center{
  display:grid;place-items:center;min-width:132px;padding:10px 14px;border-radius:999px;
  border:1px solid rgba(218,43,87,.35);background:linear-gradient(180deg, rgba(218,43,87,.13), rgba(218,43,87,.05));
  box-shadow:0 10px 20px rgba(218,43,87,.12);
}
.up-rank-shell .ur-cutline-center b{font-size:22px;line-height:1;font-weight:900;color:var(--ur-accent);letter-spacing:-.04em}
.up-rank-shell .ur-cutline-center small{font-size:11px;color:var(--ur-muted);margin-top:4px}
.up-rank-shell .ur-row.is-cutline{border-color:rgba(218,43,87,.35);box-shadow:inset 0 -2px 0 var(--ur-accent)}
.up-rank-shell .ur-row.is-out{background:color-mix(in srgb, var(--ur-canvas) 88%, transparent);opacity:.84}
@media (max-width:900px){.up-rank-shell .up-rank-summary{gap:8px !important}
.up-rank-shell .up-rank-summary article{padding:0 10px 0 0 !important;margin-right:10px}
.up-rank-shell .up-rank-summary .ur-deadline-card{margin-left:0}
.up-rank-shell .up-rank-crew-pins-head{flex-direction:column;align-items:flex-start}
.up-rank-shell .up-rank-crew-pins-tools{justify-content:flex-start}
.up-rank-shell .up-rank-crew-pin-list{grid-template-columns:1fr}
.up-rank-shell .up-rank-pin-avatar{width:44px;height:44px;flex-basis:44px}
.up-rank-shell .up-rank-pin-mainline strong{font-size:16px}
.up-rank-shell .ur-cutline{gap:8px}
.up-rank-shell .ur-cutline-center{min-width:112px;padding:8px 12px}
.up-rank-shell .ur-cutline-center b{font-size:18px}}
/* ============================================================
   v2254 · compact scoreboard / dark mode repair
   ============================================================ */
/* theme variables must follow the actual html[data-theme] switch */
[data-theme="light"] .up-rank-shell,.up-rank-shell{
  --ur-bg:#f8f5f7;
  --ur-ink:#18141a;
  --ur-muted:#756b72;
  --ur-line:#e8e1e6;
  --ur-surface:#ffffff;
  --ur-surface-2:#f7f3f6;
  --ur-accent:#e51b5a;
  --ur-pass:#0f8c5a;
  --ur-out:#8c8389;
}
html[data-theme="dark"] .up-rank-shell,html.dark .up-rank-shell{
  --ur-bg:#080b12;
  --ur-ink:#f4f5f7;
  --ur-muted:#9097a3;
  --ur-line:#202735;
  --ur-surface:#0e131c;
  --ur-surface-2:#111824;
  --ur-accent:#ff4f82;
  --ur-pass:#55d397;
  --ur-out:#6f7784;
}
html[data-theme="dark"] .up-rank-page,html.dark .up-rank-page{
  background:#080b12 !important;
  color:var(--ur-ink) !important;
}
html[data-theme="dark"] .up-rank-shell,html.dark .up-rank-shell{color:var(--ur-ink)}
/* title: remove the duplicated competition pill and use a clean leaderboard header */
.up-rank-shell .up-rank-head{
  align-items:center !important;
  padding:4px 0 12px !important;
  border:0 !important;
}
.up-rank-shell .up-rank-head>div:first-child{
  position:relative;padding-left:14px;
}
.up-rank-shell .up-rank-head>div:first-child::before{
  content:'';position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:999px;background:var(--ur-accent);
}
.up-rank-shell .up-rank-head .eyebrow{
  display:block !important;margin:0 0 3px !important;font-size:10px !important;line-height:1.2;
  letter-spacing:.15em;color:var(--ur-accent) !important;font-weight:800 !important;
}
.up-rank-shell .up-rank-head h1{
  display:block !important;margin:0 !important;font-size:27px !important;line-height:1.08 !important;
  font-weight:900 !important;letter-spacing:-.045em !important;color:var(--ur-ink) !important;
}
.up-rank-shell .up-rank-head h1::after{display:none !important;content:none !important}
.up-rank-shell .up-rank-head #upRankDisplayDescription{display:none !important}
.up-rank-shell .up-rank-head-actions{align-items:center;gap:7px}
.up-rank-shell .ur-mini-updated{
  display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:0;background:transparent;
  color:var(--ur-muted);font-size:10px;font-weight:650;white-space:nowrap;
}
.up-rank-shell .ur-mini-updated b{color:var(--ur-ink);font-size:10px;font-variant-numeric:tabular-nums}
/* board tabs: no full-width horizontal rule */
.up-rank-shell .up-rank-board-tabs{
  width:max-content;max-width:100%;border-bottom:0 !important;padding:0 !important;margin:0 0 12px !important;gap:6px !important;
}
.up-rank-shell .up-rank-board-tab{
  border:0 !important;border-radius:8px !important;padding:7px 12px !important;background:transparent !important;
  color:var(--ur-muted) !important;font-size:13px !important;font-weight:800 !important;
}
.up-rank-shell .up-rank-board-tab.is-active{
  color:var(--ur-accent) !important;background:color-mix(in srgb,var(--ur-accent) 9%,transparent) !important;
  box-shadow:inset 0 -2px 0 var(--ur-accent);
}
/* compact reference-style metric tiles; no separators */
.up-rank-shell .up-rank-summary{
  display:grid !important;grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:8px !important;margin:0 0 12px !important;padding:0 !important;
  border:0 !important;background:transparent !important;overflow:visible !important;
}
.up-rank-shell .up-rank-summary article{
  display:flex !important;flex-direction:column !important;align-items:flex-start !important;justify-content:center !important;
  min-width:0;min-height:64px !important;padding:10px 12px !important;margin:0 !important;
  border:1px solid var(--ur-line) !important;border-radius:10px !important;background:var(--ur-surface) !important;
  box-shadow:none !important;
}
.up-rank-shell .up-rank-summary article[hidden]{display:none !important}
.up-rank-shell .up-rank-summary article>span{font-size:10px !important;color:var(--ur-muted) !important;font-weight:750 !important;letter-spacing:.01em !important}
.up-rank-shell .up-rank-summary article>strong{
  margin:4px 0 0 !important;font-size:17px !important;line-height:1.1 !important;color:var(--ur-ink) !important;
  font-weight:850 !important;letter-spacing:-.035em !important;font-variant-numeric:tabular-nums;
}
.up-rank-shell .up-rank-summary article>small{display:none !important}
.up-rank-shell .up-rank-summary .ur-deadline-card{margin:0 !important}
/* jindegi snapshot: return to the original compact size, only the group label stays removed */
.up-rank-shell .up-rank-crew-pins{margin:0 0 10px !important}
.up-rank-shell .up-rank-crew-pins-head{margin:0 0 7px !important;align-items:center !important}
.up-rank-shell .up-rank-crew-pins-head span{font-size:9px !important;letter-spacing:.14em;color:var(--ur-muted) !important}
.up-rank-shell .up-rank-crew-pins-head strong{font-size:17px !important;color:var(--ur-ink) !important}
.up-rank-shell .up-rank-crew-pin-list{
  display:flex !important;flex-wrap:wrap !important;gap:6px !important;overflow:visible !important;
}
.up-rank-shell .up-rank-pin-card{
  min-width:0 !important;max-width:none !important;width:auto !important;flex:0 0 auto !important;
  display:flex !important;align-items:center !important;gap:7px !important;
  padding:6px 9px !important;border:1px solid var(--ur-line) !important;border-radius:10px !important;
  background:var(--ur-surface) !important;box-shadow:none !important;
}
.up-rank-shell .up-rank-pin-avatar{
  width:24px !important;height:24px !important;flex:0 0 24px !important;border-radius:50% !important;
  overflow:hidden;border:0 !important;background:var(--ur-surface-2) !important;
}
.up-rank-shell .up-rank-pin-avatar img{width:24px !important;height:24px !important;object-fit:cover !important;border-radius:50% !important}
.up-rank-shell .up-rank-pin-avatar span{font-size:10px !important}
.up-rank-shell .up-rank-pin-mainline{display:flex !important;align-items:baseline !important;gap:5px !important;white-space:nowrap}
.up-rank-shell .up-rank-pin-mainline strong{font-size:13px !important;color:var(--ur-ink) !important;font-weight:850 !important}
.up-rank-shell .up-rank-pin-mainline span{font-size:11px !important;color:var(--ur-muted) !important;font-weight:700 !important}
.up-rank-shell .up-rank-pin-mainline b{font-size:12px !important;color:var(--ur-pass) !important;font-weight:850 !important}
.up-rank-shell .up-rank-pin-card.is-jinho,.up-rank-shell .up-rank-pin-card.is-jindegi{background:var(--ur-surface) !important;border-color:var(--ur-line) !important;box-shadow:none !important}
/* dark mode: every visible uprank surface follows the navy reference, not the legacy green palette */
html[data-theme="dark"] .up-rank-shell .up-rank-head-actions a,html[data-theme="dark"] .up-rank-shell .up-rank-head-actions button,html.dark .up-rank-shell .up-rank-head-actions a,html.dark .up-rank-shell .up-rank-head-actions button,html[data-theme="dark"] .up-rank-shell .up-rank-search,html[data-theme="dark"] .up-rank-shell .up-rank-sort-button,html[data-theme="dark"] .up-rank-shell .up-rank-refresh,html.dark .up-rank-shell .up-rank-search,html.dark .up-rank-shell .up-rank-sort-button,html.dark .up-rank-shell .up-rank-refresh{
  background:var(--ur-surface) !important;border-color:var(--ur-line) !important;color:var(--ur-ink) !important;
}
html[data-theme="dark"] .up-rank-shell .up-rank-filterbar button,html.dark .up-rank-shell .up-rank-filterbar button{background:transparent !important;border-color:transparent !important;color:var(--ur-muted) !important}
html[data-theme="dark"] .up-rank-shell .up-rank-filterbar button.active,html.dark .up-rank-shell .up-rank-filterbar button.active{background:#171e2b !important;border-color:#2b3445 !important;color:var(--ur-ink) !important}
html[data-theme="dark"] .up-rank-shell .up-rank-filterbar button span,html.dark .up-rank-shell .up-rank-filterbar button span{background:#1b2331 !important;color:#a8afba !important}
html[data-theme="dark"] .up-rank-shell .up-rank-filterbar button.active span,html.dark .up-rank-shell .up-rank-filterbar button.active span{background:var(--ur-accent) !important;color:#fff !important}
html[data-theme="dark"] .up-rank-shell .up-rank-source,html.dark .up-rank-shell .up-rank-source{color:var(--ur-muted) !important;border-color:transparent !important;background:transparent !important}
html[data-theme="dark"] .up-rank-shell .ur-row,html.dark .up-rank-shell .ur-row{background:var(--ur-surface) !important;border-color:var(--ur-line) !important;color:var(--ur-ink) !important}
html[data-theme="dark"] .up-rank-shell .ur-row:hover,html.dark .up-rank-shell .ur-row:hover{background:#121925 !important;border-color:#354052 !important}
html[data-theme="dark"] .up-rank-shell .ur-board-head,html.dark .up-rank-shell .ur-board-head{color:var(--ur-muted) !important;border-color:var(--ur-line) !important}
html[data-theme="dark"] .up-rank-shell .up-rank-expand-button,html.dark .up-rank-shell .up-rank-expand-button{background:#111824 !important;border-color:#293244 !important;color:#e9edf3 !important}
/* cutline stays visible in both themes without making the list look like a warning screen */
html[data-theme="dark"] .up-rank-shell .ur-cutline-center,html.dark .up-rank-shell .ur-cutline-center{background:#15101a !important;border-color:rgba(255,79,130,.35) !important}
html[data-theme="dark"] .up-rank-shell .ur-cutline-line,html.dark .up-rank-shell .ur-cutline-line{background:linear-gradient(90deg,transparent,rgba(255,79,130,.62),transparent) !important}
@media (max-width:1100px){.up-rank-shell .up-rank-summary{grid-template-columns:repeat(3,minmax(0,1fr)) !important}}
@media (max-width:760px){.up-rank-shell .up-rank-head{align-items:flex-start !important}
.up-rank-shell .up-rank-head-actions{width:100%;justify-content:flex-start}
.up-rank-shell .up-rank-summary{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.up-rank-shell .up-rank-summary article{min-height:58px !important;padding:9px 10px !important}
.up-rank-shell .up-rank-summary article>strong{font-size:15px !important}
.up-rank-shell .up-rank-crew-pins-head{align-items:flex-start !important}}
/* ============================================================
   v2256 · 진드기 요약만 보기 = 방송 화면형 컴팩트 랭킹
   ============================================================ */
.up-rank-shell.is-summary-only .up-rank-crew-pins{
  margin:8px 0 0 !important;padding:0 !important;border:0 !important;background:transparent !important;
}
.up-rank-shell.is-summary-only .up-rank-crew-pins-head{
  margin:0 0 10px !important;align-items:center !important;
}
.up-rank-shell.is-summary-only .up-rank-crew-pins-head span{
  font-size:10px !important;letter-spacing:.18em !important;color:var(--ur-muted) !important;
}
.up-rank-shell.is-summary-only .up-rank-crew-pins-head strong{
  font-size:22px !important;letter-spacing:-.03em !important;color:var(--ur-ink) !important;
}
.up-rank-shell.is-summary-only .up-rank-crew-pins-tools small{display:none !important}
.up-rank-shell.is-summary-only .up-rank-expand-button{
  padding:10px 16px;border-radius:999px;background:rgba(8,15,32,.94);border:1px solid rgba(255,255,255,.16);color:#fff;
}
.up-rank-shell.is-summary-only .up-rank-crew-pin-list{
  display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 !important;
  border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,rgba(7,15,31,.96),rgba(5,10,22,.98));
  box-shadow:0 16px 34px rgba(0,0,0,.24);
}
.up-rank-shell.is-summary-only .up-rank-pin-card{
  min-height:68px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;
  padding:12px 16px !important;margin:0 !important;border:0 !important;border-right:1px solid rgba(255,255,255,.07) !important;
  border-bottom:1px solid rgba(255,255,255,.07) !important;border-radius:0 !important;background:transparent !important;box-shadow:none !important;
}
.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(3n){border-right:0 !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:nth-last-child(-n+3){border-bottom:0 !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:hover{background:rgba(255,255,255,.03) !important;border-color:rgba(255,255,255,.07) !important;transform:none !important}
.up-rank-shell.is-summary-only .up-rank-pin-avatar{
  width:34px;height:34px;flex-basis:34px;border-radius:50%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
}
.up-rank-shell.is-summary-only .up-rank-pin-mainline{
  display:grid !important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 10px;min-width:0;
}
.up-rank-shell.is-summary-only .up-rank-pin-mainline strong{
  grid-column:1;font-size:15px !important;font-weight:800;color:#f5f7ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.up-rank-shell.is-summary-only .up-rank-pin-mainline span{
  grid-column:1;font-size:12px !important;font-weight:700;color:#a3adc2;white-space:nowrap;
}
.up-rank-shell.is-summary-only .up-rank-pin-mainline b{
  grid-column:2;grid-row:1 / span 2;align-self:center;font-size:15px !important;font-weight:900;color:#73d78e;white-space:nowrap;
}
.up-rank-shell.is-summary-only .up-rank-pin-card.is-jinho .up-rank-pin-mainline b{color:#ff7f9f}
.up-rank-shell.is-summary-only .up-rank-panel.is-collapsed{display:none !important;max-height:0 !important;opacity:0 !important;overflow:hidden !important}
/* 펼친 상태에서도 요약은 너무 카드스럽지 않게 유지 */
.up-rank-shell .up-rank-crew-pin-list{
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.up-rank-shell .up-rank-pin-card{
  background:var(--ur-surface) !important;
}
@media (max-width:1180px){.up-rank-shell.is-summary-only .up-rank-crew-pin-list{grid-template-columns:repeat(2,minmax(0,1fr));}
.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(3n){border-right:1px solid rgba(255,255,255,.07) !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(2n){border-right:0 !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:nth-last-child(-n+3){border-bottom:1px solid rgba(255,255,255,.07) !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:nth-last-child(-n+2){border-bottom:0 !important}}
@media (max-width:760px){.up-rank-shell.is-summary-only .up-rank-crew-pins-head strong{font-size:18px !important}
.up-rank-shell.is-summary-only .up-rank-crew-pin-list{grid-template-columns:1fr;}
.up-rank-shell.is-summary-only .up-rank-pin-card,.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(2n),.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(3n){border-right:0 !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:not(:last-child){border-bottom:1px solid rgba(255,255,255,.07) !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:last-child{border-bottom:0 !important}}
/* ============================================================
   v2257 · 요약이 통째로 사라지는 문제 수정
   패널 자체는 유지하고 상세 순위 UI만 숨깁니다.
   ============================================================ */
.up-rank-shell.is-summary-only .up-rank-panel,.up-rank-shell.is-summary-only .up-rank-panel.is-collapsed{
  display:block !important;
  max-height:none !important;
  opacity:1 !important;
  overflow:visible !important;
  pointer-events:auto !important;
  transform:none !important;
  visibility:visible !important;
}
.up-rank-shell.is-summary-only .up-rank-panel-head,.up-rank-shell.is-summary-only .up-rank-controls,.up-rank-shell.is-summary-only .up-rank-filterbar,.up-rank-shell.is-summary-only .up-rank-source,.up-rank-shell.is-summary-only .up-rank-podium,.up-rank-shell.is-summary-only .ur-board-wrap{
  display:none !important;
}
.up-rank-shell.is-summary-only .up-rank-crew-pins{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
.up-rank-shell .up-rank-crew-empty{
  grid-column:1/-1;
  min-height:88px;
  display:grid;
  place-items:center;
  padding:18px;
  border:1px solid var(--ur-line);
  border-radius:14px;
  background:var(--ur-surface);
  color:var(--ur-muted);
  font-size:13px;
  font-weight:700;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-crew-pins,html.dark .up-rank-shell.is-summary-only .up-rank-crew-pins{
  color:var(--ur-ink) !important;
}
/* ============================================================
   v2258 · summary-only theme isolation
   Light mode must never inherit the dark broadcast palette.
   ============================================================ */
/* LIGHT / default */
.up-rank-shell.is-summary-only .up-rank-crew-pin-list{
  border-color:var(--ur-line) !important;
  background:var(--ur-surface) !important;
  box-shadow:0 12px 28px rgba(32,20,28,.08) !important;
}
.up-rank-shell.is-summary-only .up-rank-pin-card{
  background:var(--ur-surface) !important;
  color:var(--ur-ink) !important;
  border-right-color:var(--ur-line) !important;
  border-bottom-color:var(--ur-line) !important;
}
.up-rank-shell.is-summary-only .up-rank-pin-card:hover{
  background:var(--ur-surface-2) !important;
  border-color:var(--ur-line) !important;
}
.up-rank-shell.is-summary-only .up-rank-pin-avatar{
  background:var(--ur-surface-2) !important;
  border-color:var(--ur-line) !important;
}
.up-rank-shell.is-summary-only .up-rank-pin-mainline strong{
  color:var(--ur-ink) !important;
}
.up-rank-shell.is-summary-only .up-rank-pin-mainline span{
  color:var(--ur-muted) !important;
}
.up-rank-shell.is-summary-only .up-rank-pin-mainline b{
  color:var(--ur-pass) !important;
}
.up-rank-shell.is-summary-only .up-rank-expand-button{
  background:var(--ur-surface) !important;
  border-color:var(--ur-line) !important;
  color:var(--ur-ink) !important;
  box-shadow:none !important;
}
.up-rank-shell.is-summary-only .up-rank-expand-button:hover{
  border-color:var(--ur-accent) !important;
  color:var(--ur-accent) !important;
}
/* DARK only */
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-crew-pin-list,html.dark .up-rank-shell.is-summary-only .up-rank-crew-pin-list{
  border-color:#202735 !important;
  background:linear-gradient(180deg,#0d1420,#0a101a) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.25) !important;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-pin-card,html.dark .up-rank-shell.is-summary-only .up-rank-pin-card{
  background:transparent !important;
  color:#f4f5f7 !important;
  border-right-color:#202735 !important;
  border-bottom-color:#202735 !important;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-pin-card:hover,html.dark .up-rank-shell.is-summary-only .up-rank-pin-card:hover{
  background:#111824 !important;
  border-color:#202735 !important;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-pin-avatar,html.dark .up-rank-shell.is-summary-only .up-rank-pin-avatar{
  background:#111824 !important;
  border-color:#293244 !important;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-pin-mainline strong,html.dark .up-rank-shell.is-summary-only .up-rank-pin-mainline strong{
  color:#f4f5f7 !important;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-pin-mainline span,html.dark .up-rank-shell.is-summary-only .up-rank-pin-mainline span{
  color:#9097a3 !important;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-pin-mainline b,html.dark .up-rank-shell.is-summary-only .up-rank-pin-mainline b{
  color:#55d397 !important;
}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-expand-button,html.dark .up-rank-shell.is-summary-only .up-rank-expand-button{
  background:#111824 !important;
  border-color:#293244 !important;
  color:#e9edf3 !important;
}
/* keep the grid dividers correct at each breakpoint in both themes */
@media (max-width:1180px){.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(3n){border-right-color:var(--ur-line) !important}
.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(2n){border-right-color:transparent !important}
html[data-theme="dark"] .up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(3n),html.dark .up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(3n){border-right-color:#202735 !important}}
@media (max-width:760px){.up-rank-shell.is-summary-only .up-rank-pin-card,.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(2n),.up-rank-shell.is-summary-only .up-rank-pin-card:nth-child(3n){border-right-color:transparent !important}}
/* ============================================================
   v23.20 · ranking workspace structure
   Reference structure only: compact status strip + ranking list + participant detail.
   Existing Jinho Archive palette, filters, snapshot, podium and cutline are preserved.
   ============================================================ */
/* summary becomes one compact status rail instead of five oversized cards */
#page-uprank .up-rank-shell .up-rank-summary{
  display:flex!important;
  align-items:stretch!important;
  gap:0!important;
  padding:0!important;
  margin:0 0 14px!important;
  border:1px solid var(--ur-line)!important;
  border-radius:12px!important;
  background:var(--ur-surface)!important;
  overflow:hidden!important;
}
#page-uprank .up-rank-shell .up-rank-summary article{
  flex:1 1 0!important;
  min-width:0!important;
  min-height:54px!important;
  margin:0!important;
  padding:9px 13px!important;
  border:0!important;
  border-right:1px solid var(--ur-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#page-uprank .up-rank-shell .up-rank-summary article:last-child{border-right:0!important}
#page-uprank .up-rank-shell .up-rank-summary article>span{
  font-size:9px!important;
  line-height:1.2!important;
  color:var(--ur-muted)!important;
  letter-spacing:.02em!important;
  font-weight:750!important;
}
#page-uprank .up-rank-shell .up-rank-summary article>strong{
  margin-top:4px!important;
  font-size:15px!important;
  line-height:1.15!important;
  color:var(--ur-ink)!important;
  font-weight:850!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#page-uprank .up-rank-shell .up-rank-summary article>small{display:none!important}
/* Full ranking workspace: list on the left, selected participant on the right. */
#page-uprank .up-rank-workspace{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:14px;
  align-items:start;
  margin-top:12px;
}
#page-uprank .up-rank-ranking-column{min-width:0}
#page-uprank .ur-board-wrap{max-width:none!important;width:100%!important;margin:0!important}
/* ranking columns now mirror the reference structure while keeping the current UI language */
#page-uprank .ur-board-head{
  display:grid!important;
  grid-template-columns:64px minmax(220px,1fr) 150px 110px!important;
  align-items:center!important;
  gap:12px!important;
  padding:0 14px 8px!important;
}
#page-uprank .ur-board-head>span:nth-child(3){text-align:right}
#page-uprank .ur-board-head>span:last-child{text-align:right}
#page-uprank .ur-row{
  width:100%!important;
  display:grid!important;
  grid-template-columns:64px minmax(220px,1fr) 150px 110px!important;
  align-items:center!important;
  gap:12px!important;
  min-height:58px!important;
  padding:9px 14px!important;
  margin:0!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  text-align:left!important;
  font:inherit!important;
  cursor:pointer!important;
  color:var(--ur-ink)!important;
  transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease!important;
}
#page-uprank .ur-row:hover{transform:translateX(2px)!important}
#page-uprank .ur-row.is-selected{
  border-color:color-mix(in srgb,var(--ur-accent) 58%,var(--ur-line))!important;
  background:color-mix(in srgb,var(--ur-accent) 5%,var(--ur-surface))!important;
  box-shadow:inset 3px 0 0 var(--ur-accent)!important;
}
#page-uprank .ur-row .ur-time{
  justify-self:end;
  color:var(--ur-muted);
  font-size:10px;
  font-weight:650;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
#page-uprank .ur-row .ur-up{justify-self:end}
/* podium is also a selector; the original comment link lives in the detail panel */
#page-uprank .up-rank-podium-card{
  width:100%;
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
#page-uprank .up-rank-podium-card.is-selected{
  outline:1px solid color-mix(in srgb,var(--ur-accent) 58%,transparent);
  outline-offset:-1px;
}
/* participant detail */
#page-uprank .up-rank-detail{
  position:sticky;
  top:92px;
  min-width:0;
  border:1px solid var(--ur-line);
  border-radius:14px;
  background:var(--ur-surface);
  overflow:hidden;
  box-shadow:0 12px 30px rgba(28,20,31,.06);
}
#page-uprank .up-rank-detail-empty{
  min-height:250px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:26px;
}
#page-uprank .up-rank-detail-empty>span,#page-uprank .up-rank-detail-kicker{
  color:var(--ur-accent);
  font-size:9px;
  line-height:1.2;
  font-weight:850;
  letter-spacing:.15em;
}
#page-uprank .up-rank-detail-empty>strong{
  margin-top:8px;
  color:var(--ur-ink);
  font-size:18px;
  font-weight:900;
  letter-spacing:-.03em;
}
#page-uprank .up-rank-detail-empty>p{
  margin:8px 0 0;
  color:var(--ur-muted);
  font-size:11px;
  line-height:1.65;
}
#page-uprank .up-rank-detail-content{padding:18px}
#page-uprank .up-rank-detail-content[hidden],#page-uprank .up-rank-detail-empty[hidden]{display:none!important}
#page-uprank .up-rank-detail-user{
  display:flex;
  align-items:center;
  gap:11px;
  padding:12px 0 15px;
  border-bottom:1px solid var(--ur-line);
}
#page-uprank .up-rank-detail-avatar{
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:1px solid var(--ur-line);
  background:var(--ur-surface-2);
  color:var(--ur-ink);
  font-size:14px;
  font-weight:900;
}
#page-uprank .up-rank-detail-avatar img{width:100%;height:100%;object-fit:cover;display:block}
#page-uprank .up-rank-detail-user strong{
  display:block;
  color:var(--ur-ink);
  font-size:17px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:-.025em;
}
#page-uprank .up-rank-detail-user small{
  display:block;
  margin-top:4px;
  color:var(--ur-muted);
  font-size:10px;
  font-weight:650;
}
#page-uprank .up-rank-detail-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-bottom:1px solid var(--ur-line);
}
#page-uprank .up-rank-detail-metrics>div{
  min-width:0;
  padding:13px 9px;
  border-right:1px solid var(--ur-line);
}
#page-uprank .up-rank-detail-metrics>div:first-child{padding-left:0}
#page-uprank .up-rank-detail-metrics>div:last-child{border-right:0;padding-right:0}
#page-uprank .up-rank-detail-metrics span{
  display:block;
  color:var(--ur-muted);
  font-size:9px;
  font-weight:700;
  white-space:nowrap;
}
#page-uprank .up-rank-detail-metrics strong{
  display:block;
  margin-top:5px;
  color:var(--ur-ink);
  font-size:13px;
  font-weight:850;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#page-uprank #upRankDetailGroup[data-group="jindegi"]{color:var(--ur-pass)}
#page-uprank #upRankDetailGroup[data-group="jinho"]{color:var(--ur-accent)}
#page-uprank .up-rank-detail-comment{padding:15px 0}
#page-uprank .up-rank-detail-comment>span,#page-uprank .up-rank-detail-meta>span{
  color:var(--ur-muted);
  font-size:9px;
  font-weight:750;
}
#page-uprank .up-rank-detail-comment p{
  margin:7px 0 0;
  max-height:180px;
  overflow:auto;
  color:var(--ur-ink);
  font-size:12px;
  line-height:1.65;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
#page-uprank .up-rank-detail-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:11px 0;
  border-top:1px solid var(--ur-line);
}
#page-uprank .up-rank-detail-meta b{
  color:var(--ur-muted);
  font-size:10px;
  font-weight:700;
  text-align:right;
}
#page-uprank .up-rank-detail-link{
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:7px;
  border:1px solid var(--ur-line);
  border-radius:10px;
  background:var(--ur-surface-2);
  color:var(--ur-ink)!important;
  text-decoration:none!important;
  font-size:11px;
  font-weight:850;
  transition:.18s ease;
}
#page-uprank .up-rank-detail-link:hover{border-color:var(--ur-accent);color:var(--ur-accent)!important}
#page-uprank .up-rank-detail-link.is-disabled{pointer-events:none;opacity:.45}
/* summary-only mode remains exactly a compact crew snapshot */
#page-uprank .up-rank-shell.is-summary-only .up-rank-workspace{display:none!important}
html[data-theme="dark"] #page-uprank .up-rank-detail,html.dark #page-uprank .up-rank-detail{
  background:#0d1420;
  border-color:#202735;
  box-shadow:0 16px 36px rgba(0,0,0,.22);
}
html[data-theme="dark"] #page-uprank .up-rank-detail-user,html[data-theme="dark"] #page-uprank .up-rank-detail-metrics,html[data-theme="dark"] #page-uprank .up-rank-detail-metrics>div,html[data-theme="dark"] #page-uprank .up-rank-detail-meta,html.dark #page-uprank .up-rank-detail-user,html.dark #page-uprank .up-rank-detail-metrics,html.dark #page-uprank .up-rank-detail-metrics>div,html.dark #page-uprank .up-rank-detail-meta{border-color:#202735}
html[data-theme="dark"] #page-uprank .up-rank-detail-avatar,html[data-theme="dark"] #page-uprank .up-rank-detail-link,html.dark #page-uprank .up-rank-detail-avatar,html.dark #page-uprank .up-rank-detail-link{background:#111824;border-color:#293244}
@media (max-width:1180px){#page-uprank .up-rank-workspace{grid-template-columns:minmax(0,1fr) 290px}
#page-uprank .ur-board-head,#page-uprank .ur-row{grid-template-columns:58px minmax(190px,1fr) 120px 96px!important}}
@media (max-width:900px){#page-uprank .up-rank-workspace{grid-template-columns:1fr}
#page-uprank .up-rank-detail{position:static;order:-1}
#page-uprank .up-rank-detail-empty{min-height:150px}
#page-uprank .up-rank-summary{flex-wrap:wrap!important}
#page-uprank .up-rank-summary article{flex:1 1 33.333%!important;border-bottom:1px solid var(--ur-line)!important}}
@media (max-width:700px){#page-uprank .ur-board-head{grid-template-columns:48px minmax(0,1fr) 82px!important}
#page-uprank .ur-board-head>span:nth-child(3){display:none}
#page-uprank .ur-row{grid-template-columns:48px minmax(0,1fr) 82px!important;gap:8px!important;padding:9px 10px!important}
#page-uprank .ur-row .ur-time{display:none}
#page-uprank .up-rank-detail-content{padding:15px}
#page-uprank .up-rank-detail-metrics{grid-template-columns:1fr 1fr}
#page-uprank .up-rank-detail-metrics>div:nth-child(3){grid-column:1/-1;border-top:1px solid var(--ur-line);border-right:0;padding-left:0}
#page-uprank .up-rank-summary article{flex:1 1 50%!important}}
/* ============================================================
   v23.21 · participant detail readability / sticky / attachments
   ============================================================ */
#page-uprank .up-rank-workspace{
  grid-template-columns:minmax(0,1fr) 390px!important;
  align-items:start!important;
  overflow:visible!important;
}
#page-uprank .up-rank-ranking-column{overflow:visible!important}
#page-uprank .up-rank-detail{
  position:sticky!important;
  top:82px!important;
  align-self:start!important;
  height:max-content!important;
  max-height:calc(100vh - 100px)!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  z-index:8;
}
#page-uprank .up-rank-detail::-webkit-scrollbar{width:7px}
#page-uprank .up-rank-detail::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ur-muted) 35%,transparent);border-radius:999px}
#page-uprank .up-rank-detail-content{padding:22px!important}
#page-uprank .up-rank-detail-kicker{font-size:10px!important;letter-spacing:.16em!important}
#page-uprank .up-rank-detail-user{gap:14px!important;padding:14px 0 18px!important}
#page-uprank .up-rank-detail-avatar{
  width:58px!important;height:58px!important;flex-basis:58px!important;
}
#page-uprank .up-rank-detail-user strong{font-size:20px!important;line-height:1.15!important}
#page-uprank .up-rank-detail-user small{font-size:12px!important;margin-top:5px!important}
#page-uprank .up-rank-detail-metrics>div{padding:15px 10px!important}
#page-uprank .up-rank-detail-metrics span{font-size:10px!important}
#page-uprank .up-rank-detail-metrics strong{font-size:15px!important;margin-top:6px!important}
#page-uprank .up-rank-detail-comment{padding:18px 0!important}
#page-uprank .up-rank-detail-comment>span,#page-uprank .up-rank-detail-meta>span,#page-uprank .up-rank-detail-attachments-head>span{
  font-size:10px!important;font-weight:800!important;letter-spacing:.01em;
}
#page-uprank .up-rank-detail-comment p{
  margin-top:9px!important;
  max-height:none!important;
  overflow:visible!important;
  font-size:14px!important;
  line-height:1.78!important;
  font-weight:650!important;
}
#page-uprank .up-rank-detail-meta{padding:13px 0!important}
#page-uprank .up-rank-detail-meta b{font-size:11px!important}
#page-uprank .up-rank-detail-link{min-height:44px!important;font-size:12px!important}
#page-uprank .up-rank-detail-attachments{
  padding:0 0 18px;
  border-top:1px solid var(--ur-line);
}
#page-uprank .up-rank-detail-attachments[hidden]{display:none!important}
#page-uprank .up-rank-detail-attachments-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 0 10px;
}
#page-uprank .up-rank-detail-attachments-head b{
  color:var(--ur-muted);font-size:10px;font-weight:750;
}
#page-uprank .up-rank-detail-image-grid{
  display:grid;grid-template-columns:1fr;gap:8px;
}
#page-uprank .up-rank-detail-image-grid a{
  display:block;overflow:hidden;border:1px solid var(--ur-line);border-radius:11px;
  background:var(--ur-surface-2);text-decoration:none;
}
#page-uprank .up-rank-detail-image-grid img{
  display:block;width:100%;max-height:360px;object-fit:contain;background:#080b10;
}
@media (max-width:1280px){#page-uprank .up-rank-workspace{grid-template-columns:minmax(0,1fr) 350px!important}}
@media (max-width:900px){#page-uprank .up-rank-workspace{grid-template-columns:1fr!important}
#page-uprank .up-rank-detail{
    position:static!important;order:-1!important;max-height:none!important;overflow:visible!important;
  }}
/* ============================================================
   v23.22 · sticky detail root fix + large readable detail
   ============================================================ */
/* overflow-x:hidden creates a non-scrolling overflow ancestor and breaks position:sticky.
   clip keeps horizontal clipping without becoming the sticky scroll container. */
#page-uprank.up-rank-page{
  overflow:visible!important;
  overflow-x:clip!important;
}
#page-uprank .up-rank-shell,#page-uprank .up-rank-panel,#page-uprank .up-rank-workspace,#page-uprank .up-rank-ranking-column{
  overflow:visible!important;
}
#page-uprank .up-rank-workspace{
  grid-template-columns:minmax(0,1fr) 430px!important;
}
#page-uprank .up-rank-detail{
  position:sticky!important;
  top:92px!important;
  max-height:calc(100vh - 112px)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  z-index:20!important;
}
#page-uprank .up-rank-detail-content{padding:24px!important}
#page-uprank .up-rank-detail-user strong{font-size:22px!important}
#page-uprank .up-rank-detail-user small{font-size:13px!important}
#page-uprank .up-rank-detail-metrics span{font-size:11px!important}
#page-uprank .up-rank-detail-metrics strong{font-size:16px!important}
#page-uprank .up-rank-detail-comment>span,#page-uprank .up-rank-detail-meta>span,#page-uprank .up-rank-detail-attachments-head>span{font-size:11px!important}
#page-uprank .up-rank-detail-comment p{
  font-size:16px!important;
  line-height:1.8!important;
  font-weight:620!important;
}
#page-uprank .up-rank-detail-meta b{font-size:12px!important}
#page-uprank .up-rank-detail-link{font-size:13px!important;min-height:46px!important}
#page-uprank .up-rank-detail-image-grid img{
  width:100%!important;
  max-height:460px!important;
  min-height:120px;
  object-fit:contain!important;
}
@media (max-width:1380px){#page-uprank .up-rank-workspace{grid-template-columns:minmax(0,1fr) 380px!important}
#page-uprank .up-rank-detail-comment p{font-size:15px!important}}
@media (max-width:900px){#page-uprank.up-rank-page{overflow-x:hidden!important}
#page-uprank .up-rank-detail{position:static!important;max-height:none!important;overflow:visible!important}}
/* ============================================================
   v23.23 · hard viewport dock
   JS applies this class while the ranking list is in view.
   ============================================================ */
#page-uprank .up-rank-detail.is-viewport-docked{
  position:fixed!important;
  top:var(--ur-detail-top,92px)!important;
  right:var(--ur-detail-right,24px)!important;
  left:auto!important;
  width:var(--ur-detail-width,390px)!important;
  max-width:calc(100vw - 32px)!important;
  max-height:calc(100vh - var(--ur-detail-top,92px) - 20px)!important;
  overflow:auto!important;
  z-index:88!important;
  box-shadow:0 20px 56px rgba(0,0,0,.18)!important;
}
#page-uprank .up-rank-detail.is-viewport-docked .up-rank-detail-comment p{
  font-size:16px!important;
  line-height:1.82!important;
}
#page-uprank .up-rank-detail-attachments{
  margin-top:4px!important;
}
#page-uprank .up-rank-detail-image-grid img{
  min-height:0!important;
  max-height:420px!important;
}
@media(max-width:900px){#page-uprank .up-rank-detail.is-viewport-docked{
    position:static!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
  }}
/* ============================================================
   v23.24 · ranking list internal scroll
   Top 3 + participant detail stay visible; only ranks 4+ scroll.
   ============================================================ */
/* Cancel the previous viewport-fixed participant panel. */
#page-uprank .up-rank-detail,#page-uprank .up-rank-detail.is-viewport-docked{
  position:sticky!important;
  top:92px!important;
  right:auto!important;
  left:auto!important;
  width:auto!important;
  max-width:none!important;
  max-height:min(78vh,820px)!important;
  overflow:auto!important;
  z-index:20!important;
  box-shadow:0 12px 30px rgba(28,20,31,.08)!important;
}
/* The podium stays outside the scrolling body. */
#page-uprank .up-rank-ranking-column{
  min-width:0!important;
  overflow:visible!important;
}
/* Table header remains still while only the actual rows move. */
#page-uprank .ur-board-wrap{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:visible!important;
}
#page-uprank .ur-board-head{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:3!important;
  margin:0!important;
  background:var(--ur-bg)!important;
}
/* This is the exact area shown in the user's third screenshot. */
#page-uprank #upRankRows{
  height:clamp(430px,62vh,720px)!important;
  max-height:calc(100vh - 300px)!important;
  min-height:360px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  padding-right:6px!important;
  scroll-behavior:smooth!important;
}
#page-uprank #upRankRows::-webkit-scrollbar{
  width:9px!important;
}
#page-uprank #upRankRows::-webkit-scrollbar-track{
  background:transparent!important;
}
#page-uprank #upRankRows::-webkit-scrollbar-thumb{
  border:2px solid transparent!important;
  border-radius:999px!important;
  background:color-mix(in srgb,var(--ur-muted) 38%,transparent)!important;
  background-clip:padding-box!important;
}
#page-uprank #upRankRows::-webkit-scrollbar-thumb:hover{
  background:color-mix(in srgb,var(--ur-accent) 58%,var(--ur-muted))!important;
  background-clip:padding-box!important;
}
/* A subtle visual boundary makes it clear that the list itself is scrollable. */
#page-uprank .ur-board-wrap{
  position:relative!important;
}
#page-uprank .ur-board-wrap::after{
  content:"";
  pointer-events:none;
  position:absolute;
  left:0;
  right:8px;
  bottom:0;
  height:28px;
  z-index:4;
  background:linear-gradient(to bottom,transparent,var(--ur-bg));
  opacity:.72;
}
/* Keep detail text/image available while the ranking list moves independently. */
#page-uprank .up-rank-detail-content{
  max-height:none!important;
}
#page-uprank .up-rank-detail-image-grid img{
  max-height:420px!important;
  object-fit:contain!important;
}
/* Light mode */
html[data-theme="light"] #page-uprank .ur-board-head{
  background:#f7f4f5!important;
}
html[data-theme="light"] #page-uprank .ur-board-wrap::after{
  background:linear-gradient(to bottom,rgba(247,244,245,0),#f7f4f5)!important;
}
/* On smaller layouts use normal page flow again. */
@media(max-width:900px){#page-uprank #upRankRows{
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow:visible!important;
    padding-right:0!important;
  }
#page-uprank .ur-board-wrap::after{display:none!important}
#page-uprank .up-rank-detail,#page-uprank .up-rank-detail.is-viewport-docked{
    position:static!important;
    max-height:none!important;
    overflow:visible!important;
  }}
/* ============================================================
   v23.25 · real internal ranking scroll viewport
   The generated #upRankRows is wrapped in .up-rank-rows-scroll.
   Only ranks 4+ move; podium/detail remain outside.
   ============================================================ */
#page-uprank .up-rank-rows-scroll{
  display:block!important;
  width:100%!important;
  height:clamp(430px,58vh,680px)!important;
  max-height:calc(100vh - 300px)!important;
  min-height:360px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  scroll-behavior:smooth!important;
  position:relative!important;
  padding-right:6px!important;
}
#page-uprank .up-rank-rows-scroll #upRankRows{
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  overflow:visible!important;
  padding-right:0!important;
}
#page-uprank .up-rank-rows-scroll::-webkit-scrollbar{
  width:10px!important;
}
#page-uprank .up-rank-rows-scroll::-webkit-scrollbar-track{
  background:color-mix(in srgb,var(--ur-surface) 55%,transparent)!important;
  border-radius:999px!important;
}
#page-uprank .up-rank-rows-scroll::-webkit-scrollbar-thumb{
  border:2px solid transparent!important;
  border-radius:999px!important;
  background:color-mix(in srgb,var(--ur-muted) 48%,var(--ur-line))!important;
  background-clip:padding-box!important;
}
#page-uprank .up-rank-rows-scroll::-webkit-scrollbar-thumb:hover{
  background:color-mix(in srgb,var(--ur-accent) 56%,var(--ur-muted))!important;
  background-clip:padding-box!important;
}
/* Old rule targeted #upRankRows directly; neutralize it. */
#page-uprank #upRankRows{
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  overflow:visible!important;
}
/* Keep participant detail beside the internal list. */
#page-uprank .up-rank-detail,#page-uprank .up-rank-detail.is-viewport-docked{
  position:sticky!important;
  top:92px!important;
  right:auto!important;
  left:auto!important;
  width:auto!important;
  max-width:none!important;
  max-height:calc(100vh - 112px)!important;
  overflow:auto!important;
}
/* Do not let the old gradient mask cover the scrollbar/list bottom. */
#page-uprank .ur-board-wrap::after{display:none!important}
@media(max-width:900px){#page-uprank .up-rank-rows-scroll{
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow:visible!important;
    padding-right:0!important;
  }}
