/* Danish Padel Series — accent scope over Premier's .pp-* components.
 *
 * The layout, cards, bands and hero all come from premier-padel.css. This file
 * only re-tints the accent so the Danish hub reads as its own thing, and adds
 * the one element Premier has no equivalent for (the sponsor sub-line).
 *
 * Deliberate coupling: restyling Premier restyles this page. See
 * docs/superpowers/specs/2026-08-01-danish-padel-series-design.md §5.3.
 *
 * Premier's accent is FIP cyan #52e1fe with amber #ffb547 highlights. Ours is
 * Dannebrog red — lifted to #ff5d6c for text and dots, because #C8102E on the
 * #0a1020 hero fails contrast at small sizes. #C8102E is kept for glows only.
 */

.dps .pp-eyebrow { color: #ff5d6c; }
.dps .pp-eyebrow-dot { background: #ff5d6c; box-shadow: 0 0 10px #c8102e; }
.dps .pp-headline em { color: #ff5d6c; }

/* Numbers row: Tournaments / Players / Champions. Premier tints cell 1 cyan,
 * leaves 2 white and makes 3 amber; keep that rhythm with red in the accent
 * slots so the eye still lands on the same places. */
.dps .pp-numbers dd { color: #ff5d6c; }
.dps .pp-numbers > div:nth-child(2) dd { color: #f3f6fb; }
.dps .pp-numbers > div:nth-child(3) dd { color: #ff5d6c; }

.dps .pp-champs__label { color: #ff5d6c; }

/* Archive season band. The year is the heading; the count sits beside it so a
 * reader can weigh a past season at a glance without counting cards. */
.dps .dps-band__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 12px;
}
.dps .dps-band__head .pp-band__title { margin: 0; }
.dps .dps-band__meta {
  font-family: var(--font-mono), monospace;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #5d6a82;
  margin: 0;
}
/* Past seasons sit visually behind the current one. */
.dps .dps-band--archive { margin-top: 34px; }
.dps .dps-band--archive .pp-card__bg { opacity: .11; }

/* The shared placeholder poster is a near-black empty court: mean luminance
 * 26 against ~145 for the celebration photos, with only 12% of pixels above
 * 60 versus 87%. At Premier's .16 it disappears entirely, so it gets its own
 * opacity. Still well under half, because the lit court sits directly behind
 * the venue and date lines. */
.dps .dps-card--placeholder .pp-card__bg { opacity: .42; }

/* Sponsor sub-line. The series is renamed mid-season, so the sponsor-laden
 * upstream name sits here rather than in the card headline.
 *
 * Height is FIXED at two lines — clamped from above, reserved from below —
 * so every card's city, dates and CHAMPIONS row land at the same y. The
 * sponsor is the only variable-height element above the champions block: it
 * runs to two lines ("...Powered by Vitamin Well & Nocco Electrolyte"), one
 * line, or none at all (Senior DM 2026 has no sponsor). Without the reserve,
 * that card pulls its whole stack ~30px up and the row stops scanning. */
.dps .dps-card__sponsor {
  color: #6c7891;
  font-size: 11px;
  line-height: 1.35;
  margin: 3px 0 0;
  height: 2.7em;          /* exactly 2 x 1.35em */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* The card headline must also stay one line, or a long name reintroduces the
 * same drift. Every short_name is currently short ("Senior DM 2026" is the
 * longest), so this only ever bites on a future event with a wordy name. */
.dps .pp-card__name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Poster framing. Premier uses `center 15% / cover`, which scales the art up
 * until it fills the card and crops whatever overflows — fine for its tall
 * event posters, wrong for these square Instagram images, which lose their
 * top and bottom. `contain` fits the whole poster inside the card instead.
 * The card is wider than it is tall, so this leaves narrow bars either side;
 * at 16% opacity under the gradient they read as nothing. */
.dps .pp-card__bg {
  /* Keep Premier's `cover` — the poster must fill the card, no letterbox bars.
     These posters are square (640x640) against a ~272x232 card, so filling
     always crops ~17% of the height; `cover` is already the least-zoomed size
     that fills. The only real choice is WHICH slice survives.

     Premier anchors at `center 15%`, biased to the top, because its posters
     put the event logo up there. These are action photos with the subject
     mid-frame, so centring keeps faces and trophies instead of cropping to
     someone's forehead. */
  background-position: center;
}

/* Premier's meta row has no top margin because there it sits under a
 * single-line title. Here it follows a two-line sponsor block, so without
 * this the flag and city collide with the sponsor's descenders. */
.dps .pp-card__meta { margin-top: 9px; }
.dps .pp-card__dates { margin-top: 5px; }

/* Same story below: the champions block needs to separate from the dateline
 * rather than reading as one continuous column of small grey text. */
.dps .pp-champs { margin-top: 13px; }

/* ── Card chooser ────────────────────────────────────────────────────────
   Premier's affordance, keyed on this page's own attribute: the serie
   sidecar has no slug to put in data-pp-slug. Mint rather than Premier's
   cyan, matching the rest of the tour's tint. #7fe3a5 is written out because
   --mint is not a defined custom property — a var() fallback here ships a
   silently wrong colour. */
.pp-card[data-dps-tid] { cursor: pointer; }
.pp-card[data-dps-tid]:hover { transform: translateY(-2px); border-color: rgba(127,227,165,.4); }
.pp-card[data-dps-tid]:hover .pp-card__bg { opacity: .24; }
.pp-card[data-dps-tid]:focus-visible { outline: 2px solid #7fe3a5; outline-offset: 2px; }

/* Sign-ups sheet. Borrows the FIP entry list's row grid, minus the expand
   affordance: these rows have no breakdown panel to open, so the chevron
   column is dropped and the row stops advertising itself as a button. */
.dps-reg .fipreg-row { grid-template-columns: 30px 1fr auto; cursor: default; }
.dps-reg .fipreg-row:hover { background: transparent; }
.dps-reg .fipreg-pl a { color: inherit; text-decoration: none; }
.dps-reg .fipreg-pl a:hover { color: #7fe3a5; }

/* Win probability on an upcoming-match card. Sits at the end of .pp-up__pair,
   which is the row; .pp-up__pls is the name column inside it, so the row is
   already a flex line and this only needs to be pushed to its end. */
.dps-up__prob{
  margin-left:auto;
  font-size:.72rem;
  font-variant-numeric:tabular-nums;
  color:var(--text-muted);
  letter-spacing:.02em;
  white-space:nowrap;
}
.dps-up__prob--fav{ color:var(--text); font-weight:600; }
.dps-up__dia{ margin-left:.28em; font-style:normal; font-size:.62em; opacity:.85; }
