/* =========================================================
   PulsoHub Design System v0.1
   Source of truth: current Live Hub
   ========================================================= */

:root {
  /* Core colors */
  --ph-bg: #061225;
  --ph-bg-deep: #020617;

  --ph-surface-card: #15253d;
  --ph-surface-context-top: rgba(8,18,38,0.96);
  --ph-surface-context-bottom: rgba(2,6,23,0.985);
  --ph-surface-meta-top: rgba(42,56,84,0.92);
  --ph-surface-meta-bottom: rgba(33,46,71,0.96);

  --ph-text: #f8fafc;
  --ph-ds-text: #f8fafc;
  --ph-text-strong: rgba(248,250,252,0.96);
  --ph-text-soft: rgba(203,213,225,0.82);
  --ph-text-muted: rgba(248,250,252,0.70);
  --ph-text-faint: rgba(248,250,252,0.42);
  --ph-danger-text: rgba(255, 215, 220, 0.96);
  --ph-card-body-text: rgba(255, 248, 240, 0.92);
  --ph-card-body-text-muted: rgba(255, 248, 240, 0.78);
  --ph-ds-accent: rgba(45, 226, 230, 1);

  --ph-accent: #2DE2E6;
  --ph-pulse: #FF6A2A;

  /* Radius */
  --ph-radius: 12px;
  --ph-radius-sm: 6px;
  --ph-radius-meta: 12px;
  --ph-radius-pill: 999px;

  /* Borders */
  --ph-border-card: rgba(255,255,255,0.06);
  --ph-border-card-strong: rgba(255,255,255,0.10);
  --ph-border-context: rgba(120,160,220,0.18);
  --ph-border-meta: rgba(140,170,220,0.14);
  --ph-border-accent: rgba(45,226,230,0.22);

  --ph-chip-active-text: rgba(238, 255, 255, 0.98);
  --ph-chip-active-border: rgba(45, 226, 230, 0.72);
  --ph-chip-active-bg-top: rgba(45, 226, 230, 0.18);
  --ph-chip-active-bg-bottom: rgba(45, 226, 230, 0.10);
  --ph-chip-active-glow: rgba(45, 226, 230, 0.28);
  --ph-chip-active-inner: rgba(255, 255, 255, 0.12);

  /* Shadows */
  --ph-shadow-card:
    0 8px 18px rgba(0,0,0,0.18),
    inset 0 1px 0 rgba(255,255,255,0.03);

  --ph-shadow-context:
    0 14px 34px rgba(0,0,0,0.34),
    0 3px 10px rgba(0,0,0,0.22),
    inset 0 1px 0 rgba(255,255,255,0.05),
    inset 0 -1px 0 rgba(255,255,255,0.02);

  --ph-shadow-meta:
    0 10px 22px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.035);

  --ph-shadow-accent:
    0 0 18px rgba(45,226,230,0.08);

  /* Typography */
  --ph-font:
    "Source Sans 3",
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    sans-serif;

  --ph-text-xs: 10px;
  --ph-text-sm: 12px;
  --ph-text-md: 13px;
  --ph-text-base: 14px;
  --ph-text-lg: 16px;
  --ph-score-size: 60px;

  --ph-weight-regular: 400;
  --ph-weight-medium: 500;
  --ph-weight-semibold: 650;
  --ph-weight-bold: 760;
  --ph-weight-heavy: 900;

  /* Layout */
  --ph-page-max: 420px;
  --ph-page-gutter: 12px;
  --ph-card-pad-y: 8px;
  --ph-card-pad-x: 14px;
  --ph-card-stack-gap: 22px;

  /* Event/card row layout */
  --ph-event-time-w: 46px;
  --ph-event-icon-w: 20px;
  --ph-event-meta-w: 64px;
  --ph-event-gap: 10px;

  --ph-card-body-stack-gap: 18px;
  --ph-card-head-divider-gap: 16px;
  --ph-card-divider-body-gap: 16px;
  --ph-field-label-gap: 9px;
  --ph-field-note-gap: 14px;
  --ph-field-section-extra-gap: 6px;

}

/* =========================================================
   Base typography helpers
   ========================================================= */

.phds-title {
  margin: 0;
  font-size: var(--ph-text-lg);
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  color: var(--ph-text-strong);
  letter-spacing: -0.01em;
}

.phds-subtitle {
  margin: 0;
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-medium);
  line-height: 1.2;
  color: var(--ph-text-soft);
}

.phds-body {
  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-regular);
  line-height: 1.35;
  color: var(--ph-text-strong);
}

.phds-meta {
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-medium);
  line-height: 1.2;
  color: var(--ph-text-muted);
}

.phds-section-title {
  margin: 8px 0 10px;
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-heavy);
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
}

/* =========================================================
   Card primitive
   Based on Live Hub event rows
   ========================================================= */

.phds-card {
  position: relative;
  min-width: 0;

  padding: var(--ph-card-pad-y) var(--ph-card-pad-x);
  border-radius: var(--ph-radius);

  background: var(--ph-surface-card);
  border: 1px solid var(--ph-border-card);
  box-shadow: var(--ph-shadow-card);

  color: var(--ph-text);
}

.phds-card + .phds-card {
  margin-top: 8px;
}

.phds-card--compact {
  padding: 7px 12px;
}

.phds-card--roomy {
  padding: 16px 16px 18px;
}

.phds-card--interactive {
  cursor: pointer;
  transition:
    transform 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    background 140ms ease;
}

.phds-card--interactive:active {
  transform: scale(0.99);
}

@media (hover: hover) and (pointer: fine) {
  .phds-card--interactive:hover {
    border-color: rgba(255,255,255,0.10);
    background: rgba(21,37,61,0.96);
  }
}

/* =========================================================
   Event-row primitive
   Use this for cards that need Live Hub row alignment
   ========================================================= */

.phds-event-row {
  display: grid;
  grid-template-columns:
    var(--ph-event-time-w)
    var(--ph-event-icon-w)
    minmax(0, 1fr)
    var(--ph-event-meta-w);
  align-items: center;
  column-gap: var(--ph-event-gap);
  min-height: 34px;
}

.phds-event-time {
  min-width: 0;
  text-align: left;
  font-size: var(--ph-text-md);
  line-height: 1.15;
  color: var(--ph-text-muted);
}

.phds-event-icon {
  width: var(--ph-event-icon-w);
  height: var(--ph-event-icon-w);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: rgba(248,250,252,0.78);
}

.phds-event-icon svg,
.phds-event-icon img {
  width: 20px;
  height: 20px;
  display: block;
}

.phds-event-text {
  min-width: 0;

  display: inline-flex;
  align-items: center;
  justify-content: flex-start;

  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;
  color: var(--ph-text-strong);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-event-meta {
  min-width: 0;

  justify-self: end;
  text-align: right;

  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;
  color: rgba(248,250,252,0.78);

  white-space: nowrap;
}

.phds-event-meta--accent {
  color: var(--ph-accent);
  font-weight: 800;
  text-shadow: 0 0 10px rgba(127,231,243,0.16);
}

/* =========================================================
   Context bug primitive
   Based on Live Hub context bug
   ========================================================= */

.phds-context-bug {
  display: grid;
  grid-template-columns: 1fr min-content 1fr;
  align-items: center;
  position: relative;
  z-index: 2;

  padding: 14px 16px 16px;
  margin-top: 6px;
  margin-bottom: 0;

  border-radius: 14px;
  border: 1px solid rgba(150, 185, 235, 0.30);

  background:
    radial-gradient(
      56% 90% at 50% -28%,
      rgba(145, 205, 255, 0.30) 0%,
      rgba(90, 160, 230, 0.15) 22%,
      rgba(45, 226, 230, 0.06) 44%,
      rgba(45, 226, 230, 0.00) 70%
    ),
    linear-gradient(
      180deg,
      rgba(20, 42, 68, 0.98) 0%,
      rgba(13, 31, 52, 0.985) 48%,
      rgba(8, 21, 39, 0.99) 100%
    );

  box-shadow:
    0 16px 36px rgba(0, 0, 0, 0.34),
    0 4px 12px rgba(0, 0, 0, 0.24),
    0 0 0 1px rgba(80, 130, 200, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(255, 255, 255, 0.04);
}

.phds-context-bug::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 0;

  height: 1px;
  border-radius: var(--ph-radius-pill);
  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.00) 0%,
      rgba(210, 235, 255, 0.38) 32%,
      rgba(255, 255, 255, 0.72) 50%,
      rgba(210, 235, 255, 0.38) 68%,
      rgba(255, 255, 255, 0.00) 100%
    );

  opacity: 0.72;
}

.phds-context-bug::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -2px;
  transform: translateX(-50%);

  width: 88px;
  height: 7px;
  border-radius: var(--ph-radius-pill);
  pointer-events: none;

  background:
    radial-gradient(
      ellipse at center,
      rgba(130, 200, 255, 0.76) 0%,
      rgba(90, 175, 255, 0.34) 36%,
      rgba(45, 226, 230, 0.10) 62%,
      rgba(45, 226, 230, 0.00) 100%
    );

  filter: blur(2.5px);
  opacity: 0.82;
}

.phds-context-side {
  display: flex;
  flex-direction: column;
  gap: 4px;
  line-height: 1.1;
  min-width: 0;
}

.phds-context-side--left {
  text-align: left;
  justify-self: start;
}

.phds-context-side--right {
  text-align: right;
  justify-self: end;
}

.phds-context-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  padding: 0 10px;
  text-align: center;
}

.phds-context-title {
  font-size: var(--ph-text-lg);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--ph-text);
}

.phds-context-subtitle {
  font-size: var(--ph-text-sm);
  line-height: 1.15;
  color: var(--ph-text-soft);
}

.phds-context-primary {
  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  color: var(--ph-text);
}

.phds-context-secondary {
  margin-top: 6px;
  font-size: var(--ph-text-sm);
  line-height: 1.15;
  color: rgba(203,213,225,0.78);
  white-space: nowrap;
}

/* Context bug vNext — shared coach/live anchor */
.phds-context-bug,
.context-bug--admin,
.context-bug {
  position: relative;
  overflow: visible;

  border: 1px solid rgba(150, 185, 235, 0.30) !important;

  background:
    radial-gradient(
      56% 90% at 50% -28%,
      rgba(145, 205, 255, 0.20) 0%,
      rgba(90, 160, 230, 0.08) 22%,
      rgba(45, 226, 230, 0.02) 44%,
      rgba(45, 226, 230, 0.00) 70%
    ),
    linear-gradient(
      180deg,
      rgba(20, 42, 68, 0.98) 0%,
      rgba(13, 31, 52, 0.985) 48%,
      rgba(8, 21, 39, 0.99) 100%
    ) !important;

  box-shadow:
    0 16px 36px rgba(0, 0, 0, 0.34),
    0 4px 12px rgba(0, 0, 0, 0.24),
    0 0 0 1px rgba(80, 130, 200, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(255, 255, 255, 0.04) !important;
}

.phds-context-bug::before,
.context-bug::before,
.context-bug--admin::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 0;

  height: 1px;
  border-radius: var(--ph-radius-pill);
  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.00) 0%,
      rgba(210, 235, 255, 0.38) 32%,
      rgba(255, 255, 255, 0.72) 50%,
      rgba(210, 235, 255, 0.38) 68%,
      rgba(255, 255, 255, 0.00) 100%
    );

  opacity: 0.72;
}

.phds-context-bug::after,
.context-bug::after,
.context-bug--admin::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -2px;
  transform: translateX(-50%);

  width: 88px;
  height: 7px;
  border-radius: var(--ph-radius-pill);
  pointer-events: none;

  background:
    radial-gradient(
      ellipse at center,
      rgba(130, 200, 255, 0.76) 0%,
      rgba(90, 175, 255, 0.34) 36%,
      rgba(45, 226, 230, 0.10) 62%,
      rgba(45, 226, 230, 0.00) 100%
    );

  filter: blur(2.5px);
  opacity: 0.82;
}

/* =========================================================
   Meta strip primitive
   Based on Live Hub meta row under context bug
   ========================================================= */

.phds-meta-strip {
  position: relative;
  z-index: 1;

  margin-top: -10px;
  margin-left: 12px;
  margin-right: 12px;

  padding: 10px 10px 8px;
  min-height: 22px;

  border-radius: 0 0 var(--ph-radius) var(--ph-radius);
  border: 1px solid rgba(140, 170, 220, 0.14);
  border-top: 0;

  background:
    linear-gradient(180deg, rgba(42,56,84,0.92) 0%, rgba(33,46,71,0.96) 100%);

  box-shadow:
    0 10px 22px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.035);
}

.phds-meta-strip-item {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  white-space: nowrap;

  font-size: var(--ph-text-md);
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;
  color: rgba(248,250,252,0.9);
}

.phds-meta-strip-item + .phds-meta-strip-item::before {
  content: "";
  position: absolute;
  left: -1px;
  top: 50%;
  transform: translateY(-50%);

  width: 1px;
  height: 22px;

  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.00) 0%,
    rgba(255,255,255,0.18) 20%,
    rgba(255,255,255,0.18) 80%,
    rgba(255,255,255,0.00) 100%
  );
}

/* =========================================================
   Icon primitive
   Based on Live Hub meta-strip icons
   ========================================================= */

.phds-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 20px;
  height: 20px;
  flex: 0 0 20px;

  color: var(--ph-accent);
  opacity: 0.9;
  line-height: 1;
}

.phds-icon svg {
  width: 20px;
  height: 20px;
  display: block;

  stroke: currentColor;
  stroke-width: 2.05;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.phds-icon--muted {
  color: rgba(248,250,252,0.78);
}

.phds-icon--small {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
}

.phds-icon--small svg {
  width: 16px;
  height: 16px;
}

/* =========================================================
   Small controls / badges
   Keep these close to Live Hub / admin badge language
   ========================================================= */

.phds-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  min-height: 24px;
  padding: 4px 10px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.10);

  color: rgba(255,255,255,0.92);

  font-size: var(--ph-text-md);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.2px;
}

.phds-badge--accent {
  border-color: rgba(255,255,255,0.28);
  background: rgba(45,226,230,0.06);
  color: rgba(255,255,255,0.95);
  box-shadow: 0 0 10px rgba(45,226,230,0.08);
}

.phds-action-link {
  position: relative;

  display: inline-flex;
  align-items: center;
  gap: 6px;

  padding: 6px 0;

  color: rgba(255,255,255,0.86);
  text-decoration: none;

  font-size: var(--ph-text-md);
  font-weight: 800;
  line-height: 1.1;

  opacity: 0.75;
}

.phds-action-link:hover {
  opacity: 1;
}

.phds-action-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;

  height: 1.5px;
  border-radius: var(--ph-radius-pill);

  background: rgba(255,255,255,0.35);
  opacity: 0;
}

.phds-action-link:hover::after {
  opacity: 1;
}

/* =========================================================
   Responsive safety
   ========================================================= */

@media (max-width: 360px) {
  .phds-context-bug {
    gap: 8px;
    padding: 13px 14px 15px;
    border-radius: var(--ph-radius);
  }

  .phds-context-subtitle {
    font-size: 11px;
  }

  .phds-meta-strip {
    margin-left: 8px;
    margin-right: 8px;
    padding: 12px 12px 10px;
    min-height: 50px;
  }

  .phds-meta-strip-item {
    gap: 6px;
    font-size: var(--ph-text-sm);
  }

  .phds-icon {
    width: 14px;
    height: 14px;
    flex-basis: 14px;
  }

  .phds-icon svg {
    width: 14px;
    height: 14px;
  }
}

/* =========================================================
   PulsoHub Design System — Security view pilot
   First consumer of Live Hub card language
   ========================================================= */

.phds-security {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

/* Security cards consume the generic DS card primitive */
.phds-security-card {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

/* =========================================================
   Generic card header/content pattern
   Inspired by the "Verzamelen" card structure
   ========================================================= */

.phds-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 0;
}

.phds-card__head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex: 0 0 auto;
}

.phds-security-button--header,
.phds-card-action--header {
  min-height: 30px;
  padding: 0 12px;
  font-size: 11px;
  white-space: nowrap;
}

.phds-card__title {
  min-width: 0;

  font-size: 16px;
  font-weight: 760;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: rgba(248,250,252,0.98);
}

.phds-card__divider {
  height: 1px;
  margin: var(--ph-card-head-divider-gap) 0 var(--ph-card-divider-body-gap);
  background: var(--ph-border-card-strong);
}

.phds-card__body {
  padding: 0;

  font-size: 14px;
  line-height: 1.42;
  color: rgba(248,250,252,0.82);
}

.phds-card__text {
  margin: 0;

  font-size: 14px;
  font-weight: 400;
  line-height: 1.42;

  color: var(--ph-card-body-text);
}

.phds-card__text + .phds-card__text {
  margin-top: 8px;
}

/* Alleen gebruiken wanneer tekst écht secundair is.
   Niet voor normale explainer/body copy. */
.phds-card__text--muted {
  color: var(--ph-card-body-text-muted);
}

@media (max-width: 420px) {
  .phds-card__body,
  .phds-card__text {
    font-size: 14px;
    line-height: 1.4;
  }
}

@media (max-width: 360px) {
  .phds-card__head {
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 10px;
  }

  .phds-card__head-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
}

/* Optional compact variant for later use */
.phds-card__divider--tight {
  margin: 10px 0 10px;
}

/* Account block */
.phds-security-user {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.phds-security-user__name {
  font-size: 15px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;
  color: var(--ph-text-strong);
}

.phds-security-user__email {
  margin-top: 3px;
  font-size: 13px;
  line-height: 1.25;
  color: var(--ph-text-soft);
}

.phds-security-copy {
  margin: 14px 0 0;
}

/* Actions */
.phds-security-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;

  /* More breathing room after explanatory card text */
  margin-top: 26px;
}

.phds-security-button,
.phds-card-action {
  appearance: none;
  -webkit-appearance: none;

  width: auto;
  min-height: 28px;
  margin: 0;
  padding: 0 12px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);

  font: inherit;
  font-weight: 650;
  font-size: 11px;
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;
  user-select: none;

  transition:
    background 140ms ease,
    border-color 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

.phds-security-button:hover,
.phds-card-action:hover {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.22);
}

.phds-security-button:active,
.phds-card-action:active {
  transform: translateY(1px);
}

.phds-security-button:disabled,
.phds-card-action:disabled {
  opacity: .42;
  cursor: not-allowed;
  transform: none;
}

/* Status */
.phds-security-status {
  display: none;
  margin-top: 16px;
  padding: 10px 12px;

  border-radius: 8px;
  font-size: 13px;
  line-height: 1.4;

  color: rgba(255,255,255,.86);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
}

.phds-security-status.is-visible {
  display: block;
}

.phds-security-status[data-kind="success"] {
  color: rgba(210,255,228,.95);
  background: rgba(46,213,115,.12);
  border-color: rgba(46,213,115,.35);
}

.phds-security-status[data-kind="error"] {
  color: rgba(255,215,220,.95);
  background: rgba(255,71,87,.12);
  border-color: rgba(255,71,87,.35);
}

/* Passkeys */
/* =========================================================
   Security passkeys
   Uses generic phds-list-row pattern
   ========================================================= */

.phds-passkey-empty {
  padding: 10px 0 4px;
}

.phds-passkey-empty__title {
  font-size: 15px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;
  color: rgba(248,250,252,.94);
}

.phds-passkey-empty__copy {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.4;
  color: rgba(203,213,225,.78);
}

/* =========================================================
   Security passkeys
   No nested cards — structured row via spacing/alignment
   ========================================================= */

.phds-passkey-list {
  display: flex;
  flex-direction: column;
  margin-top: 20px;
}

.phds-passkey-item {
  padding: 0;
}

.phds-passkey-item + .phds-passkey-item {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.phds-passkey-item__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;
}

.phds-passkey-item__icon {
  width: 25px;
  height: 25px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--ph-accent);
  opacity: .88;

  flex: 0 0 auto;
}

.phds-passkey-item__icon svg {
  width: 25px;
  height: 25px;
  display: block;

  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.phds-passkey-item__title {
  min-width: 0;

  font-size: 15px;
  font-weight: 760;
  line-height: 1.15;
  color: rgba(248,250,252,0.98);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-passkey-item__action {
  justify-self: end;
  align-self: center;

  display: inline-flex;
  align-items: center;

  /* Optical alignment with passkey row title baseline */
  transform: translateY(7px);
}

.phds-passkey-item__body {
  margin-top: 8px;
  padding-left: 36px; /* 24 icon + 12 gap */

  display: flex;
  flex-direction: column;
  gap: 4px;
}

.phds-passkey-item__transport {
  font-size: 14px;
  line-height: 1.3;
  color: rgba(248,250,252,0.86);
}

.phds-passkey-item__used {
  font-size: 13px;
  line-height: 1.35;
  color: rgba(203,213,225,0.78);
}

.phds-passkey-item__used strong {
  font-weight: 650;
  color: rgba(248,250,252,0.88);
}

.phds-passkey-delete {
  justify-self: end;
}

@media (max-width: 360px) {
  .phds-passkey-item__head {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "icon title"
      ". action";
    row-gap: 10px;
    align-items: start;
  }

  .phds-passkey-item__icon {
    grid-area: icon;
  }

  .phds-passkey-item__title {
    grid-area: title;
  }

  .phds-passkey-item__action {
    grid-area: action;
    justify-self: start;
    margin-left: 36px;
  }

  .phds-passkey-item__body {
    padding-left: 36px;
    margin-top: 10px;
  }
}

/* =========================================================
   Meta action
   Lightweight action button for row/card meta actions
   ========================================================= */

.phds-meta-action {
  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: auto;
  min-width: 0;
  min-height: 0;
  padding: 0;

  border: 0;
  background: transparent;
  color: var(--ph-card-body-text-muted);

  font: inherit;
  font-size: 10px;
  font-weight: var(--ph-weight-medium);
  letter-spacing: .32px;
  line-height: 1.15;
  text-transform: uppercase;

  cursor: pointer;
  white-space: nowrap;
  opacity: .82;

  transition:
    color 140ms ease,
    opacity 140ms ease,
    transform 80ms ease;
}

.phds-meta-action:hover {
  color: var(--ph-card-body-text);
  opacity: 1;
}

.phds-meta-action:active {
  transform: translateY(1px);
}

.phds-meta-action--danger:hover {
  color: var(--ph-danger-text);
}

/* =========================================================
   Team view — Design System consumer
   ========================================================= */

.phds-card-list {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);

  width: calc(100% + 24px);
  margin-left: -12px;
  margin-right: -12px;
  margin-top: var(--ph-card-stack-gap);
  box-sizing: border-box;
}

/* Legacy admin.css still has #team { display:block !important; }.
   Team now uses DS card stacks, so force the DS stack behavior here. */
#team.phds-card-list {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--ph-card-stack-gap) !important;
  margin-top: var(--ph-card-stack-gap) !important;
}

.phds-team-card {
  width: 100%;
  box-sizing: border-box;
}

.phds-team-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-body-stack-gap);
}

.phds-field {
  display: block;
  min-width: 0;
}

.phds-label {
  margin-bottom: var(--ph-field-label-gap);

  font-size: 12px;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: .2px;

  color: var(--ph-card-body-text-muted);
}

.phds-input {
  width: 100%;
  max-width: 100%;
  min-height: 40px;
  box-sizing: border-box;

  border-radius: 10px;
  border: 1px solid rgba(116,143,176,0.36);

  background:
    linear-gradient(
      180deg,
      rgba(15,28,48,0.98),
      rgba(10,22,38,0.98)
    );

  color: var(--ph-card-body-text);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.035),
    0 1px 0 rgba(0,0,0,0.24);
}

#teamCardTrainings #teamTrainingLocation {
  padding-left: 14px;
  padding-right: 14px;
}

.phds-input:focus {
  outline: none;
  border-color: rgba(218,235,255,0.82);
  box-shadow:
    0 0 0 1px rgba(218,235,255,0.18),
    0 0 0 4px rgba(45,226,230,0.08),
    inset 0 1px 0 rgba(255,255,255,0.04);
}

.phds-team-inline-input {
  display: grid;
  grid-template-columns: minmax(74px, 96px) 1fr;
  gap: 10px;
  align-items: center;
}

.phds-team-number {
  text-align: center;
}

.phds-team-inline-suffix {
  color: var(--ph-card-body-text-muted);
  font-size: 13px;
  line-height: 1.25;
}

.phds-choice-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.phds-team-note {
  margin-top: var(--ph-field-note-gap);
}

.phds-team-summary {
  font-size: 14px;
  line-height: 1.42;
  color: var(--ph-card-body-text);
}

.phds-team-base-list {
  display: flex;
  flex-direction: column;
  margin-top: 2px;
}

.phds-team-base-rowwrap {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 14px 0;
}

.phds-team-base-rowwrap:first-child {
  border-top: 0;
  padding-top: 0;
}

.phds-team-base-rowwrap:last-child {
  padding-bottom: 0;
}

.phds-team-base-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.phds-team-base-name {
  min-width: 0;

  font-size: 14px;
  font-weight: 550;
  line-height: 1.15;

  color: var(--ph-text-strong);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-team-base-actions,
.phds-team-position-picker {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.phds-team-position-picker {
  margin-top: 10px;
  width: 100%;
}

.phds-chip {
  transform: translateY(1px);
}

.phds-chip[disabled],
.phds-chip[aria-disabled="true"] {
  opacity: .42;
  cursor: not-allowed;
  pointer-events: none;
}

#security.phds-card-list {
  margin-top: var(--ph-card-stack-gap) !important;
}

#team #teamBasePlacementsToggle.phds-card-action {
  margin: 0;
  align-self: center;
  transform: none;
}

/* Verzamelen card: give form sections the same breathing room as note blocks */
#teamCardGathering .phds-field + .phds-field {
  margin-top: var(--ph-field-section-extra-gap);
}

/* Team base placements: vertically center player name and action chips */
#teamCardBasePlacements .phds-team-base-row {
  min-height: 34px;
  align-items: center;
}

#teamCardBasePlacements .phds-team-base-name {
  display: flex;
  align-items: center;
  min-height: 30px;
  line-height: 1;
}

#teamCardBasePlacements .phds-team-base-actions {
  display: flex;
  align-items: center;
  min-height: 30px;
}

#teamCardBasePlacements .phds-team-base-actions .ph-chip {
  margin-top: 0;
  margin-bottom: 0;
  transform: translateY(1px);
}

/* =========================================================
   DS chips — active neon teal state
   Used for selected choices in Team/Security-era DS views
   ========================================================= */

#team .phds-chip.is-on,
#team .phds-chip[aria-pressed="true"] {
  opacity: 1;

  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45, 226, 230, 0.10),
    0 0 18px var(--ph-chip-active-glow);

  text-shadow: 0 0 12px rgba(45, 226, 230, 0.32);
}

#team .phds-chip.is-on:hover,
#team .phds-chip[aria-pressed="true"]:hover {
  border-color: rgba(45, 226, 230, 0.88);

  background:
    linear-gradient(
      180deg,
      rgba(45, 226, 230, 0.22),
      rgba(45, 226, 230, 0.13)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45, 226, 230, 0.14),
    0 0 22px rgba(45, 226, 230, 0.34);
}

#team .phds-chip {
  background: rgba(255, 255, 255, 0.055);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 248, 240, 0.88);
}

#team .phds-chip:hover {
  background: rgba(255, 255, 255, 0.085);
  border-color: rgba(255, 255, 255, 0.24);
}

.phds-card__text--strong {
  font-weight: var(--ph-weight-semibold);
}

/* =========================================================
   Players view — Design System consumer
   ========================================================= */

#players.phds-card-list {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--ph-card-stack-gap) !important;

  width: calc(100% + 24px);
  max-width: calc(100% + 24px);
  margin-top: var(--ph-card-stack-gap) !important;
  margin-left: -12px;
  margin-right: -12px;
  padding-bottom: calc(var(--ph-card-stack-gap) * 3);
  box-sizing: border-box;
}

#players .phds-player-tools,
#players .phds-player-card {
  width: 100%;
  max-width: 100%;
}

.phds-players-list {
  min-width: 0;
}

.phds-player-tools {
  width: 100%;
  box-sizing: border-box;
}

.phds-player-search-wrap {
  position: relative;
  width: 100%;
  min-width: 0;
}

.phds-player-search {
  width: 100%;
  padding-right: 36px;
}

#players .phds-player-search-wrap .ph-search-clear {
  color: var(--ph-card-body-text-muted) !important;
}

.phds-player-card {
  width: 100%;
  box-sizing: border-box;
}

.phds-player-card__head {
  align-items: flex-start;
}

.phds-player-title {
  min-width: 0;

  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 7px;
}

.phds-player-name {
  min-width: 0;

  font-size: 16px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  color: var(--ph-text-strong);

  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-player-year {
  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;
  color: var(--ph-card-body-text-muted);
}

.phds-player-badges {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
  margin-left: auto;
}

.phds-player-card__body {
  min-width: 0;
}

/* Let existing player editor content sit cleanly inside DS cards */
#players .phds-player-card .ph-editor {
  margin-top: 0;
}

#players .phds-player-card .ph-editor-row {
  gap: 8px;
}

/* Bring existing player chips closer to the Team DS active feeling */
#players .phds-player-card .ph-chip.is-on,
#players .phds-player-card .ph-pr-chip.is-on {
  color: var(--ph-chip-active-text) !important;
  border-color: var(--ph-chip-active-border) !important;

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    ) !important;

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45, 226, 230, 0.10),
    0 0 18px var(--ph-chip-active-glow) !important;

  text-shadow: 0 0 12px rgba(45, 226, 230, 0.32);
}

#players .phds-player-badges .phds-card-action {
  margin: 0;
  transform: none;
}

#players .phds-player-head-action {
  min-height: 34px;
  padding: 0 12px;

  border-radius: 7px;

  font-size: 12px;
  font-weight: var(--ph-weight-bold);
  letter-spacing: .15px;

  white-space: nowrap;
}

#players .phds-player-head-action[data-open="1"] {
  border-color: rgba(218,235,255,0.48);
  background: rgba(255,255,255,0.105);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.045),
    0 0 16px rgba(45,226,230,0.10);
}

#players .phds-player-head-action--approval[data-approval="approved"] {
  color: rgba(214,255,231,0.98);
  border-color: rgba(46,213,115,0.42);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.15),
      rgba(46,213,115,0.075)
    );
}

#players .phds-player-head-action--approval[data-approval="approved"]:hover {
  border-color: rgba(46,213,115,0.58);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.20),
      rgba(46,213,115,0.10)
    );
}

#players .phds-player-head-action--approval[data-approval="pending"] {
  color: rgba(255,239,204,0.98);
  border-color: rgba(245,158,11,0.48);
  background:
    linear-gradient(
      180deg,
      rgba(245,158,11,0.16),
      rgba(245,158,11,0.08)
    );
}

#players .phds-player-head-action--approval[data-approval="pending"]:hover {
  border-color: rgba(245,158,11,0.64);
  background:
    linear-gradient(
      180deg,
      rgba(245,158,11,0.21),
      rgba(245,158,11,0.105)
    );
}

#players .phds-player-head-action--approval[data-approval="blocked"] {
  color: var(--ph-danger-text);
  border-color: rgba(255,71,87,0.48);
  background:
    linear-gradient(
      180deg,
      rgba(255,71,87,0.16),
      rgba(255,71,87,0.08)
    );
}

#players .phds-player-head-action--approval[data-approval="blocked"]:hover {
  border-color: rgba(255,71,87,0.66);
  background:
    linear-gradient(
      180deg,
      rgba(255,71,87,0.22),
      rgba(255,71,87,0.11)
    );
}

#players .phds-player-head-action:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 1px rgba(218,235,255,0.22),
    0 0 0 4px rgba(45,226,230,0.10);
}

/* Players card header: align exactly with generic DS card headers */
#players .phds-player-card__head {
  align-items: center;
}

#players .phds-player-title {
  min-height: 30px;
  align-items: center;
}

#players .phds-player-badges {
  align-items: center;
  gap: 8px;
}

/* Use the same sizing as Basisplaatsen / Passkeys header buttons */
#players .phds-player-badges .phds-card-action,
#players .phds-player-head-action {
  min-height: 30px;
  padding: 0 12px;

  border-radius: 8px;

  font-size: 11px;
  font-weight: 650;
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;

  margin: 0;
  transform: none;
}

/* Keep approval status color only — no custom sizing */
#players .phds-player-head-action--approval[data-approval="approved"] {
  color: rgba(214,255,231,0.98);
  border-color: rgba(46,213,115,0.42);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.15),
      rgba(46,213,115,0.075)
    );
}

#players .phds-player-head-action--approval[data-approval="pending"] {
  color: rgba(255,239,204,0.98);
  border-color: rgba(245,158,11,0.48);
  background:
    linear-gradient(
      180deg,
      rgba(245,158,11,0.16),
      rgba(245,158,11,0.08)
    );
}

#players .phds-player-head-action--approval[data-approval="blocked"] {
  color: var(--ph-danger-text);
  border-color: rgba(255,71,87,0.48);
  background:
    linear-gradient(
      180deg,
      rgba(255,71,87,0.16),
      rgba(255,71,87,0.08)
    );
}

/* Players header actions: force exact same typography as generic DS header buttons */
#players .phds-player-badges .ph-badge-btn.phds-card-action,
#players .phds-player-badges .phds-player-head-action {
  min-height: 30px !important;
  padding: 0 12px !important;

  font-family: var(--ph-font) !important;
  font-size: 11px !important;
  font-weight: 650 !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;

  border-radius: 8px !important;

  margin: 0 !important;
  transform: none !important;
}

/* Prevent old badge typography from bleeding into player header actions */
#players .phds-player-badges .ph-badge-btn.phds-card-action {
  gap: 0 !important;
}

/* Players view meta strip under context bug */
.phds-players-meta-strip {
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;

  margin-top: -8px;
  margin-bottom: 10px;
  padding: 0 10px;
  min-height: 0;
}

.phds-players-meta-strip .phds-meta-strip-item {
  min-height: 0;
  gap: 6px;
}

.phds-players-meta-title {
  min-width: 0;

  display: inline-flex;
  align-items: baseline;
  gap: 4px;

  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.1;
  color: rgba(248,250,252,0.94);

  white-space: nowrap;
}

.phds-players-meta-title .ph-admin-count {
  font-size: 11px;
  font-weight: var(--ph-weight-medium);
  color: rgba(203,213,225,0.76);
}

.phds-players-meta-action {
  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  min-height: 18px;
  padding: 0;

  border: 0;
  background: transparent;

  color: rgba(248,250,252,0.96);

  font: inherit;
  font-size: 11px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.1;

  cursor: pointer;
  white-space: nowrap;
}

.phds-players-meta-strip .phds-meta-strip-item {
  justify-content: flex-start;
}

.phds-players-meta-left {
  min-width: 0;
}

.phds-players-meta-right {
  justify-self: end;
}

.phds-players-meta-title {
  min-width: 0;

  display: inline-flex;
  align-items: baseline;
  gap: 4px;

  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  color: rgba(248,250,252,0.94);

  white-space: nowrap;
}

.phds-players-meta-title .ph-admin-count {
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  color: rgba(203,213,225,0.76);
}

.phds-players-meta-action {
  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  min-height: 28px;
  padding: 0;

  border: 0;
  background: transparent;

  color: rgba(248,250,252,0.96);

  font: inherit;
  font-size: 12px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.1;

  cursor: pointer;
  white-space: nowrap;
}

.phds-players-meta-plus {
  color: var(--ph-accent);
  font-weight: var(--ph-weight-heavy);
  transform: translateY(-1px);
}

.phds-players-meta-action:active {
  transform: translateY(1px);
}

/* Players search: compact standalone card below meta strip */
#players.phds-card-list {
  margin-top: 0 !important;
}

#players .phds-player-tools--compact {
  padding: 12px 16px;
}

#players .phds-player-tools--compact + .phds-player-card {
  margin-top: 0;
}

#players .phds-player-search-wrap {
  max-width: none;
}

#players .phds-player-search {
  min-height: 40px;
}

/* Players view: use Live Hub context-meta look & feel */
.phds-players-meta-strip {
  position: relative;
  z-index: 1;

  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  column-gap: 12px;

  margin-top: -22px;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 14px;

  padding: 10px 16px 8px;
  min-height: 22px;

  border-radius: 0 0 var(--ph-radius) var(--ph-radius);
  border: 1px solid rgba(140, 170, 220, 0.14);
  border-top: 0;

  background:
    linear-gradient(
      180deg,
      rgba(42,56,84,0.92) 0%,
      rgba(33,46,71,0.96) 100%
    );

  box-shadow:
    0 10px 22px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.035);
}

.phds-players-meta-strip .phds-meta-strip-item {
  position: relative;

  display: flex;
  align-items: center;
  gap: 8px;

  min-height: 0;

  white-space: nowrap;

  font-size: 13px;
  font-weight: 500;
  line-height: 1.15;

  color: rgba(248, 250, 252, 0.9);
}

.phds-players-meta-strip .phds-meta-strip-item + .phds-meta-strip-item::before {
  display: none;
}

.phds-players-meta-left {
  justify-content: flex-start;
  min-width: 0;
}

.phds-players-meta-right {
  justify-content: flex-end;
  justify-self: end;
}

.phds-players-meta-title {
  min-width: 0;

  display: inline-flex;
  align-items: baseline;
  gap: 4px;

  font-size: 13px;
  font-weight: 760;
  line-height: 1.15;
  color: rgba(248,250,252,0.96);

  white-space: nowrap;
}

.phds-players-meta-title .ph-admin-count {
  font-size: 12px;
  font-weight: 500;
  color: rgba(203,213,225,0.72);
}

.phds-players-meta-action {
  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  min-height: 24px;
  padding: 0;

  border: 0;
  background: transparent;

  color: rgba(248,250,252,0.96);

  font: inherit;
  font-size: 12px;
  font-weight: 760;
  line-height: 1.15;

  cursor: pointer;
  white-space: nowrap;
}

.phds-players-meta-plus {
  color: var(--ph-accent);
  font-weight: 900;
  transform: translateY(-1px);
}

.phds-players-meta-action:active {
  transform: translateY(1px);
}

/* =========================================================
   Players view — meta strip alignment + exact card rhythm
   ========================================================= */

/* Keep the Live Hub context-meta look, but center content in the visible strip area */
.phds-players-meta-strip {
  margin-bottom: 22px;

  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.phds-players-meta-strip .phds-meta-strip-item {
  display: flex;
  align-items: center;
  min-height: 22px;
  line-height: 1.15;

  /*
    The strip is pulled up with margin-top:-10px like the Live Hub meta row.
    This optically centers the content in the visible part below the context bug.
  */
  transform: translateY(4px);
}

.phds-players-meta-left {
  justify-content: flex-start;
  min-width: 0;
}

.phds-players-meta-right {
  justify-content: flex-end;
  justify-self: end;
}

.phds-players-meta-title {
  display: inline-flex;
  align-items: center;
  gap: 4px;

  min-height: 22px;
  line-height: 1.15;
}

.phds-players-meta-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  min-height: 22px;
  line-height: 1.15;
}

/* Exact 22px from meta strip to search card */
#players.phds-card-list {
  margin-top: 0 !important;
  gap: var(--ph-card-stack-gap) !important;
}

/* Exact 22px between search card and first player card.
   This neutralizes the generic .phds-card + .phds-card margin. */
#players .phds-card + .phds-card {
  margin-top: 0;
}

/* =========================================================
   DS card stacks — gap is the only spacing source
   ========================================================= */

.phds-card-list > .phds-card + .phds-card {
  margin-top: 0;
}

/* Players meta strip: optically center Add player in the visible strip area */
.phds-players-meta-right {
  display: flex;
  align-items: center;
}

.phds-players-meta-action {
  min-height: 22px;
  align-items: center;
  line-height: 1;
  transform: translateY(5px);
}

.phds-players-meta-action:active {
  transform: translateY(5px);
}

.phds-players-meta-plus {
  transform: none;
}

/* =========================================================
   Players meta strip — 3-part toolbar: count / search / add
   ========================================================= */

.phds-players-meta-strip {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.phds-players-meta-left {
  justify-content: flex-start;
  justify-self: start;
}

.phds-players-meta-center {
  justify-content: center;
  justify-self: center;
}

.phds-players-meta-right {
  justify-content: flex-end;
  justify-self: end;
}

.phds-players-meta-search[data-open="1"] {
  color: var(--ph-accent);
  text-shadow: 0 0 12px rgba(45,226,230,0.24);
}

.phds-players-meta-search[data-open="1"]::after {
  content: "";
  display: block;
  width: 4px;
  height: 4px;
  margin-left: 1px;

  border-radius: 999px;
  background: var(--ph-accent);
  box-shadow: 0 0 10px rgba(45,226,230,0.42);
}

/* =========================================================
   Players meta strip — Live Hub dividers
   ========================================================= */

.phds-players-meta-strip > .phds-meta-strip-item {
  position: relative;
}

/* Divider before item 2 and 3, same as Live Hub meta strip */
.phds-players-meta-strip > .phds-meta-strip-item:nth-child(n + 2)::before {
  content: "";
  display: block;

  position: absolute;
  left: -1px;
  top: 50%;
  transform: translateY(-50%);

  width: 1px;
  height: 22px;

  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.00) 0%,
    rgba(255,255,255,0.18) 20%,
    rgba(255,255,255,0.18) 80%,
    rgba(255,255,255,0.00) 100%
  );

  pointer-events: none;
}

/* =========================================================
   Players meta strip — equal Live Hub column rhythm
   ========================================================= */

.phds-players-meta-strip {
  grid-template-columns: 1fr 1fr 1fr;
  column-gap: 0;
}

/* Reset older player-meta alignment overrides */
.phds-players-meta-strip > .phds-meta-strip-item {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
}

/* Same visual logic as Live Hub: each item sits inside one equal column */
.phds-players-meta-left {
  justify-content: center;
  justify-self: stretch;
}

.phds-players-meta-center {
  justify-content: center;
  justify-self: stretch;
}

.phds-players-meta-right {
  justify-content: center;
  justify-self: stretch;
}

/* Divider before column 2 and 3 */
.phds-players-meta-strip > .phds-meta-strip-item:nth-child(n + 2)::before {
  content: "";
  display: block !important;

  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);

  width: 1px;
  height: 22px;

  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.00) 0%,
    rgba(255,255,255,0.18) 20%,
    rgba(255,255,255,0.18) 80%,
    rgba(255,255,255,0.00) 100%
  );

  pointer-events: none;
}

/* Players meta strip — force true centered 3-column layout */
.phds-players-meta-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  column-gap: 0 !important;
}

.phds-players-meta-strip > .phds-meta-strip-item {
  width: 100%;
  min-width: 0;
  justify-self: stretch !important;
  justify-content: center !important;
  text-align: center;
}

/* Make inner content center as a unit */
.phds-players-meta-title,
.phds-players-meta-action {
  justify-content: center;
  text-align: center;
}

/* Keep dividers exactly on column boundaries */
.phds-players-meta-strip > .phds-meta-strip-item:nth-child(n + 2)::before {
  left: 0;
}

/* =========================================================
   Team Hub — Design System consumer
   Parent-facing foundation shell
   ========================================================= */

body.ph-teamhub-mode {
  margin: 0;
  min-height: 100vh;
  background: linear-gradient(180deg, var(--ph-bg), var(--ph-bg-deep));
  color: var(--ph-text);
  font-family: var(--ph-font);
}

.phds-teamhub {
  width: 100%;
  max-width: var(--ph-page-max);
  margin: 0 auto;
  padding: 18px var(--ph-page-gutter) 44px;
  box-sizing: border-box;
}

.phds-teamhub-hero {
  margin-bottom: var(--ph-card-stack-gap);
}

.phds-teamhub-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);
}

.phds-teamhub-stack > .phds-card {
  margin-top: 0;
  margin-bottom: 0;
}

.phds-teamhub-list {
  display: flex;
  flex-direction: column;
  margin-top: 16px;
}

.phds-teamhub-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;

  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.phds-teamhub-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.phds-teamhub-row:last-child {
  padding-bottom: 0;
}

.phds-teamhub-player-name {
  min-width: 0;

  font-size: 15px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;
  color: var(--ph-text-strong);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-teamhub-player-meta {
  margin-top: 4px;

  font-size: 13px;
  font-weight: var(--ph-weight-regular);
  line-height: 1.25;
  color: var(--ph-card-body-text-muted);
}

.phds-teamhub-pill {
  justify-self: end;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 24px;
  padding: 4px 10px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);

  color: rgba(255,255,255,0.88);

  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;
}

.phds-teamhub-pill[data-status="approved"] {
  color: rgba(214,255,231,0.98);
  border-color: rgba(46,213,115,0.42);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.15),
      rgba(46,213,115,0.075)
    );
}

.phds-teamhub-pill[data-status="pending"] {
  color: rgba(255,239,204,0.98);
  border-color: rgba(245,158,11,0.48);
  background:
    linear-gradient(
      180deg,
      rgba(245,158,11,0.16),
      rgba(245,158,11,0.08)
    );
}

.phds-teamhub-pill[data-status="blocked"] {
  color: var(--ph-danger-text);
  border-color: rgba(255,71,87,0.48);
  background:
    linear-gradient(
      180deg,
      rgba(255,71,87,0.16),
      rgba(255,71,87,0.08)
    );
}

.phds-teamhub-presence-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.phds-teamhub-presence-summary span {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 24px;
  padding: 4px 10px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);

  color: rgba(255,255,255,0.86);

  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .15px;
  line-height: 1;
}

.phds-teamhub-presence-pill {
  justify-self: end;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 24px;
  min-width: 74px;
  padding: 4px 10px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);

  color: rgba(255,255,255,0.88);

  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;
}

.phds-teamhub-presence-pill[data-status="yes"],
.phds-teamhub-presence-summary span[data-status="yes"] {
  color: rgba(214,255,231,0.98);
  border-color: rgba(46,213,115,0.42);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.15),
      rgba(46,213,115,0.075)
    );
}

.phds-teamhub-presence-pill[data-status="no"],
.phds-teamhub-presence-summary span[data-status="no"] {
  color: var(--ph-danger-text);
  border-color: rgba(255,71,87,0.48);
  background:
    linear-gradient(
      180deg,
      rgba(255,71,87,0.16),
      rgba(255,71,87,0.08)
    );
}

.phds-teamhub-presence-pill[data-status="unknown"],
.phds-teamhub-presence-summary span[data-status="unknown"] {
  color: rgba(203,213,225,0.92);
  border-color: rgba(203,213,225,0.22);
  background: rgba(255,255,255,0.045);
}

.phds-teamhub-presence-row {
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.phds-teamhub-presence-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.phds-teamhub-presence-row:last-child {
  padding-bottom: 0;
}

.phds-teamhub-presence-question {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;
}

.phds-teamhub-presence-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.phds-teamhub-presence-action {
  appearance: none;
  -webkit-appearance: none;

  min-height: 34px;
  padding: 0 10px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.055);

  color: rgba(255,255,255,0.86);

  font: inherit;
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1;

  cursor: pointer;

  transition:
    background 140ms ease,
    border-color 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

.phds-teamhub-presence-action:active {
  transform: translateY(1px);
}

.phds-teamhub-presence-action:disabled {
  opacity: .48;
  cursor: not-allowed;
  transform: none;
}

.phds-teamhub-presence-action[data-active="1"] {
  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);
  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 14px rgba(45,226,230,0.18);
}

.phds-teamhub-presence-message {
  margin-bottom: 14px;
  padding: 10px 12px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,71,87,0.34);
  background: rgba(255,71,87,0.10);
}

.phds-teamhub-next-match {
  display: block;
}

.phds-teamhub-presence-context {
  margin-top: 7px;
  padding: 0;
  border: 0;
}

.phds-teamhub-presence-context__main {
  margin: 0;
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
  color: var(--ph-card-body-text);
}

.phds-teamhub-presence-context__sub {
  margin: 3px 0 0;
  font-size: 12px;
  line-height: 1.25;
  color: var(--ph-card-body-text-muted);
}

.phds-teamhub-presence-context[data-can-play="1"] .phds-teamhub-presence-context__main {
  color: rgba(37,230,184,1);
}

.phds-teamhub-staff-note {
  margin-top: 14px;
}

.phds-teamhub-presence-confirmation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;
}

.phds-teamhub-presence-edit {
  appearance: none;
  -webkit-appearance: none;

  min-height: 28px;
  padding: 0 11px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.055);

  color: rgba(255,255,255,0.88);

  font: inherit;
  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;
}

.phds-teamhub-presence-edit:active {
  transform: translateY(1px);
}

.phds-teamhub-presence-row.is-just-updated {
  animation: phds-teamhub-presence-saved 780ms ease-out;
}

@keyframes phds-teamhub-presence-saved {
  0% {
    transform: translateY(3px);
    opacity: .88;
    background: rgba(45,226,230,0.00);
  }

  36% {
    transform: translateY(0);
    opacity: 1;
    background: rgba(45,226,230,0.075);
  }

  100% {
    transform: translateY(0);
    opacity: 1;
    background: rgba(45,226,230,0.00);
  }
}

/* =========================================================
   Team Hub — compact next-match row
   ========================================================= */

.phds-teamhub-next-row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  column-gap: 14px;
  align-items: start;
}

.phds-teamhub-next-date {
  min-width: 0;
  padding-top: 1px;

  display: flex;
  flex-direction: column;
  align-items: center;

  border-right: 1px solid rgba(255,255,255,0.10);
  padding-right: 12px;
}

.phds-teamhub-next-date__day {
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .7px;
  text-transform: uppercase;
  color: var(--ph-accent);
}

.phds-teamhub-next-date__num {
  margin-top: 5px;

  font-size: 28px;
  font-weight: var(--ph-weight-heavy);
  line-height: .95;
  letter-spacing: -0.04em;

  color: var(--ph-text-strong);
}

.phds-teamhub-next-date__time {
  margin-top: 7px;

  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.1;

  color: var(--ph-card-body-text-muted);
}

.phds-teamhub-next-main {
  min-width: 0;
}

.phds-teamhub-next-opponent {
  min-width: 0;

  font-size: 15px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;

  color: var(--ph-text-strong);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-teamhub-next-presence {
  margin-top: 14px;
}

.phds-teamhub-next-presence .phds-teamhub-presence-row {
  padding-top: 12px;
  padding-bottom: 0;
}

.phds-teamhub-next-presence .phds-teamhub-presence-row:first-child {
  border-top: 0;
}

.phds-teamhub-next-presence .phds-teamhub-presence-actions {
  margin-top: 10px;
}

@media (max-width: 360px) {
  .phds-teamhub-next-row {
    grid-template-columns: 54px minmax(0, 1fr);
    column-gap: 12px;
  }

  .phds-teamhub-next-date {
    padding-right: 10px;
  }

  .phds-teamhub-next-date__num {
    font-size: 25px;
  }
}

.phds-teamhub-staff-actions {
  display: flex;
  justify-content: flex-start;
  margin-top: 14px;
}

.phds-teamhub-coach-link {
  text-decoration: none;
}

.phds-teamhub-next-presence .phds-teamhub-presence-row {
  padding: 0;
  border-top: 0;
}

.phds-teamhub-presence-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 12px;
}

.phds-teamhub-presence-footer .phds-teamhub-player-name {
  font-size: 14px;
  line-height: 1.2;
}

.phds-teamhub-presence-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 0;
}

.phds-teamhub-presence-action {
  min-height: 28px;
  min-width: 66px;
  padding: 0 12px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.055);

  color: rgba(255,255,255,0.88);

  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  text-transform: uppercase;
}

.phds-teamhub-presence-action[data-active="1"] {
  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);
  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 12px rgba(45,226,230,0.14);
}

.phds-teamhub-presence-confirmation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;
}

.phds-teamhub-presence-edit {
  min-height: 28px;
  padding: 0 11px;
}

.phds-teamhub-next-footer {
  grid-column: 1 / -1;

  margin-top: 14px;
  padding-top: 14px;

  border-top: 1px solid rgba(255,255,255,0.08);
}

.phds-teamhub-next-presence {
  display: block;
}

.phds-teamhub-staff-actions {
  display: flex;
  justify-content: flex-start;
}

.phds-teamhub-next-presence .phds-teamhub-presence-row {
  padding: 0;
  border-top: 0;
}

.phds-teamhub-coach-link {
  text-decoration: none;
  white-space: nowrap;
}

.phds-teamhub-next-card .phds-card__body {
  padding-bottom: 0;
}

.phds-teamhub-next-footer {
  grid-column: 1 / -1;

  margin-top: 12px;
  padding-top: 12px;

  border-top: 1px solid rgba(255,255,255,0.08);
}

.phds-teamhub-next-footer .phds-teamhub-presence-row {
  width: 100%;
  padding: 0;
  border-top: 0;
}

.phds-teamhub-next-footer .phds-teamhub-presence-confirmation,
.phds-teamhub-next-footer .phds-teamhub-presence-footer {
  min-height: 30px;

  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 12px;
}

.phds-teamhub-next-footer .phds-teamhub-player-name {
  display: flex;
  align-items: center;

  min-height: 20px;

  font-size: 14px;
  line-height: 1;
}

.phds-teamhub-next-footer .phds-teamhub-presence-edit,
.phds-teamhub-next-footer .phds-teamhub-presence-action {
  align-self: center;
  min-height: 30px;
  margin: 0;
  transform: none;
}

.phds-teamhub-next-card.phds-card--roomy[data-teamhub-mode="parent"] {
  padding-bottom: 12px;
}

.phds-teamhub-next-footer .phds-teamhub-presence-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: 0;
}

.phds-teamhub-next-footer .phds-teamhub-presence-action {
  flex: 0 0 auto;
  min-width: 0;
  margin: 0;
}

.phds-teamhub-next-footer .phds-teamhub-presence-action + .phds-teamhub-presence-action {
  margin-left: 0;
}

.phds-teamhub-next-footer .phds-teamhub-presence-action[data-active="1"] {
  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45, 226, 230, 0.10),
    0 0 12px rgba(45, 226, 230, 0.14);
}

.phds-teamhub-next-footer .phds-teamhub-presence-action:hover {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.22);
}

.phds-teamhub-next-footer .phds-teamhub-presence-action[data-active="1"] {
  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 12px rgba(45,226,230,0.14);
}

.phds-teamhub-next-footer .phds-teamhub-presence-action {
  width: 72px;
  min-width: 72px;
}

/* =========================================================
   Team Hub — rich next-match card
   ========================================================= */

.phds-teamhub-next-card {
  overflow: visible;
}

.phds-teamhub-next-card .phds-card__body {
  padding-top: 0;
}

.phds-teamhub-next-row,
.phds-teamhub-next-content,
.phds-teamhub-next-footer {
  min-width: 0;
}

.phds-teamhub-next-row {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Plain match note: under title, above first divider */
.phds-teamhub-next-note {
  display: flex;
  flex-direction: column;
  gap: 5px;

  margin-top: 2px;
  padding: 0 2px;
}

.phds-teamhub-next-note__label {
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.2;
  letter-spacing: .35px;

  color: var(--ph-accent);
}

.phds-teamhub-next-note__text {
  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.32;

  color: var(--ph-card-body-text);
}

.phds-teamhub-next-section-divider {
  width: 100%;
  height: 1px;
  background: rgba(255,255,255,0.08);
}

.phds-teamhub-next-section-divider--no-note {
  margin-top: 14px;
}

/* Main match content: date | divider | content */
.phds-teamhub-next-content {
  display: grid;
  grid-template-columns: 40px 1px minmax(0, 1fr);
  column-gap: 18px;
  row-gap: 12px;
  align-items: start;
}

/* Explicitly neutralize older compact-row date border */
.phds-teamhub-next-date {
  min-width: 0;
  padding-top: 2px;
  padding-right: 0 !important;
  border-right: 0 !important;

  display: flex;
  flex-direction: column;
  align-items: center;
}

.phds-teamhub-next-date__day {
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .7px;
  text-transform: uppercase;
  color: var(--ph-accent);
}

.phds-teamhub-next-date__num {
  margin-top: 6px;

  font-size: 28px;
  font-weight: var(--ph-weight-heavy);
  line-height: .95;
  letter-spacing: -0.04em;
  color: var(--ph-text-strong);
}

.phds-teamhub-next-date__month {
  margin-top: 7px;

  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .7px;
  text-transform: uppercase;
  color: var(--ph-card-body-text-muted);
}

.phds-teamhub-next-divider {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: stretch;

  width: 1px;
  min-height: 100%;

  background: rgba(255,255,255,0.08);
}

.phds-teamhub-next-main {
  grid-column: 3;
  min-width: 0;
}

.phds-teamhub-next-opponent {
  min-width: 0;

  font-size: 15px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  color: var(--ph-text-strong);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-teamhub-presence-context {
  margin-top: 12px;
}

.phds-teamhub-next-practical {
  grid-column: 3;

  margin-top: 0;
  padding-top: 13px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.phds-teamhub-next-practical__title {
  margin-bottom: 14px;

  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .7px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.50);
}

.phds-teamhub-next-practical__list {
  display: flex;
  flex-direction: column;
}

.phds-teamhub-next-practical__row {
  display: grid;
  grid-template-columns: 22px 88px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;

  min-height: 27px;
  padding: 4px 0;
  border-top: 0;
}

.phds-teamhub-next-practical__row:first-child {
  padding-top: 0;
}

.phds-teamhub-next-practical__row:last-child {
  padding-bottom: 0;
}

.phds-teamhub-next-practical__icon {
  width: 22px;
  height: 22px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--ph-accent);
  opacity: .92;
  transform: translateY(1px);
}

.phds-teamhub-next-practical__icon {
  margin-top: -1px;
}



.phds-teamhub-next-practical__icon svg {
  width: 18px;
  height: 18px;
  display: block;
  transform: translateY(-2px);

  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  vector-effect: non-scaling-stroke;
}

.phds-teamhub-next-practical__label {
  min-width: 0;
  padding-top: 1px;

  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.2;
  color: var(--ph-card-body-text-muted);
}

.phds-teamhub-next-practical__value {
  min-width: 0;
  padding-top: 0;

  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.22;
  color: var(--ph-card-body-text);

  overflow-wrap: anywhere;
}

/* Footer lives outside the date/content grid */
.phds-teamhub-next-footer {
  width: 100%;
  box-sizing: border-box;

  margin-top: 0;
  padding-top: 14px;

  border-top: 1px solid rgba(255,255,255,0.08);
}

.phds-teamhub-next-presence {
  width: 100%;
  min-width: 0;
}

.phds-teamhub-next-footer .phds-teamhub-player-meta {
  margin-top: 1px;
  font-size: 12px;
  line-height: 1.2;
}

.phds-teamhub-next-footer .phds-teamhub-presence-confirmation {
  align-items: center;
}

.phds-teamhub-next-footer .phds-teamhub-presence-footer,
.phds-teamhub-next-footer .phds-teamhub-presence-confirmation {
  min-height: 42px;
}

@media (max-width: 360px) {
  .phds-teamhub-next-content {
    grid-template-columns: 50px 1px minmax(0, 1fr);
    column-gap: 14px;
    row-gap: 14px;
  }

  .phds-teamhub-next-practical__row {
    grid-template-columns: 20px 68px minmax(0, 1fr);
    column-gap: 8px;
  }

  .phds-teamhub-next-opponent {
    white-space: normal;
  }
}

/* =========================================================
   Team Hub — next match note, plain context style
   ========================================================= */

.phds-teamhub-next-note {
  display: flex;
  flex-direction: column;
  gap: 4px;

  margin-top: 10px;
  padding: 0;
}

.phds-teamhub-next-note__label {
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.2;
  letter-spacing: .35px;

  color: var(--ph-accent);
}

.phds-teamhub-next-note__text {
  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.32;

  color: var(--ph-card-body-text);
}

.phds-teamhub-presence-reasons {
  margin-top: 8px;
  width: 100%;
}

.phds-teamhub-presence-reason-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
  margin-top: 4px;
}

.phds-teamhub-presence-reason {
  flex: 0 0 auto;
  width: auto;
  min-width: max-content;
  justify-content: center;
  padding-inline: 12px;
  white-space: nowrap;
}

.phds-teamhub-presence-reasons {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 8px;
}

.phds-teamhub-next-main,
.phds-teamhub-next-content {
  min-width: 0;
  width: 100%;
}

.phds-teamhub-route-head-link {
  white-space: nowrap;
}

.phds-teamhub-staff-presence {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.phds-teamhub-staff-presence__status {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  min-width: 0;
}

.phds-teamhub-staff-presence__item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  color: var(--ph-card-body-text);
  font-size: 12px;
  font-weight: 550;
  line-height: 1;
  white-space: nowrap;
}

.phds-teamhub-staff-presence__item svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.92;
}

.phds-teamhub-staff-presence__item[data-presence-kind="yes"] {
  color: var(--ph-accent);
}

.phds-teamhub-staff-presence__item[data-presence-kind="no"] {
  color: var(--ph-pulse);
}

.phds-teamhub-staff-presence__item[data-presence-kind="unknown"] {
  color: var(--ph-text-muted);
}

.phds-teamhub-staff-presence__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.phds-teamhub-staff-presence__actions [aria-disabled="true"] {
  pointer-events: none;
  opacity: 0.55;
}

.phds-teamhub-staff-presence__done {
  color: var(--ph-text-muted);
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}

@media (max-width: 430px) {
  .phds-teamhub-staff-presence {
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
  }

  .phds-teamhub-staff-presence__status {
    flex: 1 1 auto;
    min-width: 0;
  }

  .phds-teamhub-staff-presence__actions {
    width: auto;
    flex: 0 0 auto;
    justify-content: flex-end;
    margin-left: auto;
  }
}

.phds-teamhub-hero {
  margin-bottom: var(--ph-card-stack-gap);
}

.phds-teamhub-hero-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;

  width: 100%;
  min-width: 0;
}

.phds-teamhub-hero-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.phds-teamhub-product-label {
  margin: 0 0 7px;

  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .9px;
  text-transform: uppercase;

  color: rgba(255,255,255,0.42);
}

.phds-teamhub-hero-copy .phds-title {
  line-height: 1.12;
}

.phds-teamhub-hero-copy .phds-subtitle {
  margin-top: 5px;
  line-height: 1.2;
}

.phds-teamhub-club-logo {
  display: block;

  width: 84px;
  height: 64px;
  flex: 0 0 84px;

  object-fit: contain;

  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.phds-teamhub-club-logo[hidden] {
  display: none;
}

@media (max-width: 360px) {
  .phds-teamhub-hero-main {
    gap: 14px;
  }

  .phds-teamhub-club-logo {
    width: 54px;
    height: 48px;
    flex-basis: 74px;
  }

  .phds-teamhub-product-label {
    font-size: 10px;
    letter-spacing: .75px;
  }
}

#players .phds-teamhub-access-label {
  color: var(--ph-card-body-text);
  font-size: var(--ph-text-md);
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

#players .phds-teamhub-access-meta {
  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

#players .phds-teamhub-access-actions {
  flex: 0 0 auto;

  display: flex;
  align-items: flex-start;
  padding-top: 1px;
}

#players .phds-teamhub-access-action {
  min-height: 30px;
  padding-inline: 12px;
  font-size: 11px;
  white-space: nowrap;
}

@media (max-width: 420px) {
  #players .phds-teamhub-access-row {
    align-items: flex-start;
  }

  #players .phds-teamhub-access-action {
    min-width: 92px;
  }
}

#players .phds-teamhub-access-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#players .phds-teamhub-access-meta-main {
  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.25;
}

#players .phds-teamhub-access-form {
  display: grid;
  gap: 12px;

  margin-top: 12px;
  padding-top: 12px;

  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .phds-teamhub-access-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

#players .phds-teamhub-access-created {
  margin-top: 10px;

  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.35;
}

#players .phds-teamhub-access-meta-detail {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#players .phds-teamhub-access-meta-line {
  display: block;
  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

#players .phds-teamhub-access-block {
  display: flex;
  flex-direction: column;
  gap: 0;
}

#players .phds-teamhub-access-summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;

  padding-top: 12px;
  margin-top: 12px;

  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .phds-teamhub-access-summary-copy {
  min-width: 0;

  display: flex;
  flex-direction: column;
  gap: 3px;
}

#players .phds-teamhub-access-label {
  color: var(--ph-card-body-text);
  font-size: var(--ph-text-md);
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

#players .phds-teamhub-access-summary-meta {
  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.25;
}

#players .phds-teamhub-access-actions {
  flex: 0 0 auto;

  display: flex;
  align-items: flex-start;
  gap: 8px;
}

#players .phds-teamhub-access-action {
  min-height: 30px;
  padding-inline: 12px;
  font-size: 11px;
  white-space: nowrap;
}

#players .phds-teamhub-access-list {
  display: grid;
  gap: 4px;

  margin-top: 10px;
}

#players .phds-teamhub-access-list-item {
  display: block;
}

#players .phds-teamhub-access-list-text {
  display: block;
  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.3;
  overflow-wrap: anywhere;
}

#players .phds-teamhub-access-form {
  display: grid;
  gap: 12px;

  margin-top: 14px;
  padding-top: 14px;

  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .phds-teamhub-access-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

#players .phds-teamhub-access-created {
  margin-top: 10px;

  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.35;
}

@media (max-width: 420px) {
  #players .phds-teamhub-access-summary {
    gap: 10px;
  }

  #players .phds-teamhub-access-action {
    min-width: 92px;
  }
}

#players .phds-teamhub-access-select-field {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 100%;
}

#players .phds-teamhub-access-select {
  width: auto;
  max-width: 100%;
  min-width: min(100%, 230px);
  min-height: 38px;

  padding-top: 0;
  padding-bottom: 0;
  padding-left: 12px;
  padding-right: 34px;

  font-size: var(--ph-text-base);
  line-height: 1.2;
}

#players .phds-teamhub-access-select-field--wide .phds-teamhub-access-select {
  min-width: min(100%, 320px);
}

#players .phds-teamhub-access-form .phds-teamhub-access-select-field {
  width: fit-content;
  max-width: 100%;
}

#players .phds-teamhub-access-form .phds-teamhub-access-select {
  width: 230px !important;
  max-width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  line-height: 44px !important;

  padding-top: 0;
  padding-bottom: 0;
  padding-left: 12px;
  padding-right: 34px;

  font-size: var(--ph-text-base);
  line-height: 1.2;
}

#players .phds-teamhub-access-form .phds-teamhub-access-select-field--wide .phds-teamhub-access-select {
  width: 330px !important;
  max-width: 100% !important;
}

#players .phds-teamhub-access-form select.phds-teamhub-access-select {
  box-sizing: border-box !important;

  width: 230px !important;
  max-width: 100% !important;

  min-height: 46px !important;
  height: 46px !important;

  padding: 0 34px 0 12px !important;

  font-size: var(--ph-text-base) !important;
  line-height: 1.2 !important;
}

#players .phds-teamhub-access-form .phds-teamhub-access-select-field--wide select.phds-teamhub-access-select {
  width: 330px !important;
  max-width: 100% !important;
}

/* =========================================================
   BREAK view — Design System consumer
   ========================================================= */

#startNext.ph-break-v2-start {
  width: 100%;
  min-height: 50px;
  margin: 18px 0 22px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);

  background: linear-gradient(180deg, #2f80ff 0%, #256ee8 100%);
  color: #fff;

  font-family: var(--ph-font);
  font-size: 16px;
  font-weight: 750;
  letter-spacing: .2px;
  line-height: 1;

  box-shadow:
    0 10px 24px rgba(37,110,232,.28),
    inset 0 1px 0 rgba(255,255,255,.12);

  cursor: pointer;
}

#startNext.ph-break-v2-start:hover {
  filter: brightness(1.04);
}

#startNext.ph-break-v2-start:active {
  transform: translateY(1px);
}

#startNext.ph-break-v2-start:disabled {
  opacity: .42;
  filter: none;
  cursor: not-allowed;
  transform: none;
}

#breakRoot.phds-break {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);

  width: 100%;
  max-width: 100%;
  box-sizing: border-box;

  padding-bottom: calc(var(--ph-card-stack-gap) * 2);
}

#breakRoot.phds-break .ph-break-card {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  margin: 0;

  overflow: visible;

  padding: 12px 14px;
  border-radius: var(--ph-radius);

  background: var(--ph-surface-card);
  border: 1px solid var(--ph-border-card);
  box-shadow: var(--ph-shadow-card);

  color: var(--ph-text);
}

#breakRoot.phds-break .ph-break-card.is-shape-menu-open {
  z-index: 20;
}

#breakRoot.phds-break .ph-break-card-toggle {
  appearance: none;
  -webkit-appearance: none;

  width: 100%;
  min-height: 0;
  padding: 0 !important;
  margin: 0 !important;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  border: 0;
  background: transparent;
  color: inherit;

  font: inherit;
  text-align: left;
  cursor: pointer;
}

#breakRoot.phds-break .ph-break-card-toggle--static {
  cursor: default;
}

#breakRoot.phds-break .ph-break-card-main {
  min-width: 0;
  flex: 1 1 auto;

  display: inline-flex;
  align-items: center;
  gap: 8px;
}

#breakRoot.phds-break .ph-break-card-icon {
  flex: 0 0 auto;

  width: 20px;
  height: 20px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--ph-text-muted);
}

#breakRoot.phds-break .ph-break-card-icon svg {
  width: 20px;
  height: 20px;

  display: block;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#breakRoot.phds-break .ph-break-card-title {
  min-width: 0;

  font-size: 16px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.1;
  letter-spacing: -0.01em;

  color: var(--ph-text-strong);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#breakRoot.phds-break .ph-break-card-meta {
  flex: 0 0 auto;

  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;

  color: var(--ph-card-body-text-muted);
  white-space: nowrap;
}

#breakRoot.phds-break .ph-break-card-panel {
  margin-top: 16px;

  font-size: 14px;
  line-height: 1.4;
  color: var(--ph-card-body-text);
}

#breakRoot.phds-break .ph-break-divider {
  height: 1px;
  margin: 14px 0;
  background: rgba(255,255,255,0.08);
}

#breakRoot.phds-break .ph-break-helper {
  margin: 0 0 12px;

  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;

  color: var(--ph-card-body-text);
}

#breakRoot.phds-break .ph-break-accent-title {
  margin: 14px 0 5px;

  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.2;
  letter-spacing: .35px;
  text-transform: uppercase;

  color: var(--ph-accent);
}

#breakRoot.phds-break .ph-row-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  margin: 14px 0 6px;
}

#breakRoot.phds-break .ph-row-title {
  min-width: 0;

  font-size: 13px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.15;
  letter-spacing: .35px;
  text-transform: uppercase;

  color: var(--ph-card-body-text);
}

#breakRoot.phds-break .ph-subtle {
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;

  color: var(--ph-card-body-text-muted);
  opacity: 1;
}

/* BREAK player rows */

#breakRoot.phds-break {
  --ph-pr-row-h: 34px;
  --ph-pr-chip-h: 28px;
}

#breakRoot.phds-break .ph-pr-line {
  padding: 10px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

#breakRoot.phds-break .ph-pr-line:first-child {
  border-top: 0;
}

#breakRoot.phds-break .ph-pr-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 14px;
  align-items: center;

  width: 100%;
  min-height: var(--ph-pr-row-h);
}

#breakRoot.phds-break .ph-pr-linecheck {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  min-width: 0;
  min-height: var(--ph-pr-row-h);

  color: var(--ph-card-body-text);
  font-weight: var(--ph-weight-semibold);
  line-height: 1;
}

#breakRoot.phds-break .ph-pr-linecheck input {
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--ph-accent);
}

#breakRoot.phds-break .ph-pr-main {
  min-width: 0;
}

#breakRoot.phds-break .ph-pr-title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 8px;

  min-width: 0;

  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.1;

  color: var(--ph-card-body-text);
}

#breakRoot.phds-break .ph-pr-title > span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#breakRoot.phds-break .ph-pr-side {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  min-width: max-content;
  min-height: var(--ph-pr-row-h);
}

#breakRoot.phds-break .ph-pr-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: nowrap;

  min-height: var(--ph-pr-row-h);
  height: auto;

  margin: 0;
  padding: 0;
  transform: none;
}

#breakRoot.phds-break .ph-pr-chip {
  appearance: none;
  -webkit-appearance: none;

  flex: 0 0 auto;
  width: auto !important;
  min-width: 38px;
  min-height: var(--ph-pr-chip-h);
  height: var(--ph-pr-chip-h);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0 10px;
  box-sizing: border-box;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.055);

  color: rgba(255,248,240,0.88);

  font: inherit;
  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;

  box-shadow: none;
  cursor: pointer;
  user-select: none;
  opacity: .9;

  transition:
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

#breakRoot.phds-break .ph-pr-chip:hover {
  background: rgba(255,255,255,0.085);
  border-color: rgba(255,255,255,0.24);
  opacity: 1;
}

#breakRoot.phds-break .ph-pr-chip:active {
  transform: translateY(1px);
}

#breakRoot.phds-break .ph-pr-chip.is-on,
#breakRoot.phds-break .ph-pr-chip[aria-pressed="true"] {
  opacity: 1;

  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 18px var(--ph-chip-active-glow);

  text-shadow: 0 0 12px rgba(45,226,230,0.32);
}

#breakRoot.phds-break .ph-pr-chip.is-display-only {
  cursor: default;
  pointer-events: none;
}

#breakRoot.phds-break .ph-pr-chip:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 1px rgba(218,235,255,0.22),
    0 0 0 4px rgba(45,226,230,0.10);
}

/* BREAK bench chooser */

#breakRoot.phds-break .ph-pr-sidewrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  min-width: 0;
  min-height: var(--ph-pr-row-h);
}

#breakRoot.phds-break .ph-pr-choose {
  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: flex-end;

  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0;

  border: 0;
  background: transparent;

  color: var(--ph-accent);

  font: inherit;
  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .32px;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;
  white-space: nowrap;
}

#breakRoot.phds-break .ph-pr-sidewrap.is-chooser-mode.is-closed .ph-pr-chips {
  display: none !important;
}

#breakRoot.phds-break .ph-pr-sidewrap.is-chooser-mode.is-open .ph-pr-choose {
  display: none !important;
}

#breakRoot.phds-break .ph-pr-sidewrap.is-chooser-mode.is-open .ph-pr-chips {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin-left: auto !important;
}

#breakRoot.phds-break .ph-pr-chip--separated {
  margin-left: 10px;
  opacity: .74;
  border-style: dashed;
}

/* BREAK select menu */

#breakRoot.phds-break .ph-selectmenu {
  position: relative;
  z-index: 30;

  display: inline-flex;
  min-width: 96px;
}

#breakRoot.phds-break .ph-selectmenu-button {
  appearance: none;
  -webkit-appearance: none;

  min-height: 38px;
  padding: 0 34px 0 12px;

  border-radius: 10px;
  border: 1px solid rgba(116,143,176,0.36);

  background:
    linear-gradient(
      180deg,
      rgba(15,28,48,0.98),
      rgba(10,22,38,0.98)
    );

  color: var(--ph-card-body-text);

  font: inherit;
  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.035),
    0 1px 0 rgba(0,0,0,0.24);

  cursor: pointer;
}

#breakRoot.phds-break .ph-selectmenu-button::after {
  content: "⌄";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-54%);

  color: var(--ph-card-body-text-muted);
  font-size: 14px;
  line-height: 1;
}

#breakRoot.phds-break .ph-selectmenu-list {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);

  min-width: 100%;
  padding: 6px;

  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);

  background: rgba(7,17,35,0.98);
  box-shadow: 0 18px 40px rgba(0,0,0,0.42);

  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

#breakRoot.phds-break .ph-selectmenu-option {
  appearance: none;
  -webkit-appearance: none;

  width: 100%;
  min-height: 32px;
  padding: 0 10px;

  display: flex;
  align-items: center;

  border: 0;
  border-radius: 8px;
  background: transparent;

  color: var(--ph-card-body-text);

  font: inherit;
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1;

  text-align: left;
  cursor: pointer;
}

#breakRoot.phds-break .ph-selectmenu-option:hover,
#breakRoot.phds-break .ph-selectmenu-option.is-selected {
  background: rgba(45,226,230,0.10);
  color: var(--ph-text-strong);
}

/* BREAK action links */

#breakRoot.phds-break .ph-actionchip {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  padding: 6px 0;

  color: var(--ph-card-body-text);
  text-decoration: none;

  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.1;

  opacity: .86;
}

#breakRoot.phds-break .ph-actionchip:hover {
  opacity: 1;
}

#breakRoot.phds-break .ph-actionchip-plus {
  color: var(--ph-accent);
  font-weight: var(--ph-weight-heavy);
}

#breakRoot.phds-break .ph-actionchip-text {
  white-space: nowrap;
}

/* BREAK badges */

#breakRoot.phds-break .ph-pres-reason-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 18px;
  padding: 1px 6px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.08);

  color: rgba(255,255,255,0.92);

  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1.1;
  text-transform: uppercase;

  white-space: nowrap;
}

#breakRoot.phds-break .ph-pres-reason-badge.is-moved {
  color: rgba(255,179,71,.95);
  background: rgba(255,179,71,.12);
  border-color: rgba(255,179,71,.35);
}

#breakRoot.phds-break .ph-pres-reason-badge.is-swap-target {
  color: var(--ph-accent) !important;
  background: rgba(45,226,230,0.16) !important;
  border-color: rgba(45,226,230,0.72) !important;
  box-shadow: 0 0 10px rgba(45,226,230,0.10) !important;
}

/* BREAK simple rows */

#breakRoot.phds-break .ph-break-simple-list {
  display: flex;
  flex-direction: column;
}

#breakRoot.phds-break .ph-break-simple-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;

  min-height: 32px;
  padding: 8px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

#breakRoot.phds-break .ph-break-simple-row:first-child {
  border-top: 0;
}

#breakRoot.phds-break .ph-break-simple-name {
  min-width: 0;

  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;

  color: var(--ph-card-body-text);

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#breakRoot.phds-break .ph-break-simple-meta {
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;

  color: var(--ph-card-body-text-muted);
  white-space: nowrap;
}

/* BREAK latest events */

#breakRoot.phds-break .ph-break-card--events h3 {
  margin: 0;

  font-size: 16px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  letter-spacing: -0.01em;

  color: var(--ph-text-strong);
}

#breakRoot.phds-break .ph-break-card--events h3 + div {
  margin-top: 16px;
}

#breakRoot.phds-break .ph-break-card--events > div {
  padding: 9px 0;
  border-top: 1px solid rgba(255,255,255,0.08);

  font-size: 14px;
  line-height: 1.35;
  color: var(--ph-card-body-text);
}

#breakRoot.phds-break .ph-break-card--events > div:empty {
  display: none;
}

/* Direct bring-in state */

#breakRoot.phds-break .ph-break-lineup.is-direct-bring-in-active .js-break-field-target {
  cursor: pointer;
}

#breakRoot.phds-break .ph-break-lineup.is-direct-bring-in-active .js-break-field-target:hover {
  background: rgba(45,226,230,0.035);
}

/* Mobile safety */

@media (max-width: 360px) {
  #breakRoot.phds-break .ph-break-card {
    padding: 15px 14px 17px;
  }

  #breakRoot.phds-break .ph-break-card-title {
    font-size: 15px;
  }

  #breakRoot.phds-break .ph-pr-head {
    column-gap: 10px;
  }

  #breakRoot.phds-break .ph-pr-chips {
    gap: 7px;
  }

  #breakRoot.phds-break .ph-pr-chip {
    min-width: 34px;
    padding: 0 8px;
  }
}

/* =========================================================
   BREAK — formation dropdown polish
   ========================================================= */

#breakRoot.phds-break .ph-selectmenu {
  position: relative;
  z-index: 40;

  display: inline-flex;
  width: auto;
  min-width: 96px;
}

#breakRoot.phds-break .ph-selectmenu-button {
  position: relative;

  min-width: 96px;
  min-height: 38px;
  padding: 0 34px 0 14px;

  border-radius: 9px;
  border: 1px solid rgba(120,160,220,0.22);

  background:
    radial-gradient(120% 160% at 50% -30%, rgba(45,226,230,0.11), rgba(45,226,230,0.00) 45%),
    linear-gradient(180deg, rgba(13,31,52,0.98), rgba(7,20,37,0.98));

  color: var(--ph-text-strong);

  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  letter-spacing: .15px;

  box-shadow:
    0 8px 18px rgba(0,0,0,0.20),
    inset 0 1px 0 rgba(255,255,255,0.045);

  transition:
    border-color 140ms ease,
    background 140ms ease,
    box-shadow 140ms ease;
}

#breakRoot.phds-break .ph-selectmenu.is-open .ph-selectmenu-button {
  border-color: rgba(45,226,230,0.42);

  box-shadow:
    0 10px 22px rgba(0,0,0,0.26),
    0 0 18px rgba(45,226,230,0.08),
    inset 0 1px 0 rgba(255,255,255,0.055);
}

#breakRoot.phds-break .ph-selectmenu-button::after {
  content: "▾";

  position: absolute;
  right: 12px;
  top: 50%;

  transform: translateY(-52%);

  color: var(--ph-accent);

  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;

  opacity: .95;
}

#breakRoot.phds-break .ph-selectmenu-list {
  position: absolute;
  left: 0;
  top: calc(100% + 6px);

  width: 100%;
  min-width: 128px;
  padding: 6px;

  border-radius: 10px;
  border: 1px solid rgba(120,160,220,0.20);

  background:
    radial-gradient(120% 120% at 50% -20%, rgba(45,226,230,0.08), rgba(45,226,230,0.00) 44%),
    linear-gradient(180deg, rgba(7,18,35,0.99), rgba(4,13,27,0.99));

  box-shadow:
    0 18px 42px rgba(0,0,0,0.46),
    inset 0 1px 0 rgba(255,255,255,0.045);

  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

#breakRoot.phds-break .ph-selectmenu-option {
  min-height: 34px;
  padding: 0 12px;

  border-radius: 7px;

  color: var(--ph-card-body-text);

  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  letter-spacing: .12px;
}

#breakRoot.phds-break .ph-selectmenu-option + .ph-selectmenu-option {
  margin-top: 2px;
}

#breakRoot.phds-break .ph-selectmenu-option:hover {
  background: rgba(255,255,255,0.065);
  color: var(--ph-text-strong);
}

#breakRoot.phds-break .ph-selectmenu-option.is-selected,
#breakRoot.phds-break .ph-selectmenu-option[aria-selected="true"] {
  background:
    linear-gradient(
      180deg,
      rgba(45,226,230,0.16),
      rgba(45,226,230,0.085)
    );

  color: var(--ph-chip-active-text);

  box-shadow:
    inset 0 0 0 1px rgba(45,226,230,0.12),
    0 0 14px rgba(45,226,230,0.10);
}

/* BREAK — formation dropdown list physically attached to trigger */
#breakRoot.phds-break .ph-selectmenu.is-open .ph-selectmenu-button {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  border-bottom-color: rgba(120,160,220,0.16) !important;
}

#breakRoot.phds-break .ph-selectmenu.is-open .ph-selectmenu-list {
  top: 100% !important;
  margin-top: 0 !important;
  transform: translateY(-10px) !important;

  border-top: 0 !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  border-bottom-left-radius: 10px !important;
  border-bottom-right-radius: 10px !important;
}

/* BREAK — formation dropdown selected option matches active position chips */
#breakRoot.phds-break .ph-selectmenu-option.is-selected,
#breakRoot.phds-break .ph-selectmenu-option[aria-selected="true"] {
  border: 1px solid var(--ph-chip-active-border) !important;

  background:
    linear-gradient(
      180deg,
      rgba(45,226,230,0.10),
      rgba(45,226,230,0.045)
    ) !important;

  color: var(--ph-chip-active-text) !important;

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 16px rgba(45,226,230,0.18) !important;

  text-shadow: 0 0 12px rgba(45,226,230,0.28);
}

#breakRoot.phds-break .ph-selectmenu-option:hover {
  border: 1px solid rgba(255,255,255,0.18);

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.075),
      rgba(255,255,255,0.045)
    ) !important;

  color: var(--ph-text-strong);
}

/* =========================================================
   BREAK — start period CTA, solid PulsoHub accent
   ========================================================= */

#startNext.ph-break-v2-start {
  border-color: rgba(45,226,230,0.72) !important;

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.30),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #32eef2 0%,
      #20cdd4 46%,
      #1498a6 100%
    ) !important;

  color: #061225 !important;

  font-weight: 850 !important;
  text-shadow: 0 1px 0 rgba(255,255,255,0.22);

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.20),
    0 0 24px rgba(45,226,230,0.30),
    0 14px 30px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.34),
    inset 0 -1px 0 rgba(0,0,0,0.18) !important;
}

#startNext.ph-break-v2-start:hover {
  filter: none !important;

  border-color: rgba(90,247,255,0.88) !important;

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.36),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #5af7ff 0%,
      #28dbe1 48%,
      #16a9b8 100%
    ) !important;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.26),
    0 0 30px rgba(45,226,230,0.38),
    0 16px 34px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.38),
    inset 0 -1px 0 rgba(0,0,0,0.20) !important;
}

#startNext.ph-break-v2-start:active {
  transform: translateY(1px);
}

#startNext.ph-break-v2-start:disabled {
  opacity: .42;
  filter: none !important;
  cursor: not-allowed;

  background:
    linear-gradient(
      180deg,
      rgba(45,226,230,0.18),
      rgba(45,226,230,0.10)
    ) !important;

  color: rgba(255,255,255,0.78) !important;

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.06),
    0 8px 18px rgba(0,0,0,0.18) !important;
}

/* BREAK — soften solid CTA text color */
#startNext.ph-break-v2-start {
  color: #052033 !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,0.22),
    0 0 10px rgba(255,255,255,0.10) !important;
}

#startNext.ph-break-v2-start:hover {
  color: #031827 !important;
}

/* =========================================================
   RUNNING — semantic action buttons
   ========================================================= */

.running-actions-grid .running-action-btn {
  appearance: none;
  -webkit-appearance: none;

  min-height: 50px;
  padding: 0 12px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;

  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);

  font-family: var(--ph-font);
  font-size: 14px;
  font-weight: 850;
  letter-spacing: .12px;
  line-height: 1;

  cursor: pointer;
  user-select: none;

  box-shadow:
    0 12px 28px rgba(0,0,0,0.28),
    inset 0 1px 0 rgba(255,255,255,0.12);

  transition:
    transform 80ms ease,
    border-color 140ms ease,
    background 140ms ease,
    box-shadow 140ms ease,
    filter 140ms ease,
    opacity 140ms ease;
}

.running-actions-grid .running-action-btn:hover {
  filter: none;
}

.running-actions-grid .running-action-btn:active {
  transform: translateY(1px);
}

.running-actions-grid .running-action-btn:disabled,
.running-actions-grid .running-action-btn[disabled] {
  opacity: .42;
  filter: none;
  cursor: not-allowed;
  transform: none;
  box-shadow:
    0 8px 18px rgba(0,0,0,0.16),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

.running-action-btn__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  line-height: 1;
  transform: translateY(-1px);
}

.running-action-btn__label {
  display: inline-flex;
  align-items: center;

  min-width: 0;
  line-height: 1;
  white-space: nowrap;
}

/* Danger: Goal tegen */
.running-actions-grid .running-action-btn--danger {
  border-color: rgba(255,71,87,0.50);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.16),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(255,71,87,0.90),
      rgba(176,34,50,0.96)
    );

  color: rgba(255,245,246,0.98);

  box-shadow:
    0 0 0 1px rgba(255,71,87,0.12),
    0 0 22px rgba(255,71,87,0.18),
    0 12px 28px rgba(0,0,0,0.30),
    inset 0 1px 0 rgba(255,255,255,0.18),
    inset 0 -1px 0 rgba(0,0,0,0.18);

  text-shadow: 0 1px 0 rgba(0,0,0,0.28);
}

.running-actions-grid .running-action-btn--danger:hover {
  border-color: rgba(255,118,129,0.64);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.20),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(255,86,101,0.96),
      rgba(194,40,57,0.98)
    );

  box-shadow:
    0 0 0 1px rgba(255,71,87,0.16),
    0 0 26px rgba(255,71,87,0.22),
    0 14px 30px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.20),
    inset 0 -1px 0 rgba(0,0,0,0.20);
}

/* Danger muted: Eigen goal */
.running-actions-grid .running-action-btn--danger-muted {
  border-color: rgba(255,71,87,0.36);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.11),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(128,31,48,0.90),
      rgba(87,22,35,0.96)
    );

  color: rgba(255,232,235,0.96);

  box-shadow:
    0 0 0 1px rgba(255,71,87,0.08),
    0 0 18px rgba(255,71,87,0.10),
    0 12px 28px rgba(0,0,0,0.28),
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 -1px 0 rgba(0,0,0,0.16);

  text-shadow: 0 1px 0 rgba(0,0,0,0.26);
}

.running-actions-grid .running-action-btn--danger-muted:hover {
  border-color: rgba(255,91,106,0.48);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.14),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(145,36,54,0.94),
      rgba(101,25,39,0.98)
    );
}

/* Utility: Undo */
.running-actions-grid .running-action-btn--utility {
  border-color: rgba(148,163,184,0.28);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.10),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(55,72,96,0.94),
      rgba(35,49,70,0.96)
    );

  color: rgba(235,242,250,0.92);

  box-shadow:
    0 10px 24px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.10),
    inset 0 -1px 0 rgba(0,0,0,0.14);

  text-shadow: 0 1px 0 rgba(0,0,0,0.24);
}

.running-actions-grid .running-action-btn--utility:hover {
  border-color: rgba(203,213,225,0.38);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.12),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(65,84,111,0.98),
      rgba(42,58,82,0.98)
    );
}

/* Primary: Stop periode, same visual family as BREAK Start periode */
.running-actions-grid .running-action-btn--primary {
  border-color: rgba(45,226,230,0.72);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.30),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #32eef2 0%,
      #20cdd4 46%,
      #1498a6 100%
    );

  color: #052033;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.20),
    0 0 24px rgba(45,226,230,0.30),
    0 14px 30px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.34),
    inset 0 -1px 0 rgba(0,0,0,0.18);

  text-shadow:
    0 1px 0 rgba(255,255,255,0.22),
    0 0 10px rgba(255,255,255,0.10);
}

.running-actions-grid .running-action-btn--primary:hover {
  border-color: rgba(90,247,255,0.88);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.36),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #5af7ff 0%,
      #28dbe1 48%,
      #16a9b8 100%
    );

  color: #031827;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.26),
    0 0 30px rgba(45,226,230,0.38),
    0 16px 34px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.38),
    inset 0 -1px 0 rgba(0,0,0,0.20);
}

/* =========================================================
   RUNNING — semantic action buttons
   ========================================================= */

.running-actions-grid .running-action-btn {
  appearance: none;
  -webkit-appearance: none;

  min-height: 50px;
  padding: 0 12px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);

  font-family: var(--ph-font);
  font-size: 14px;
  font-weight: 850;
  letter-spacing: .12px;
  line-height: 1;

  cursor: pointer;
  user-select: none;

  box-shadow:
    0 12px 28px rgba(0,0,0,0.30),
    inset 0 1px 0 rgba(255,255,255,0.12);

  transition:
    transform 80ms ease,
    border-color 140ms ease,
    background 140ms ease,
    box-shadow 140ms ease,
    filter 140ms ease,
    opacity 140ms ease;
}

.running-actions-grid .running-action-btn:hover {
  filter: none;
}

.running-actions-grid .running-action-btn:active {
  transform: translateY(1px);
}

.running-actions-grid .running-action-btn:disabled,
.running-actions-grid .running-action-btn[disabled] {
  opacity: .42;
  filter: none;
  cursor: not-allowed;
  transform: none;
  box-shadow:
    0 8px 18px rgba(0,0,0,0.16),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

.running-action-btn__icon {
  width: 16px;
  height: 16px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 16px;
  line-height: 1;
}

.running-action-btn__icon svg {
  width: 100%;
  height: 100%;
  display: block;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.running-action-btn__label {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  white-space: nowrap;
  line-height: 1;
}

/* ---------------------------------------------------------
   Goal tegen — stronger, in-your-face danger
   --------------------------------------------------------- */

.running-actions-grid .running-action-btn--danger {
  border-color: rgba(255,72,72,0.70);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.16),
      rgba(255,255,255,0.00) 40%
    ),
    linear-gradient(
      180deg,
      #ff5757 0%,
      #ff2b2b 42%,
      #d70f1d 100%
    );

  color: #fff7f8;

  box-shadow:
    0 0 0 1px rgba(255,72,72,0.18),
    0 0 26px rgba(255,42,42,0.28),
    0 14px 30px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.18),
    inset 0 -1px 0 rgba(90,0,8,0.26);

  text-shadow:
    0 1px 0 rgba(70,0,8,0.30),
    0 0 10px rgba(255,255,255,0.06);
}

.running-actions-grid .running-action-btn--danger:hover {
  border-color: rgba(255,122,122,0.82);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.20),
      rgba(255,255,255,0.00) 40%
    ),
    linear-gradient(
      180deg,
      #ff6b6b 0%,
      #ff3333 42%,
      #e01423 100%
    );

  box-shadow:
    0 0 0 1px rgba(255,72,72,0.24),
    0 0 30px rgba(255,42,42,0.34),
    0 16px 34px rgba(0,0,0,0.36),
    inset 0 1px 0 rgba(255,255,255,0.20),
    inset 0 -1px 0 rgba(90,0,8,0.28);
}

/* ---------------------------------------------------------
   Eigen goal — also danger, but slightly darker / more muted
   --------------------------------------------------------- */

.running-actions-grid .running-action-btn--danger-muted {
  border-color: rgba(210,56,74,0.58);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.12),
      rgba(255,255,255,0.00) 40%
    ),
    linear-gradient(
      180deg,
      #9d1f34 0%,
      #871528 42%,
      #64101f 100%
    );

  color: #fff3f5;

  box-shadow:
    0 0 0 1px rgba(210,56,74,0.14),
    0 0 22px rgba(210,56,74,0.20),
    0 14px 30px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.14),
    inset 0 -1px 0 rgba(45,0,10,0.24);

  text-shadow:
    0 1px 0 rgba(45,0,10,0.30),
    0 0 8px rgba(255,255,255,0.04);
}

.running-actions-grid .running-action-btn--danger-muted:hover {
  border-color: rgba(226,84,102,0.70);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.16),
      rgba(255,255,255,0.00) 40%
    ),
    linear-gradient(
      180deg,
      #b1253d 0%,
      #97192d 42%,
      #711223 100%
    );

  box-shadow:
    0 0 0 1px rgba(210,56,74,0.18),
    0 0 26px rgba(210,56,74,0.24),
    0 16px 34px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -1px 0 rgba(45,0,10,0.26);
}

/* ---------------------------------------------------------
   Undo — muted utility / maintenance
   --------------------------------------------------------- */

.running-actions-grid .running-action-btn--utility {
  border-color: rgba(148,163,184,0.30);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.10),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(62,82,110,0.98),
      rgba(42,58,82,0.98)
    );

  color: rgba(235,242,250,0.94);

  box-shadow:
    0 10px 24px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.10),
    inset 0 -1px 0 rgba(0,0,0,0.14);

  text-shadow: 0 1px 0 rgba(0,0,0,0.24);
}

.running-actions-grid .running-action-btn--utility:hover {
  border-color: rgba(203,213,225,0.40);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.12),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(72,93,123,1),
      rgba(48,66,92,1)
    );
}

/* ---------------------------------------------------------
   Stop periode — same solid family as BREAK start CTA
   --------------------------------------------------------- */

.running-actions-grid .running-action-btn--primary {
  border-color: rgba(45,226,230,0.72);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.30),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #32eef2 0%,
      #20cdd4 46%,
      #1498a6 100%
    );

  color: #052033;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.20),
    0 0 24px rgba(45,226,230,0.30),
    0 14px 30px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.34),
    inset 0 -1px 0 rgba(0,0,0,0.18);

  text-shadow:
    0 1px 0 rgba(255,255,255,0.22),
    0 0 10px rgba(255,255,255,0.10);
}

.running-actions-grid .running-action-btn--primary:hover {
  border-color: rgba(90,247,255,0.88);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.36),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #5af7ff 0%,
      #28dbe1 48%,
      #16a9b8 100%
    );

  color: #031827;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.26),
    0 0 30px rgba(45,226,230,0.38),
    0 16px 34px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.38),
    inset 0 -1px 0 rgba(0,0,0,0.20);
}

/* RUNNING — optical vertical alignment for action button content */
.running-actions-grid .running-action-btn__icon,
.running-actions-grid .running-action-btn__label {
  transform: translateY(2px);
}

/* =========================================================
   PRE_MATCH — Design System treatment
   ========================================================= */

#players .ph-prematch {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);

  width: 100%;
  max-width: 100%;
  box-sizing: border-box;

  color: var(--ph-text);
}

/* Let the carousel panels breathe like the DS card stacks */
#players .ph-prematch .ph-pm-car {
  gap: var(--ph-card-stack-gap) !important;
}

#players .ph-prematch .ph-pm-car-panel > div {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);
}

/* PRE_MATCH cards: Aanwezigheid / Gastspelers / Opstelling / Starters */
#players .ph-prematch .ph-row {
  width: 100%;
  box-sizing: border-box;
  margin: 0 !important;

  padding: 16px 16px 18px;
  border-radius: var(--ph-radius);

  background: var(--ph-surface-card);
  border: 1px solid var(--ph-border-card);
  box-shadow: var(--ph-shadow-card);

  color: var(--ph-text);
}

#players .ph-prematch .ph-row + .ph-row {
  margin-top: 0 !important;
}

#players .ph-prematch .ph-row-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  margin: 0;
  padding: 0;
}

#players .ph-prematch .ph-row-title {
  min-width: 0;

  font-size: 16px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  letter-spacing: -0.01em;

  color: var(--ph-text-strong);

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#players .ph-prematch .ph-subtle {
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;

  color: var(--ph-card-body-text-muted);
  opacity: 1;
}

#players .ph-prematch .ph-row-bottom {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.08);

  box-shadow: none !important;
}

/* Labels/fields inside PRE_MATCH cards */
#players .ph-prematch .ph-label {
  margin-bottom: 9px;

  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;
  letter-spacing: .2px;

  color: var(--ph-card-body-text);
}

#players .ph-prematch .ph-field {
  min-width: 0;
}

/* =========================================================
   PRE_MATCH — starters card aligned with BREAK
   ========================================================= */

#players .ph-prematch .ph-pm-starters-card {
  overflow: visible;
}

#players .ph-prematch .ph-pm-starters-card > .ph-row-top {
  min-height: 30px;
}

#players .ph-prematch .ph-pm-starters-card .ph-row-bottom {
  margin-top: 16px;
}

#players .ph-prematch .ph-pr-wrap {
  --ph-pr-row-h: 34px;
  --ph-pr-chip-h: 28px;

  display: block;
  width: 100%;
}

#players .ph-prematch .ph-pr-wrap > .ph-row-top {
  margin: 14px 0 6px;
  min-height: 0;
}

#players .ph-prematch .ph-pr-wrap > .ph-row-top .ph-row-title {
  font-size: 13px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.15;
  letter-spacing: .35px;
  text-transform: uppercase;

  color: var(--ph-card-body-text);
}

/* Player rows */
#players .ph-prematch .ph-pr-line {
  display: block !important;

  padding: 10px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .ph-prematch .ph-pr-line:first-of-type {
  border-top: 0;
}

#players .ph-prematch .ph-pr-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 14px;
  align-items: center;

  width: 100%;
  min-height: var(--ph-pr-row-h);
}

#players .ph-prematch .ph-pr-linecheck {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  min-width: 0;
  min-height: var(--ph-pr-row-h);

  color: var(--ph-card-body-text);
  font-weight: var(--ph-weight-semibold);
  line-height: 1;
  white-space: nowrap;
}

#players .ph-prematch .ph-pr-main {
  min-width: 0;
}

#players .ph-prematch .ph-pr-title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 8px;

  min-width: 0;

  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.1;

  color: var(--ph-card-body-text);
}

#players .ph-prematch .ph-pr-title > span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#players .ph-prematch .ph-pr-side {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  min-width: max-content;
  min-height: var(--ph-pr-row-h);
}

/* PRE_MATCH checkboxes — keep native treatment aligned with BREAK */
#players .ph-prematch .ph-pr-linecheck input {
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--ph-accent);
}

#players .ph-prematch .ph-pr-linecheck input:disabled {
  opacity: .42;
  cursor: not-allowed;
}

/* Position chips aligned with BREAK */
#players .ph-prematch .ph-pr-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: nowrap;

  min-height: var(--ph-pr-row-h);
  height: auto;

  margin: 0;
  padding: 0;
  transform: none;
}

#players .ph-prematch .ph-pr-chip {
  appearance: none;
  -webkit-appearance: none;

  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 38px;
  min-height: var(--ph-pr-chip-h);
  height: var(--ph-pr-chip-h);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0 10px;
  box-sizing: border-box;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.055);

  color: rgba(255,248,240,0.88);

  font: inherit;
  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;

  box-shadow: none;
  cursor: pointer;
  user-select: none;
  opacity: .9;

  transition:
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

#players .ph-prematch .ph-pr-chip:hover {
  background: rgba(255,255,255,0.085);
  border-color: rgba(255,255,255,0.24);
  opacity: 1;
}

#players .ph-prematch .ph-pr-chip:active {
  transform: translateY(1px);
}

#players .ph-prematch .ph-pr-chip.is-on,
#players .ph-prematch .ph-pr-chip[aria-pressed="true"] {
  opacity: 1;

  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 18px var(--ph-chip-active-glow);

  text-shadow: 0 0 12px rgba(45,226,230,0.32);
}

/* Bench chooser */
#players .ph-prematch .ph-pr-sidewrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  min-width: 0;
  min-height: var(--ph-pr-row-h);
}

#players .ph-prematch .ph-pr-choose {
  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: flex-end;

  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0;

  border: 0;
  background: transparent;

  color: var(--ph-accent);

  font: inherit;
  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .32px;
  line-height: 1;
  text-transform: uppercase;

  cursor: pointer;
  white-space: nowrap;
}

#players .ph-prematch .ph-pr-sidewrap.is-chooser-mode.is-closed .ph-pr-chips {
  display: none !important;
}

#players .ph-prematch .ph-pr-sidewrap.is-chooser-mode.is-open .ph-pr-choose {
  display: none !important;
}

#players .ph-prematch .ph-pr-sidewrap.is-chooser-mode.is-open .ph-pr-chips {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin-left: auto !important;
}

/* Badges */
#players .ph-prematch .ph-pres-reason-badge,
#players .ph-prematch .ph-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 18px;
  padding: 1px 6px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.08);

  color: rgba(255,255,255,0.92);

  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1.1;
  text-transform: uppercase;

  white-space: nowrap;
}

#players .ph-prematch .ph-pres-reason-badge.is-moved,
#players .ph-prematch .ph-badge.is-moved {
  color: rgba(255,179,71,.95);
  background: rgba(255,179,71,.12);
  border-color: rgba(255,179,71,.35);
}

/* Actions below starters */
#players .ph-prematch .ph-pm-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;

  margin-top: 16px;
}

#players .ph-prematch .ph-actionchip {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  padding: 6px 0;

  color: var(--ph-card-body-text);
  text-decoration: none;

  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.1;

  opacity: .86;
}

#players .ph-prematch .ph-actionchip:hover {
  opacity: 1;
}

#players .ph-prematch .ph-actionchip[aria-disabled="true"] {
  opacity: .38;
  pointer-events: none;
}

#players .ph-prematch .ph-actionchip-plus {
  color: var(--ph-accent);
  font-weight: var(--ph-weight-heavy);
}

#players .ph-prematch .ph-actionchip-text {
  white-space: nowrap;
}

/* Mobile safety */
@media (max-width: 360px) {
  #players .ph-prematch .ph-row {
    padding: 15px 14px 17px;
  }

  #players .ph-prematch .ph-row-title {
    font-size: 15px;
  }

  #players .ph-prematch .ph-pr-head {
    column-gap: 10px;
  }

  #players .ph-prematch .ph-pr-chips {
    gap: 7px;
  }

  #players .ph-prematch .ph-pr-chip {
    min-width: 34px;
    padding: 0 8px;
  }
}

/* =========================================================
   PRE_MATCH — align chips/dropdown exactly with BREAK
   ========================================================= */

/* Position chips + presence chips share the same DS chip language */
#players .ph-prematch .ph-pr-chip,
#players .ph-prematch .ph-chip {
  appearance: none !important;
  -webkit-appearance: none !important;

  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 38px !important;
  min-height: 28px !important;
  height: 28px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 10px !important;
  box-sizing: border-box !important;

  border-radius: var(--ph-radius-sm) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  background: rgba(255,255,255,0.055) !important;

  color: rgba(255,248,240,0.88) !important;

  font: inherit !important;
  font-size: 11px !important;
  font-weight: var(--ph-weight-semibold) !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;

  box-shadow: none !important;
  cursor: pointer;
  user-select: none;
  opacity: .9;

  transition:
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

#players .ph-prematch .ph-pr-chip:hover,
#players .ph-prematch .ph-chip:hover {
  background: rgba(255,255,255,0.085) !important;
  border-color: rgba(255,255,255,0.24) !important;
  opacity: 1;
}

#players .ph-prematch .ph-pr-chip:active,
#players .ph-prematch .ph-chip:active {
  transform: translateY(1px);
}

#players .ph-prematch .ph-pr-chip.is-on,
#players .ph-prematch .ph-pr-chip[aria-pressed="true"],
#players .ph-prematch .ph-chip.is-on,
#players .ph-prematch .ph-chip[aria-pressed="true"] {
  opacity: 1 !important;

  color: var(--ph-chip-active-text) !important;
  border-color: var(--ph-chip-active-border) !important;

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    ) !important;

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 18px var(--ph-chip-active-glow) !important;

  text-shadow: 0 0 12px rgba(45,226,230,0.32);
}

#players .ph-prematch .ph-chip.is-locked {
  opacity: .52 !important;
  cursor: not-allowed !important;
}

/* Keep presence buttons compact but not cramped */
#players .ph-prematch .ph-row-badges {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: nowrap;
}

/* Same chip row geometry as BREAK */
#players .ph-prematch .ph-pr-chips {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;

  min-height: 34px !important;
  height: auto !important;

  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}

/* =========================================================
   PRE_MATCH — stable native formation select
   ========================================================= */

#players .ph-prematch #pmFormationShape.ph-pm-native-shape-select {
  display: inline-flex !important;

  width: auto !important;
  min-width: 104px;
  min-height: 38px;

  margin: 0 0 22px !important;
  padding: 0 34px 0 12px;

  border-radius: 9px;
  border: 1px solid rgba(120,160,220,0.28);

  background:
    radial-gradient(120% 160% at 50% -30%, rgba(45,226,230,0.10), rgba(45,226,230,0.00) 45%),
    linear-gradient(180deg, rgba(13,31,52,0.98), rgba(7,20,37,0.98));

  color: var(--ph-text-strong);

  font-family: var(--ph-font);
  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  letter-spacing: .15px;
  line-height: 1;

  box-shadow:
    0 8px 18px rgba(0,0,0,0.20),
    inset 0 1px 0 rgba(255,255,255,0.045);

  outline: none;
}

#players .ph-prematch #pmFormationShape.ph-pm-native-shape-select:focus {
  border-color: rgba(45,226,230,0.62);

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.12),
    0 0 18px rgba(45,226,230,0.12),
    inset 0 1px 0 rgba(255,255,255,0.055);
}

/* =========================================================
   PRE_MATCH — carousel cards as Design System consumer
   Stable pass: no custom dropdown / no logic changes
   ========================================================= */

#players .ph-prematch {
  --ph-pm-card-pad-x: 16px;
  --ph-pm-card-pad-y: 16px;

  color: var(--ph-text);
}

/* Carousel shell */
#players .ph-prematch #pmCarousel,
#players .ph-prematch .ph-pm-car {
  width: 100%;
  box-sizing: border-box;
}

/* Carousel header / step navigation card */
#players .ph-prematch #pmCarHeader {
  position: relative;
  box-sizing: border-box;

  padding: 12px 12px 14px;
  border-radius: var(--ph-radius);

  background:
    radial-gradient(
      120% 140% at 50% -45%,
      rgba(45,226,230,0.075),
      rgba(45,226,230,0.00) 46%
    ),
    linear-gradient(
      180deg,
      rgba(10,24,44,0.96),
      rgba(7,18,34,0.98)
    );

  border: 1px solid rgba(120,160,220,0.16);

  box-shadow:
    0 10px 24px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.045);
}

/* Step tabs */
#players .ph-prematch .ph-pm-car-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

#players .ph-prematch .ph-pm-step {
  appearance: none;
  -webkit-appearance: none;

  min-width: 0;
  min-height: 38px;
  padding: 0 10px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  border-radius: 9px;
  border: 1px solid rgba(255,255,255,0.14);

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.055),
      rgba(255,255,255,0.035)
    );

  color: var(--ph-card-body-text);

  font: inherit;
  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  line-height: 1;

  cursor: pointer;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.035);

  transition:
    border-color 140ms ease,
    background 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

#players .ph-prematch .ph-pm-step:active {
  transform: translateY(1px);
}

#players .ph-prematch .ph-pm-step.is-current,
#players .ph-prematch .ph-pm-step[aria-current="step"],
#players .ph-prematch .ph-pm-step[data-active="1"] {
  border-color: rgba(45,226,230,0.66);

  background:
    radial-gradient(
      120% 150% at 50% -60%,
      rgba(45,226,230,0.16),
      rgba(45,226,230,0.00) 52%
    ),
    linear-gradient(
      180deg,
      rgba(45,226,230,0.14),
      rgba(45,226,230,0.07)
    );

  color: var(--ph-chip-active-text);

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.075),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 18px rgba(45,226,230,0.18);
}

#players .ph-prematch .ph-pm-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;

  border-radius: 999px;
  border: 1px solid rgba(203,213,225,0.36);
  background: rgba(255,255,255,0.035);
}

#players .ph-prematch .ph-pm-step.is-current .ph-pm-dot,
#players .ph-prematch .ph-pm-step[aria-current="step"] .ph-pm-dot,
#players .ph-prematch .ph-pm-step[data-active="1"] .ph-pm-dot {
  border-color: rgba(45,226,230,0.88);
  background: var(--ph-accent);
  box-shadow: 0 0 14px rgba(45,226,230,0.42);
}

/* Prev / status / next row */
#players .ph-prematch .ph-pm-car-nav {
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid rgba(255,255,255,0.08);

  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
}

#players .ph-prematch #pmPrev,
#players .ph-prematch #pmNext {
  appearance: none;
  -webkit-appearance: none;

  padding: 0;
  min-height: 24px;

  border: 0;
  background: transparent;

  color: var(--ph-card-body-text-muted);

  font: inherit;
  font-size: 12px;
  font-weight: var(--ph-weight-bold);
  line-height: 1;

  cursor: pointer;
  opacity: .88;
}

#players .ph-prematch #pmPrev {
  justify-self: start;
}

#players .ph-prematch #pmNext {
  justify-self: end;
}

#players .ph-prematch #pmPrev:not([aria-disabled="true"]),
#players .ph-prematch #pmNext:not([aria-disabled="true"]) {
  color: var(--ph-accent);
}

#players .ph-prematch #pmPrev[aria-disabled="true"],
#players .ph-prematch #pmNext[aria-disabled="true"] {
  opacity: .38;
  cursor: default;
}

#players .ph-prematch .ph-pm-car-status,
#players .ph-prematch #pmCarStatus {
  justify-self: center;

  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;
  color: var(--ph-card-body-text-muted);

  white-space: nowrap;
}

/* Carousel body spacing */
#players .ph-prematch .ph-pm-car-viewport {
  margin-top: var(--ph-card-stack-gap);
}

#players .ph-prematch .ph-pm-car-panel > div {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);
}

/* Cards inside carousel */
#players .ph-prematch .ph-row {
  width: 100%;
  box-sizing: border-box;

  margin: 0 !important;
  padding: var(--ph-pm-card-pad-y) var(--ph-pm-card-pad-x) 18px !important;

  border-radius: var(--ph-radius);
  border: 1px solid var(--ph-border-card);

  background:
    radial-gradient(
      120% 145% at 50% -55%,
      rgba(45,226,230,0.04),
      rgba(45,226,230,0.00) 48%
    ),
    var(--ph-surface-card);

  box-shadow: var(--ph-shadow-card);

  color: var(--ph-text);
}

#players .ph-prematch .ph-row + .ph-row {
  margin-top: 0 !important;
}

/* Card headers */
#players .ph-prematch .ph-row > .ph-row-top:first-child,
#players .ph-prematch .ph-row-add > .ph-row-top:first-child {
  min-height: 30px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  margin: 0;
}

#players .ph-prematch .ph-row-title {
  min-width: 0;

  font-size: 16px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  letter-spacing: -0.01em;

  color: var(--ph-text-strong);

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#players .ph-prematch .ph-subtle {
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.2;

  color: var(--ph-card-body-text-muted);
  opacity: 1;
}

/* Card body divider */
#players .ph-prematch .ph-row > .ph-row-bottom {
  margin-top: 16px !important;
  padding-top: 16px !important;

  border-top: 1px solid rgba(255,255,255,0.08);
  box-shadow: none !important;
}

/* Presence rows */
#players .ph-prematch .ph-row-bottom > .ph-pr-line {
  padding: 14px 0 0 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .ph-prematch .ph-row-bottom > .ph-pr-line:first-child {
  border-top: 0;
  padding-top: 0;
}

#players .ph-prematch .ph-row-bottom > .ph-pr-line:last-child {
  padding-bottom: 0 !important;
}

/* Presence row top alignment */
#players .ph-prematch .ph-pr-line .ph-row-top {
  min-height: 34px;

  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;

  width: 100%;
  margin: 0;
}

#players .ph-prematch .ph-pr-line .ph-row-title {
  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;
  letter-spacing: 0;

  color: var(--ph-card-body-text);

  text-transform: none;
}

/* Chip rows */
#players .ph-prematch .ph-row-badges,
#players .ph-prematch .ph-pr-chips {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
}

/* Presence chips + position chips */
#players .ph-prematch .ph-chip,
#players .ph-prematch .ph-pr-chip {
  appearance: none !important;
  -webkit-appearance: none !important;

  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 38px !important;
  min-height: 28px !important;
  height: 28px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 10px !important;
  box-sizing: border-box !important;

  border-radius: var(--ph-radius-sm) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  background: rgba(255,255,255,0.055) !important;

  color: rgba(255,248,240,0.88) !important;

  font: inherit !important;
  font-size: 11px !important;
  font-weight: var(--ph-weight-semibold) !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;

  box-shadow: none !important;
  cursor: pointer;
  user-select: none;
  opacity: .9;

  transition:
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

#players .ph-prematch .ph-chip:hover,
#players .ph-prematch .ph-pr-chip:hover {
  background: rgba(255,255,255,0.085) !important;
  border-color: rgba(255,255,255,0.24) !important;
  opacity: 1;
}

#players .ph-prematch .ph-chip.is-on,
#players .ph-prematch .ph-chip[aria-pressed="true"],
#players .ph-prematch .ph-pr-chip.is-on,
#players .ph-prematch .ph-pr-chip[aria-pressed="true"] {
  opacity: 1 !important;

  color: var(--ph-chip-active-text) !important;
  border-color: var(--ph-chip-active-border) !important;

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    ) !important;

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 18px var(--ph-chip-active-glow) !important;

  text-shadow: 0 0 12px rgba(45,226,230,0.32);
}

#players .ph-prematch .ph-chip.is-locked {
  opacity: .52 !important;
  cursor: not-allowed !important;
}

/* Native formation select — stable but DS-styled */
#players .ph-prematch #pmFormationShape.ph-pm-native-shape-select {
  display: inline-flex !important;

  width: auto !important;
  min-width: 104px;
  min-height: 38px;

  margin: 0 0 22px !important;
  padding: 0 34px 0 12px;

  border-radius: 9px;
  border: 1px solid rgba(120,160,220,0.28);

  background:
    radial-gradient(120% 160% at 50% -30%, rgba(45,226,230,0.10), rgba(45,226,230,0.00) 45%),
    linear-gradient(180deg, rgba(13,31,52,0.98), rgba(7,20,37,0.98));

  color: var(--ph-text-strong);

  font-family: var(--ph-font);
  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  letter-spacing: .15px;
  line-height: 1;

  box-shadow:
    0 8px 18px rgba(0,0,0,0.20),
    inset 0 1px 0 rgba(255,255,255,0.045);

  outline: none;
}

#players .ph-prematch #pmFormationShape.ph-pm-native-shape-select:focus {
  border-color: rgba(45,226,230,0.62);

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.12),
    0 0 18px rgba(45,226,230,0.12),
    inset 0 1px 0 rgba(255,255,255,0.055);
}

/* Confirm formation button */
#players .ph-prematch .ph-pm-formation-btn {
  width: 100%;
  min-height: 50px;

  border-radius: 12px;
  border: 1px solid rgba(45,226,230,0.42);

  background:
    linear-gradient(
      180deg,
      rgba(45,226,230,0.15),
      rgba(45,226,230,0.07)
    );

  color: var(--ph-card-body-text);

  font: inherit;
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 1;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 0 18px rgba(45,226,230,0.08);
}

#players .ph-prematch .ph-pm-formation-btn:disabled {
  opacity: .46;
}

/* PRE_MATCH toolbar + guest add card */
#players .ph-prematch .ph-pm-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
}

#players .ph-prematch .ph-pm-guest-mount {
  margin: -10px 0 0;
}

#players .ph-prematch .ph-pm-guest-mount:empty {
  display: none;
}

#players .ph-prematch .ph-pm-guest-mount:empty ~ #pmStartCtaMount:empty + #pmCarousel {
  margin-top: -10px;
}

#players .ph-prematch .ph-pm-car-panel {
  padding-top: 0 !important;
}

#players .ph-prematch .ph-pm-car {
  position: relative;
}

#players .ph-prematch .ph-pm-swipepad {
  position: absolute !important;
  left: 0;
  right: 0;
  bottom: 0;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}


#players .ph-prematch .ph-pm-guests-card {
  margin: 0;
  border-color: rgba(45,226,230,0.18);
  background:
    linear-gradient(180deg, rgba(45,226,230,0.055), rgba(255,255,255,0.018)),
    rgba(11,25,44,0.70);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045),
    0 14px 34px rgba(0,0,0,0.18);
}

#players .ph-prematch .ph-pm-guests-card > .ph-row-top {
  padding-bottom: 0 !important;
}

#players .ph-prematch .ph-pm-guests-card > .ph-row-bottom {
  padding-top: 12px;
}

#players .ph-prematch .ph-pm-guest-draft {
  display: grid;
  gap: 10px;
}

#players .ph-prematch .ph-pm-guest-draft__copy {
  display: grid;
  gap: 0;
  margin-bottom: 8px;
}

#players .ph-prematch .ph-pm-guest-draft__fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 104px;
  gap: 10px;
  align-items: end;
  margin-bottom: 12px;
}

#players .ph-prematch .ph-pm-guest-draft__fields .phds-field {
  min-width: 0;
}

#players .ph-prematch .ph-pm-guest-draft__fields .phds-input {
  width: 100%;
  min-width: 0;
  padding-left: 12px;
  padding-right: 12px;
}

#players .ph-prematch .ph-pm-guest-year-field {
  width: 104px;
}

#players .ph-prematch .ph-pm-guest-error {
  grid-column: 1 / -1;
  color: rgba(255,71,87,.95);
}

#players .ph-prematch .ph-pm-guest-draft__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;

  margin-top: 2px;
  padding-top: 14px;
  padding-bottom: 6px;

  border-top: 1px solid rgba(255,255,255,0.10);
}

#players .ph-prematch .ph-pm-guest-button {
  min-height: 30px;
  padding-inline: 12px;
  border-radius: 9px;
}

#players .ph-prematch .ph-pm-guest-button--secondary,
#players .ph-prematch .ph-pm-guest-button--primary {
  border-color: rgba(255,255,255,0.12);
}

#players .ph-prematch .ph-pm-guest-button--secondary {
  opacity: .82;
}

#players .ph-prematch .ph-pm-guest-button--secondary:hover {
  opacity: 1;
}

@media (max-width: 390px) {
  #players .ph-prematch .ph-pm-guest-draft__fields {
    grid-template-columns: minmax(0, 1fr) 96px;
  }

  #players .ph-prematch .ph-pm-guest-year-field {
    width: 96px;
  }
}

/* Action chips */
#players .ph-prematch .ph-actionchip {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  padding: 6px 0;

  color: var(--ph-card-body-text);
  text-decoration: none;

  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.1;

  opacity: .86;
}

#players .ph-prematch .ph-actionchip-plus {
  color: var(--ph-accent);
  font-weight: var(--ph-weight-heavy);
}

#players .ph-prematch .ph-pm-toolbar > .ph-actionchip {
  margin-left: auto;
  margin-right: 12px;
  gap: 2px;
  font-weight: 460 !important;
  text-transform: uppercase;
  font-size: 10px;
  opacity: 0.75;
  padding-right: 0 !important;
}

#players .ph-prematch .ph-pm-toolbar > .ph-actionchip .ph-actionchip-text::after {
  height: 1px;
}

/* Mobile safety */
@media (max-width: 360px) {
  #players .ph-prematch {
    --ph-pm-card-pad-x: 14px;
    --ph-pm-card-pad-y: 15px;
  }

  #players .ph-prematch .ph-pm-step {
    font-size: 12px;
    gap: 6px;
  }

  #players .ph-prematch .ph-chip,
  #players .ph-prematch .ph-pr-chip {
    min-width: 34px !important;
    padding: 0 8px !important;
  }

  #players .ph-prematch .ph-add-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   PRE_MATCH — align card color with the rest of coach admin
   ========================================================= */

#players .ph-prematch .ph-row,
#players .ph-prematch .ph-row-add {
  background: var(--ph-surface-card) !important;
  background-image: none !important;
  border: 1px solid var(--ph-border-card) !important;
  box-shadow: var(--ph-shadow-card) !important;
}

/* Keep the card body clean too */
#players .ph-prematch .ph-row-bottom {
  background: transparent !important;
}

/* Optional: make the carousel header card follow the same family a bit more */
#players .ph-prematch #pmCarHeader {
  background: var(--ph-surface-card) !important;
  background-image: none !important;
  border: 1px solid var(--ph-border-card) !important;
  box-shadow: var(--ph-shadow-card) !important;
}

#players .ph-prematch .ph-presence-counter-pills {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-width: 0;
}

#players .ph-prematch .ph-presence-counter-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  font-size: 12px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

#players .ph-prematch .ph-presence-counter-pill svg {
  width: 14px;
  height: 14px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

#players .ph-prematch .ph-presence-counter-pill strong {
  font: inherit;
  color: currentColor;
}

#players .ph-prematch .ph-presence-counter-pill--yes {
  color: #2DE2E6 !important;
}

#players .ph-prematch .ph-presence-counter-pill--no {
  color: #FF6A2A !important;
}

#players .ph-prematch .ph-presence-counter-pill--unknown {
  color: rgba(180, 194, 213, 0.92) !important;
}

#players .ph-prematch .ph-pm-car-micro {
  transform: translateY(2px);
}

/* PRE_MATCH — normalize card stack rhythm */
#players .ph-prematch #pmStartCtaMount:empty {
  display: none !important;
}

#players .ph-prematch .ph-context-back {
  margin: 0 0 0 12px !important;
}

#players .ph-prematch .ph-pm-car-viewport {
  margin-top: 0 !important;
}

/* PRE_MATCH — normalize rhythm around Coach Admin link */
#players .ph-prematch .ph-context-back {
  margin: var(--ph-card-stack-gap) 0 0 12px !important;
}

/* PRE_MATCH — normalize card stack rhythm */
#players .ph-prematch #pmStartCtaMount:empty {
  display: none !important;
}
#players .ph-prematch .ph-pm-car-viewport {
  margin-top: 0 !important;
}

/* PRE_MATCH — normalize full vertical rhythm */
body.ph-prematch-mode #players {
  margin-top: 0 !important;
}

#players .ph-prematch {
  margin-top: 0 !important;
  gap: var(--ph-card-stack-gap) !important;
}

#players .ph-prematch #pmStartCtaMount:empty {
  display: none !important;
}

/* PRE_MATCH — exact vertical rhythm around Coach Admin + carousel */
body.ph-prematch-mode #players.phds-card-list {
  margin-top: var(--ph-card-stack-gap) !important;
  gap: 0 !important;
}

#players .ph-prematch {
  gap: var(--ph-card-stack-gap) !important;
}

#players .ph-prematch #pmStartCtaMount:empty {
  display: none !important;
}

#players .ph-prematch .ph-context-back {
  margin: 0 0 0 12px !important;
}

#players .ph-prematch .ph-pm-car {
  gap: var(--ph-card-stack-gap) !important;
}

#players .ph-prematch .ph-pm-car-viewport {
  margin-top: 0 !important;
}

#players .ph-prematch .ph-pm-car {
  gap: var(--ph-card-stack-gap) !important;
}

#players .ph-prematch .ph-pm-car-viewport {
  margin-top: 0 !important;
}

/* PRE_MATCH — Start CTA participates in normal DS stack rhythm */
#players .ph-prematch .ph-pm-startcta {
  margin: 0 10px !important;
}

/* PRE_MATCH — Start CTA uses DS stack rhythm */
#players .ph-prematch .ph-pm-startcta {
  margin: 0 !important;
}

/* PRE_MATCH — match BREAK start-period button */
#players .ph-prematch #pmStartBtn {
  width: 100% !important;
  min-height: 50px !important;
  margin: 0 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;

  border-radius: 14px !important;
  border: 1px solid rgba(45,226,230,0.72) !important;

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.30),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #32eef2 0%,
      #20cdd4 46%,
      #1498a6 100%
    ) !important;

  color: #061225 !important;

  font-family: var(--ph-font) !important;
  font-size: 16px !important;
  font-weight: 850 !important;
  letter-spacing: .2px !important;
  line-height: 1 !important;
  text-shadow: 0 1px 0 rgba(255,255,255,0.22) !important;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.20),
    0 0 24px rgba(45,226,230,0.30),
    0 14px 30px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.34),
    inset 0 -1px 0 rgba(0,0,0,0.18) !important;

  cursor: pointer !important;
}

#players .ph-prematch #pmStartBtn:hover {
  filter: none !important;

  border-color: rgba(90,247,255,0.88) !important;

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.36),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #5af7ff 0%,
      #28dbe1 48%,
      #16a9b8 100%
    ) !important;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.26),
    0 0 30px rgba(45,226,230,0.38),
    0 16px 34px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.38),
    inset 0 -1px 0 rgba(0,0,0,0.20) !important;
}

#players .ph-prematch #pmStartBtn:active {
  transform: translateY(1px) !important;
}

#players .ph-prematch #pmStartBtn:disabled {
  opacity: .42 !important;
  filter: none !important;
  cursor: not-allowed !important;
  transform: none !important;

  background:
    linear-gradient(
      180deg,
      rgba(45,226,230,0.18),
      rgba(45,226,230,0.10)
    ) !important;

  color: rgba(255,255,255,0.78) !important;

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.06),
    0 8px 18px rgba(0,0,0,0.18) !important;
}

#players .ph-prematch #pmStartBtn .ph-cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

#players .ph-prematch #pmStartBtn {
  gap: 12px !important;
}

/* Prev / status / next row */
#players .ph-prematch .ph-pm-car-nav {
  margin-top: 6px;
  padding-top: 0;
  border-top: 0;

  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
}

.phds-teamhub-presence-counters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;

  margin-top: 6px;

  font-size: 12px;
  line-height: 1.25;
}

.phds-teamhub-presence-counters .phds-teamhub-staff-presence__item {
  font-size: 12px;
  font-weight: 650;
  line-height: 1.2;
}

.phds-teamhub-presence-counters .phds-teamhub-staff-presence__item svg {
  width: 14px;
  height: 14px;
}

.phds-teamhub-staff-presence--actions-only {
  justify-content: flex-end;
}

.phds-teamhub-staff-presence--actions-only .phds-teamhub-staff-presence__actions {
  margin-left: auto;
}

.phds-teamhub-staff-presence--actions-only .phds-teamhub-staff-presence__done {
  margin-left: auto;
}

.ph-menu-divider {
  height: 1px;
  margin: 9px 10px 9px;

  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.00),
    rgba(45,226,230,0.16),
    rgba(255,255,255,0.18),
    rgba(45,226,230,0.16),
    rgba(255,255,255,0.00)
  );

  box-shadow: 0 0 10px rgba(45,226,230,0.08);
}

.phds-teamhub-hubmatch-card {
  position: relative;
  overflow: hidden;
  border-color: rgba(45, 226, 230, 0.28);
  background:
    radial-gradient(circle at 12% 0%, rgba(45, 226, 230, 0.18), transparent 34%),
    radial-gradient(circle at 100% 12%, rgba(90, 247, 255, 0.10), transparent 30%),
    linear-gradient(180deg, rgba(15, 43, 58, 0.90), rgba(9, 28, 45, 0.82));
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.24),
    0 0 0 1px rgba(255, 255, 255, 0.035) inset,
    0 0 34px rgba(45, 226, 230, 0.08);
}

.phds-teamhub-hubmatch-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 44%);
  opacity: 0.72;
}

.phds-teamhub-hubmatch-card > * {
  position: relative;
  z-index: 1;
}

.phds-teamhub-hubmatch__cta {
  width: 100%;
  justify-content: center;
  min-height: 42px;
  margin-top: 2px;
  border-color: rgba(139, 234, 255, 0.24);
  background:
    linear-gradient(180deg, rgba(45, 226, 230, 0.14), rgba(45, 226, 230, 0.08));
  color: var(--ph-ds-text);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.035) inset,
    0 12px 26px rgba(0, 0, 0, 0.16);
}

.phds-teamhub-hubmatch__cta:hover {
  border-color: rgba(45, 226, 230, 0.48);
  background:
    linear-gradient(180deg, rgba(45, 226, 230, 0.20), rgba(45, 226, 230, 0.11));
}

.phds-teamhub-hubmatch {
  display: grid;
  gap: 13px;
}

.phds-teamhub-hubmatch-card .phds-card__head {
  align-items: center;
}

.phds-teamhub-hubmatch-card .phds-card__head-actions {
  flex-shrink: 0;
}

.phds-teamhub-hubmatch-card .phds-card__head {
  align-items: center;
}

.phds-teamhub-hubmatch-card .phds-card__head-actions {
  flex-shrink: 0;
}

.phds-teamhub-hubmatch__badge {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;

  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;

  color: var(--ph-ds-text-muted);
  font-size: 12px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.phds-teamhub-hubmatch__badge .context-live-dot {
  margin-right: 0;
  font-size: 1.08em;
  line-height: 1;
  color: #FF6A2A;
  text-shadow: 0 0 6px rgba(255, 106, 42, 0.35);
}

/* Scheduled: calm pre-match state */
.phds-teamhub-hubmatch__badge[data-mode="scheduled"] {
  color: var(--ph-ds-text-muted);
}

.phds-teamhub-hubmatch__badge[data-mode="scheduled"] .context-live-dot {
  color: rgba(244, 247, 251, 0.54);
  text-shadow: none;
  opacity: 0.72;
}

/* Warmup: a little warmer, but not live yet */
.phds-teamhub-hubmatch__badge[data-mode="warmup"] {
  color: var(--ph-ds-text-muted);
}

.phds-teamhub-hubmatch__badge[data-mode="warmup"] .context-live-dot {
  color: #FF6A2A;
  opacity: 0.76;
  text-shadow: 0 0 6px rgba(255, 106, 42, 0.24);
}

.phds-teamhub-hubmatch__badge[data-mode="upcoming_live"] .context-live-dot {
  opacity: 0.92;
  animation: phTeamhubLivePulse 1.8s ease-in-out infinite;
}

/* PRE_MATCH: wel dezelfde dot, maar rustiger */
.phds-teamhub-hubmatch__badge[data-mode="upcoming_live"] {
  color: var(--ph-ds-text-muted);
}

.phds-teamhub-hubmatch__badge[data-mode="upcoming_live"] .context-live-dot {
  opacity: 0.62;
}

/* RUNNING: tekst iets sterker, dot doet het live-werk */
.phds-teamhub-hubmatch__badge[data-mode="live"] {
  color: var(--ph-ds-text);
}

/* BREAK: geen pulserende live-dot */
.phds-teamhub-hubmatch__badge[data-mode="break"] {
  color: var(--ph-ds-text-muted);
}

.phds-teamhub-hubmatch__badge[data-mode="break"] .context-live-dot {
  color: rgba(244, 247, 251, 0.58);
  text-shadow: none;
  animation: none;
}

.phds-teamhub-hubmatch__main {
  display: grid;
  gap: 7px;
}

.phds-teamhub-hubmatch__opponent {
  max-width: 27ch;
  color: var(--ph-ds-text);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -0.035em;
}

.phds-teamhub-hubmatch__main .phds-card__text {
  margin: 0;
  color: var(--ph-ds-text-muted);
  font-size: 13px;
}

@keyframes phTeamhubLivePulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.78;
  }

  50% {
    transform: scale(1.28);
    opacity: 1;
  }
}

@media (max-width: 520px) {
  .phds-teamhub-hubmatch-card .phds-card__head {
    align-items: center;
  }

  .phds-teamhub-hubmatch-card .phds-card-action {
    min-height: 32px;
    padding-inline: 11px;
    font-size: 10px;
  }

  .phds-teamhub-hubmatch__opponent {
    font-size: 17px;
  }
}

.phds-teamhub-hubmatch__meta {
  font-weight: var(--ph-weight-regular);
}

/* =========================================================
   TEAM HUB — robust next-match layout
   Replaces the fragile 3-column date/divider/content grid with
   a simpler 2-column grid. The visual divider lives on the date
   column instead of as a stretching grid item.
   ========================================================= */

.phds-teamhub-next-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;

  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.phds-teamhub-next-content {
  display: grid !important;
  grid-template-columns: 64px minmax(0, 1fr) !important;
  grid-template-areas:
    "date main"
    "date practical" !important;

  column-gap: 18px !important;
  row-gap: 18px !important;
  align-items: start !important;

  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.phds-teamhub-next-date {
  grid-area: date !important;
  align-self: stretch !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;

  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;

  padding-top: 2px !important;
  padding-right: 16px !important;

  border-right: 1px solid rgba(255,255,255,0.08) !important;
}

/* The old standalone divider is no longer needed. */
.phds-teamhub-next-divider {
  display: none !important;
}

.phds-teamhub-next-main {
  grid-area: main !important;

  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.phds-teamhub-next-practical {
  grid-area: practical !important;

  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;

  margin-top: 0 !important;
  padding-top: 16px !important;

  border-top: 1px solid rgba(255,255,255,0.08) !important;
}

.phds-teamhub-next-footer {
  width: 100% !important;
  box-sizing: border-box !important;

  position: static !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;

  margin-top: 0 !important;
  padding-top: 16px !important;

  border-top: 1px solid rgba(255,255,255,0.08) !important;
}

.phds-teamhub-next-presence,
.phds-teamhub-next-presence--own-children {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.phds-teamhub-next-footer .phds-teamhub-presence-row,
.phds-teamhub-next-footer .phds-teamhub-presence-footer,
.phds-teamhub-next-footer .phds-teamhub-presence-confirmation {
  position: static !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

@media (max-width: 360px) {
  .phds-teamhub-next-content {
    grid-template-columns: 54px minmax(0, 1fr) !important;
    column-gap: 14px !important;
    row-gap: 16px !important;
  }

  .phds-teamhub-next-date {
    padding-right: 13px !important;
  }

  .phds-teamhub-next-practical__row {
    grid-template-columns: 20px 68px minmax(0, 1fr) !important;
    column-gap: 8px !important;
  }

  .phds-teamhub-next-opponent {
    white-space: normal !important;
  }
}

.phds-page {
  min-height: 100vh;
  margin: 0;
  color: var(--ph-ds-text);
  background:
    radial-gradient(circle at top left, rgba(45, 226, 230, 0.16), transparent 34%),
    linear-gradient(180deg, var(--ph-ds-bg-deep) 0%, var(--ph-ds-bg-ink) 100%);
  font-family: var(--ph-ds-font-family);
}

.phds-page--center {
  padding: 24px;
  display: grid;
  place-items: center;
}

.phds-choice-shell {
  width: min(100%, 440px);
}

.phds-choice-card {
  padding: 22px;
}

.phds-eyebrow {
  margin: 0 0 8px;
  color: var(--ph-ds-accent);
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.phds-choice-title {
  margin: 0;
  color: var(--ph-ds-text);
  font-size: 26px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.08;
  letter-spacing: -0.03em;
}

.phds-choice-body {
  margin: 10px 0 0;
  color: var(--ph-ds-text-muted);
  font-size: 15px;
  line-height: 1.45;
}

.phds-choice-list {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

.phds-choice-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-height: 62px;
  padding: 13px 14px;
  border: 1px solid var(--ph-ds-glass-border);
  border-radius: var(--ph-ds-radius-inner);
  background: rgba(4, 17, 31, 0.44);
  color: var(--ph-ds-text);
  text-decoration: none;
}

.phds-choice-item:active {
  transform: translateY(1px);
}

.phds-choice-item__main {
  min-width: 0;
}

.phds-choice-item__title {
  display: block;
  color: var(--ph-ds-text);
  font-size: 17px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.12;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-choice-item__meta {
  display: block;
  margin-top: 4px;
  color: var(--ph-ds-text-muted);
  font-size: 13px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-choice-item__arrow {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: var(--ph-ds-radius-pill);
  background: rgba(45, 226, 230, 0.13);
  color: var(--ph-ds-accent);
  font-weight: var(--ph-weight-heavy);
}

.phds-notice {
  margin-top: 18px;
  padding: 14px;
  border-radius: var(--ph-ds-radius-inner);
  color: var(--ph-ds-text);
  font-size: 14px;
  line-height: 1.45;
}

.phds-notice--warning {
  border: 1px solid rgba(255, 106, 42, 0.24);
  background: rgba(255, 106, 42, 0.10);
}

#players .phds-teamhub-access-detail {
  display: grid;
  gap: 16px;

  margin-top: 14px;
  padding-top: 14px;

  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .phds-teamhub-access-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

#players .phds-teamhub-access-detail-eyebrow {
  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-heavy);
  line-height: 1.15;
  letter-spacing: .45px;
  text-transform: uppercase;
}

#players .phds-teamhub-access-detail-heading {
  margin-top: 3px;

  color: var(--ph-card-body-text);
  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-bold);
  line-height: 1.2;
}

#players .phds-teamhub-access-detail-section {
  display: grid;
  gap: 8px;
}

#players .phds-teamhub-access-detail-section-title {
  color: var(--ph-accent);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-heavy);
  line-height: 1.15;
  letter-spacing: .35px;
  text-transform: uppercase;
}

#players .phds-teamhub-access-detail-list {
  display: grid;
  gap: 0;
}

#players .phds-teamhub-access-detail-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;

  min-height: 42px;
  padding: 10px 0;

  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .phds-teamhub-access-detail-row:first-child {
  border-top: 0;
}

#players .phds-teamhub-access-detail-copy {
  min-width: 0;
}

#players .phds-teamhub-access-detail-title {
  color: var(--ph-card-body-text);
  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#players .phds-teamhub-access-detail-meta {
  margin-top: 3px;

  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-medium);
  line-height: 1.25;

  overflow-wrap: anywhere;
}

#players .phds-teamhub-access-detail-empty {
  padding: 7px 0;

  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.35;
}

#players .phds-teamhub-access-revoke {
  align-self: center;
}

@media (max-width: 420px) {
  #players .phds-teamhub-access-actions {
    gap: 7px;
  }

  #players .phds-teamhub-access-action {
    min-width: 74px;
    padding-inline: 10px;
  }

  #players .phds-teamhub-access-detail-row {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 7px;
    align-items: start;
  }

  #players .phds-teamhub-access-revoke {
    justify-self: start;
  }
}

.phds-teamhub-hubmatch-card .phds-card__title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Tournament Mode v1 — Coach Admin tournament card */
.ph-tournament-stack {
  display: grid;
  gap: 22px;
  margin-bottom: 22px;
}

.ph-tournament-card {
  overflow: visible;
}

.ph-tournament-card__head {
  align-items: flex-start;
  gap: 14px;
}

.ph-tournament-card__titlewrap {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.ph-tournament-card__eyebrow {
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .72px;
  text-transform: uppercase;
  color: var(--ph-ds-accent);
}

.ph-tournament-card__subtitle {
  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
  color: var(--ph-ds-text-muted);
}

.ph-tournament-card__body {
  display: grid;
  gap: 14px;
}

.ph-tournament-card__meta,
.ph-tournament-card__practical,
.ph-tournament-card__description {
  font-size: 14px;
  line-height: 1.42;
  color: var(--ph-ds-text-muted);
}

.ph-tournament-card__practical {
  color: var(--ph-ds-text);
  font-weight: var(--ph-weight-semibold);
}

.ph-tournament-card__description {
  padding: 12px 13px;
  border-radius: var(--ph-ds-radius-inner);
  border: 1px solid var(--ph-ds-glass-border);
  background: rgba(255,255,255,0.035);
}

.ph-tournament-presence {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ph-tournament-presence__item {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: var(--ph-ds-radius-pill);
  border: 1px solid var(--ph-ds-glass-border);
  background: rgba(255,255,255,0.035);
  color: var(--ph-ds-text);
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1;
}

.ph-tournament-program {
  display: grid;
  gap: 8px;
}

.ph-tournament-program__title {
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .4px;
  text-transform: uppercase;
  color: var(--ph-ds-text-soft);
}

.ph-tournament-slot {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 10px 10px;
  border-radius: var(--ph-ds-radius-inner);
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(3,15,27,0.28);
}

.ph-tournament-slot--possible {
  border-style: dashed;
  opacity: .86;
}

.ph-tournament-slot__time {
  color: var(--ph-ds-text);
  font-size: 15px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  text-align: center;
  opacity: .92;
}

.ph-tournament-slot__main {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.ph-tournament-slot__title {
  color: var(--ph-ds-text);
  font-size: 15px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ph-tournament-slot__meta {
  color: var(--ph-ds-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ph-tournament-slot__action {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.ph-tournament-slot__pending {
  color: var(--ph-ds-text-soft);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  white-space: nowrap;
}

.ph-admin-empty-actions {
  margin-top: 10px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

@media (max-width: 520px) {
  .ph-tournament-slot {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .ph-tournament-slot__action {
    grid-column: 2;
    justify-content: flex-start;
  }
}

/* Matches page shell alignment
   Keep only the matches view content aligned with the context bug width. */
body:has(#matches) {
  --ph-matches-shell-width: 420px;
  --ph-matches-shell-gutter: 7px;
}

body:has(#matches) .ph-admin-header,
body:has(#matches) .ph-admin-main {
  width: 100%;
  max-width: var(--ph-matches-shell-width);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  padding-left: var(--ph-matches-shell-gutter);
  padding-right: var(--ph-matches-shell-gutter);
}

body:has(#matches) .ph-admin-inner {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Matches page — created match toast aligned with context bug/content shell */
body:has(#matches) .ph-admin-toast--match-created {
  position: static !important;
  inset: auto !important;
  transform: none !important;

  display: block !important;
  width: auto !important;
  max-width: none !important;

  margin: 12px 0 var(--ph-card-stack-gap) !important;
  padding: 0 !important;

  box-sizing: border-box;
}

body:has(#matches) .ph-admin-toast--match-created .ph-admin-created-card {
  position: static !important;
  inset: auto !important;
  transform: none !important;

  display: block !important;
  width: auto !important;
  max-width: none !important;

  margin: 0 !important;
  box-sizing: border-box;
}

body:has(#matches) .ph-admin-toast--match-created .ph-admin-created-card__main,
body:has(#matches) .ph-admin-toast--match-created .ph-admin-created-card__meta {
  min-width: 0;
  overflow-wrap: anywhere;
}

#matches .ph-tournament-slot {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 12px;
}

#matches .ph-tournament-slot__time {
  min-width: 0;
  white-space: nowrap;
}

#matches .ph-tournament-slot__main {
  min-width: 0;
}

#matches .ph-tournament-slot__title,
#matches .ph-tournament-slot__meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#matches .ph-tournament-slot__action {
  justify-self: end;
  align-self: center;
  white-space: nowrap;
}

.ph-pagehead--matches {
  padding-right: 16px;
  box-sizing: border-box;
}

.ph-tournament-card__head {
  align-items: center;
  gap: 12px;
}

.ph-tournament-card__toggle {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
  text-align: left;
  display: block;
  cursor: pointer;
}

.ph-tournament-card__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.ph-tournament-card.is-collapsed .ph-tournament-card__eyebrow {
  color: var(--ph-ds-accent);
}

.ph-tournament-card.is-collapsed .phds-card__title {
  line-height: 1.12;
}

.ph-tournament-card.is-collapsed .ph-tournament-card__subtitle {
  margin-top: 3px;
}

.ph-tournament-card__toggle:focus-visible {
  outline: 2px solid var(--ph-ds-accent);
  outline-offset: 4px;
  border-radius: var(--ph-ds-radius-card);
}

/* Tournament card: align collapsed header typography with Pulso Design System */
.ph-tournament-card__head {
  align-items: center;
  gap: 12px;
}

.ph-tournament-card__toggle {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
  text-align: left;
  display: block;
  cursor: pointer;
}

.ph-tournament-card__eyebrow {
  margin: 0 0 4px;

  font-size: 11px;
  line-height: 1.2;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .02em;
  text-transform: none;

  color: var(--ph-ds-text-muted);
}

/* Tournament card header: use standard Pulso DS card title typography */
.ph-tournament-card .phds-card__title {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
}

.ph-tournament-card__titlewrap .phds-card__title {
  font: inherit;
}

.ph-tournament-card__titlewrap {
  min-width: 0;
}

.ph-tournament-card__toggle {
  font: inherit;
}

.ph-tournament-card__eyebrow {
  margin: 0 0 5px;

  font-size: 11px;
  line-height: 1.2;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .02em;
  color: var(--ph-ds-text-muted);
}

.ph-tournament-card__subtitle {
  margin-top: 4px;

  font-size: 13px;
  line-height: 1.25;
  font-weight: var(--ph-weight-medium);
  color: var(--ph-ds-text-muted);
}

.ph-tournament-card__titlewrap .phds-card__title {
  font-size: 16px;
  line-height: 1.25;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: 0;
  color: var(--ph-ds-text);
}

.ph-tournament-card__subtitle {
  margin-top: 4px;

  font-size: 13px;
  line-height: 1.25;
  font-weight: var(--ph-weight-medium);
  letter-spacing: 0;

  color: var(--ph-ds-text-muted);
}

.ph-tournament-card.is-collapsed .ph-tournament-card__eyebrow {
  color: var(--ph-ds-text-muted);
}

.ph-tournament-card__toggle:focus-visible {
  outline: 2px solid var(--ph-ds-accent);
  outline-offset: 4px;
  border-radius: var(--ph-ds-radius-card);
}

/* Tournament card collapsed spacing */
.ph-tournament-card.is-collapsed {
  padding-top: 18px;
  padding-bottom: 12px;
}

/* Tournament card: keep collapsed header clean */
.ph-tournament-card__topline,
.ph-tournament-card__eyebrow {
  display: none;
}
.ph-tournament-card__body {
  margin-top: 14px;
}

.ph-tournament-card__body-subtitle {
  margin: 0 0 8px;

  font-size: 13px;
  line-height: 1.3;
  font-weight: var(--ph-weight-medium);

  color: var(--ph-ds-text);
}

/* Tournament card: reuse Team Hub presence counters */
.ph-tournament-presence-counters {
  margin-top: 12px;
  margin-bottom: 14px;
}

/* Tournament card header meta */
.ph-tournament-card__headersub {
  margin-top: 9px;

  font-size: 12px;
  line-height: 1.25;
  font-weight: var(--ph-weight-medium);

  color: var(--ph-ds-text-muted) !important;
  opacity: .75;
}

.ph-tournament-card__body-subtitle {
  display: none;
}

/* Tournament card header: title/date left, action/presence right */
.ph-tournament-card__head {
  align-items: flex-start;
  gap: 12px;
}

.ph-tournament-card__toggle {
  min-width: 0;
  flex: 1 1 auto;
}

.ph-tournament-card__headside {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
}

/* Tournament card: Team Hub counter visuals, compact header spacing */
.ph-tournament-card__headside .ph-tournament-presence-counters {
  margin: 0;
  padding: 0 12px 0 0;

  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

.ph-tournament-card__headside .phds-teamhub-staff-presence__item {
  margin: 0;
  padding: 0;

  min-height: auto;
  border: 0;
  background: transparent;
  box-shadow: none;

  gap: 4px;
}

/* Tournament card: fixed meta row under header divider */
.ph-tournament-card__head {
  align-items: center;
  gap: 12px;
}

.ph-tournament-card__toggle {
  min-width: 0;
  flex: 1 1 auto;
}

/* Tournament card: DS-style meta row below divider */
.ph-tournament-card__meta-row {
  width: 100%;
  margin: -6px 0 0 0;;
  padding: 0;

  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;

  color: var(--ph-ds-text-muted);
}

.ph-tournament-card__meta-left {
  min-width: 0;
  flex: 1 1 auto;

  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: .75;
}

.ph-tournament-card__meta-primary,
.ph-tournament-card__meta-secondary {
  margin: 0;

  font-size: 13px;
  line-height: 1.35;
  font-weight: var(--ph-weight-medium);
  letter-spacing: 0;

  color: var(--ph-ds-text-muted);
}

.ph-tournament-card__meta-secondary {
  color: var(--ph-ds-text-soft);
}

.ph-tournament-card__meta-right {
  flex: 0 0 auto;

  display: flex;
  align-items: center;
  justify-content: flex-end;

  padding-top: 1px;
  margin-right: 6px;
}

/* Reuse Team Hub counter visuals, only remove extra row spacing */
.ph-tournament-card__meta-row .ph-tournament-presence-counters {
  margin: 0;
  padding: 0;

  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

.ph-tournament-card__meta-row .phds-teamhub-staff-presence__item {
  margin: 0;
}

/* Matches page actions */
.ph-pagehead--matches-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}

.ph-create-tournament-shell {
  margin-top: 0;
}

/* Create tournament page shell alignment */
body:has(#createTournament) {
  --ph-create-tournament-shell-width: 420px;
  --ph-create-tournament-shell-gutter: 7px;
}

body:has(#createTournament) .ph-admin-header,
body:has(#createTournament) .ph-admin-main {
  width: 100%;
  max-width: var(--ph-create-tournament-shell-width);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  padding-left: var(--ph-create-tournament-shell-gutter);
  padding-right: var(--ph-create-tournament-shell-gutter);
}

body:has(#createTournament) .ph-admin-inner {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Create tournament pagehead spacing */
#createTournament .ph-create-pagehead {
  padding-left: 16px;
  padding-right: 16px;
  margin-bottom: var(--ph-card-stack-gap);
  box-sizing: border-box;
}

/* Matches page actions */
.ph-pagehead--matches {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
}

.ph-pagehead-actions--matches {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  width: 100%;
}

.ph-pagehead-actions--matches .ph-actionchip {
  transform: none;
  margin: 0;
}

/* Create tournament form */
.ph-create-tournament-form {
  display: grid;
  gap: var(--ph-card-stack-gap);
}

.ph-create-tournament-card,
.ph-create-tournament-summary-card {
  margin: 0;
}

.ph-create-tournament-stack {
  display: grid;
  gap: 14px;
}

.ph-create-tournament-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.ph-create-tournament-textarea {
  min-height: 96px;
  resize: vertical;
}

.ph-create-tournament-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.ph-create-tournament-summary__title {
  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--ph-weight-heavy);
  color: var(--ph-ds-text);
}

.ph-create-tournament-summary__meta {
  margin-top: 3px;
  font-size: 12px;
  line-height: 1.3;
  font-weight: var(--ph-weight-medium);
  color: var(--ph-ds-text-soft);
}

.ph-create-tournament-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

@media (max-width: 380px) {
  .ph-create-tournament-grid,
  .ph-create-tournament-summary {
    grid-template-columns: 1fr;
  }

  .ph-create-tournament-summary {
    display: grid;
  }

  .ph-create-tournament-actions {
    justify-content: flex-start;
  }
}

/* Create tournament form input spacing */
#createTournament .phds-input {
  box-sizing: border-box;
  padding-left: 14px;
  padding-right: 14px;
}

#createTournament input.phds-input {
  min-height: 40px;
}

#createTournament textarea.phds-input {
  padding-top: 12px;
  padding-bottom: 12px;
  line-height: 1.45;
}

#createTournament .phds-input::placeholder {
  color: var(--ph-ds-text-soft);
}

/* Create tournament form card rhythm */
#createTournament .ph-create-tournament-form {
  display: grid;
  gap: var(--ph-card-stack-gap);
}

#createTournament .ph-create-tournament-card,
#createTournament .ph-create-tournament-summary-card {
  margin: 0;
}

/* Create tournament slots editor */
#createTournament .ph-create-tournament-slots {
  display: grid;
  gap: 14px;
}

#createTournament .ph-create-tournament-slot__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#createTournament .ph-create-tournament-slot__title {
  min-width: 0;

  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--ph-weight-heavy);

  color: var(--ph-ds-text);
}

#createTournament .ph-create-tournament-add-slot {
  justify-self: start;
  margin-top: 14px;
}

#createTournament .ph-create-tournament-club-field {
  min-width: 0;
}

/* Create tournament program / slots */
#createTournament .ph-create-tournament-program-card .phds-card__head {
  align-items: center;
  gap: 12px;
}

#createTournament .ph-create-tournament-slots {
  display: grid;
  gap: var(--ph-card-stack-gap);
}

#createTournament .ph-create-tournament-slot__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  margin-bottom: 14px;
}

#createTournament .ph-create-tournament-slot__title {
  min-width: 0;

  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--ph-weight-heavy);

  color: var(--ph-ds-text);
}

#createTournament .ph-create-tournament-club-field {
  min-width: 0;
}

/* Create tournament program / slots */
#createTournament .ph-create-tournament-program-card .phds-card__head {
  align-items: center;
  gap: 12px;
}

#createTournament .ph-create-tournament-program-card .phds-card__title {
  min-width: 0;
}

#createTournament .ph-create-tournament-program-card .phds-card-action {
  flex: 0 0 auto;
}

#createTournament .ph-create-tournament-program-intro {
  margin: 0;
  color: var(--ph-ds-text-muted);
}

#createTournament .ph-create-tournament-slots {
  display: grid;
  gap: var(--ph-card-stack-gap);
}

#createTournament .ph-create-tournament-slot {
  margin: 0;
}

#createTournament .ph-create-tournament-slot__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

#createTournament .ph-create-tournament-slot__title {
  min-width: 0;
  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--ph-weight-heavy);
  color: var(--ph-ds-text);
}

#createTournament .ph-create-tournament-club-field {
  min-width: 0;
}

/* Create tournament slot helper copy */
#createTournament .ph-create-tournament-slot .phds-field-help {
  margin-top: 5px;
  font-size: 11px;
  line-height: 1.3;
  font-weight: var(--ph-weight-medium);
  color: var(--ph-ds-text-soft);
}

/* Create tournament: inline add action on the last slot card */
#createTournament .ph-create-tournament-slot__footer {
  display: none;
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer {
  display: flex;
  justify-content: flex-start;

  padding-top: 14px;
  border-top: 1px solid var(--ph-ds-glass-border);
}

/* Create tournament slot card polish */
#createTournament .ph-create-tournament-slot .ph-create-tournament-grid {
  row-gap: 18px;
  column-gap: 14px;
  align-items: start;
}

#createTournament .ph-create-tournament-slot .phds-field {
  display: grid;
  gap: 8px;
}

#createTournament .ph-create-tournament-slot .phds-field-help {
  padding-left: 8px;
  padding-right: 8px;

  font-size: 11px;
  line-height: 1.35;
  font-weight: var(--ph-weight-medium);

  color: var(--ph-ds-text-soft);
  opacity: .72;
}

/* Create tournament: inline add button in slot footer */
#createTournament .ph-create-tournament-slot__footer {
  display: none;
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer {
  display: flex;
  justify-content: flex-start;

  padding-top: 14px;
  border-top: 1px solid var(--ph-ds-glass-border);
}

/* Create tournament slot card rhythm */
#createTournament .ph-create-tournament-slot {
  display: grid;
  row-gap: 20px;
}

#createTournament .ph-create-tournament-slot__head {
  margin-bottom: 0;
  padding-bottom: 14px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  border-bottom: 1px solid var(--ph-ds-glass-border);
}

#createTournament .ph-create-tournament-slot .ph-create-tournament-grid {
  row-gap: 18px;
  column-gap: 14px;
  align-items: start;
}

#createTournament .ph-create-tournament-slot .phds-field {
  display: block;
}

#createTournament .ph-create-tournament-slot .phds-label {
  margin: 0 0 4px 4px;
}

#createTournament .ph-create-tournament-slot .phds-input + .phds-field-help {
  margin-top: 5px;
}

#createTournament .ph-create-tournament-slot .phds-field-help {
  padding-left: 8px;
  padding-right: 8px;

  font-size: 11px;
  line-height: 1.35;
  font-weight: var(--ph-weight-medium);

  color: var(--ph-ds-text-soft);
  opacity: .68;
}

/* Create tournament: inline add action on the last slot card */
#createTournament .ph-create-tournament-slot__footer {
  display: none;
  justify-content: flex-start;

  margin-top: 2px;
  padding-top: 16px;

  border-top: 1px solid var(--ph-ds-glass-border);
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer {
  display: flex;
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer {
  display: flex;
  justify-content: flex-end;

  padding-top: 14px;
  border-top: 1px solid var(--ph-ds-glass-border);
}

#createTournament .ph-create-tournament-slot__head {
  position: relative;

  margin-bottom: 0;
  padding-bottom: 14px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#createTournament .ph-create-tournament-slot__head::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--ph-ds-glass-border-strong),
    var(--ph-ds-glass-border),
    transparent
  );
}

#createTournament .ph-create-tournament-slot__footer {
  position: relative;

  display: none;
  justify-content: flex-start;

  margin-top: 2px;
  padding-top: 16px;
}

#createTournament .ph-create-tournament-slot__footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;

  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--ph-ds-glass-border-strong),
    var(--ph-ds-glass-border),
    transparent
  );
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer {
  display: flex;
}

#createTournament .ph-create-tournament-slot__head {
  margin-bottom: 0;
  padding-bottom: 16px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  border-bottom: 1px solid rgba(255,255,255,0.10);
}

#createTournament .ph-create-tournament-slot__head::after {
  display: none;
  content: none;
}

#createTournament .ph-create-tournament-slot__footer {
  display: none;
  justify-content: flex-start;

  margin-top: 2px;
  padding-top: 16px;

  border-top: 1px solid rgba(255,255,255,0.10);
}

#createTournament .ph-create-tournament-slot__footer::before {
  display: none;
  content: none;
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer {
  display: flex;
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer {
  display: flex;
  justify-content: flex-end;

  width: 100%;
  margin-top: 2px;
  padding-top: 16px;

  border-top: 1px solid rgba(255,255,255,0.10);
}

#createTournament .ph-create-tournament-slots.has-inline-add
.ph-create-tournament-slot:last-child
.ph-create-tournament-slot__footer::before {
  display: none;
  content: none;
}

#createTournament input.phds-input[type="date"],
#createTournament input.phds-input[type="time"] {
  width: 100%;
  min-width: 0;
  max-width: 100%;

  height: 40px;
  min-height: 40px;
  box-sizing: border-box;

  display: block;

  padding: 0 16px;

  font-size: 16px;
  line-height: normal;

  text-align: left;
  border-radius: 10px;
  border: 1px solid rgba(116,143,176,0.36);

  background:
    linear-gradient(
      180deg,
      rgba(15,28,48,0.98),
      rgba(10,22,38,0.98)
    );

  color: var(--ph-card-body-text);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.035),
    0 1px 0 rgba(0,0,0,0.24);

  -webkit-appearance: none;
  appearance: none;
}

#createTournament input.phds-input[type="date"]::-webkit-date-and-time-value,
#createTournament input.phds-input[type="time"]::-webkit-date-and-time-value {
  min-height: 40px;
  line-height: 40px;

  text-align: left;
}

#createTournament input.phds-input[type="date"]::-webkit-calendar-picker-indicator,
#createTournament input.phds-input[type="time"]::-webkit-calendar-picker-indicator {
  margin: 0;
  padding: 0;
}

#createTournament .ph-create-tournament-submit-card {
  position: static;
  z-index: auto;
}

#createTournament .ph-create-tournament-submit {
  display: grid;
  gap: 18px;
}

#createTournament .ph-create-tournament-submit__summary {
  min-width: 0;
}

#createTournament .ph-create-tournament-submit__title {
  font-size: 15px;
  line-height: 1.2;
  font-weight: var(--ph-weight-heavy);
  color: var(--ph-ds-text);
}

#createTournament .ph-create-tournament-submit__meta {
  margin-top: 4px;

  font-size: 13px;
  line-height: 1.35;
  font-weight: var(--ph-weight-medium);

  color: var(--ph-ds-text-muted);
}

#createTournament .ph-create-tournament-submit__primary {
  width: 100%;
  min-height: 50px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#createTournament .ph-create-tournament-submit__cancel {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  justify-self: center;

  min-height: 28px;
  padding: 0 10px;

  font-size: 13px;
  line-height: 1;
  font-weight: var(--ph-weight-heavy);
  text-decoration: none;

  color: var(--ph-ds-text-muted);
}

#createTournament .ph-create-tournament-submit__cancel:hover {
  color: var(--ph-ds-text);
}

#createTournament .ph-create-tournament-submit__primary.is-loading {
  gap: 10px;
}

#createTournament .ph-create-tournament-spinner {
  width: 15px;
  height: 15px;

  border: 2px solid rgba(255,255,255,0.35);
  border-top-color: var(--ph-ds-text);
  border-radius: 999px;

  animation: ph-create-tournament-spin .75s linear infinite;
}

@keyframes ph-create-tournament-spin {
  to {
    transform: rotate(360deg);
  }
}

body.ph-create-tournament-is-submitting {
  overflow: hidden;
}

@media (max-width: 640px) {
  #matches .ph-tournament-slot {
    grid-template-columns: 62px minmax(0, 1fr) auto;
    align-items: center;
  }

  #matches .ph-tournament-slot__action {
    grid-column: auto;
    justify-self: end;
    width: auto;
    margin-top: 0;
  }
}

#matches .ph-tournament-card__footer {
  margin-top: 16px;
  padding-top: 16px;

  display: flex;
  justify-content: flex-end;

  border-top: 1px solid rgba(255,255,255,0.10);
}

#matches .ph-tournament-card__delete {
  white-space: nowrap;
}

/* Pulso action feedback: reusable button spinner + fullscreen overlay */
.ph-action-feedback-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;

  display: grid;
  place-items: center;

  padding: 24px;

  background:
    radial-gradient(circle at 50% 42%, rgba(45,226,230,0.16), transparent 38%),
    rgba(3, 13, 24, 0.72);

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.ph-action-feedback-overlay[hidden],
.ph-action-feedback-overlay:not(.is-visible) {
  display: none;
}

.ph-action-feedback-overlay__panel {
  min-width: min(280px, 100%);
  max-width: 360px;

  display: grid;
  justify-items: center;
  gap: 12px;

  padding: 22px 24px;

  border-radius: var(--ph-ds-radius-inner);
  border: 1px solid var(--ph-ds-glass-border);
  background:
    linear-gradient(180deg, var(--ph-ds-glass-bg-strong), var(--ph-ds-glass-bg)),
    radial-gradient(circle at 18% 0%, rgba(90,247,255,0.18), transparent 48%);

  box-shadow: var(--ph-ds-shadow-card);
}

.ph-action-feedback-overlay__spinner,
.ph-action-feedback-spinner {
  width: 28px;
  height: 28px;

  border-radius: 999px;
  border: 2px solid rgba(244,247,251,0.18);
  border-top-color: var(--ph-ds-accent);

  animation: phActionFeedbackSpin .8s linear infinite;
}

.ph-action-feedback-spinner {
  width: 14px;
  height: 14px;

  display: inline-block;
  flex: 0 0 auto;
}

.phds-card-action.is-loading {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.ph-action-feedback-overlay__text {
  font-size: 13px;
  line-height: 1.35;
  font-weight: var(--ph-weight-heavy);
  color: var(--ph-ds-text);
  text-align: center;
}

.ph-action-feedback-overlay__hint {
  max-width: 280px;

  font-size: 11px;
  line-height: 1.4;
  font-weight: var(--ph-weight-medium);
  color: var(--ph-ds-text-soft);
  text-align: center;
}

.ph-action-feedback-is-running {
  cursor: progress;
}

@keyframes phActionFeedbackSpin {
  to {
    transform: rotate(360deg);
  }
}

/* Tournament presence page — use the same DS card stack width as Team/Security views */
.ph-tournament-presence-shell.phds-card-list {
  margin-top: var(--ph-card-stack-gap);
}

.ph-tournament-presence-shell #players {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.ph-tournament-presence-page {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);
}

.ph-tournament-presence-page__top {
  display: flex;
  justify-content: flex-start;
  padding-left: 12px;
  box-sizing: border-box;
}

.ph-tournament-presence-page .ph-pr-line.is-saving {
  opacity: 0.72;
}

#players .ph-prematch .ph-tournament-presence-card-intro {
  margin-top: 0;
  margin-bottom: 12px;
  padding-bottom: 20px;

  border-bottom: 1px solid rgba(255,255,255,0.08);
}

#players .ph-prematch .ph-tournament-presence-card-intro__meta {
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.3;
  color: var(--ph-card-body-text);
}

#players .ph-prematch .ph-tournament-presence-card-intro__copy {
  margin-top: 18px;

  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.35;
  color: var(--ph-card-body-text-muted);
}

#players .ph-prematch .ph-tournament-presence-card-intro + .ph-pr-line {
  border-top: 0 !important;
  padding-top: 0;
}

#matches .ph-tournament-slot--finished {
  border-color: rgba(46,213,115,0.28);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.15),
      rgba(46,213,115,0.085)
    );
}

#matches .ph-tournament-slot--finished {
  border-color: rgba(46,213,115,0.20);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.045),
      rgba(255,255,255,0.022)
    );
}

#matches .ph-tournament-slot-result {
  min-width: 74px;

  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
}

#matches .ph-tournament-slot-result__score {
  font-size: 17px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
}

@media (max-width: 360px) {
  #matches .ph-tournament-slot-result {
    min-width: 64px;
  }

  #matches .ph-tournament-slot-result__score {
    font-size: 16px;
  }

  #matches .ph-tournament-slot-result__badge {
    font-size: 8px;
    padding-left: 6px;
    padding-right: 6px;
  }
}

#matches .ph-tournament-slot {
  grid-template-columns: 62px minmax(0, 1fr) auto;
}

#matches .ph-tournament-slot--finished {
  min-height: 62px;
  row-gap: 0;
  border-color: rgba(46,213,115,0.20);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.045),
      rgba(255,255,255,0.022)
    );
}

#matches .ph-tournament-slot__timewrap {
  min-width: 0;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

#matches .ph-tournament-slot__time {
  min-width: 0;
  white-space: nowrap;
}

#matches .ph-tournament-slot--finished .ph-tournament-slot__time {
  font-size: 13px;
  color: var(--ph-card-body-text-muted);
}

#matches .ph-tournament-slot__status-badge {
  min-height: 16px;
  padding: 0 6px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 5px;
  border: 1px solid rgba(46,213,115,0.42);
  background:
    linear-gradient(
      180deg,
      rgba(46,213,115,0.16),
      rgba(46,213,115,0.075)
    );

  color: rgba(214,255,231,0.98);

  font-size: 8px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

#matches .ph-tournament-slot-result {
  min-width: 48px;

  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
}

#matches .ph-tournament-slot-result__score {
  color: var(--ph-text-strong);

  font-size: 17px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
}

.phds-teamhub-tournaments[hidden] {
  display: none;
}

.phds-teamhub-tournaments {
  display: grid;
  gap: 16px;
}

.phds-teamhub-tournament-card__meta {
  margin-top: 4px;
}

.phds-teamhub-tournament {
  display: grid;
  gap: 18px;
}

.phds-teamhub-tournament__section {
  display: grid;
  gap: 8px;
}

.phds-teamhub-tournament__section + .phds-teamhub-tournament__section {
  padding-top: 16px;
  border-top: 1px solid var(--ph-ds-glass-border);
}

.phds-teamhub-tournament__section-title {
  color: var(--ph-ds-text);
  font-size: var(--ph-text-base);
  font-weight: 800;
  letter-spacing: -0.01em;
}

.phds-teamhub-tournament__label {
  color: var(--ph-ds-text-soft);
  font-size: var(--ph-text-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.phds-teamhub-tournament__label--spaced {
  margin-top: 8px;
}

.phds-teamhub-tournament__value {
  color: var(--ph-ds-text);
  font-size: var(--ph-text-base);
  font-weight: 800;
}

.phds-teamhub-tournament__text {
  margin: 0;
  color: var(--ph-ds-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.5;
}

.phds-teamhub-tournament-program {
  display: grid;
  gap: 8px;
}

.phds-teamhub-tournament-program__row {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 10px 0;
}

.phds-teamhub-tournament-program__row + .phds-teamhub-tournament-program__row {
  border-top: 1px solid var(--ph-ds-glass-border);
}

.phds-teamhub-tournament-program__row--possible {
  opacity: 0.78;
}

.phds-teamhub-tournament-program__time {
  color: var(--ph-ds-accent);
  font-size: var(--ph-text-sm);
  font-weight: 900;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
}

.phds-teamhub-tournament-program__main {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.phds-teamhub-tournament-program__opponent {
  color: var(--ph-ds-text);
  font-size: var(--ph-text-sm);
  font-weight: 850;
  line-height: 1.25;
}

.phds-teamhub-tournament-program__meta {
  color: var(--ph-ds-text-muted);
  font-size: var(--ph-text-xs);
  font-weight: 650;
  line-height: 1.35;
}

.phds-teamhub-tournament-presence {
  gap: 10px;
}

.phds-teamhub-tournament-presence__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--ph-ds-glass-border);
  border-radius: var(--ph-ds-radius-card);
  background:
    linear-gradient(135deg, var(--ph-ds-glass-bg), var(--ph-ds-glass-bg-strong));
}

.phds-teamhub-tournament-presence__row .phds-teamhub-presence-pill {
  flex: 0 0 auto;
}

.phds-teamhub-tournament-card .phds-card__head {
  align-items: flex-start;
  gap: 12px;
}

.phds-teamhub-tournament-card__head-main {
  min-width: 0;
}

.phds-teamhub-tournament-card__head-actions {
  margin-left: auto;
  flex-shrink: 0;
}

.phds-teamhub-tournament-card__head-counters {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
}

.phds-teamhub-tournament-card__meta-row {
  font-size: var(--ph-text-sm);
  margin: -8px 0 10px;
}

.phds-teamhub-tournament-presence__list {
  margin-top: 0;
}

.phds-teamhub-tournament-program-section {
  display: grid;
  gap: 12px;
}

.phds-teamhub-tournament-section-label {
  margin: 0;

  color: var(--ph-text-muted);
  font-size: 10px;
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.phds-teamhub-tournament-program {
  display: grid;
  gap: 8px;
}

.phds-teamhub-tournament-program__row {
  display: grid;
  grid-template-columns: 42px 1px minmax(0, 1fr);
  gap: 14px;
  align-items: center;

  min-height: 70px;
  padding: 10px 16px 0 0;
}

.phds-teamhub-tournament-program__row--possible {
  opacity: 0.92;
}

.phds-teamhub-tournament-program__time-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 8px;

  min-width: 0;
}

.phds-teamhub-tournament-program__time {
  color: var(--ph-ds-text);
  font-size: 17px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.03em;
  white-space: nowrap;
}

.phds-teamhub-tournament-program__time-accent {
  width: 20px;
  height: 2px;
  margin: 0 0 0 10px;
  border-radius: 999px;
  background: var(--ph-ds-accent);
  box-shadow: 0 0 10px rgba(45, 226, 230, 0.35);
}

.phds-teamhub-tournament-program__divider {
  width: 1px;
  align-self: stretch;
  background: var(--ph-ds-text);
}

.phds-teamhub-tournament-program__content {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.phds-teamhub-tournament-program__opponent {
  color: var(--ph-ds-text);
  font-size: 16px;
  line-height: 1.2;
  font-weight: 850;
  letter-spacing: -0.02em;
}

.phds-teamhub-tournament-program__meta {
  color: var(--ph-ds-text-muted);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 600;
}

.phds-teamhub-tournament__section-title {
  margin-bottom: 10px;
}

.phds-teamhub-tournament__section + .phds-teamhub-tournament__section {
  margin-top: 18px;
}

.phds-teamhub-tournament__logistics {
  display: grid;
  gap: 18px;
}

.phds-teamhub-tournament-info-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.phds-teamhub-tournament-info-row + .phds-teamhub-tournament-info-row {
  padding-top: 18px;
  border-top: 1px solid var(--ph-ds-glass-border);
}

.phds-teamhub-tournament-info-row__icon {
  width: 18px;
  height: 18px;
  margin-top: 1px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--ph-ds-accent);
}

.phds-teamhub-tournament-info-row__icon svg {
  width: 17px;
  height: 17px;
  display: block;

  stroke: currentColor;
  fill: none;
  stroke-width: 1.95;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: translateY(-4.5px);
}

.phds-teamhub-tournament-info-row__icon .phds-icon-fill {
  fill: currentColor;
  stroke: none;
}

.phds-teamhub-tournament-info-row__body {
  min-width: 0;
}

.phds-teamhub-tournament-info-row__label {
  margin: 0 0 5px;

  color: var(--ph-text-muted);
  font-size: 10px;
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.phds-teamhub-tournament-info-row__value {
  margin: 0;

  color: var(--ph-ds-text);
  font-size: 17px;
  line-height: 1.25;
  font-weight: 850;
  letter-spacing: -0.02em;
}

.phds-teamhub-tournament-info-row__text {
  margin: 0;

  color: var(--ph-ds-text);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 550;
}

.phds-teamhub-tournament-info-row + .phds-teamhub-tournament-info-row {
  padding-top: 18px;
  border-top: 1px solid var(--ph-border-meta);
}

.phds-teamhub-tournament-program__divider {
  width: 1px;
  align-self: stretch;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.02) 0%,
    var(--ph-ds-text) 18%,
    var(--ph-ds-text) 82%,
    rgba(255,255,255,0.02) 100%
  );
  opacity: 0.13;
}

.ph-tournament-slot--quick-add {
  appearance: none;
  -webkit-appearance: none;

  width: 100%;
  min-height: 58px;
  margin: 10px 0 0;
  padding: 12px 14px;

  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;

  border: 1px dashed rgba(45, 226, 230, 0.42);
  background:
    linear-gradient(
      180deg,
      rgba(45, 226, 230, 0.075),
      rgba(255, 255, 255, 0.025)
    );

  color: var(--ph-card-body-text);
  font: inherit;
  text-align: left;

  cursor: pointer;

  transition:
    border-color 140ms ease,
    background 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

.ph-tournament-slot--quick-add:hover {
  border-color: rgba(45, 226, 230, 0.68);
  background:
    linear-gradient(
      180deg,
      rgba(45, 226, 230, 0.11),
      rgba(255, 255, 255, 0.035)
    );
}

.ph-tournament-slot--quick-add:active {
  transform: translateY(1px);
}

.ph-tournament-slot--quick-add__icon {
  width: 30px;
  height: 30px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(45, 226, 230, 0.46);
  background: rgba(45, 226, 230, 0.10);

  color: var(--ph-accent);

  font-size: 18px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
}

.ph-tournament-slot--quick-add__main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.ph-tournament-slot--quick-add__title {
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  color: var(--ph-text-strong);
}

.ph-tournament-slot--quick-add__meta {
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.2;
  color: var(--ph-card-body-text-muted);
}

.ph-quick-tournament-sheet {
  position: fixed;
  inset: 0;
  z-index: 1200;

  display: flex;
  align-items: flex-end;
  justify-content: center;

  padding: 18px 12px;
  box-sizing: border-box;
}

.ph-quick-tournament-sheet__backdrop {
  appearance: none;
  -webkit-appearance: none;

  position: absolute;
  inset: 0;

  border: 0;
  background: rgba(2, 6, 23, 0.68);

  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.ph-quick-tournament-sheet__panel {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: var(--ph-page-max);
  max-height: min(86vh, 720px);
  overflow: visible;

  padding: 10px 16px 16px;
  box-sizing: border-box;

  border-radius: 18px 18px var(--ph-radius) var(--ph-radius);
  border: 1px solid rgba(139, 234, 255, 0.24);

  background:
    radial-gradient(
      80% 65% at 50% -18%,
      rgba(45, 226, 230, 0.14),
      rgba(45, 226, 230, 0.00) 62%
    ),
    linear-gradient(
      180deg,
      rgba(21, 37, 61, 0.98),
      rgba(8, 21, 39, 0.99)
    );

  box-shadow:
    0 -18px 46px rgba(0, 0, 0, 0.44),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.ph-quick-tournament-sheet__handle {
  width: 42px;
  height: 4px;
  margin: 0 auto 14px;

  border-radius: var(--ph-radius-pill);
  background: rgba(255, 255, 255, 0.24);
}

.ph-quick-tournament-sheet__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;

  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

.ph-quick-tournament-sheet__title {
  font-size: 17px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
  color: var(--ph-text-strong);
}

.ph-quick-tournament-sheet__subtitle {
  margin-top: 4px;

  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.25;
  color: var(--ph-card-body-text-muted);
}

.ph-quick-tournament-sheet__close {
  appearance: none;
  -webkit-appearance: none;

  width: 30px;
  height: 30px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.055);

  color: var(--ph-card-body-text);
  font: inherit;
  font-size: 20px;
  line-height: 1;

  cursor: pointer;
}

.ph-quick-tournament-form {
  display: grid;
  gap: 14px;

  padding-top: 16px;
}

.ph-quick-tournament-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 136px;
  gap: 12px;
  align-items: start;
}

.ph-quick-tournament-form .phds-field {
  display: grid;
  gap: 8px;
}

.ph-quick-tournament-club-field {
  position: relative;
  min-width: 0;
}

.ph-quick-tournament-sheet .ph-club-ac-list {
  position: absolute;
  z-index: 1220;
  top: calc(100% + 6px);
  left: 0;
  right: 0;

  max-height: 240px;
  overflow: auto;
}

.ph-quick-tournament-form input.phds-input[type="time"] {
  width: 100%;
  min-width: 0;
  max-width: 100%;

  height: 40px;
  min-height: 40px;
  box-sizing: border-box;

  display: block;

  padding: 0 16px;

  font-family: inherit;
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 40px;
  letter-spacing: 0.01em;

  color: var(--ph-text-strong);

  -webkit-appearance: none;
  appearance: none;
}

.ph-quick-tournament-form input.phds-input[type="time"]::-webkit-date-and-time-value {
  text-align: left;
  font-family: inherit;
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 40px;
}

.ph-quick-tournament-form input.phds-input[type="time"]::-webkit-calendar-picker-indicator {
  opacity: 0;
  display: none;
}

.ph-quick-tournament-form .phds-input {
  padding-left: 12px;
  padding-right: 12px;
}

.ph-quick-tournament-form__error {
  padding: 10px 12px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255, 71, 87, 0.38);
  background: rgba(255, 71, 87, 0.11);

  color: var(--ph-danger-text);

  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.35;
}

.ph-quick-tournament-form__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;

  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.10);
}

.ph-quick-tournament-submit {
  color: var(--ph-chip-active-text);
  border-color: var(--ph-chip-active-border);
  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    );
  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 18px var(--ph-chip-active-glow);
}

.ph-quick-tournament-form .phds-field-help {
  margin-top: -2px;
  padding-left: 2px;
  padding-right: 2px;

  font-size: 11px;
  line-height: 1.3;
  font-weight: var(--ph-weight-medium);

  color: var(--ph-ds-text-soft);
  opacity: .72;
}

@media (max-width: 360px) {
  .ph-quick-tournament-grid {
    grid-template-columns: 1fr;
  }

  .ph-quick-tournament-form__actions {
    justify-content: stretch;
  }

  .ph-quick-tournament-form__actions .phds-card-action {
    flex: 1 1 0;
  }
}

.ph-quick-tournament-toprow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 132px;
  gap: 12px;
  align-items: start;
}

.ph-quick-tournament-time-field {
  min-width: 0;
}

.ph-quick-tournament-form .phds-field {
  display: grid;
  gap: 5px;
}

.ph-quick-tournament-form .phds-label {
  margin-bottom: 0;
}

.ph-tournament-card__footer--split {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ph-tournament-card__footer-left,
.ph-tournament-card__footer-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ph-tournament-card__publish.is-published {
  border-color: rgba(45, 226, 230, 0.42);
  background: rgba(45, 226, 230, 0.08);
  color: var(--ph-text-strong);
}

@media (max-width: 390px) {
  .ph-tournament-card__footer--split {
    align-items: stretch;
  }

  .ph-tournament-card__footer-left,
  .ph-tournament-card__footer-right {
    flex: 1 1 0;
  }

  .ph-tournament-card__footer-left .phds-card-action,
  .ph-tournament-card__footer-right .phds-card-action {
    width: 100%;
    justify-content: center;
  }
}

/* =========================================================
   Public interest landing — PulsoHub private beta
   ========================================================= */

body.ph-interest-mode {
  margin: 0;
  min-height: 100vh;

  color: var(--ph-text);
  font-family: var(--ph-font);

  background:
    radial-gradient(
      72% 44% at 50% -12%,
      rgba(45, 226, 230, 0.20),
      rgba(45, 226, 230, 0.00) 62%
    ),
    radial-gradient(
      58% 42% at 100% 8%,
      rgba(255, 106, 42, 0.10),
      rgba(255, 106, 42, 0.00) 58%
    ),
    linear-gradient(180deg, var(--ph-bg), var(--ph-bg-deep));
}

.ph-interest-page {
  width: 100%;
  max-width: 440px;
  min-height: 100vh;
  margin: 0 auto;
  padding: 28px 16px 44px;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;
  gap: 22px;
}

.ph-interest-hero {
  padding-top: 8px;
}

.ph-interest-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 26px;
}

.ph-interest-brand__mark {
  width: 34px;
  height: 34px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 11px;
  border: 1px solid rgba(45, 226, 230, 0.44);

  background:
    radial-gradient(
      100% 120% at 50% 0%,
      rgba(45, 226, 230, 0.26),
      rgba(45, 226, 230, 0.08) 48%,
      rgba(255, 255, 255, 0.035)
    );

  color: var(--ph-text-strong);

  font-size: 19px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 0 24px rgba(45, 226, 230, 0.16);
}

.ph-interest-brand__text {
  color: var(--ph-text-strong);
  font-size: 18px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: -0.02em;
}

.ph-interest-eyebrow {
  margin: 0 0 10px;

  color: var(--ph-accent);

  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.ph-interest-title {
  margin: 0;

  color: var(--ph-text-strong);

  font-size: 34px;
  font-weight: var(--ph-weight-heavy);
  line-height: 0.98;
  letter-spacing: -0.055em;
}

.ph-interest-copy {
  margin: 16px 0 0;

  max-width: 34ch;

  color: var(--ph-card-body-text);

  font-size: 16px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.42;
}

.ph-interest-points {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.ph-interest-point {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  align-items: start;

  color: var(--ph-card-body-text-muted);

  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.3;
}

.ph-interest-point__icon {
  width: 22px;
  height: 22px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 999px;
  border: 1px solid rgba(45, 226, 230, 0.44);
  background: rgba(45, 226, 230, 0.09);

  color: var(--ph-accent);

  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
}

.ph-interest-card {
  position: relative;

  padding: 18px 16px 16px;
  border-radius: 18px;
  border: 1px solid rgba(139, 234, 255, 0.22);

  background:
    radial-gradient(
      120% 100% at 50% -30%,
      rgba(45, 226, 230, 0.11),
      rgba(45, 226, 230, 0.00) 52%
    ),
    linear-gradient(
      180deg,
      rgba(21, 37, 61, 0.96),
      rgba(10, 24, 44, 0.985)
    );

  box-shadow:
    0 22px 54px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.10);
}

.ph-interest-card__head {
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.ph-interest-card__title {
  margin: 0;

  color: var(--ph-text-strong);

  font-size: 20px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.ph-interest-card__subtitle {
  margin: 6px 0 0;

  color: var(--ph-card-body-text-muted);

  font-size: 14px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.35;
}

.ph-interest-form {
  display: grid;
  gap: 13px;
}

.ph-interest-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 118px;
  gap: 12px;
}

.ph-interest-input,
.ph-interest-textarea {
  padding-left: 14px;
  padding-right: 14px;

  color: var(--ph-card-body-text);
  font-family: var(--ph-font);
  font-size: 16px;
  font-weight: var(--ph-weight-semibold);
}

.ph-interest-textarea {
  min-height: 86px;
  padding-top: 10px;
  resize: vertical;
  line-height: 1.35;
}

.ph-interest-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.ph-interest-actions {
  display: flex;
  justify-content: stretch;
  padding-top: 4px;
}

.ph-interest-submit {
  appearance: none;
  -webkit-appearance: none;

  width: 100%;
  min-height: 48px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 14px;
  border: 1px solid rgba(45,226,230,0.72);

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.30),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      #32eef2 0%,
      #20cdd4 46%,
      #1498a6 100%
    );

  color: #052033;

  font-family: var(--ph-font);
  font-size: 15px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .15px;
  line-height: 1;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.20),
    0 0 24px rgba(45,226,230,0.26),
    0 14px 30px rgba(0,0,0,0.28),
    inset 0 1px 0 rgba(255,255,255,0.34),
    inset 0 -1px 0 rgba(0,0,0,0.18);

  cursor: pointer;
}

.ph-interest-submit:disabled {
  opacity: .52;
  cursor: wait;
}

.ph-interest-status {
  padding: 11px 12px;

  border-radius: 10px;

  color: var(--ph-card-body-text);

  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.35;
}

.ph-interest-status[data-kind="success"] {
  border: 1px solid rgba(46,213,115,0.34);
  background: rgba(46,213,115,0.11);
  color: rgba(214,255,231,0.98);
}

.ph-interest-status[data-kind="error"] {
  border: 1px solid rgba(255,71,87,0.34);
  background: rgba(255,71,87,0.11);
  color: var(--ph-danger-text);
}

.ph-interest-footnote {
  margin: -4px 0 0;
  padding: 0 4px;

  color: var(--ph-text-faint);

  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.35;
  text-align: center;
}

@media (max-width: 360px) {
  .ph-interest-page {
    padding-left: 12px;
    padding-right: 12px;
  }

  .ph-interest-title {
    font-size: 31px;
  }

  .ph-interest-grid {
    grid-template-columns: 1fr;
  }
}

/* Interest landing — hero copy + checklist alignment polish */
.ph-interest-copy {
  max-width: none;
}

.ph-interest-point {
  align-items: center;
}

.ph-interest-point__icon {
  transform: none;
}

/* =========================================================
   Coach Admin — Coach Invites
   ========================================================= */

.ph-coach-invites {
  width: 100%;
  max-width: 100%;
}

.ph-coach-invites-card {
  width: 100%;
  box-sizing: border-box;
}

.ph-coach-invites-card__subtitle {
  margin: 5px 0 0;

  color: var(--ph-card-body-text-muted);

  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;
}

.ph-coach-invites-card__intro {
  display: grid;
  gap: 6px;
}

.ph-coach-invites-qr-shell {
  margin-top: 18px;

  display: flex;
  justify-content: center;
}

.ph-coach-invites-qr {
  width: 248px;
  min-height: 248px;
  padding: 12px;
  box-sizing: border-box;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 18px;
  border: 1px solid rgba(45, 226, 230, 0.28);

  background:
    radial-gradient(
      90% 80% at 50% 0%,
      rgba(45, 226, 230, 0.18),
      rgba(45, 226, 230, 0.00) 58%
    ),
    rgba(255, 255, 255, 0.96);

  box-shadow:
    0 18px 40px rgba(0,0,0,0.30),
    0 0 26px rgba(45,226,230,0.14),
    inset 0 1px 0 rgba(255,255,255,0.72);
}

.ph-coach-invites-qr__canvas {
  width: 224px !important;
  height: 224px !important;
  display: block;
  border-radius: 10px;
}

.ph-coach-invites-qr__fallback {
  padding: 18px;
  color: #061225;
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
  text-align: center;
}

.ph-coach-invites-linkbox {
  margin-top: 18px;
}

.ph-coach-invites-linkbox__label {
  margin-bottom: var(--ph-field-label-gap);

  color: var(--ph-card-body-text-muted);

  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;
  letter-spacing: .2px;
}

.ph-coach-invites-linkbox__input {
  padding-left: 12px;
  padding-right: 12px;

  color: var(--ph-card-body-text);

  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.2;

  overflow: hidden;
  text-overflow: ellipsis;
}

.ph-coach-invites-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;

  margin-top: 14px;
}

.ph-coach-invites-open {
  text-decoration: none;
}

.ph-coach-invites-status {
  margin-top: 14px;
  padding: 10px 12px;

  border-radius: var(--ph-radius-sm);

  color: var(--ph-card-body-text);

  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.35;
}

.ph-coach-invites-status[data-kind="success"] {
  border: 1px solid rgba(46,213,115,0.34);
  background: rgba(46,213,115,0.11);
  color: rgba(214,255,231,0.98);
}

.ph-coach-invites-status[data-kind="error"] {
  border: 1px solid rgba(255,71,87,0.34);
  background: rgba(255,71,87,0.11);
  color: var(--ph-danger-text);
}

.ph-coach-invites-card--future {
  opacity: .86;
}

.ph-coach-invites-roadmap {
  display: grid;
  gap: 11px;
}

.ph-coach-invites-roadmap__item {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 10px;
  align-items: center;

  color: var(--ph-card-body-text-muted);

  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
}

.ph-coach-invites-roadmap__dot {
  width: 7px;
  height: 7px;

  border-radius: var(--ph-radius-pill);
  background: var(--ph-accent);

  box-shadow: 0 0 12px rgba(45,226,230,0.38);
}

@media (max-width: 360px) {
  .ph-coach-invites-qr {
    width: 226px;
    min-height: 226px;
  }

  .ph-coach-invites-qr__canvas {
    width: 202px !important;
    height: 202px !important;
  }

  .ph-coach-invites-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ph-coach-invites-actions .phds-card-action {
    width: 100%;
  }
}

/* Coach invites page shell alignment
   Follow the normal admin page width; scope only to coach-invites. */
body:has(#coachInvites) .ph-admin-header,
body:has(#coachInvites) .ph-admin-main {
  width: 100%;
  max-width: var(--ph-page-max);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  padding-left: var(--ph-page-gutter);
  padding-right: var(--ph-page-gutter);
}

body:has(#coachInvites) .ph-admin-inner {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

#coachInvites.ph-coach-invites {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

/* Interest landing — iOS safe-area background + hero gradient */
html:has(body.ph-interest-mode) {
  min-height: 100%;
  background: var(--ph-bg-deep);
}

body.ph-interest-mode {
  position: relative;
  min-height: 100svh;
  overflow-x: hidden;

  background: var(--ph-bg-deep);
}

body.ph-interest-mode::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background:
    radial-gradient(
      72% 44% at 50% -12%,
      rgba(45, 226, 230, 0.20),
      rgba(45, 226, 230, 0.00) 62%
    ),
    radial-gradient(
      58% 42% at 100% 8%,
      rgba(255, 106, 42, 0.10),
      rgba(255, 106, 42, 0.00) 58%
    ),
    linear-gradient(180deg, var(--ph-bg), var(--ph-bg-deep));
}

body.ph-interest-mode > * {
  position: relative;
  z-index: 1;
}

body.ph-interest-mode .ph-interest-page {
  min-height: 100svh;
}

/* =========================================================
   Coach Hub — completed tournament card in Afgelopen bucket
   ========================================================= */

#matches .ph-tournament-completed-card {
  margin: 0 0 10px;
  border-color: rgba(45, 226, 230, 0.22);
  background:
    radial-gradient(
      70% 120% at 50% -30%,
      rgba(45, 226, 230, 0.10) 0%,
      rgba(45, 226, 230, 0.035) 42%,
      rgba(45, 226, 230, 0.00) 72%
    ),
    var(--ph-surface-card);
}

#matches .ph-tournament-completed-card__head {
  align-items: center;
}

#matches .ph-tournament-completed-card__titlewrap {
  min-width: 0;
  display: grid;
  gap: 4px;
}

#matches .ph-tournament-completed-card__subtitle {
  color: var(--ph-ds-accent);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;
}

#matches .ph-tournament-completed-card__badge {
  flex: 0 0 auto;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 28px;
  padding: 0 10px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(45, 226, 230, 0.42);
  background:
    linear-gradient(
      180deg,
      rgba(45, 226, 230, 0.14),
      rgba(45, 226, 230, 0.07)
    );

  color: var(--ph-ds-text);
  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .45px;
  line-height: 1;
  text-transform: uppercase;

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.08),
    0 0 16px rgba(45,226,230,0.14);
}

#matches .ph-tournament-completed-card__meta-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: start;
}

#matches .ph-tournament-completed-card__meta-left {
  min-width: 0;
  display: grid;
  gap: 4px;
}

#matches .ph-tournament-completed-card__meta {
  color: var(--ph-ds-text-muted);
  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.3;
}

#matches .ph-tournament-completed-card__summary {
  color: var(--ph-ds-text);
  font-size: 14px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.3;
}

#matches .ph-tournament-completed-card__goals {
  color: var(--ph-ds-text-muted);
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.3;
}

#matches .ph-tournament-completed-card__meta-right {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  padding-top: 1px;
}

#matches .ph-tournament-completed-card .ph-tournament-presence-counters {
  margin: 0;
  padding: 0;
}

@media (max-width: 380px) {
  #matches .ph-tournament-completed-card__meta-row {
    grid-template-columns: 1fr;
    row-gap: 12px;
  }

  #matches .ph-tournament-completed-card__meta-right {
    justify-content: flex-start;
  }
}

/* Team Hub — multi-team choice screen */
body.phds-page--hub-choice {
  min-height: 100svh;
  margin: 0;
  padding: 24px;
  display: grid;
  place-items: center;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(45, 226, 230, 0.18), transparent 30%),
    radial-gradient(circle at 85% 18%, rgba(123, 92, 255, 0.12), transparent 28%),
    linear-gradient(180deg, #071321 0%, #030814 100%);
  color: var(--ph-ds-text);
  font-family: var(--ph-font);
}

.phds-page--hub-choice .phds-choice-shell {
  width: min(100%, 520px);
}

.phds-page--hub-choice .phds-choice-card {
  position: relative;
  overflow: hidden;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
}

.phds-page--hub-choice .phds-choice-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 0%, rgba(45, 226, 230, 0.13), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent 42%);
}

.phds-page--hub-choice .phds-choice-hero,
.phds-page--hub-choice .phds-choice-list,
.phds-page--hub-choice .phds-notice {
  position: relative;
  z-index: 1;
}

.phds-page--hub-choice .phds-choice-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 8px 12px 8px;
}

.phds-page--hub-choice .phds-choice-hero__content {
  min-width: 0;
}

.phds-page--hub-choice .phds-choice-kicker {
  margin: 0 0 10px;
  color: var(--ph-ds-accent);
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.phds-page--hub-choice .phds-choice-title {
  margin: 0;
  color: var(--ph-ds-text);
  font-size: clamp(28px, 7vw, 38px);
  font-weight: var(--ph-weight-heavy);
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.phds-page--hub-choice .phds-choice-body {
  max-width: 34rem;
  margin: 14px 0 0;
  color: var(--ph-ds-text-muted);
  font-size: 15px;
  line-height: 1.55;
}

.phds-page--hub-choice .phds-choice-list {
  display: grid;
  gap: 0;
  margin-top: 24px;
}

.phds-page--hub-choice .phds-choice-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 70px;
  padding: 12px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ph-ds-text);
  text-decoration: none;
  box-shadow: none;
  transition:
    transform 140ms ease,
    background 140ms ease;
}

.phds-page--hub-choice .phds-choice-item::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(45, 226, 230, 0.20),
    rgba(255, 255, 255, 0.08),
    transparent
  );
}

.phds-page--hub-choice .phds-choice-item:last-child::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(45, 226, 230, 0.14),
    rgba(255, 255, 255, 0.06),
    transparent
  );
}

.phds-page--hub-choice .phds-choice-item:hover {
  transform: translateX(2px);
  background: linear-gradient(
    90deg,
    rgba(45, 226, 230, 0.055),
    transparent 72%
  );
  box-shadow: none;
}

.phds-page--hub-choice .phds-choice-item:hover {
  transform: translateY(-1px);
  border-color: rgba(45, 226, 230, 0.22);
  background:
    radial-gradient(circle at 0% 0%, rgba(45, 226, 230, 0.16), transparent 36%),
    rgba(4, 17, 31, 0.72);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.055),
    0 18px 36px rgba(0, 0, 0, 0.20);
}

.phds-page--hub-choice .phds-choice-item:hover .phds-choice-item__action {
  transform: translateX(3px);
  opacity: 1;
}

.phds-page--hub-choice .phds-choice-item:active {
  transform: translateY(1px);
}

.phds-page--hub-choice .phds-choice-item__content {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.phds-page--hub-choice .phds-choice-item__club {
  color: var(--ph-ds-accent);
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: 0.07em;
  line-height: 1.1;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-page--hub-choice .phds-choice-item__title {
  display: block;
  color: var(--ph-ds-text);
  font-size: 20px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.08;
  letter-spacing: -0.025em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.phds-page--hub-choice .phds-choice-item__hint {
  color: var(--ph-ds-text-muted);
  font-size: 13px;
  line-height: 1.2;
}

.phds-page--hub-choice .phds-choice-item__action {
  flex: 0 0 auto;
  width: 28px;
  height: 44px;
  display: grid;
  place-items: center;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: var(--ph-ds-accent);
  opacity: 0.82;
  transition:
    transform 140ms ease,
    opacity 140ms ease;
}

.phds-page--hub-choice .phds-choice-item__arrow {
  position: relative;
  display: block;
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 0;
}

.phds-page--hub-choice .phds-choice-item__arrow::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  border-radius: 1px;
}

.phds-page--hub-choice .phds-choice-item__arrow::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  border-radius: 1px;
}

.phds-page--hub-choice .phds-notice {
  margin-top: 22px;
}

@media (max-width: 520px) {
  body.phds-page--hub-choice {
    padding: 16px;
    place-items: stretch;
  }

  .phds-page--hub-choice .phds-choice-shell {
    width: 100%;
    align-self: center;
  }

  .phds-page--hub-choice .phds-choice-card {
    padding: 20px;
    border-radius: 28px;
  }

  .phds-page--hub-choice .phds-choice-hero {
    display: grid;
    gap: 14px;
  }

  .phds-page--hub-choice .phds-choice-item {
    min-height: 88px;
    padding: 15px;
  }
}

html.phds-page--hub-choice {
  min-height: 100%;
  background: #030814;
}

body.phds-page--hub-choice * {
  box-sizing: border-box;
}

/* Coach Hub — reuse Team Hub choice screen styling */
body.phds-page--coachhub-choice {
  min-height: 100svh;
  margin: 0;
  padding: 24px;
  display: grid;
  place-items: center;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(45, 226, 230, 0.18), transparent 30%),
    radial-gradient(circle at 85% 18%, rgba(123, 92, 255, 0.12), transparent 28%),
    linear-gradient(180deg, #071321 0%, #030814 100%);
  color: var(--ph-ds-text);
  font-family: var(--ph-font);
}

html.phds-page--coachhub-choice {
  min-height: 100%;
  background: #030814;
}

body.phds-page--coachhub-choice * {
  box-sizing: border-box;
}

.ph-special-match-type-badge {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  font-weight: var(--ph-weight-bold);
}

.ph-special-match-type-badge span[aria-hidden="true"] {
  transform: translateY(-0.5px);
}

.ph-special-match-meta {
  margin-top: 7px;
  overflow: hidden;
  color: var(--ph-card-body-text);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.35;
  opacity: 0.76;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 520px) {
  .ph-special-match-meta {
    white-space: normal;
  }
}

.ph-matchitem-actions {
  display: flex;
  align-items: stretch;
}

.ph-swipe-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 76px;
  padding: 0 10px;
  border: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
  appearance: none;
}

.ph-swipe-action__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.ph-swipe-action__label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
}

.ph-matchitem {
  --ph-match-actions-width: 320px;
}

.ph-matchitem-actions {
  position: absolute;
  inset-block: 0;
  right: 0;
  display: flex;
  width: var(--ph-match-actions-width);
  overflow: hidden;
}

.ph-matchitem.is-actions-open .ph-row-link {
  transform: translateX(calc(-1 * var(--ph-match-actions-width)));
}

.ph-swipe-action {
  flex: 1 1 0;
  min-width: 0;
  padding-inline: 8px;
}

.ph-matchitem[data-state="FINISHED"] {
  --ph-match-actions-width: 300px;
}

/* =========================================================
   Coach Admin — match swipe actions compact icon rail
   ========================================================= */

#matches .ph-matchitem {
  --ph-match-actions-gap: 20px;
  --ph-match-actions-buttons-width: 54px;
  --ph-match-actions-width: calc(
    var(--ph-match-actions-buttons-width) + var(--ph-match-actions-gap)
  );
}

#matches .ph-matchitem[data-state="PRE_MATCH"] {
  --ph-match-actions-buttons-width: 150px;
}

#matches .ph-matchitem[data-state="FINISHED"] {
  --ph-match-actions-buttons-width: 106px;
}

#matches .ph-matchitem .ph-matchitem-actions {
  width: var(--ph-match-actions-width) !important;
  padding-left: var(--ph-match-actions-gap) !important;
  padding-right: 0 !important;
  gap: 0 !important;
  box-sizing: border-box;
}

#matches .ph-matchitem .ph-matchitem-actions::before {
  display: none !important;
}

#matches .ph-matchitem.is-actions-open > .ph-row-link,
#matches .ph-matchitem[data-state="PRE_MATCH"].is-actions-open > .ph-row-link,
#matches .ph-matchitem[data-state="FINISHED"].is-actions-open > .ph-row-link,
#matches .ph-matchitem.is-actions-open > .ph-row-link:active,
#matches .ph-matchitem[data-state="PRE_MATCH"].is-actions-open > .ph-row-link:active,
#matches .ph-matchitem[data-state="FINISHED"].is-actions-open > .ph-row-link:active {
  transform: translateX(calc(-1 * var(--ph-match-actions-width))) !important;
}

#matches .ph-matchitem .ph-swipe-action {
  flex: 1 1 0;
  min-width: 0 !important;
  height: 100%;
  padding: 0 !important;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 0;
  border: 0;

  font-size: 17px;
  line-height: 1;
}

#matches .ph-matchitem .ph-swipe-action__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

#matches .ph-matchitem .ph-swipe-action__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

#matches .ph-swipe-action--edit {
  background: rgba(45, 226, 230, 0.18);
  color: rgba(220, 250, 255, 0.98);
}

#matches .ph-swipe-action--context {
  background: rgba(59, 130, 246, 0.22);
  color: rgba(220, 238, 255, 0.98);
}

#matches .ph-swipe-action--archive {
  background: rgba(148, 163, 184, 0.22);
  color: rgba(241, 245, 249, 0.96);
}

#matches .ph-swipe-action--delete {
  background: rgba(255, 71, 87, 0.86);
  color: #fff;
}

/* =========================================================
   Coach Admin — match swipe actions hard override
   One fixed cell size, count supplied by rendered HTML
   ========================================================= */

#matches .ph-matchitem {
  --ph-match-actions-gap: 16px;
  --ph-match-action-size: 60px;
  --ph-match-actions-count: 1;
  --ph-match-actions-width: calc(
    var(--ph-match-actions-gap) +
    (var(--ph-match-action-size) * var(--ph-match-actions-count))
  );
}

#matches .ph-matchitem .ph-matchitem-actions {
  width: var(--ph-match-actions-width) !important;
  min-width: var(--ph-match-actions-width) !important;
  max-width: var(--ph-match-actions-width) !important;

  padding-left: var(--ph-match-actions-gap) !important;
  padding-right: 0 !important;
  gap: 0 !important;

  display: grid !important;
  grid-template-columns: repeat(
    var(--ph-match-actions-count),
    var(--ph-match-action-size)
  ) !important;

  align-items: stretch !important;
  justify-content: end !important;
  box-sizing: border-box !important;
}

#matches .ph-matchitem .ph-matchitem-actions::before {
  display: none !important;
}

#matches .ph-matchitem.is-actions-open > .ph-row-link,
#matches .ph-matchitem[data-state="PRE_MATCH"].is-actions-open > .ph-row-link,
#matches .ph-matchitem[data-state="FINISHED"].is-actions-open > .ph-row-link,
#matches .ph-matchitem.is-actions-open > .ph-row-link:active,
#matches .ph-matchitem[data-state="PRE_MATCH"].is-actions-open > .ph-row-link:active,
#matches .ph-matchitem[data-state="FINISHED"].is-actions-open > .ph-row-link:active {
  transform: translateX(calc(-1 * var(--ph-match-actions-width))) !important;
}

#matches .ph-matchitem .ph-swipe-action {
  width: var(--ph-match-action-size) !important;
  min-width: var(--ph-match-action-size) !important;
  max-width: var(--ph-match-action-size) !important;
  flex: 0 0 var(--ph-match-action-size) !important;

  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  border: 0 !important;
  border-radius: 0 !important;
  appearance: none !important;

  font-size: 17px !important;
  line-height: 1 !important;
}

#matches .ph-matchitem .ph-swipe-action__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  line-height: 1;
}

#matches .ph-matchitem .ph-swipe-action__label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

#matches .ph-swipe-action--edit {
  background: rgba(45, 226, 230, 0.18) !important;
  color: rgba(220, 250, 255, 0.98) !important;
}

#matches .ph-swipe-action--context {
  background: rgba(59, 130, 246, 0.22) !important;
  color: rgba(220, 238, 255, 0.98) !important;
}

#matches .ph-swipe-action--archive {
  background: rgba(148, 163, 184, 0.22) !important;
  color: rgba(241, 245, 249, 0.96) !important;
}

#matches .ph-swipe-action--delete {
  background: rgba(255, 71, 87, 0.86) !important;
  color: #fff !important;
}

/* =========================================================
   Coach Admin — match context editor
   ========================================================= */

.ph-match-context-card {
  width: 100%;
}

.ph-match-context-subtitle {
  margin-top: 5px;
  color: var(--ph-card-body-text-muted);
  font-size: 13px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.25;
}

.ph-match-context-preview {
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.ph-match-context-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.ph-match-context-toggle {
  display: flex;
  align-items: center;
  gap: 10px;

  color: var(--ph-card-body-text);
  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
}

.ph-match-context-toggle input {
  width: 18px;
  height: 18px;
  margin: 0;
}

.ph-match-context-textarea {
  min-height: 92px;
  padding-top: 10px;
  resize: vertical;
}

.ph-match-context-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.ph-match-context-status {
  padding: 10px 12px;
  border-radius: 10px;

  color: var(--ph-card-body-text);
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.10);

  font-size: 13px;
  line-height: 1.35;
}

.ph-match-context-status[data-kind="success"] {
  color: rgba(210,255,228,0.95);
  background: rgba(46,213,115,0.12);
  border-color: rgba(46,213,115,0.35);
}

.ph-match-context-status[data-kind="error"] {
  color: var(--ph-danger-text);
  background: rgba(255,71,87,0.12);
  border-color: rgba(255,71,87,0.35);
}

.live-score-banner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  width: fit-content;
  max-width: min(100%, 390px);
  margin: 14px auto 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
}

.live-score-banner__label {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid color-mix(in srgb, var(--ph-accent) 28%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--ph-accent) 8%, transparent);
  color: var(--ph-accent);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.01em;
  line-height: 1;
  text-transform: none;
}

.live-score-banner__text {
  flex-basis: 100%;
  max-width: 340px;
  color: color-mix(in srgb, var(--ph-card-body-text) 88%, var(--ph-muted-text));
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.48;
  letter-spacing: -0.005em;
  text-wrap: balance;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.22);
}

.live-score-banner--intro {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  column-gap: 11px;
  width: 100%;
  max-width: 390px;
  margin: 18px auto 0;
  padding: 11px 14px 12px;
  border: 1px solid color-mix(in srgb, var(--ph-accent) 18%, transparent);
  border-radius: 17px;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--ph-accent) 8%, transparent),
      color-mix(in srgb, var(--ph-surface-elevated) 54%, transparent)
    );
  box-shadow:
    0 14px 34px rgba(0, 0, 0, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  text-align: left;
}

.live-score-banner--intro .live-score-banner__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: color-mix(in srgb, var(--ph-accent) 72%, var(--ph-card-body-text));
  filter: drop-shadow(0 3px 10px rgba(45, 226, 230, 0.12));
  opacity: 0.92;
}

.live-score-banner--intro .live-score-banner__icon svg {
  width: 30px;
  height: 30px;
}

.live-score-banner--intro .live-score-banner__text {
  flex-basis: auto;
  max-width: none;
  text-align: left;
}

.live-score-banner--result {
  width: 100%;
  max-width: none;
  padding: 13px 14px;
  border: 1px solid color-mix(in srgb, var(--ph-accent) 28%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--ph-accent) 7%, transparent);
}

.live-score-banner--result .live-score-banner__text {
  flex-basis: auto;
  max-width: none;
  width: 100%;
  font-weight: 800;
  text-align: center;
}

/* Platform Admin v0.1 */
.ph-platform-admin {
  min-height: 100vh;
  padding: 22px;
  color: var(--ph-card-body-text);
  font-family: var(--ph-font);
  background:
    radial-gradient(circle at 18% 0%, rgba(45, 226, 230, 0.08), transparent 34%),
    radial-gradient(circle at 92% 10%, rgba(255, 106, 42, 0.055), transparent 28%),
    var(--ph-bg-deep);
}

.ph-platform-admin__shell {
  max-width: 1240px;
  margin: 0 auto;
}

.ph-platform-admin__topbar {
  position: sticky;
  top: 14px;
  z-index: 20;
}

.ph-platform-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, auto) minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  min-height: 64px;
  padding: 10px 14px;
  border: 1px solid var(--ph-border-context);
  border-radius: 18px;
  background:
    linear-gradient(180deg, var(--ph-surface-context-top), var(--ph-surface-context-bottom));
  box-shadow: var(--ph-shadow-context);
  backdrop-filter: blur(18px);
}

.ph-platform-toolbar__brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.ph-platform-toolbar__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--ph-border-accent);
  border-radius: 11px;
  color: var(--ph-accent);
  background: linear-gradient(180deg, var(--ph-chip-active-bg-top), var(--ph-chip-active-bg-bottom));
  box-shadow: 0 0 18px var(--ph-chip-active-glow);
  font-size: 0.82rem;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: -0.03em;
}

.ph-platform-toolbar__title {
  color: var(--ph-text-strong);
  font-size: 1rem;
  font-weight: var(--ph-weight-heavy);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.ph-platform-toolbar__subtitle {
  margin-top: 2px;
  color: var(--ph-card-body-text-muted);
  font-size: 0.78rem;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.1;
}

.ph-platform-toolbar__nav {
  display: flex;
  justify-content: center;
  gap: 6px;
  min-width: 0;
}

.ph-platform-toolbar__nav-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--ph-radius-pill);
  color: var(--ph-card-body-text-muted);
  font-size: 0.82rem;
  font-weight: var(--ph-weight-bold);
  white-space: nowrap;
}

.ph-platform-toolbar__nav-item--active {
  border-color: var(--ph-border-accent);
  color: var(--ph-accent);
  background: linear-gradient(180deg, var(--ph-chip-active-bg-top), var(--ph-chip-active-bg-bottom));
}

.ph-platform-toolbar__meta {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.ph-platform-toolbar__menu {
  position: relative;
}

.ph-platform-toolbar__menu-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--ph-border-card-strong);
  border-radius: var(--ph-radius-pill);
  color: var(--ph-text-strong);
  background: transparent;
  font-size: 0.82rem;
  font-weight: var(--ph-weight-heavy);
  list-style: none;
  cursor: pointer;
}

.ph-platform-toolbar__menu-button::-webkit-details-marker {
  display: none;
}

.ph-platform-toolbar__menu-button:hover {
  border-color: var(--ph-border-accent);
  color: var(--ph-accent);
}

@media (max-width: 980px) {
  .ph-platform-toolbar {
    grid-template-columns: 1fr auto;
  }

  .ph-platform-toolbar__nav {
    display: none;
  }
}

@media (max-width: 720px) {
  .ph-platform-toolbar {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .ph-platform-toolbar__meta {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

.ph-platform-admin__strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid var(--ph-border-card-strong);
  border-radius: 18px;
  background: var(--ph-surface-card);
  box-shadow: var(--ph-shadow-card);
}

.ph-platform-admin__strip-label,
.ph-platform-panel__kicker {
  margin: 0 0 3px;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ph-accent);
}

.ph-platform-admin__strip h1 {
  margin: 0;
  color: var(--ph-text-strong);
  font-size: 1.35rem;
  line-height: 1;
  letter-spacing: -0.04em;
}

.ph-platform-admin__strip p {
  margin: 0;
  color: var(--ph-card-body-text-muted);
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.35;
}

.ph-platform-admin__strip-status {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.ph-platform-admin-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid var(--ph-border-card-strong);
  border-radius: var(--ph-radius-pill);
  color: var(--ph-text-strong);
  font-size: 0.78rem;
  font-weight: 850;
  white-space: nowrap;
}

.ph-platform-admin-status--ok {
  border-color: var(--ph-border-accent);
  color: var(--ph-accent);
  background: linear-gradient(180deg, var(--ph-chip-active-bg-top), var(--ph-chip-active-bg-bottom));
  box-shadow: 0 0 18px var(--ph-chip-active-glow);
}

.ph-platform-admin__workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr) minmax(0, 0.92fr);
  gap: 18px;
  margin-top: 18px;
  align-items: start;
}

.ph-platform-admin__side {
  display: contents;
}

.ph-platform-panel--primary {
  min-height: 0;
}

.ph-platform-panel {
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--ph-border-card-strong);
  border-radius: var(--ph-radius);
  background: var(--ph-surface-card);
  box-shadow: var(--ph-shadow-card);
}

/*.ph-platform-panel--muted {
  background: linear-gradient(180deg, var(--ph-surface-meta-top), var(--ph-surface-meta-bottom));
}*/

.ph-platform-panel--muted {
  background: var(--ph-surface-card);
}

.ph-platform-panel__head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.ph-platform-panel__head h2 {
  margin: 0;
  font-size: 1.45rem;
  line-height: 1.05;
  letter-spacing: -0.045em;
  color: var(--ph-text-strong);
}

.ph-platform-panel__head p:not(.ph-platform-panel__kicker) {
  margin: 9px 0 0;
  line-height: 1.45;
  color: var(--ph-card-body-text);
}

.ph-platform-panel__foot {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--ph-border-card);
  color: var(--ph-card-body-text-muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.ph-platform-demo-table {
  display: grid;
  margin-top: 16px;
}

.ph-platform-demo-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-height: 54px;
  padding: 12px 0;
  border-bottom: 1px solid var(--ph-border-card);
}

.ph-platform-demo-item:first-child {
  padding-top: 4px;
}

.ph-platform-demo-item:last-child {
  border-bottom: 0;
  padding-bottom: 4px;
}

.ph-platform-demo-item__info {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.ph-platform-demo-item__info strong {
  color: var(--ph-text-strong);
  font-size: 0.96rem;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: -0.025em;
}

.ph-platform-demo-item__info span {
  color: var(--ph-card-body-text-muted);
  font-size: 0.82rem;
  font-weight: var(--ph-weight-semibold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ph-platform-demo-item__actions {
  display: flex;
  align-items: center;
  gap: 7px;
}

.ph-platform-health-list {
  margin: 18px 0 0;
  display: grid;
  gap: 0;
}

.ph-platform-health-row {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px solid var(--ph-border-card);
}

.ph-platform-health-row:last-child {
  border-bottom: 0;
}

.ph-platform-health-row dt {
  color: var(--ph-card-body-text-muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.ph-platform-health-row dd {
  min-width: 0;
  margin: 0;
  color: var(--ph-text-strong);
  font-size: 0.88rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.ph-platform-roadmap {
  display: grid;
  gap: 9px;
  margin-top: 18px;
}

.ph-platform-roadmap span {
  display: flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--ph-border-card);
  border-radius: var(--ph-radius-pill);
  color: var(--ph-card-body-text-muted);
  font-size: 0.84rem;
  font-weight: 800;
}

@media (max-width: 1180px) {
  .ph-platform-admin__workspace {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .ph-platform-panel--muted {
    grid-column: 1 / -1;
  }
}

@media (max-width: 780px) {
  .ph-platform-admin__workspace {
    grid-template-columns: 1fr;
  }

  .ph-platform-panel--muted {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  .ph-platform-admin {
    padding: 14px;
  }

  .ph-platform-admin__topbar {
    position: static;
  }

  .ph-platform-admin__strip,
  .ph-platform-panel {
    padding: 18px;
  }

  .ph-platform-demo-item {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .ph-platform-demo-item__actions {
    flex-wrap: wrap;
  }

  .ph-platform-health-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .ph-platform-panel__head,
  .ph-platform-panel__foot {
    flex-direction: column;
  }
}

.ph-platform-panel {
  padding: 20px;
}

.ph-platform-panel__head h2 {
  font-size: 1.28rem;
}

.ph-platform-panel__head p:not(.ph-platform-panel__kicker) {
  font-size: 13px;
}

.ph-platform-panel__kicker {
  font-size: 0.7rem;
}

.ph-platform-demo-item {
  min-height: 48px;
  padding: 10px 0;
  gap: 12px;
}

.ph-platform-demo-item__info strong {
  font-size: 0.9rem;
}

.ph-platform-demo-item__info span {
  font-size: 0.78rem;
}

.ph-platform-demo-item__actions {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.ph-platform-demo-link {
  color: var(--ph-card-body-text-muted);
  font-size: 0.8rem;
  font-weight: var(--ph-weight-bold);
  text-decoration: none;
}

.ph-platform-demo-link:hover {
  color: var(--ph-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ph-platform-demo-link--accent {
  color: var(--ph-accent);
}

.ph-platform-demo-link--muted {
  color: var(--ph-card-body-text-muted);
}

.ph-platform-demo-separator {
  color: var(--ph-text-faint);
  font-size: 0.78rem;
}

.ph-platform-health-row {
  padding: 8px 0;
}

.ph-platform-health-row dt,
.ph-platform-health-row dd {
  font-size: 0.8rem;
}

.ph-platform-roadmap span {
  min-height: 30px;
  font-size: 0.78rem;
}
/* Platform Admin v0.3 — data import dry-run */
#platformAdmin .ph-platform-import {
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--ph-border-card);
}

#platformAdmin .ph-platform-import__head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

#platformAdmin .ph-platform-import__copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

#platformAdmin .ph-platform-import__title {
  color: var(--ph-text-strong);
  font-size: 0.92rem;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: -0.02em;
}

#platformAdmin .ph-platform-import__copy p {
  margin: 0;
  color: var(--ph-card-body-text-muted);
  font-size: 0.82rem;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.4;
}

#platformAdmin .ph-platform-import__actions {
  display: flex;
  justify-content: flex-end;
  flex: 0 0 auto;
}

#platformAdmin .ph-platform-action-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0;
  border: 0;
  color: var(--ph-card-body-text-muted);
  background: transparent;
  font-family: var(--ph-font);
  font-size: 0.8rem;
  font-weight: var(--ph-weight-bold);
  text-decoration: none;
  cursor: pointer;
}

#platformAdmin .ph-platform-action-button:hover {
  color: var(--ph-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

#platformAdmin .ph-platform-action-button:disabled {
  opacity: 0.62;
  cursor: wait;
  text-decoration: none;
}

#platformAdmin .ph-platform-action-button--accent {
  color: var(--ph-accent);
}

#platformAdmin .ph-platform-import__result {
  display: grid;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--ph-border-card);
}

#platformAdmin .ph-platform-import-result__head {
  display: grid;
  gap: 3px;
}

#platformAdmin .ph-platform-import-result__title {
  color: var(--ph-text-strong);
  font-size: 0.92rem;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: -0.02em;
}

#platformAdmin .ph-platform-import__result.is-valid .ph-platform-import-result__title {
  color: var(--ph-accent);
}

#platformAdmin .ph-platform-import__result.is-invalid .ph-platform-import-result__title {
  color: var(--ph-orange);
}

#platformAdmin .ph-platform-import-result__meta {
  color: var(--ph-card-body-text-muted);
  font-size: 0.8rem;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.35;
}

#platformAdmin .ph-platform-import-rows {
  display: grid;
  gap: 0;
}

#platformAdmin .ph-platform-import-row {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--ph-border-card);
}

#platformAdmin .ph-platform-import-row:last-child {
  border-bottom: 0;
}

#platformAdmin .ph-platform-import-row__label {
  color: var(--ph-card-body-text-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

#platformAdmin .ph-platform-import-row__value {
  min-width: 0;
  color: var(--ph-text-strong);
  font-size: 0.8rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

#platformAdmin .ph-platform-import-issues {
  display: grid;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--ph-border-card);
}

#platformAdmin .ph-platform-import-issues__title {
  color: var(--ph-orange);
  font-size: 0.8rem;
  font-weight: var(--ph-weight-heavy);
}

#platformAdmin .ph-platform-import-issues__list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  color: var(--ph-card-body-text-muted);
  font-size: 0.78rem;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.35;
}

@media (max-width: 720px) {
  #platformAdmin .ph-platform-import__head {
    flex-direction: column;
  }

  #platformAdmin .ph-platform-import__actions {
    justify-content: flex-start;
  }

  #platformAdmin .ph-platform-import-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

/* Platform Admin v0.4 — restore readiness */
#platformAdmin .ph-platform-readiness {
  display: grid;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--ph-border-card);
}

#platformAdmin .ph-platform-readiness__head {
  display: grid;
  gap: 3px;
}

#platformAdmin .ph-platform-readiness__title {
  color: var(--ph-text-strong);
  font-size: 0.92rem;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: -0.02em;
}

#platformAdmin .ph-platform-readiness__meta {
  color: var(--ph-card-body-text-muted);
  font-size: 0.8rem;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.35;
}

#platformAdmin .ph-platform-readiness-checks {
  display: grid;
  gap: 8px;
}

#platformAdmin .ph-platform-readiness-check {
  display: grid;
  gap: 2px;
  min-height: 34px;
  padding: 9px 12px;
  border: 1px solid var(--ph-border-card);
  border-radius: var(--ph-radius-pill);
}

#platformAdmin .ph-platform-readiness-check__label {
  color: var(--ph-text-strong);
  font-size: 0.78rem;
  font-weight: var(--ph-weight-heavy);
}

#platformAdmin .ph-platform-readiness-check__note {
  color: var(--ph-card-body-text-muted);
  font-size: 0.76rem;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
}

#platformAdmin .ph-platform-readiness-check.is-ok {
  border-color: var(--ph-border-accent);
  background: linear-gradient(180deg, var(--ph-chip-active-bg-top), var(--ph-chip-active-bg-bottom));
}

#platformAdmin .ph-platform-readiness-check.is-ok .ph-platform-readiness-check__label {
  color: var(--ph-accent);
}

#platformAdmin .ph-platform-readiness-check.is-warn {
  border-color: color-mix(in srgb, var(--ph-orange) 36%, transparent);
}

#platformAdmin .ph-platform-readiness-check.is-warn .ph-platform-readiness-check__label {
  color: var(--ph-orange);
}

#platformAdmin .ph-platform-readiness-check.is-blocked {
  border-color: color-mix(in srgb, var(--ph-orange) 46%, transparent);
}

#platformAdmin .ph-platform-readiness-check.is-blocked .ph-platform-readiness-check__label {
  color: var(--ph-orange);
}

#platformAdmin .ph-platform-readiness__actions {
  display: flex;
  justify-content: flex-end;
}

#platformAdmin .ph-platform-action-button--disabled,
#platformAdmin .ph-platform-action-button--disabled:hover {
  color: var(--ph-card-body-text-muted);
  opacity: 0.62;
  cursor: not-allowed;
  text-decoration: none;
}

/* Platform Admin v0.7 — Data Operations polish */
#platformAdmin .ph-platform-data-ops__summary {
  margin: 0 0 18px !important;
}

#platformAdmin .ph-platform-data-ops__notice {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  padding: 14px 0 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

#platformAdmin .ph-platform-data-ops__notice strong {
  color: rgba(255,255,255,0.94) !important;
  font-family: var(--ph-font) !important;
  font-size: 14px !important;
  font-weight: 780 !important;
}

#platformAdmin .ph-platform-data-ops__notice span {
  color: rgba(210,224,242,0.74) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

#platformAdmin .ph-platform-data-ops__sections {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  margin-top: 18px !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}

#platformAdmin .ph-platform-data-section {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 16px !important;
  align-items: start !important;
  padding: 18px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformAdmin .ph-platform-data-section__copy,
#platformAdmin .ph-platform-import__copy {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  min-width: 0 !important;
}

#platformAdmin .ph-platform-data-section__eyebrow {
  margin: 0 !important;
  color: var(--ph-accent) !important;
  font-family: var(--ph-font) !important;
  font-size: 11px !important;
  font-weight: 760 !important;
  letter-spacing: .26px !important;
}

#platformAdmin .ph-platform-data-section h3,
#platformAdmin .ph-platform-import__title {
  margin: 0 !important;
  color: rgba(255,255,255,0.94) !important;
  font-family: var(--ph-font) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

#platformAdmin .ph-platform-data-section p,
#platformAdmin .ph-platform-import__copy p {
  max-width: 58ch !important;
  margin: 0 !important;
  color: rgba(210,224,242,0.72) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

#platformAdmin .ph-platform-data-section__actions,
#platformAdmin .ph-platform-import__actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
}

#platformAdmin .ph-platform-data-section__hint {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 34px !important;
  color: rgba(210,224,242,0.72) !important;
  font-family: var(--ph-font) !important;
  font-size: 12px !important;
  font-weight: 680 !important;
  text-align: right !important;
}

#platformAdmin .ph-platform-import {
  margin: 0 !important;
}

#platformAdmin .ph-platform-import__head {
  display: contents !important;
}

#platformAdmin .ph-platform-import__result {
  grid-column: 1 / -1 !important;
  margin-top: 0 !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformAdmin .ph-platform-import-result__head {
  margin-bottom: 12px !important;
}

#platformAdmin .ph-platform-import-result__title {
  font-family: var(--ph-font) !important;
  font-size: 15px !important;
  font-weight: 820 !important;
}

#platformAdmin .ph-platform-import-result__meta {
  color: rgba(210,224,242,0.72) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

#platformAdmin .ph-platform-import-rows {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}

#platformAdmin .ph-platform-import-row {
  display: grid !important;
  grid-template-columns: minmax(110px, .38fr) minmax(0, 1fr) !important;
  gap: 14px !important;
  padding: 11px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.07) !important;
}

#platformAdmin .ph-platform-import-row__label {
  color: rgba(210,224,242,0.58) !important;
  font-family: var(--ph-font) !important;
  font-size: 12px !important;
  font-weight: 720 !important;
}

#platformAdmin .ph-platform-import-row__value {
  color: rgba(255,255,255,0.88) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

#platformAdmin .ph-platform-import-issues,
#platformAdmin .ph-platform-readiness {
  margin-top: 14px !important;
  padding: 14px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformAdmin .ph-platform-import-issues__title,
#platformAdmin .ph-platform-readiness__title {
  color: rgba(255,255,255,0.92) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}

#platformAdmin .ph-platform-import-issues__list {
  margin-top: 8px !important;
}

@media (max-width: 720px) {
  #platformAdmin .ph-platform-data-section {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 17px 0 !important;
  }

  #platformAdmin .ph-platform-data-section__actions,
  #platformAdmin .ph-platform-import__actions {
    justify-content: stretch !important;
    width: 100% !important;
  }

  #platformAdmin .ph-platform-data-section__actions > *,
  #platformAdmin .ph-platform-import__actions > * {
    width: 100% !important;
  }

  #platformAdmin .ph-platform-data-section__hint {
    justify-content: flex-start !important;
    text-align: left !important;
  }

  #platformAdmin .ph-platform-import-row {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    padding: 10px 0 !important;
  }
}

/* Platform Admin v0.8 — compact copy check result */
#platformAdmin .ph-platform-change-summary {
  margin-top: 14px !important;
  padding: 14px 0 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

#platformAdmin .ph-platform-change-summary__title {
  color: rgba(255,255,255,0.94) !important;
  font-family: var(--ph-font) !important;
  font-size: 15px !important;
  font-weight: 820 !important;
  line-height: 1.25 !important;
}

#platformAdmin .ph-platform-change-summary__text {
  margin: 6px 0 0 !important;
  color: rgba(210,224,242,0.72) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

#platformAdmin .ph-platform-change-summary__list {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#platformAdmin .ph-platform-change-summary__list li {
  color: rgba(255,255,255,0.86) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

#platformAdmin .ph-platform-restore-note {
  padding: 12px 0 0 !important;
  color: rgba(210,224,242,0.72) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  font-weight: 680 !important;
  line-height: 1.45 !important;
}

/* Platform Admin v0.9 — hide empty data operations result */
#platformAdmin .ph-platform-import__result[hidden] {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Platform Admin v1.0 — compact valid copy result */
#platformAdmin .ph-platform-import__result.is-valid {
  padding-bottom: 0 !important;
}

#platformAdmin .ph-platform-import__result.is-valid .ph-platform-import-result__head {
  margin-bottom: 0 !important;
}

#platformAdmin .ph-platform-change-summary__list--compact {
  margin-top: 10px !important;
  padding-top: 10px !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}

/* Platform Admin v1.1 — clean data operations ending */
#platformAdmin .ph-platform-data-ops__sections .ph-platform-data-section:last-child {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Platform Admin v1.2 — remove restore bottom divider */
#platformAdmin .ph-platform-data-section--restore {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

#platformAdmin .ph-platform-data-section--restore + * {
  border-top: 0 !important;
}

/* Platform Admin v1.3 — stronger data operation step headers */
#platformAdmin .ph-platform-data-section__eyebrow {
  color: rgba(255,255,255,1) !important;
  font-size: 13px !important;
  font-weight: 860 !important;
  letter-spacing: .34px !important;
  line-height: 1.2 !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section .ph-platform-data-section__copy > .ph-platform-data-section__eyebrow {
  color: rgba(255,255,255,0.94) !important;
}

 /* Platform Admin — Data Operations subtle card action buttons */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-demo-link,
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-action-button {
  width: auto !important;
  min-width: 0 !important;
  min-height: 28px !important;
  height: 28px !important;
  padding: 0 10px !important;

  border: 1px solid rgba(255,255,255,0.16) !important;
  border-radius: 7px !important;
  background: rgba(255,255,255,0.045) !important;

  color: rgba(255,255,255,0.88) !important;
  font-family: var(--ph-font) !important;
  font-size: 10px !important;
  font-weight: var(--ph-weight-semibold) !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-demo-link:hover,
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-action-button:hover {
  border-color: rgba(255,255,255,0.24) !important;
  background: rgba(255,255,255,0.065) !important;
  color: rgba(255,255,255,0.94) !important;
}

@media (max-width: 720px) {
  body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions {
    justify-content: flex-end !important;
    width: auto !important;
  }

  body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-demo-link,
  body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-action-button {
    width: auto !important;
  }
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-demo-link,
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-action-button {
  box-sizing: border-box !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 10px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  line-height: 28px !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}

/* Anchor-specific reset: voorkomt dat de download-link visueel tegen de bovenkant kruipt
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions > .ph-platform-demo-link {
  padding-top: 1px !important;
}*/

/* Platform Admin — Data Operations body copy consistency */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__copy > p:not(.ph-platform-data-section__eyebrow),
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > p:not(.ph-platform-data-section__eyebrow),
body #platformAdmin .ph-platform-data-ops .ph-platform-import-result__meta,
body #platformAdmin .ph-platform-data-ops .ph-platform-change-summary__text,
body #platformAdmin .ph-platform-data-ops .ph-platform-change-summary__list li,
body #platformAdmin .ph-platform-data-ops .ph-platform-restore-note {
  color: rgba(210,224,242,0.72) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

/* Platform Admin — Data Operations step headers */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section .ph-platform-data-section__copy > .ph-platform-data-section__eyebrow {
  color: rgba(255,255,255,0.94) !important;
  font-weight: 800 !important;
  letter-spacing: -0.34px !important;
  line-height: 1.2 !important;
}

/* Platform Admin — Data Operations section header/action layout */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section {
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas:
    "step action"
    "body body"
    "result result" !important;
  column-gap: 16px !important;
  row-gap: 8px !important;
  align-items: start !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__copy,
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy {
  display: contents !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__copy > .ph-platform-data-section__eyebrow,
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > .ph-platform-data-section__eyebrow {
  grid-area: step !important;
  margin: 0 !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__copy > p:not(.ph-platform-data-section__eyebrow),
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > p:not(.ph-platform-data-section__eyebrow) {
  grid-area: body !important;
  max-width: none !important;
  margin: 0 !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions,
body #platformAdmin .ph-platform-data-ops .ph-platform-import__actions {
  grid-area: action !important;
  align-self: start !important;
  justify-self: end !important;
  width: auto !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-import__result {
  grid-area: result !important;
}

@media (max-width: 720px) {
  body #platformAdmin .ph-platform-data-ops .ph-platform-data-section {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "step action"
      "body body"
      "result result" !important;
    column-gap: 12px !important;
    row-gap: 8px !important;
  }
}

/* Platform Admin — align Data Operations step header with action button */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__copy > .ph-platform-data-section__eyebrow,
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > .ph-platform-data-section__eyebrow {
  min-height: 28px !important;
  display: flex !important;
  align-items: center !important;
  align-self: center !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__actions,
body #platformAdmin .ph-platform-data-ops .ph-platform-import__actions {
  align-self: center !important;
}

/* Platform Admin — align import action button with step header */
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > .ph-platform-data-section__eyebrow {
  min-height: 28px !important;
  display: flex !important;
  align-items: center !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-import__actions {
  height: 28px !important;
  min-height: 28px !important;
  display: flex !important;
  align-items: center !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-import__actions > .ph-platform-action-button {
  height: 28px !important;
  min-height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* Platform Admin — fix Kopie controleren action alignment */
body #platformAdmin .ph-platform-data-ops .ph-platform-import__actions {
  align-self: center !important;
  transform: translateY(5px) !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > .ph-platform-data-section__eyebrow {
  align-self: center !important;
}

/* Platform Admin — Data Operations disabled restore action */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore .ph-platform-action-button:disabled {
  opacity: 1 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;

  border-color: rgba(255,255,255,0.10) !important;
  background: rgba(255,255,255,0.025) !important;
  color: rgba(210,224,242,0.48) !important;

  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}

/* Voorkomt hover/loading/spinner-achtige pseudo-elementen op disabled restore action */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore .ph-platform-action-button:disabled::before,
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore .ph-platform-action-button:disabled::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

/* Platform Admin — align restore disabled action with step header */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore .ph-platform-data-section__actions {
  align-self: center !important;
  transform: translateY(4px) !important;
}

/* Platform Admin — Data Operations toast */
.ph-platform-toast {
  position: fixed !important;
  right: 18px !important;
  bottom: 18px !important;
  z-index: 90 !important;

  width: min(360px, calc(100vw - 36px)) !important;
  padding: 13px 14px !important;

  border: 1px solid rgba(45,226,230,0.26) !important;
  border-radius: 14px !important;
  background: rgba(13,29,52,0.96) !important;
  box-shadow: 0 18px 44px rgba(0,0,0,0.34) !important;
  backdrop-filter: blur(10px) !important;

  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition: opacity 180ms ease, transform 180ms ease !important;
}

.ph-platform-toast.is-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.ph-platform-toast__title {
  color: var(--ph-accent) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  font-weight: 820 !important;
  line-height: 1.2 !important;
}

.ph-platform-toast__message {
  margin-top: 4px !important;
  color: rgba(230,241,255,0.82) !important;
  font-family: var(--ph-font) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.42 !important;
}

@media (max-width: 720px) {
  .ph-platform-toast {
    right: 12px !important;
    bottom: 12px !important;
    width: calc(100vw - 24px) !important;
  }
}

/* Platform Admin — toast position: top on desktop, bottom on mobile */
.ph-platform-toast {
  top: 18px !important;
  right: 18px !important;
  bottom: auto !important;
}

@media (max-width: 720px) {
  .ph-platform-toast {
    top: auto !important;
    right: 12px !important;
    bottom: 12px !important;
  }
}

/* Platform Admin — Data Operations divider rhythm */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
  row-gap: 7px !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore {
  padding-bottom: 0 !important;
}

/* Meer lucht tussen de upload-copy en het resultaat-divider */
body #platformAdmin .ph-platform-data-ops .ph-platform-import__result {
  margin-top: 9px !important;
  padding-top: 16px !important;
}

/* Geen extra divider tussen resultaattekst en de detailregels */
body #platformAdmin .ph-platform-data-ops .ph-platform-change-summary__list--compact {
  margin-top: 9px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

/* Compacte, consistente ruimte in de resultaatregels */
body #platformAdmin .ph-platform-data-ops .ph-platform-change-summary__list {
  gap: 6px !important;
}

/* Platform Admin — Data Operations result spacing rhythm */
body #platformAdmin .ph-platform-data-ops .ph-platform-import__result:not([hidden]) {
  margin-top: 16px !important;
  padding-top: 16px !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--check:has(.ph-platform-import__result:not([hidden])) {
  padding-bottom: 24px !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-change-summary__list--compact {
  margin-bottom: 0 !important;
}

/* Platform Admin — Data Operations intro copy */
body #platformAdmin .ph-platform-data-ops > .ph-platform-panel__head p:not(.ph-platform-panel__kicker) {
  font-size: 13px !important;
  line-height: 1.45 !important;
}

body #platformAdmin .ph-platform-toolbar__menu-button {
  margin-right: 0 !important;
}

/* Platform Admin — topbar right edge alignment */
body #platformAdmin .ph-platform-toolbar {
  width: 100% !important;
}

body #platformAdmin .ph-platform-toolbar__meta {
  margin-left: auto !important;
  margin-right: 0 !important;
  padding-right: 0 !important;
  transform: translateX(16px) !important;
}

/* Platform Admin — topbar actions align with Coach/Admin controls */
body #platformAdmin .ph-platform-toolbar__meta {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin-left: auto !important;
}

/* Topbar chips: PRE_MATCH-style inactive chip */
body #platformAdmin .ph-platform-toolbar__meta > .ph-platform-admin-status {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  height: 28px !important;
  min-height: 28px !important;
  padding: 0 10px !important;

  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;

  font-family: var(--ph-font) !important;
  font-size: 12px !important;
  font-weight: 650 !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: none !important;

  box-shadow: none !important;
  transform: none !important;
}

/* Read-only: PRE_MATCH-style active chip */
body #platformAdmin .ph-platform-toolbar__meta > .ph-platform-admin-status--ok {
  border-color: rgba(255,255,255,.50) !important;
  background: rgba(255,255,255,.20) !important;
  color: rgba(255,255,255,.96) !important;
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.12),
    0 6px 18px rgba(0,0,0,.20) !important;
}

/* Beheer menu button: Coach Admin card-action feel */
body #platformAdmin .ph-platform-toolbar__menu-button {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;

  height: 34px !important;
  min-height: 34px !important;
  padding: 0 13px !important;

  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
  background: rgba(255,255,255,0.045) !important;
  color: rgba(255,255,255,0.92) !important;

  font-family: var(--ph-font) !important;
  font-size: 12px !important;
  font-weight: var(--ph-weight-semibold) !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;

  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05) !important;
  cursor: pointer !important;
}

body #platformAdmin .ph-platform-toolbar__menu-button:hover {
  border-color: rgba(255,255,255,0.24) !important;
  background: rgba(255,255,255,0.065) !important;
  color: rgba(255,255,255,0.96) !important;
}

body #platformAdmin .ph-platform-toolbar__menu[open] .ph-platform-toolbar__menu-button {
  border-color: rgba(255,255,255,0.28) !important;
  background: rgba(255,255,255,0.085) !important;
}

/* Keep the right edge tidy */
body #platformAdmin .ph-platform-toolbar__menu {
  margin-right: 0 !important;
}

/* Platform Admin — topbar menu icon + PRE_MATCH-style state chips */
body #platformAdmin .ph-platform-toolbar__menu-button {
  gap: 7px !important;
}

body #platformAdmin .ph-platform-toolbar__menu-icon {
  width: 14px !important;
  height: 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
}

body #platformAdmin .ph-platform-toolbar__menu-icon svg {
  width: 14px !important;
  height: 14px !important;
  display: block !important;
}

body #platformAdmin .ph-platform-toolbar__menu-icon path {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
}

body #platformAdmin .ph-platform-toolbar__menu-chev {
  display: inline-flex !important;
  align-items: center !important;
  line-height: 1 !important;
  transform: translateY(1px) !important;
}

/* Local: inactive PRE_MATCH chip feel */
body #platformAdmin .ph-platform-toolbar__meta > .ph-platform-admin-status:not(.ph-platform-admin-status--ok) {
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 10px !important;

  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;

  font-family: var(--ph-font) !important;
  font-size: 12px !important;
  font-weight: 650 !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: none !important;

  box-shadow: none !important;
}

/* Read-only: active “Onbekend” turquoise chip feel */
body #platformAdmin .ph-platform-toolbar__meta > .ph-platform-admin-status--ok {
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 10px !important;

  border-radius: 8px !important;
  border-color: rgba(45,226,230,.72) !important;
  background: rgba(45,226,230,.16) !important;
  color: rgba(220,250,255,.98) !important;

  font-family: var(--ph-font) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: none !important;

  box-shadow:
    0 0 0 1px rgba(45,226,230,.10),
    0 0 18px rgba(45,226,230,.22),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
}

/* Platform Admin — make Beheer match topbar chip height */
body #platformAdmin .ph-platform-toolbar__menu-button {
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;
  line-height: 1 !important;
}

body #platformAdmin .ph-platform-toolbar__menu-button svg,
body #platformAdmin .ph-platform-toolbar__menu-button .ph-platform-toolbar__menu-icon,
body #platformAdmin .ph-platform-toolbar__menu-button .ph-menu-icon {
  width: 13px !important;
  height: 13px !important;
}

/* Platform Admin — roomier Beheer menu popout */
body #platformAdmin .ph-platform-toolbar__menu .ph-menu-pop {
  min-width: 240px !important;
  padding: 12px !important;
  border-radius: 12px !important;
  right: 0 !important;
}

body #platformAdmin .ph-platform-toolbar__menu .ph-menu-label,
body #platformAdmin .ph-platform-toolbar__menu .ph-menu-note,
body #platformAdmin .ph-platform-toolbar__menu .ph-menu-pop a {
  white-space: nowrap !important;
}

body #platformAdmin .ph-platform-toolbar__menu .ph-menu-note {
  display: block !important;
  margin-top: 3px !important;
}

body #platformAdmin .ph-platform-toolbar__menu .ph-menu-divider {
  margin: 10px 0 !important;
}
/* Platform Admin — Demo hub buttons */
body #platformAdmin .ph-platform-demo-panel .ph-platform-panel__head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  column-gap: 16px !important;
  align-items: start !important;
}

body #platformAdmin .ph-platform-demo-panel__head-actions,
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
}

body #platformAdmin .ph-platform-demo-button {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  height: 28px !important;
  min-height: 28px !important;
  padding: 0 10px !important;

  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
  background: rgba(255,255,255,0.045) !important;
  color: rgba(255,255,255,0.88) !important;

  font-family: var(--ph-font) !important;
  font-size: 10px !important;
  font-weight: var(--ph-weight-semibold) !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04) !important;
  cursor: pointer !important;
}

body #platformAdmin .ph-platform-demo-button:hover {
  border-color: rgba(255,255,255,0.24) !important;
  background: rgba(255,255,255,0.065) !important;
  color: rgba(255,255,255,0.94) !important;
}

body #platformAdmin .ph-platform-demo-button--accent {
  border-color: rgba(45,226,230,0.34) !important;
  background: rgba(45,226,230,0.08) !important;
  color: rgba(220,250,255,0.96) !important;
}

body #platformAdmin .ph-platform-demo-button--disabled,
body #platformAdmin .ph-platform-demo-button:disabled {
  opacity: 1 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;

  border-color: rgba(255,255,255,0.10) !important;
  background: rgba(255,255,255,0.025) !important;
  color: rgba(210,224,242,0.48) !important;

  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}

body #platformAdmin .ph-platform-demo-button--disabled::before,
body #platformAdmin .ph-platform-demo-button--disabled::after,
body #platformAdmin .ph-platform-demo-button:disabled::before,
body #platformAdmin .ph-platform-demo-button:disabled::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item {
  grid-template-columns: minmax(0, 1fr) auto !important;
  column-gap: 16px !important;
  align-items: center !important;
}

@media (max-width: 720px) {
  body #platformAdmin .ph-platform-demo-panel .ph-platform-panel__head {
    grid-template-columns: 1fr !important;
    row-gap: 12px !important;
  }

  body #platformAdmin .ph-platform-demo-panel__head-actions {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item {
    grid-template-columns: 1fr !important;
    row-gap: 10px !important;
  }

  body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions {
    justify-content: flex-start !important;
  }
}

/* Platform Admin — Demo footer buttons right aligned */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer {
  justify-content: flex-end !important;
}

body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer-actions {
  margin-left: auto !important;
  justify-content: flex-end !important;
}

@media (max-width: 720px) {
  body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer {
    justify-content: flex-end !important;
  }

  body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer-actions {
    margin-left: auto !important;
    justify-content: flex-end !important;
  }
}

/* Platform Admin — Demo card final alignment polish */

/* Scenario Live buttons: tiny optical nudge */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions a.ph-platform-demo-button {
  transform: translateY(1px) !important;
}

/* Archived button: center against the full text block on the left */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions {
  align-self: center !important;
}

body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions .ph-platform-demo-button--disabled,
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions .ph-platform-demo-button:disabled {
  align-self: center !important;
  transform: translateY(8px) !important;
}

/* Demo card subtitle: same size as Data card intro copy */
body #platformAdmin .ph-platform-demo-panel .ph-platform-panel__head p:not(.ph-platform-panel__kicker) {
  font-size: 13px !important;
  line-height: 1.45 !important;
}

/* Scenario sub copy: same calm body style as Data card copy */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__info span {
  color: rgba(210,224,242,0.72) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

/* Platform Admin — final panel/footer rhythm */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer-actions {
  gap: 10px !important;
}

/* Platform Admin — card bottom rhythm */
body #platformAdmin .ph-platform-panel:has(.ph-platform-panel__foot) {
  padding-bottom: 16px !important;
}

body #platformAdmin .ph-platform-panel:not(:has(.ph-platform-panel__foot)) {
  padding-bottom: 8px !important;
}

/* Als een card een footer heeft: footer strak laten eindigen */
body #platformAdmin .ph-platform-panel__foot {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
/* Platform Admin — unify row/header title styling */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__info strong,
body #platformAdmin .ph-platform-health-panel .ph-platform-health-row dt,
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__copy > .ph-platform-data-section__eyebrow,
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > .ph-platform-data-section__eyebrow {
  color: rgba(255,255,255,0.94) !important;
  font-family: var(--ph-font) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
}

/* Keep Data step headers aligned with their action buttons */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section__copy > .ph-platform-data-section__eyebrow,
body #platformAdmin .ph-platform-data-ops .ph-platform-import__copy > .ph-platform-data-section__eyebrow {
  min-height: 28px !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
}

/* Platform Admin — Health values should read like regular text */
body #platformAdmin .ph-platform-health-panel .ph-platform-health-row dd,
body #platformAdmin .ph-platform-health-panel .ph-platform-health-row dd[data-state="ok"],
body #platformAdmin .ph-platform-health-panel .ph-platform-health-row dd[data-state="warn"] {
  font-weight: 400 !important;
}

/* Platform Admin — final disabled button optical alignment */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions .ph-platform-demo-button--disabled,
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions .ph-platform-demo-button:disabled {
  transform: translateY(6px) !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore .ph-platform-data-section__actions {
  transform: translateY(6px) !important;
}

/* Platform Admin — Demo card footer divider optical alignment */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer {
  margin-top: 8px !important;
}

/* Platform Admin — make environment chip as visible as Read-only */
body #platformAdmin .ph-platform-toolbar__meta > .ph-platform-admin-status {
  border-color: rgba(45,226,230,.72) !important;
  background: rgba(45,226,230,.16) !important;
  color: rgba(220,250,255,.98) !important;
  box-shadow:
    0 0 0 1px rgba(45,226,230,.10),
    0 0 18px rgba(45,226,230,.22),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
}

/* Platform Admin — Demo footer button spacing */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer-actions {
  gap: 14px !important;
}

/* Platform Admin — environment chip uses active status styling too */
body #platformAdmin .ph-platform-toolbar__meta > .ph-platform-admin-status:not(.ph-platform-admin-status--ok) {
  border-color: rgba(45,226,230,.72) !important;
  background: rgba(45,226,230,.16) !important;
  color: rgba(220,250,255,.98) !important;
  box-shadow:
    0 0 0 1px rgba(45,226,230,.10),
    0 0 18px rgba(45,226,230,.22),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
}

/* Platform Admin — Demo footer button spacing, robust */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer,
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer-actions {
  column-gap: 0 !important;
  gap: 0 !important;
}

body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-panel__footer .ph-platform-demo-button + .ph-platform-demo-button {
  margin-left: 8px !important;
}
/* =========================================================
   Players vNext — summary/default preference states
   ========================================================= */
#players .phds-player-starter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-1px);
  color: rgba(255, 200, 0, 0.95);
  font-size: 14px;
  line-height: 1;
  text-shadow: 0 0 12px rgba(255, 200, 0, 0.22);
}

#players .phds-player-preferences-panel {
  min-width: 0;
}

#players .phds-player-preferences-notice {
  display: grid;
  align-items: center;
  margin-top: 16px;
  grid-template-columns: 22px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;

  margin-bottom: 0;
  padding: 10px 10px;

  border-radius: 10px;
  border: 1px solid rgba(45, 226, 230, 0.20);
  background:
    linear-gradient(
      180deg,
      rgba(45, 226, 230, 0.075),
      rgba(45, 226, 230, 0.035)
    );

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.025),
    0 0 18px rgba(45, 226, 230, 0.055);
}

#players .phds-player-preferences-notice__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 30px;
  color: #2dd4e8;
  flex: 0 0 auto;
}

#players .phds-player-preferences-notice__icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

#players .phds-player-preferences-notice__title,
#players .phds-player-preferences-edit-title {
  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.18;
  color: var(--ph-card-body-text);
  margin: 0 0 0 6px;
}

#players .phds-player-preferences-notice__text,
#players .phds-player-preferences-edit-copy {
  margin-top: 3px;
  font-size: 13px;
  font-weight: var(--ph-weight-regular);
  line-height: 1.28;
  color: var(--ph-card-body-text-muted);
  margin: 0 0 0 6px;
}

#players .phds-player-preferences-edit-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: start;

  margin-bottom: 16px;
}

#players .phds-player-preferences-edit-head .phds-meta-action {
  align-self: center;
}

#players .phds-player-summary {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

#players .phds-player-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  overflow: hidden;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.030),
      rgba(255,255,255,0.016)
    );
}

#players .phds-player-summary-item {
  min-width: 0;
  padding: 12px 12px 11px;
  border-top: 1px solid rgba(255,255,255,0.07);
}

#players .phds-player-summary-item:nth-child(-n + 2) {
  border-top: 0;
}

#players .phds-player-summary-item:nth-child(odd) {
  border-right: 1px solid rgba(255,255,255,0.07);
}

#players .phds-player-summary-item--wide {
  grid-column: 1 / -1;
  border-right: 0 !important;
}

#players .phds-player-summary-label {
  display: flex;
  align-items: center;
  gap: 6px;

  margin-bottom: 4px;

  font-size: 11px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;
  color: var(--ph-card-body-text-muted);
}

#players .phds-player-summary-value {
  min-width: 0;

  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.22;
  color: var(--ph-card-body-text);

  overflow-wrap: anywhere;
}

#players .phds-player-summary-action {
  width: 100%;
  min-height: 40px;
  border-radius: 10px;
}

@media (max-width: 360px) {
  #players .phds-player-summary-grid {
    grid-template-columns: 1fr;
  }

  #players .phds-player-summary-item,
  #players .phds-player-summary-item:nth-child(-n + 2) {
    border-top: 1px solid rgba(255,255,255,0.07);
    border-right: 0 !important;
  }

  #players .phds-player-summary-item:first-child {
    border-top: 0;
  }
}


/* =========================================================
   Players vNext — summary preferences row tweaks
   ========================================================= */

#players .phds-player-summary-item--preferences {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

#players .phds-player-summary-preferences-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

#players .phds-player-summary-preferences-head .phds-player-summary-label {
  margin-bottom: 0;
}

#players .phds-player-summary-edit {
  min-height: 26px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 10px;
  letter-spacing: .25px;
}

#players .phds-player-summary-value--lines {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

#players .phds-player-summary-line {
  min-width: 0;
}


/* =========================================================
   Players vNext — preferences summary two-column layout
   Keep the edit button out of the label/value flow
   ========================================================= */

#players .phds-player-summary-item--preferences {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: start;
}

#players .phds-player-summary-preferences-head {
  display: contents;
}

#players .phds-player-summary-item--preferences .phds-player-summary-label {
  grid-column: 1;
  margin-bottom: 5px;
  line-height: 1.15;
}

#players .phds-player-summary-value--lines {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

#players .phds-player-summary-edit {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;

  min-height: 26px;
  padding: 0 10px;
  border-radius: 8px;

  font-size: 10px;
  letter-spacing: .25px;
  line-height: 1;
}

#players .phds-player-summary-line {
  min-width: 0;
  line-height: 1.25;
}


/* =========================================================
   Players vNext — keep preferences edit button top-aligned
   ========================================================= */

#players .phds-player-summary-edit {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  justify-self: end;

  margin-top: 0;
}


/* =========================================================
   Players vNext — preferences summary stable two-column layout
   Button must not affect label/value spacing
   ========================================================= */

#players .phds-player-summary-item--preferences {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: start;
}

/* Turn the generated wrapper into the left content column */
#players .phds-player-summary-item--preferences .phds-player-summary-preferences-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

/* Label and values stay in the same left stack */
#players .phds-player-summary-item--preferences .phds-player-summary-label {
  margin: 0 0 5px;
  line-height: 1.15;
}

#players .phds-player-summary-item--preferences .phds-player-summary-value--lines {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

/* Move the button out of the text flow and pin it top-right */
#players .phds-player-summary-item--preferences .phds-player-summary-edit {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
  justify-self: end;

  margin: 0;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 8px;

  font-size: 10px;
  letter-spacing: .25px;
  line-height: 1;
}

#players .phds-player-summary-item--preferences .phds-player-summary-line {
  min-width: 0;
  line-height: 1.25;
}

/* =========================================================
   Players vNext — final stable preferences edit placement
   Bewerk is visually top-right, but not part of text flow
   ========================================================= */

#players .phds-player-summary-item--preferences {
  position: relative !important;

  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;

  padding-right: 76px !important;
}

#players .phds-player-summary-item--preferences .phds-player-summary-preferences-head {
  display: block !important;
  min-width: 0 !important;
}

#players .phds-player-summary-item--preferences .phds-player-summary-label {
  display: block !important;
  margin: 0 0 5px !important;
  line-height: 1.15 !important;
}

#players .phds-player-summary-item--preferences .phds-player-summary-value--lines {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;

  margin: 0 !important;
  min-width: 0 !important;
}

#players .phds-player-summary-item--preferences .phds-player-summary-edit {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;

  margin: 0 !important;

  min-height: 26px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;

  font-size: 10px !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
}

#players .phds-player-summary-item--preferences .phds-player-summary-line {
  min-width: 0 !important;
  line-height: 1.25 !important;
}


/* =========================================================
   Players vNext — soften absolute edit button placement
   Keep it out of text flow, but not slammed into the corner
   ========================================================= */

#players .phds-player-summary-item--preferences {
  padding-right: 92px !important;
}

#players .phds-player-summary-item--preferences .phds-player-summary-edit {
  top: 12px !important;
  right: 12px !important;
}


/* =========================================================
   Players vNext — equal breathing room above Team Hub divider
   Match the spacing between the top divider and summary block
   ========================================================= */

#players .phds-teamhub-access-summary {
  margin-top: 16px !important;
}



/* =========================================================
   Players vNext — Team Hub access detail polish
   Coach-facing contact rows, less technical wording
   ========================================================= */

#players .phds-teamhub-access-detail-row--contact,
#players .phds-teamhub-access-detail-row--invite {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 14px;
  align-items: start;

  padding: 12px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

#players .phds-teamhub-access-detail-row--contact:first-child,
#players .phds-teamhub-access-detail-row--invite:first-child {
  border-top: 0;
  padding-top: 0;
}

#players .phds-teamhub-access-detail-copy {
  min-width: 0;

  display: flex;
  flex-direction: column;
  gap: 3px;
}

#players .phds-teamhub-access-detail-title {
  color: var(--ph-card-body-text);
  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-bold);
  line-height: 1.2;
}

#players .phds-teamhub-access-detail-relation {
  color: var(--ph-card-body-text-muted);
  font-weight: var(--ph-weight-semibold);
}

#players .phds-teamhub-access-detail-access {
  color: var(--ph-card-body-text);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
}

#players .phds-teamhub-access-detail-email {
  color: var(--ph-card-body-text-muted);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-medium);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

#players .phds-teamhub-access-detail-actions {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
}

#players .phds-teamhub-access-detail-revoke {
  min-height: 26px;
  padding: 0 10px;
  border-radius: 8px;

  font-size: 10px;
  letter-spacing: .25px;

  color: var(--ph-danger-text);
  border-color: rgba(255,71,87,0.36);
  background:
    linear-gradient(
      180deg,
      rgba(255,71,87,0.12),
      rgba(255,71,87,0.06)
    );
}

#players .phds-teamhub-access-detail-revoke:hover {
  border-color: rgba(255,71,87,0.52);
  background:
    linear-gradient(
      180deg,
      rgba(255,71,87,0.17),
      rgba(255,71,87,0.085)
    );
}

@media (max-width: 360px) {
  #players .phds-teamhub-access-detail-row--contact,
  #players .phds-teamhub-access-detail-row--invite {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 9px;
  }

  #players .phds-teamhub-access-detail-actions {
    justify-content: flex-start;
  }
}



/* =========================================================
   Players vNext — Team Hub revoke button calm styling
   Match Bewerk button; no danger styling by default
   ========================================================= */

#players .phds-teamhub-access-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#players .phds-teamhub-access-detail-revoke {
  min-height: 26px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;

  font-size: 10px !important;
  letter-spacing: .25px !important;

  color: rgba(255,255,255,.92) !important;
  border-color: rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.06) !important;
  box-shadow: none !important;
}

#players .phds-teamhub-access-detail-revoke:hover {
  color: rgba(255,255,255,.96) !important;
  border-color: rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.10) !important;
}


/* =========================================================
   Players vNext — preferences editor intro two-column layout
   Only the intro/copy + Klaar action; editor rows stay untouched
   ========================================================= */

#players .phds-player-preferences-editor:has([data-player-preferences-close]) > :first-child {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  column-gap: 12px !important;
  align-items: start !important;
}

/* Left copy column */
#players .phds-player-preferences-editor:has([data-player-preferences-close]) > :first-child > :not([data-player-preferences-close]) {
  grid-column: 1 !important;
  min-width: 0 !important;
}

/* Right button column */
#players [data-player-preferences-close] {
  grid-column: 2 !important;
  align-self: start !important;
  justify-self: end !important;

  min-height: 26px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;

  font-size: 10px !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;

  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.06) !important;
  box-shadow: none !important;
}

#players [data-player-preferences-close]:hover {
  color: rgba(255,255,255,.96) !important;
  border-color: rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.10) !important;
}


/* =========================================================
   Players vNext — make Klaar match Bewerk exactly
   ========================================================= */

#players .phds-player-preferences-editor [data-player-preferences-close] {
  min-height: 26px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;

  font-family: var(--ph-font) !important;
  font-size: 10px !important;
  font-weight: 650 !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;

  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.06) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

#players .phds-player-preferences-editor [data-player-preferences-close]:hover {
  color: rgba(255,255,255,.96) !important;
  border-color: rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.10) !important;
}


/* =========================================================
   Players vNext — Klaar button uses same visual language as Bewerk
   Class is now aligned in JS; this only locks geometry
   ========================================================= */

#players .phds-player-preferences-done {
  min-height: 26px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;

  font-size: 10px !important;
  font-weight: 650 !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;

  opacity: 1 !important;
}



/* =========================================================
   Coach Hub context dock v1
   Primary coach routes; command button remains in header
   ========================================================= */

body:has(.ph-coach-dock) .ph-admin-main {
  padding-bottom: calc(104px + env(safe-area-inset-bottom)) !important;
}

.ph-coach-dock {
  position: fixed;
  left: 50%;
  bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 3900;

  width: min(calc(100vw - 28px), 392px);
  box-sizing: border-box;

  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;

  padding: 8px;

  border-radius: 20px;
  border: 1px solid rgba(150,185,235,0.20);

  background:
    radial-gradient(
      92% 150% at 50% -54%,
      rgba(45,226,230,0.18),
      rgba(45,226,230,0.04) 38%,
      rgba(45,226,230,0.00) 66%
    ),
    linear-gradient(
      180deg,
      rgba(13,31,52,0.96),
      rgba(5,15,30,0.985)
    );

  box-shadow:
    0 20px 46px rgba(0,0,0,0.46),
    0 0 0 1px rgba(45,226,230,0.06),
    inset 0 1px 0 rgba(255,255,255,0.14),
    inset 0 -1px 0 rgba(255,255,255,0.035);

  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);

  transform: translateX(-50%);
}

.ph-coach-dock__item {
  appearance: none;
  -webkit-appearance: none;

  min-width: 0;
  min-height: 62px;
  padding: 8px 4px 7px;
  box-sizing: border-box;

  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;

  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;

  color: rgba(248,250,252,0.72);
  text-decoration: none;

  font: inherit;
  cursor: pointer;
  user-select: none;

  transition:
    color 140ms ease,
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

.ph-coach-dock__item:active {
  transform: translateY(1px);
}

.ph-coach-dock__icon {
  width: 23px;
  height: 23px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: currentColor;
}

.ph-coach-dock__icon svg {
  width: 23px;
  height: 23px;
  display: block;

  fill: none;
  stroke: currentColor;
  stroke-width: 2.05;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.ph-coach-dock__label {
  max-width: 100%;

  font-size: 11px;
  font-weight: 760;
  line-height: 1.05;
  letter-spacing: .1px;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ph-coach-dock__item:hover {
  color: rgba(248,250,252,0.92);
  background: rgba(255,255,255,0.045);
  border-color: rgba(255,255,255,0.08);
}

.ph-coach-dock__item.is-active {
  color: var(--ph-accent);

  border-color: rgba(45,226,230,0.24);
  background:
    radial-gradient(
      120% 140% at 50% -30%,
      rgba(45,226,230,0.22),
      rgba(45,226,230,0.08) 42%,
      rgba(45,226,230,0.03) 100%
    );

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.055),
    0 0 18px rgba(45,226,230,0.12);
}

.ph-coach-dock__item.is-active .ph-coach-dock__icon {
  filter: drop-shadow(0 0 8px rgba(45,226,230,0.38));
}

.ph-coach-dock__item--disabled {
  opacity: .46;
  cursor: default;
}

.ph-coach-dock__item--disabled:hover {
  color: rgba(248,250,252,0.72);
  background: transparent;
  border-color: transparent;
}

@media (max-width: 360px) {
  .ph-coach-dock {
    width: min(calc(100vw - 20px), 392px);
    padding: 7px;
    border-radius: 18px;
  }

  .ph-coach-dock__item {
    min-height: 58px;
    border-radius: 13px;
  }

  .ph-coach-dock__icon,
  .ph-coach-dock__icon svg {
    width: 21px;
    height: 21px;
  }

  .ph-coach-dock__label {
    font-size: 10px;
  }
}

/* Do not show global coach navigation during match-mode control surfaces. */
body.ph-prematch-mode .ph-coach-dock,
body.ph-running-mode .ph-coach-dock,
body.ph-break-mode .ph-coach-dock,
body.ph-finished-mode .ph-coach-dock {
  display: none !important;
}


/* =========================================================
   Coach Hub context dock — mockup polish
   Match the approved dock concept more closely
   ========================================================= */

.ph-coach-dock {
  width: min(calc(100vw - 28px), 402px) !important;
  bottom: calc(12px + env(safe-area-inset-bottom)) !important;

  gap: 4px !important;
  padding: 8px 8px 9px !important;

  border-radius: 22px !important;
  border: 1px solid rgba(148, 182, 227, 0.18) !important;

  background:
    radial-gradient(
      100% 140% at 50% -55%,
      rgba(45,226,230,0.14),
      rgba(45,226,230,0.035) 36%,
      rgba(45,226,230,0.00) 68%
    ),
    linear-gradient(
      180deg,
      rgba(13,30,51,0.965),
      rgba(6,16,30,0.985)
    ) !important;

  box-shadow:
    0 24px 56px rgba(0,0,0,0.46),
    0 0 0 1px rgba(45,226,230,0.045),
    inset 0 1px 0 rgba(255,255,255,0.10),
    inset 0 -1px 0 rgba(255,255,255,0.03) !important;

  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
}

.ph-coach-dock__item {
  min-height: 68px !important;
  padding: 8px 4px 8px !important;

  gap: 5px !important;

  border-radius: 16px !important;
  border: 1px solid transparent !important;
  background: transparent !important;

  color: rgba(244,248,252,0.82) !important;

  transition:
    color 140ms ease,
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease !important;
}

.ph-coach-dock__icon {
  width: 24px !important;
  height: 24px !important;
}

.ph-coach-dock__icon svg {
  width: 24px !important;
  height: 24px !important;
  stroke-width: 2.05 !important;
}

.ph-coach-dock__label {
  font-size: 11px !important;
  font-weight: 760 !important;
  line-height: 1.05 !important;
  letter-spacing: .1px !important;
}

.ph-coach-dock__item:hover {
  color: rgba(248,250,252,0.94) !important;
  background: rgba(255,255,255,0.04) !important;
  border-color: rgba(255,255,255,0.08) !important;
}

.ph-coach-dock__item.is-active {
  color: var(--ph-accent) !important;

  border-color: rgba(45,226,230,0.26) !important;
  background:
    radial-gradient(
      120% 120% at 50% -28%,
      rgba(45,226,230,0.20),
      rgba(45,226,230,0.08) 42%,
      rgba(45,226,230,0.025) 100%
    ),
    linear-gradient(
      180deg,
      rgba(13,39,58,0.92),
      rgba(9,27,45,0.90)
    ) !important;

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.055),
    0 0 0 1px rgba(45,226,230,0.12),
    0 0 20px rgba(45,226,230,0.15) !important;
}

.ph-coach-dock__item.is-active .ph-coach-dock__icon {
  filter: drop-shadow(0 0 8px rgba(45,226,230,0.34)) !important;
}

.ph-coach-dock__item--disabled {
  opacity: 1 !important;
  cursor: default !important;
}

.ph-coach-dock__item--disabled:hover {
  color: rgba(244,248,252,0.82) !important;
  background: transparent !important;
  border-color: transparent !important;
}

.ph-coach-dock__item--home {
  position: relative !important;
}

.ph-coach-dock__item--home::after {
  content: "" !important;
  position: absolute !important;

  top: 9px !important;
  right: 18px !important;

  width: 8px !important;
  height: 8px !important;
  border-radius: 999px !important;

  background: #ff4859 !important;
  box-shadow:
    0 0 0 2px rgba(10,22,38,0.96),
    0 0 10px rgba(255,72,89,0.24) !important;
}

@media (max-width: 360px) {
  .ph-coach-dock {
    width: min(calc(100vw - 20px), 402px) !important;
    padding: 7px 7px 8px !important;
    border-radius: 20px !important;
  }

  .ph-coach-dock__item {
    min-height: 63px !important;
    border-radius: 15px !important;
  }

  .ph-coach-dock__icon,
  .ph-coach-dock__icon svg {
    width: 22px !important;
    height: 22px !important;
  }

  .ph-coach-dock__label {
    font-size: 10px !important;
  }
}


/* =========================================================
   Coach Hub context dock — compact mockup alignment
   Active state = color only, no active tile
   ========================================================= */

.ph-coach-dock {
  width: min(calc(100vw - 28px), 402px) !important;
  bottom: calc(10px + env(safe-area-inset-bottom)) !important;

  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 2px !important;

  padding: 6px 8px 7px !important;

  border-radius: 18px !important;
  border: 1px solid rgba(148, 182, 227, 0.16) !important;

  background:
    radial-gradient(
      100% 140% at 50% -55%,
      rgba(45,226,230,0.10),
      rgba(45,226,230,0.025) 38%,
      rgba(45,226,230,0.00) 68%
    ),
    linear-gradient(
      180deg,
      rgba(12,28,48,0.965),
      rgba(5,15,30,0.985)
    ) !important;

  box-shadow:
    0 18px 42px rgba(0,0,0,0.42),
    0 0 0 1px rgba(45,226,230,0.035),
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -1px 0 rgba(255,255,255,0.025) !important;
}

.ph-coach-dock__item {
  min-height: 48px !important;
  padding: 4px 2px 3px !important;
  gap: 2px !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;

  color: rgba(244,248,252,0.72) !important;
}

.ph-coach-dock__item:hover {
  color: rgba(248,250,252,0.92) !important;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.ph-coach-dock__item.is-active {
  color: var(--ph-accent) !important;

  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ph-coach-dock__item.is-active .ph-coach-dock__icon {
  filter: drop-shadow(0 0 7px rgba(45,226,230,0.34)) !important;
}

.ph-coach-dock__item.is-active .ph-coach-dock__label {
  color: var(--ph-accent) !important;
  text-shadow: 0 0 9px rgba(45,226,230,0.22) !important;
}

.ph-coach-dock__icon {
  width: 20px !important;
  height: 20px !important;
}

.ph-coach-dock__icon svg {
  width: 20px !important;
  height: 20px !important;

  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.ph-coach-dock__label {
  font-size: 10px !important;
  font-weight: 760 !important;
  line-height: 1 !important;
  letter-spacing: .05px !important;
}

.ph-coach-dock__item--disabled {
  opacity: 1 !important;
  color: rgba(244,248,252,0.48) !important;
}

.ph-coach-dock__item--disabled:hover {
  color: rgba(244,248,252,0.48) !important;
}

.ph-coach-dock__item--home::after {
  top: 5px !important;
  right: 19px !important;

  width: 7px !important;
  height: 7px !important;

  background: #ff4859 !important;
  box-shadow:
    0 0 0 2px rgba(7,18,34,0.98),
    0 0 8px rgba(255,72,89,0.25) !important;
}

@media (max-width: 360px) {
  .ph-coach-dock {
    width: min(calc(100vw - 20px), 402px) !important;
    padding: 6px 7px 7px !important;
    border-radius: 17px !important;
  }

  .ph-coach-dock__item {
    min-height: 46px !important;
  }

  .ph-coach-dock__icon,
  .ph-coach-dock__icon svg {
    width: 19px !important;
    height: 19px !important;
  }

  .ph-coach-dock__label {
    font-size: 9.5px !important;
  }
}



/* =========================================================
   Coach Hub dock — mockup alignment pass
   Equal icon alignment, equal label baseline, compact height,
   active state by color only
   ========================================================= */

.ph-coach-dock {
  width: min(calc(100vw - 28px), 398px) !important;
  bottom: calc(10px + env(safe-area-inset-bottom)) !important;

  gap: 0 !important;
  padding: 6px 8px 7px !important;

  border-radius: 18px !important;
  border: 1px solid rgba(148, 182, 227, 0.16) !important;

  background:
    radial-gradient(
      100% 140% at 50% -55%,
      rgba(45,226,230,0.10),
      rgba(45,226,230,0.022) 38%,
      rgba(45,226,230,0.00) 68%
    ),
    linear-gradient(
      180deg,
      rgba(12,28,48,0.965),
      rgba(5,15,30,0.985)
    ) !important;

  box-shadow:
    0 18px 42px rgba(0,0,0,0.42),
    0 0 0 1px rgba(45,226,230,0.035),
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -1px 0 rgba(255,255,255,0.025) !important;
}

.ph-coach-dock__item {
  min-height: 46px !important;
  padding: 3px 2px 2px !important;

  display: grid !important;
  grid-template-rows: 20px 12px !important;
  align-content: center !important;
  justify-items: center !important;
  row-gap: 4px !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;

  color: rgba(244,248,252,0.74) !important;
}

.ph-coach-dock__item:hover {
  color: rgba(248,250,252,0.92) !important;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.ph-coach-dock__item.is-active {
  color: var(--ph-accent) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ph-coach-dock__item.is-active .ph-coach-dock__icon {
  filter: drop-shadow(0 0 7px rgba(45,226,230,0.30)) !important;
}

.ph-coach-dock__item.is-active .ph-coach-dock__label {
  color: var(--ph-accent) !important;
  text-shadow: 0 0 9px rgba(45,226,230,0.18) !important;
}

.ph-coach-dock__icon {
  width: 20px !important;
  height: 20px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  align-self: center !important;
  justify-self: center !important;
}

.ph-coach-dock__icon svg {
  width: 20px !important;
  height: 20px !important;

  display: block !important;

  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vector-effect: non-scaling-stroke !important;
}

.ph-coach-dock__label {
  min-height: 12px !important;

  display: inline-flex !important;
  align-items: flex-start !important;
  justify-content: center !important;

  font-size: 10px !important;
  font-weight: 760 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
}

.ph-coach-dock__item--disabled {
  opacity: 1 !important;
  color: rgba(244,248,252,0.46) !important;
}

.ph-coach-dock__item--disabled:hover {
  color: rgba(244,248,252,0.46) !important;
}

.ph-coach-dock__item--home {
  position: relative !important;
}

.ph-coach-dock__item--home::after {
  content: "" !important;
  position: absolute !important;

  top: 4px !important;
  right: 17px !important;

  width: 7px !important;
  height: 7px !important;
  border-radius: 999px !important;

  background: #ff4859 !important;
  box-shadow:
    0 0 0 2px rgba(7,18,34,0.98),
    0 0 8px rgba(255,72,89,0.22) !important;
}

@media (max-width: 360px) {
  .ph-coach-dock {
    width: min(calc(100vw - 20px), 398px) !important;
    padding: 6px 7px 7px !important;
  }

  .ph-coach-dock__item {
    min-height: 44px !important;
    grid-template-rows: 19px 11px !important;
  }

  .ph-coach-dock__icon,
  .ph-coach-dock__icon svg {
    width: 19px !important;
    height: 19px !important;
  }

  .ph-coach-dock__label {
    font-size: 9.5px !important;
    min-height: 11px !important;
  }
}


/* =========================================================
   Coach Hub dock — fixed icon row + fixed label baseline
   ========================================================= */

.ph-coach-dock > .ph-coach-dock__item {
  min-height: 38px !important;
  height: 38px !important;
  padding: 4px 2px 3px !important;

  display: grid !important;
  grid-template-rows: 23px 12px !important;
  row-gap: 3px !important;

  align-content: center !important;
  justify-items: center !important;
}

.ph-coach-dock > .ph-coach-dock__item .ph-coach-dock__icon {
  grid-row: 1 !important;

  width: 22px !important;
  height: 23px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  align-self: end !important;
  justify-self: center !important;
}

.ph-coach-dock > .ph-coach-dock__item .ph-coach-dock__icon svg {
  width: 20px !important;
  height: 20px !important;

  display: block !important;
}

.ph-coach-dock > .ph-coach-dock__item .ph-coach-dock__label {
  grid-row: 2 !important;

  height: 12px !important;
  min-height: 12px !important;

  display: block !important;

  line-height: 12px !important;
  font-size: 10px !important;

  align-self: start !important;
  justify-self: center !important;

  white-space: nowrap !important;
}


/* =========================================================
   Coach Hub dock — lower centered icon+label stack
   Keep fixed rows, move the whole stack down slightly
   ========================================================= */

.ph-coach-dock > .ph-coach-dock__item {
  transform: translateY(4px) !important;
transition:
    color 140ms ease,
    opacity 140ms ease,
    transform 120ms cubic-bezier(.2, .8, .2, 1);
}

.ph-coach-dock > .ph-coach-dock__item:active {
  transform: translateY(4.35px) scale(0.992) !important;
}


/* =========================================================
   Coach Hub dock — hide temporary Home notification dot
   ========================================================= */

.ph-coach-dock__item--home::after {
  display: none !important;
}



/* =========================================================
   Coach Hub dock — align border language with context bug
   ========================================================= */

.ph-coach-dock {
  position: fixed !important;
  overflow: visible !important;
  isolation: isolate !important;

  border: 1px solid rgba(139, 174, 220, 0.34) !important;

  box-shadow:
    0 -10px 30px rgba(0,0,0,0.18),
    0 0 0 1px rgba(45,226,230,0.055),
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 -1px 0 rgba(255,255,255,0.045) !important;
}

.ph-coach-dock::before {
  content: "" !important;
  position: absolute !important;
  left: 18px !important;
  right: 18px !important;
  top: 0 !important;
  height: 1px !important;

  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,0.18),
    rgba(45,226,230,0.18),
    rgba(255,255,255,0.18),
    transparent
  ) !important;

  pointer-events: none !important;
  z-index: 2 !important;
}

.ph-coach-dock::after {
  content: none !important;
}

.ph-coach-dock-veil {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;

  /*
   * Keep the veil clipped to the dock/bottom zone.
   * This avoids a visible blur band above the floating dock.
   */
  height: calc(72px + env(safe-area-inset-bottom)) !important;

  pointer-events: none !important;
  z-index: 88 !important;
  display: none !important;

  background:
    linear-gradient(
      180deg,
      rgba(5,15,30,0.16) 0%,
      rgba(5,15,30,0.42) 34%,
      rgba(5,15,30,0.82) 78%,
      rgba(5,15,30,0.96) 100%
    ) !important;

  backdrop-filter: blur(10px) saturate(116%) !important;
  -webkit-backdrop-filter: blur(10px) saturate(116%) !important;
}

/* =========================================================
   Players vNext — default starter Tabler filled star
   ========================================================= */

#players .phds-player-starter {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 14px !important;
  height: 14px !important;
  margin-left: 2px !important;

  color: #FACC15 !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
}

#players .phds-player-starter svg {
  width: 13px !important;
  height: 13px !important;
  display: block !important;
  fill: currentColor !important;
  stroke: none !important;
}

#players .phds-player-starter svg path {
  fill: currentColor !important;
  stroke: none !important;
}

/* =========================================================
   Coach Hub context bug — compact club/team identity
   ========================================================= */

.context-bug--admin.ph-coach-context {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 12px !important;

  min-height: 66px;
  padding: 12px 14px !important;
}

.context-bug--admin.ph-coach-context .ph-coach-context__identity {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.context-bug--admin.ph-coach-context .ph-coach-context__logo-shell {
  justify-self: center;
}

.context-bug--admin.ph-coach-context .ph-coach-context__logo-shell {
  width: 38px;
  height: 38px;

  display: grid;
  place-items: center;

  border: 1px solid rgba(218,235,255,0.18);
  border-radius: 13px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02)),
    rgba(2,6,23,0.30);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 8px 18px rgba(0,0,0,0.18);

  overflow: hidden;
}

.context-bug--admin.ph-coach-context .ph-coach-context__logo-shell:not(.ph-coach-context__logo-shell--initials) {
  width: 48px;
  height: 48px;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.context-bug--admin.ph-coach-context .ph-coach-context__logo {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;

  object-fit: contain;
  box-sizing: border-box;
}

.context-bug--admin.ph-coach-context .ph-coach-context__logo-initials {
  color: var(--ph-text-strong);
  font-size: 12px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: 0.02em;
}

.context-bug--admin.ph-coach-context .ph-coach-context__copy {
  min-width: 0;
  display: grid;
  gap: 4px;
  line-height: 1.1;
}

.context-bug--admin.ph-coach-context .ph-coach-context__title {
  min-width: 0;
  margin: 0;

  color: var(--ph-text);
  font-size: 16px;
  font-weight: 850;
  line-height: 1.08;
  letter-spacing: -0.01em;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.context-bug--admin.ph-coach-context .ph-coach-context__season {
  margin: 0;

  color: var(--ph-text-soft);
  font-size: 12px;
  font-weight: 520;
  line-height: 1.1;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.context-bug--admin.ph-coach-context .ph-coach-context__actions {
  min-width: auto;
  justify-self: end;
  align-self: center;
}

.context-bug--admin.ph-coach-context .ph-menu {
  display: flex;
  justify-content: flex-end;
}

.context-bug--admin.ph-coach-context .ph-badge--menu {
  min-height: 32px;
  padding-inline: 10px 12px;
}

@media (max-width: 360px) {
  .context-bug--admin.ph-coach-context {
    gap: 10px !important;
    padding: 11px 12px !important;
  }

  .context-bug--admin.ph-coach-context .ph-coach-context__identity {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
  }

  .context-bug--admin.ph-coach-context .ph-coach-context__logo-shell {
    width: 34px;
    height: 34px;
    border-radius: 12px;
  }

  .context-bug--admin.ph-coach-context .ph-coach-context__logo-shell:not(.ph-coach-context__logo-shell--initials) {
    width: 38px;
    height: 38px;
  }

  .context-bug--admin.ph-coach-context .ph-coach-context__title {
    font-size: 15px;
  }
}

/* Coach Hub Trainingen v1 */
#coachTrainings.phds-card-list {
  width: calc(100% + 24px);
  max-width: calc(100% + 24px);
  margin-left: -12px;
  margin-right: -12px;
  padding-inline: 0;
}

#coachTrainings [data-training-root] {
  display: grid;
  gap: var(--ph-card-stack-gap) !important;
}

#coachTrainings [data-training-root] > .phds-card {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

#coachTrainings .phds-card {
  width: 100%;
  margin-inline: 0;
}

#coachTrainings .phds-card__body {
  padding-top: 0;
}

#coachTrainings .ph-training-card-title {
  display: inline-flex;
  align-items: baseline;
}

#coachTrainings .ph-training-card-title__num {
  margin-left: 0.32em;
}

/* Date/counters reuse Team Hub classes; layout is locked because Team Hub rich-card CSS also targets these classes. */
#coachTrainings .ph-training-card-row {
  display: grid !important;
  grid-template-columns: 64px minmax(0, 1fr) !important;
  column-gap: 14px !important;
  align-items: start !important;
}

#coachTrainings .ph-training-card-row > .phds-teamhub-next-date {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 72px !important;
  padding-top: 1px !important;
  padding-right: 12px !important;
  border-right: 1px solid rgba(255,255,255,0.10) !important;
  align-self: start !important;
  justify-self: stretch !important;
  justify-content: flex-start !important;
}

#coachTrainings .ph-training-card-main {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: grid !important;
  gap: 12px !important;
  min-width: 0 !important;
  align-self: start !important;
  align-content: start !important;
}

#coachTrainings .ph-training-line {
  display: grid !important;
  grid-template-columns: minmax(92px, 0.48fr) minmax(0, 1fr) !important;
  gap: 13px !important;
  align-items: center !important;
  min-width: 0 !important;
}

#coachTrainings .ph-training-line__label {
  color: var(--ph-card-body-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.15;
}

#coachTrainings .ph-training-line .ph-training-line__value {
  min-width: 0;
  color: var(--ph-text-strong);
  font-size: 12px;
  font-weight: 400 !important;
  line-height: 1.35;
}

#coachTrainings .phds-teamhub-presence-counters {
  margin-top: 0;
}

/* Trainingen — overdue completeness notice */
#coachTrainings .ph-training-notice {
  border-color: rgba(255, 198, 87, 0.42) !important;
  background: rgba(255, 198, 87, 0.12) !important;
}

#coachTrainings .ph-training-notice__body {
  padding-top: 0;
}

#coachTrainings .ph-training-notice__copy {
  display: grid;
  gap: 5px;
}

#coachTrainings .ph-training-notice__title {
  color: var(--ph-text-strong);
  font-size: 13px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.2;
}

#coachTrainings .ph-training-notice__text {
  color: var(--ph-card-body-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-medium);
  line-height: 1.35;
}

/* Trainingen — cancelled card muted copy */
#coachTrainings .ph-training-card--cancelled .phds-card__title,
#coachTrainings .ph-training-card--cancelled .phds-teamhub-next-date__day,
#coachTrainings .ph-training-card--cancelled .phds-teamhub-next-date__num,
#coachTrainings .ph-training-card--cancelled .phds-teamhub-next-date__month,
#coachTrainings .ph-training-card--cancelled .ph-training-line__label,
#coachTrainings .ph-training-card--cancelled .ph-training-line__value {
  color: var(--ph-card-body-text-muted) !important;
  opacity: 0.58;
}

#coachTrainings .ph-training-card--cancelled .phds-card__divider,
#coachTrainings .ph-training-card--cancelled .phds-teamhub-next-date {
  opacity: 0.58;
}

@media (max-width: 360px) {
  #coachTrainings .ph-training-card-row {
    grid-template-columns: 54px minmax(0, 1fr) !important;
    column-gap: 12px !important;
  }

  #coachTrainings .ph-training-card-row > .phds-teamhub-next-date {
    padding-right: 10px !important;
  }

  #coachTrainings .phds-teamhub-next-date__num {
    font-size: 25px;
  }

  #coachTrainings .ph-training-line {
    grid-template-columns: 1fr !important;
    gap: 5px !important;
  }
}

/* Coach Hub Trainingen — bridge PRE_MATCH presence selectors */
#coachTrainings .ph-training-presence-panel.ph-prematch {
  margin-top: 18px;
  padding-top: 0;
}

#coachTrainings .ph-training-presence-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;
  min-height: 34px;
}

#coachTrainings .ph-training-presence-head__title {
  color: var(--ph-text-strong);
  font-size: 16px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
}

#coachTrainings .ph-training-presence-head__count {
  color: var(--ph-text-strong);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;
  white-space: nowrap;
}

#coachTrainings .ph-training-presence-divider {
  height: 1px;
  margin-top: 16px;
  background: rgba(255,255,255,0.09);
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-row-bottom {
  margin-top: 0;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pr-line {
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,0.075);
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pr-line:first-child {
  border-top: 0;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pr-line .ph-row-top {
  min-height: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;
  width: 100%;
  margin: 0;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pr-line .ph-row-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--ph-card-body-text);
  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: none;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pr-line .ph-row-title > span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-row-badges {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  transform: translateY(5px);
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip {
  appearance: none !important;
  -webkit-appearance: none !important;

  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 38px !important;
  min-height: 28px !important;
  height: 28px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 10px !important;
  box-sizing: border-box !important;

  border-radius: var(--ph-radius-sm) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  background: rgba(255,255,255,0.055) !important;

  color: rgba(255,248,240,0.88) !important;

  font: inherit !important;
  font-size: 11px !important;
  font-weight: var(--ph-weight-semibold) !important;
  letter-spacing: .25px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;

  box-shadow: none !important;
  cursor: pointer;
  user-select: none;
  opacity: .9;

  transition:
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 80ms ease,
    opacity 140ms ease;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip:hover {
  background: rgba(255,255,255,0.085) !important;
  border-color: rgba(255,255,255,0.24) !important;
  opacity: 1;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip:active {
  transform: translateY(1px);
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip.ph-chip--remove-participant {
  min-width: 34px;
  padding-inline: 0;
  color: rgba(255,210,210,0.92);
  border-color: rgba(255,120,120,0.28);
  background: rgba(255,120,120,0.08);
  font-size: 1.05rem;
  line-height: 1;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip.ph-chip--remove-participant:hover {
  color: rgba(255,245,245,1);
  border-color: rgba(255,120,120,0.44);
  background: rgba(255,120,120,0.14);
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip.is-on,
#coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip[aria-pressed="true"] {
  opacity: 1 !important;

  color: var(--ph-chip-active-text) !important;
  border-color: var(--ph-chip-active-border) !important;

  background:
    linear-gradient(
      180deg,
      var(--ph-chip-active-bg-top),
      var(--ph-chip-active-bg-bottom)
    ) !important;

  box-shadow:
    inset 0 0 0 1px var(--ph-chip-active-inner),
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 18px var(--ph-chip-active-glow) !important;

  text-shadow: 0 0 12px rgba(45,226,230,0.32);
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pres-reason-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 18px;
  padding: 1px 6px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.08);

  color: rgba(255,255,255,0.92);

  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1.1;
  text-transform: uppercase;

  white-space: nowrap;
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pres-reason-badge.is-absence,
#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pres-reason-badge.is-moved {
  color: rgba(255,179,71,.95);
  background: rgba(255,179,71,.12);
  border-color: rgba(255,179,71,.35);
}

#coachTrainings .ph-training-notice__actions {
  margin-top: 10px;
  display: flex;
  justify-content: flex-start;
}

@media (max-width: 360px) {
  #coachTrainings .ph-training-presence-panel.ph-prematch .ph-pr-line .ph-row-top {
    column-gap: 10px;
  }

  #coachTrainings .ph-training-presence-panel.ph-prematch .ph-row-badges {
    gap: 6px !important;
  }

  #coachTrainings .ph-training-presence-panel.ph-prematch .ph-chip {
    min-width: 34px !important;
    padding: 0 8px !important;
  }
}

/* Coach Hub Trainingen — approval status badges */
#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pres-reason-badge.is-approval {
  color: rgba(255,179,71,.95);
  background: rgba(255,179,71,.12);
  border-color: rgba(255,179,71,.35);
}

#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pres-reason-badge.is-blocked {
  color: rgba(255,120,120,.95);
  background: rgba(255,120,120,.12);
  border-color: rgba(255,120,120,.35);
}


#coachTrainings .ph-training-presence-panel.ph-prematch .ph-pres-reason-badge.is-source-team {
  color: var(--ph-accent);
  background: rgba(45,226,230,0.12);
  border-color: rgba(45,226,230,0.34);
}

/* Coach Hub Trainingen — reuse Players meta strip + simple card footer */
.phds-trainings-meta-strip .phds-players-meta-action:disabled,
.phds-trainings-meta-strip .phds-players-meta-action[aria-disabled="true"] {
  opacity: 0.54;
  cursor: not-allowed;
}

#coachTrainings .ph-training-cancel-form {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
  gap: 12px;
}

#coachTrainings .ph-training-cancel-hint {
  margin-top: 10px;
}

#coachTrainings .ph-training-card > .ph-training-card-footer {
  width: 100% !important;
  box-sizing: border-box;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.09);
}

#coachTrainings .ph-training-card > .ph-training-card-footer .phds-card-action {
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap;
}

@media (max-width: 420px) {
  #coachTrainings .ph-training-cancel-form {
    grid-template-columns: 1fr;
  }
}

/* Coach Hub Trainingen — cancel panel footer polish */
#coachTrainings .ph-training-cancel-panel .phds-teamhub-access-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

#coachTrainings .ph-training-cancel-panel .phds-card-action {
  width: auto;
  min-width: 0;
  white-space: nowrap;
}

/* Coach Hub Trainingen — cancel panel layout polish */
#coachTrainings .ph-training-cancel-panel .ph-training-cancel-hint {
  margin-bottom: 14px;
}

#coachTrainings .ph-training-cancel-panel .ph-training-cancel-form {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
  gap: 12px;
}

#coachTrainings .ph-training-cancel-panel .ph-training-cancel-footer {
  width: 100% !important;
  box-sizing: border-box;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.09);
}

#coachTrainings .ph-training-cancel-panel .ph-training-cancel-footer .phds-card-action {
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap;
}

@media (max-width: 420px) {
  #coachTrainings .ph-training-cancel-panel .ph-training-cancel-form {
    grid-template-columns: 1fr;
  }
}

/* Coach Hub Trainingen — inline card cancel section */
#coachTrainings .ph-training-card-cancel-section {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.09);
}

#coachTrainings .ph-training-card-cancel-title {
  color: var(--ph-text-strong);
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
}

#coachTrainings .ph-training-card-cancel-copy {
  margin-top: 5px;
  color: var(--ph-card-body-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-regular);
  line-height: 1.35;
}

/* Coach Hub Trainingen — inline cancel input spacing */
#coachTrainings .ph-training-card-cancel-section .ph-training-card-cancel-field .ph-input {
  margin-top: 12px !important;
}

/* Coach Hub Trainingen — remove meta active dot */
.phds-trainings-meta-strip #trainingCancelToggle::after,
.phds-trainings-meta-strip #trainingCancelToggle[data-open="1"]::after,
.phds-trainings-meta-strip .phds-players-meta-search::after,
.phds-trainings-meta-strip .phds-players-meta-search[data-open="1"]::after {
  content: none !important;
  display: none !important;
}

/* Coach Hub Trainingen — notice quick actions */
#coachTrainings .ph-training-notice__actions {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-start;
}

/* Coach Hub Trainingen — footer split actions */
#coachTrainings .ph-training-card > .ph-training-card-footer {
  justify-content: space-between !important;
}

#coachTrainings .ph-training-card-footer .ph-training-footer-action--primary {
  margin-left: auto;
}

#coachTrainings .ph-training-card-footer .ph-training-footer-action--secondary {
  margin-right: auto;
}

/* Matches — share live link swipe action */
#matches .ph-swipe-action--share-live {
  color: rgba(45, 226, 230, 0.94);
}

/* Players — calmer summary spacing */
#players .phds-player-card > .phds-card__divider,
#players .phds-player-card__body > .phds-card__divider {
  display: none;
}

#players .phds-player-title {
  padding-left: 3px;
}

#players .phds-player-summary {
  margin-top: 20px;
  margin-bottom: 4px;
  border-radius: 0;
}

#players .phds-player-summary *,
#players .phds-player-summary-grid,
#players .phds-player-summary-item {
  border-radius: 0;
}

#players .phds-teamhub-access-summary {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}


/* =========================================================
   PRE_MATCH — Lineup Canvas v1
   ========================================================= */

#players .ph-prematch .ph-lineup-canvas {
  display: flex;
  flex-direction: column;
  gap: 16px;

  width: 100%;
  margin: 0 0 18px;
}

#players .ph-prematch .ph-lineup-canvas__hint {
  color: var(--ph-card-body-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
}

#players .ph-prematch .ph-lineup-canvas__pitch {
  display: flex;
  flex-direction: column;
  gap: 14px;

  padding: 12px 0 4px;
}

#players .ph-prematch .ph-lineup-canvas__line {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

#players .ph-prematch .ph-lineup-canvas__line-label,
#players .ph-prematch .ph-lineup-canvas__bench-label {
  color: var(--ph-card-body-text-muted);
  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .38px;
  line-height: 1;
  text-transform: uppercase;
}

#players .ph-prematch .ph-lineup-canvas__slots {
  display: grid;
  gap: 10px;
  align-items: center;
}

#players .ph-prematch .ph-lineup-canvas__slots--1 {
  grid-template-columns: minmax(116px, 42%);
  justify-content: center;
}

#players .ph-prematch .ph-lineup-canvas__slots--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#players .ph-prematch .ph-lineup-canvas__slots--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#players .ph-prematch .ph-lineup-canvas__slot,
#players .ph-prematch .ph-lineup-canvas__bench-player {
  appearance: none;
  -webkit-appearance: none;

  position: relative;

  min-height: 48px;
  padding: 12px 10px 10px;

  border-radius: 12px;
  border: 1px solid rgba(120,160,220,0.24);
  background: rgba(255,255,255,0.055);

  color: var(--ph-text-strong);
  font-family: var(--ph-font);
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 1;

  box-shadow:
    0 10px 22px rgba(0,0,0,0.18),
    inset 0 1px 0 rgba(255,255,255,0.045);

  cursor: pointer;
}

#players .ph-prematch .ph-lineup-canvas__slot.has-player {
  border-color: rgba(120,160,220,0.30);
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(255,255,255,0.07), rgba(255,255,255,0.00) 42%),
    rgba(255,255,255,0.065);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-empty {
  border-style: dashed;
  opacity: .58;
}

#players .ph-prematch .ph-lineup-canvas__pos {
  position: absolute;
  left: 10px;
  top: -8px;

  min-width: 28px;
  padding: 3px 7px;

  border-radius: 7px;
  border: 1px solid rgba(120,160,220,0.22);
  background: rgba(11,26,45,0.96);

  color: var(--ph-card-body-text-muted);
  font-size: 9px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .32px;
  line-height: 1;
  text-transform: uppercase;
}

#players .ph-prematch .ph-lineup-canvas__name {
  display: block;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#players .ph-prematch .ph-lineup-canvas__bench {
  display: flex;
  flex-direction: column;
  gap: 9px;

  padding-top: 10px;
}

#players .ph-prematch .ph-lineup-canvas__bench-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

#players .ph-prematch .ph-lineup-canvas__bench-player {
  min-height: 44px;
  padding: 0 12px;

  color: var(--ph-card-body-text);
  opacity: .86;
}

#players .ph-prematch .ph-lineup-canvas__empty {
  color: var(--ph-card-body-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
}

@media (max-width: 360px) {
  #players .ph-prematch .ph-lineup-canvas__slots {
    gap: 8px;
  }

  #players .ph-prematch .ph-lineup-canvas__slot,
  #players .ph-prematch .ph-lineup-canvas__bench-player {
    font-size: 13px;
  }
}


/* PRE_MATCH — manual fallback toggle below lineup canvas */
#players .ph-prematch .ph-lineup-manual__toggle {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
}

#players .ph-prematch .ph-lineup-manual__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  width: 100%;
  min-height: 38px;
  margin-top: 2px;
  padding-top: 12px;

  border-top: 1px solid rgba(255,255,255,0.08);

  cursor: pointer;
  user-select: none;
}

#players .ph-prematch .ph-lineup-manual__title {
  color: var(--ph-card-body-text);
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .28px;
  line-height: 1;
  text-transform: uppercase;
}

#players .ph-prematch .ph-lineup-manual__meta {
  color: var(--ph-card-body-text-muted);
  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1;
}

#players .ph-prematch .ph-lineup-manual__summary::after {
  content: "Open";
  flex: 0 0 auto;

  min-width: 44px;
  text-align: right;

  color: var(--ph-accent);
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .28px;
  line-height: 1;
  text-transform: uppercase;
}

#players .ph-prematch .ph-lineup-manual__toggle:checked + .ph-lineup-manual__summary::after {
  content: "Sluit";
}

#players .ph-prematch .ph-lineup-manual__body {
  display: none !important;
  margin-top: 10px;
}

#players .ph-prematch .ph-lineup-manual__toggle:checked + .ph-lineup-manual__summary + .ph-lineup-manual__body {
  display: block !important;
}

/* Platform Admin — demo scenario action alignment polish */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions {
  align-items: center;
}

body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions .ph-platform-demo-button,
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions a.ph-platform-demo-button,
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions button.ph-platform-demo-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  line-height: 1;
  vertical-align: middle;
}

/* Platform Admin — align restore button optically with scenario links */
body #platformAdmin .ph-platform-demo-panel .ph-platform-demo-item__actions button.ph-platform-demo-button[data-platform-demo-restore] {
  transform: translateY(6px);
}


/* PRE_MATCH — manual row focus from lineup canvas tap */
#players .ph-prematch .ph-pr-line.is-canvas-focus {
  margin-left: -8px;
  margin-right: -8px;
  padding-left: 8px;
  padding-right: 8px;

  border-radius: var(--ph-radius-sm);
  background: rgba(45,226,230,0.07);
  box-shadow:
    inset 0 0 0 1px rgba(45,226,230,0.16),
    0 0 18px rgba(45,226,230,0.08);
}

#players .ph-prematch .ph-pr-line.is-canvas-focus .ph-pr-title {
  color: var(--ph-text-strong);
}


/* PRE_MATCH — Lineup Canvas drag/drop v1 */
#players .ph-prematch .ph-lineup-canvas__slot.has-player,
#players .ph-prematch .ph-lineup-canvas__bench-player {
  touch-action: none;
}

#players .ph-prematch .ph-lineup-canvas__slot.is-dragging,
#players .ph-prematch .ph-lineup-canvas__bench-player.is-dragging {
  opacity: .45;
}

#players .ph-prematch .ph-lineup-canvas__slot.is-drop-over,
#players .ph-prematch .ph-lineup-canvas__bench-grid.is-drop-over {
  outline: 2px solid var(--ph-accent);
  outline-offset: 3px;
}

.ph-lineup-canvas__drag-ghost {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;

  max-width: 160px;
  padding: 11px 13px;

  border-radius: 13px;
  border: 1px solid rgba(120,160,220,0.34);
  background: rgba(11,26,45,0.96);

  color: var(--ph-text-strong);
  font-family: var(--ph-font);
  font-size: 14px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;

  box-shadow: 0 18px 40px rgba(0,0,0,0.34);
  pointer-events: none;
  white-space: nowrap;
}

body.ph-lineup-canvas-is-dragging {
  user-select: none;
  -webkit-user-select: none;
}


/* PRE_MATCH — Lineup Canvas moved state */
#players .ph-prematch .ph-lineup-canvas__slot.is-moved {
  border-color: rgba(45,226,230,0.34);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-moved .ph-lineup-canvas__pos {
  min-width: auto;

  border-color: rgba(245,158,11,0.40);
  background: rgba(245,158,11,0.20);

  color: var(--ph-card-body-text-muted);
}

#players .ph-prematch .ph-lineup-canvas__pos-moved {
  color: rgb(251,191,36);
}


/* PRE_MATCH — Lineup Canvas suggestion guidance */
#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-best {
  border-color: rgba(45,226,230,0.78);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.34),
    0 0 28px rgba(45,226,230,0.20),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-good {
  border-color: rgba(45,226,230,0.44);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.18),
    0 0 18px rgba(45,226,230,0.10),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

#players .ph-prematch .ph-lineup-canvas-is-dragging .ph-lineup-canvas__slot.is-suggested-muted,
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.is-suggested-muted {
  opacity: .46;
}

#players .ph-prematch .ph-lineup-canvas__bench-grid.is-suggested-bench {
  border-radius: 14px;
  outline: 1px dashed rgba(120,160,220,0.30);
  outline-offset: 5px;
}


/* PRE_MATCH — suggested empty slots should remain readable */
#players .ph-prematch .ph-lineup-canvas__slot.is-empty.is-suggested-best,
#players .ph-prematch .ph-lineup-canvas__slot.is-empty.is-suggested-good {
  opacity: 1;
}

#players .ph-prematch .ph-lineup-canvas__slot.is-empty.is-suggested-best {
  border-style: solid;
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.14), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.070);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-empty.is-suggested-good {
  border-style: solid;
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.08), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.055);
}

/* PRE_MATCH — tune DnD suggestion hierarchy */
#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-best {
  border-color: rgba(45,226,230,0.90);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.42),
    0 0 30px rgba(45,226,230,0.24),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-good {
  border-color: rgba(45,226,230,0.36);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-empty.is-suggested-good {
  background: rgba(255,255,255,0.040);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-empty.is-suggested-best {
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.16), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.075);
}

/* PRE_MATCH — final DnD suggestion hierarchy */
#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-best {
  border-color: rgba(45,226,230,0.95);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.46),
    0 0 30px rgba(45,226,230,0.24),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-strong {
  border-color: rgba(45,226,230,0.68);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.24),
    0 0 16px rgba(45,226,230,0.10),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-good {
  border-color: rgba(45,226,230,0.32);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045);
}

#players .ph-prematch .ph-lineup-canvas__slot.is-suggested-soft {
  border-color: rgba(45,226,230,0.20);
  opacity: .62;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.035);
}

/* PRE_MATCH — hide legacy manual lineup fallback while keeping it in DOM */
#players .ph-prematch .ph-lineup-manual__toggle,
#players .ph-prematch .ph-lineup-manual__summary,
#players .ph-prematch .ph-lineup-manual__body {
  display: none !important;
}


/* PRE_MATCH — Lineup Canvas toolbar polish */
#players .ph-prematch .ph-lineup-toolbar {
  width: 100%;
  margin-bottom: 14px;
}

#players .ph-prematch .ph-lineup-toolbar__main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;

  padding: 12px 0 2px;
}

#players .ph-prematch .ph-lineup-toolbar__label {
  color: var(--ph-card-body-text);
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .2px;
  line-height: 1.1;
}

#players .ph-prematch .ph-lineup-toolbar__meta {
  margin-top: 4px;

  color: var(--ph-card-body-text-muted);
  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.15;
}

#players .ph-prematch .ph-lineup-toolbar__stepper {
  flex: 0 0 auto;
  margin: 0;
}

#players .ph-prematch .ph-lineup-canvas__hint {
  max-width: 280px;
  margin: 0 0 -10px 0;
}

/* Give line labels more breathing room above player slots */
#players .ph-prematch .ph-lineup-canvas__line {
  gap: 11px;
}

#players .ph-prematch .ph-lineup-canvas__line-label {
  margin-bottom: 2px;
}

/* PRE_MATCH — Lineup Canvas centered divider labels */
#players .ph-prematch .ph-lineup-canvas__line-label,
#players .ph-prematch .ph-lineup-canvas__bench-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  width: 100%;
  margin-bottom: 8px;

  color: var(--ph-card-body-text-muted);
  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .42px;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

#players .ph-prematch .ph-lineup-canvas__line-label::before,
#players .ph-prematch .ph-lineup-canvas__line-label::after,
#players .ph-prematch .ph-lineup-canvas__bench-label::before,
#players .ph-prematch .ph-lineup-canvas__bench-label::after {
  content: "";
  flex: 1 1 auto;
  min-width: 24px;
  height: 1px;

  background: rgba(255,255,255,0.08);
}

#players .ph-prematch .ph-lineup-canvas__line {
  gap: 14px;
}

#players .ph-prematch .ph-lineup-canvas__bench {
  gap: 14px;
}

/* PRE_MATCH — prevent iOS text selection while dragging lineup canvas */
#players .ph-prematch .ph-lineup-canvas,
#players .ph-prematch .ph-lineup-canvas *,
.ph-lineup-canvas__drag-ghost {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

#players .ph-prematch .ph-lineup-canvas__slot,
#players .ph-prematch .ph-lineup-canvas__bench-player {
  -webkit-tap-highlight-color: transparent;
}

/* PRE_MATCH — make drag ghost visible above thumb */
.ph-lineup-canvas__drag-ghost {
  min-width: 132px;
  max-width: 220px;
  padding: 14px 18px;

  border-radius: 16px;
  border-color: rgba(45,226,230,0.42);
  background:
    radial-gradient(120% 150% at 50% -45%, rgba(45,226,230,0.16), rgba(45,226,230,0.00) 48%),
    rgba(11,26,45,0.98);

  color: var(--ph-text-strong);
  font-size: 16px;
  text-align: center;

  box-shadow:
    0 22px 46px rgba(0,0,0,0.42),
    0 0 0 1px rgba(45,226,230,0.18),
    0 0 26px rgba(45,226,230,0.14);
}


/* PRE_MATCH — drag ghost inline label */
.ph-lineup-canvas__drag-ghost-label {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  min-width: 0;
}

.ph-lineup-canvas__drag-ghost-dot {
  color: var(--ph-card-body-text-muted);
  font-size: 13px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
}

/* PRE_MATCH — make bench drop target visible while dragging */
#players .ph-prematch .ph-lineup-canvas__bench-grid {
  border-radius: 16px;
  padding: 4px;
  margin: -4px;
  transition:
    border-color 140ms ease,
    box-shadow 140ms ease,
    background 140ms ease;
}

#players .ph-prematch .ph-lineup-canvas__bench-grid.is-drop-over {
  outline: 0;
  border: 1px solid rgba(45,226,230,0.82);
  background: rgba(45,226,230,0.055);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.30),
    0 0 26px rgba(45,226,230,0.16),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

/* PRE_MATCH — make bench drop target visible while dragging */
#players .ph-prematch .ph-lineup-canvas__bench-grid {
  border-radius: 16px;
  padding: 4px;
  margin: -4px;
  transition:
    border-color 140ms ease,
    box-shadow 140ms ease,
    background 140ms ease;
}

#players .ph-prematch .ph-lineup-canvas__bench-grid.is-drop-over {
  outline: 0;
  border: 1px solid rgba(45,226,230,0.82);
  background: rgba(45,226,230,0.055);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.30),
    0 0 26px rgba(45,226,230,0.16),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

/* PRE_MATCH — match format card two-column layout */
#players .ph-prematch .ph-lineup-size-card__main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
}

#players .ph-prematch .ph-lineup-size-card__label {
  justify-self: start;
}

#players .ph-prematch .ph-lineup-size-card__stepper {
  justify-self: end;
}

/* PRE_MATCH — match format card compact spacing */
#players .ph-prematch .ph-lineup-size-card {
  padding: 12px 16px;
}

#players .ph-prematch .ph-lineup-size-card__main {
  min-height: 36px;
}

#players .ph-prematch .ph-lineup-size-card__label {
  color: var(--ph-card-body-text);
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

/* PRE_MATCH — match format card tighter vertical alignment */
#players .ph-prematch .ph-lineup-size-card {
  padding-top: 8px;
  padding-bottom: 8px;
}

#players .ph-prematch .ph-lineup-size-card__main {
  min-height: 34px;
  align-items: center;
}

/* PRE_MATCH — force compact match format card padding */
#players .ph-prematch .ph-row.phds-card.ph-lineup-size-card {
  padding: 8px 16px !important;
}

#players .ph-prematch .ph-row.phds-card.ph-lineup-size-card .ph-lineup-size-card__main {
  min-height: 34px;
  padding: 0 !important;
  margin: 0 !important;
  align-items: center;
}

#players .ph-prematch .ph-row.phds-card.ph-lineup-size-card .ph-lineup-size-card__label,
#players .ph-prematch .ph-row.phds-card.ph-lineup-size-card .ph-lineup-size-card__stepper {
  margin: 0 !important;
}

/* PRE_MATCH — quick move field player to bench */
#players .ph-prematch .ph-lineup-canvas__slot {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

#players .ph-prematch .ph-lineup-canvas__bank-action {
  appearance: none;
  position: absolute;
  top: -9px;
  right: 10px;
  left: auto;
  z-index: 4;

  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;

  width: 28px;
  min-width: 28px;
  max-width: 28px;
  height: 18px;
  min-height: 18px;
  max-height: 18px;
  padding: 0;
  margin: 0;

  border: 1px solid rgba(255,107,107,0.34);
  border-radius: 8px;
  background: rgba(11,26,45,0.94);
  color: rgba(255,182,182,0.92);

  font: inherit;
  font-size: 14px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  text-transform: none;
  cursor: pointer;

  transition:
    transform 120ms ease,
    border-color 120ms ease,
    background 120ms ease,
    color 120ms ease;
}

#players .ph-prematch .ph-lineup-canvas__bank-action:hover {
  border-color: rgba(255,107,107,0.48);
  background: rgba(14,31,52,0.98);
  color: rgba(255,214,214,0.98);
}

#players .ph-prematch .ph-lineup-canvas__bank-action:active {
  transform: translateY(1px) scale(0.96);
}

#players .ph-prematch .ph-lineup-canvas__bank-action:focus-visible {
  outline: 2px solid rgba(255,182,182,0.60);
  outline-offset: 2px;
}

/* PRE_MATCH — reveal quick bench action only in context */
#players .ph-prematch .ph-lineup-canvas__bank-action {
  opacity: 0;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  #players .ph-prematch .ph-lineup-canvas__slot.has-player:hover .ph-lineup-canvas__bank-action,
  #players .ph-prematch .ph-lineup-canvas__slot.has-player:focus-within .ph-lineup-canvas__bank-action,
  #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-action-active .ph-lineup-canvas__bank-action {
    opacity: 1;
    pointer-events: auto;
  }
}

@media (hover: none), (pointer: coarse) {
  #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-action-active .ph-lineup-canvas__bank-action,
  #players .ph-prematch .ph-lineup-canvas__slot.has-player:focus-within .ph-lineup-canvas__bank-action {
    opacity: 1;
    pointer-events: auto;
  }
}

/* Players vNext — Team Hub invite QR modal */
body:has(#players) .phds-teamhub-qr-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 18px;
}

body:has(#players) .phds-teamhub-qr-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 17, 31, 0.72);
  backdrop-filter: blur(14px);
}

body:has(#players) .phds-teamhub-qr-modal__panel {
  position: relative;
  width: min(100%, 390px);
  border: 1px solid color-mix(in srgb, var(--ph-card-border) 72%, rgba(255, 255, 255, 0.12));
  border-radius: 24px;
  background:
    radial-gradient(circle at 14% 0%, rgba(45, 226, 230, 0.16), transparent 36%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 34%),
    rgba(6, 22, 38, 0.96);
  box-shadow:
    0 30px 90px rgba(0, 0, 0, 0.56),
    0 0 0 1px rgba(255, 255, 255, 0.025) inset,
    0 1px 0 rgba(255, 255, 255, 0.04) inset;
  padding: 20px;
}

body:has(#players) .phds-teamhub-qr-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--ph-card-border) 78%, rgba(255, 255, 255, 0.1));
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--ph-card-title-text);
  font: inherit;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

body:has(#players) .phds-teamhub-qr-modal__eyebrow {
  margin: 0 38px 6px 0;
  color: var(--ph-card-eyebrow-text);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body:has(#players) .phds-teamhub-qr-modal__title {
  margin: 0;
  color: var(--ph-card-title-text);
  font-size: 22px;
  line-height: 1.08;
}

body:has(#players) .phds-teamhub-qr-modal__intro {
  margin: 9px 0 14px;
  color: var(--ph-card-body-text);
  font-size: 14px;
  line-height: 1.42;
}

body:has(#players) .phds-teamhub-qr-modal__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}

body:has(#players) .phds-teamhub-qr-modal__meta span {
  border: 1px solid var(--ph-card-border);
  border-radius: 999px;
  padding: 6px 9px;
  background: rgba(255, 255, 255, 0.045);
  color: var(--ph-card-body-text);
  font-size: 12px;
  font-weight: 750;
}

body:has(#players) .phds-teamhub-qr-modal__qr {
  display: grid;
  place-items: center;
  margin: 6px 0 18px;
  padding: 0;
}

body:has(#players) .phds-teamhub-qr-modal__canvas {
  display: block;
  width: 248px;
  max-width: 100%;
  height: auto;
  border-radius: 14px;
  background: #ffffff;
  padding: 10px;
}

body:has(#players) .phds-teamhub-qr-modal__fallback {
  color: var(--ph-card-muted-text);
  font-size: 13px;
  font-weight: 750;
  text-align: center;
}

body:has(#players) .phds-teamhub-qr-modal__label {
  display: block;
  margin: 0 0 6px;
  color: var(--ph-card-eyebrow-text);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

body:has(#players) .phds-teamhub-qr-modal__input {
  box-sizing: border-box;
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--ph-card-border);
  border-radius: 13px;
  background: rgba(4, 17, 31, 0.48);
  color: var(--ph-card-body-text);
  padding: 0 11px;
  font: inherit;
  font-size: 12px;
}

body:has(#players) .phds-teamhub-qr-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

body:has(#players) .phds-teamhub-qr-modal__actions .phds-card-action {
  min-height: 38px;
}

@media (max-width: 520px) {
  body:has(#players) .phds-teamhub-qr-modal {
    align-items: end;
    padding: 10px;
  }

  body:has(#players) .phds-teamhub-qr-modal__panel {
    width: 100%;
    border-radius: 22px;
  }

  body:has(#players) .phds-teamhub-qr-modal__actions .phds-card-action {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* Design System — native select */
.phds-select,
#players .phds-teamhub-access-form select {
  box-sizing: border-box;
  height: 36px;
  min-height: 36px;
  border: 1px solid rgba(116, 143, 176, 0.36);
  border-radius: 11px;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(
      180deg,
      rgba(15, 28, 48, 0.98),
      rgba(10, 22, 38, 0.98)
    );
  background-repeat: no-repeat, no-repeat;
  background-position: calc(100% - 12px) 50%, 0 0;
  background-size: 18px 18px, 100% 100%;
  color: #f4f8ff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035),
    0 1px 0 rgba(0, 0, 0, 0.24);
  padding: 0 40px 0 11px;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 36px;
  appearance: none;
  -webkit-appearance: none;
}

.phds-select:focus,
#players .phds-teamhub-access-form select:focus {
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(
      180deg,
      rgba(17, 32, 54, 1),
      rgba(11, 24, 42, 1)
    );
  border-color: rgba(218, 235, 255, 0.82);
  box-shadow:
    0 0 0 1px rgba(218, 235, 255, 0.18),
    0 0 0 4px rgba(45, 226, 230, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  outline: none;
}

/* Players vNext — Team Hub invite select sizing */
#players .phds-teamhub-access-form select[name="relationship"] {
  width: min(100%, 190px);
}

#players .phds-teamhub-access-form select[name="accessLevel"] {
  width: min(100%, 305px);
  margin-bottom: 14px;
}

/* Players vNext — preference edit mode header spacing */
#players .phds-player-card:has(.phds-player-preferences-edit-title) .phds-player-card__head {
  margin-bottom: 26px;
}

/* Players vNext — preference editor checkboxes match BREAK */
#players .phds-player-card .ph-pr-linecheck {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  min-width: 0;
  min-height: var(--ph-pr-row-h);

  color: var(--ph-card-body-text);
  font-weight: var(--ph-weight-semibold);
  line-height: 1;
}

#players .phds-player-card .ph-pr-linecheck input {
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--ph-accent);
}

/* Platform Admin — Data Operations scope */
#platformAdmin .ph-platform-data-section--scope {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 16px;
}

#platformAdmin .ph-platform-data-section--scope .ph-platform-data-scope__copy {
  display: grid;
  gap: 8px;
  min-width: 0;
}

#platformAdmin .ph-platform-data-section--scope .ph-platform-data-scope__copy > * {
  margin: 0;
}

#platformAdmin .ph-platform-data-section--scope .ph-platform-data-scope__control {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  min-width: 0;
  width: auto;
}

#platformAdmin .ph-platform-data-section--scope select[data-platform-data-scope-select] {
  width: min(230px, 46vw);
  background-color: transparent;
}

@media (max-width: 420px) {
  #platformAdmin .ph-platform-data-section--scope {
    grid-template-columns: minmax(0, 1fr) minmax(140px, 48%);
    gap: 12px;
  }

  #platformAdmin .ph-platform-data-section--scope select[data-platform-data-scope-select] {
    width: 100%;
  }
}

/* Platform Admin — local sync helper */
#platformAdmin .ph-platform-data-section--restore:has(+ .ph-platform-data-section--local-sync) {
  padding-bottom: 16px !important;
}

#platformAdmin .ph-platform-data-section--local-sync {
  row-gap: 8px;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  padding-top: 18px !important;
}

#platformAdmin .ph-platform-data-section--local-sync .ph-platform-local-sync__feedback {
  grid-column: 1 / -1;
  display: block;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid rgba(45, 226, 230, 0.18);
  border-radius: 10px;
  background: rgba(45, 226, 230, 0.06);
  color: var(--ph-card-body-text);
  font-size: 13px;
  line-height: 1.3;
}

#platformAdmin .ph-platform-data-section--local-sync .ph-platform-local-sync__feedback[hidden] {
  display: none;
}

/* Platform Admin — restore spacing when local sync follows */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore:has(+ .ph-platform-data-section--local-sync) {
  padding-bottom: 16px !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--restore:has(+ .ph-platform-data-section--local-sync) + .ph-platform-data-section--local-sync {
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  padding-top: 16px !important;
}

/* Platform Admin — local sync feedback sits below action row */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync {
  grid-template-areas:
    "step action"
    "feedback feedback"
    "body body" !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync .ph-platform-local-sync__feedback {
  grid-area: feedback !important;
  grid-column: auto !important;
  margin: 0 !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync .ph-platform-data-section__copy > p:not(.ph-platform-data-section__eyebrow) {
  grid-area: body !important;
}

/* Platform Admin — local sync feedback rhythm */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync {
  row-gap: 10px !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync .ph-platform-local-sync__feedback {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  grid-area: feedback !important;
  grid-column: 1 / -1 !important;
  margin: 2px 0 !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync .ph-platform-data-section__copy > p:not(.ph-platform-data-section__eyebrow) {
  margin-top: 0 !important;
}

/* Platform Admin — local sync compact default rhythm */
body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync {
  grid-template-areas:
    "step action"
    "body body" !important;
  row-gap: 7px !important;
  padding-bottom: 16px !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync:has(.ph-platform-local-sync__feedback:not([hidden])) {
  grid-template-areas:
    "step action"
    "feedback feedback"
    "body body" !important;
  row-gap: 10px !important;
}

body #platformAdmin .ph-platform-data-ops .ph-platform-data-section--local-sync .ph-platform-local-sync__feedback[hidden] {
  display: none !important;
}

/* Platform Admin — local sync bottom breathing room */
body #platformAdmin .ph-platform-data-ops__sections .ph-platform-data-section--local-sync:last-child {
  padding-bottom: 16px !important;
}


/* =========================================================
   BREAK — Lineup Canvas v1
   ========================================================= */

#breakRoot.phds-break .ph-break-lineup-canvas {
  display: flex;
  flex-direction: column;
  gap: 16px;

  width: 100%;
  margin: 0 0 18px;
}

#breakRoot.phds-break .ph-break-lineup-canvas__hint {
  color: var(--ph-card-body-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
}

#breakRoot.phds-break .ph-break-lineup-canvas__pitch {
  display: flex;
  flex-direction: column;
  gap: 14px;

  padding: 12px 0 4px;
}

#breakRoot.phds-break .ph-break-lineup-canvas__line {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

#breakRoot.phds-break .ph-break-lineup-canvas__line-label,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  width: 100%;
  margin-bottom: 8px;

  color: var(--ph-card-body-text-muted);
  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .42px;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

#breakRoot.phds-break .ph-break-lineup-canvas__line-label::before,
#breakRoot.phds-break .ph-break-lineup-canvas__line-label::after,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-label::before,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-label::after {
  content: "";
  flex: 1 1 auto;
  min-width: 24px;
  height: 1px;
  background: rgba(255,255,255,0.08);
}

#breakRoot.phds-break .ph-break-lineup-canvas__slots {
  display: grid;
  gap: 10px;
  align-items: center;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slots--1 {
  grid-template-columns: minmax(116px, 42%);
  justify-content: center;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slots--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#breakRoot.phds-break .ph-break-lineup-canvas__slots--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
  appearance: none;
  -webkit-appearance: none;

  position: relative;

  min-height: 48px;
  padding: 12px 10px 10px;

  border-radius: 12px;
  border: 1px solid rgba(120,160,220,0.24);
  background: rgba(255,255,255,0.055);

  color: var(--ph-text-strong);
  font-family: var(--ph-font);
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 1;

  box-shadow:
    0 10px 22px rgba(0,0,0,0.18),
    inset 0 1px 0 rgba(255,255,255,0.045);

  cursor: pointer;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player {
  border-color: rgba(120,160,220,0.30);
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(255,255,255,0.07), rgba(255,255,255,0.00) 42%),
    rgba(255,255,255,0.065);
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty {
  border-style: dashed;
  opacity: .58;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-moved {
  border-color: rgba(45,226,230,0.42);
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.10), rgba(45,226,230,0.00) 42%),
    rgba(255,255,255,0.065);
}

#breakRoot.phds-break .ph-break-lineup-canvas__pos {
  position: absolute;
  left: 10px;
  top: -8px;

  min-width: 28px;
  padding: 3px 7px;

  border-radius: 7px;
  border: 1px solid rgba(120,160,220,0.22);
  background: rgba(11,26,45,0.96);

  color: var(--ph-card-body-text-muted);
  font-size: 9px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .32px;
  line-height: 1;
  text-transform: uppercase;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-moved .ph-break-lineup-canvas__pos {
  color: var(--ph-accent);
  border-color: rgba(45,226,230,0.42);
  background: rgba(11,36,52,0.98);
}

#breakRoot.phds-break .ph-break-lineup-canvas__name {
  display: block;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#breakRoot.phds-break .ph-break-lineup-canvas__bench {
  display: flex;
  flex-direction: column;
  gap: 14px;

  padding-top: 10px;
}

#breakRoot.phds-break .ph-break-lineup-canvas__bench-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

#breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
  min-height: 44px;
  padding: 0 12px;

  color: var(--ph-card-body-text);
  opacity: .86;
}

#breakRoot.phds-break .ph-break-lineup-canvas__empty,
#breakRoot.phds-break .ph-break-lineup-canvas__empty-line {
  color: var(--ph-card-body-text-muted);
  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
}

/* BREAK — parked legacy editor */
#breakRoot.phds-break .ph-break-lineup-legacy {
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

#breakRoot.phds-break .ph-break-lineup-legacy__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  min-height: 34px;

  color: var(--ph-card-body-text);
  cursor: pointer;
  list-style: none;
}

#breakRoot.phds-break .ph-break-lineup-legacy__summary::-webkit-details-marker {
  display: none;
}

#breakRoot.phds-break .ph-break-lineup-legacy__summary span:first-child {
  font-size: 12px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .28px;
  line-height: 1;
  text-transform: uppercase;
}

#breakRoot.phds-break .ph-break-lineup-legacy__summary span:last-child {
  color: var(--ph-card-body-text-muted);
  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1;
}

#breakRoot.phds-break .ph-break-lineup-legacy__summary::after {
  content: "Open";
  color: var(--ph-accent);
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .28px;
  line-height: 1;
  text-transform: uppercase;
}

#breakRoot.phds-break .ph-break-lineup-legacy[open] .ph-break-lineup-legacy__summary::after {
  content: "Sluit";
}

#breakRoot.phds-break .ph-break-lineup-legacy__body {
  margin-top: 10px;
}

@media (max-width: 360px) {
  #breakRoot.phds-break .ph-break-lineup-canvas__slots {
    gap: 8px;
  }

  #breakRoot.phds-break .ph-break-lineup-canvas__slot,
  #breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
    font-size: 13px;
  }
}

/* BREAK — Lineup Canvas DnD v1 */
#breakRoot.phds-break .ph-break-lineup-canvas,
#breakRoot.phds-break .ph-break-lineup-canvas *,
.ph-break-lineup-canvas__drag-ghost {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-dragging,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player.is-dragging {
  opacity: .42;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-drop-over,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player.is-drop-over {
  border-color: rgba(45,226,230,0.92);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.34),
    0 0 24px rgba(45,226,230,0.20),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

#breakRoot.phds-break .ph-break-lineup-canvas__bench-grid {
  border-radius: 16px;
  padding: 4px;
  margin: -4px;
  transition:
    border-color 140ms ease,
    box-shadow 140ms ease,
    background 140ms ease;
}

#breakRoot.phds-break .ph-break-lineup-canvas__bench-grid.is-drop-over {
  border: 1px solid rgba(45,226,230,0.82);
  background: rgba(45,226,230,0.055);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.30),
    0 0 26px rgba(45,226,230,0.16),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

.ph-break-lineup-canvas__drag-ghost {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;

  min-width: 132px;
  max-width: 220px;
  padding: 14px 18px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 16px;
  border: 1px solid rgba(45,226,230,0.42);
  background:
    radial-gradient(120% 150% at 50% -45%, rgba(45,226,230,0.16), rgba(45,226,230,0.00) 48%),
    rgba(11,26,45,0.98);

  color: var(--ph-text-strong);
  font-family: var(--ph-font);
  font-size: 16px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  text-align: center;

  pointer-events: none;

  box-shadow:
    0 22px 46px rgba(0,0,0,0.42),
    0 0 0 1px rgba(45,226,230,0.18),
    0 0 26px rgba(45,226,230,0.14);
}

.ph-break-lineup-canvas__drag-ghost-label {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  min-width: 0;
}

.ph-break-lineup-canvas__drag-ghost-pos {
  color: var(--ph-card-body-text-muted);
  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .34px;
  line-height: 1;
  text-transform: uppercase;
}

.ph-break-lineup-canvas__drag-ghost-dot {
  color: var(--ph-card-body-text-muted);
  font-size: 13px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
}

.ph-break-lineup-canvas__drag-ghost-name {
  color: var(--ph-text-strong);
  font-size: 16px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
}

/* BREAK — DnD suggestion guidance, visually aligned with PRE_MATCH */
#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-suggested-best {
  border-color: rgba(45,226,230,0.95);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.46),
    0 0 30px rgba(45,226,230,0.24),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-suggested-strong {
  border-color: rgba(45,226,230,0.68);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.24),
    0 0 16px rgba(45,226,230,0.10),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-suggested-good {
  border-color: rgba(45,226,230,0.32);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045);
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-suggested-soft {
  border-color: rgba(45,226,230,0.20);
  opacity: .62;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.035);
}

body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-suggested-muted {
  opacity: .46;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty.is-suggested-best,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty.is-suggested-strong,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty.is-suggested-good {
  opacity: 1;
  border-style: solid;
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty.is-suggested-best {
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.16), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.075);
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty.is-suggested-strong {
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.12), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.062);
}

#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty.is-suggested-good {
  background: rgba(255,255,255,0.040);
}

/* BREAK — active drop target must win over suggestion guidance */
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__slot.is-drop-over,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__bench-player.is-drop-over {
  opacity: 1;
  border-color: rgba(45,226,230,0.98);
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.18), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.078);
  box-shadow:
    0 0 0 2px rgba(45,226,230,0.44),
    0 0 34px rgba(45,226,230,0.28),
    inset 0 1px 0 rgba(255,255,255,0.07);
}

body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__bench-grid.is-drop-over {
  opacity: 1;
  border: 1px solid rgba(45,226,230,0.94);
  background: rgba(45,226,230,0.070);
  box-shadow:
    0 0 0 2px rgba(45,226,230,0.34),
    0 0 34px rgba(45,226,230,0.22),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

/* BREAK — active drop target halo should sit outside the card like PRE_MATCH */
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__slot.is-drop-over,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__bench-player.is-drop-over {
  outline: 2px solid rgba(45,226,230,0.92);
  outline-offset: 2px;
  border-color: rgba(45,226,230,0.86);
  box-shadow:
    0 0 24px rgba(45,226,230,0.22),
    inset 0 1px 0 rgba(255,255,255,0.07);
}

/* BREAK — use PRE_MATCH moved/changed amber for WISSEL labels */
#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-moved .ph-break-lineup-canvas__pos {
  color: rgb(251,191,36);
  border-color: rgba(245,158,11,0.40);
  background: rgba(245,158,11,0.20);
}

/* BREAK — hide legacy manual lineup fallback while keeping it in DOM */
#breakRoot.phds-break .ph-break-lineup-legacy,
#breakRoot.phds-break .ph-break-lineup-legacy__summary,
#breakRoot.phds-break .ph-break-lineup-legacy__body {
  display: none !important;
}

/* BREAK — smart substitution summary */
#breakRoot.phds-break .ph-break-change-summary {
  margin: 2px 0 4px;
  padding: 12px 0 2px;

  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

#breakRoot.phds-break .ph-break-change-summary__title {
  margin: 0 0 8px;

  color: var(--ph-card-body-text-muted);
  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .42px;
  line-height: 1;
  text-transform: uppercase;
}

#breakRoot.phds-break .ph-break-change-summary__rows {
  display: flex;
  flex-direction: column;
}

#breakRoot.phds-break .ph-break-change-summary__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;

  min-height: 30px;
  padding: 6px 0;

  border-top: 1px solid rgba(255,255,255,0.06);
}

#breakRoot.phds-break .ph-break-change-summary__row:first-child {
  border-top: 0;
}

#breakRoot.phds-break .ph-break-change-summary__main {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;

  min-width: 0;

  color: var(--ph-card-body-text);
  font-size: 13px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#breakRoot.phds-break .ph-break-change-summary__strong {
  color: var(--ph-text-strong);
  font-weight: var(--ph-weight-heavy);
}

#breakRoot.phds-break .ph-break-change-summary__muted {
  color: var(--ph-card-body-text-muted);
  font-weight: var(--ph-weight-semibold);
}

#breakRoot.phds-break .ph-break-change-summary__meta {
  color: rgb(251,191,36);
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .26px;
  line-height: 1;
  white-space: nowrap;
}

/* BREAK — keep substitution summary compact, no row dividers */
#breakRoot.phds-break .ph-break-change-summary__row {
  border-top: 0;
  min-height: 26px;
  padding: 4px 0;
}

/* BREAK — summary only needs a top divider; next line section handles bottom separation */
#breakRoot.phds-break .ph-break-change-summary {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

/* PRE_MATCH + BREAK — richer premium player tiles on lineup canvas */
#players .ph-prematch .ph-lineup-canvas__slot.has-player,
#players .ph-prematch .ph-lineup-canvas__bench-player,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(255,255,255,0.105), rgba(255,255,255,0.00) 48%),
    linear-gradient(180deg, rgba(41,61,88,0.94), rgba(27,45,70,0.96));
  border-color: rgba(137,174,226,0.34);
  box-shadow:
    0 13px 28px rgba(0,0,0,0.22),
    inset 0 1px 0 rgba(255,255,255,0.075),
    inset 0 -1px 0 rgba(0,0,0,0.16);
}

#players .ph-prematch .ph-lineup-canvas__slot.has-player .ph-lineup-canvas__name,
#players .ph-prematch .ph-lineup-canvas__bench-player,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player .ph-break-lineup-canvas__name,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
  color: rgba(255,255,255,0.94);
  text-shadow: 0 1px 10px rgba(0,0,0,0.22);
}

#players .ph-prematch .ph-lineup-canvas__slot.has-player.is-moved,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player.is-moved {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.105), rgba(255,255,255,0.00) 48%),
    linear-gradient(180deg, rgba(38,63,88,0.96), rgba(25,50,74,0.98));
}

/* PRE_MATCH + BREAK — suggestion guidance must win over premium player tile styling */
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.has-player.is-suggested-best,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.has-player.is-suggested-best {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.24), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(37,76,102,0.98), rgba(24,58,82,0.98));
  border-color: rgba(45,226,230,0.95);
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.has-player.is-suggested-strong,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.has-player.is-suggested-strong {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.18), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(39,70,96,0.98), rgba(25,53,78,0.98));
  border-color: rgba(45,226,230,0.68);
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.has-player.is-suggested-good,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.has-player.is-suggested-good {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.11), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(39,65,91,0.96), rgba(25,49,74,0.98));
  border-color: rgba(45,226,230,0.38);
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.has-player.is-suggested-soft,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.has-player.is-suggested-soft {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.07), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(37,58,84,0.94), rgba(24,44,68,0.96));
  border-color: rgba(45,226,230,0.24);
}

/* active drop target still wins over suggestion + premium styling */
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-drop-over,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player.is-drop-over {
  outline: 2px solid rgba(45,226,230,0.92);
  outline-offset: 2px;
}

/* PRE_MATCH — suggestion guidance must win over premium player tile styling */
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-suggested-best {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.24), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(37,76,102,0.98), rgba(24,58,82,0.98));
  border-color: rgba(45,226,230,0.95);
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-suggested-strong {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.18), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(39,70,96,0.98), rgba(25,53,78,0.98));
  border-color: rgba(45,226,230,0.68);
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-suggested-good {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.11), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(39,65,91,0.96), rgba(25,49,74,0.98));
  border-color: rgba(45,226,230,0.38);
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-suggested-soft {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(45,226,230,0.07), rgba(45,226,230,0.00) 52%),
    linear-gradient(180deg, rgba(37,58,84,0.94), rgba(24,44,68,0.96));
  border-color: rgba(45,226,230,0.24);
}

/* PRE_MATCH — active drop target still wins over suggestion + premium styling */
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.has-player.is-drop-over {
  outline: 2px solid rgba(45,226,230,0.92);
  outline-offset: 2px;
}


/* Coach Admin — Vandaag / Coach Today v0.1 */
body:has(#coachToday) {
  --ph-coach-today-shell-width: 420px;
  --ph-coach-today-shell-gutter: 7px;
}

body:has(#coachToday) .ph-admin-header,
body:has(#coachToday) .ph-admin-main {
  width: 100%;
  max-width: var(--ph-coach-today-shell-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ph-coach-today-shell-gutter);
  padding-right: var(--ph-coach-today-shell-gutter);
}

#coachToday {
  display: grid;
  gap: 18px;
  padding-bottom: 18px;
}

#coachToday .ph-coach-today__hero {
  border: 1px solid var(--ph-border-card);
  background: var(--ph-surface-card);
  box-shadow: var(--ph-shadow-card);
}

#coachToday .ph-coach-today__hero {
  border-radius: 28px;
  padding: 22px 20px 20px;
}

#coachToday .ph-coach-today__eyebrow {
  color: var(--ph-muted);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

#coachToday .ph-coach-today__title {
  color: var(--ph-text);
  font-size: clamp(2rem, 11vw, 3.4rem);
  font-weight: 900;
  letter-spacing: -0.075em;
  line-height: 0.88;
  margin: 0;
}

#coachToday .ph-coach-today__lead {
  color: var(--ph-text);
  font-size: 1.02rem;
  line-height: 1.5;
  margin: 16px 0 0;
  max-width: 34rem;
}

#coachToday .ph-coach-today__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

#coachToday .ph-coach-today__primary {
  border-color: color-mix(in srgb, var(--ph-accent) 48%, var(--ph-border));
}

#coachToday .ph-coach-today__section {
  border-radius: 24px;
  overflow: hidden;
}

#coachToday .ph-coach-today__section-head {
  align-items: center;
  border-bottom: 1px solid var(--ph-border);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 14px 16px;
}

#coachToday .ph-coach-today__section-title {
  color: var(--ph-text);
  font-size: 1rem;
  font-weight: 850;
  letter-spacing: -0.025em;
  margin: 0;
}

#coachToday .ph-coach-today__section-note {
  color: var(--ph-muted);
  font-size: 0.78rem;
  font-weight: 750;
}

#coachToday .ph-coach-today__weekstrip {
  display: grid;
  gap: 1px;
  background: var(--ph-border);
}

#coachToday .ph-coach-today__day {
  background: var(--ph-card-bg);
  display: grid;
  gap: 3px;
  padding: 14px 16px;
}

#coachToday .ph-coach-today__day.is-now {
  background: color-mix(in srgb, var(--ph-accent) 8%, var(--ph-card-bg));
}

#coachToday .ph-coach-today__day-label {
  color: var(--ph-muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

#coachToday .ph-coach-today__day strong {
  color: var(--ph-text);
  font-size: 1rem;
  font-weight: 850;
}

#coachToday .ph-coach-today__day small {
  color: var(--ph-muted);
  font-size: 0.86rem;
  line-height: 1.35;
}

#coachToday .ph-coach-today__plain-block {
  display: grid;
  gap: 8px;
  padding: 16px;
}

#coachToday .ph-coach-today__plain-block p {
  color: var(--ph-text);
  line-height: 1.48;
  margin: 0;
}

#coachToday .ph-coach-today__muted {
  color: var(--ph-muted) !important;
}

#coachToday .ph-coach-today__radar {
  display: grid;
  gap: 1px;
  list-style: none;
  margin: 0;
  padding: 0;
}

#coachToday .ph-coach-today__radar li {
  background: var(--ph-card-bg);
  color: var(--ph-text);
  line-height: 1.45;
  margin: 0;
  padding: 13px 16px;
}

#coachToday .ph-coach-today__footer {
  display: flex;
  justify-content: center;
  padding: 2px 0 0;
}

#coachToday .ph-coach-today__teamhub {
  color: var(--ph-muted);
  font-size: 0.9rem;
  font-weight: 750;
  text-decoration: none;
}

@media (min-width: 520px) {
  #coachToday .ph-coach-today__weekstrip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}









/* Coach Admin — Vandaag content density refinement v2 */
/* Keep the Coach Admin context header on the same shell as other views. */
body:has(#coachToday) {
  --ph-coach-today-shell-width: 420px;
  --ph-coach-today-shell-gutter: 7px;
}

/* Only refine the Vandaag content itself; do not stretch the header. */
#coachToday {
  width: 100%;
  gap: 16px;
}

#coachToday .ph-coach-today__hero {
  padding: 20px 16px 18px;
}

#coachToday .ph-coach-today__section-head {
  padding: 13px 14px;
}

#coachToday .ph-coach-today__day {
  padding: 13px 14px;
}

#coachToday .ph-coach-today__plain-block {
  padding: 14px;
}

#coachToday .ph-coach-today__radar li {
  padding: 12px 14px;
}


/* Coach Admin — Vandaag shell alignment v3 */
/* Match the standard Coach Admin shell: header/context bug must not grow wider on Vandaag. */
body:has(#coachToday) {
  --ph-coach-today-shell-width: 420px;
  --ph-coach-today-shell-gutter: 12px;
}

body:has(#coachToday) .ph-admin-header,
body:has(#coachToday) .ph-admin-main {
  padding-left: 12px;
  padding-right: 12px;
}

/* Let the Vandaag content use the same visual width as Team/other admin pages. */
#coachToday {
  margin-left: -12px;
  margin-right: -12px;
  width: auto;
}


/* Coach Hub dock — unified spacing baseline */
.ph-coach-dock {
  min-height: 62px;
  padding-top: 8px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
  align-items: center;
}

.ph-coach-dock > .ph-coach-dock__item {
  min-height: 42px;
  padding-top: 4px !important;
  padding-bottom: 6px !important;
  transform: none !important;
  transition:
    color 140ms ease,
    opacity 140ms ease,
    transform 110ms cubic-bezier(.2, .8, .2, 1) !important;
}

.ph-coach-dock > .ph-coach-dock__item:active {
  transform: scale(0.985) !important;
  opacity: .88;
}

.ph-coach-dock > .ph-coach-dock__item .ph-coach-dock__label {
  transform: none !important;
}


/* Coach Admin — Vandaag data-driven v0.2 */
#coachToday .ph-coach-today__hero[data-tone="attention"] {
  border-color: color-mix(in srgb, var(--ph-accent) 42%, var(--ph-border));
}

#coachToday .ph-coach-today__action-meta {
  align-self: center;
  color: var(--ph-muted);
  font-size: 0.84rem;
  font-weight: 750;
}

#coachToday .ph-coach-today__weekstrip a.ph-coach-today__day {
  color: inherit;
  text-decoration: none;
}

#coachToday .ph-coach-today__day[data-tone="attention"] {
  background: color-mix(in srgb, var(--ph-accent) 10%, var(--ph-card-bg));
}

#coachToday .ph-coach-today__counters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

#coachToday .ph-coach-today__counters span {
  border: 1px solid var(--ph-border);
  border-radius: 999px;
  color: var(--ph-muted);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1;
  padding: 7px 9px;
}

#coachToday .ph-coach-today__counters span[data-kind="yes"] {
  border-color: color-mix(in srgb, var(--ph-success) 36%, var(--ph-border));
  color: var(--ph-text);
}

#coachToday .ph-coach-today__counters span[data-kind="unknown"] {
  border-color: color-mix(in srgb, var(--ph-accent) 34%, var(--ph-border));
}

#coachToday .ph-coach-today__inline-action {
  justify-self: start;
  margin-top: 4px;
}


/* Coach Admin — Vandaag design pass v0.3 */
#coachToday {
  gap: 14px;
}

#coachToday .ph-coach-today__hero {
  border-radius: 26px;
  padding: 18px 16px 16px;
}

#coachToday .ph-coach-today__hero-top {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 12px;
}

#coachToday .ph-coach-today__eyebrow {
  margin-bottom: 0;
}

#coachToday .ph-coach-today__status {
  border: 1px solid var(--ph-border);
  border-radius: 999px;
  color: var(--ph-muted);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1;
  padding: 6px 8px;
  white-space: nowrap;
}

#coachToday .ph-coach-today__status[data-tone="attention"] {
  border-color: color-mix(in srgb, var(--ph-accent) 42%, var(--ph-border));
  color: var(--ph-text);
}

#coachToday .ph-coach-today__title {
  font-size: clamp(1.8rem, 8.8vw, 2.55rem);
  letter-spacing: -0.062em;
  line-height: 0.94;
  max-width: 10ch;
}

#coachToday .ph-coach-today__lead {
  color: color-mix(in srgb, var(--ph-text) 88%, var(--ph-muted));
  font-size: 0.98rem;
  line-height: 1.42;
  margin-top: 13px;
}

#coachToday .ph-coach-today__primary-row {
  align-items: center;
  border-top: 1px solid var(--ph-border);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-top: 16px;
  padding-top: 14px;
}

#coachToday .ph-coach-today__primary-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

#coachToday .ph-coach-today__primary-copy span {
  color: var(--ph-muted);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

#coachToday .ph-coach-today__primary-copy strong {
  color: var(--ph-text);
  font-size: 0.95rem;
  font-weight: 850;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__primary-button {
  align-items: center;
  background: color-mix(in srgb, var(--ph-accent) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--ph-accent) 50%, var(--ph-border));
  border-radius: 999px;
  color: var(--ph-text);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.88rem;
  font-weight: 900;
  justify-content: center;
  min-height: 36px;
  padding: 0 13px;
  text-decoration: none;
}

#coachToday .ph-coach-today__section {
  border-radius: 22px;
}

#coachToday .ph-coach-today__section-head {
  padding: 12px 14px;
}

#coachToday .ph-coach-today__section-note {
  max-width: 46%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__weekstrip {
  background: transparent;
  gap: 0;
}

#coachToday .ph-coach-today__day {
  align-items: start;
  border-top: 1px solid var(--ph-border);
  display: grid;
  gap: 10px;
  grid-template-columns: 8px minmax(0, 1fr);
  padding: 13px 14px;
}

#coachToday .ph-coach-today__day:first-child {
  border-top: 0;
}

#coachToday .ph-coach-today__day-dot {
  background: var(--ph-border);
  border-radius: 999px;
  height: 8px;
  margin-top: 7px;
  width: 8px;
}

#coachToday .ph-coach-today__day[data-tone="attention"] .ph-coach-today__day-dot {
  background: var(--ph-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ph-accent) 12%, transparent);
}

#coachToday .ph-coach-today__day-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

#coachToday .ph-coach-today__day strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__event {
  display: grid;
  gap: 12px;
  padding: 14px;
}

#coachToday .ph-coach-today__event-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

#coachToday .ph-coach-today__event-kicker {
  color: var(--ph-muted);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

#coachToday .ph-coach-today__event-main strong {
  color: var(--ph-text);
  font-size: 1.06rem;
  font-weight: 900;
  line-height: 1.16;
}

#coachToday .ph-coach-today__event-main small {
  color: var(--ph-muted);
  font-size: 0.9rem;
  line-height: 1.3;
}

#coachToday .ph-coach-today__counters {
  margin-top: 0;
}

#coachToday .ph-coach-today__counters span {
  background: color-mix(in srgb, var(--ph-card-bg) 78%, transparent);
  padding: 7px 8px;
}

#coachToday .ph-coach-today__text-action {
  color: var(--ph-text);
  font-size: 0.9rem;
  font-weight: 900;
  justify-self: start;
  text-decoration: none;
}

#coachToday .ph-coach-today__radar li {
  align-items: start;
  border-top: 1px solid var(--ph-border);
  display: grid;
  gap: 10px;
  grid-template-columns: 8px minmax(0, 1fr);
  padding: 12px 14px;
}

#coachToday .ph-coach-today__radar li:first-child {
  border-top: 0;
}

#coachToday .ph-coach-today__radar-dot {
  background: color-mix(in srgb, var(--ph-accent) 45%, var(--ph-border));
  border-radius: 999px;
  height: 7px;
  margin-top: 7px;
  width: 7px;
}

#coachToday .ph-coach-today__radar li span:last-child {
  min-width: 0;
}

@media (min-width: 520px) {
  #coachToday .ph-coach-today__weekstrip {
    grid-template-columns: 1fr;
  }
}


/* Coach Admin — Vandaag hero title wrap fix */
#coachToday .ph-coach-today__title {
  max-width: 14ch;
}


/* Coach Admin — Vandaag hero title width fix v2 */
#coachToday .ph-coach-today__title {
  max-width: none;
}


/* Coach Admin — Vandaag intelligence v0.4 */
#coachToday .ph-coach-today__radar li[data-tone="attention"] .ph-coach-today__radar-dot,
#coachToday .ph-coach-today__radar li[data-tone="urgent"] .ph-coach-today__radar-dot {
  background: var(--ph-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ph-accent) 12%, transparent);
}

#coachToday .ph-coach-today__radar-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

#coachToday .ph-coach-today__radar-copy strong {
  color: var(--ph-text);
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1.22;
}

#coachToday .ph-coach-today__radar-copy small {
  color: var(--ph-muted);
  font-size: 0.86rem;
  line-height: 1.3;
}

#coachToday .ph-coach-today__radar-copy a {
  color: var(--ph-text);
  font-size: 0.86rem;
  font-weight: 900;
  justify-self: start;
  margin-top: 2px;
  text-decoration: none;
}


/* Coach Admin — Vandaag organization v0.5 */

#coachToday .ph-coach-today__now-row {
  align-items: center;
  display: grid;
  gap: 11px;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  padding: 14px;
}

#coachToday .ph-coach-today__now-marker {
  background: var(--ph-border);
  border-radius: 999px;
  height: 8px;
  width: 8px;
}

#coachToday .ph-coach-today__now-row[data-tone="attention"] .ph-coach-today__now-marker {
  background: var(--ph-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ph-accent) 12%, transparent);
}

#coachToday .ph-coach-today__now-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

#coachToday .ph-coach-today__now-copy strong {
  color: var(--ph-text);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.16;
}

#coachToday .ph-coach-today__now-copy small {
  color: var(--ph-muted);
  font-size: 0.87rem;
  line-height: 1.3;
}

#coachToday .ph-coach-today__now-action {
  align-items: center;
  background: color-mix(in srgb, var(--ph-accent) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--ph-accent) 42%, var(--ph-border));
  border-radius: 999px;
  color: var(--ph-text);
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 900;
  min-height: 34px;
  padding: 0 11px;
  text-decoration: none;
  white-space: nowrap;
}

#coachToday .ph-coach-today__plan-list {
  display: grid;
}

#coachToday .ph-coach-today__plan-row {
  align-items: center;
  border-top: 1px solid var(--ph-border);
  color: inherit;
  display: grid;
  gap: 10px;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  min-height: 62px;
  padding: 12px 14px;
  text-decoration: none;
}

#coachToday .ph-coach-today__plan-row:first-child {
  border-top: 0;
}

#coachToday .ph-coach-today__plan-kind {
  color: var(--ph-muted);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

#coachToday .ph-coach-today__plan-row[data-tone="attention"] .ph-coach-today__plan-kind {
  color: var(--ph-text);
}

#coachToday .ph-coach-today__plan-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

#coachToday .ph-coach-today__plan-main strong {
  color: var(--ph-text);
  font-size: 0.97rem;
  font-weight: 900;
  line-height: 1.16;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__plan-main small {
  color: var(--ph-muted);
  font-size: 0.84rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__mini-counters {
  display: inline-flex;
  gap: 4px;
  justify-content: flex-end;
}

#coachToday .ph-coach-today__mini-counters span {
  align-items: center;
  border: 1px solid var(--ph-border);
  border-radius: 999px;
  color: var(--ph-muted);
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 900;
  height: 25px;
  justify-content: center;
  min-width: 25px;
  padding: 0 7px;
}

#coachToday .ph-coach-today__mini-counters span[data-kind="yes"] {
  border-color: color-mix(in srgb, var(--ph-success) 34%, var(--ph-border));
  color: var(--ph-text);
}

#coachToday .ph-coach-today__mini-counters span[data-kind="unknown"] {
  border-color: color-mix(in srgb, var(--ph-accent) 34%, var(--ph-border));
  color: var(--ph-text);
}

#coachToday .ph-coach-today__plan-state {
  color: var(--ph-muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-align: right;
}

#coachToday .ph-coach-today__plan-row--empty {
  grid-template-columns: 72px minmax(0, 1fr);
}

#coachToday .ph-coach-today__plan-legend {
  border-top: 1px solid var(--ph-border);
  color: var(--ph-muted);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 14px 12px;
}

#coachToday .ph-coach-today__plan-legend span {
  font-size: 0.72rem;
  font-weight: 800;
}

#coachToday .ph-coach-today__radar li {
  min-height: 54px;
}

@media (max-width: 380px) {
  #coachToday .ph-coach-today__plan-row {
    grid-template-columns: 62px minmax(0, 1fr);
  }

  #coachToday .ph-coach-today__mini-counters,
  #coachToday .ph-coach-today__plan-state {
    grid-column: 2;
    justify-self: start;
  }

  #coachToday .ph-coach-today__now-row {
    grid-template-columns: 8px minmax(0, 1fr);
  }

  #coachToday .ph-coach-today__now-action {
    grid-column: 2;
    justify-self: start;
  }
}






/* Vandaag uses the same DS card-list context as other Coach Admin views. */
#coachToday.phds-card-list {
  margin-top: 0;
}

#coachToday.phds-card-list > .phds-card + .phds-card {
  margin-top: 0;
}




/* Older Today rules used non-existing --ph-card-bg / --ph-border / --ph-card-shadow tokens
   and overrode the shared .phds-card primitive. Keep Hero custom, restore DS cards below. */
#coachToday .ph-coach-today__section.phds-card {
  background: var(--ph-surface-card);
  border: 1px solid var(--ph-border-card);
  box-shadow: var(--ph-shadow-card);
}



/* Same idea as team.php: root is phds-card-list, each block below the hero is a phds-card. */
#coachToday.phds-card-list {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);
  margin-top: 0;
}

#coachToday.phds-card-list > .phds-card + .phds-card {
  margin-top: 0;
}

#coachToday .ph-coach-today__section.phds-card {
  width: 100%;
  box-sizing: border-box;
}

/* Today-specific internals only. The shell belongs to .phds-card. */
#coachToday .ph-coach-today__section-head {
  padding: 0 0 13px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

#coachToday .ph-coach-today__now-row,
#coachToday .ph-coach-today__plan-list,
#coachToday .ph-coach-today__radar {
  margin-top: 0;
}

#coachToday .ph-coach-today__plan-row {
  padding-left: 0;
  padding-right: 0;
}

#coachToday .ph-coach-today__radar li {
  padding-left: 0;
  padding-right: 0;
}

#coachToday .ph-coach-today__plan-legend {
  padding-left: 0;
  padding-right: 0;
}




/* Coach Admin — Vandaag final card cleanup */
/* Hero is intentionally loose. Content sections below use the shared PHDS card primitive. */
#coachToday.phds-card-list {
  display: flex;
  flex-direction: column;
  gap: var(--ph-card-stack-gap);
  margin-top: 0;
}

#coachToday .ph-coach-today__hero {
  background: transparent;
  border: 0;
  box-shadow: none;
}

#coachToday > .ph-coach-today__section.phds-card {
  background: var(--ph-surface-card);
  border: 1px solid var(--ph-border-card);
  box-shadow: var(--ph-shadow-card);
  border-radius: var(--ph-radius);
  padding: 16px 16px 18px;
  width: 100%;
  box-sizing: border-box;
}

#coachToday > .phds-card + .phds-card {
  margin-top: 0;
}

/* Coach Admin — Vandaag / Coach Today v0.6 */
body:has(#coachToday) {
  --ph-coach-today-shell-width: 420px;
  --ph-coach-today-shell-gutter: 12px;
}

body:has(#coachToday) .ph-admin-header,
body:has(#coachToday) .ph-admin-main {
  max-width: var(--ph-coach-today-shell-width);
  padding-left: var(--ph-coach-today-shell-gutter);
  padding-right: var(--ph-coach-today-shell-gutter);
}

#coachToday.phds-card-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-bottom: 30px;
}

#coachToday.phds-card-list > .phds-card + .phds-card {
  margin-top: 0;
}

#coachToday .ph-coach-today__hero {
  padding: 10px 2px 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#coachToday .ph-coach-today__hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

#coachToday .ph-coach-today__eyebrow,
#coachToday .ph-coach-today__section-kicker {
  color: var(--ph-card-kicker-text);
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#coachToday .ph-coach-today__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 9px;
  border: 1px solid var(--ph-card-border);
  border-radius: 999px;
  color: var(--ph-card-muted-text);
  font-size: 0.76rem;
  font-weight: 800;
  white-space: nowrap;
}

#coachToday .ph-coach-today__status[data-tone="attention"],
#coachToday .ph-coach-today__status[data-tone="urgent"] {
  color: var(--ph-card-title-text);
  border-color: rgba(45, 226, 230, 0.42);
  background: rgba(45, 226, 230, 0.08);
}

#coachToday .ph-coach-today__title {
  max-width: 11ch;
  margin: 0;
  color: var(--ph-card-title-text);
  font-size: clamp(2.25rem, 12vw, 3.35rem);
  line-height: 0.92;
  letter-spacing: -0.07em;
}

#coachToday .ph-coach-today__lead {
  max-width: 34ch;
  margin: 12px 0 0;
  color: var(--ph-card-body-text);
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.42;
}

#coachToday > .ph-coach-today__section.phds-card {
  width: 100%;
}

#coachToday .phds-card__head {
  align-items: center;
}

#coachToday .phds-card__title {
  margin-top: 2px;
}

#coachToday .ph-coach-today__primary-panel {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
}

#coachToday .ph-coach-today__primary-panel p {
  margin: 0;
  color: var(--ph-card-body-text);
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.38;
}

#coachToday .ph-coach-today__pulse-dot {
  width: 10px;
  height: 10px;
  margin-top: 0.35em;
  border-radius: 999px;
  background: var(--ph-card-muted-text);
  opacity: 0.72;
}

#coachToday .ph-coach-today__info-dot {
  width: 7px;
  height: 7px;
  margin-top: 0.42em;
  border-radius: 999px;
  background: var(--ph-card-muted-text);
  opacity: 0.62;
}

#coachToday [data-tone="attention"] > .ph-coach-today__pulse-dot,
#coachToday [data-tone="urgent"] > .ph-coach-today__pulse-dot,
#coachToday .ph-coach-today__info-row[data-tone="attention"] .ph-coach-today__info-dot,
#coachToday .ph-coach-today__info-row[data-tone="urgent"] .ph-coach-today__info-dot {
  background: var(--ph-accent);
  opacity: 1;
  box-shadow: 0 0 0 4px rgba(45, 226, 230, 0.12);
}

#coachToday .ph-coach-today__weekstrip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

#coachToday .ph-coach-today__weekitem {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--ph-card-border);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.035);
  color: inherit;
  text-decoration: none;
}

#coachToday .ph-coach-today__weekitem[data-tone="attention"] {
  border-color: rgba(45, 226, 230, 0.34);
  background: rgba(45, 226, 230, 0.075);
}

#coachToday .ph-coach-today__weekitem span,
#coachToday .ph-coach-today__weekitem small {
  display: block;
  color: var(--ph-card-muted-text);
  font-size: 0.72rem;
  font-weight: 780;
  line-height: 1.2;
}

#coachToday .ph-coach-today__weekitem strong {
  display: block;
  margin: 4px 0;
  overflow: hidden;
  color: var(--ph-card-title-text);
  font-size: 0.86rem;
  font-weight: 850;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__row-list {
  display: grid;
  gap: 0;
}

#coachToday .ph-coach-today__radar-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  padding: 16px 0;
  color: inherit;
  text-decoration: none;
}

#coachToday .ph-coach-today__radar-item:first-child {
  padding-top: 0;
}

#coachToday .ph-coach-today__radar-item + .ph-coach-today__radar-item {
  border-top: 1px solid rgba(255,255,255,0.10);
}

#coachToday .ph-coach-today__radar-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 28px;
}

#coachToday .ph-coach-today__radar-head strong {
  min-width: 0;
  color: var(--ph-card-title-text);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
}

#coachToday .ph-coach-today__radar-action {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 8px;
  background: rgba(255,255,255,0.045);
  color: rgba(255,255,255,0.88);
  font-family: var(--ph-font);
  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

#coachToday .ph-coach-today__radar-action {
  text-decoration: none;
}

#coachToday .ph-coach-today__radar-action:hover,
#coachToday .ph-coach-today__radar-action:focus-visible {
  border-color: rgba(255,255,255,0.24);
  background: rgba(255,255,255,0.065);
  color: rgba(255,255,255,0.94);
}

#coachToday .ph-coach-today__radar-body {
  display: block;
  max-width: none;
  margin: 0;
  color: var(--ph-card-muted-text);
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.45;
}

#coachToday .ph-coach-today__panel-main {
  display: grid;
  gap: 14px;
}

#coachToday .ph-coach-today__panel-main p {
  margin: 0;
  color: var(--ph-card-body-text);
  font-size: 0.96rem;
  font-weight: 680;
  line-height: 1.38;
}

#coachToday .ph-coach-today__counters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

#coachToday .ph-coach-today__counters span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 9px 8px;
  border: 1px solid var(--ph-card-border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.035);
  text-align: center;
}

#coachToday .ph-coach-today__counters strong {
  color: var(--ph-card-title-text);
  font-size: 1.08rem;
  font-weight: 900;
  line-height: 1;
}

#coachToday .ph-coach-today__counters small {
  overflow: hidden;
  color: var(--ph-card-muted-text);
  font-size: 0.72rem;
  font-weight: 780;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__counters span[data-kind="yes"] {
  border-color: rgba(46, 204, 113, 0.28);
}

#coachToday .ph-coach-today__counters span[data-kind="unknown"] {
  border-color: rgba(45, 226, 230, 0.34);
  background: rgba(45, 226, 230, 0.065);
}

#coachToday .ph-coach-today__panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

#coachToday .ph-coach-today__footer {
  display: flex;
  justify-content: center;
  padding: 0 0 4px;
}

#coachToday .ph-coach-today__teamhub {
  color: var(--ph-card-muted-text);
  font-size: 0.86rem;
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 380px) {
  #coachToday .ph-coach-today__weekstrip,
  #coachToday .ph-coach-today__counters {
    grid-template-columns: 1fr;
  }
}

/* Coach Admin — Vandaag v0.7 narrative actions */
#coachToday .ph-coach-today__nudge {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
}

#coachToday .ph-coach-today__nudge p {
  margin: 0;
  color: var(--ph-card-body-text);
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.4;
}

#coachToday .ph-coach-today__nudge-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 16px;
}

#coachToday .ph-coach-today__action {
  cursor: pointer;
  text-decoration: none;
}

#coachToday .ph-coach-today__action[data-tone="primary"] {
  border-color: rgba(45, 226, 230, 0.42);
  background: rgba(45, 226, 230, 0.1);
  color: var(--ph-card-title-text);
}

#coachToday .ph-coach-today__action:disabled {
  cursor: wait;
  opacity: 0.72;
}

#coachToday .ph-coach-today__section--notes .phds-card__body {
  padding-top: 0;
}

/* Coach Admin — Vandaag v0.7 active hero */
#coachToday .ph-coach-today__meta-line {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin: 12px 0 0;
  padding: 5px 9px;
  border: 1px solid rgba(45, 226, 230, 0.24);
  border-radius: 999px;
  background: rgba(45, 226, 230, 0.07);
  color: var(--ph-card-muted-text);
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1.2;
}

#coachToday .ph-coach-today__body {
  max-width: 34ch;
  margin: 10px 0 0;
  color: var(--ph-card-muted-text);
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1.38;
}

#coachToday .ph-coach-today__hero > .ph-coach-today__nudge-actions {
  justify-content: flex-end;
  margin-top: 18px;
}

#coachToday .ph-coach-today__hero .ph-coach-today__action[data-tone="primary"] {
  border-color: rgba(45, 226, 230, 0.5);
  background: rgba(45, 226, 230, 0.12);
}

/* Coach Admin — Vandaag hero meta refinement */
#coachToday .ph-coach-today__meta-line {
  margin: 10px 0 10px;
}

#coachToday .ph-coach-today__hero .ph-coach-today__body {
  max-width: none;
}

/* Coach Admin — Vandaag active hero final tweaks */
#coachToday .ph-coach-today__meta-line {
  margin: 17px 0 0;
}

#coachToday .ph-coach-today__hero .ph-coach-today__body {
  max-width: none;
}

#coachToday .ph-coach-today__hero > .ph-coach-today__nudge-actions {
  justify-content: flex-end;
}

/* Coach Admin — Vandaag week agenda rows */
#coachToday .ph-coach-today__agenda {
  display: grid;
  gap: 0;
}

#coachToday .ph-coach-today__agenda-row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 14px;
  padding: 14px 0;
  color: inherit;
  text-decoration: none;
}

#coachToday .ph-coach-today__agenda-row:first-child {
  padding-top: 0;
}

#coachToday .ph-coach-today__agenda-row:last-child {
  padding-bottom: 0;
}

#coachToday .ph-coach-today__agenda-row + .ph-coach-today__agenda-row {
  border-top: 1px solid rgba(255,255,255,0.08);
}

#coachToday .ph-coach-today__agenda-date {
  display: grid;
  align-content: start;
  justify-items: start;
  min-height: 72px;
  padding-right: 12px;
  border-right: 1px solid rgba(255,255,255,0.10);
  color: var(--ph-card-muted-text);
  line-height: 1;
}

#coachToday .ph-coach-today__agenda-day,
#coachToday .ph-coach-today__agenda-month {
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

#coachToday .ph-coach-today__agenda-num {
  margin: 5px 0 4px;
  color: var(--ph-card-title-text);
  font-size: 1.36rem;
  font-weight: 900;
  letter-spacing: -0.04em;
}

#coachToday .ph-coach-today__agenda-main {
  display: grid;
  gap: 8px;
  min-width: 0;
  align-content: start;
}

#coachToday .ph-coach-today__agenda-head {
  display: grid;
  gap: 3px;
  min-width: 0;
}

#coachToday .ph-coach-today__agenda-head strong {
  min-width: 0;
  overflow: hidden;
  color: var(--ph-card-title-text);
  font-size: 0.95rem;
  font-weight: 880;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#coachToday .ph-coach-today__agenda-head span {
  color: var(--ph-card-muted-text);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.15;
}

#coachToday .ph-coach-today__agenda-assist {
  margin: 0;
  color: var(--ph-text-muted);
  font-size: 0.86rem;
  font-weight: 720;
  line-height: 1.32;
}

#coachToday .ph-coach-today__agenda-row[data-tone="attention"] .ph-coach-today__agenda-assist {
  color: var(--ph-card-title-text);
}

#coachToday .ph-coach-today__agenda-row[data-tone="muted"] {
  opacity: 0.72;
}

#coachToday .ph-coach-today__agenda-presence {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 1px;
}

#coachToday .ph-coach-today__agenda-presence span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 24px;
  padding: 4px 7px;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 999px;
  background: rgba(255,255,255,0.035);
  color: var(--ph-card-muted-text);
  font-size: 0.74rem;
  font-weight: 850;
  line-height: 1;
}

#coachToday .ph-coach-today__agenda-presence span[data-kind="yes"] {
  border-color: rgba(37, 211, 102, 0.24);
}

#coachToday .ph-coach-today__agenda-presence span[data-kind="unknown"] {
  border-color: rgba(45, 226, 230, 0.26);
  color: var(--ph-card-title-text);
}

@media (max-width: 420px) {
  #coachToday .ph-coach-today__agenda-row {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
  }

  #coachToday .ph-coach-today__agenda-date {
    padding-right: 10px;
  }

  #coachToday .ph-coach-today__agenda-num {
    font-size: 1.25rem;
  }
}

/* Coach Admin — Vandaag agenda date block Team Hub alignment */
#coachToday .ph-coach-today__agenda-date {
  align-content: center;
  justify-content: center;
  justify-items: center;
  text-align: center;
}

#coachToday .ph-coach-today__agenda-day {
  color: var(--ph-accent);
}

#coachToday .ph-coach-today__agenda-num {
  color: var(--ph-card-title-text);
}

#coachToday .ph-coach-today__agenda-month {
  color: var(--ph-card-muted-text);
}

/* Coach Admin — Vandaag agenda type hierarchy */
#coachToday .ph-coach-today__agenda-head span {
  font-weight: var(--ph-weight-medium);
}

#coachToday .ph-coach-today__agenda-assist {
  font-weight: var(--ph-weight-regular);
}

/* Coach Admin — Vandaag agenda date top alignment */
#coachToday .ph-coach-today__agenda-date {
  align-content: start;
  justify-content: center;
  justify-items: center;
  text-align: center;
}

/* Coach Admin — Vandaag agenda time size */
#coachToday .ph-coach-today__agenda-head span {
  font-size: var(--ph-text-sm);
}

/* Coach Admin — Vandaag agenda header alignment */
#coachToday .ph-coach-today__agenda-main {
  padding-top: 0;
}

#coachToday .ph-coach-today__agenda-head {
  margin-top: -2px;
}

/* Coach Admin — Vandaag agenda match subtitle */
#coachToday .ph-coach-today__agenda-subtitle {
  white-space: normal;
  overflow-wrap: anywhere;
  color: var(--ph-card-title-text);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-semibold);
  line-height: 1.18;
}

#coachToday .ph-coach-today__agenda-subtitle + span {
  margin-top: 1px;
}

/* Coach Admin — Vandaag agenda match opponent primary */
#coachToday .ph-coach-today__agenda-row[data-type="match"] .ph-coach-today__agenda-head strong {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Coach Admin — Vandaag shared presence counters */
#coachToday .ph-coach-today__agenda-counters {
  margin-top: 2px;
}

#coachToday .ph-coach-today__agenda-counters .phds-teamhub-staff-presence__item {
  min-height: 24px;
}

/* Coach Admin — Vandaag agenda done state */
#coachToday .ph-coach-today__agenda-row[data-state="done"] .ph-coach-today__agenda-date,
#coachToday .ph-coach-today__agenda-row[data-state="done"] .ph-coach-today__agenda-head,
#coachToday .ph-coach-today__agenda-row[data-state="done"] .ph-coach-today__agenda-assist,
#coachToday .ph-coach-today__agenda-row[data-state="done"] .phds-teamhub-presence-counters {
  opacity: 0.68;
}

#coachToday .ph-coach-today__agenda-row[data-state="done"] .ph-coach-today__agenda-assist {
  color: var(--ph-text-muted);
}

#coachToday .ph-coach-today__agenda-row[data-state="needs_action"] .ph-coach-today__agenda-assist {
  color: var(--ph-card-title-text);
}

/* Coach Today: use the design-system card stack gap between top-level blocks. */
#coachToday > .ph-coach-today__section,
#coachToday > .ph-coach-today__footer {
  margin-block: 0;
}

#coachToday > .ph-coach-today__section + .ph-coach-today__section,
#coachToday > .ph-coach-today__section + .ph-coach-today__footer {
  margin-top: var(--ph-card-stack-gap);
}

/* Coach Today: final top-level stack spacing override. */
#coachToday.phds-card-list {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--ph-card-stack-gap) !important;
}

#coachToday.phds-card-list > .ph-coach-today__hero,
#coachToday.phds-card-list > .ph-coach-today__section,
#coachToday.phds-card-list > .ph-coach-today__footer {
  margin-block: 0 !important;
}

#coachToday.phds-card-list > .phds-card + .phds-card,
#coachToday.phds-card-list > .ph-coach-today__section + .ph-coach-today__section,
#coachToday.phds-card-list > .ph-coach-today__section + .ph-coach-today__footer {
  margin-top: 0 !important;
}

/* Team Hub — presence cutoff closed state */
.phds-teamhub-presence-closed {
  margin-top: 10px;
  padding: 10px 12px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.045);
}

.phds-teamhub-presence-closed__title {
  margin: 0;

  color: var(--ph-card-title-text);

  font-size: 12px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.2;
}

.phds-teamhub-presence-closed__text {
  margin: 4px 0 0;

  color: var(--ph-card-body-text-muted);

  font-size: 12px;
  line-height: 1.3;
}


/* Team Hub — late presence update actions after cutoff */
.phds-teamhub-presence-locked-actions {
  justify-self: end;

  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.phds-teamhub-presence-row[data-late-update="1"] .phds-teamhub-presence-footer {
  gap: 10px;
}

@media (max-width: 420px) {
  .phds-teamhub-presence-locked-actions {
    align-items: flex-end;
  }

  .phds-teamhub-presence-locked-actions .phds-teamhub-presence-edit {
    min-height: 30px;
    padding-inline: 10px;
  }
}

/* PRE_MATCH start guard */
#players .ph-prematch .ph-pm-startcta--locked {
  margin-top: 14px;
}

/* Specific override for the normal PRE_MATCH disabled start rule on #pmStartBtn:disabled */
#players .ph-prematch #pmStartBtn.ph-pm-startbtn--disabled,
#players .ph-prematch #pmStartBtn.ph-pm-startbtn--disabled:hover,
#players .ph-prematch #pmStartBtn.ph-pm-startbtn--disabled:active,
#players .ph-prematch #pmStartBtn.ph-pm-startbtn--disabled:disabled {
  opacity: 1 !important;
  cursor: default !important;
  pointer-events: none !important;
  transform: none !important;

  color: #052033 !important;
  -webkit-text-fill-color: #052033 !important;

  border-color: rgba(45,226,230,0.72) !important;

  background:
    radial-gradient(
      120% 180% at 50% -70%,
      rgba(255,255,255,0.18),
      rgba(255,255,255,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(43,220,225,0.86) 0%,
      rgba(29,191,199,0.82) 46%,
      rgba(18,165,180,0.80) 100%
    ) !important;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.14),
    0 0 14px rgba(45,226,230,0.12),
    0 10px 22px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(0,0,0,0.14) !important;

  filter: saturate(0.86) brightness(0.72) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,0.12) !important;
}

#players .ph-prematch #pmStartBtn.ph-pm-startbtn--disabled .ph-cta-label {
  opacity: 1 !important;
  color: rgba(5,32,51,0.82) !important;
  -webkit-text-fill-color: rgba(5,32,51,0.82) !important;
  font-weight: 850 !important;
  letter-spacing: 0.01em !important;
}

/* Training add player panel v1.1 */
#coachTrainings .ph-training-add-player-panel {
  overflow: hidden;
}

#coachTrainings .ph-training-add-player-title {
  color: var(--ph-text-strong);
}

#coachTrainings .ph-training-add-player-copy {
  margin-bottom: 16px;
  max-width: 34rem;
  color: var(--ph-card-body-text-muted);
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 0.93rem;
  line-height: 1.38;
}

#coachTrainings .ph-training-add-player-form {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 12px;
}

#coachTrainings .ph-training-add-player-panel .ph-field {
  min-width: 0;
  display: grid;
  gap: 7px;
}

#coachTrainings .ph-training-add-player-panel .ph-field > span {
  color: var(--ph-card-body-text-muted);
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .28px;
  line-height: 1;
  text-transform: uppercase;
}

#coachTrainings .ph-training-add-player-panel .phds-select,
#coachTrainings .ph-training-add-player-panel .phds-input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  font-size: 16px;
}

#coachTrainings .ph-training-add-player-results {
  display: grid;
  gap: 0;
  margin-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.075);
  border-bottom: 1px solid rgba(255,255,255,0.075);
}

#coachTrainings .ph-training-add-player-empty {
  padding: 13px 0;
  color: var(--ph-card-body-text-muted);
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 0.93rem;
  line-height: 1.35;
}

#coachTrainings .ph-training-add-player-empty.is-error {
  color: var(--ph-danger-text);
}

#coachTrainings .ph-training-add-player-result {
  width: 100%;
  min-height: 50px;
  padding: 12px 0;
  appearance: none;
  border: 0;
  border-top: 1px solid rgba(255,255,255,0.065);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ph-card-body-text);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
  font-family: "Source Sans 3", system-ui, sans-serif;
  cursor: pointer;
}

#coachTrainings .ph-training-add-player-result:first-child {
  border-top: 0;
}

#coachTrainings .ph-training-add-player-result:hover {
  background: linear-gradient(90deg, rgba(45,226,230,0.07), transparent 72%);
}

#coachTrainings .ph-training-add-player-result.is-selected {
  background: linear-gradient(90deg, rgba(45,226,230,0.12), rgba(45,226,230,0.02) 78%);
}

#coachTrainings .ph-training-add-player-result__main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

#coachTrainings .ph-training-add-player-result__name {
  color: var(--ph-card-body-text);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.15;
}

#coachTrainings .ph-training-add-player-result__team {
  display: none;
}

#coachTrainings .ph-training-source-badge {
  flex: 0 0 auto;
  white-space: nowrap;
}

#coachTrainings .ph-training-add-player-selected {
  margin-top: 13px;
}

#coachTrainings .ph-training-add-player-selected__copy {
  color: var(--ph-card-body-text);
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 0.95rem;
  line-height: 1.35;
}

#coachTrainings .ph-training-add-player-selected__copy span {
  margin-left: 6px;
}

#coachTrainings .ph-training-add-player-selected__copy.is-muted {
  color: var(--ph-card-body-text-muted);
}

#coachTrainings .ph-training-add-player-note {
  margin-top: 12px;
}

#coachTrainings .ph-training-add-player-footer {
  width: 100% !important;
  box-sizing: border-box;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.09);
}

#coachTrainings .ph-training-add-player-footer .phds-card-action {
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap;
}

@media (max-width: 720px) {
  #coachTrainings .ph-training-add-player-form {
    grid-template-columns: 1fr;
  }

  #coachTrainings .ph-training-add-player-result {
    align-items: center;
  }
}


/* Training add player panel v1.2 — microcopy and field sizing */
#coachTrainings .ph-training-add-player-copy {
  font-size: 0.86rem;
  line-height: 1.36;
}

#coachTrainings .ph-training-add-player-panel .phds-select,
#coachTrainings .ph-training-add-player-panel input.phds-input[type="search"] {
  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
}

#coachTrainings .ph-training-add-player-panel input.phds-input[type="text"] {
  font-size: 14px;
  font-weight: var(--ph-weight-semibold);
}

#coachTrainings .ph-training-add-player-field-hint {
  margin-top: -1px;
  color: var(--ph-card-body-text-muted);
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 11px;
  font-weight: var(--ph-weight-semibold);
  line-height: 1.25;
  opacity: .72;
}

#coachTrainings .ph-training-add-player-selected__copy,
#coachTrainings .ph-training-add-player-selected__copy.is-muted {
  font-size: 0.84rem;
  line-height: 1.32;
}

#coachTrainings .ph-training-add-player-selected {
  margin-top: 11px;
}

#coachTrainings .ph-training-add-player-note {
  margin-top: 11px;
}


/* Training add player panel v1.3 — compact fields and restored team badges */
#coachTrainings .ph-training-add-player-panel .phds-select,
#coachTrainings .ph-training-add-player-panel input.phds-input[type="search"],
#coachTrainings .ph-training-add-player-panel input.phds-input[type="text"] {
  font-size: 11px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .18px;
}

#coachTrainings .ph-training-add-player-result__name {
  font-size: 0.86rem;
  font-weight: var(--ph-weight-bold);
  line-height: 1.18;
}

#coachTrainings .ph-training-source-badge,
#coachTrainings .ph-training-add-player-selected__copy span {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 18px;
  padding: 1px 6px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(45,226,230,0.34);
  background: rgba(45,226,230,0.12);

  color: var(--ph-accent);

  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1.1;
  text-transform: uppercase;
  white-space: nowrap;
}

#coachTrainings .ph-training-add-player-selected__copy span {
  margin-left: 7px;
  opacity: 1;
}

/* Training add player panel v1.4 — field proportions and helper text */
#coachTrainings .ph-training-add-player-form {
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
  align-items: start;
}

#coachTrainings .ph-training-add-player-panel .ph-field {
  align-content: start;
}

#coachTrainings .ph-training-add-player-panel .ph-field > span:not(.ph-training-add-player-field-hint) {
  min-height: 12px;
  display: flex;
  align-items: flex-end;
}

#coachTrainings .ph-training-add-player-panel .phds-select,
#coachTrainings .ph-training-add-player-panel input.phds-input[type="search"],
#coachTrainings .ph-training-add-player-panel input.phds-input[type="text"] {
  height: 38px;
  min-height: 38px;
  line-height: 1.1;
}

#coachTrainings .ph-training-add-player-field-hint {
  margin-top: -2px;
  font-size: 10px;
  font-weight: var(--ph-weight-regular);
  letter-spacing: .12px;
  line-height: 1.22;
  text-transform: none;
  opacity: .68;
}

@media (max-width: 720px) {
  #coachTrainings .ph-training-add-player-form {
    grid-template-columns: 1fr;
  }
}

/* Training add player panel v1.5 — calm input text and placeholder spacing */
#coachTrainings .ph-training-add-player-panel .phds-select,
#coachTrainings .ph-training-add-player-panel input.phds-input[type="search"],
#coachTrainings .ph-training-add-player-panel input.phds-input[type="text"] {
  font-weight: 400 !important;
}

#coachTrainings .ph-training-add-player-panel input.phds-input[type="search"],
#coachTrainings .ph-training-add-player-panel input.phds-input[type="text"] {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

#coachTrainings .ph-training-add-player-panel input.phds-input[type="search"]::placeholder,
#coachTrainings .ph-training-add-player-panel input.phds-input[type="text"]::placeholder {
  font-weight: 400 !important;
}

#coachTrainings .ph-training-add-player-field-hint {
  font-size: 10px !important;
  font-weight: 400 !important;
}


/* Training add player panel v1.6 — final helper/select polish */
#coachTrainings .ph-training-add-player-field-hint {
  font-size: 10px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

#coachTrainings .ph-training-add-player-panel select.phds-select {
  outline: none !important;
  border-color: rgba(255,255,255,0.13) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045),
    0 1px 0 rgba(0,0,0,0.16) !important;
}

#coachTrainings .ph-training-add-player-panel select.phds-select:focus,
#coachTrainings .ph-training-add-player-panel select.phds-select:focus-visible {
  outline: none !important;
  border-color: rgba(45,226,230,0.42) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.055),
    0 0 0 2px rgba(45,226,230,0.12) !important;
}

#coachTrainings .ph-training-add-player-panel select.phds-select::-moz-focus-inner {
  border: 0 !important;
}


/* Training add player panel v1.7 — remove native select white ring */
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training],
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training].phds-select {
  appearance: none !important;
  -webkit-appearance: none !important;

  border: 1px solid rgba(255,255,255,0.12) !important;
  outline: 0 !important;
  outline-offset: 0 !important;

  box-shadow: none !important;
  background-clip: padding-box !important;
}

#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training]:focus,
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training]:focus-visible,
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training].phds-select:focus,
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training].phds-select:focus-visible {
  border-color: rgba(45,226,230,0.34) !important;
  outline: 0 !important;
  outline-offset: 0 !important;

  box-shadow:
    0 0 0 1px rgba(45,226,230,0.10),
    0 0 16px rgba(45,226,230,0.06) !important;
}

#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training]::-moz-focus-inner {
  border: 0 !important;
}

/* Training add player panel v1.8 — use Platform Admin scope select styling */
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training],
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training].phds-select {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 36px !important;
  min-height: 36px !important;

  border: 1px solid rgba(116, 143, 176, 0.36) !important;
  border-radius: 11px !important;

  background-color: transparent !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(
      180deg,
      rgba(15, 28, 48, 0.98),
      rgba(10, 22, 38, 0.98)
    ) !important;
  background-repeat: no-repeat, no-repeat !important;
  background-position: calc(100% - 12px) 50%, 0 0 !important;
  background-size: 18px 18px, 100% 100% !important;
  background-clip: border-box !important;

  color: #f4f8ff !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035),
    0 1px 0 rgba(0, 0, 0, 0.24) !important;

  padding: 0 40px 0 11px !important;

  font: inherit !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 36px !important;

  appearance: none !important;
  -webkit-appearance: none !important;

  outline: none !important;
  outline-offset: 0 !important;
}

#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training]:focus,
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training]:focus-visible,
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training].phds-select:focus,
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training].phds-select:focus-visible {
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(
      180deg,
      rgba(17, 32, 54, 1),
      rgba(11, 24, 42, 1)
    ) !important;

  border-color: rgba(218, 235, 255, 0.82) !important;
  box-shadow:
    0 0 0 1px rgba(218, 235, 255, 0.18),
    0 0 0 4px rgba(45, 226, 230, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;

  outline: none !important;
  outline-offset: 0 !important;
}

#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training]::-moz-focus-inner {
  border: 0 !important;
}

/* Training add player panel v1.9 — align search input height with select */
#coachTrainings .ph-training-add-player-panel input.phds-input[type="search"] {
  height: 36px !important;
  min-height: 36px !important;
  line-height: 36px !important;
}

/* Keep Platform Admin select styling, only match font size to this card's inputs */
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training],
#coachTrainings .ph-training-add-player-panel select[data-training-add-player-training].phds-select {
  font-size: 11px !important;
}

/* Training add player panel v1.10 — result row hover/selected polish */
#coachTrainings .ph-training-add-player-result {
  min-height: 52px;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#coachTrainings .ph-training-add-player-result:hover,
#coachTrainings .ph-training-add-player-result.is-selected {
  background: linear-gradient(90deg, rgba(45,226,230,0.12), rgba(45,226,230,0.02) 78%) !important;
}

#coachTrainings .ph-training-add-player-result__main {
  padding-left: 10px;
}

/* Training add player panel v1.11 — remove result highlight/divider gap */
#coachTrainings .ph-training-add-player-results {
  display: block !important;
  gap: 0 !important;
}

#coachTrainings .ph-training-add-player-result {
  display: flex !important;
  margin: 0 !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.065) !important;
}

#coachTrainings .ph-training-add-player-result:first-child {
  border-top: 0 !important;
}

#coachTrainings .ph-training-add-player-result:last-child {
  border-bottom: 0 !important;
}

/* Training add player panel v1.12 — result row badge inset */
#coachTrainings .ph-training-add-player-result > .ph-training-source-badge {
  margin-right: 10px;
}

/* Training add player panel v1.13 — field label inset */
#coachTrainings .ph-training-add-player-panel .ph-field > span:not(.ph-training-add-player-field-hint) {
  padding-left: 5px;
}

/* Training add player panel v1.14 — selected copy to note spacing */
#coachTrainings .ph-training-add-player-selected + .ph-training-add-player-note {
  margin-top: 19px;
}

/* Training add player panel v1.15 — selected helper position */
#coachTrainings .ph-training-add-player-selected {
  margin-top: 17px;
}

#coachTrainings .ph-training-add-player-selected__copy {
  padding-left: 5px;
}

/* Training add player panel v1.16 — search helper inset */
#coachTrainings .ph-training-add-player-field-hint {
  padding-left: 5px;
}


/* Training add player panel v1.17 — empty result copy + helper visibility */
#coachTrainings .ph-training-add-player-empty {
  font-size: 0.86rem;
  line-height: 1.36;
}


/* Training add player panel v1.18 — empty warning icon */
#coachTrainings .ph-training-add-player-empty--warning {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding-left: 5px;
}

#coachTrainings .ph-training-add-player-empty__icon {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  color: rgba(255,179,71,.95);
  opacity: .95;
}

/* Coach Hub Trainingen — iOS: prevent input focus zoom in add-player panel */
@supports (-webkit-touch-callout: none) {
  #coachTrainings .ph-training-add-player-panel input.phds-input,
  #coachTrainings .ph-training-add-player-panel select.phds-select,
  #coachTrainings .ph-training-add-player-panel textarea.phds-input {
    font-size: 16px !important;
  }
}


/* Players view — training-only context card should align with Coach Hub context width */
.phds-training-only-context-card {
  width: calc(100% + 24px);
  max-width: calc(100% + 24px);
  margin-left: -12px;
  margin-right: -12px;
  margin-bottom: var(--ph-card-stack-gap);
  box-sizing: border-box;
}

/* Players view — empty roster notice */
.phds-players-empty-notice {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: var(--ph-card-stack-gap);
  box-sizing: border-box;

  display: inline-flex;
  align-items: center;
  gap: 8px;

  padding: 10px 14px;
  border-radius: var(--ph-radius);
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(21,37,61,0.58);

  color: var(--ph-text-soft);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-medium);
  line-height: 1.3;
}

.phds-players-empty-notice[hidden] {
  display: none !important;
}

.phds-players-empty-notice .ph-training-add-player-empty__icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: rgba(255, 210, 120, 0.94);
}

/* Coach dock — clearer disabled state for unavailable modules */
.ph-coach-dock__item--disabled,
.ph-coach-dock__item--disabled:hover,
.ph-coach-dock__item--disabled:active {
  opacity: 0.34 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  transform: none !important;
  color: rgba(203, 213, 225, 0.42) !important;
  text-shadow: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ph-coach-dock__item--disabled .ph-coach-dock__icon,
.ph-coach-dock__item--disabled .ph-coach-dock__icon svg,
.ph-coach-dock__item--disabled .ph-coach-dock__label {
  color: rgba(203, 213, 225, 0.42) !important;
  stroke: currentColor !important;
  opacity: 1 !important;
}

/* PRE_MATCH + BREAK player canvas chip experiment — iron silver-blue v1
   Safe override block: remove this block to restore previous chip styling.
   Scope: filled lineup canvas player chips only. Empty/Vrij slots stay untouched.
*/
#players .ph-prematch .ph-lineup-canvas__slot.has-player,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player,
#players .ph-prematch .ph-lineup-canvas__bench-player,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
  background:
    radial-gradient(
      ellipse at 50% 0%,
      rgba(245, 250, 255, 0.36) 0%,
      rgba(192, 211, 232, 0.24) 22%,
      rgba(128, 151, 174, 0.10) 48%,
      transparent 70%
    ),
    linear-gradient(
      180deg,
      rgba(128, 149, 170, 0.78) 0%,
      rgba(93, 114, 137, 0.74) 44%,
      rgba(57, 77, 101, 0.78) 100%
    ) !important;

  border-color: rgba(190, 211, 234, 0.42) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    inset 0 -1px 0 rgba(5, 13, 26, 0.24),
    0 10px 22px rgba(0, 0, 0, 0.20) !important;

  color: rgba(248, 252, 255, 0.98) !important;
}

#players .ph-prematch .ph-lineup-canvas__slot.has-player .ph-lineup-canvas__name,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player .ph-break-lineup-canvas__name,
#players .ph-prematch .ph-lineup-canvas__bench-player,
#breakRoot.phds-break .ph-break-lineup-canvas__bench-player {
  color: rgba(248, 252, 255, 0.98) !important;
  text-shadow: 0 1px 8px rgba(2, 8, 18, 0.30);
}

#players .ph-prematch .ph-lineup-canvas__slot.has-player .ph-lineup-canvas__pos,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.has-player .ph-break-lineup-canvas__pos {
  background:
    linear-gradient(
      180deg,
      rgba(11, 25, 43, 0.98),
      rgba(7, 18, 32, 0.98)
    ) !important;

  border-color: rgba(151, 176, 202, 0.28) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 6px 14px rgba(0, 0, 0, 0.24) !important;

  color: rgba(238, 246, 255, 0.96) !important;
}

/* Keep empty/Vrij placeholders deliberately calmer than real player chips. */
#players .ph-prematch .ph-lineup-canvas__slot.is-empty,
#breakRoot.phds-break .ph-break-lineup-canvas__slot.is-empty {
  background: rgba(21, 37, 61, 0.54) !important;
  border-color: rgba(130, 158, 190, 0.20) !important;
  box-shadow: none !important;
}

/* BREAK canvas WISSEL badge alignment — match PRE_MATCH VERPLAATST
   Safe override block: remove this block to restore previous BREAK moved label styling.
*/
#breakRoot.phds-break .ph-break-lineup-canvas__pos-moved {
  color: rgb(251,191,36) !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: 0.045em !important;
  text-transform: uppercase !important;
  text-shadow: 0 1px 7px rgba(0, 0, 0, 0.30);
}

/* PRE_MATCH + BREAK — suggestion guidance wins over iron silver-blue chips v1
   Keep the premium player chip base, but let DnD guidance states visibly win.
*/
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-suggested-best,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-suggested-best {
  opacity: 1 !important;
  border-color: rgba(45,226,230,0.98) !important;
  box-shadow:
    0 0 0 2px rgba(45,226,230,0.46),
    0 0 32px rgba(45,226,230,0.28),
    inset 0 1px 0 rgba(255,255,255,0.10) !important;
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-suggested-strong,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-suggested-strong {
  opacity: 1 !important;
  border-color: rgba(45,226,230,0.72) !important;
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.28),
    0 0 20px rgba(45,226,230,0.14),
    inset 0 1px 0 rgba(255,255,255,0.08) !important;
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-suggested-good,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-suggested-good {
  opacity: 1 !important;
  border-color: rgba(45,226,230,0.42) !important;
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.14),
    inset 0 1px 0 rgba(255,255,255,0.06) !important;
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-suggested-soft,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-suggested-soft {
  opacity: .66 !important;
  border-color: rgba(45,226,230,0.24) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04) !important;
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-suggested-muted,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-suggested-muted {
  opacity: .42 !important;
  border-color: rgba(130,158,190,0.16) !important;
  box-shadow: none !important;
}

/* Empty/Vrij slots still need a visible suggestion background despite the calm placeholder override. */
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-empty.is-suggested-best,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-empty.is-suggested-best {
  opacity: 1 !important;
  border-style: solid !important;
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.16), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.075) !important;
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-empty.is-suggested-strong,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-empty.is-suggested-strong {
  opacity: 1 !important;
  border-style: solid !important;
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.12), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.062) !important;
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas.has-suggestion-guidance .ph-lineup-canvas__slot.is-empty.is-suggested-good,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas.has-suggestion-guidance .ph-break-lineup-canvas__slot.is-empty.is-suggested-good {
  opacity: 1 !important;
  border-style: solid !important;
  background: rgba(255,255,255,0.040) !important;
}

/* Active drop target always wins over general suggestions. */
body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__slot.is-drop-over,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__slot.is-drop-over,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__bench-player.is-drop-over {
  opacity: 1 !important;
  outline: 2px solid rgba(45,226,230,0.92) !important;
  outline-offset: 2px !important;
  border-color: rgba(45,226,230,0.92) !important;
  box-shadow:
    0 0 26px rgba(45,226,230,0.24),
    inset 0 1px 0 rgba(255,255,255,0.08) !important;
}

body.ph-lineup-canvas-is-dragging #players .ph-prematch .ph-lineup-canvas__bench-grid.is-drop-over,
body.ph-break-lineup-canvas-is-dragging #breakRoot.phds-break .ph-break-lineup-canvas__bench-grid.is-drop-over {
  opacity: 1 !important;
  border: 1px solid rgba(45,226,230,0.94) !important;
  background: rgba(45,226,230,0.070) !important;
  box-shadow:
    0 0 0 2px rgba(45,226,230,0.34),
    0 0 34px rgba(45,226,230,0.22),
    inset 0 1px 0 rgba(255,255,255,0.06) !important;
}

#players .ph-prematch .ph-pm-guest-draft__copy .ph-subtle {
  font-size: 13px;
  line-height: 1.35;
}

/* =========================================================
   RUNNING — Lineup DnD foundation
   ========================================================= */

.goals .running-field__btn,
.goals .running-bench__btn,
.running-lineup-drag-ghost {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.goals .running-field__btn[data-running-player-id],
.goals .running-bench__btn[data-running-player-id] {
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
}

.goals .running-field__btn--empty {
  border-style: dashed;
  opacity: .48;
}

.goals .running-field__btn--empty .player-btn__label {
  color: var(--ph-card-body-text-muted);
}

.goals .running-field__btn.is-dragging,
.goals .running-bench__btn.is-dragging {
  opacity: .42;
}

.goals .running-field__btn.is-drop-over,
.goals .running-bench__btn.is-drop-over {
  outline: 2px solid rgba(45,226,230,0.92);
  outline-offset: 2px;
  border-color: rgba(45,226,230,0.86);
  box-shadow:
    0 0 24px rgba(45,226,230,0.22),
    inset 0 1px 0 rgba(255,255,255,0.07);
}

.goals .bench-grid {
  opacity: 1;
  border-radius: 16px;
  transition:
    opacity 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease,
    background 140ms ease;
}

.goals .bench-grid.is-drop-over {
  outline: 2px solid rgba(45,226,230,0.82);
  outline-offset: 3px;
  background: rgba(45,226,230,0.055);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.30),
    0 0 26px rgba(45,226,230,0.16),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

.running-lineup-drag-ghost {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;

  min-width: 132px;
  max-width: 220px;
  padding: 14px 18px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 16px;
  border: 1px solid rgba(45,226,230,0.42);
  background:
    radial-gradient(120% 150% at 50% -45%, rgba(45,226,230,0.16), rgba(45,226,230,0.00) 48%),
    rgba(11,26,45,0.98);

  color: var(--ph-text-strong);
  font-family: var(--ph-font);
  font-size: 16px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  text-align: center;

  pointer-events: none;

  box-shadow:
    0 22px 46px rgba(0,0,0,0.42),
    0 0 0 1px rgba(45,226,230,0.18),
    0 0 26px rgba(45,226,230,0.14);
}

.running-lineup-drag-ghost__label {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  min-width: 0;
}

.running-lineup-drag-ghost__pos {
  color: var(--ph-card-body-text-muted);
  font-size: 10px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .34px;
  line-height: 1;
  text-transform: uppercase;
}

.running-lineup-drag-ghost__dot {
  color: var(--ph-card-body-text-muted);
  font-size: 13px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
}

.running-lineup-drag-ghost__name {
  color: var(--ph-text-strong);
  font-size: 16px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
}

.goals .running-field__btn.is-suggested-best {
  border-color: rgba(45,226,230,0.95);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.46),
    0 0 30px rgba(45,226,230,0.24),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

.goals .running-field__btn.is-suggested-strong {
  border-color: rgba(45,226,230,0.68);
  box-shadow:
    0 0 0 1px rgba(45,226,230,0.24),
    0 0 16px rgba(45,226,230,0.10),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

.goals .running-field__btn.is-suggested-good,
.goals .running-bench__btn.is-suggested-good {
  border-color: rgba(45,226,230,0.32);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045);
}

.goals .running-field__btn.is-suggested-soft {
  border-color: rgba(45,226,230,0.20);
  opacity: .62;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.035);
}

body.ph-running-lineup-is-dragging .goals .running-field__btn.is-suggested-muted {
  opacity: .46;
}

body.ph-running-lineup-is-dragging .goals .running-field__btn.is-drop-over,
body.ph-running-lineup-is-dragging .goals .running-bench__btn.is-drop-over {
  opacity: 1;
  border-color: rgba(45,226,230,0.98);
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(45,226,230,0.18), rgba(255,255,255,0.00) 46%),
    rgba(255,255,255,0.078);
  box-shadow:
    0 0 0 2px rgba(45,226,230,0.44),
    0 0 34px rgba(45,226,230,0.28),
    inset 0 1px 0 rgba(255,255,255,0.07);
}


/* RUNNING — player action source must stay visible */
.goals .running-field__btn.running-field__btn--source,
.goals .running-field__btn.running-field__btn--source:disabled {
  opacity: 1 !important;
  filter: none !important;
}

.goals .running-field__btn.running-field__btn--source .player-btn__label,
.goals .running-field__btn.running-field__btn--source:disabled .player-btn__label {
  color: var(--ph-text-strong) !important;
  opacity: 1 !important;
}

.goals .running-field__btn.running-field__btn--source .running-field__slot-badge,
.goals .running-field__btn.running-field__btn--source:disabled .running-field__slot-badge {
  opacity: 1 !important;
}


/* =========================================================
   RUNNING — Lineup Canvas v2 visual foundation
   Mirrors PRE_MATCH canvas anatomy; no behavior changes.
   ========================================================= */

.goals .ph-running-lineup-canvas {
  width: 100%;
}

.goals .ph-lineup-canvas__pitch {
  display: flex;
  flex-direction: column;
  gap: 14px;

  padding: 12px 0 4px;
}

.goals .ph-lineup-canvas__line {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.goals .ph-lineup-canvas__slots {
  display: grid;
  gap: 10px;
  align-items: center;
}

.goals .ph-lineup-canvas__slots--1 {
  grid-template-columns: minmax(116px, 42%);
  justify-content: center;
}

.goals .ph-lineup-canvas__slots--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.goals .ph-lineup-canvas__slots--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.goals .ph-lineup-canvas__slot,
.goals .ph-lineup-canvas__bench-player {
  appearance: none;
  -webkit-appearance: none;

  position: relative;

  min-height: 48px;
  padding: 12px 10px 10px;

  border-radius: 12px;
  border: 1px solid rgba(120,160,220,0.24);
  background: rgba(255,255,255,0.055);

  color: var(--ph-text-strong);
  font-family: var(--ph-font);
  font-size: 14px;
  font-weight: var(--ph-weight-bold);
  line-height: 1;

  box-shadow:
    0 10px 22px rgba(0,0,0,0.18),
    inset 0 1px 0 rgba(255,255,255,0.045);

  cursor: pointer;
}

.goals .ph-lineup-canvas__slot.has-player {
  border-color: rgba(120,160,220,0.30);
  background:
    radial-gradient(120% 160% at 50% -60%, rgba(255,255,255,0.07), rgba(255,255,255,0.00) 42%),
    rgba(255,255,255,0.065);
}

.goals .ph-lineup-canvas__slot.is-empty {
  border-style: dashed;
  opacity: .58;
}

.goals .ph-lineup-canvas__pos {
  position: absolute;
  left: 10px;
  top: -8px;

  min-width: 28px;
  padding: 3px 7px;

  border-radius: 7px;
  border: 1px solid rgba(120,160,220,0.22);
  background: rgba(11,26,45,0.96);

  color: var(--ph-card-body-text-muted);
  font-size: 9px;
  font-weight: var(--ph-weight-heavy);
  letter-spacing: .32px;
  line-height: 1;
  text-transform: uppercase;
}

.goals .ph-lineup-canvas__name {
  display: block;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__pitch {
  position: relative;
  display: block;

  width: 100%;
  min-height: clamp(260px, 72vw, 340px);
  padding: 8px 0 6px;
}

.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__line,
.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__slots {
  display: contents;
}

.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__slot {
  position: absolute;

  left: var(--running-slot-x);
  top: var(--running-slot-y);
  width: clamp(92px, var(--running-slot-w, 30%), 136px);

  transform: translate(-50%, -50%);
  z-index: 1;
}

.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__slot.is-drop-over,
.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__slot.is-suggested-best,
.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__slot.is-suggested-strong,
.goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__slot.is-suggested-good {
  z-index: 3;
}

@media (max-width: 360px) {
  .goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__pitch {
    min-height: 248px;
  }

  .goals .ph-running-lineup-canvas--spatial .ph-lineup-canvas__slot {
    width: clamp(86px, var(--running-slot-w, 30%), 124px);
  }
}

.goals .ph-lineup-canvas__bench-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.goals .ph-lineup-canvas__bench-player {
  min-height: 48px;
  padding: 0 12px;

  color: rgba(248, 252, 255, 0.98);
  font-weight: var(--ph-weight-heavy);
  opacity: 1;
  filter: none;
}

/* Same premium tile layer as PRE_MATCH + BREAK */
.goals .ph-lineup-canvas__slot.has-player,
.goals .ph-lineup-canvas__bench-player {
  background:
    radial-gradient(120% 150% at 50% -55%, rgba(255,255,255,0.105), rgba(255,255,255,0.00) 48%),
    linear-gradient(180deg, rgba(41,61,88,0.94), rgba(27,45,70,0.96));
  border-color: rgba(137,174,226,0.34);
  box-shadow:
    0 13px 28px rgba(0,0,0,0.22),
    inset 0 1px 0 rgba(255,255,255,0.075),
    inset 0 -1px 0 rgba(0,0,0,0.16);
}

.goals .ph-lineup-canvas__slot.has-player .ph-lineup-canvas__name,
.goals .ph-lineup-canvas__bench-player {
  color: rgba(255,255,255,0.94);
  text-shadow: 0 1px 10px rgba(0,0,0,0.22);
}

/* RUNNING source state still wins during longpress player actions */
.goals .ph-lineup-canvas__slot.running-field__btn--source {
  opacity: 1 !important;
  filter: none !important;
}

@media (max-width: 360px) {
  .goals .ph-lineup-canvas__slots,
  .goals .ph-lineup-canvas__bench-grid {
    gap: 8px;
  }

  .goals .ph-lineup-canvas__slot,
  .goals .ph-lineup-canvas__bench-player {
    font-size: 13px;
  }
}


/* RUNNING — final player chip styling from PRE_MATCH/BREAK iron silver-blue v1
   Exact visual mirror of the active PRE_MATCH/BREAK player canvas chip experiment.
   Scope: RUNNING filled lineup canvas player chips + bench players only.
*/
.goals .ph-lineup-canvas__slot.has-player,
.goals .ph-lineup-canvas__bench-player {
  background:
    radial-gradient(
      ellipse at 50% 0%,
      rgba(245, 250, 255, 0.36) 0%,
      rgba(192, 211, 232, 0.24) 22%,
      rgba(128, 151, 174, 0.10) 48%,
      transparent 70%
    ),
    linear-gradient(
      180deg,
      rgba(128, 149, 170, 0.78) 0%,
      rgba(93, 114, 137, 0.74) 44%,
      rgba(57, 77, 101, 0.78) 100%
    ) !important;

  border-color: rgba(190, 211, 234, 0.42) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    inset 0 -1px 0 rgba(5, 13, 26, 0.24),
    0 10px 22px rgba(0, 0, 0, 0.20) !important;

  color: rgba(248, 252, 255, 0.98) !important;
}

.goals .ph-lineup-canvas__slot.has-player .ph-lineup-canvas__name,
.goals .ph-lineup-canvas__bench-player {
  color: rgba(248, 252, 255, 0.98) !important;
  font-weight: var(--ph-weight-heavy);
  opacity: 1;
  filter: none;
  text-shadow: 0 1px 8px rgba(2, 8, 18, 0.30);
}

.goals .ph-lineup-canvas__slot.has-player .ph-lineup-canvas__pos {
  background:
    linear-gradient(
      180deg,
      rgba(11, 25, 43, 0.98),
      rgba(7, 18, 32, 0.98)
    ) !important;

  border-color: rgba(151, 176, 202, 0.28) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 6px 14px rgba(0, 0, 0, 0.24) !important;

  color: rgba(238, 246, 255, 0.96) !important;
}

/* Keep RUNNING empty/Vrij placeholders deliberately calmer than real player chips. */
.goals .ph-lineup-canvas__slot.is-empty {
  background: rgba(21, 37, 61, 0.54) !important;
  border-color: rgba(130, 158, 190, 0.20) !important;
  box-shadow: none !important;
}


/* RUNNING — final chip badge and focus polish v1
   Keep this scoped and tiny: badge parity + stronger focus dim only.
*/
.goals .ph-lineup-canvas__slot.has-player .running-field__slot-badge.ph-lineup-canvas__pos {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 16px;

  background:
    linear-gradient(
      180deg,
      rgba(11, 25, 43, 0.98),
      rgba(7, 18, 32, 0.98)
    ) !important;

  border-color: rgba(151, 176, 202, 0.28) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 6px 14px rgba(0, 0, 0, 0.24) !important;

  color: rgba(238, 246, 255, 0.96) !important;
}

.goals .running-field__slot-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  line-height: 1;
}

/* RUNNING assist flow: no-assist action follows premium chip styling. */
.goals .running-no-assist-btn {
  appearance: none;
  -webkit-appearance: none;

  display: flex;
  align-items: center;
  justify-content: center;

  width: min(136px, 42%);
  min-height: 56px;
  margin: 14px auto 0;
  padding: 10px 16px;

  border-radius: 14px;
  border: 1px solid rgba(190, 211, 234, 0.36);

  background:
    radial-gradient(
      ellipse at 50% 0%,
      rgba(245, 250, 255, 0.20) 0%,
      rgba(192, 211, 232, 0.13) 25%,
      rgba(128, 151, 174, 0.07) 50%,
      transparent 72%
    ),
    linear-gradient(
      180deg,
      rgba(71, 91, 118, 0.86) 0%,
      rgba(50, 69, 96, 0.88) 48%,
      rgba(35, 52, 78, 0.90) 100%
    );

  color: rgba(248, 252, 255, 0.98);
  font-family: var(--ph-font);
  font-size: 14px;
  font-weight: var(--ph-weight-heavy);
  line-height: 1;
  text-align: center;
  text-shadow: 0 1px 8px rgba(2, 8, 18, 0.30);

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(5, 13, 26, 0.20),
    0 12px 26px rgba(0, 0, 0, 0.22);

  cursor: pointer;
}

.goals .running-no-assist-btn:hover,
.goals .running-no-assist-btn:focus-visible {
  border-color: rgba(45, 226, 230, 0.56);
  box-shadow:
    0 0 0 1px rgba(45, 226, 230, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(5, 13, 26, 0.20),
    0 12px 26px rgba(0, 0, 0, 0.22);
}

.goals .running-no-assist-btn:active {
  transform: scale(0.985);
}

/* RUNNING assist flow: selected scorer keeps canvas chip styling, with subtle selected state. */
.goals .ph-lineup-canvas__slot.has-player.running-field__btn--assist-scorer,
.goals .ph-lineup-canvas__slot.has-player.running-field__btn--assist-scorer:disabled {
  opacity: .58 !important;
  filter: saturate(.78) brightness(.86);

  border-color: rgba(45, 226, 230, 0.58) !important;

  box-shadow:
    0 0 0 1px rgba(45, 226, 230, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(5, 13, 26, 0.20),
    0 10px 22px rgba(0, 0, 0, 0.18) !important;
}

.goals .ph-lineup-canvas__slot.has-player.running-field__btn--assist-scorer .ph-lineup-canvas__name,
.goals .ph-lineup-canvas__slot.has-player.running-field__btn--assist-scorer .assist-scorer__label {
  color: rgba(248, 252, 255, 0.92) !important;
  opacity: 1 !important;
  text-shadow: 0 1px 8px rgba(2, 8, 18, 0.30);
}

.goals .ph-lineup-canvas__slot.has-player.running-field__btn--assist-scorer .ph-lineup-canvas__pos {
  opacity: .82 !important;
}

/* Longpress/focus state: inactive player chips may fade more clearly. */
.goals .ph-lineup-canvas__slot.running-field__btn--dimmed,
.goals .ph-lineup-canvas__bench-player.running-bench__btn--dimmed,
.goals .ph-lineup-canvas__slot.secondary:disabled,
.goals .ph-lineup-canvas__bench-player.secondary:disabled {
  opacity: .22 !important;
  filter: saturate(.55) brightness(.72);
}

.goals .ph-lineup-canvas__slot.running-field__btn--dimmed .ph-lineup-canvas__pos,
.goals .ph-lineup-canvas__slot.secondary:disabled .ph-lineup-canvas__pos {
  opacity: .46 !important;
}

/* Active/source player must stay visually alive. */
.goals .ph-lineup-canvas__slot.running-field__btn--source,
.goals .ph-lineup-canvas__slot.running-field__btn--source:disabled {
  opacity: 1 !important;
  filter: none !important;
}


/* RUNNING — force active position badge opacity v1
   The final badge styling is already mapped; this prevents old RUNNING badge opacity/filter from dulling it.
*/
.goals .ph-lineup-canvas__slot.has-player .ph-lineup-canvas__pos,
.goals .ph-lineup-canvas__slot.has-player .running-field__slot-badge,
.goals .ph-lineup-canvas__slot.has-player .running-field__slot-text {
  opacity: 1 !important;
  filter: none !important;
}

.goals .ph-lineup-canvas__slot.has-player:not(.running-field__btn--dimmed):not(.secondary) .ph-lineup-canvas__pos {
  color: rgba(238, 246, 255, 0.96) !important;
}

/* RUNNING — card status on position badge
   Status lives on the position badge border only.
   Text stays neutral; no glow, no mini-card marker.
*/
.goals .ph-lineup-canvas__slot.has-player.running-player-status-yellow .ph-lineup-canvas__name::after,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-red .ph-lineup-canvas__name::after,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-yellow .running-field__slot-badge.ph-lineup-canvas__pos::after,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-yellow .ph-lineup-canvas__pos::after,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-red .running-field__slot-badge.ph-lineup-canvas__pos::after,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-red .ph-lineup-canvas__pos::after {
  content: none !important;
  display: none !important;
}

.goals .ph-lineup-canvas__slot.has-player.running-player-status-yellow .running-field__slot-badge.ph-lineup-canvas__pos,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-yellow .ph-lineup-canvas__pos {
  border-color: rgba(255, 232, 0, 0.66) !important;
  color: rgba(238, 246, 255, 0.96) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 6px 14px rgba(0, 0, 0, 0.24) !important;
}

.goals .ph-lineup-canvas__slot.has-player.running-player-status-red .running-field__slot-badge.ph-lineup-canvas__pos,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-red .ph-lineup-canvas__pos {
  border-color: rgba(239, 68, 68, 0.68) !important;
  color: rgba(238, 246, 255, 0.96) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 6px 14px rgba(0, 0, 0, 0.24) !important;
}

.goals .ph-lineup-canvas__slot.has-player.running-player-status-yellow .running-field__slot-text,
.goals .ph-lineup-canvas__slot.has-player.running-player-status-red .running-field__slot-text {
  color: rgba(238, 246, 255, 0.96) !important;
}

/* Platform Admin — Live Hub visitors detail */
body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-match.is-selected {
  margin-top: 2px;
  margin-bottom: 0;
  padding: 14px 0 14px 12px;
  border-left: 3px solid color-mix(in srgb, var(--ph-accent) 76%, white 8%);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--ph-accent) 12%, transparent), transparent 74%);
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-detail {
  margin: -1px 0 14px 0;
  padding: 14px 14px 13px 26px;
  border: 1px solid color-mix(in srgb, var(--ph-border) 78%, white 8%);
  border-left: 3px solid color-mix(in srgb, var(--ph-accent) 72%, white 10%);
  border-top: 0;
  border-radius: 0 16px 16px 0;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--ph-accent) 12%, transparent), transparent 74%),
    radial-gradient(circle at 14% 0%, color-mix(in srgb, var(--ph-accent) 10%, transparent), transparent 34%),
    color-mix(in srgb, var(--ph-card-bg) 88%, black 12%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-detail__head {
  display: grid;
  gap: 5px;
  padding-bottom: 12px;
  border-bottom: 1px solid color-mix(in srgb, var(--ph-border) 70%, transparent);
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-detail__head strong,
body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-empty strong,
body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visit strong {
  color: var(--ph-text);
  font-size: .88rem;
  line-height: 1.2;
  letter-spacing: -.01em;
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-detail__head span,
body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-empty span,
body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visit span {
  color: var(--ph-muted);
  font-size: .78rem;
  line-height: 1.35;
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-visits {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-visits__label {
  margin: 0;
  color: var(--ph-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visit {
  display: grid;
  gap: 4px;
  padding: 10px 11px;
  border: 1px solid color-mix(in srgb, var(--ph-border) 62%, transparent);
  border-radius: 13px;
  background: color-mix(in srgb, var(--ph-card-bg) 78%, black 22%);
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-empty {
  display: grid;
  gap: 5px;
  margin-top: 12px;
  padding: 10px 11px;
  border: 1px dashed color-mix(in srgb, var(--ph-border) 74%, transparent);
  border-radius: 13px;
  background: color-mix(in srgb, var(--ph-card-bg) 72%, black 28%);
}

/* Platform Admin — Live Hub visitors filters */
body #platformAdmin .ph-platform-live-visitors-filters {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--ph-border) 74%, transparent);
  border-radius: 16px;
  background:
    radial-gradient(circle at 16% 0%, color-mix(in srgb, var(--ph-accent) 8%, transparent), transparent 34%),
    color-mix(in srgb, var(--ph-card-bg) 82%, black 18%);
}

body #platformAdmin .ph-platform-live-visitors-filters label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

body #platformAdmin .ph-platform-live-visitors-filters label span {
  color: var(--ph-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body #platformAdmin .ph-platform-live-visitors-filters select.phds-select {
  width: 100%;
  min-width: 0;
}

body #platformAdmin .ph-platform-live-visitors-filters .ph-platform-action-button {
  width: 100%;
  justify-content: center;
}

body #platformAdmin .ph-platform-live-visitors-panel .ph-platform-live-visitors-detail--standalone {
  margin-top: 14px;
  margin-left: 0;
}

@media (min-width: 760px) {
  body #platformAdmin .ph-platform-live-visitors-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body #platformAdmin .ph-platform-live-visitors-filters label:last-of-type {
    grid-column: 1 / -1;
  }
}

/* Platform Admin — Live Hub visitors auto-submit polish */
body #platformAdmin .ph-platform-live-visitors-filters.is-auto-submit-ready [data-live-visitors-submit] {
  display: none;
}

/* Platform Admin — Live Hub visitors fragment loading */
body #platformAdmin .ph-platform-live-visitors-panel.is-loading-fragment {
  opacity: .72;
  pointer-events: none;
  transition: opacity .16s ease;
}

/* Platform Admin — Live Hub visitors disabled selects */
body #platformAdmin .ph-platform-live-visitors-filters select.phds-select:disabled {
  opacity: .46;
  cursor: not-allowed;
  color: rgba(210,224,242,.48) !important;
  border-color: rgba(255,255,255,.08) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.012)) !important;
  box-shadow: none !important;
}

body #platformAdmin .ph-platform-live-visitors-filters label:has(select.phds-select:disabled) span {
  opacity: .52;
}

body #platformAdmin .ph-platform-live-visitors-filters select.phds-select:disabled:hover,
body #platformAdmin .ph-platform-live-visitors-filters select.phds-select:disabled:focus {
  border-color: rgba(255,255,255,.08) !important;
  box-shadow: none !important;
}

/* Team Hub — team agreements card */
.phds-teamhub-agreements {
  display: grid;
  gap: 12px;
}

.phds-teamhub-agreement {
  padding: 12px 0;
  border-top: 1px solid rgba(255,255,255,.08);
}

.phds-teamhub-agreement:first-child {
  padding-top: 0;
  border-top: 0;
}

.phds-teamhub-agreement:last-child {
  padding-bottom: 0;
}

.phds-teamhub-agreement__title {
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(226,232,240,.78);
  margin: 0 0 5px;
}

.phds-teamhub-agreement__text {
  margin: 0;
  font-size: .92rem;
  line-height: 1.55;
  color: rgba(226,232,240,.88);
}

.phds-teamhub-agreements-card[data-expanded="0"] .phds-card__head {
  align-items: center;
}

.phds-teamhub-agreements-summary {
  margin-top: 4px;
}

.phds-teamhub-agreements-card .phds-card__head-actions {
  align-items: center;
}


/* Coach Admin — Team Insights v0 */
.ph-insights-view {
  display: grid;
  gap: var(--ph-card-stack-gap);
}

.ph-insight-hero {
  display: grid;
  gap: 6px;
}

.ph-insight-hero__title {
  font-size: 1.1rem;
  line-height: 1.25;
  font-weight: 900;
  color: rgba(248,250,252,.96);
}

.ph-insight-hero__meta,
.ph-insight-footnote,
.ph-insight-empty {
  font-size: .92rem;
  line-height: 1.5;
  color: rgba(226,232,240,.72);
}

.ph-insight-lines {
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.ph-insight-line {
  padding: 13px 0 21px;
  border-top: 1px solid rgba(255,255,255,.07);
}

.ph-insight-line:first-child {
  border-top: 0;
}

.ph-insight-line__kicker {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(226,232,240,.58);
  margin-bottom: 4px;
}

.ph-insight-line--attention .ph-insight-line__kicker {
  color: rgba(251,191,36,.82);
}

.ph-insight-line__text {
  font-size: var(--ph-text-base);
  line-height: 1.45;
  color: rgba(248,250,252,.93);
}

.ph-insight-line__meta {
  margin-top: 4px;
  font-size: var(--ph-text-sm);
  line-height: 1.45;
  font-weight: 650;
  color: var(--ph-text-faint);
}

.ph-insight-details {
  padding-top: 2px;
}

.ph-insight-details summary {
  cursor: pointer;
  list-style: none;
  font-weight: 850;
  color: rgba(226,232,240,.86);
  padding: 10px 0;
}

.ph-insight-details summary::-webkit-details-marker {
  display: none;
}

.ph-insight-details summary::after {
  content: "↓";
  display: inline-block;
  margin-left: 8px;
  opacity: .55;
}

.ph-insight-details[open] summary::after {
  content: "↑";
}

.ph-insight-player-list {
  display: grid;
  gap: 0;
  margin-top: 4px;
  border-top: 1px solid rgba(255,255,255,.07);
}

.ph-insight-player-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
}

.ph-insight-player-row__name {
  font-size: .98rem;
  font-weight: 850;
  color: rgba(248,250,252,.92);
}

.ph-insight-player-row__conclusion {
  font-size: var(--ph-text-sm);
  line-height: 1.25;
  font-weight: 850;
  color: var(--ph-text-muted);
}

.ph-insight-player-row__conclusion--attention {
  color: #fbbf24;
}

.ph-insight-player-row__conclusion--balanced {
  color: rgba(74,222,128,.98);
}

.ph-insight-player-row__conclusion--above {
  color: rgba(125,211,252,.84);
}

.ph-insight-player-row__conclusion--neutral {
  color: var(--ph-text-muted);
}

.ph-insight-player-row__meta {
  margin-top: 2px;
  font-size: .83rem;
  color: rgba(226,232,240,.62);
}

.ph-insight-player-row__bar {
  position: relative;
  height: 9px;
  margin-top: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(15,23,42,.64);
  border: 1px solid rgba(255,255,255,.045);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.30);
}

.ph-insight-player-row__bar-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(245,158,11,.95), rgba(251,191,36,.95));
  box-shadow: 0 0 12px rgba(245,158,11,.24);
}

.ph-insight-player-row__bar.is-on-target .ph-insight-player-row__bar-fill,
.ph-insight-player-row__bar.is-above-target .ph-insight-player-row__bar-fill,
.ph-insight-player-row__bar.is-below-target .ph-insight-player-row__bar-fill,
.ph-insight-player-row__bar.is-keeper-target .ph-insight-player-row__bar-fill {
  background: linear-gradient(90deg, rgba(245,158,11,.95), rgba(251,191,36,.95));
  box-shadow: 0 0 12px rgba(245,158,11,.24);
}

.ph-insight-player-row__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ph-insight-player-row__stats span {
  border-radius: 999px;
  padding: 4px 7px;
  background: rgba(148,163,184,.10);
  color: rgba(226,232,240,.78);
  font-size: .76rem;
  font-weight: 750;
}

@media (max-width: 380px) {
  
}

/* Coach Insights fairness evidence */
.ph-insight-evidence {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}

.ph-insight-evidence--fairness {
  grid-template-columns: minmax(0, 2fr) minmax(84px, 1fr);
  row-gap: 9px;
}

.ph-insight-evidence__metric {
  min-width: 0;
  border-radius: 13px;
  padding: 8px 7px;
  background: rgba(148,163,184,.08);
  border: 1px solid rgba(255,255,255,.07);
}

.ph-insight-evidence__metric span {
  display: block;
  font-size: var(--ph-text-base);
  line-height: 1;
  font-weight: 900;
  color: var(--ph-text);
}

.ph-insight-evidence__metric small {
  display: block;
  margin-top: 4px;
  font-size: .68rem;
  line-height: 1.1;
  font-weight: 750;
  color: var(--ph-text-faint);
  white-space: normal;
}

.ph-insight-evidence__bar {
  grid-column: 1 / -1;
  position: relative;
  height: 10px;
  margin: 10px 0 12px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(15,23,42,.72);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.38);
}

.ph-insight-evidence__bar-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(245,158,11,.95), rgba(251,191,36,.95));
  box-shadow: 0 0 12px rgba(245,158,11,.26);
}

.ph-insight-evidence__bar.is-above-target .ph-insight-evidence__bar-fill,
.ph-insight-evidence__bar.is-on-target .ph-insight-evidence__bar-fill {
  background: linear-gradient(90deg, rgba(245,158,11,.95), rgba(251,191,36,.95));
  box-shadow: 0 0 12px rgba(245,158,11,.24);
}

.ph-insight-evidence__context {
  grid-column: 1 / -1;
  margin-top: 1px;
  font-size: var(--ph-text-sm);
  line-height: 1.45;
  color: var(--ph-text-faint);
}

/* Coach Insights signal kicker color override */
.ph-insight-line .ph-insight-line__kicker .ph-insight-line__kicker-name {
  color: var(--ph-text);
}

.ph-insight-line .ph-insight-line__kicker .ph-insight-line__kicker-separator {
  color: var(--ph-text);
}

.ph-insight-line .ph-insight-line__kicker .ph-insight-line__kicker-type {
  color: var(--ph-text);
}

/* Coach Insights front/back actions */
.ph-insight-view-actions {
  display: flex;
  justify-content: stretch;
  margin-top: 2px;
}

.ph-insight-view-actions--end {
  justify-content: flex-end;
}

.ph-insight-view-button {
  width: 100%;
  border: 1px solid rgba(125,211,252,.18);
  border-radius: 16px;
  padding: 10px 12px;
  background: rgba(15,23,42,.34);
  color: var(--ph-text);
  font-size: var(--ph-text-sm);
  font-weight: 850;
  letter-spacing: -.01em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.ph-insight-view-button:active {
  transform: translateY(1px);
}

.ph-insight-view-button--back {
  color: var(--ph-text-muted);
}


/* Coach Insights balance sections */
.ph-insight-balance-group {
  display: grid;
  gap: 0;
  padding-top: 14px;
}

.ph-insight-balance-group + .ph-insight-balance-group {
  margin-top: 18px;
}

.ph-insight-balance-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
  color: var(--ph-text);
  font-size: var(--ph-text-sm);
  font-weight: 900;
  letter-spacing: .02em;
}

.ph-insight-balance-heading::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(125,211,252,.18), rgba(125,211,252,0));
}

.ph-insight-player-list .ph-insight-balance-group:first-child {
  padding-top: 0;
}

/* Coach Insights balance top divider cleanup */
.ph-insight-player-list {
  border-top: 0;
}

.ph-insight-player-list .ph-insight-balance-group:first-child {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

/* Coach Insights balance section row divider cleanup */
.ph-insight-balance-group .ph-insight-player-row:last-child {
  border-bottom: 0;
}

/* PRE_MATCH — fairness notice */
#players .ph-prematch .ph-pm-fairness-notice{
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 2px 0;
  padding: 10px 0;
  border-top: 1px solid rgba(255,255,255,0.10);
  color: var(--ph-card-muted-text);
  font-size: 12px;
  font-weight: 440;
  line-height: 1.42;
}

#players .ph-prematch .ph-pm-fairness-notice__icon{
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 0.05em;
  color: rgba(255, 193, 88, 0.92);
}

/* PRE_MATCH — fairness notice hint divider cleanup */
#players .ph-prematch .ph-lineup-canvas__hint:has(+ .ph-pm-fairness-notice){
  border-bottom: 0;
  box-shadow: none;
}

#players .ph-prematch .ph-lineup-canvas__hint:has(+ .ph-pm-fairness-notice)::after{
  display: none;
}

#players .ph-prematch .ph-lineup-canvas__hint + .ph-pm-fairness-notice{
  border-top: 0;
}


/* Coach Insights signal responses */
.ph-insight-line__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.ph-insight-line__top .ph-insight-line__kicker {
  min-width: 0;
  margin-bottom: 0;
}

.ph-insight-line__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.ph-insight-line__actions .phds-card-action {
  white-space: nowrap;
}

.ph-insight-line__top + .ph-insight-line__text {
  margin-top: 11px;
}

.ph-insight-response-primary:active,
.ph-insight-response-secondary:active {
  transform: translateY(1px);
}

.ph-insight-handled {
  margin-top: 0;
  padding-top: 0;
}

.ph-insight-card-meta {
  color: var(--ph-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1;
  font-weight: 900;
  white-space: nowrap;
}

.ph-insight-handled__list {
  display: grid;
  gap: 0;
}

.ph-insight-handled-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid rgba(255,255,255,.07);
}

.ph-insight-handled-line:first-child {
  padding-top: 0;
  border-top: 0;
}

.ph-insight-handled-line:last-child {
  padding-bottom: 0;
}

.ph-insight-handled-line__main {
  min-width: 0;
}

.ph-insight-handled-line__title {
  color: var(--ph-text);
  font-size: var(--ph-text-sm);
  font-weight: 900;
  line-height: 1.25;
}

.ph-insight-handled-line__meta {
  margin-top: 3px;
  color: var(--ph-text-faint);
  font-size: .78rem;
  line-height: 1.25;
  font-weight: var(--ph-weight-medium);
}

.ph-insight-response-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0 12px max(12px, env(safe-area-inset-bottom));
  box-sizing: border-box;
}

.ph-insight-response-modal__backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(2,6,23,.66);
  backdrop-filter: blur(8px);
}

.ph-insight-response-sheet {
  position: relative;
  z-index: 1;
  width: min(100%, 390px);
  max-height: calc(100dvh - 28px);
  overflow: auto;
  border: 1px solid rgba(125,211,252,.18);
  border-radius: 24px 24px 0 0;
  padding: 10px 16px 18px;
  background:
    radial-gradient(circle at top left, rgba(125,211,252,.13), transparent 34%),
    linear-gradient(180deg, rgba(15,23,42,.985), rgba(2,6,23,.985));
  box-shadow: 0 -18px 54px rgba(0,0,0,.42);
}

.ph-insight-response-sheet__handle {
  width: 44px;
  height: 4px;
  margin: 2px auto 12px;
  border-radius: 999px;
  background: rgba(226,232,240,.28);
}

.ph-insight-response-sheet__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.ph-insight-response-sheet__eyebrow {
  color: #fbbf24;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ph-insight-response-sheet__title {
  margin-top: 3px;
  color: var(--ph-text);
  font-size: var(--ph-text-lg);
  font-weight: 950;
  letter-spacing: -.03em;
}

.ph-insight-response-sheet__close {
  width: 34px;
  height: 34px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  color: var(--ph-text-muted);
  font-size: 1.35rem;
  line-height: 1;
}

.ph-insight-response-sheet__message {
  margin-top: 12px;
  color: var(--ph-text-muted);
  font-size: var(--ph-text-md) !important;
  line-height: 1.45;
}

.ph-insight-response-form {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.ph-insight-response-options {
  display: grid;
  gap: 8px;
}

.ph-insight-response-option {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 15px;
  padding: 10px 11px;
  background: rgba(255,255,255,.04);
  color: var(--ph-text);
  font-size: var(--ph-text-sm);
  font-weight: 850;
}

.ph-insight-response-option input {
  accent-color: #fbbf24;
}

.ph-insight-plan-modal {
  padding-inline: var(--ph-page-gutter);
}

.ph-insight-plan-modal .ph-insight-response-sheet {
  width: min(100%, calc(var(--ph-page-max) - (2 * var(--ph-page-gutter))));
  max-width: calc(100vw - (2 * var(--ph-page-gutter)));
  box-sizing: border-box;
}

.ph-insight-plan-modal .ph-insight-response-sheet__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
}

.ph-insight-plan-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
  margin-bottom: 18px;
}

.ph-insight-plan-summary__item {
  min-width: 0;
  border: 1px solid var(--ph-border-card);
  border-radius: var(--ph-radius-sm);
  padding: 8px 9px;
  background: rgba(255,255,255,.035);
}

.ph-insight-plan-summary__value,
.ph-insight-plan-summary__label {
  display: block;
}

.ph-insight-plan-summary__value {
  color: var(--ph-text);
  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-heavy);
  line-height: 1.1;
}

.ph-insight-plan-summary__label {
  margin-top: 3px;
  color: var(--ph-text-faint);
  font-size: var(--ph-text-xs);
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
}

.ph-insight-plan-modal .ph-insight-response-sheet__message {
  margin-top: 0;
  margin-bottom: 20px;
  font-size: var(--ph-text-md) !important;
}

.ph-insight-plan-modal .ph-insight-plan-form {
  margin-top: 0;
  gap: 16px;
}

.ph-insight-plan-section-title {
  margin-bottom: 12px;
  color: var(--ph-text);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-heavy);
  line-height: 1.2;
}

.ph-insight-plan-scenarios {
  display: grid;
  gap: 12px;
}

.ph-insight-plan-scenario {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 17px;
  padding: 11px 12px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
  color: var(--ph-text);
  cursor: pointer;
}

.ph-insight-plan-scenario.is-recommended {
  border-color: rgba(251,191,36,.30);
  background:
    radial-gradient(110% 120% at 0% 0%, rgba(251,191,36,.10), transparent 46%),
    linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.026));
}

.ph-insight-plan-scenario input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.ph-insight-plan-scenario__check {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  flex: 0 0 auto;
  border-radius: var(--ph-radius-pill);
  border: 1px solid rgba(255,255,255,.30);
  background: rgba(2,6,23,.32);
  box-shadow: inset 0 0 0 4px rgba(2,6,23,.86);
}

.ph-insight-plan-scenario input:checked + .ph-insight-plan-scenario__check {
  border-color: rgba(251,191,36,.82);
  background: rgba(251,191,36,.96);
}

.ph-insight-plan-scenario__body {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.ph-insight-plan-scenario__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.ph-insight-plan-scenario__title {
  min-width: 0;
  color: var(--ph-text);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-heavy);
  line-height: 1.2;
}

.ph-insight-plan-scenario__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 18px;
  padding: 1px 6px;
  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,179,71,.35);
  background: rgba(255,179,71,.12);
  color: rgba(255,179,71,.95);
  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1.1;
  text-transform: uppercase;
  white-space: nowrap;
}

.ph-insight-plan-scenario__meta,
.ph-insight-plan-scenario__copy {
  color: var(--ph-text-faint);
  font-size: var(--ph-text-sm);
  line-height: 1.35;
}

.ph-insight-plan-scenario__meta {
  font-weight: var(--ph-weight-semibold);
}

.ph-insight-active-plans {
  display: grid;
  gap: 0;
}

#teamInsightsActivePlans > .phds-card__divider {
  display: block;
  height: 0;
  margin: var(--ph-card-head-divider-gap) 0 var(--ph-card-divider-body-gap);
  background: transparent;
  border-top: 1px solid var(--ph-border-card-strong);
}

.ph-insight-active-plan {
  padding: 0;
  border-top: 0;
}

.ph-insight-active-plan + .ph-insight-active-plan {
  margin-top: var(--ph-card-head-divider-gap);
  padding-top: var(--ph-card-divider-body-gap);
  border-top: 1px solid var(--ph-border-card-strong);
}

.ph-insight-active-plan__main {
  display: grid;
  gap: 12px;
}

.ph-insight-active-plan__toprow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ph-insight-active-plan__toprow .phds-card-action {
  flex-shrink: 0;
  align-self: center;
}

.ph-insight-active-plan__titlegroup {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.ph-insight-active-plan__title {
  color: var(--ph-text);
  font-size: var(--ph-text-lg);
  font-weight: var(--ph-weight-heavy);
  line-height: 1.2;
}

.ph-insight-active-plan__titlegroup .ph-pres-reason-badge,
.ph-insight-line__kicker .ph-pres-reason-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 18px;
  padding: 1px 6px;

  border-radius: var(--ph-radius-sm);
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.08);

  color: rgba(255,255,255,0.92);

  font-size: 10px;
  font-weight: var(--ph-weight-semibold);
  letter-spacing: .25px;
  line-height: 1.1;
  text-transform: uppercase;

  white-space: nowrap;
}

.ph-insight-active-plan__titlegroup .ph-pres-reason-badge.is-moved,
.ph-insight-line__kicker .ph-pres-reason-badge.is-moved {
  color: rgba(255,179,71,.95);
  background: rgba(255,179,71,.12);
  border-color: rgba(255,179,71,.35);
}

.ph-insight-line__kicker .ph-pres-reason-badge {
  margin-left: 4px;
}

.ph-insight-active-plan__goal {
  display: grid;
  gap: 5px;
}

.ph-insight-active-plan__goal-main {
  color: var(--ph-text);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-semibold);
  line-height: 1.42;
}

.ph-insight-active-plan__meta {
  color: var(--ph-text-muted);
  font-size: var(--ph-text-sm);
  font-weight: var(--ph-weight-semibold);
  line-height: 1.35;
}

.ph-insight-active-plan__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 6px;
}

.ph-insight-active-plan__stat {
  min-width: 0;
  border: 1px solid var(--ph-border-card);
  border-radius: var(--ph-radius-sm);
  padding: 8px 9px;
  background: rgba(255,255,255,.035);
}

.ph-insight-active-plan__stat-value,
.ph-insight-active-plan__stat-label {
  display: block;
}

.ph-insight-active-plan__stat-value {
  color: var(--ph-text);
  font-size: var(--ph-text-base);
  font-weight: var(--ph-weight-heavy);
  line-height: 1.1;
}

.ph-insight-active-plan__stat-label {
  margin-top: 3px;
  color: var(--ph-text-faint);
  font-size: var(--ph-text-xs);
  font-weight: var(--ph-weight-bold);
  line-height: 1.15;
}

.ph-insight-active-plan__progress-track {
  position: relative;
  overflow: hidden;
  height: 10px;
  margin: 7px 0;
  border-radius: var(--ph-radius-pill);
  background: rgba(15,23,42,.72);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.38);
}

.ph-insight-active-plan__progress-fill {
  display: block;
  height: 100%;
  min-width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(245,158,11,.95), rgba(251,191,36,.95));
  box-shadow: 0 0 12px rgba(245,158,11,.26);
}

.ph-insight-response-context-hint {
  border: 1px solid rgba(251,191,36,.16);
  border-radius: 15px;
  padding: 10px 11px;
  background: rgba(251,191,36,.07);
  color: var(--ph-text-muted);
  font-size: var(--ph-text-sm);
  line-height: 1.4;
}

.ph-insight-plan-modal .ph-insight-response-context-hint {
  margin: 18px 0;
}

.ph-insight-response-note {
  display: grid;
  gap: 7px;
  color: var(--ph-text-muted);
  font-size: var(--ph-text-sm);
  font-weight: 850;
}

.ph-insight-response-note textarea {
  width: 100%;
  resize: vertical;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 15px;
  padding: 10px 11px;
  background: rgba(2,6,23,.40);
  color: var(--ph-text);
  font: inherit;
  font-weight: 650;
}

.ph-insight-response-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.ph-insight-response-secondary,
.ph-insight-response-primary {
  border-radius: 16px;
  padding: 11px 12px;
  font-size: var(--ph-text-sm);
  font-weight: 950;
  letter-spacing: -.01em;
}

.ph-insight-response-secondary {
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: var(--ph-text-muted);
}

.ph-insight-response-primary {
  border: 1px solid rgba(251,191,36,.30);
  background: linear-gradient(180deg, rgba(251,191,36,.96), rgba(245,158,11,.90));
  color: #271500;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 10px 22px rgba(245,158,11,.18);
}

.ph-insight-response-primary:disabled,
.ph-insight-handled .phds-card-action:disabled {
  opacity: .62;
}

.ph-insight-response-error {
  border-radius: 13px;
  padding: 9px 10px;
  background: rgba(239,68,68,.12);
  color: #fecaca;
  font-size: var(--ph-text-sm);
  font-weight: 750;
}

@media (min-width: 720px) {
  .ph-insight-response-modal {
    align-items: center;
    padding: 22px;
  }

  .ph-insight-response-sheet {
    border-radius: 24px;
  }
}

/* Coach PWA shell: embedded Team Hub layout */
.ph-coach-shell-teamhub {
  width: 100%;
}

.ph-coach-shell-teamhub .phds-teamhub {
  width: 100%;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  padding-top: 18px;
}

.ph-coach-shell-teamhub .phds-teamhub-hero {
  margin-left: 0;
  margin-right: 0;
}

.ph-coach-shell-teamhub .phds-teamhub-stack {
  width: 100%;
}

/* Coach PWA shell: Team Hub parent container */
body:has(.ph-admin-inner--teamhub-shell) .ph-admin-main {
  width: 100%;
  max-width: var(--ph-page-max);
}

.ph-admin-inner--teamhub-shell {
  width: 100%;
  max-width: var(--ph-page-max);
  padding-left: 0;
  padding-right: 0;
}

