:root {
  --bg: #faf9ff;
  --surface: #ffffff;
  --surface-soft: color-mix(in srgb, #faf9ff 72%, white);
  --text: #251a3d;
  --muted: #716681;
  --primary: #6d28d9;
  --primary-strong: #2563eb;
  --primary-soft: color-mix(in srgb, #6d28d9 10%, white);
  --green: #7c3aed;
  --green-bg: #f5f3ff;
  --green-line: #c4b5fd;
  --busy-bg-top: #eaebef;
  --busy-bg-bottom: #d9dbe2;
  --slot-free-text: #7c3aed;
  --slot-free-bg: #f5f3ff;
  --slot-free-border: #c4b5fd;
  --slot-busy-text: #716681;
  --slot-busy-bg-top: #eaebef;
  --slot-busy-bg-bottom: #d9dbe2;
  --slot-selected-bg: #6d28d9;
  --slot-selected-text: #ffffff;
  --slot-disabled-bg: #f2f3f5;
  --slot-disabled-text: #a4a8b1;
  --brand-gradient: linear-gradient(135deg, #6d28d9, #a78bfa);
}

body {
  background:
    radial-gradient(circle at 5% 0%, color-mix(in srgb, #6d28d9 10%, transparent), transparent 31%),
    radial-gradient(circle at 95% 12%, color-mix(in srgb, #a78bfa 8%, transparent), transparent 28%),
    linear-gradient(180deg, #ffffff 0%, var(--bg) 100%);
}

.domain-ribbon {
  position: fixed; right: 18px; bottom: 16px; z-index: 80;
  padding: 8px 12px; border-radius: 999px;
  background: color-mix(in srgb, var(--text) 92%, transparent);
  color: white; font-size: 11px; letter-spacing: .02em;
  box-shadow: 0 8px 26px rgba(0,0,0,.16); pointer-events: none;
}
.brand__mark, .verified, .google-card__icon { color: var(--primary); }
.brand__name span { color: var(--primary); }
.trainer-photo-wrap { padding: 4px; background: var(--brand-gradient); }
.trainer-photo { border: 4px solid white; border-radius: 50%; }
.active-day strong { background: var(--brand-gradient); color: white; }
.event--free { color: var(--slot-free-text); background: var(--slot-free-bg); border-color: var(--slot-free-border); }
.event--free:hover { box-shadow: 0 7px 18px color-mix(in srgb, var(--primary) 22%, transparent); transform: translateY(-1px); }
.event--free[aria-pressed="true"] { background: var(--slot-selected-bg); color: var(--slot-selected-text); border-color: var(--slot-selected-bg); }
.event--busy { color: var(--slot-busy-text); background: linear-gradient(180deg, var(--slot-busy-bg-top), var(--slot-busy-bg-bottom)); }
.today-button, .view-switch__button.active, .google-button { border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); }
.booking-toast { border-left: 4px solid var(--primary); }
@media (max-width:720px) { .domain-ribbon { display:none; } }
