/* Carbon / Volt: opt-in only. Light and legacy dark remain defined by page styles. */
.m-brand-logo[hidden] { display: none !important; }
body.theme-dark.theme-m {
  color-scheme: dark;
  accent-color: #F3D400;
  --m-bg: #111315;
  --m-surface: #1B1E21;
  --m-text: #F7F7F2;
  --m-muted: #B0B5B9;
  --m-accent: #F3D400;
  --m-on-accent: #151600;
  --m-border: #383D40;
  --bg: var(--m-bg);
  --paper: var(--m-surface);
  --card: var(--m-surface);
  --field: #15181a;
  --ink: var(--m-text);
  --muted: var(--m-muted);
  --line: var(--m-border);
  --accent: var(--m-accent);
  --accent-dark: var(--m-accent);
  --green: var(--m-surface);
  --lime: var(--m-accent);
  --warn: #ff9b92;
  --shadow: rgba(0, 0, 0, .36);
  background: radial-gradient(circle at 88% -12%, rgba(243, 212, 0, .07), transparent 28rem), var(--m-bg);
  color: var(--m-text);
}

body.theme-dark.theme-m header,
body.theme-dark.theme-m .site-header {
  background: color-mix(in srgb, var(--m-bg) 88%, transparent);
  border-color: var(--m-border);
}

body.theme-dark.theme-m .brand-logo-light,
body.theme-dark.theme-m .brand-logo-dark,
body.theme-dark.theme-m .site-brand-logo-light,
body.theme-dark.theme-m .site-brand-logo-dark,
body.theme-dark.theme-m .footer-logo-light,
body.theme-dark.theme-m .footer-logo-dark {
  display: none;
}

body.theme-dark.theme-m .m-brand-logo[hidden] {
  display: block !important;
  width: auto;
  max-width: 100%;
  height: 56px;
  object-fit: contain;
  object-position: left center;
  flex: 0 1 auto;
}

body.theme-dark.theme-m .footer-logo.m-brand-logo { height: 54px; }

body.theme-dark.theme-m .schedule,
body.theme-dark.theme-m .cart,
body.theme-dark.theme-m .panel,
body.theme-dark.theme-m .calendar-block,
body.theme-dark.theme-m .card,
body.theme-dark.theme-m .item,
body.theme-dark.theme-m .change,
body.theme-dark.theme-m .change-panel,
body.theme-dark.theme-m .summary-box,
body.theme-dark.theme-m .payment-card,
body.theme-dark.theme-m .notification-card,
body.theme-dark.theme-m .current-slot-summary,
body.theme-dark.theme-m .slot-card,
body.theme-dark.theme-m .family-switcher,
body.theme-dark.theme-m .family-profile,
body.theme-dark.theme-m .recipient-card,
body.theme-dark.theme-m .channel-card,
body.theme-dark.theme-m .trainer-details,
body.theme-dark.theme-m .more-menu-popover,
body.theme-dark.theme-m dialog,
body.theme-dark.theme-m details,
body.theme-dark.theme-m .program-item,
body.theme-dark.theme-m .compact-band,
body.theme-dark.theme-m .statement-panel,
body.theme-dark.theme-m .trainer-panel,
body.theme-dark.theme-m .place-panel,
body.theme-dark.theme-m .booking-embed-panel,
body.theme-dark.theme-m .schedule-panel,
body.theme-dark.theme-m .age-card,
body.theme-dark.theme-m .metrics-panel,
body.theme-dark.theme-m .light-card,
body.theme-dark.theme-m .cta-box,
body.theme-dark.theme-m .panel-recovery {
  background-color: var(--m-surface);
  border-color: var(--m-border);
  color: var(--m-text);
}

body.theme-dark.theme-m .hero,
body.theme-dark.theme-m .confirm,
body.theme-dark.theme-m .foundation-panel,
body.theme-dark.theme-m .dark-panel,
body.theme-dark.theme-m .two-col-card,
body.theme-dark.theme-m .why-panel,
body.theme-dark.theme-m .note {
  background: var(--m-surface);
  border-color: var(--m-border);
  color: var(--m-text);
}

body.theme-dark.theme-m button,
body.theme-dark.theme-m .group-tab,
body.theme-dark.theme-m .training-slot,
body.theme-dark.theme-m .calendar-day,
body.theme-dark.theme-m input,
body.theme-dark.theme-m textarea,
body.theme-dark.theme-m select,
body.theme-dark.theme-m .copy-row,
body.theme-dark.theme-m .delivery-row,
body.theme-dark.theme-m .registration-step,
body.theme-dark.theme-m .draft-note,
body.theme-dark.theme-m .calendar-button,
body.theme-dark.theme-m .language-switch a,
body.theme-dark.theme-m .theme-option,
body.theme-dark.theme-m .social-links a,
body.theme-dark.theme-m button.ghost,
body.theme-dark.theme-m .ghost,
body.theme-dark.theme-m .button-link,
body.theme-dark.theme-m .more-menu > summary {
  background: #15181a;
  color: var(--m-text);
  border-color: var(--m-border);
}

body.theme-dark.theme-m .cal-sub,
body.theme-dark.theme-m .empty,
body.theme-dark.theme-m .hint,
body.theme-dark.theme-m .meta,
body.theme-dark.theme-m .small,
body.theme-dark.theme-m p,
body.theme-dark.theme-m .lead,
body.theme-dark.theme-m .details,
body.theme-dark.theme-m .label,
body.theme-dark.theme-m .page-footer,
body.theme-dark.theme-m .calendar-weekday,
body.theme-dark.theme-m .filter-heading,
body.theme-dark.theme-m .sports-card-note,
body.theme-dark.theme-m .standard-total-line,
body.theme-dark.theme-m .card-info,
body.theme-dark.theme-m .qty-control,
body.theme-dark.theme-m .site-navlinks,
body.theme-dark.theme-m .footer-official-info {
  color: var(--m-muted);
}

body.theme-dark.theme-m .date,
body.theme-dark.theme-m .weekday,
body.theme-dark.theme-m .time,
body.theme-dark.theme-m .page-footer strong,
body.theme-dark.theme-m .footer-info-item strong,
body.theme-dark.theme-m .camp-title-button,
body.theme-dark.theme-m .registration-step strong {
  color: var(--m-text);
}

body.theme-dark.theme-m .site-btn,
body.theme-dark.theme-m .account-panel-btn,
body.theme-dark.theme-m .btn,
body.theme-dark.theme-m .btn.accent,
body.theme-dark.theme-m .checkout,
body.theme-dark.theme-m button.active,
body.theme-dark.theme-m .calendar-day.selected,
body.theme-dark.theme-m .calendar-day.has.selected,
body.theme-dark.theme-m .theme-option.active,
body.theme-dark.theme-m .language-switch a.active,
body.theme-dark.theme-m .tab.active,
body.theme-dark.theme-m .slot-chip.active,
body.theme-dark.theme-m .family-profile.active,
body.theme-dark.theme-m .attendance .selected,
body.theme-dark.theme-m .tabs button.active {
  background: var(--m-accent);
  color: var(--m-on-accent);
  border-color: var(--m-accent);
  box-shadow: 0 10px 26px rgba(243, 212, 0, .14);
}

body.theme-dark.theme-m .site-btn:hover,
body.theme-dark.theme-m .account-panel-btn:hover,
body.theme-dark.theme-m .btn:hover,
body.theme-dark.theme-m .checkout:hover,
body.theme-dark.theme-m button.active:hover {
  background: #ffe319;
  color: var(--m-on-accent);
}

body.theme-dark.theme-m .calendar-day.has,
body.theme-dark.theme-m .sports-card-box,
body.theme-dark.theme-m .client-warning,
body.theme-dark.theme-m .selected-day-note,
body.theme-dark.theme-m .registration-step.active,
body.theme-dark.theme-m .sandbox-banner {
  background: rgba(243, 212, 0, .08);
  border-color: rgba(243, 212, 0, .42);
  color: var(--m-text);
}

body.theme-dark.theme-m .added,
body.theme-dark.theme-m button.added,
body.theme-dark.theme-m .bottom .added,
body.theme-dark.theme-m .badge,
body.theme-dark.theme-m .capacity-readout,
body.theme-dark.theme-m .attendance-chip,
body.theme-dark.theme-m .attendee,
body.theme-dark.theme-m .notification-count,
body.theme-dark.theme-m .change-diff > div {
  background: #15181a;
  color: var(--m-text);
  border-color: var(--m-border);
}

body.theme-dark.theme-m .error,
body.theme-dark.theme-m .action-status.error,
body.theme-dark.theme-m .hero > .status.error,
body.theme-dark.theme-m .delivery-fail,
body.theme-dark.theme-m .urgent-banner,
body.theme-dark.theme-m .badge.warn,
body.theme-dark.theme-m .money {
  color: #ff9b92;
}

body.theme-dark.theme-m .urgent-banner,
body.theme-dark.theme-m .badge.warn {
  background: rgba(255, 92, 92, .1);
  border-color: rgba(255, 155, 146, .35);
}

body.theme-dark.theme-m .status:not(.error),
body.theme-dark.theme-m .kicker,
body.theme-dark.theme-m .age-card-tag,
body.theme-dark.theme-m .statement-signature,
body.theme-dark.theme-m .required-star,
body.theme-dark.theme-m .slot-card-note,
body.theme-dark.theme-m .meta a,
body.theme-dark.theme-m .hint a {
  color: var(--m-accent);
}

body.theme-dark.theme-m a:focus-visible,
body.theme-dark.theme-m button:focus-visible,
body.theme-dark.theme-m input:focus-visible,
body.theme-dark.theme-m textarea:focus-visible,
body.theme-dark.theme-m select:focus-visible,
body.theme-dark.theme-m summary:focus-visible {
  outline: 3px solid var(--m-accent);
  outline-offset: 3px;
}

body.theme-dark.theme-m .booking-frame { background: var(--m-bg); }
body.theme-dark.theme-m .family-profile.active .hint,
body.theme-dark.theme-m .family-profile.active strong,
body.theme-dark.theme-m .tab.active .small { color: var(--m-on-accent); }

@media (max-width: 540px) {
  body.theme-dark.theme-m .m-brand-logo {
    width: auto;
    max-width: min(100%, calc(100vw - 40px));
    height: 58px;
    object-fit: contain;
  }
  body.theme-dark.theme-m .footer-logo.m-brand-logo { height: 48px; }
}
