
.rfm-top15{max-width:1180px;margin:0 auto;padding:150px 0 40px;font-family:inherit;color:#261c1d;box-sizing:border-box}
.rfm-top15 *{box-sizing:border-box}
.rfm-top15-head{display:flex;flex-direction:column;gap:12px;margin:0 0 22px}
.rfm-top15-kicker-row,.rfm-top15-section-head{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;padding:6px 14px;border-radius:8px;background:rgba(255,255,255,.42);-webkit-border:1px solid rgba(255,255,255,.55)}
.rfm-top15-kicker-dot{width:8px;height:8px;background:#d2042b;border-radius:1px;flex:0 0 auto}
.rfm-top15-kicker-label,.rfm-top15-section-head h3{margin:0;font-size:15px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#d2042b;line-height:1.1}
.rfm-top15-head h2{margin:0;font-size:clamp(34px,4.5vw,60px);line-height:1.02;font-weight:900;letter-spacing:-.03em;color:#261c1d}
.rfm-top15-note{margin:0 0 20px;padding:18px 20px;border-radius:22px;background:rgba(255,255,255,.55);-webkit-border:1px solid rgba(255,255,255,.58);box-shadow:0 14px 32px rgba(38,28,29,.06);font-weight:700;color:#4b3c3f;line-height:1.65}
.rfm-top15-list{display:grid;gap:14px}
.rfm-top15-item{display:grid;grid-template-columns:64px 78px minmax(164px,220px) minmax(0,1fr) 74px 96px;align-items:center;gap:16px;padding:16px 20px;border-radius:26px;background:rgba(255,255,255,.72);-webkit-border:1px solid rgba(255,255,255,.58);box-shadow:0 18px 42px rgba(38,28,29,.07)}
.rfm-top15-item:hover{transform:translateY(-1px);transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 22px 48px rgba(38,28,29,.10)}
.rfm-top15-rank{font-size:46px;line-height:1;font-weight:900;letter-spacing:-.04em;color:#1f1617;text-align:center}
.rfm-top15-change{display:flex;justify-content:center}
.rfm-top15-move-stack{min-width:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:900}
.rfm-top15-move-number{font-size:24px;line-height:1;color:#1f1617}
.rfm-top15-move-arrow{font-size:16px;line-height:1}
.rfm-top15-move-stack.is-up .rfm-top15-move-arrow,.rfm-top15-move-stack.is-up .rfm-top15-move-number{color:#2c9b49}
.rfm-top15-move-stack.is-down .rfm-top15-move-arrow,.rfm-top15-move-stack.is-down .rfm-top15-move-number{color:#d2042b}
.rfm-top15-move-stack.is-same .rfm-top15-move-arrow,.rfm-top15-move-stack.is-same .rfm-top15-move-number{color:#7b7175}
.rfm-top15-move-badge{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 12px;border-radius:14px;background:rgba(210,4,43,.10);border:1px solid rgba(210,4,43,.18);color:#d2042b;font-size:12px;line-height:1.05;font-weight:900;text-transform:uppercase;letter-spacing:.08em;text-align:center}
.rfm-top15-img,.rfm-top15-candidate-img{display:block;position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#f1ecec;box-shadow:0 10px 24px rgba(38,28,29,.08)}
.rfm-top15-img img,.rfm-top15-candidate-img img{width:100%;height:100%;object-fit:cover;display:block}
.rfm-top15-img-fallback{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;color:#8b7e82;background:linear-gradient(135deg,#f5efef,#ece3e4)}
.rfm-top15-body{min-width:0;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.rfm-top15-song{display:block;font-size:clamp(20px,1.65vw,27px);line-height:1.08;font-weight:900;letter-spacing:.015em;color:#141012;text-decoration:none;text-transform:uppercase;max-width:100%}
.rfm-top15-song:hover{color:#d2042b}
.rfm-top15-artist{font-size:clamp(12px,1vw,15px);line-height:1.2;font-weight:700;color:#7d7487;text-transform:uppercase;letter-spacing:.075em;max-width:100%}
.rfm-top15-weeks{justify-self:end;display:flex;flex-direction:column;align-items:center;justify-content:center;width:88px;min-height:78px;padding:9px 8px;border-radius:20px;background:rgba(255,255,255,.78);border:1px solid rgba(38,28,29,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.rfm-top15-weeks-num{font-size:40px;line-height:1;font-weight:900;color:#6f758f;letter-spacing:-.03em}
.rfm-top15-weeks-label{margin-top:4px;font-size:14px;font-weight:800;letter-spacing:.08em;color:#8a8fa5}
.rfm-top15-weeks.is-golden{background:linear-gradient(180deg,rgba(255,246,214,.96),rgba(249,235,183,.92));border-color:rgba(202,154,58,.44);box-shadow:0 12px 28px rgba(199,156,61,.16), inset 0 1px 0 rgba(255,255,255,.65)}
.rfm-top15-weeks.is-golden .rfm-top15-weeks-num,.rfm-top15-weeks.is-golden .rfm-top15-weeks-label{color:#b78312}
.rfm-top15-item.is-golden{border-color:rgba(202,154,58,.28)}
.rfm-top15-candidates{margin-top:34px;padding:22px;border-radius:28px;background:rgba(255,255,255,.50);-webkit-border:1px solid rgba(255,255,255,.55);box-shadow:0 18px 42px rgba(38,28,29,.06)}
.rfm-top15-candidates .rfm-top15-section-head{margin-bottom:18px}
.rfm-top15-candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rfm-top15-candidate{display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:rgba(255,255,255,.76);-webkit-border:1px solid rgba(255,255,255,.58);box-shadow:0 14px 34px rgba(38,28,29,.06)}
.rfm-top15-candidate-body{padding:14px 16px 16px}
.rfm-top15-candidate-song{display:block;text-decoration:none;color:#181214;font-weight:900;font-size:18px;line-height:1.12;text-transform:uppercase;letter-spacing:.015em}
.rfm-top15-candidate-song:hover{color:#d2042b}
.rfm-top15-candidate-artist{margin-top:6px;font-size:13px;line-height:1.2;font-weight:700;color:#7e788e;text-transform:uppercase;letter-spacing:.075em}

.rfm-top15-vote-slot{display:flex;align-items:center;justify-content:center}
.rfm-top15-vote-button{appearance:none;-webkit-appearance:none;width:82px;min-height:72px;border:1px solid rgba(210,4,43,.24)!important;border-radius:22px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;background:rgba(210,4,43,.10)!important;color:#d2042b!important;box-shadow:none!important;outline:none!important;text-decoration:none!important;font-family:inherit;font-weight:900;line-height:1;transition:transform .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}
.rfm-top15-vote-button:hover,.rfm-top15-vote-button:focus{background:#d2042b!important;border-color:#d2042b!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 14px 28px rgba(210,4,43,.20)!important}
.rfm-top15-vote-button:active{transform:translateY(0)}
.rfm-top15-vote-button:disabled{cursor:not-allowed;opacity:.58;transform:none!important;box-shadow:none!important;background:rgba(210,4,43,.08)!important;color:#d2042b!important}
.rfm-top15-vote-button.is-loading{opacity:.72}
.rfm-top15-vote-button.is-voted{background:#d2042b!important;color:#fff!important;border-color:#d2042b!important}
.rfm-top15-vote-svg{width:24px;height:24px;display:block;color:currentColor;fill:currentColor}
.rfm-top15-vote-text{display:block;font-size:11px;line-height:1;text-transform:uppercase;letter-spacing:.05em;color:currentColor}
.rfm-top15-golden-mark{width:82px;min-height:72px;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;padding:8px;background:linear-gradient(180deg,rgba(255,246,214,.98),rgba(249,235,183,.93));border:1px solid rgba(202,154,58,.46);color:#b78312;font-weight:900;font-size:10px;line-height:1;letter-spacing:.08em;box-shadow:0 12px 28px rgba(199,156,61,.14)}
.rfm-top15-golden-svg{width:25px;height:25px;display:block;color:currentColor;fill:currentColor}
.rfm-top15-golden-text{display:block;color:currentColor;text-transform:uppercase;letter-spacing:.08em}
.rfm-top15-vote-status{margin:-4px 0 18px;padding:12px 14px;border-radius:16px;font-weight:800;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.6);color:#4b3c3f}
.rfm-top15-vote-status.is-success{border-color:rgba(210,4,43,.22);color:#a50422;background:rgba(210,4,43,.075)}
.rfm-top15-vote-status.is-error{border-color:rgba(210,4,43,.25);color:#a50422;background:rgba(210,4,43,.08)}
.rfm-top15-candidate-vote{padding:0 16px 16px;display:flex;justify-content:flex-start}
.rfm-top15-candidate-vote .rfm-top15-vote-button,.rfm-top15-candidate-vote .rfm-top15-golden-mark{width:auto;min-width:104px;min-height:46px;border-radius:16px;flex-direction:row;gap:8px;padding:8px 12px}
.rfm-top15-candidate-vote .rfm-top15-vote-svg,.rfm-top15-candidate-vote .rfm-top15-golden-svg{width:20px;height:20px}
@media(max-width:1100px){.rfm-top15{padding-top:138px}.rfm-top15-item{grid-template-columns:58px 72px 160px minmax(0,1fr) 66px 86px;gap:14px;padding:16px 18px}.rfm-top15-rank{font-size:40px}.rfm-top15-song{font-size:23px}.rfm-top15-artist{font-size:13px}.rfm-top15-weeks{width:82px;min-height:74px}.rfm-top15-weeks-num{font-size:31px}}
@media(max-width:860px){.rfm-top15{padding-top:126px}.rfm-top15-item{grid-template-columns:58px 76px minmax(0,1fr) 82px;grid-template-areas:'rank change vote weeks''image image image image''body body body body';padding:16px;border-radius:22px}.rfm-top15-rank{grid-area:rank;font-size:38px}.rfm-top15-change{grid-area:change;justify-content:flex-start}.rfm-top15-img{grid-area:image;width:100%;max-width:none}.rfm-top15-body{grid-area:body}.rfm-top15-vote-slot{grid-area:vote;justify-content:flex-start}.rfm-top15-vote-button,.rfm-top15-golden-mark{width:74px;min-height:66px;border-radius:18px}.rfm-top15-weeks{grid-area:weeks;justify-self:end;width:78px;min-height:70px;border-radius:18px}.rfm-top15-song{font-size:22px}.rfm-top15-artist{font-size:13px}.rfm-top15-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.rfm-top15{padding:112px 0 28px}.rfm-top15-head{gap:10px}.rfm-top15-head h2{font-size:34px}.rfm-top15-kicker-label,.rfm-top15-section-head h3{font-size:13px}.rfm-top15-note{font-size:13px;padding:14px 14px;line-height:1.55}.rfm-top15-item{grid-template-columns:42px minmax(0,1fr) 58px 58px;grid-template-areas:'rank change vote weeks''image image image image''body body body body';gap:10px;padding:14px;border-radius:18px}.rfm-top15-rank{font-size:30px;align-self:center}.rfm-top15-change{justify-content:flex-start;align-self:center;min-width:0}.rfm-top15-move-stack{min-width:38px;gap:2px}.rfm-top15-move-number{font-size:19px}.rfm-top15-move-arrow{font-size:13px}.rfm-top15-move-badge{min-height:30px;max-width:100%;padding:7px 8px;font-size:10px;border-radius:11px;letter-spacing:.045em;white-space:nowrap}.rfm-top15-song{font-size:18px;line-height:1.12}.rfm-top15-artist{font-size:11px;line-height:1.25}.rfm-top15-vote-slot{grid-area:vote;justify-content:center;align-self:center}.rfm-top15-vote-button,.rfm-top15-golden-mark{width:58px;min-height:58px;border-radius:15px;gap:3px;padding:6px}.rfm-top15-vote-svg,.rfm-top15-golden-svg{width:21px;height:21px}.rfm-top15-vote-text,.rfm-top15-golden-text{font-size:8.5px;letter-spacing:.035em}.rfm-top15-weeks{grid-area:weeks;justify-self:end;align-self:center;width:58px;min-height:58px;border-radius:15px;padding:6px 4px}.rfm-top15-weeks-num{font-size:22px}.rfm-top15-weeks-label{font-size:10px;margin-top:2px}.rfm-top15-candidate-grid{grid-template-columns:1fr}.rfm-top15-candidates{padding:16px;border-radius:22px}.rfm-top15-candidate-vote .rfm-top15-vote-button,.rfm-top15-candidate-vote .rfm-top15-golden-mark{width:auto;min-width:96px;min-height:42px;border-radius:14px}}

/* v0.10: suggested songs use the same full-width list rhythm as TOP 15 */
.rfm-top15-candidate-list{display:grid;gap:14px}
.rfm-top15-candidate-item{grid-template-columns:64px 78px minmax(164px,220px) minmax(0,1fr) 82px}
.rfm-top15-candidate-rank{color:#d2042b;background:rgba(210,4,43,.08);border:1px solid rgba(210,4,43,.14);border-radius:18px;width:58px;height:58px;display:grid;place-items:center;font-size:38px;justify-self:center}
.rfm-top15-move-badge.is-candidate{background:rgba(210,4,43,.08);border-color:rgba(210,4,43,.16);color:#d2042b}
.rfm-top15-candidate-item .rfm-top15-vote-slot{justify-content:center}
.rfm-top15-candidate-item .rfm-top15-img{border-radius:18px}
.rfm-top15-candidate-vote{padding:0;display:flex;justify-content:center}
.rfm-top15-candidate-vote .rfm-top15-vote-button,.rfm-top15-candidate-vote .rfm-top15-golden-mark{width:82px;min-width:0;min-height:72px;border-radius:22px;flex-direction:column;gap:5px;padding:8px}
.rfm-top15-candidate-vote .rfm-top15-vote-svg,.rfm-top15-candidate-vote .rfm-top15-golden-svg{width:24px;height:24px}
@media(max-width:1100px){.rfm-top15-candidate-item{grid-template-columns:58px 72px 160px minmax(0,1fr) 68px}}
@media(max-width:860px){.rfm-top15-candidate-item{grid-template-columns:58px 76px minmax(0,1fr);grid-template-areas:'rank change vote''image image image''body body body';padding:16px;border-radius:22px}.rfm-top15-candidate-item .rfm-top15-vote-slot{grid-area:vote;justify-content:flex-end}.rfm-top15-candidate-item .rfm-top15-vote-button,.rfm-top15-candidate-item .rfm-top15-golden-mark{width:74px;min-height:66px;border-radius:18px}.rfm-top15-candidate-item .rfm-top15-rank{grid-area:rank}.rfm-top15-candidate-item .rfm-top15-change{grid-area:change}.rfm-top15-candidate-item .rfm-top15-img{grid-area:image}.rfm-top15-candidate-item .rfm-top15-body{grid-area:body}}
@media(max-width:560px){.rfm-top15-candidate-item{grid-template-columns:42px minmax(0,1fr) 58px;grid-template-areas:'rank change vote''image image image''body body body';gap:10px;padding:14px;border-radius:18px}.rfm-top15-candidate-rank{width:36px;height:36px;border-radius:12px;font-size:25px}.rfm-top15-candidate-item .rfm-top15-vote-button,.rfm-top15-candidate-item .rfm-top15-golden-mark{width:58px;min-height:58px;border-radius:15px;gap:3px;padding:6px}}

/* v0.13: closed voting state */
.rfm-top15-voting-closed-mark{width:82px;min-height:72px;border-radius:22px;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 10px;background:rgba(38,28,29,.06);border:1px solid rgba(38,28,29,.12);color:#6e6366;font-size:10px;line-height:1.12;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.rfm-top15-candidate-vote .rfm-top15-voting-closed-mark{width:82px;min-width:0;min-height:72px;border-radius:22px}
@media(max-width:860px){.rfm-top15-voting-closed-mark{width:74px;min-height:66px;border-radius:18px}.rfm-top15-candidate-item .rfm-top15-voting-closed-mark{width:74px;min-height:66px;border-radius:18px}}
@media(max-width:560px){.rfm-top15-voting-closed-mark{width:58px;min-height:58px;border-radius:15px;font-size:8px;letter-spacing:.03em}.rfm-top15-candidate-item .rfm-top15-voting-closed-mark{width:58px;min-height:58px;border-radius:15px}}

/* v0.16: Relax FM card rhythm - desktop text beside image, mobile glass title over image */
.rfm-top15-item{grid-template-columns:58px 70px minmax(168px,214px) minmax(0,1fr) 74px 92px;gap:15px;padding:15px 18px}
.rfm-top15-img{grid-column:3;grid-row:1;z-index:1}
.rfm-top15-body{grid-column:4;grid-row:1;align-self:center;justify-self:start;max-width:100%;gap:5px}
.rfm-top15-song{font-size:clamp(17px,1.25vw,21px);line-height:1.12;font-weight:900;letter-spacing:.01em;text-wrap:balance}
.rfm-top15-artist{font-size:clamp(11px,.82vw,13px);line-height:1.18;font-weight:800;letter-spacing:.08em;color:#8a7f86}
.rfm-top15-candidate-item{grid-template-columns:58px 70px minmax(168px,214px) minmax(0,1fr) 82px}
.rfm-top15-candidate-item .rfm-top15-body{grid-column:4;grid-row:1}

@media(max-width:1100px){
  .rfm-top15-item{grid-template-columns:52px 66px 152px minmax(0,1fr) 64px 82px;gap:13px;padding:15px 16px}
  .rfm-top15-song{font-size:19px}
  .rfm-top15-artist{font-size:12px}
  .rfm-top15-candidate-item{grid-template-columns:52px 66px 152px minmax(0,1fr) 68px}
}

@media(max-width:860px){
  .rfm-top15-item{grid-template-columns:58px 76px minmax(0,1fr) 82px;grid-template-areas:'rank change vote weeks' 'image image image image';gap:12px;padding:16px;border-radius:22px}
  .rfm-top15-img{grid-area:image;grid-column:auto;grid-row:auto;width:100%;max-width:none;border-radius:18px;min-height:0}
  .rfm-top15-body{grid-area:image;grid-column:auto;grid-row:auto;align-self:end;justify-self:start;z-index:2;margin:0 0 14px 14px;max-width:min(78%,520px);padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.30);border:1px solid rgba(255,255,255,.48);box-shadow:0 12px 28px rgba(38,28,29,.18);-webkit-gap:3px}
  .rfm-top15-song{font-size:clamp(17px,4.4vw,22px);line-height:1.08;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.42)}
  .rfm-top15-song:hover{color:#fff}
  .rfm-top15-artist{font-size:clamp(10px,2.7vw,13px);line-height:1.15;color:rgba(255,255,255,.86);text-shadow:0 2px 8px rgba(0,0,0,.38)}
  .rfm-top15-candidate-item{grid-template-columns:58px 76px minmax(0,1fr);grid-template-areas:'rank change vote' 'image image image';gap:12px}
  .rfm-top15-candidate-item .rfm-top15-body{grid-area:image;grid-column:auto;grid-row:auto}
}

@media(max-width:560px){
  .rfm-top15-item{grid-template-columns:42px minmax(0,1fr) 58px 58px;grid-template-areas:'rank change vote weeks' 'image image image image';gap:10px;padding:14px;border-radius:18px}
  .rfm-top15-img{border-radius:16px}
  .rfm-top15-body{grid-area:image;margin:0 0 10px 10px;max-width:82%;padding:8px 10px;border-radius:14px}
  .rfm-top15-song{font-size:16px;line-height:1.1;letter-spacing:.005em}
  .rfm-top15-artist{font-size:10px;letter-spacing:.065em}
  .rfm-top15-candidate-item{grid-template-columns:42px minmax(0,1fr) 58px;grid-template-areas:'rank change vote' 'image image image';gap:10px;padding:14px;border-radius:18px}
}

/* v0.20: mobile compact row layout.
   Keep the page light: no mobile overlay blur, no extra JS, image remains real 16:9. */
@media(max-width:860px){
  .rfm-top15-item{
    grid-template-columns:minmax(144px,46%) minmax(0,1fr)!important;
    grid-template-areas:'rank change' 'image body' 'vote weeks'!important;
    align-items:center!important;
    column-gap:12px!important;
    row-gap:10px!important;
    padding:13px!important;
  }
  .rfm-top15-candidate-item{
    grid-template-columns:minmax(144px,46%) minmax(0,1fr)!important;
    grid-template-areas:'rank change' 'image body' 'vote vote'!important;
  }
  .rfm-top15-rank{grid-area:rank!important;justify-self:start!important;text-align:left!important}
  .rfm-top15-change{grid-area:change!important;justify-content:flex-end!important;min-width:0!important}
  .rfm-top15-media{
    grid-area:image!important;
    width:100%!important;
    align-self:center!important;
    justify-self:start!important;
    overflow:visible!important;
    border-radius:16px!important;
  }
  .rfm-top15-media .rfm-top15-img{
    width:100%!important;
    aspect-ratio:16/9!important;
    border-radius:16px!important;
    box-shadow:0 8px 18px rgba(38,28,29,.07)!important;
  }
  .rfm-top15-mobile-overlay{display:none!important}
  .rfm-top15-item > .rfm-top15-body,
  .rfm-top15-candidate-item > .rfm-top15-body{
    display:flex!important;
    grid-area:body!important;
    align-self:center!important;
    justify-self:stretch!important;
    align-items:flex-end!important;
    text-align:right!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    -webkit-
    gap:4px!important;
  }
  .rfm-top15-item > .rfm-top15-body .rfm-top15-song,
  .rfm-top15-candidate-item > .rfm-top15-body .rfm-top15-song{
    max-width:100%!important;
    color:#261c1d!important;
    text-shadow:none!important;
    font-size:clamp(15px,4.25vw,20px)!important;
    line-height:1.08!important;
    font-weight:900!important;
    letter-spacing:.004em!important;
    text-align:right!important;
    overflow-wrap:anywhere!important;
  }
  .rfm-top15-item > .rfm-top15-body .rfm-top15-artist,
  .rfm-top15-candidate-item > .rfm-top15-body .rfm-top15-artist{
    max-width:100%!important;
    color:#8a7f86!important;
    text-shadow:none!important;
    font-size:clamp(10px,2.9vw,12px)!important;
    line-height:1.15!important;
    font-weight:850!important;
    letter-spacing:.065em!important;
    text-align:right!important;
    overflow-wrap:anywhere!important;
  }
  .rfm-top15-vote-slot{grid-area:vote!important;justify-content:flex-start!important;align-self:center!important}
  .rfm-top15-weeks{grid-area:weeks!important;justify-self:end!important;align-self:center!important}
  .rfm-top15-candidate-item .rfm-top15-vote-slot{justify-content:flex-start!important}
}
@media(max-width:420px){
  .rfm-top15-item,
  .rfm-top15-candidate-item{
    grid-template-columns:minmax(132px,45%) minmax(0,1fr)!important;
    column-gap:10px!important;
    padding:12px!important;
  }
  .rfm-top15-rank{font-size:28px!important}
  .rfm-top15-move-badge{font-size:9px!important;padding:6px 7px!important;white-space:normal!important;text-align:right!important}
  .rfm-top15-item > .rfm-top15-body .rfm-top15-song,
  .rfm-top15-candidate-item > .rfm-top15-body .rfm-top15-song{font-size:15px!important;line-height:1.08!important}
  .rfm-top15-item > .rfm-top15-body .rfm-top15-artist,
  .rfm-top15-candidate-item > .rfm-top15-body .rfm-top15-artist{font-size:9.5px!important;letter-spacing:.055em!important}
}
@media(max-width:340px){
  .rfm-top15-item,
  .rfm-top15-candidate-item{grid-template-columns:124px minmax(0,1fr)!important;column-gap:9px!important}
  .rfm-top15-vote-button,.rfm-top15-golden-mark,.rfm-top15-weeks{width:54px!important;min-height:54px!important;border-radius:14px!important}
}


/* v0.21: lighter desktop rendering, aligned top block, Relax FM colored vote feedback. */
.rfm-top15{max-width:1220px;padding-left:20px;padding-right:20px}
.rfm-top15-head,.rfm-top15-note{width:100%}
.rfm-top15-note{margin-left:0;margin-right:0}
.rfm-top15-vote-status.is-success{border-color:rgba(210,4,43,.24);color:#d2042b;background:rgba(210,4,43,.07)}
@media(min-width:861px){
  .rfm-top15-kicker-row,
  .rfm-top15-section-head,
  .rfm-top15-note,
  .rfm-top15-item,
  .rfm-top15-candidates,
  .rfm-top15-candidate{
    -webkit-
  }
  .rfm-top15-note{background:rgba(255,255,255,.70);box-shadow:0 10px 24px rgba(38,28,29,.045)}
  .rfm-top15-item{background:rgba(255,255,255,.78);box-shadow:0 10px 24px rgba(38,28,29,.055);transition:box-shadow .16s ease,border-color .16s ease}
  .rfm-top15-item:hover{transform:none;box-shadow:0 13px 28px rgba(38,28,29,.075)}
  .rfm-top15-candidates{background:rgba(255,255,255,.62);box-shadow:0 10px 26px rgba(38,28,29,.045)}
  .rfm-top15-candidate{background:rgba(255,255,255,.78);box-shadow:0 10px 22px rgba(38,28,29,.045)}
}
@media(max-width:860px){.rfm-top15{padding-left:14px!important;padding-right:14px!important}}
@media(max-width:560px){.rfm-top15{padding:112px 12px 28px!important}}


/* v0.22: mobile header alignment + framed song/artist block.
   Lightweight only: no extra JS, no blur/backdrop-filter, no additional requests. */
@media(max-width:860px){
  .rfm-top15{
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .rfm-top15-head{
    width:100%!important;
    align-items:stretch!important;
    gap:9px!important;
    margin:0 0 14px!important;
  }
  .rfm-top15-kicker-row{
    align-self:stretch!important;
    width:100%!important;
    justify-content:flex-start!important;
    padding:7px 11px!important;
    border-radius:14px!important;
    background:rgba(255,255,255,.62)!important;
    border-color:rgba(210,4,43,.13)!important;
    box-shadow:none!important;
    -webkit-
  }
  .rfm-top15-head h2{
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    font-size:clamp(31px,8.8vw,42px)!important;
    line-height:.98!important;
    letter-spacing:-.035em!important;
  }
  .rfm-top15-note{
    margin-top:0!important;
    margin-bottom:16px!important;
    padding:14px!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.72)!important;
    border-color:rgba(210,4,43,.10)!important;
    box-shadow:none!important;
    -webkit-
  }
  .rfm-top15-item{
    grid-template-columns:minmax(164px,50%) minmax(0,1fr)!important;
    grid-template-areas:'rank change' 'image body' 'vote weeks'!important;
    column-gap:11px!important;
    row-gap:10px!important;
    align-items:stretch!important;
  }
  .rfm-top15-candidate-item{
    grid-template-columns:minmax(164px,50%) minmax(0,1fr)!important;
    grid-template-areas:'rank change' 'image body' 'vote vote'!important;
  }
  .rfm-top15-media{
    align-self:stretch!important;
  }
  .rfm-top15-media .rfm-top15-img{
    height:100%!important;
    min-height:92px!important;
    border-radius:16px!important;
    box-shadow:none!important;
  }
  .rfm-top15-item > .rfm-top15-body,
  .rfm-top15-candidate-item > .rfm-top15-body{
    align-self:stretch!important;
    justify-self:stretch!important;
    justify-content:center!important;
    align-items:flex-end!important;
    min-height:92px!important;
    padding:10px 11px!important;
    border-radius:16px!important;
    background:linear-gradient(180deg,rgba(210,4,43,.065),rgba(255,255,255,.78))!important;
    border:1px solid rgba(210,4,43,.20)!important;
    box-shadow:none!important;
    text-align:right!important;
  }
  .rfm-top15-item > .rfm-top15-body .rfm-top15-song,
  .rfm-top15-candidate-item > .rfm-top15-body .rfm-top15-song{
    font-size:clamp(15px,4.05vw,19px)!important;
    line-height:1.08!important;
  }
  .rfm-top15-item > .rfm-top15-body .rfm-top15-artist,
  .rfm-top15-candidate-item > .rfm-top15-body .rfm-top15-artist{
    font-size:clamp(9.5px,2.65vw,12px)!important;
    line-height:1.14!important;
  }
}
@media(max-width:420px){
  .rfm-top15{
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .rfm-top15-item,
  .rfm-top15-candidate-item{
    grid-template-columns:minmax(154px,49%) minmax(0,1fr)!important;
    column-gap:10px!important;
  }
  .rfm-top15-media .rfm-top15-img,
  .rfm-top15-item > .rfm-top15-body,
  .rfm-top15-candidate-item > .rfm-top15-body{
    min-height:86px!important;
    border-radius:15px!important;
  }
  .rfm-top15-item > .rfm-top15-body,
  .rfm-top15-candidate-item > .rfm-top15-body{
    padding:9px 10px!important;
  }
}
@media(max-width:340px){
  .rfm-top15-item,
  .rfm-top15-candidate-item{
    grid-template-columns:146px minmax(0,1fr)!important;
    column-gap:9px!important;
  }
  .rfm-top15-media .rfm-top15-img,
  .rfm-top15-item > .rfm-top15-body,
  .rfm-top15-candidate-item > .rfm-top15-body{
    min-height:82px!important;
  }
}


/* v0.24: draw the candidate plus with CSS instead of a font glyph.
   This avoids font ascender/descender metrics, so the mark is geometrically centered. */
.rfm-top15-candidate-rank{
  position:relative!important;
  display:block!important;
  overflow:hidden!important;
  padding:0!important;
  font-size:0!important;
  line-height:0!important;
  text-indent:-9999px!important;
}
.rfm-top15-candidate-rank::before,
.rfm-top15-candidate-rank::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  display:block!important;
  border-radius:999px!important;
  background:currentColor!important;
  transform:translate(-50%,-50%)!important;
}
.rfm-top15-candidate-rank::before{
  width:24px!important;
  height:5px!important;
}
.rfm-top15-candidate-rank::after{
  width:5px!important;
  height:24px!important;
}
@media(max-width:560px){
  .rfm-top15-candidate-rank::before{
    width:18px!important;
    height:4px!important;
  }
  .rfm-top15-candidate-rank::after{
    width:4px!important;
    height:18px!important;
  }
}


/* v0.25: desktop spacing for status badges.
   When a row has NAUJIENA/SIULOMA style badges, the badge needs its own wider column
   so it does not visually collide with the 16:9 thumbnail. Lightweight CSS only. */
@media(min-width:861px){
  .rfm-top15-item{
    grid-template-columns:58px 96px minmax(168px,214px) minmax(0,1fr) 74px 92px!important;
    column-gap:18px!important;
  }
  .rfm-top15-candidate-item{
    grid-template-columns:58px 96px minmax(168px,214px) minmax(0,1fr) 82px!important;
  }
  .rfm-top15-change{
    min-width:0!important;
    justify-content:center!important;
  }
  .rfm-top15-move-badge{
    max-width:96px!important;
    padding-left:11px!important;
    padding-right:11px!important;
  }
}
@media(min-width:861px) and (max-width:1100px){
  .rfm-top15-item{
    grid-template-columns:52px 88px 152px minmax(0,1fr) 64px 82px!important;
    column-gap:15px!important;
  }
  .rfm-top15-candidate-item{
    grid-template-columns:52px 88px 152px minmax(0,1fr) 68px!important;
  }
  .rfm-top15-move-badge{
    max-width:88px!important;
    padding-left:9px!important;
    padding-right:9px!important;
    letter-spacing:.055em!important;
  }
}


/* v0.30: Relax FM style vote messages and lighter feedback states. */
.rfm-top15-vote-status[hidden]{display:none!important}
.rfm-top15-vote-status{margin:0 0 18px;padding:12px 14px;border-radius:16px;font-weight:800;background:rgba(255,255,255,.72);border:1px solid rgba(210,4,43,.14);color:#4b3c3f;box-shadow:0 8px 20px rgba(38,28,29,.04)}
.rfm-top15-vote-status.is-success{border-color:rgba(210,4,43,.22)!important;color:#a50422!important;background:rgba(210,4,43,.075)!important}
.rfm-top15-vote-status.is-limit{border-color:rgba(38,28,29,.12)!important;color:#4b3c3f!important;background:rgba(255,255,255,.78)!important}
.rfm-top15-vote-status.is-error{border-color:rgba(210,4,43,.28)!important;color:#a50422!important;background:rgba(210,4,43,.10)!important}
.rfm-top15-vote-button.is-loading{cursor:progress}
.rfm-top15-vote-button.is-disabled{pointer-events:none}
@media(max-width:560px){.rfm-top15-vote-status{font-size:12.5px;line-height:1.45;margin-bottom:14px;padding:11px 12px;border-radius:14px}}

/* v0.31: contextual vote feedback at the exact voting spot.
   Lightweight: one tiny DOM node per clicked button, no extra requests, no layout-heavy blur. */
.rfm-top15-vote-slot{position:relative!important;overflow:visible!important;z-index:3}
.rfm-top15-vote-feedback{position:absolute;right:0;top:calc(100% + 7px);z-index:20;min-width:146px;max-width:210px;padding:9px 10px;border-radius:14px;background:rgba(255,255,255,.96);border:1px solid rgba(210,4,43,.22);box-shadow:0 12px 28px rgba(38,28,29,.12);color:#261c1d;text-align:left;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease;font-weight:800;line-height:1.18}
.rfm-top15-vote-feedback.is-visible{opacity:1;transform:translateY(0)}
.rfm-top15-vote-feedback::before{content:"";position:absolute;right:26px;top:-6px;width:10px;height:10px;transform:rotate(45deg);background:inherit;border-left:1px solid rgba(210,4,43,.22);border-top:1px solid rgba(210,4,43,.22)}
.rfm-top15-vote-feedback-main{display:block;color:#d2042b;font-size:12px;letter-spacing:.035em;text-transform:uppercase}
.rfm-top15-vote-feedback-sub{display:block;margin-top:2px;color:#6f6266;font-size:11px;font-weight:750;letter-spacing:.005em;text-transform:none}
.rfm-top15-vote-feedback.is-limit{border-color:rgba(38,28,29,.16);background:rgba(255,255,255,.98)}
.rfm-top15-vote-feedback.is-limit .rfm-top15-vote-feedback-main{color:#4b3c3f}
.rfm-top15-vote-feedback.is-error{border-color:rgba(210,4,43,.30);background:rgba(210,4,43,.075)}
.rfm-top15-vote-status.is-a11y{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;box-shadow:none!important}
@media(max-width:860px){
  .rfm-top15-vote-feedback{left:0;right:auto;top:calc(100% + 6px);min-width:132px;max-width:168px;padding:8px 9px;border-radius:13px;box-shadow:0 10px 22px rgba(38,28,29,.12)}
  .rfm-top15-vote-feedback::before{left:22px;right:auto}
  .rfm-top15-vote-feedback-main{font-size:10.5px;letter-spacing:.03em}
  .rfm-top15-vote-feedback-sub{font-size:10px}
}
@media(max-width:420px){
  .rfm-top15-vote-feedback{min-width:124px;max-width:156px;padding:7px 8px}
  .rfm-top15-vote-feedback-main{font-size:10px}
  .rfm-top15-vote-feedback-sub{font-size:9.5px}
}

/* v0.32: vote feedback lifecycle + mobile placement.
   One feedback chip at a time, auto-hidden by JS after 3s.
   Mobile chip is positioned to the right of the vote button instead of below it,
   so it no longer collides with the song/artist row. Lightweight CSS only. */
.rfm-top15-vote-feedback{
  will-change:opacity,transform;
}
@media(max-width:860px){
  .rfm-top15-vote-slot{
    z-index:40!important;
  }
  .rfm-top15-vote-feedback{
    left:calc(100% + 8px)!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    min-width:128px!important;
    max-width:164px!important;
    transform:translate(4px,-50%)!important;
  }
  .rfm-top15-vote-feedback.is-visible{
    transform:translate(0,-50%)!important;
  }
  .rfm-top15-vote-feedback::before{
    left:-5px!important;
    right:auto!important;
    top:50%!important;
    transform:translateY(-50%) rotate(45deg)!important;
    border-left:1px solid rgba(210,4,43,.22)!important;
    border-bottom:1px solid rgba(210,4,43,.22)!important;
    border-top:0!important;
  }
}
@media(max-width:420px){
  .rfm-top15-vote-feedback{
    left:calc(100% + 6px)!important;
    min-width:116px!important;
    max-width:142px!important;
    padding:7px 8px!important;
  }
  .rfm-top15-vote-feedback-main{font-size:9.5px!important;line-height:1.05!important}
  .rfm-top15-vote-feedback-sub{font-size:9px!important;line-height:1.15!important}
}
@media(max-width:340px){
  .rfm-top15-vote-feedback{
    left:calc(100% + 5px)!important;
    min-width:108px!important;
    max-width:132px!important;
  }
}


/* v0.33: public empty / boundary states. Lightweight static styles only. */
.rfm-top15-state-card{display:block;margin:0 0 18px;padding:22px 24px;border-radius:24px;background:rgba(255,255,255,.70);border:1px solid rgba(210,4,43,.14);box-shadow:0 14px 32px rgba(38,28,29,.06);color:#3a1d22}
.rfm-top15-state-card h3{margin:6px 0 8px;font-size:clamp(24px,3vw,34px);line-height:1.08;font-weight:900;letter-spacing:-.02em;color:#261c1d}
.rfm-top15-state-card p{margin:0;color:#5b4d51;font-size:16px;line-height:1.55;font-weight:700}
.rfm-top15-state-kicker{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;background:rgba(210,4,43,.10);border:1px solid rgba(210,4,43,.18);color:#d2042b;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:860px){.rfm-top15-state-card{padding:18px 16px;border-radius:18px}.rfm-top15-state-card h3{font-size:22px}.rfm-top15-state-card p{font-size:14px}}

/* v0.42.3: public Golden Songs page */
.rfm-top15-golden-public{max-width:1180px;margin:clamp(78px,8vw,116px) auto 48px;padding:8px 0 24px;color:#261c1d}
.rfm-top15-golden-public-head{margin:0 0 22px;padding:28px 30px;border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,245,247,.62));border:1px solid rgba(210,4,43,.13);box-shadow:0 18px 44px rgba(38,28,29,.075);backdrop-filter:blur(16px)}
.rfm-top15-golden-public-head h2{margin:8px 0 10px;font-size:clamp(34px,4.2vw,58px);line-height:.96;font-weight:950;letter-spacing:-.055em;color:#25191c;text-transform:none}
.rfm-top15-golden-public-head p{max-width:820px;margin:0;color:#5f5155;font-size:18px;line-height:1.58;font-weight:600}
.rfm-top15-golden-public-stats{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.rfm-top15-golden-public-stats span{display:inline-flex;align-items:center;min-height:30px;padding:6px 12px;border-radius:999px;background:rgba(210,4,43,.085);border:1px solid rgba(210,4,43,.14);color:#d2042b;font-size:12px;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.rfm-top15-golden-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rfm-top15-golden-public-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:center;min-height:112px;padding:16px 18px;border-radius:24px;background:rgba(255,255,255,.74);border:1px solid rgba(38,28,29,.075);box-shadow:0 12px 28px rgba(38,28,29,.055);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
.rfm-top15-golden-public-card.has-thumb{grid-template-columns:132px minmax(0,1fr);padding:14px 18px 14px 14px}
.rfm-top15-golden-public-card.is-linked:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(38,28,29,.095);border-color:rgba(210,4,43,.20);background:rgba(255,255,255,.86)}
.rfm-top15-golden-public-thumb{display:block;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:rgba(210,4,43,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.50)}
.rfm-top15-golden-public-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.rfm-top15-golden-public-body{min-width:0}
.rfm-top15-golden-public-meta{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.rfm-top15-golden-public-number{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:24px;padding:0 8px;border-radius:999px;background:#d2042b;color:#fff;font-size:11px;font-weight:950;letter-spacing:.055em;line-height:1}
.rfm-top15-golden-public-badge{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:rgba(255,234,171,.72);border:1px solid rgba(218,159,19,.24);color:#9b6200;font-size:10px;font-weight:950;letter-spacing:.075em;text-transform:uppercase;line-height:1}
.rfm-top15-golden-public-card h3{margin:0;color:#271b1e;font-size:19px;line-height:1.16;font-weight:930;letter-spacing:-.018em;text-transform:uppercase}
.rfm-top15-golden-public-card h3 a{color:inherit;text-decoration:none}
.rfm-top15-golden-public-card h3 a:hover{color:#d2042b}
.rfm-top15-golden-public-card h3 span{color:#271b1e}
.rfm-top15-golden-public-card p{margin:5px 0 0;color:#6f6266;font-size:13px;line-height:1.25;font-weight:850;letter-spacing:.035em;text-transform:uppercase}
.rfm-top15-golden-public-card.is-static{background:rgba(255,255,255,.58);box-shadow:0 8px 20px rgba(38,28,29,.035)}
.rfm-top15-golden-public-card.is-static h3 span{color:#3d3033}
@media(max-width:900px){.rfm-top15-golden-public-grid{grid-template-columns:1fr}.rfm-top15-golden-public-head{padding:24px 20px;border-radius:24px}.rfm-top15-golden-public-head p{font-size:16px}.rfm-top15-golden-public-card.has-thumb{grid-template-columns:116px minmax(0,1fr)}}
@media(max-width:560px){.rfm-top15-golden-public{padding:0 0 24px}.rfm-top15-golden-public-head{padding:20px 16px;border-radius:20px}.rfm-top15-golden-public-head h2{font-size:34px}.rfm-top15-golden-public-head p{font-size:15px}.rfm-top15-golden-public-card{min-height:0;padding:14px;border-radius:20px}.rfm-top15-golden-public-card.has-thumb{grid-template-columns:96px minmax(0,1fr);gap:11px;padding:12px}.rfm-top15-golden-public-thumb{border-radius:14px}.rfm-top15-golden-public-card h3{font-size:16px}.rfm-top15-golden-public-card p{font-size:11.5px}.rfm-top15-golden-public-number{min-width:32px;height:22px;font-size:10px}.rfm-top15-golden-public-badge{height:22px;font-size:9px}}

/* v0.42.3: public Golden Songs cleanup */
.rfm-top15-golden-public-card .rfm-top15-golden-public-body{padding-top:0}
.rfm-top15-golden-public-card h3{margin-top:0}


/* 0.42.11: dedicated Golden Songs page title without changing the page template. */
body.rfm-golden-songs-page .entry-header,
body.rfm-golden-songs-page .entry-title {
  display:none !important;
}
body.rfm-golden-songs-page .rfm-top15-golden-public.is-dedicated-page {
  margin-top:0;
}
.rfm-top15-golden-page-title-row {
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 16px;
}
.rfm-top15-golden-page-title-mark {
  flex:0 0 14px;
  width:14px;
  height:14px;
  border-radius:4px;
  background:#d2042b;
  box-shadow:0 6px 16px rgba(210,4,43,.22);
}
.rfm-top15-golden-page-title {
  margin:0 !important;
  color:#25191c;
  font-size:clamp(34px,4.2vw,58px);
  line-height:.96;
  font-weight:950;
  letter-spacing:-.055em;
  text-transform:uppercase;
}
@media (min-width:769px) {
  body.rfm-golden-songs-page .site-content {
    padding-top:20px;
  }
  body.rfm-golden-songs-page .rfm-top15-golden-public.is-dedicated-page {
    margin-top:clamp(98px,9vw,132px);
  }
}
@media (max-width:560px) {
  .rfm-top15-golden-page-title-row { gap:10px; margin-bottom:12px; }
  .rfm-top15-golden-page-title-mark { flex-basis:11px; width:11px; height:11px; border-radius:3px; }
  .rfm-top15-golden-page-title { font-size:34px; }
}


/* 0.42.12: keep the dedicated Golden Songs title below the mobile sticky header. */
@media (max-width:768px) {
  body.rfm-golden-songs-page .rfm-top15-golden-public.is-dedicated-page {
    margin-top:calc(env(safe-area-inset-top, 0px) + 104px) !important;
  }
}
