/* Official contests — Phase 3 shell */

.pls-contest-phase-stepper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.pls-contest-phase-stepper__item {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.2rem;
  min-height: 1.75rem;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgb(var(--border, 228 228 231));
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgb(var(--muted-foreground, 100 116 139));
  background: transparent;
  white-space: nowrap;
}

.pls-contest-phase-stepper__date {
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  opacity: 0.9;
}

.pls-contest-phase-stepper__link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pls-contest-phase-stepper__link:hover {
  opacity: 0.9;
}

.pls-contest-phase-stepper__item--done {
  color: rgb(var(--foreground, 10 10 10));
  background: rgb(var(--muted, 244 244 245));
}

.pls-contest-phase-stepper__item--current {
  color: rgb(180 83 9);
  border-color: rgb(251 191 36);
  background: rgb(254 243 199);
}

.dark .pls-contest-phase-stepper__item--current {
  color: rgb(253 230 138);
  border-color: rgb(180 83 9);
  background: rgb(69 26 3 / 0.55);
}

.pls-contest-status-banner {
  padding: 0.75rem 0.85rem;
  border-radius: 0.75rem;
  border: 1px solid rgb(var(--border, 228 228 231));
  background: rgb(var(--muted, 244 244 245) / 0.45);
}

.dark .pls-contest-status-banner {
  background: rgb(39 39 42 / 0.55);
}

.pls-contest-status-banner__lead {
  font-size: 0.875rem;
  line-height: 1.4;
  color: rgb(var(--foreground, 10 10 10));
}

.dark .pls-contest-status-banner__lead {
  color: rgb(var(--foreground, 250 250 250));
}

.pls-contest-sponsor {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  padding: 0;
  border: none;
  background: transparent;
  text-decoration: none;
  color: inherit;
}

.pls-contest-sponsor__text {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.pls-contest-media {
  position: relative;
  flex-shrink: 0;
  width: 4.5rem;
  overflow: hidden;
  border-radius: calc(var(--radius, 0.5rem) - 2px);
  border: 1px solid rgb(var(--border, 228 228 231));
  background: rgb(var(--muted, 244 244 245));
}

/* Contest Activity detail: compact graphic beside title (mobile tab-bar + desktop). */
.pls-contest-detail-head__row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.pls-contest-detail-head__media .pls-contest-media,
.pls-contest-detail-head__media-link .pls-contest-media {
  width: 5.5rem;
}

html[data-hide-footer='true'] .pls-contest-detail-head__media .pls-contest-media,
html[data-hide-footer='true'] .pls-contest-detail-head__media-link .pls-contest-media,
body.has-tab-bar .pls-contest-detail-head__media .pls-contest-media,
body.has-tab-bar .pls-contest-detail-head__media-link .pls-contest-media {
  width: 4.75rem;
}

@media (min-width: 640px) {
  .pls-contest-detail-head__media .pls-contest-media,
  .pls-contest-detail-head__media-link .pls-contest-media {
    width: 6.5rem;
  }
}

.pls-contest-detail-head__title {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.pls-contest-detail-head__details-link {
  display: inline;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
  font: inherit;
}

.pls-contest-detail-head__details-link:hover {
  color: rgb(var(--foreground));
}

.pls-contest-list-details-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 1rem;
  background: rgb(0 0 0 / 0.55);
}

@media (min-width: 640px) {
  .pls-contest-list-details-modal {
    align-items: center;
  }
}

.pls-contest-list-details-modal__panel {
  position: relative;
  width: min(100%, 28rem);
  max-height: min(88vh, 40rem);
  overflow: auto;
  border-radius: 0.75rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--card));
  color: rgb(var(--foreground));
  padding: 1rem 1.1rem 1.25rem;
  box-shadow: 0 12px 40px rgb(0 0 0 / 0.35);
}

.dark .pls-contest-list-details-modal__panel {
  box-shadow: 0 12px 40px rgb(0 0 0 / 0.55);
}

.pls-contest-list-details-modal__header {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.pls-contest-list-details-modal__eyebrow {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgb(var(--muted-foreground));
}

.pls-contest-list-details-modal__title {
  margin: 0.2rem 0 0;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.pls-contest-list-details-modal__close {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--background));
  color: rgb(var(--foreground));
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.pls-contest-list-details-modal__body {
  padding-bottom: 0.25rem;
}

body.pls-contest-list-details-modal-open {
  overflow: hidden;
}


.pls-contest-media--wide {
  width: 100%;
  max-width: 18rem;
}

.pls-contest-banner-preview {
  display: block;
  width: 100%;
}

.pls-contest-banner-preview .pls-contest-media--wide {
  max-width: 14rem;
}

.pls-contest-form-preview {
  margin-top: 0.35rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgb(var(--border, 228 228 231));
  border-radius: 0.55rem;
  background: rgb(var(--muted, 244 244 245) / 0.45);
}

.dark .pls-contest-form-preview {
  background: rgb(var(--muted, 39 39 42) / 0.45);
}

.pls-contest-form-preview__label {
  margin: 0 0 0.45rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.pls-contest-form-preview__empty {
  font-size: 0.8125rem;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.pls-contest-form-preview__frame {
  position: relative;
  width: 100%;
  max-width: 20rem;
  margin: 0;
  overflow: hidden;
  border-radius: 0.4rem;
  border: 1px solid rgb(var(--border, 228 228 231));
  background:
    linear-gradient(45deg, rgb(0 0 0 / 0.06) 25%, transparent 25%),
    linear-gradient(-45deg, rgb(0 0 0 / 0.06) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgb(0 0 0 / 0.06) 75%),
    linear-gradient(-45deg, transparent 75%, rgb(0 0 0 / 0.06) 75%);
  background-size: 16px 16px;
  background-position: 0 0, 0 8px, 8px -8px, -8px 0;
}

.pls-contest-form-preview__frame img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: transparent;
}

.pls-contest-form-preview__frame--sponsorWide {
  max-width: 100%;
}

.pls-contest-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pls-contest-media__overlay {
  position: absolute;
  left: 50%;
  top: 42%;
  z-index: 1;
  transform: translate(-50%, -50%) rotate(-12deg);
  max-width: 92%;
  padding: 0.2rem 0.45rem;
  border-radius: 0.25rem;
  background: rgb(0 0 0 / 0.55);
  color: #fff;
  font-size: clamp(0.65rem, 12%, 1.15rem);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.1;
  text-align: center;
  text-shadow: 0 1px 2px rgb(0 0 0 / 0.45);
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pls-contest-media--wide .pls-contest-media__overlay {
  font-size: clamp(0.9rem, 9vw, 1.6rem);
  padding: 0.35rem 0.65rem;
}

.pls-contest-media--empty {
  display: flex;
  align-items: center;
  justify-content: center;
}

.pls-contest-media__placeholder {
  font-size: 1.25rem;
  font-weight: 800;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.pls-contest-upload-guide {
  list-style: disc;
}

.pls-contest-upload-guide li {
  margin: 0.15rem 0;
}

.pls-contest-tz-help {
  vertical-align: middle;
}

.pls-contest-sponsor-tips-help {
  vertical-align: middle;
}

.pls-contest-phases-help {
  vertical-align: middle;
}

/* Opaque surface — community page Tailwind may not map bg-card to CSS vars */
.pls-contest-phases-help #pls-contest-phases-help-popover {
  z-index: 50;
  box-sizing: border-box;
  width: min(22rem, calc(100vw - 2.5rem));
  max-width: min(22rem, calc(100vw - 2.5rem));
  white-space: normal;
  overflow-wrap: break-word;
  word-wrap: break-word;
  overflow-x: hidden;
  background-color: #ffffff;
  color: #0a0a0a;
  border: 1px solid #e4e4e7;
  box-shadow: 0 10px 28px rgb(0 0 0 / 0.18);
}

.dark .pls-contest-phases-help #pls-contest-phases-help-popover {
  background-color: #18181b;
  color: #fafafa;
  border-color: #3f3f46;
  box-shadow: 0 12px 32px rgb(0 0 0 / 0.55);
}

.pls-contest-phases-help #pls-contest-phases-help-popover .pls-contest-phases-help__title {
  color: #71717a;
}

.dark .pls-contest-phases-help #pls-contest-phases-help-popover .pls-contest-phases-help__title {
  color: #a1a1aa;
}

.pls-contest-phases-help #pls-contest-phases-help-popover .pls-contest-phases-help__body,
.pls-contest-phases-help #pls-contest-phases-help-popover li {
  color: #52525b;
  white-space: normal;
  overflow-wrap: break-word;
  max-width: 100%;
}

.dark .pls-contest-phases-help #pls-contest-phases-help-popover .pls-contest-phases-help__body,
.dark .pls-contest-phases-help #pls-contest-phases-help-popover li {
  color: #a1a1aa;
}

.pls-contest-phases-help #pls-contest-phases-help-popover strong {
  color: #0a0a0a;
}

.dark .pls-contest-phases-help #pls-contest-phases-help-popover strong {
  color: #fafafa;
}

.pls-contest-card__participation {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgb(var(--foreground, 10 10 10));
}

.dark .pls-contest-card__participation {
  color: rgb(var(--foreground, 250 250 250));
}

.pls-contest-card__participation--idle {
  font-weight: 500;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.pls-contest-card__totals {
  margin: 0.35rem 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgb(var(--foreground, 10 10 10));
}

.pls-contest-card__view-noms {
  appearance: none;
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  font-weight: 700;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.pls-contest-card__view-noms:hover {
  opacity: 0.85;
}

.pls-contest-card__topline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.5rem;
  min-width: 0;
}

.pls-contest-card__eyebrow {
  flex: 0 1 auto;
  min-width: 0;
}

.pls-contest-card__topline .pls-contest-card__phase {
  flex: 0 0 auto;
}

.pls-contest-card__share {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  margin-left: auto;
  flex-shrink: 0;
  border: 1px solid rgb(var(--border, 228 228 231));
  border-radius: 0.45rem;
  background: transparent;
  color: rgb(var(--muted-foreground, 100 116 139));
  cursor: pointer;
}

.pls-contest-card__share:hover {
  color: rgb(var(--foreground, 24 24 27));
  background: rgb(var(--muted, 244 244 245));
}

.dark .pls-contest-card__share:hover {
  background: rgb(var(--muted, 39 39 42));
}

.pls-contests-board-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.pls-contests-board-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  min-width: 0;
  flex: 1;
}

.pls-contests-media-filter {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.pls-contests-media-filter select {
  font-size: 0.75rem;
  font-weight: 600;
  border: 1px solid rgb(var(--border, 228 228 231));
  border-radius: 0.45rem;
  background: rgb(var(--background, 250 250 250));
  color: rgb(var(--foreground, 24 24 27));
  padding: 0.3rem 0.55rem;
  min-height: 1.9rem;
  max-width: 10.5rem;
  cursor: pointer;
}

.dark .pls-contests-media-filter select {
  background: rgb(var(--background, 24 24 27));
}

.pls-contests-phase-filter {
  max-width: 36rem;
}

.pls-contests-phase-filter .pls-toggle-group__item {
  font-size: 0.8125rem;
}

.pls-contest-noms-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 1rem;
  background: rgba(0, 0, 0, 0.45);
}

@media (min-width: 640px) {
  .pls-contest-noms-modal {
    align-items: center;
  }
}

.pls-contest-noms-modal__panel {
  width: min(100%, 28rem);
  max-height: min(85vh, 40rem);
  display: flex;
  flex-direction: column;
  border-radius: 0.75rem;
  border: 1px solid rgb(var(--border, 228 228 231));
  background: rgb(var(--card, 255 255 255));
  color: rgb(var(--foreground, 10 10 10));
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
  overflow: hidden;
}

.dark .pls-contest-noms-modal__panel {
  background: rgb(var(--card, 24 24 27));
  color: rgb(var(--foreground, 250 250 250));
}

.pls-contest-noms-modal__header {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid rgb(var(--border, 228 228 231));
}

.pls-contest-noms-modal__eyebrow {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.pls-contest-noms-modal__title {
  margin: 0.2rem 0 0;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.25;
}

.pls-contest-noms-modal__close {
  appearance: none;
  border: 1px solid rgb(var(--border, 228 228 231));
  background: transparent;
  color: inherit;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}

.pls-contest-noms-modal__body {
  padding: 0.75rem 1rem 1rem;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.pls-contest-noms-modal__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.pls-contest-noms-modal__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.pls-contest-noms-modal__thumb {
  width: 2.75rem;
  height: 2.75rem;
  object-fit: cover;
  border-radius: 0.4rem;
  background: rgb(var(--muted, 244 244 245));
  flex-shrink: 0;
}

.pls-contest-noms-modal__thumb--empty {
  display: inline-block;
}

.pls-contest-noms-modal__item-title {
  display: block;
  font-size: 0.9rem;
  font-weight: 700;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

a.pls-contest-noms-modal__item-title:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pls-contest-noms-modal__item-meta {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: rgb(var(--muted-foreground, 100 116 139));
}

body.pls-contest-noms-modal-open {
  overflow: hidden;
}

.pls-contest-card__days {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: rgb(var(--muted-foreground, 100 116 139));
}

/* Keep tips popover above form fields; parent must not be a <p> (invalid nested <div>). */
.pls-contest-sponsor-tips-help #pls-contest-sponsor-tips-popover {
  z-index: 50;
}

.pls-contest-card {
  padding: 0.75rem !important;
}

.profile-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.profile-input,
.profile-select {
  display: block;
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius, 0.5rem);
  border: 1px solid rgb(var(--border, 228 228 231));
  background: rgb(var(--background, 255 255 255));
  color: rgb(var(--foreground, 10 10 10));
  font: inherit;
}

.profile-input:focus,
.profile-select:focus {
  outline: 2px solid rgb(var(--ring, 24 24 27));
  outline-offset: 1px;
}

/* Contest creator / selects — visible Lucide chevron */
.pls-contest-select-wrap {
  position: relative;
}

.pls-contest-select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.75rem;
  cursor: pointer;
}

.pls-contest-select-chevron {
  position: absolute;
  right: 0.7rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  pointer-events: none;
  color: rgb(var(--foreground, 10 10 10));
  opacity: 0.75;
}

.dark .pls-contest-select-chevron {
  color: rgb(var(--foreground, 250 250 250));
  opacity: 0.9;
}

/* Date/time fields with Lucide calendar & clock triggers */
.pls-contest-dt-field {
  position: relative;
}

.pls-contest-dt-input {
  padding-right: 2.85rem;
}

.pls-contest-dt-input::-webkit-calendar-picker-indicator {
  opacity: 0;
  display: none;
}

.pls-contest-dt-trigger {
  position: absolute;
  right: 0.35rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  padding: 0;
  border: 1px solid rgb(var(--border, 228 228 231));
  border-radius: 0.4rem;
  background: rgb(var(--card, 255 255 255));
  color: rgb(var(--foreground, 10 10 10));
  cursor: pointer;
}

.pls-contest-dt-trigger:hover {
  background: rgb(var(--accent, 244 244 245));
}

.pls-contest-dt-trigger:focus-visible {
  outline: 2px solid rgb(var(--ring, 24 24 27));
  outline-offset: 1px;
}

.dark .pls-contest-dt-trigger {
  background: rgb(var(--muted, 39 39 42));
  color: rgb(250 250 250);
  border-color: rgb(82 82 91);
}

.dark .pls-contest-dt-trigger:hover {
  background: rgb(63 63 70);
}

.pls-contest-sponsor-ads {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
}

.pls-contest-sponsor-note {
  line-height: 1.45;
}

.pls-contest-sponsor-note a {
  color: inherit;
}

.pls-contest-sponsor-ads__mobile,
.pls-contest-sponsor-ads__browser {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.pls-contest-sponsor-ads__mobile {
  display: flex;
}

.pls-contest-sponsor-ads__browser {
  display: none;
}

@media (min-width: 768px) {
  .pls-contest-sponsor-ads__mobile {
    display: none;
  }
  .pls-contest-sponsor-ads__browser {
    display: flex;
  }
}

.pls-contest-sponsor-ad {
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius, 0.5rem);
  border: 1px solid rgb(var(--border, 228 228 231));
  background: rgb(var(--muted, 244 244 245));
  text-decoration: none;
}

.pls-contest-sponsor-ad__img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 12rem;
  object-fit: cover;
}

.pls-contest-part__thumb {
  display: block;
  width: 2.5rem;
  height: 2.5rem;
  object-fit: cover;
  border-radius: 0.35rem;
  background: rgb(var(--muted, 244 244 245));
  flex-shrink: 0;
}

.pls-contest-part__thumb--lg {
  width: 3.75rem;
  height: 5.625rem;
  border-radius: 0.4rem;
}

.pls-contest-part__thumb-hit {
  display: inline-flex;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 0.4rem;
  flex-shrink: 0;
}

.pls-contest-part__thumb-hit:focus-visible {
  outline: 2px solid rgb(var(--ring, 24 24 27));
  outline-offset: 2px;
}

.pls-contest-part__thumb-hit:hover .pls-contest-part__thumb {
  opacity: 0.92;
}

.pls-contest-nom-heading-search {
  display: inline;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1.5px;
  text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
}

.pls-contest-nom-heading-search:hover {
  text-decoration-color: currentColor;
}

.pls-contest-nom-heading-search:focus-visible {
  outline: 2px solid rgb(var(--foreground, 10 10 10));
  outline-offset: 3px;
  border-radius: 0.25rem;
}

.dark .pls-contest-nom-heading-search:focus-visible {
  outline-color: rgb(var(--foreground, 250 250 250));
}

/* Always show “Start Nominating” beside the magnifier on contest nominate. */
.pls-contest-discovery-trigger-row .pls-discovery-trigger--labeled {
  gap: 0.4rem;
  min-width: 0;
  padding-right: 0.5rem;
  justify-content: flex-start;
}

.pls-contest-discovery-trigger-row .pls-discovery-trigger--labeled .pls-discovery-trigger__label {
  display: inline;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: rgb(var(--foreground, 10 10 10));
}

.dark .pls-contest-discovery-trigger-row .pls-discovery-trigger--labeled .pls-discovery-trigger__label {
  color: rgb(var(--foreground, 250 250 250));
}

.pls-contest-nom-mine-year {
  white-space: nowrap;
}

.pls-contest-part__thumb--empty {
  border: 1px solid rgb(var(--border, 228 228 231));
}

#pls-contest-my-rank .pls-drag-handle {
  flex-shrink: 0;
}

/* Nominate discovery results */
.pls-contest-nom-view-toggle {
  display: inline-flex;
  align-items: center;
}

.pls-contest-nom-results {
  min-height: 2rem;
}

.pls-contest-nom-results--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .pls-contest-nom-results--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.pls-contest-nom-results--bricks {
  column-count: 2;
  column-gap: 0.75rem;
}

@media (min-width: 640px) {
  .pls-contest-nom-results--bricks {
    column-count: 3;
  }
}

.pls-contest-nom-results--bricks .pls-contest-nom-card {
  break-inside: avoid;
  margin-bottom: 0.75rem;
}

.pls-contest-nom-results--lanes {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.pls-contest-nom-results--lanes .pls-contest-nom-card {
  flex: 0 0 auto;
  width: 10.5rem;
  scroll-snap-align: start;
}

@media (min-width: 640px) {
  .pls-contest-nom-results--lanes .pls-contest-nom-card {
    width: 11.5rem;
  }
}

.pls-contest-nom-results--list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pls-contest-nom-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius, 0.5rem);
  border: 1px solid rgb(var(--border, 228 228 231));
  background: rgb(var(--card, 255 255 255));
}

.dark .pls-contest-nom-card {
  background: rgb(var(--card, 24 24 27));
}

.pls-contest-nom-card--list {
  flex-direction: row;
  align-items: stretch;
  gap: 0.75rem;
  padding: 0.5rem;
}

.pls-contest-nom-card__media {
  position: relative;
  cursor: pointer;
}

.pls-contest-nom-results--list .pls-contest-nom-card__media {
  flex-shrink: 0;
  width: 4.75rem;
}

.pls-contest-nom-card__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  background: rgb(var(--muted, 244 244 245));
}

.pls-contest-nom-card__img--empty {
  border: 1px solid rgb(var(--border, 228 228 231));
}

.pls-contest-nom-card__poster--portrait {
  aspect-ratio: 2 / 3;
}

.pls-contest-nom-card__poster--square {
  aspect-ratio: 1 / 1;
}

.pls-contest-nom-results--list .pls-contest-nom-card__poster--portrait {
  width: 4.75rem;
  height: 7.125rem;
  aspect-ratio: auto;
}

.pls-contest-nom-results--list .pls-contest-nom-card__poster--square {
  width: 4.75rem;
  height: 4.75rem;
  aspect-ratio: auto;
}

.pls-contest-nom-card__actions {
  width: 100%;
  min-width: 0;
  padding: 0.5rem 0.5rem 0;
}

.pls-contest-nom-card__actions .movie-action-row {
  margin-top: 0;
}

.pls-contest-nom-card--grid > .pls-contest-nom-card__actions {
  padding: 0.5rem 0.5rem 0.25rem;
}

.pls-contest-nom-card--bricks .pls-contest-nom-card__body--top {
  padding-bottom: 0.35rem;
}

.pls-contest-nom-card--bricks .pls-contest-nom-card__actions,
.pls-contest-nom-card--list .pls-contest-nom-card__actions,
.pls-contest-nom-card--lanes .pls-contest-nom-card__actions {
  padding: 0.35rem 0 0;
}

.pls-contest-nom-card--lanes .pls-contest-nom-card__body {
  padding: 0.375rem 0.4rem 0.5rem;
}

.pls-contest-nom-card--lanes .pls-contest-nom-card__title {
  font-size: 0.6875rem;
}

.pls-contest-nom-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding: 0.5rem 0.625rem 0.625rem;
  min-width: 0;
}

.pls-contest-nom-card__body--foot {
  padding-top: 0.35rem;
}

.pls-contest-nom-card--list .pls-contest-nom-card__body {
  flex: 1;
  justify-content: center;
  padding: 0.125rem 0.25rem;
}

.pls-contest-nom-card__title {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pls-contest-nom-card__title:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pls-contest-nom-card__meta {
  font-size: 0.6875rem;
  color: rgb(var(--muted-foreground, 100 116 139));
}

.pls-contest-nom-load-more {
  display: flex;
  justify-content: center;
  padding: 0.75rem 0 0.25rem;
}

.pls-contest-nom-load-more.hidden {
  display: none;
}

.pls-contest-nom-load-more__btn {
  appearance: none;
  border: 1px solid rgb(var(--border, 228 228 231));
  background: rgb(var(--card, 255 255 255));
  color: rgb(var(--foreground, 10 10 10));
  border-radius: var(--radius, 0.5rem);
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
}

.dark .pls-contest-nom-load-more__btn {
  background: rgb(var(--card, 24 24 27));
}

.pls-contest-nom-load-more__btn:disabled {
  opacity: 0.6;
  cursor: default;
}

.pls-contest-nom-sentinel {
  width: 100%;
  height: 1px;
  pointer-events: none;
}

/* Amber nominate FAB — distinct from list-builder + / add-to-list */
.pls-contest-nominate-fab {
  position: absolute;
  top: 0.375rem;
  right: 0.375rem;
  z-index: 10;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border-radius: 9999px;
  border: 2px solid rgb(180 83 9);
  background: rgb(251 191 36 / 0.95);
  color: rgb(120 53 15);
  box-shadow: 0 1px 3px rgb(0 0 0 / 0.2);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.pls-contest-nominate-fab:hover:not(:disabled) {
  background: rgb(245 158 11);
}

.pls-contest-nominate-fab:focus-visible {
  outline: 2px solid rgb(217 119 6);
  outline-offset: 2px;
}

.pls-contest-nominate-fab:disabled,
.pls-contest-nominate-fab--on {
  cursor: default;
  opacity: 1;
  border-color: rgb(146 64 14);
  background: rgb(217 119 6);
  color: rgb(255 251 235);
}

.dark .pls-contest-nominate-fab {
  border-color: rgb(251 191 36);
  background: rgb(146 64 14 / 0.95);
  color: rgb(254 243 199);
}

.dark .pls-contest-nominate-fab:hover:not(:disabled) {
  background: rgb(180 83 9);
}

.dark .pls-contest-nominate-fab:disabled,
.dark .pls-contest-nominate-fab--on {
  background: rgb(217 119 6);
  color: rgb(255 251 235);
}

.pls-contest-nominate-fab__check {
  font-size: 0.875rem;
  font-weight: 800;
  line-height: 1;
}

.pls-contest-nominate-fab__icon {
  display: block;
}

.pls-contest-nom-stack {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.pls-contest-view-noms {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.4rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--background));
  color: rgb(var(--foreground));
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
}

.pls-contest-view-noms:hover {
  background: rgb(var(--accent));
}

.pls-contest-nom-mine-section--flash {
  outline: 2px solid rgb(245 158 11);
  outline-offset: 4px;
  border-radius: 0.5rem;
  transition: outline-color 0.3s ease;
}

.pls-contest-nom-mine-section--priority {
  order: -1;
}

.pls-contest-title-wrap {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  word-break: break-word;
  line-height: 1.35;
}

.pls-contest-rank-layout {
  display: grid;
  gap: 1rem;
}

@media (min-width: 640px) {
  .pls-contest-rank-layout {
    grid-template-columns: 1fr 1fr;
  }
}

.pls-contest-rank-layout--mine-only .pls-contest-rank-pool {
  display: none;
}

.pls-contest-rank-layout--pool-only .pls-contest-rank-mine {
  display: none;
}

.pls-contest-rank-toggle {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.25rem 0 0.5rem;
}

.pls-contest-rank-toggle__btn {
  min-height: 36px;
  padding: 0.35rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--background));
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
}

.pls-contest-rank-toggle__btn[aria-pressed='true'] {
  background: rgb(var(--primary));
  color: rgb(var(--primary-foreground));
  border-color: transparent;
}

.pls-contest-rank-reminder {
  margin: 0;
  padding: 0.55rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(251 191 36 / 0.55);
  background: rgb(254 243 199 / 0.45);
  color: rgb(120 53 15);
  font-size: 0.8125rem;
}

.dark .pls-contest-rank-reminder {
  background: rgb(120 53 15 / 0.35);
  border-color: rgb(251 191 36 / 0.4);
  color: rgb(254 243 199);
}

.pls-contest-rank-reminder[hidden] {
  display: none !important;
}

.pls-contest-dupe-warn {
  margin: 0 0 0.75rem;
  padding: 0.55rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(251 191 36 / 0.5);
  background: rgb(254 243 199 / 0.35);
  font-size: 0.8125rem;
  color: rgb(120 53 15);
}

.dark .pls-contest-dupe-warn {
  background: rgb(120 53 15 / 0.3);
  color: rgb(254 243 199);
}

.pls-contest-manager-sort {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 0.5rem;
}

.pls-contest-manager-sort__btn {
  min-height: 32px;
  padding: 0.25rem 0.55rem;
  border-radius: 0.375rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--muted));
  font-size: 0.7rem;
  font-weight: 600;
  cursor: pointer;
}

.pls-contest-manager-sort__btn[aria-pressed='true'] {
  background: rgb(var(--primary));
  color: rgb(var(--primary-foreground));
}

.pls-contest-closed-results {
  margin-top: 1rem;
}

.pls-contest-closed-results__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0 1.25rem;
}

.pls-contest-closed-results__cta a,
.pls-contest-closed-results__cta .pls-contest-closed-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.4rem 0.85rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
}

.pls-contest-closed-cta--primary {
  background: rgb(var(--primary));
  color: rgb(var(--primary-foreground));
}

.pls-contest-closed-cta--ghost {
  border: 1px solid rgb(var(--border));
  background: rgb(var(--background));
  color: rgb(var(--foreground));
}

.pls-contest-standing-link {
  color: inherit;
  text-decoration: none;
}

.pls-contest-standing-link:hover .pls-contest-title-wrap {
  text-decoration: underline;
}

/* Compact thumbs for tracking / closed standing rows (match contest.html) */
.pls-contest-standing-row > .pls-contest-standing-thumb,
.pls-contest-standing-link > .pls-contest-standing-thumb {
  flex-shrink: 0;
  width: 2.5rem;
  max-width: 2.5rem;
  height: 2.5rem;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 0.35rem;
  display: block;
  background: rgb(var(--muted));
}

#pls-contest-my-rank .pls-sort-handle,
#pls-contest-my-rank [data-sortable-handle] {
  opacity: 1;
  min-width: 28px;
  min-height: 28px;
}

.pls-contest-published-hero {
  position: relative;
  margin: 0 0 1.5rem;
  border-radius: 0.75rem;
  overflow: hidden;
  min-height: 12rem;
  background: linear-gradient(145deg, rgb(24 24 27), rgb(63 63 70));
}

.pls-contest-published-hero__img {
  display: block;
  width: 100%;
  max-height: 22rem;
  object-fit: cover;
}

.pls-contest-published-hero__copy {
  padding: 1.25rem 1.25rem 1.5rem;
  color: #fafafa;
}

.pls-contest-published-hero__eyebrow {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.85;
}

.pls-contest-published-hero__title {
  margin: 0.35rem 0 0;
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 900;
  line-height: 1.15;
  word-break: break-word;
}

.pls-contest-published-hero__actions {
  max-width: 18rem;
}

.pls-contest-published-hero__actions .movie-action-btn {
  color: #fafafa;
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(0, 0, 0, 0.28);
}

.pls-contest-published-hero__actions .movie-action-btn:hover {
  background: rgba(0, 0, 0, 0.45);
}

/* Phase 7a: personal ranking-vs-finals accuracy */
.pls-contest-accuracy {
  margin: 0 0 1.5rem;
}

.pls-contest-accuracy__eyebrow {
  letter-spacing: 0.08em;
}

.pls-contest-accuracy__pct {
  line-height: 1.1;
  color: rgb(var(--foreground));
}

.pls-contest-accuracy__sub {
  line-height: 1.4;
}

/* Phase 7b: cover contest */
.pls-contest-cover__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.pls-contest-cover__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.75rem;
}

.pls-contest-cover__grid--portrait {
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
}

.pls-contest-cover__grid--square {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.pls-contest-cover__grid--wide {
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.pls-contest-cover__card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  border: 1px solid rgb(var(--border));
  border-radius: 0.5rem;
  overflow: hidden;
  background: rgb(var(--background));
}

.pls-contest-cover__card--voted {
  border-color: rgb(var(--primary));
}

.pls-contest-cover__card--winner {
  box-shadow: inset 0 0 0 2px rgb(245 158 11 / 0.7);
}

.pls-contest-cover__frame {
  width: 100%;
  overflow: hidden;
  background: rgb(var(--muted));
}

.pls-contest-cover__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pls-contest-cover__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.4rem 0.5rem 0.55rem;
}

.pls-contest-cover__manager {
  margin-top: 0.25rem;
}

/* Cover Contests community hub */
.pls-cover-hub__contest-thumb {
  width: 4.5rem;
  height: auto;
  aspect-ratio: 2 / 3;
  display: block;
  background: rgb(var(--muted));
  object-fit: cover;
}

.pls-cover-hub__contest-thumb--empty {
  display: block;
  flex-shrink: 0;
}

.pls-cover-hub__contest-thumb--square {
  aspect-ratio: 1 / 1;
}

.pls-cover-hub__contest-thumb--wide {
  aspect-ratio: 1.91 / 1;
  width: 5.5rem;
}

.pls-contest-card__media-type,
.pls-cover-hub__media-type {
  font-size: 0.8125rem;
  font-weight: 700;
  color: rgb(var(--foreground));
}

.pls-cover-hub__contest-card .pls-contest-card__topline {
  margin-bottom: 0;
}

.pls-cover-hub-details__panel--playlist {
  max-height: min(90vh, 40rem);
}

.pls-cover-hub-details__scroll {
  margin-top: 0.75rem;
  max-height: min(55vh, 24rem);
  overflow: auto;
  border-top: 1px solid rgb(var(--border));
  padding-top: 0.75rem;
}

.pls-cover-hub-details__item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid rgb(var(--border) / 0.5);
}

.pls-cover-hub-details__item:last-child {
  border-bottom: none;
}

.pls-cover-hub-details__item-thumb {
  width: 2.25rem;
  height: 3.25rem;
  object-fit: cover;
  border-radius: 0.25rem;
  background: rgb(var(--muted));
  flex-shrink: 0;
}

.pls-cover-hub-details__item-thumb--empty {
  display: inline-block;
}

.pls-cover-hub-details__item-title {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
}

.pls-cover-hub-details__item-meta {
  font-size: 0.75rem;
  color: rgb(var(--muted-foreground));
}

.pls-cover-hub-details__specs {
  margin: 0.75rem 0 0;
  padding: 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--muted) / 0.35);
}

.pls-cover-hub-details__specs ul {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
}


/* Match all-playlists MediaFeedStatic column densities */
.pls-cover-hub__gallery--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (min-width: 640px) {
  body:not(.has-tab-bar) .pls-cover-hub__gallery--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  body:not(.has-tab-bar) .pls-cover-hub__gallery--grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.pls-cover-hub__gallery--bricks {
  column-count: 2;
  column-gap: 0.5rem;
}

@media (min-width: 400px) {
  body:not(.has-tab-bar) .pls-cover-hub__gallery--bricks {
    column-count: 3;
    column-gap: 0.75rem;
  }
}

@media (min-width: 1024px) {
  body:not(.has-tab-bar) .pls-cover-hub__gallery--bricks {
    column-count: 4;
  }
}

@media (min-width: 1280px) {
  body:not(.has-tab-bar) .pls-cover-hub__gallery--bricks {
    column-count: 5;
  }
}

.pls-cover-hub__gallery--bricks .pls-cover-hub__card {
  break-inside: avoid;
  display: inline-flex;
  width: 100%;
  margin-bottom: 0.75rem;
}

.pls-cover-hub__gallery--list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

.pls-cover-hub__gallery--lanes {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.pls-cover-hub__gallery--lanes .pls-cover-hub__card {
  flex: 0 0 auto;
  width: min(11.5rem, 72vw);
  scroll-snap-align: start;
}

@media (min-width: 640px) {
  .pls-cover-hub__gallery--lanes .pls-cover-hub__card {
    width: 12.5rem;
  }
}

.pls-cover-hub__card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  border: 1px solid rgb(var(--border));
  border-radius: 0.75rem;
  overflow: hidden;
  background: rgb(var(--card));
  padding: 0.5rem 0.5rem 0.65rem;
}

.pls-cover-hub__card--list {
  flex-direction: row;
  align-items: stretch;
  gap: 0.75rem;
  padding: 0.75rem;
}

.pls-cover-hub__card--list .pls-cover-hub__frame {
  width: 34%;
  min-width: 8.25rem;
  max-width: 15rem;
  flex-shrink: 0;
  align-self: flex-start;
}

.pls-cover-hub__card--list .pls-cover-hub__side {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  justify-content: flex-start;
}

.pls-cover-hub__card--voted {
  border-color: rgb(var(--primary));
}

.pls-cover-hub__card--winner {
  box-shadow: inset 0 0 0 2px rgb(245 158 11 / 0.7);
}

.pls-cover-hub__card--focus {
  outline: 2px solid rgb(var(--primary));
  outline-offset: 2px;
}

.pls-cover-hub__frame {
  display: block;
  width: 100%;
  overflow: hidden;
  background: rgb(var(--muted));
  border: 0;
  padding: 0;
  margin: 0;
  cursor: zoom-in;
  border-radius: 0.5rem;
}

.pls-cover-hub__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.pls-cover-hub__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.15rem 0.15rem 0;
}

.pls-cover-hub__actions {
  margin: 0;
  padding: 0;
}

/* Match browse/bookmarks action chips (token colors — not Tailwind dark: alone) */
.pls-cover-hub__actions .pls-media-act-btn,
.pls-cover-hub__actions .movie-action-btn {
  background: rgb(250 250 250);
  color: rgb(24 24 27);
  border-color: rgb(228 228 231);
}

.pls-cover-hub__actions .pls-media-act-btn:hover,
.pls-cover-hub__actions .movie-action-btn:hover {
  background: rgb(244 244 245);
}

.dark .pls-cover-hub__actions .pls-media-act-btn,
.dark .pls-cover-hub__actions .movie-action-btn {
  background: rgb(9 9 11);
  color: rgb(250 250 250);
  border-color: rgb(63 63 70);
}

.dark .pls-cover-hub__actions .pls-media-act-btn:hover,
.dark .pls-cover-hub__actions .movie-action-btn:hover {
  background: rgb(24 24 27);
}

/*
 * Cover vote award states (quiet until chosen):
 * unselected → outline muted; selected → filled amber; hover → scale / glow
 */
.pls-cover-hub__actions .pls-cover-hub__vote {
  --pls-cover-vote-accent: rgb(217 119 6);
  --pls-cover-vote-accent-bright: rgb(245 158 11);
  --pls-cover-vote-accent-glow: rgb(245 158 11 / 0.55);
  color: rgb(113 113 122);
  transition:
    color 0.15s ease,
    border-color 0.15s ease,
    background-color 0.15s ease,
    transform 0.15s ease;
}

.dark .pls-cover-hub__actions .pls-cover-hub__vote {
  color: rgb(250 250 250 / 0.45);
}

.pls-cover-hub__actions .pls-cover-hub__vote .pls-lucide-icon {
  fill: none;
  stroke: currentColor;
  transition:
    transform 0.15s ease,
    color 0.15s ease,
    fill 0.15s ease,
    filter 0.15s ease,
    opacity 0.15s ease;
  transform-origin: center;
}

/* Hover (unselected): brighter outline + gentle scale */
.pls-cover-hub__actions .pls-cover-hub__vote:not(.pls-cover-hub__vote--on):hover {
  color: rgb(63 63 70);
}

.dark .pls-cover-hub__actions .pls-cover-hub__vote:not(.pls-cover-hub__vote--on):hover {
  color: rgb(250 250 250 / 0.92);
}

.pls-cover-hub__actions .pls-cover-hub__vote:not(.pls-cover-hub__vote--on):hover .pls-lucide-icon,
.pls-cover-hub__actions .pls-cover-hub__vote:not(.pls-cover-hub__vote--on):focus-visible .pls-lucide-icon {
  transform: scale(1.06);
}

/* Selected (voted): filled ribbon + warm amber accent */
.pls-cover-hub__vote--on {
  color: var(--pls-cover-vote-accent) !important;
  border-color: var(--pls-cover-vote-accent-bright) !important;
  background: rgb(245 158 11 / 0.14) !important;
}

.dark .pls-cover-hub__vote--on {
  color: var(--pls-cover-vote-accent-bright) !important;
  background: rgb(245 158 11 / 0.18) !important;
}

.pls-cover-hub__vote--on .pls-lucide-icon {
  fill: currentColor;
  stroke: currentColor;
}

/* Hover (selected): brighter fill + soft glow */
.pls-cover-hub__actions .pls-cover-hub__vote--on:hover,
.pls-cover-hub__actions .pls-cover-hub__vote--on:focus-visible {
  color: var(--pls-cover-vote-accent-bright) !important;
  background: rgb(245 158 11 / 0.22) !important;
}

.pls-cover-hub__actions .pls-cover-hub__vote--on:hover .pls-lucide-icon,
.pls-cover-hub__actions .pls-cover-hub__vote--on:focus-visible .pls-lucide-icon {
  filter: drop-shadow(0 0 5px var(--pls-cover-vote-accent-glow));
  transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .pls-cover-hub__actions .pls-cover-hub__vote,
  .pls-cover-hub__actions .pls-cover-hub__vote .pls-lucide-icon {
    transition: none;
  }

  .pls-cover-hub__actions .pls-cover-hub__vote:not(.pls-cover-hub__vote--on):hover .pls-lucide-icon,
  .pls-cover-hub__actions .pls-cover-hub__vote:not(.pls-cover-hub__vote--on):focus-visible .pls-lucide-icon,
  .pls-cover-hub__actions .pls-cover-hub__vote--on:hover .pls-lucide-icon,
  .pls-cover-hub__actions .pls-cover-hub__vote--on:focus-visible .pls-lucide-icon {
    transform: none;
  }
}

.pls-cover-hub__select {
  appearance: none;
  min-height: 2.25rem;
  padding: 0.35rem 2rem 0.35rem 0.65rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--card))
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")
    no-repeat right 0.5rem center;
  color: rgb(var(--foreground));
  font-size: 0.8125rem;
  font-weight: 600;
}

.pls-cover-hub__contest-open {
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
}

.pls-cover-hub__details-link {
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
}

.pls-cover-hub-details {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 1rem;
  background: rgb(0 0 0 / 0.55);
}

@media (min-width: 640px) {
  .pls-cover-hub-details {
    align-items: center;
  }
}

.pls-cover-hub-details__panel {
  position: relative;
  width: min(100%, 28rem);
  max-height: min(85vh, 36rem);
  overflow: auto;
  border-radius: 0.75rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--card));
  color: rgb(var(--foreground));
  padding: 1.25rem 1.25rem 1.5rem;
  box-shadow: 0 12px 40px rgb(0 0 0 / 0.35);
}

.pls-cover-hub-details__close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: rgb(var(--muted));
  color: rgb(var(--foreground));
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.pls-cover-hub-details__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.4rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid transparent;
  background: rgb(var(--primary));
  color: rgb(var(--primary-foreground));
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.pls-cover-hub-details__btn--ghost {
  background: transparent;
  border-color: rgb(var(--border));
  color: rgb(var(--foreground));
}

.pls-cover-hub-lightbox {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgb(0 0 0 / 0.82);
}

.pls-cover-hub-lightbox__figure {
  margin: 0;
  max-width: min(96vw, 36rem);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pls-cover-hub-lightbox__img {
  display: block;
  width: 100%;
  max-height: 80vh;
  height: auto;
  object-fit: contain;
  border-radius: 0.5rem;
  background: rgb(var(--muted));
}

.pls-cover-hub-lightbox__cap {
  margin: 0;
  color: #fafafa;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: center;
}

.pls-cover-hub-lightbox__cap a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pls-cover-hub-lightbox__cap a:hover {
  opacity: 0.9;
}

.pls-cover-hub-lightbox__close {
  position: absolute;
  top: max(0.75rem, env(safe-area-inset-top));
  right: max(0.75rem, env(safe-area-inset-right));
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: rgb(24 24 27 / 0.9);
  color: #fafafa;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.pls-contest-pub-toolbar {
  gap: 0.5rem;
}

.pls-contest-pub-standings-btn {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.35rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid rgb(var(--border));
  background: rgb(var(--background));
  color: rgb(var(--foreground));
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
}

.pls-contest-pub-standings-btn--on,
.pls-contest-pub-standings-btn[aria-pressed='true'] {
  background: rgb(var(--primary));
  color: rgb(var(--primary-foreground));
  border-color: transparent;
}

.pls-contest-pub-classic__pos {
  width: 1.75rem;
  flex-shrink: 0;
  font-size: 0.875rem;
  font-weight: 800;
  color: rgb(var(--muted-foreground));
  padding-top: 0.35rem;
}

.pls-contest-pub-classic .pls-contest-pub-card__img,
.pls-contest-pub-classic .pls-contest-standing-link .pls-contest-pub-card__img,
.pls-contest-pub-classic .pls-contest-standing-row > .pls-contest-standing-thumb,
.pls-contest-pub-classic .pls-contest-standing-link > .pls-contest-standing-thumb {
  width: 4.5rem;
  max-width: 4.5rem;
  height: auto;
  border-radius: 0.375rem;
  object-fit: cover;
  display: block;
}

.pls-contest-pub-classic .pls-contest-pub-card__poster--portrait,
.pls-contest-pub-classic .pls-contest-standing-thumb.pls-contest-pub-card__poster--portrait {
  aspect-ratio: 2 / 3;
  width: 4.5rem;
  max-width: 4.5rem;
  height: auto;
}

.pls-contest-pub-classic .pls-contest-pub-card__poster--square,
.pls-contest-pub-classic .pls-contest-standing-thumb.pls-contest-pub-card__poster--square {
  aspect-ratio: 1 / 1;
  width: 4.5rem;
  max-width: 4.5rem;
  height: auto;
}

.pls-contest-pub-classic .pls-contest-pub-card__poster--wide,
.pls-contest-pub-classic .pls-contest-standing-thumb.pls-contest-pub-card__poster--wide {
  aspect-ratio: 1.91 / 1;
  width: 6.5rem;
  max-width: 6.5rem;
  height: auto;
}

.pls-contest-pub-classic .pls-contest-pub-card__img--empty {
  background: rgb(var(--muted));
}

.pls-contest-pub-standings-mount--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

@media (min-width: 640px) {
  .pls-contest-pub-standings-mount--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .pls-contest-pub-standings-mount--grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.pls-contest-pub-standings-mount--bricks {
  columns: 2;
  column-gap: 0.85rem;
}

@media (min-width: 768px) {
  .pls-contest-pub-standings-mount--bricks {
    columns: 3;
  }
}

.pls-contest-pub-standings-mount--bricks .pls-contest-pub-card {
  break-inside: avoid;
  margin-bottom: 0.85rem;
}

.pls-contest-pub-standings-mount--lanes {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.5rem;
  -webkit-overflow-scrolling: touch;
}

.pls-contest-pub-standings-mount--lanes .pls-contest-pub-card {
  flex: 0 0 9.5rem;
}

.pls-contest-pub-standings-mount--list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.pls-contest-pub-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.pls-contest-pub-card--list .pls-contest-pub-card__link {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.pls-contest-pub-card__media {
  position: relative;
  display: block;
}

.pls-contest-pub-rank {
  position: absolute;
  top: 0.35rem;
  left: 0.35rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  background: rgb(0 0 0 / 0.78);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.35);
}

.pls-contest-pub-card__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
  object-fit: cover;
  background: rgb(var(--muted));
}

.pls-contest-pub-card__poster--portrait {
  aspect-ratio: 2 / 3;
}

.pls-contest-pub-card__poster--square {
  aspect-ratio: 1 / 1;
}

.pls-contest-pub-card__poster--wide {
  aspect-ratio: 1.91 / 1;
}

.pls-contest-pub-card--list .pls-contest-pub-card__media {
  width: 5.5rem;
  flex-shrink: 0;
}

.pls-contest-pub-card--list .pls-contest-pub-card__img {
  width: 5.5rem;
}

.pls-contest-pub-card__body {
  margin-top: 0.45rem;
}

.pls-contest-pub-card--list .pls-contest-pub-card__body {
  margin-top: 0;
  min-width: 0;
  flex: 1;
}

.pls-contest-pub-card__title {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
}

.pls-contest-pub-card__meta {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  color: rgb(var(--muted-foreground));
  line-height: 1.35;
}

.pls-contest-pub-card__actions {
  width: 100%;
  min-width: 0;
  padding: 0.4rem 0 0;
}

.pls-contest-pub-card__actions .movie-action-row {
  margin-top: 0;
}

.pls-contest-pub-card--grid > .pls-contest-pub-card__actions {
  padding: 0 0 0.4rem;
}

.pls-contest-pub-card--list {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0.45rem;
}

.pls-contest-pub-card--list .pls-contest-pub-card__link {
  flex: 1;
  min-width: 0;
}

.pls-contest-pub-classic__main {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0.45rem;
}

.pls-contest-pub-classic__main > .pls-contest-standing-link,
.pls-contest-pub-classic__main > span.flex {
  flex: 1;
  min-width: 0;
}

.pls-contest-pub-card--list > .pls-contest-pub-card__actions,
.pls-contest-pub-classic__main > .pls-contest-pub-card__actions {
  width: auto;
  flex: 0 0 auto;
  align-self: center;
  padding: 0;
}

.pls-contest-pub-card--list > .pls-contest-pub-card__actions .movie-action-row,
.pls-contest-pub-classic__main > .pls-contest-pub-card__actions .movie-action-row {
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  width: auto;
}

.pls-contest-pub-card--list > .pls-contest-pub-card__actions .movie-action-btn,
.pls-contest-pub-classic__main > .pls-contest-pub-card__actions .movie-action-btn {
  flex: 0 0 auto;
  width: 2.25rem;
  min-width: 2.25rem;
  min-height: 2.25rem;
  padding: 0.3rem;
}

.pls-contest-pub-standings-mount--lanes .pls-contest-pub-card__actions .pls-media-act-btn__label {
  font-size: 0.65rem;
}

/* —— Contest layout beta (*2 pages) —— */
.pls-contest-page-toggle-wrap {
  margin: 0 0 1.25rem;
}

.pls-contest-page-toggle {
  width: 100%;
  max-width: 100%;
}

.pls-contest-aspect-graphic {
  display: flex;
  flex-direction: column;
  margin: 0 0 1.25rem;
  max-width: 22rem;
}

.pls-contest-aspect-graphic--wide {
  max-width: 100%;
}

.pls-contest-aspect-graphic__label {
  margin: 0 0 0.5rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(var(--muted-foreground));
}

.pls-contest-aspect-graphic__label--below {
  margin: 0.5rem 0 0;
  text-align: center;
}

.pls-contest-aspect-graphic__frame {
  position: relative;
  width: 100%;
  aspect-ratio: var(--pls-contest-aspect, 1 / 1);
  border-radius: 0.75rem;
  overflow: hidden;
  background: rgb(var(--muted));
  border: 1px solid rgb(var(--border));
}

.pls-contest-aspect-graphic__frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pls-contest-aspect-graphic__enlarge {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  border-radius: 0.75rem;
  appearance: none;
  -webkit-appearance: none;
}

.pls-contest-aspect-graphic__enlarge:focus-visible {
  outline: 2px solid rgb(var(--foreground));
  outline-offset: 2px;
}

.pls-contest-graphics-pair {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 0 0 1.5rem;
}

/* Announce | final always side-by-side when both exist — fill available width */
.pls-contest-graphics-pair--dual {
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 0.5rem;
}

.pls-contest-graphics-pair--dual .pls-contest-aspect-graphic {
  max-width: none;
  margin: 0;
  width: 100%;
  min-width: 0;
}

.pls-contest-graphics-pair--dual .pls-contest-aspect-graphic__frame {
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: var(--pls-contest-aspect, 2 / 3);
}

.pls-contest-graphics-pair--dual .pls-contest-aspect-graphic__frame img {
  object-fit: cover;
}

body.has-tab-bar .pls-contest-graphics-pair--dual {
  gap: 0.4rem;
  margin-bottom: 1rem;
}

body.has-tab-bar .pls-contest-graphics-pair--dual .pls-contest-aspect-graphic__label {
  margin-top: 0.4rem;
  margin-bottom: 0;
  font-size: 0.62rem;
}

/* Fill column width (no narrow gutters) while keeping media-type aspect */
body.has-tab-bar .pls-contest-graphics-pair--dual .pls-contest-aspect-graphic {
  max-width: none;
  margin-inline: 0;
  width: 100%;
}

body.has-tab-bar .pls-contest-graphics-pair--dual .pls-contest-aspect-graphic--wide {
  max-width: none;
}

body.has-tab-bar .pls-contest-graphics-pair--dual .pls-contest-aspect-graphic__frame {
  width: 100%;
  max-height: none;
  aspect-ratio: var(--pls-contest-aspect, 2 / 3);
}

/* Single graphic on Overview: constrain width so media-type aspect stays intact */
body.has-tab-bar .pls-contest-graphics-pair:not(.pls-contest-graphics-pair--dual) .pls-contest-aspect-graphic {
  max-width: min(14rem, 72vw);
  margin-left: auto;
  margin-right: auto;
}

body.has-tab-bar .pls-contest-graphics-pair:not(.pls-contest-graphics-pair--dual) .pls-contest-aspect-graphic__frame {
  max-height: none;
  aspect-ratio: var(--pls-contest-aspect, 2 / 3);
}

/* Results2: poster left (media-type aspect) + copy right */
.pls-contest-results2-hero {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1rem;
  margin: 0 0 1.25rem;
}

.pls-contest-results2-hero__art {
  flex: 0 0 auto;
  width: min(10.5rem, 36vw);
  max-width: 10.5rem;
  margin: 0;
}

.pls-contest-results2-hero__art.pls-contest-aspect-graphic--wide {
  width: min(16rem, 48vw);
  max-width: 16rem;
}

.pls-contest-results2-hero__art .pls-contest-aspect-graphic__frame {
  width: 100%;
  max-height: none;
  aspect-ratio: var(--pls-contest-aspect, 2 / 3);
}

.pls-contest-results2-hero__art .pls-contest-aspect-graphic__frame img {
  object-fit: cover;
}

.pls-contest-results2-hero__copy {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.pls-contest-results2-hero__copy .pls-contest-beta2-header__title {
  font-size: clamp(1.25rem, 3.5vw, 1.85rem);
}

.pls-contest-results2-hero__copy .pls-contest-beta2-header__actions {
  margin-top: 0.75rem;
  max-width: 14rem;
}

.pls-contest-accuracy-mount--inline:not(.hidden) {
  display: block;
}

@media (min-width: 640px) {
  .pls-contest-results2-hero {
    gap: 1.25rem;
  }

  .pls-contest-results2-hero__art {
    width: 12rem;
    max-width: 12rem;
  }

  .pls-contest-results2-hero__art.pls-contest-aspect-graphic--wide {
    width: 18rem;
    max-width: 18rem;
  }
}

@media (min-width: 640px) {
  .pls-contest-graphics-pair--dual {
    gap: 0.75rem;
  }

  body.has-tab-bar .pls-contest-graphics-pair--dual .pls-contest-aspect-graphic {
    max-width: none;
  }

  body.has-tab-bar .pls-contest-graphics-pair--dual .pls-contest-aspect-graphic--wide {
    max-width: none;
  }

  body.has-tab-bar .pls-contest-graphics-pair--dual .pls-contest-aspect-graphic__frame {
    max-height: none;
  }
}

.pls-contest-beta2-header {
  margin: 0 0 1.25rem;
}

.pls-contest-beta2-header__title {
  margin: 0.25rem 0 0;
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.pls-contest-beta2-header__meta {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  color: rgb(var(--muted-foreground));
}

.pls-contest-beta2-header__actions {
  margin-top: 0.75rem;
}
