.rfm-song-rating {
  --rfm-red: #d2042b;
  --rfm-red-soft: #ef4765;
  --rfm-ink: #171217;
  --rfm-muted: rgba(23, 18, 23, .62);
  --rfm-rating-x: 50%;
  --rfm-rating-score-color: var(--rfm-red);
  position: relative;
  isolation: isolate;
  margin: 14px 0 20px;
  padding: 12px 15px 14px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, .62);
  background:
    radial-gradient(circle at 92% 6%, rgba(210, 4, 43, .13), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.56), rgba(255,255,255,.25));
  -webkit-backdrop-filter: blur(13px) saturate(158%) contrast(1.015);
  backdrop-filter: blur(13px) saturate(158%) contrast(1.015);
  box-shadow:
    0 18px 42px rgba(21, 13, 23, .105),
    inset 0 1px 0 rgba(255,255,255,.68),
    inset 0 -1px 0 rgba(210,4,43,.045);
  overflow: hidden;
  transform: translate3d(0, 10px, 0) scale(.992);
  opacity: 0;
  animation: rfmRatingEnter .56s cubic-bezier(.2,.85,.2,1) .04s forwards;
  will-change: transform, opacity;
}
.rfm-song-rating::before {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: 23px;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(135deg, rgba(255,255,255,.28), rgba(255,255,255,.08));
}
.rfm-song-rating::after {
  content: '';
  position: absolute;
  left: 8%;
  right: 8%;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.76), transparent);
  pointer-events: none;
}
.rfm-song-rating[data-context="air"] {
  max-width: min(760px, calc(100vw - 32px));
  margin: 12px auto 18px;
}
@keyframes rfmRatingEnter {
  from { opacity: 0; transform: translate3d(0, 10px, 0) scale(.992); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
.rfm-song-rating.is-dismissing {
  pointer-events: none;
  animation: rfmRatingDismiss .58s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes rfmRatingDismiss {
  from { opacity: 1; transform: translate3d(0, 0, 0) scale(1); max-height: 120px; margin-top: 14px; margin-bottom: 20px; }
  to { opacity: 0; transform: translate3d(0, -18px, 0) scale(.985); max-height: 0; margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; }
}
.rfm-song-rating__message {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  margin: 0 0 9px;
  color: var(--rfm-ink);
  font-size: 13px;
  line-height: 1.22;
  font-weight: 850;
  letter-spacing: .005em;
  text-shadow: 0 1px 0 rgba(255,255,255,.52);
}
.rfm-song-rating__message span {
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}
.rfm-song-rating__message.is-marquee span {
  max-width: none;
  min-width: max-content;
  animation: rfmRatingMarquee 8.5s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes rfmRatingMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(var(--rfm-marquee-shift, 0px)); }
}
.rfm-song-rating__bar-wrap {
  position: relative;
  z-index: 1;
  display: block;
}
.rfm-song-rating__bar,
.rfm-song-rating__bar:hover,
.rfm-song-rating__bar:focus,
.rfm-song-rating__bar:active {
  -webkit-appearance: none !important;
  appearance: none !important;
  position: relative;
  display: block !important;
  width: 100% !important;
  height: 26px;
  min-width: 0 !important;
  max-width: none !important;
  padding: 0 10px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  background-color: transparent !important;
  color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  text-decoration: none !important;
  line-height: normal !important;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  z-index: 2;
}
.rfm-song-rating__bar[aria-disabled="true"] { cursor: default; opacity: .86; }
.rfm-song-rating__bar:focus-visible {
  outline: 2px solid rgba(210, 4, 43, .28) !important;
  outline-offset: 5px;
}
.rfm-song-rating__bar > * { pointer-events: none; }
.rfm-song-rating__track {
  position: absolute;
  left: 10px;
  right: 10px;
  top: 10px;
  height: 6px;
  border-radius: 999px;
  background: #d7dbe2;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.72),
    0 7px 16px rgba(23,18,23,.08);
}
.rfm-song-rating__track::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: transparent;
  opacity: 0;
}
.rfm-song-rating__ticks {
  position: absolute;
  left: 12px;
  right: 12px;
  top: 7px;
  display: flex;
  justify-content: space-between;
}
.rfm-song-rating__ticks i {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #eef1f5;
  box-shadow:
    0 0 0 2px #d7dbe2,
    0 1px 4px rgba(23,18,23,.08);
  opacity: 1;
  transform: scale(.72);
}
.rfm-song-rating__marker {
  position: absolute;
  left: var(--rfm-rating-x, 50%);
  top: 2px;
  transform: translateX(-50%) scale(1);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--rfm-rating-score-color, var(--rfm-red));
  border: 2px solid #fff;
  box-shadow:
    0 9px 20px rgba(210,4,43,.22),
    inset 0 1px 0 rgba(255,255,255,.32);
  pointer-events: none;
  transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease;
}
.rfm-song-rating__marker b {
  display: block;
  color: #fff;
  font-size: 11px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -.03em;
}
.rfm-song-rating__bar:active .rfm-song-rating__marker,
.rfm-song-rating.is-previewing .rfm-song-rating__marker,
.rfm-song-rating.is-saving .rfm-song-rating__marker {
  transform: translateX(-50%) scale(1.12);
  box-shadow:
    0 10px 24px rgba(210,4,43,.28),
    inset 0 1px 0 rgba(255,255,255,.38);
}
.rfm-song-rating__status {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  overflow: hidden !important;
}
.rfm-song-rating__hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
}
.rfm-song-rating.is-voted .rfm-song-rating__bar { pointer-events: none; }
.rfm-song-rating.is-voted .rfm-song-rating__bar-wrap { display: none !important; }
.rfm-song-rating.is-voted .rfm-song-rating__message { color: var(--rfm-red); margin-bottom: 0; }
.rfm-song-rating.is-saving { opacity: .88; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .rfm-song-rating {
    background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,247,249,.88));
  }
}
@media (max-width: 768px) {
  .rfm-song-rating {
    margin: 12px 0 18px;
    padding: 11px 13px 13px;
    border-radius: 21px;
    -webkit-backdrop-filter: blur(9px) saturate(150%);
    backdrop-filter: blur(9px) saturate(150%);
  }
  .rfm-song-rating[data-context="air"] {
    max-width: calc(100vw - 22px);
    margin-left: auto;
    margin-right: auto;
  }
  .rfm-song-rating__message {
    font-size: 12.5px;
    margin-bottom: 8px;
  }
  .rfm-song-rating__bar { height: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .rfm-song-rating,
  .rfm-song-rating.is-dismissing {
    animation: none;
    opacity: 1;
    transform: none;
  }
  .rfm-song-rating__message.is-marquee span { animation: none; }
  .rfm-song-rating__marker { transition: none; }
}

/* v0.8: centered top message and homepage/air placement polish */
.rfm-song-rating__message {
  text-align: center;
}
.rfm-song-rating__message span {
  margin-left: auto;
  margin-right: auto;
}
.rfm-song-rating__message.is-marquee {
  text-align: left;
}
.rfm-song-rating[data-context="air"] {
  width: min(760px, calc(100vw - 32px));
}
.rfm-song-rating-air-slot {
  display: block;
  width: 100%;
}
.rfm-song-rating-air-slot:empty {
  display: none;
}

/* v0.9: match homepage song history width and typography */
.rfm-song-rating__message {
  color: #261C1D;
  font-size: 13px;
  line-height: 1.22;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.rfm-song-rating.is-voted .rfm-song-rating__message {
  margin-bottom: 8px;
}

/* v0.10.2: prompt badge matches the post-vote ACIU/thanks style in all placements */
.rfm-song-rating__message span,
.rfm-song-rating.is-voted .rfm-song-rating__message span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 100%;
  min-height: 22px;
  padding: 3px 9px;
  border-radius: 6px;
  background: rgba(229, 45, 39, 0.08);
  color: #E52D27;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
  box-shadow: none;
}

.rfm-song-rating[data-context="air"] {
  width: 100%;
  max-width: none;
  margin: 12px 0 18px;
  box-sizing: border-box;
}

.rfm-song-rating-air-slot {
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
}

.rfm-song-rating-air-slot .rfm-song-rating {
  width: 100%;
  max-width: none;
}

@media (max-width: 768px) {
  .rfm-song-rating__message {
    font-size: 13px;
  }

  .rfm-song-rating.is-voted .rfm-song-rating__message span {
    font-size: 11px;
  }

  .rfm-song-rating[data-context="air"] {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
}

/* v0.10: mobile sticky-player rating replaces the station logo rail without extra polling */
@media (max-width: 768px) {
  #rfp-sticky-bar.rfm-rating-mobile-active {
    height: 165px !important;
  }

  #rfp-sticky-bar .rfm-sticky-right-controls-group {
    position: relative;
    overflow: hidden;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-sticky-right-controls-group {
    opacity: 1 !important;
    visibility: visible !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-sticky-stations-switcher {
    transform: translate3d(0, 34px, 0);
    opacity: 0;
    pointer-events: none;
    transition: transform .42s cubic-bezier(.2,.85,.2,1), opacity .26s ease;
  }

  .rfm-song-rating-mobile-slot {
    position: absolute;
    inset: 6px 0 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    transform: translate3d(0, 42px, 0);
    opacity: 0;
    transition: transform .46s cubic-bezier(.2,.85,.2,1), opacity .26s ease;
    z-index: 4;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot {
    transform: translate3d(0, 0, 0);
    opacity: 1;
    pointer-events: auto;
  }

  .rfm-song-rating-mobile-slot:empty {
    display: none;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 10px 13px 12px !important;
    border-radius: 20px;
    background:
      radial-gradient(circle at 96% 0%, rgba(229,45,39,.12), transparent 36%),
      linear-gradient(135deg, rgba(255,255,255,.58), rgba(255,255,255,.28));
    -webkit-backdrop-filter: blur(9px) saturate(150%);
    backdrop-filter: blur(9px) saturate(150%);
    box-shadow:
      0 10px 26px rgba(38,28,29,.09),
      inset 0 1px 0 rgba(255,255,255,.72);
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating__message {
    margin: 0 0 7px !important;
    text-align: center !important;
  }

  /* v0.10.2: compact mobile badge style, used by sticky player, top player and post rating boxes */
  .rfm-song-rating__message span,
  .rfm-song-rating.is-voted .rfm-song-rating__message span,
  .rfm-song-rating-mobile-slot .rfm-song-rating__message span,
  .rfm-song-rating-mobile-slot .rfm-song-rating.is-voted .rfm-song-rating__message span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: 100%;
    min-height: 20px;
    padding: 3px 10px;
    border-radius: 6px;
    background: rgba(229,45,39,.08);
    color: #E52D27;
    font-size: 12px !important;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
    box-shadow: none;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating__bar,
  .rfm-song-rating-mobile-slot .rfm-song-rating__bar:hover,
  .rfm-song-rating-mobile-slot .rfm-song-rating__bar:focus,
  .rfm-song-rating-mobile-slot .rfm-song-rating__bar:active {
    height: 27px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating__track {
    left: 9px;
    right: 9px;
    top: 10px;
    height: 6px;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
    left: 10px;
    right: 10px;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
    width: 11px;
    height: 11px;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating__marker {
    top: 4px;
    width: 18px;
    height: 18px;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating.is-dismissing {
    animation: rfmRatingMobileDismiss .58s cubic-bezier(.4,0,.2,1) forwards;
  }

  @keyframes rfmRatingMobileDismiss {
    from { opacity: 1; transform: translate3d(0,0,0) scale(1); }
    to { opacity: 0; transform: translate3d(0,42px,0) scale(.99); }
  }
}

/* v0.11: public listener song ratings page */
.rfm-song-ratings-public{max-width:1180px;margin:0 auto;padding:150px 0 44px;color:#261c1d;font-family:inherit;box-sizing:border-box}
.rfm-song-ratings-public *{box-sizing:border-box}
.rfm-song-ratings-public__head{display:flex;flex-direction:column;gap:14px;margin:0 0 22px}
.rfm-song-ratings-public__kicker,.rfm-song-ratings-public__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);border:1px solid rgba(255,255,255,.55)}
.rfm-song-ratings-public__kicker span,.rfm-song-ratings-public__section-head span{width:8px;height:8px;background:#d2042b;border-radius:1px;flex:0 0 auto}
.rfm-song-ratings-public__kicker strong,.rfm-song-ratings-public__section-head h2{margin:0;font-size:15px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#d2042b;line-height:1.1}
.rfm-song-ratings-public__head h1{margin:0;font-size:clamp(34px,4.5vw,60px);line-height:1.02;font-weight:950;letter-spacing:-.035em;color:#261c1d;text-transform:uppercase}
.rfm-song-ratings-public__head p{max-width:960px;margin:0;padding:18px 20px;border-radius:22px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.58);box-shadow:0 14px 32px rgba(38,28,29,.06);font-weight:760;color:#4b3c3f;line-height:1.62}
.rfm-song-ratings-public__tabs{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0 0}
.rfm-song-ratings-public__tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 18px;border-radius:999px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.62);box-shadow:0 10px 24px rgba(38,28,29,.055);color:#d2042b;text-decoration:none;font-weight:950;letter-spacing:.035em;text-transform:uppercase;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}
.rfm-song-ratings-public__tabs a:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(38,28,29,.08);color:#d2042b}
.rfm-song-ratings-public__tabs a.is-active{background:#d2042b;color:#fff;border-color:#d2042b;box-shadow:0 14px 32px rgba(210,4,43,.19)}
.rfm-song-ratings-public__list{display:grid;gap:14px;margin-top:18px}
.rfm-song-ratings-public__item{display:grid;grid-template-columns:58px minmax(150px,174px) minmax(0,1fr) 92px;align-items:center;gap:16px;padding:15px 18px;border-radius:26px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.58);box-shadow:0 18px 42px rgba(38,28,29,.07);transition:transform .18s ease,box-shadow .18s ease}
.rfm-song-ratings-public__item:hover{transform:translateY(-1px);box-shadow:0 22px 48px rgba(38,28,29,.1)}
.rfm-song-ratings-public__rank{font-size:42px;line-height:1;font-weight:950;letter-spacing:-.05em;color:#1f1617;text-align:center}
.rfm-song-ratings-public__thumb{display:block;position:relative;width:100%;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#1b0910;box-shadow:0 10px 22px rgba(38,28,29,.08);text-decoration:none}
.rfm-song-ratings-public__thumb img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.001);transition:transform .2s ease}
.rfm-song-ratings-public__item:hover .rfm-song-ratings-public__thumb img{transform:scale(1.035)}
.rfm-song-ratings-public__thumb-fallback{display:grid;place-items:center;width:100%;height:100%;color:#fff;font-weight:950;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(135deg,#24030a,#d2042b)}
.rfm-song-ratings-public__body{display:flex;flex-direction:column;gap:6px;min-width:0;align-items:flex-start}
.rfm-song-ratings-public__song{display:block;font-size:clamp(20px,1.65vw,27px);line-height:1.08;font-weight:900;letter-spacing:.015em;text-decoration:none;color:#141012;text-transform:uppercase;text-wrap:balance;max-width:100%}
.rfm-song-ratings-public__song:hover{color:#d2042b}
.rfm-song-ratings-public__artist{font-size:clamp(12px,1vw,15px);line-height:1.2;font-weight:700;letter-spacing:.075em;color:#7d7487;text-transform:uppercase;max-width:100%}
.rfm-song-ratings-public__score{justify-self:end;display:flex;flex-direction:column;align-items:center;justify-content:center;width:82px;min-height:72px;border-radius:22px;background:rgba(210,4,43,.08);border:1px solid rgba(210,4,43,.14);color:#d2042b;text-align:center}
.rfm-song-ratings-public__score strong{font-size:25px;line-height:1;font-weight:950;letter-spacing:-.04em}
.rfm-song-ratings-public__empty{margin:16px 0;padding:22px;border-radius:24px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.62);box-shadow:0 14px 34px rgba(38,28,29,.06);display:flex;flex-direction:column;gap:6px;color:#4b3c3f}
.rfm-song-ratings-public__empty strong{font-size:20px;font-weight:950;color:#261c1d}
.rfm-song-ratings-public__vote-more{margin-top:34px}
.rfm-song-ratings-public__section-head{margin-bottom:16px}
.rfm-song-ratings-public__random-list{display:grid;gap:20px}
.rfm-song-ratings-public__expanded{padding:18px;border-radius:28px;background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.62);box-shadow:0 18px 42px rgba(38,28,29,.07);overflow:hidden}
.rfm-song-ratings-public__expanded-head{display:grid;grid-template-columns:minmax(170px,240px) minmax(0,1fr);align-items:center;gap:18px;margin-bottom:14px}
.rfm-song-ratings-public__expanded-thumb{display:block;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#1b0910;box-shadow:0 10px 24px rgba(38,28,29,.08)}
.rfm-song-ratings-public__expanded-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.rfm-song-ratings-public__expanded-body{display:flex;flex-direction:column;gap:6px;min-width:0;align-items:flex-start}.rfm-song-ratings-public__expanded h3{margin:0;font-size:clamp(24px,2.4vw,38px);line-height:1.04;font-weight:950;letter-spacing:.005em;color:#141012;text-transform:uppercase}
.rfm-song-ratings-public__expanded h3 a{color:inherit;text-decoration:none}
.rfm-song-ratings-public__expanded h3 a:hover{color:#d2042b}
.rfm-song-ratings-public__expanded-artist{display:block;font-size:clamp(12px,1vw,15px);line-height:1.2;font-weight:700;letter-spacing:.075em;color:#7d7487;text-transform:uppercase}
.rfm-song-ratings-public__expanded .rfm-song-rating{margin:12px 0 16px}
.rfm-song-ratings-public__expanded-video{position:relative;width:100%;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#1b0910;box-shadow:0 12px 28px rgba(38,28,29,.1)}
.rfm-song-ratings-public__expanded-video iframe,.rfm-song-ratings-public__expanded-video embed,.rfm-song-ratings-public__expanded-video object,.rfm-song-ratings-public__expanded-video video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media(max-width:1100px){.rfm-song-ratings-public{padding-left:20px;padding-right:20px}.rfm-song-ratings-public__item{grid-template-columns:52px 152px minmax(0,1fr) 82px;gap:13px;padding:15px 16px}.rfm-song-ratings-public__song{font-size:19px}.rfm-song-ratings-public__artist{font-size:12px}}
@media(max-width:860px){.rfm-song-ratings-public{padding:118px 14px 34px}.rfm-song-ratings-public__head{gap:12px;margin-bottom:18px}.rfm-song-ratings-public__head p{padding:15px 16px;border-radius:18px;font-size:14px}.rfm-song-ratings-public__tabs a{min-height:36px;padding:8px 14px;font-size:12px}.rfm-song-ratings-public__item{grid-template-columns:minmax(132px,44%) minmax(0,1fr);grid-template-areas:'rank score' 'thumb body';align-items:center;column-gap:12px;row-gap:10px;padding:13px;border-radius:18px}.rfm-song-ratings-public__rank{grid-area:rank;justify-self:start;text-align:left;font-size:30px}.rfm-song-ratings-public__thumb{grid-area:thumb;border-radius:16px}.rfm-song-ratings-public__body{grid-area:body;align-items:flex-end;text-align:right}.rfm-song-ratings-public__song{font-size:clamp(15px,4.25vw,20px);line-height:1.08;text-align:right}.rfm-song-ratings-public__artist{font-size:clamp(10px,2.9vw,12px);text-align:right}.rfm-song-ratings-public__score{grid-area:score;justify-self:end;flex-direction:row;gap:4px;width:auto;min-height:36px;padding:8px 13px;border-radius:999px}.rfm-song-ratings-public__score strong{font-size:20px}.rfm-song-ratings-public__expanded{padding:14px;border-radius:20px}.rfm-song-ratings-public__expanded-head{grid-template-columns:1fr;gap:12px}.rfm-song-ratings-public__expanded-thumb{border-radius:16px}.rfm-song-ratings-public__expanded-body{align-items:flex-start}.rfm-song-ratings-public__expanded h3{font-size:clamp(20px,6vw,28px)}}
@media(max-width:420px){.rfm-song-ratings-public__item{grid-template-columns:minmax(124px,44%) minmax(0,1fr);column-gap:10px}.rfm-song-ratings-public__rank{font-size:28px}.rfm-song-ratings-public__song{font-size:15px}.rfm-song-ratings-public__artist{font-size:9.5px}}

/* v0.11.3: public ratings vote cards show video in the visual/thumb slot */
.rfm-song-ratings-public__expanded-thumb--video {
  position: relative;
  cursor: default;
}
.rfm-song-ratings-public__expanded-thumb--video iframe,
.rfm-song-ratings-public__expanded-thumb--video embed,
.rfm-song-ratings-public__expanded-thumb--video object,
.rfm-song-ratings-public__expanded-thumb--video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}


/* v0.11.6: cleaned timeline-inspired voting scale */
.rfm-song-rating {
  --rfm-rating-fill: 50%;
  --rfm-rating-ratio: .5;
  --rfm-rating-score-color: #e52d27;
}

.rfm-song-rating__bar,
.rfm-song-rating__bar:hover,
.rfm-song-rating__bar:focus,
.rfm-song-rating__bar:active {
  height: 42px;
  padding: 0 14px !important;
  touch-action: pan-y;
}

.rfm-song-rating__track {
  left: 14px;
  right: 14px;
  top: 18px;
  height: 6px;
  overflow: visible;
  background: rgba(23,18,23,.12);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.68);
}

.rfm-song-rating__track::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: var(--rfm-rating-fill, 50%);
  border-radius: inherit;
  background: linear-gradient(90deg, #b9bec7 0%, #d8a7ad 38%, #ef666d 72%, #d2042b 100%);
  opacity: 1;
  box-shadow: 0 5px 14px rgba(210,4,43,.14);
  transition: width .12s ease;
}

.rfm-song-rating__track::after {
  display: none;
}

.rfm-song-rating__ticks {
  left: 14px;
  right: 14px;
  top: 12px;
  z-index: 2;
}

.rfm-song-rating__ticks i {
  position: relative;
  width: 18px;
  height: 18px;
  opacity: 1;
  transform: none;
  background: #fff;
  border: 0;
  box-shadow:
    0 0 0 2px rgba(255,255,255,.78),
    0 1px 0 rgba(255,255,255,.95) inset,
    0 4px 10px rgba(23,18,23,.12);
}

.rfm-song-rating__ticks i::after {
  content: '';
  position: absolute;
  inset: 5px;
  border-radius: inherit;
  background: currentColor;
}

.rfm-song-rating__ticks i:nth-child(1) { color: #aeb3bd; }
.rfm-song-rating__ticks i:nth-child(2) { color: #c7a9ae; }
.rfm-song-rating__ticks i:nth-child(3) { color: #de858e; }
.rfm-song-rating__ticks i:nth-child(4) { color: #ef5b63; }
.rfm-song-rating__ticks i:nth-child(5) { color: #e52d27; }
.rfm-song-rating__ticks i:nth-child(6) { color: #d2042b; }

.rfm-song-rating__marker {
  left: calc(14px + ((100% - 28px) * var(--rfm-rating-ratio, .5)));
  top: 8px;
  width: 26px;
  height: 26px;
  background: #fff;
  border: 6px solid var(--rfm-rating-score-color, #e52d27);
  box-shadow:
    0 9px 22px rgba(210,4,43,.25),
    0 0 0 4px rgba(255,255,255,.72),
    inset 0 1px 0 rgba(255,255,255,.95);
  transform: translateX(-50%) scale(1);
  z-index: 4;
}

.rfm-song-rating__marker b {
  display: block;
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translateX(-50%);
  white-space: nowrap;
  max-width: min(280px, 72vw);
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 7px 10px;
  border-radius: 999px;
  background: #171217;
  color: #fff;
  font-size: 12px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: -.01em;
  box-shadow: 0 10px 22px rgba(23,18,23,.18);
  pointer-events: none;
}

.rfm-song-rating__marker b::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #171217;
}

.rfm-song-rating__bar:hover .rfm-song-rating__marker,
.rfm-song-rating__bar:focus-visible .rfm-song-rating__marker,
.rfm-song-rating__bar:active .rfm-song-rating__marker,
.rfm-song-rating.is-previewing .rfm-song-rating__marker,
.rfm-song-rating.is-saving .rfm-song-rating__marker,
.rfm-song-rating.is-voted .rfm-song-rating__marker {
  transform: translateX(-50%) scale(1.08);
  box-shadow:
    0 12px 28px rgba(210,4,43,.28),
    0 0 0 5px rgba(255,255,255,.72),
    inset 0 1px 0 rgba(255,255,255,.95);
}

.rfm-song-rating__bar::after,
.rfm-song-rating__bar:hover::after,
.rfm-song-rating__bar:focus-visible::after,
.rfm-song-rating.is-saving .rfm-song-rating__bar::after,
.rfm-song-rating.is-voted .rfm-song-rating__bar::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 768px) {
  .rfm-song-rating__bar,
  .rfm-song-rating__bar:hover,
  .rfm-song-rating__bar:focus,
  .rfm-song-rating__bar:active {
    height: 40px;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .rfm-song-rating__track {
    left: 12px;
    right: 12px;
    top: 17px;
  }
  .rfm-song-rating__ticks {
    left: 12px;
    right: 12px;
    top: 11px;
  }
  .rfm-song-rating__ticks i {
    width: 17px;
    height: 17px;
  }
  .rfm-song-rating__ticks i::after { inset: 5px; }
  .rfm-song-rating__marker {
    left: calc(12px + ((100% - 24px) * var(--rfm-rating-ratio, .5)));
    top: 8px;
    width: 24px;
    height: 24px;
    border-width: 5px;
  }
  .rfm-song-rating__marker b {
    font-size: 11px;
    padding: 6px 9px;
    max-width: min(240px, 80vw);
  }
}

.rfm-song-rating-mobile-slot .rfm-song-rating__bar,
.rfm-song-rating-mobile-slot .rfm-song-rating__bar:hover,
.rfm-song-rating-mobile-slot .rfm-song-rating__bar:focus,
.rfm-song-rating-mobile-slot .rfm-song-rating__bar:active {
  height: 40px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.rfm-song-rating-mobile-slot .rfm-song-rating__track {
  left: 12px;
  right: 12px;
  top: 17px;
}

.rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
  left: 12px;
  right: 12px;
  top: 11px;
}

.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
  width: 17px;
  height: 17px;
}

.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i::after { inset: 5px; }

.rfm-song-rating-mobile-slot .rfm-song-rating__marker {
  left: calc(12px + ((100% - 24px) * var(--rfm-rating-ratio, .5)));
  top: 8px;
  width: 24px;
  height: 24px;
  border-width: 5px;
}

/* v0.11.7: neutral default scale, centered numeric marker, no hover labels */
.rfm-song-rating {
  --rfm-rating-fill: 0%;
  --rfm-rating-ratio: .5;
  --rfm-rating-score-color: #d2042b;
}

.rfm-song-rating__track,
.rfm-song-rating-mobile-slot .rfm-song-rating__track {
  background: #d8dce3 !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.78),
    0 6px 14px rgba(23,18,23,.08) !important;
}

.rfm-song-rating__track::before,
.rfm-song-rating-mobile-slot .rfm-song-rating__track::before {
  width: 0 !important;
  background: transparent !important;
  opacity: 0 !important;
  box-shadow: none !important;
}

.rfm-song-rating__ticks i,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
  background: #f5f6f8 !important;
  box-shadow:
    0 0 0 2px #d8dce3,
    0 1px 0 rgba(255,255,255,.95) inset,
    0 4px 10px rgba(23,18,23,.10) !important;
  color: #b7bdc7 !important;
}

.rfm-song-rating__ticks i::after,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i::after {
  background: #b7bdc7 !important;
}

.rfm-song-rating__marker,
.rfm-song-rating-mobile-slot .rfm-song-rating__marker {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--rfm-rating-score-color, #d2042b) !important;
  border: 2px solid #fff !important;
  box-shadow:
    0 10px 24px rgba(210,4,43,.24),
    0 0 0 4px rgba(255,255,255,.72) !important;
}

.rfm-song-rating__marker b,
.rfm-song-rating-mobile-slot .rfm-song-rating__marker b {
  position: static !important;
  display: block !important;
  transform: none !important;
  padding: 0 !important;
  max-width: none !important;
  overflow: visible !important;
  white-space: normal !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #fff !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: -.03em !important;
  pointer-events: none !important;
}

.rfm-song-rating__marker b::after,
.rfm-song-rating-mobile-slot .rfm-song-rating__marker b::after {
  content: none !important;
  display: none !important;
}

.rfm-song-rating__bar:hover .rfm-song-rating__marker,
.rfm-song-rating__bar:focus-visible .rfm-song-rating__marker,
.rfm-song-rating__bar:active .rfm-song-rating__marker,
.rfm-song-rating.is-previewing .rfm-song-rating__marker,
.rfm-song-rating.is-saving .rfm-song-rating__marker {
  transform: translateX(-50%) scale(1.08) !important;
}

.rfm-song-rating.is-voted .rfm-song-rating__bar-wrap {
  display: none !important;
}


/* v0.11.8: fully neutral initial rating bar and no visible marker before selection */
.rfm-song-rating {
  --rfm-rating-fill: 0%;
  --rfm-rating-ratio: 0;
  --rfm-rating-score-color: #d2042b;
}

.rfm-song-rating__marker[hidden],
.rfm-song-rating-mobile-slot .rfm-song-rating__marker[hidden] {
  display: none !important;
}

.rfm-song-rating:not(.is-previewing):not(.is-saving):not(.is-voted) .rfm-song-rating__track::before,
.rfm-song-rating-mobile-slot .rfm-song-rating:not(.is-previewing):not(.is-saving):not(.is-voted) .rfm-song-rating__track::before {
  width: 0 !important;
  opacity: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.rfm-song-rating__message span,
.rfm-song-rating.is-voted .rfm-song-rating__message span {
  text-transform: none !important;
}

/* v0.11.11: Relax FM-style public page title */
.rfm-song-ratings-public__head .rfm-song-ratings-public__kicker{
  display:none !important;
}
.rfm-song-ratings-public__title{
  display:inline-flex;
  align-items:center;
  gap:12px;
  align-self:flex-start;
  margin:0 0 2px !important;
  padding:7px 15px;
  border-radius:10px;
  background:rgba(255,255,255,.44);
  border:1px solid rgba(255,255,255,.58);
  box-shadow:0 10px 24px rgba(38,28,29,.045);
  line-height:1 !important;
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase;
  color:#d2042b !important;
}
.rfm-song-ratings-public__title span{
  width:8px;
  height:8px;
  flex:0 0 auto;
  border-radius:2px;
  background:#d2042b;
}
.rfm-song-ratings-public__title strong{
  display:block;
  font:inherit;
  color:inherit;
}
@media(max-width:860px){
  .rfm-song-ratings-public__title{
    gap:10px;
    padding:7px 13px;
    font-size:13px !important;
    letter-spacing:.085em !important;
  }
  .rfm-song-ratings-public__title span{width:7px;height:7px;}
}

/* v0.11.12: 10 point scale keeps the same visual system, with denser rating ticks */
.rfm-song-rating__ticks i {
  width: 10px;
  height: 10px;
  transform: scale(.66);
}
.rfm-song-rating__marker {
  min-width: 22px;
}
.rfm-song-rating__marker b {
  font-size: 10px;
}
@media (max-width: 768px) {
  .rfm-song-rating__ticks i,
  .rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
    width: 9px;
    height: 9px;
    transform: scale(.64);
  }
  .rfm-song-rating-mobile-slot .rfm-song-rating__marker b {
    font-size: 9px;
  }
}


/* v0.11.13: Variant 1 rating bar refinements */
.rfm-song-rating {
  --rfm-rating-fill: 0%;
  --rfm-rating-ratio: 0;
  --rfm-rating-score-color: #d2042b;
}

.rfm-song-rating__bar-wrap {
  margin-top: 10px;
}

.rfm-song-rating__message {
  margin-bottom: 8px;
  text-align: center;
}

.rfm-song-rating__message span {
  display: inline-block;
  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 850 !important;
  color: #171217 !important;
}

.rfm-song-rating__bar,
.rfm-song-rating__bar:hover,
.rfm-song-rating__bar:focus,
.rfm-song-rating__bar:active {
  height: 46px !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

.rfm-song-rating__track,
.rfm-song-rating-mobile-slot .rfm-song-rating__track {
  left: 16px !important;
  right: 16px !important;
  top: 19px !important;
  height: 4px !important;
  border-radius: 999px !important;
  background: #d8dde5 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.rfm-song-rating__track::before,
.rfm-song-rating-mobile-slot .rfm-song-rating__track::before {
  opacity: 1 !important;
  width: var(--rfm-rating-fill, 0%) !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, #f3d9dd 0%, #f5b8be 28%, #ef666d 62%, #d2042b 100%) !important;
  box-shadow: 0 4px 10px rgba(210,4,43,.14) !important;
}

.rfm-song-rating:not(.is-previewing):not(.is-saving):not(.is-voted) .rfm-song-rating__track::before,
.rfm-song-rating-mobile-slot .rfm-song-rating:not(.is-previewing):not(.is-saving):not(.is-voted) .rfm-song-rating__track::before {
  width: 0 !important;
  opacity: 0 !important;
}

.rfm-song-rating__ticks,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
  left: 16px !important;
  right: 16px !important;
  top: 10px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.rfm-song-rating__ticks i,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  border-radius: 999px !important;
  transform: none !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 2px #efcfd4 inset, 0 0 0 1px rgba(210,4,43,.08), 0 2px 8px rgba(23,18,23,.06) !important;
}

.rfm-song-rating__ticks i::after,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i::after {
  content: '' !important;
  position: absolute !important;
  inset: 4px !important;
  border-radius: inherit !important;
  background: #fde5e8 !important;
}

.rfm-song-rating__ticks i:nth-child(1)::after,
.rfm-song-rating__ticks i:nth-child(2)::after,
.rfm-song-rating__ticks i:nth-child(3)::after { background: #f6f7f9 !important; }
.rfm-song-rating__ticks i:nth-child(4)::after { background: #f8d9dd !important; }
.rfm-song-rating__ticks i:nth-child(5)::after { background: #f8ccd1 !important; }
.rfm-song-rating__ticks i:nth-child(6)::after { background: #f6bcc2 !important; }
.rfm-song-rating__ticks i:nth-child(7)::after { background: #f5a7af !important; }
.rfm-song-rating__ticks i:nth-child(8)::after { background: #f36c73 !important; }
.rfm-song-rating__ticks i:nth-child(9)::after { background: #eb3f44 !important; }
.rfm-song-rating__ticks i:nth-child(10)::after { background: #d2042b !important; }

.rfm-song-rating__marker,
.rfm-song-rating-mobile-slot .rfm-song-rating__marker {
  top: 4px !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  border: 3px solid #fff !important;
  background: var(--rfm-rating-score-color, #d2042b) !important;
  box-shadow: 0 0 0 3px var(--rfm-rating-score-color, #d2042b), 0 8px 22px rgba(210,4,43,.22) !important;
  z-index: 4 !important;
}

.rfm-song-rating__marker b,
.rfm-song-rating-mobile-slot .rfm-song-rating__marker b {
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  color: #fff !important;
}

.rfm-song-rating__scale {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 11px;
  font-size: 12px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .02em;
}

.rfm-song-rating__scale-low {
  color: rgba(23,18,23,.72);
}

.rfm-song-rating__scale-high {
  color: #d2042b;
}

.rfm-song-rating__status {
  display: none !important;
}

@media (max-width: 768px) {
  .rfm-song-rating__message span { font-size: 14px !important; }
  .rfm-song-rating__bar,
  .rfm-song-rating__bar:hover,
  .rfm-song-rating__bar:focus,
  .rfm-song-rating__bar:active {
    height: 44px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .rfm-song-rating__track,
  .rfm-song-rating-mobile-slot .rfm-song-rating__track {
    left: 12px !important;
    right: 12px !important;
    top: 18px !important;
  }
  .rfm-song-rating__ticks,
  .rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
    left: 12px !important;
    right: 12px !important;
    top: 9px !important;
  }
  .rfm-song-rating__ticks i,
  .rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
    width: 18px !important;
    height: 18px !important;
    flex-basis: 18px !important;
  }
  .rfm-song-rating__ticks i::after,
  .rfm-song-rating-mobile-slot .rfm-song-rating__ticks i::after {
    inset: 4px !important;
  }
  .rfm-song-rating__marker,
  .rfm-song-rating-mobile-slot .rfm-song-rating__marker {
    top: 4px !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
  }
  .rfm-song-rating__scale {
    margin-top: 10px;
    font-size: 11px;
  }
}

/* v0.11.14: mobile player also shows clear labels, compactly */
@media (max-width: 768px) {
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    margin: 0 !important;
    padding: 8px 10px 9px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,.58) !important;
    background: linear-gradient(135deg, rgba(255,255,255,.68), rgba(255,255,255,.38)) !important;
    box-shadow: 0 10px 24px rgba(23,18,23,.10) !important;
    backdrop-filter: blur(11px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(11px) saturate(150%) !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__message {
    display: block !important;
    margin: 0 0 5px !important;
    text-align: center !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__message span {
    display: inline-block !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
    color: #171217 !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar-wrap {
    display: block !important;
    margin-top: 0 !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar,
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:hover,
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:focus,
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:active {
    height: 34px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__track {
    left: 10px !important;
    right: 10px !important;
    top: 15px !important;
    height: 4px !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__ticks {
    left: 10px !important;
    right: 10px !important;
    top: 7px !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__ticks i {
    width: 14px !important;
    height: 14px !important;
    flex-basis: 14px !important;
    box-shadow: 0 0 0 1px #efcfd4 inset, 0 0 0 1px rgba(210,4,43,.05) !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__ticks i::after {
    inset: 3px !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__marker {
    top: 3px !important;
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__marker b {
    font-size: 10px !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__scale {
    display: flex !important;
    margin-top: 5px !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .015em !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__scale-low {
    color: rgba(23,18,23,.64) !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__scale-high {
    color: #d2042b !important;
  }
}


/* v0.11.16: mobile air rating lives as its own sticky-player row.
   It grows the player without replacing or moving the three station tabs. */
@media (max-width: 768px) {
  #rfp-sticky-bar.rfm-rating-mobile-active {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active #rfp-sticky-inner,
  #rfp-sticky-bar #rfp-sticky-inner.rfm-rating-mobile-active {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 52px 52px 38px !important;
    row-gap: 7px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    align-content: start !important;
    align-items: stretch !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-sticky-meta-block {
    grid-row: 1 !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot {
    grid-row: 2 !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    z-index: 3 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-sticky-right-controls-group {
    grid-row: 3 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-sticky-stations-switcher,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-sticky-stations-switcher.rfm-stations-rail {
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    width: 100% !important;
    max-width: none !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 8px 11px !important;
    display: grid !important;
    grid-template-columns: 104px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, rgba(255,255,255,.48), rgba(255,255,255,.24)) !important;
    border: 1px solid rgba(255,255,255,.62) !important;
    -webkit-backdrop-filter: blur(9px) saturate(150%) !important;
    backdrop-filter: blur(9px) saturate(150%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.58) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__message {
    margin: 0 !important;
    min-width: 0 !important;
    text-align: left !important;
    overflow: hidden !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__message span,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating.is-voted .rfm-song-rating__message span {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #d20435 !important;
    font-size: 10px !important;
    line-height: 1.05 !important;
    font-weight: 950 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-shadow: none !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__bar-wrap {
    margin: 0 !important;
    min-width: 0 !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__bar,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__bar:hover,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__bar:focus,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__bar:active {
    height: 28px !important;
    min-height: 28px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
    border-radius: 999px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__track {
    left: 10px !important;
    right: 10px !important;
    top: 11px !important;
    height: 6px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
    left: 10px !important;
    right: 10px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
    width: 10px !important;
    height: 10px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__marker {
    top: 4px !important;
    width: 18px !important;
    height: 18px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__scale {
    display: none !important;
  }

  body.rfm-rating-mobile-active,
  body:has(#rfp-sticky-bar.rfm-rating-mobile-active) {
    padding-bottom: 182px !important;
  }
}

@media (max-width: 380px) {
  #rfp-sticky-bar.rfm-rating-mobile-active #rfp-sticky-inner,
  #rfp-sticky-bar #rfp-sticky-inner.rfm-rating-mobile-active {
    grid-template-rows: 50px 50px 36px !important;
    row-gap: 6px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot {
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    min-height: 50px !important;
    grid-template-columns: 94px minmax(0, 1fr) !important;
    gap: 8px !important;
    padding: 7px 9px !important;
    border-radius: 17px !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__message span {
    font-size: 9px !important;
  }

  body.rfm-rating-mobile-active,
  body:has(#rfp-sticky-bar.rfm-rating-mobile-active) {
    padding-bottom: 172px !important;
  }
}


/* v0.11.18: exact rating scale geometry.
   Track, marker and click/touch math now use the visible tick centers.
   Keep mobile sticky compact through its own variables. */
.rfm-song-rating {
  --rfm-rating-edge-pad: 16px;
  --rfm-rating-dot-size: 20px;
  --rfm-rating-center-pad: calc(var(--rfm-rating-edge-pad) + (var(--rfm-rating-dot-size) / 2));
}

.rfm-song-rating__bar,
.rfm-song-rating__bar:hover,
.rfm-song-rating__bar:focus,
.rfm-song-rating__bar:active {
  padding-left: var(--rfm-rating-edge-pad) !important;
  padding-right: var(--rfm-rating-edge-pad) !important;
}

.rfm-song-rating__ticks,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
  left: var(--rfm-rating-edge-pad) !important;
  right: var(--rfm-rating-edge-pad) !important;
}

.rfm-song-rating__ticks i,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
  width: var(--rfm-rating-dot-size) !important;
  height: var(--rfm-rating-dot-size) !important;
  flex: 0 0 var(--rfm-rating-dot-size) !important;
}

.rfm-song-rating__track,
.rfm-song-rating-mobile-slot .rfm-song-rating__track {
  left: var(--rfm-rating-center-pad) !important;
  right: var(--rfm-rating-center-pad) !important;
}

.rfm-song-rating__marker,
.rfm-song-rating-mobile-slot .rfm-song-rating__marker {
  left: calc(var(--rfm-rating-center-pad) + ((100% - (var(--rfm-rating-center-pad) * 2)) * var(--rfm-rating-ratio, 0))) !important;
}

@media (max-width: 768px) {
  .rfm-song-rating {
    --rfm-rating-edge-pad: 12px;
    --rfm-rating-dot-size: 18px;
  }
}

@media (max-width: 768px) {
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    --rfm-rating-edge-pad: 10px;
    --rfm-rating-dot-size: 14px;
  }
}

@media (max-width: 768px) {
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    --rfm-rating-edge-pad: 9px;
    --rfm-rating-dot-size: 10px;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__track {
    left: var(--rfm-rating-center-pad) !important;
    right: var(--rfm-rating-center-pad) !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
    left: var(--rfm-rating-edge-pad) !important;
    right: var(--rfm-rating-edge-pad) !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__marker {
    left: calc(var(--rfm-rating-center-pad) + ((100% - (var(--rfm-rating-center-pad) * 2)) * var(--rfm-rating-ratio, 0))) !important;
  }
}


/* v0.11.19: symmetric rating scale field.
   The previous v0.11.18 geometry aligned the marker to tick centers, but the bar
   itself still had padding and older track rules could visually make the right
   side look longer. This final layer creates a single neutral field: no bar
   padding, one side gap for tick left/right edges, and one derived center gap
   for track/marker. JS already reads the real tick centers, so clicks follow the
   moved bubbles automatically. */
.rfm-song-rating {
  --rfm-rating-side-gap: 18px;
  --rfm-rating-dot-size: 20px;
  --rfm-rating-center-gap: calc(var(--rfm-rating-side-gap) + (var(--rfm-rating-dot-size) / 2));
}

.rfm-song-rating__bar,
.rfm-song-rating__bar:hover,
.rfm-song-rating__bar:focus,
.rfm-song-rating__bar:active,
.rfm-song-rating-mobile-slot .rfm-song-rating__bar,
.rfm-song-rating-mobile-slot .rfm-song-rating__bar:hover,
.rfm-song-rating-mobile-slot .rfm-song-rating__bar:focus,
.rfm-song-rating-mobile-slot .rfm-song-rating__bar:active {
  box-sizing: border-box !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

.rfm-song-rating__ticks,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
  left: var(--rfm-rating-side-gap) !important;
  right: var(--rfm-rating-side-gap) !important;
  width: auto !important;
  box-sizing: border-box !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.rfm-song-rating__ticks i,
.rfm-song-rating-mobile-slot .rfm-song-rating__ticks i {
  width: var(--rfm-rating-dot-size) !important;
  height: var(--rfm-rating-dot-size) !important;
  flex: 0 0 var(--rfm-rating-dot-size) !important;
}

.rfm-song-rating__track,
.rfm-song-rating-mobile-slot .rfm-song-rating__track {
  left: var(--rfm-rating-center-gap) !important;
  right: var(--rfm-rating-center-gap) !important;
  width: auto !important;
  box-sizing: border-box !important;
}

.rfm-song-rating__marker,
.rfm-song-rating-mobile-slot .rfm-song-rating__marker {
  left: calc(var(--rfm-rating-center-gap) + ((100% - (var(--rfm-rating-center-gap) * 2)) * var(--rfm-rating-ratio, 0))) !important;
}

@media (max-width: 768px) {
  .rfm-song-rating {
    --rfm-rating-side-gap: 14px;
    --rfm-rating-dot-size: 18px;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    --rfm-rating-side-gap: 10px;
    --rfm-rating-dot-size: 14px;
  }
}

@media (max-width: 768px) {
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    --rfm-rating-side-gap: 9px;
    --rfm-rating-dot-size: 10px;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__ticks {
    left: var(--rfm-rating-side-gap) !important;
    right: var(--rfm-rating-side-gap) !important;
    width: auto !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__track {
    left: var(--rfm-rating-center-gap) !important;
    right: var(--rfm-rating-center-gap) !important;
    width: auto !important;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating__marker {
    left: calc(var(--rfm-rating-center-gap) + ((100% - (var(--rfm-rating-center-gap) * 2)) * var(--rfm-rating-ratio, 0))) !important;
  }
}

/* v0.11.20: balanced visible scale field.
   Some page contexts give the rating bar almost the full card width. In that
   layout the rightmost tick can visually run into the card edge while the left
   side still looks correct because labels/padding create a stronger left anchor.
   Keep one shared field for ticks, track, marker and click math by narrowing the
   actual bar field symmetrically. JS reads the real visible tick centers, so the
   selected score follows these moved bubbles automatically. */
.rfm-song-rating {
  --rfm-rating-field-inset: 14px;
}

.rfm-song-rating__bar-wrap {
  box-sizing: border-box !important;
  width: 100% !important;
}

.rfm-song-rating__bar,
.rfm-song-rating__bar:hover,
.rfm-song-rating__bar:focus,
.rfm-song-rating__bar:active {
  width: calc(100% - (var(--rfm-rating-field-inset) * 2)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 768px) {
  .rfm-song-rating {
    --rfm-rating-field-inset: 8px;
  }
}

@media (max-width: 768px) {
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    --rfm-rating-field-inset: 0px;
  }

  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    --rfm-rating-field-inset: 0px;
  }
}


/* v0.11.21: install/cache-safe final scale field.
   This layer is intentionally limited to the rating scale geometry. It does not
   touch sticky-player layout, air-rating thanks/dismiss behaviour, AJAX voting,
   or page-level theme containers. Track, ticks, marker and click/touch math stay
   aligned because JS reads the actual visible tick centers. */
.rfm-song-rating {
  --rfm-rating-side-gap: 18px;
  --rfm-rating-dot-size: 20px;
  --rfm-rating-center-gap: calc(var(--rfm-rating-side-gap) + (var(--rfm-rating-dot-size) / 2));
  --rfm-rating-field-inset: clamp(24px, 4.2vw, 52px);
}

.rfm-song-rating__bar-wrap {
  box-sizing: border-box !important;
  width: 100% !important;
}

.rfm-song-rating__bar,
.rfm-song-rating__bar:hover,
.rfm-song-rating__bar:focus,
.rfm-song-rating__bar:active {
  box-sizing: border-box !important;
  display: block !important;
  width: calc(100% - (var(--rfm-rating-field-inset) * 2)) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

.rfm-song-rating__ticks {
  left: var(--rfm-rating-side-gap) !important;
  right: var(--rfm-rating-side-gap) !important;
  width: auto !important;
  box-sizing: border-box !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.rfm-song-rating__ticks i {
  width: var(--rfm-rating-dot-size) !important;
  height: var(--rfm-rating-dot-size) !important;
  flex: 0 0 var(--rfm-rating-dot-size) !important;
}

.rfm-song-rating__track {
  left: var(--rfm-rating-center-gap) !important;
  right: var(--rfm-rating-center-gap) !important;
  width: auto !important;
  box-sizing: border-box !important;
}

.rfm-song-rating__marker {
  left: calc(var(--rfm-rating-center-gap) + ((100% - (var(--rfm-rating-center-gap) * 2)) * var(--rfm-rating-ratio, 0))) !important;
}

/* Compact air/mobile sticky rating keeps its existing tight field and height. */
@media (max-width: 768px) {
  .rfm-song-rating {
    --rfm-rating-side-gap: 14px;
    --rfm-rating-dot-size: 18px;
    --rfm-rating-field-inset: 10px;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"],
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] {
    --rfm-rating-side-gap: 9px;
    --rfm-rating-dot-size: 10px;
    --rfm-rating-field-inset: 0px;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar,
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:hover,
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:focus,
  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:active,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:hover,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:focus,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__bar:active {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__ticks,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__ticks {
    left: var(--rfm-rating-side-gap) !important;
    right: var(--rfm-rating-side-gap) !important;
    width: auto !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__track,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__track {
    left: var(--rfm-rating-center-gap) !important;
    right: var(--rfm-rating-center-gap) !important;
    width: auto !important;
  }

  .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__marker,
  #rfp-sticky-bar.rfm-rating-mobile-active .rfm-song-rating-mobile-slot .rfm-song-rating[data-context="air"] .rfm-song-rating__marker {
    left: calc(var(--rfm-rating-center-gap) + ((100% - (var(--rfm-rating-center-gap) * 2)) * var(--rfm-rating-ratio, 0))) !important;
  }
}
