.msgc-core {
  --msgc-accent: #f8ba2f;
  --msgc-text: #172033;
  --msgc-muted: #667085;
  --msgc-border: #e4e7ec;
  --msgc-bg: #f7f8fa;
  --msgc-card: #ffffff;
  color: var(--msgc-text);
  font-family: inherit;
  box-sizing: border-box;
}

body.msgc-password-reset-sensitive .msgc-core {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.msgc-core-page .entry-header .entry-title {
  display: none;
}

.msgc-core *,
.msgc-core *::before,
.msgc-core *::after {
  box-sizing: border-box;
}

.msgc-register-shell,
.msgc-mypage,
.msgc-entry-shell,
.msgc-auth-shell,
.msgc-account-shell,
.msgc-contract-shell,
.msgc-access-history {
  width: min(100%, 920px);
  margin: 0 auto;
}

.msgc-register-panel {
  background: #fff;
  border: 1px solid var(--msgc-border);
  border-radius: 18px;
  padding: clamp(22px, 4vw, 48px);
  box-shadow: 0 18px 50px rgba(16, 24, 40, 0.08);
}

.msgc-register-header {
  text-align: center;
  margin-bottom: 28px;
}

.msgc-register-header h1,
.msgc-mypage h1 {
  margin: 6px 0 10px;
  font-size: clamp(26px, 4vw, 38px);
  line-height: 1.2;
}

.msgc-register-header p {
  color: var(--msgc-muted);
  margin: 0 auto;
  max-width: 680px;
}

.msgc-kicker {
  font-size: 12px;
  letter-spacing: .18em;
  font-weight: 700;
  color: #7a5a00;
}

.msgc-step-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 24px 0 32px;
}

.msgc-step-indicator span {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid var(--msgc-border);
  background: #fff;
  color: var(--msgc-muted);
  font-weight: 700;
}

.msgc-step-indicator span.is-active {
  border-color: var(--msgc-accent);
  background: var(--msgc-accent);
  color: #1f2937;
}

.msgc-step-indicator i {
  width: 72px;
  height: 2px;
  background: var(--msgc-border);
}

.msgc-step {
  display: none;
}

.msgc-step.is-active {
  display: block;
}

.msgc-step h2 {
  font-size: 20px;
  margin: 0 0 20px;
}

.msgc-register-form label,
.msgc-auth-form label,
.msgc-fieldset {
  display: block;
  margin-bottom: 18px;
  font-weight: 600;
}

.msgc-register-form input[type="text"],
.msgc-register-form input[type="email"],
.msgc-register-form input[type="tel"],
.msgc-register-form input[type="password"],
.msgc-register-form select,
.msgc-register-form textarea,
.msgc-auth-form input[type="text"],
.msgc-auth-form input[type="email"],
.msgc-auth-form input[type="tel"],
.msgc-auth-form input[type="password"] {
  width: 100%;
  margin-top: 7px;
  border: 1px solid #d0d5dd;
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
  color: var(--msgc-text);
  font: inherit;
  min-height: 48px;
}

.msgc-register-form textarea {
  min-height: 96px;
  resize: vertical;
}

.msgc-register-form input:focus,
.msgc-register-form select:focus,
.msgc-register-form textarea:focus,
.msgc-auth-form input:focus {
  outline: none;
  border-color: #d69b10;
  box-shadow: 0 0 0 3px rgba(248, 186, 47, .18);
}

.msgc-register-form small,
.msgc-auth-form small {
  display: block;
  margin-top: 6px;
  color: var(--msgc-muted);
  font-weight: 400;
}

.msgc-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.msgc-required {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 6px;
  border-radius: 4px;
  background: #fef3f2;
  color: #b42318;
  font-size: 11px;
  vertical-align: 1px;
}

.msgc-fieldset {
  border: 0;
  padding: 0;
}

.msgc-fieldset legend {
  font-weight: 700;
  margin-bottom: 10px;
}

.msgc-radio-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.msgc-choice,
.msgc-checkline {
  display: flex !important;
  gap: 9px;
  align-items: flex-start;
  font-weight: 500 !important;
}

.msgc-choice {
  padding: 10px 12px;
  border: 1px solid var(--msgc-border);
  border-radius: 10px;
  margin: 0 !important;
}

.msgc-choice input,
.msgc-checkline input {
  margin-top: 3px;
}

.msgc-rule-box {
  padding: 16px 18px;
  border-radius: 12px;
  background: var(--msgc-bg);
  margin-bottom: 18px;
}

.msgc-rule-box p {
  margin: 6px 0;
}

.msgc-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 26px;
}

.msgc-actions-split {
  justify-content: space-between;
  gap: 12px;
}

.msgc-button,
.msgc-button-secondary {
  appearance: none;
  border: 0;
  border-radius: 10px;
  min-height: 46px;
  padding: 11px 22px;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.msgc-button {
  background: var(--msgc-accent);
  color: #1f2937 !important;
}

.msgc-button:hover {
  filter: brightness(.97);
}

.msgc-button:disabled {
  cursor: not-allowed;
  opacity: .7;
}

.msgc-button-secondary {
  background: #f2f4f7;
  color: var(--msgc-text);
}

.msgc-alert,
.msgc-notice,
.msgc-error {
  border-radius: 10px;
  padding: 13px 15px;
  margin: 0 0 18px;
}

.msgc-alert-error,
.msgc-error {
  background: #fef3f2;
  color: #912018;
  border: 1px solid #fecdca;
}

.msgc-alert-success {
  background: #ecfdf3;
  color: #027a48;
  border: 1px solid #abefc6;
}

.msgc-alert-info {
  background: #eff8ff;
  color: #175cd3;
  border: 1px solid #b2ddff;
}

.msgc-alert-warning {
  background: #fffaeb;
  color: #93370d;
  border: 1px solid #fedf89;
}

.msgc-register-form [aria-invalid="true"],
.msgc-auth-form [aria-invalid="true"] {
  border-color: #d92d20;
  box-shadow: 0 0 0 3px rgba(217, 45, 32, .12);
}

.msgc-notice {
  background: #fffaeb;
  border: 1px solid #fedf89;
}

.msgc-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.msgc-mypage {
  padding: 8px 0 30px;
}

.msgc-mypage-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.msgc-status-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
  background: #f2f4f7;
  color: #344054;
}

.msgc-status-active { background: #ecfdf3; color: #027a48; }
.msgc-status-pending { background: #fffaeb; color: #b54708; }
.msgc-status-suspended { background: #fef3f2; color: #b42318; }
.msgc-status-cancel_scheduled { background: #f4f3ff; color: #5925dc; }
.msgc-status-cancelled { background: #f2f4f7; color: #475467; }

.msgc-member-card {
  border-radius: 20px;
  padding: clamp(20px, 4vw, 34px);
  background: #151922;
  color: #fff;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 22px 60px rgba(16,24,40,.18);
}

.msgc-card-top,
.msgc-card-bottom {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
}

.msgc-card-top span {
  font-size: 12px;
  letter-spacing: .16em;
}

.msgc-card-top strong {
  color: var(--msgc-accent);
}

.msgc-qr-placeholder {
  align-self: center;
  width: 150px;
  height: 150px;
  background: #fff;
  color: #111827;
  border-radius: 14px;
  display: grid;
  place-content: center;
  text-align: center;
  box-shadow: inset 0 0 0 8px #f2f4f7;
}

.msgc-qr-placeholder div {
  font-size: 42px;
  font-weight: 900;
  letter-spacing: .08em;
}

.msgc-qr-placeholder small {
  font-size: 10px;
  color: #667085;
}

.msgc-card-bottom {
  font-size: 13px;
  color: #d0d5dd;
}

.msgc-card-bottom strong {
  color: var(--msgc-accent);
  font-size: 16px;
}

.msgc-info-grid,
.msgc-menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.msgc-info-card,
.msgc-menu-card {
  background: #fff;
  border: 1px solid var(--msgc-border);
  border-radius: 14px;
  padding: 16px;
}

.msgc-info-card span,
.msgc-menu-card span {
  display: block;
  color: var(--msgc-muted);
  font-size: 12px;
  margin-bottom: 5px;
}

.msgc-info-card strong,
.msgc-menu-card strong {
  display: block;
  color: var(--msgc-text);
  line-height: 1.4;
}

.msgc-menu-card {
  text-decoration: none !important;
}

.msgc-menu-card:hover {
  border-color: #d69b10;
}

.msgc-menu-card.is-disabled {
  opacity: .58;
  cursor: not-allowed;
}

.msgc-entry-panel,
.msgc-auth-panel {
  background: var(--msgc-card);
  border: 1px solid var(--msgc-border);
  border-radius: 18px;
  padding: clamp(22px, 4vw, 42px);
  box-shadow: 0 18px 50px rgba(16, 24, 40, .08);
}

.msgc-entry-grid,
.msgc-account-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.msgc-entry-card {
  display: flex;
  min-height: 210px;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 28px;
  border-radius: 16px;
  color: #fff !important;
  background: #172033;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease;
}

.msgc-entry-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(16, 24, 40, .16);
}

.msgc-entry-card.is-secondary {
  color: var(--msgc-text) !important;
  background: #fff8e8;
  border: 1px solid #fedf89;
}

.msgc-entry-card-kicker {
  color: var(--msgc-accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
}

.msgc-entry-card.is-secondary .msgc-entry-card-kicker {
  color: #936b00;
}

.msgc-entry-card strong {
  font-size: clamp(21px, 3vw, 28px);
}

.msgc-entry-card small {
  color: inherit;
  opacity: .72;
}

.msgc-auth-shell {
  max-width: 620px;
}

.msgc-auth-header {
  text-align: center;
  margin-bottom: 26px;
}

.msgc-auth-header h1 {
  margin: 6px 0 10px;
  font-size: clamp(26px, 4vw, 36px);
}

.msgc-auth-header p,
.msgc-auth-help {
  color: var(--msgc-muted);
}

.msgc-auth-form label {
  display: block;
}

.msgc-auth-form .msgc-checkline {
  margin-top: 4px;
}

.msgc-button-wide {
  width: 100%;
}

.msgc-auth-links {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--msgc-border);
}

.msgc-account-shell > .msgc-auth-header {
  margin-bottom: 22px;
}

.msgc-account-grid {
  align-items: start;
}

.msgc-account-grid .msgc-auth-panel h2 {
  margin: 0 0 20px;
  font-size: 21px;
}

.msgc-member-menu {
  margin-top: 28px;
}

.msgc-member-menu > h2 {
  margin: 0 0 14px;
  font-size: 22px;
}

.msgc-member-menu-list {
  overflow: hidden;
  border: 1px solid var(--msgc-border);
  border-radius: 16px;
  background: var(--msgc-card);
}

.msgc-member-menu-list-secondary {
  margin-top: 14px;
}

.msgc-member-menu-item {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 20px;
  color: var(--msgc-text) !important;
  text-decoration: none !important;
  transition: background-color .18s ease;
}

.msgc-member-menu-item + .msgc-member-menu-item {
  border-top: 1px solid var(--msgc-border);
}

.msgc-member-menu-item:hover,
.msgc-member-menu-item:focus-visible {
  background: #fffbeb;
}

.msgc-member-menu-item.is-disabled {
  cursor: not-allowed;
  background: #f9fafb;
  color: #98a2b3 !important;
}

.msgc-member-menu-item.is-disabled:hover {
  background: #f9fafb;
}

.msgc-member-menu-item strong,
.msgc-member-menu-item small {
  display: block;
}

.msgc-member-menu-item strong {
  font-size: 16px;
  line-height: 1.45;
}

.msgc-member-menu-item small {
  margin-top: 4px;
  color: var(--msgc-muted);
  font-size: 12px;
  line-height: 1.5;
}

.msgc-member-menu-chevron {
  flex: 0 0 auto;
  color: #98a2b3;
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
}

.msgc-member-menu-item.is-logout strong {
  color: #475467;
}

.msgc-menu-badge,
.msgc-test-badge {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 5px 9px;
  background: #f2f4f7;
  color: #667085;
  font-size: 11px;
  font-weight: 700;
}

.msgc-contract-shell {
  padding: 8px 0 32px;
}

.msgc-contract-header {
  text-align: center;
  margin-bottom: 26px;
}

.msgc-contract-header h1 {
  margin: 6px 0 10px;
  font-size: clamp(26px, 4vw, 38px);
}

.msgc-contract-header p,
.msgc-muted {
  color: var(--msgc-muted);
}

.msgc-plan-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.msgc-plan-card,
.msgc-contract-summary,
.msgc-contract-form,
.msgc-current-contract,
.msgc-contract-empty {
  background: var(--msgc-card);
  border: 1px solid var(--msgc-border);
  border-radius: 16px;
  padding: clamp(20px, 3vw, 28px);
}

.msgc-plan-card {
  display: flex;
  flex-direction: column;
  gap: 20px;
  justify-content: space-between;
}

.msgc-plan-card h2,
.msgc-current-contract h3 {
  margin: 5px 0 9px;
  line-height: 1.3;
}

.msgc-plan-card p {
  color: var(--msgc-muted);
  margin: 0;
}

.msgc-plan-code {
  color: #7a5a00;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}

.msgc-plan-price span,
.msgc-plan-price small {
  display: block;
  color: var(--msgc-muted);
  font-size: 12px;
}

.msgc-plan-price strong {
  display: inline-block;
  margin: 3px 5px 0 0;
  font-size: 30px;
}

.msgc-plan-features {
  margin: 0;
  padding: 15px 0 0;
  border-top: 1px solid var(--msgc-border);
  list-style: none;
}

.msgc-plan-features li {
  margin: 7px 0;
}

.msgc-button-block {
  width: 100%;
  margin-top: 10px;
}

.msgc-contract-summary {
  margin-bottom: 18px;
}

.msgc-contract-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.msgc-contract-details > div {
  padding: 15px;
  border-bottom: 1px solid var(--msgc-border);
}

.msgc-contract-details dt {
  color: var(--msgc-muted);
  font-size: 12px;
  margin-bottom: 5px;
}

.msgc-contract-details dd {
  margin: 0;
  font-weight: 700;
}

.msgc-contract-form {
  margin-top: 18px;
}

.msgc-agreement-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 14px 0;
}

.msgc-agreement-row input {
  margin-top: 5px;
}

.msgc-contract-section {
  margin-top: 32px;
  scroll-margin-top: 30px;
}

.msgc-contract-section > h2 {
  margin-bottom: 14px;
  font-size: 22px;
}

.msgc-current-contract-heading,
.msgc-history-card {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.msgc-current-contract-heading {
  margin-bottom: 12px;
}

.msgc-current-contract-price {
  margin: 0 0 12px;
  color: #7a5a00;
  font-size: 20px;
  font-weight: 800;
}

.msgc-contract-details-compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.msgc-training-section {
  margin-top: 32px;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--msgc-border);
  border-radius: 16px;
  background: var(--msgc-card);
}

.msgc-training-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.msgc-training-heading h2 {
  margin: 5px 0 0;
  font-size: 22px;
}

.msgc-training-heading > strong {
  color: #7a5a00;
  white-space: nowrap;
}

.msgc-training-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.msgc-calendar-weekday {
  padding: 6px 2px;
  color: var(--msgc-muted);
  font-size: 11px;
  font-weight: 700;
  text-align: center;
}

.msgc-calendar-day {
  position: relative;
  display: grid;
  min-width: 0;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 10px;
  background: #f8fafc;
  color: #344054;
  font-size: 13px;
}

.msgc-calendar-day.is-empty {
  background: transparent;
}

.msgc-calendar-day.is-visited {
  background: #fff2c7;
  color: #7a4f00;
  font-weight: 800;
  box-shadow: inset 0 0 0 1px #f8ba2f;
}

.msgc-calendar-day.is-visited span {
  position: absolute;
  right: 5px;
  bottom: 2px;
  color: #b77900;
  font-size: 10px;
}

.msgc-training-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}

.msgc-training-stats > div {
  padding: 14px;
  border-radius: 12px;
  background: #f8fafc;
}

.msgc-training-stats span,
.msgc-training-stats strong {
  display: block;
}

.msgc-training-stats span {
  color: var(--msgc-muted);
  font-size: 11px;
}

.msgc-training-stats strong {
  margin-top: 5px;
  font-size: 21px;
}

.msgc-training-stats strong.is-positive { color: #027a48; }
.msgc-training-stats strong.is-negative { color: #b42318; }

.msgc-access-history-list {
  display: grid;
  gap: 10px;
}

.msgc-access-history-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--msgc-border);
  border-radius: 14px;
  background: var(--msgc-card);
}

.msgc-access-history-item strong,
.msgc-access-history-item time,
.msgc-access-history-meta span {
  display: block;
}

.msgc-access-history-item time,
.msgc-access-history-meta {
  margin-top: 4px;
  color: var(--msgc-muted);
  font-size: 12px;
}

.msgc-access-history-meta {
  text-align: right;
}

.msgc-current-contract-heading span:first-child,
.msgc-history-card span {
  display: block;
  color: var(--msgc-muted);
  font-size: 12px;
}

.msgc-customer-history {
  display: grid;
  gap: 10px;
}

.msgc-history-card {
  padding: 16px;
  border: 1px solid var(--msgc-border);
  border-radius: 12px;
  background: var(--msgc-card);
}

.msgc-history-card > div:last-child {
  text-align: right;
}

.msgc-status-pending_payment { background: #fffaeb; color: #b54708; }
.msgc-status-past_due { background: #fef3f2; color: #b42318; }

.msgc-service-panel { margin-top: 34px; }
.msgc-personal-panel { border: 1px solid #e3e7ee; border-radius: 28px; padding: 30px; background: #fff; box-shadow: 0 18px 45px rgba(20, 29, 47, .07); }
.msgc-personal-heading, .msgc-personal-calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.msgc-personal-heading h2, .msgc-personal-calendar-heading h3 { margin: 4px 0 0; }
.msgc-personal-overview { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 14px; margin: 24px 0 12px; }
.msgc-personal-plan-card, .msgc-personal-count-card { border: 1px solid #e2e6ed; border-radius: 18px; padding: 20px; background: #fbfcfe; }
.msgc-personal-plan-card span, .msgc-personal-count-card span { display: block; color: #667085; font-size: 14px; margin-bottom: 8px; }
.msgc-personal-plan-card strong { font-size: 24px; }
.msgc-personal-count-card strong { color: #172033; font-size: 36px; line-height: 1; }
.msgc-personal-count-card small { font-size: 16px; margin-left: 4px; }
.msgc-personal-breakdown { margin: 12px 0 26px; border-radius: 12px; background: #f7f8fa; padding: 12px 16px; }
.msgc-personal-breakdown summary { cursor: pointer; font-weight: 700; }
.msgc-personal-breakdown ul { margin-bottom: 0; }
.msgc-personal-calendar-heading { margin-top: 28px; }
.msgc-personal-month-nav { display: inline-flex; align-items: center; gap: 12px; }
.msgc-personal-month-nav a { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid #d8dee8; border-radius: 50%; color: #172033; text-decoration: none; font-size: 24px; line-height: 1; }
.msgc-personal-legend { display: flex; flex-wrap: wrap; gap: 18px; margin: 12px 0; color: #475467; font-size: 14px; }
.msgc-personal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.msgc-personal-legend i { width: 12px; height: 12px; border-radius: 50%; }
.msgc-personal-legend .is-reserved { background: #2658a7; }
.msgc-personal-legend .is-consumed { background: #b7791f; }
.msgc-personal-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.msgc-personal-day { position: relative; min-height: 104px; border: 1px solid #e3e7ee; border-radius: 12px; padding: 7px; min-width: 0; background: #fff; }
.msgc-personal-day.is-empty { background: #f7f8fa; }
.msgc-personal-day-number { display: block; font-size: 13px; color: #667085; margin-bottom: 5px; }
.msgc-personal-event { margin-top: 5px; border-radius: 7px; color: #fff; }
.msgc-personal-event.is-reserved { background: #2658a7; }
.msgc-personal-event.is-consumed { background: #9a6619; }
.msgc-personal-event > summary { cursor: pointer; list-style: none; padding: 6px; border-radius: 7px; display: flex; flex-direction: column; line-height: 1.2; }
.msgc-personal-event > summary::-webkit-details-marker { display: none; }
.msgc-personal-event > summary small { color: inherit; font-size: 10px; }
.msgc-personal-event-detail { position: absolute; z-index: 5; width: min(290px, calc(100vw - 48px)); border: 1px solid #d8dee8; border-radius: 12px; padding: 14px; background: #fff; color: #172033; box-shadow: 0 14px 32px rgba(20, 29, 47, .18); display: grid; gap: 4px; }
.msgc-details-close { min-height: 44px; justify-self: end; border: 0; background: transparent; color: #475467; font-weight: 700; cursor: pointer; }
.msgc-cancel-confirm { margin-top: 8px; border-top: 1px solid #e3e7ee; padding-top: 8px; }
.msgc-link-button { cursor: pointer; color: #b42318; font-weight: 700; }
.msgc-button-danger { border: 0; border-radius: 9px; padding: 10px 14px; background: #b42318; color: #fff; font-weight: 700; cursor: pointer; }
.msgc-cutoff-note { display: block; margin-top: 8px; color: #b54708; font-size: 12px; font-weight: 700; }
.msgc-next-booking { margin-top: 22px; padding: 20px; border-radius: 16px; background: #f5f7fb; }
.msgc-next-booking h3 { margin-top: 0; }
.msgc-personal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.msgc-policy-note { margin: 18px 0 0; color: #667085; font-size: 13px; }
.msgc-personal-flow { max-width: 1040px; margin: 0 auto; }
.msgc-booking-filter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; margin: 24px 0; padding: 22px; border: 1px solid #e3e7ee; border-radius: 18px; }
.msgc-booking-filter label { display: grid; gap: 7px; font-weight: 700; }
.msgc-booking-filter select, .msgc-booking-filter input { width: 100%; min-height: 48px; border: 1px solid #cdd5df; border-radius: 10px; padding: 8px 10px; }
.msgc-booking-filter .msgc-button { grid-column: 1 / -1; }
.msgc-slot-list { margin: 28px 0; }
.msgc-slot-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.msgc-slot { display: flex; flex-direction: column; border: 1px solid #d3d9e2; border-radius: 12px; padding: 13px; text-decoration: none; color: #172033; }
.msgc-slot:hover { border-color: #2658a7; background: #f1f5fb; }
.msgc-confirm-card { max-width: 680px; margin: 24px 0; border: 1px solid #e3e7ee; border-radius: 20px; padding: 24px; }
.msgc-confirm-card dl { display: grid; gap: 0; }
.msgc-confirm-card dl > div { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid #edf0f4; }
.msgc-confirm-card dt { color: #667085; }
.msgc-confirm-card dd { margin: 0; font-weight: 700; }
.msgc-personal-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.msgc-personal-plan-option { border: 1px solid #e3e7ee; border-radius: 18px; padding: 20px; }
.msgc-personal-plan-option h2 { font-size: 20px; }
.msgc-unified-booking, .msgc-unified-personal-panel { min-width: 0; overflow-wrap: anywhere; }
.msgc-booking-step { margin: 28px 0; }
.msgc-booking-step h2 { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; font-size: 20px; }
.msgc-booking-step h2 > span, .msgc-confirm-card h2 > span { display: inline-grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #172033; color: #fff; font-size: 14px; }
.msgc-store-tabs, .msgc-duration-tabs { display: flex; flex-wrap: wrap; gap: 9px; }
.msgc-choice-tab { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border: 1px solid #cfd6e1; border-radius: 999px; padding: 9px 18px; background: #fff; color: #344054; font-weight: 700; text-decoration: none; }
.msgc-choice-tab:hover, .msgc-choice-tab.is-active { border-color: #2658a7; background: #edf4ff; color: #17478e; }
.msgc-booking-calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.msgc-booking-calendar-heading h2 { margin: 0; }
.msgc-booking-legend { display: flex; flex-wrap: wrap; gap: 14px; margin: 12px 0; color: #667085; font-size: 12px; }
.msgc-booking-legend span { display: inline-flex; align-items: center; gap: 6px; }
.msgc-booking-legend i { width: 10px; height: 10px; border-radius: 50%; background: #98a2b3; }
.msgc-booking-legend i.is-available { background: #087443; }
.msgc-booking-legend i.has-booking { background: #2658a7; }
.msgc-booking-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; min-width: 0; }
.msgc-booking-day { position: relative; min-width: 0; min-height: 64px; border: 1px solid #e3e7ee; border-radius: 10px; background: #f8fafc; }
.msgc-booking-day > a, .msgc-booking-day > span { display: grid; width: 100%; min-height: 64px; place-items: center; align-content: center; gap: 2px; padding: 5px 2px; color: #344054; text-decoration: none; box-sizing: border-box; }
.msgc-booking-day > a { background: #f0f9f4; color: #05603a; font-weight: 800; }
.msgc-booking-day > a:hover, .msgc-booking-day.is-selected > a { background: #dff4e8; box-shadow: inset 0 0 0 2px #087443; }
.msgc-booking-day small { font-size: 10px; }
.msgc-booking-day.is-empty { border-color: transparent; background: transparent; }
.msgc-booking-day.has-booking i { position: absolute; right: 4px; bottom: 4px; width: 7px; height: 7px; border-radius: 50%; background: #2658a7; }
.msgc-slot.is-selected { border-color: #2658a7; background: #edf4ff; box-shadow: inset 0 0 0 1px #2658a7; }
.msgc-personal-primary-card { border: 1px solid #dce4ef; background: #f8fbff; }
.msgc-next-booking-details { display: grid; grid-template-columns: repeat(4, minmax(0, auto)); align-items: center; justify-content: start; gap: 8px 18px; }
.msgc-next-booking-details strong { font-size: 18px; }
.msgc-booking-primary-action .msgc-button { min-width: min(100%, 280px); text-align: center; }
.msgc-personal-remaining, .msgc-personal-booking-month, .msgc-personal-history, .msgc-personal-contract-tools { margin-top: 30px; padding-top: 24px; border-top: 1px solid #e3e7ee; }
.msgc-core .msgc-booking-primary-action > .msgc-button { display: block; width: 100%; max-width: none; box-sizing: border-box; text-align: center; }
.msgc-remaining-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.msgc-remaining-card { min-width: 0; border: 1px solid #e3e7ee; border-radius: 14px; padding: 16px; background: #fbfcfe; }
.msgc-remaining-card > span { display: block; color: #667085; font-size: 13px; }
.msgc-remaining-card > strong { display: block; margin-top: 7px; color: #172033; font-size: 30px; line-height: 1; }
.msgc-remaining-card > strong small { margin-left: 3px; font-size: 14px; }
.msgc-remaining-card p { margin: 10px 0 0; color: #475467; font-size: 12px; }
.msgc-personal-history-list { display: grid; gap: 9px; }
.msgc-personal-history-item { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #e3e7ee; border-radius: 12px; padding: 14px 16px; }
.msgc-personal-history-item div, .msgc-personal-history-item span { min-width: 0; }
.msgc-personal-history-item div > span { display: block; margin-top: 3px; color: #667085; font-size: 12px; }
.msgc-history-status { flex: 0 0 auto; border-radius: 999px; padding: 6px 9px; background: #f2f4f7; color: #475467; font-size: 11px; font-weight: 700; }
.msgc-cancel-confirm-body { margin-top: 10px; border-radius: 10px; padding: 12px; background: #fff; color: #344054; }
.msgc-button-danger { min-height: 44px; }

@media (max-width: 640px) {
  .msgc-register-panel {
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    padding: 22px 18px 30px;
    box-shadow: none;
  }

  .msgc-grid-2,
  .msgc-radio-grid,
  .msgc-info-grid,
  .msgc-menu-grid,
  .msgc-entry-grid,
  .msgc-account-grid,
  .msgc-plan-grid,
  .msgc-contract-details,
  .msgc-training-stats {
    grid-template-columns: 1fr;
  }

  .msgc-step-indicator i {
    width: 44px;
  }

  .msgc-mypage-header {
    flex-direction: column;
  }

  .msgc-member-card {
    min-height: 290px;
  }

  .msgc-entry-panel,
  .msgc-auth-panel {
    border-radius: 12px;
    padding: 22px 18px;
  }

  .msgc-current-contract-heading,
  .msgc-history-card {
    flex-direction: column;
  }

  .msgc-history-card > div:last-child {
    text-align: left;
  }

  .msgc-member-menu-item {
    min-height: 70px;
    padding: 15px 16px;
  }

  .msgc-training-section {
    padding: 18px 14px;
  }

  .msgc-training-heading,
  .msgc-access-history-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .msgc-training-heading > strong {
    font-size: 14px;
  }

  .msgc-training-calendar {
    gap: 4px;
  }

  .msgc-calendar-day {
    border-radius: 8px;
    font-size: 12px;
  }

  .msgc-training-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .msgc-training-stats > div {
    padding: 10px 8px;
  }

  .msgc-training-stats strong {
    font-size: 17px;
  }

  .msgc-access-history-meta {
    text-align: left;
  }

  .msgc-personal-panel { border-radius: 16px; padding: 18px 12px; }
  .msgc-personal-heading, .msgc-personal-calendar-heading { align-items: flex-start; flex-direction: column; }
  .msgc-personal-overview, .msgc-booking-filter, .msgc-personal-plan-grid { grid-template-columns: 1fr; }
  .msgc-personal-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .msgc-personal-plan-card { grid-column: 1 / -1; }
  .msgc-personal-calendar { gap: 3px; }
  .msgc-personal-day { min-height: 72px; border-radius: 8px; padding: 4px; }
  .msgc-personal-event > summary { padding: 4px 3px; font-size: 10px; }
  .msgc-personal-event > summary small { font-size: 8px; }
  .msgc-personal-event-detail { position: fixed; z-index: 100; right: 16px; bottom: 16px; left: 16px; width: auto; max-height: 70vh; overflow-y: auto; }
  .msgc-slot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .msgc-confirm-card dl > div { grid-template-columns: 1fr; gap: 3px; }
  .msgc-booking-calendar-heading { align-items: flex-start; flex-direction: column; }
  .msgc-booking-calendar { gap: 3px; }
  .msgc-booking-day, .msgc-booking-day > a, .msgc-booking-day > span { min-height: 48px; }
  .msgc-booking-day { border-radius: 7px; }
  .msgc-booking-day strong { font-size: 12px; }
  .msgc-booking-day small { font-size: 8px; }
  .msgc-choice-tab { flex: 1 1 auto; padding-inline: 12px; }
  .msgc-next-booking-details { grid-template-columns: 1fr 1fr; }
  .msgc-next-booking-details strong { grid-column: 1 / -1; }
  .msgc-remaining-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .msgc-remaining-card { padding: 13px 10px; }
  .msgc-personal-history-item { align-items: flex-start; flex-direction: column; }
  .msgc-history-status { align-self: flex-start; }
  .msgc-unified-booking .msgc-confirm-card { padding: 18px 14px; }
}
.msgc-password-strength{display:block;margin-top:6px;font-size:.86rem;font-weight:600;color:#52606d}.msgc-password-strength[data-strength="1"],.msgc-password-strength[data-strength="2"],.msgc-password-strength[data-strength="5"]{color:#b42318}.msgc-password-strength[data-strength="3"]{color:#9a6700}.msgc-password-strength[data-strength="4"]{color:#087443}

.msgc-unified-booking [hidden] { display: none !important; }
.msgc-booking-card + .msgc-booking-card { margin-top: 28px; padding-top: 24px; border-top: 1px solid #e4e7ec; }
.msgc-batch-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.msgc-add-booking { display: block; width: 100%; min-height: 48px; padding: 14px; margin: 20px 0; border: 1px solid currentColor; border-radius: 12px; background: #fff; color: #334155; font: inherit; font-weight: 600; cursor: pointer; }
.msgc-add-booking:disabled { color: #667085; background: #f5f6f8; cursor: default; }
.msgc-add-booking:focus-visible { outline: 3px solid #334155; outline-offset: 3px; }

/* PERSONAL availability: one-hour summaries, existing 15-minute start choices. */
.msgc-unified-booking { --msgc-accent: #f8ba2f; --msgc-text: #111; --msgc-calendar-ink: #111; --msgc-calendar-soft: #fff; --msgc-calendar-available: #75b9dc; }
.msgc-unified-booking .msgc-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.msgc-unified-booking .msgc-calendar-toolbar h2 { margin: 0; }
.msgc-unified-booking .msgc-calendar-filters { display: inline-flex; flex-shrink: 0; border: 1px solid #edcb94; border-radius: 10px; overflow: hidden; }
.msgc-unified-booking .msgc-calendar-filters a { min-width: 48px; min-height: 42px; display: grid; place-items: center; color: var(--msgc-calendar-ink); background: #fff; text-decoration: none; font-weight: 700; }
.msgc-unified-booking .msgc-calendar-filters a[aria-current] { background: var(--msgc-accent); color: #3b290c; }
.msgc-unified-booking .msgc-calendar-navigation { display: flex; align-items: center; gap: 6px; margin: 12px 0; }
.msgc-unified-booking .msgc-calendar-navigation strong { flex: 1; text-align: center; font-size: 14px; }
.msgc-unified-booking .msgc-calendar-navigation a { display: grid; place-items: center; min-width: 40px; min-height: 42px; border: 1px solid #edcb94; border-radius: 8px; color: var(--msgc-calendar-ink); text-decoration: none; font-size: 24px; }
.msgc-unified-booking .msgc-calendar-navigation .msgc-calendar-today { font-size: 12px; padding: 0 8px; }
.msgc-unified-booking .msgc-calendar-key { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 12px; color: var(--msgc-muted); margin: 10px 0; }
.msgc-unified-booking .msgc-calendar-key span:first-child { color: var(--msgc-calendar-ink); font-weight: 700; }
.msgc-unified-booking .msgc-hour-scroll { max-height: 440px; max-height: min(440px, 60vh); width: 100%; max-width: 100%; overflow: auto; border: 1px solid #ead8bc; border-radius: 12px; isolation: isolate; overscroll-behavior: contain; scrollbar-color: #dfb777 #fff7e8; }
.msgc-unified-booking .msgc-hour-calendar { width: 100%; min-width: 320px; margin: 0; border: 0; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 13px; }
.msgc-unified-booking .msgc-hour-calendar.is-month { min-width: 1560px; }
.msgc-unified-booking .msgc-hour-calendar.is-week { min-width: 0; }
.msgc-unified-booking .msgc-hour-calendar :is(th, td) { padding: 0; text-align: center; border: 0; border-right: 1px solid #eee5d7; border-bottom: 1px solid #eee5d7; vertical-align: middle; }
.msgc-unified-booking .msgc-hour-calendar thead th { position: sticky; top: 0; z-index: 2; height: 54px; background: #fff0d2; color: #674015; font-weight: 700; }
.msgc-unified-booking .msgc-hour-calendar thead :is(span, small) { display: block; }
.msgc-unified-booking .msgc-hour-calendar thead small { font-size: 11px; margin-top: 2px; font-weight: 500; }
.msgc-unified-booking .msgc-hour-calendar thead th.is-today { background: var(--msgc-accent); color: #3b290c; box-shadow: inset 0 -3px #ae570d; }
.msgc-unified-booking .msgc-hour-calendar tr > th:first-child { position: sticky; left: 0; width: 52px; background: #fffaf0; font-size: 11px; z-index: 1; }
.msgc-unified-booking .msgc-hour-calendar thead tr > th:first-child { z-index: 3; background: #fff0d2; }
.msgc-unified-booking .msgc-hour-calendar td { background: #fff; }
.msgc-unified-booking .msgc-hour-calendar td > :is(a, span) { display: grid; place-items: center; min-height: 42px; font-size: 21px; line-height: 1; text-decoration: none; }
.msgc-unified-booking .msgc-hour-calendar td > a { color: var(--msgc-calendar-ink); font-weight: 700; }
.msgc-unified-booking .msgc-hour-calendar td > span { color: #89919d; background: #f7f7f6; font-size: 17px; }
.msgc-unified-booking .msgc-hour-calendar td.is-outside > span { background: #efefed; }
.msgc-unified-booking .msgc-hour-calendar td > a:hover { background: #fff0d2; }
.msgc-unified-booking .msgc-hour-calendar td.is-selected > a { background: #ffe0a0; color: #773b06; box-shadow: inset 0 0 0 2px #cb7918; }
.msgc-unified-booking .msgc-calendar-scroll-hint { color: var(--msgc-muted); font-size: 11px; margin: 8px 0 0; }
.msgc-unified-booking .msgc-calendar-sr { position: absolute; width: 1px; height: 1px; padding: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.msgc-unified-booking .msgc-slot-list { padding: 16px; border: 1px solid #efcb90; border-radius: 12px; background: var(--msgc-calendar-soft); scroll-margin-top: 24px; }
.msgc-unified-booking .msgc-slot-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.msgc-unified-booking .msgc-slot { min-height: 44px; padding: 10px 4px; color: var(--msgc-calendar-ink); border-color: #ebc68b; }
.msgc-unified-booking .msgc-slot.is-selected { background: var(--msgc-accent); border-color: #b36513; color: #3b290c; }
.msgc-unified-booking .msgc-choice-tab.is-active { background: var(--msgc-calendar-soft); border-color: #d59637; color: var(--msgc-calendar-ink); }
.msgc-unified-booking .msgc-add-booking { color: var(--msgc-calendar-ink); border-color: #d59637; background: var(--msgc-calendar-soft); }
.msgc-unified-booking .msgc-add-booking:disabled { color: #667085; border-color: #d0d5dd; background: #f5f6f8; }
.msgc-unified-booking :is(.msgc-calendar-filters a, .msgc-calendar-navigation a, .msgc-hour-scroll, .msgc-hour-calendar a, .msgc-slot, .msgc-add-booking):focus-visible { outline: 3px solid #9a5010; outline-offset: -3px; }
.msgc-unified-booking :is([data-msgc-card-title], [data-msgc-slot-panel], [data-msgc-selection-summary]):focus-visible { outline: 2px solid #111; outline-offset: 4px; }
/* Keep the whole header together during touch scrolling (including Safari). */
.msgc-unified-booking .msgc-hour-scroll { position: relative; isolation: auto; overscroll-behavior: contain; }
.msgc-unified-booking .msgc-hour-calendar thead { position: sticky; top: 0; z-index: 3; }
.msgc-unified-booking .msgc-hour-calendar thead th { position: static; }
.msgc-unified-booking .msgc-hour-calendar thead tr > th:first-child { position: sticky; left: 0; z-index: 4; }
.msgc-unified-booking .msgc-booking-store-select { display: block; width: 100%; min-height: 48px; border: 1px solid #ddd; border-radius: 10px; padding: 10px 36px 10px 12px; background-color: #fff; color: #111; font: inherit; }
.msgc-unified-booking .msgc-selected-bookings { margin: 20px 0; padding: 18px; border: 1px solid #f8ba2f; border-radius: 12px; background: #fff; }
.msgc-unified-booking .msgc-selected-bookings h2 { margin: 0 0 12px; font-size: 20px; }
.msgc-unified-booking .msgc-selected-bookings li { padding: 8px 0; overflow-wrap: anywhere; }
.msgc-unified-booking .msgc-selected-bookings p { font-size: 13px; margin-bottom: 0; }
.msgc-selection-month { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:16px 0; }
.msgc-selection-month button { min-width:40px; min-height:40px; padding:4px; border:1px solid #f8ba2f; border-radius:50%; background:#fff; color:#111; font-size:24px; }
.msgc-selection-month button:disabled { opacity:.35; }
.msgc-selection-calendar table { width:100%; table-layout:fixed; border:0; border-collapse:separate; border-spacing:3px; margin:0 0 16px; }
.msgc-selection-calendar th { border:0; padding:6px 0; text-align:center; font-size:12px; }
.msgc-selection-calendar td { height:56px; padding:4px; vertical-align:top; border:1px solid #e0e2e7; border-radius:6px; background:#fff; font-size:12px; }
.msgc-selection-calendar td.is-empty { background:#f7f7f7; }
.msgc-selection-calendar td.is-selected { background:#fff0c2; border-color:#f8ba2f; }
.msgc-selection-calendar td strong { display:block; font-size:16px; overflow-wrap:anywhere; color:#111; }
.msgc-selected-bookings ol { list-style:none; padding-left:0; }
.msgc-selected-bookings li[data-booking-number]::before { content:attr(data-booking-number); font-weight:700; }
.msgc-unified-booking .msgc-booking-back-top { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 100; display: grid; place-items: center; width: 48px; height: 48px; min-height: 48px; padding: 0; border: 1px solid #dda51f; border-radius: 50%; background: #f8ba2f; color: #292a2d; box-shadow: 0 4px 14px #0002; cursor: pointer; }
.msgc-unified-booking :is(.msgc-booking-back-top, .msgc-booking-store-select):focus-visible { outline: 3px solid #111; outline-offset: 3px; }
.msgc-unified-booking .msgc-booking-store-select:focus { outline: none; border-color: #f8ba2f; box-shadow: 0 0 0 1px #f8ba2f; }
/* Booking-only brand palette and aligned, touch-friendly controls. */
.msgc-unified-booking :is(.msgc-booking-step, .msgc-confirm-card) h2 { display: flex; align-items: center; gap: 9px; font-size: 20px; line-height: 1.5; }
.msgc-unified-booking :is(.msgc-booking-step, .msgc-confirm-card) h2 > span { display: inline-flex; flex: 0 0 1.5em; width: 1.5em; height: 1.5em; align-items: center; justify-content: center; font-size: 1em; line-height: 1; background: #111; color: #fff; }
.msgc-unified-booking :is(.msgc-calendar-filters, .msgc-calendar-navigation a, .msgc-slot-list, .msgc-choice-tab, .msgc-slot, .msgc-add-booking) { border-color: var(--msgc-accent); color: #111; }
.msgc-unified-booking :is(.msgc-calendar-filters a[aria-current], .msgc-choice-tab.is-active, .msgc-choice-tab:hover, .msgc-slot.is-selected, .msgc-slot:hover) { background: var(--msgc-accent); color: #111; border-color: var(--msgc-accent); }
.msgc-unified-booking .msgc-hour-scroll { border-color: #ddd; scrollbar-color: var(--msgc-accent) #fff; }
.msgc-unified-booking .msgc-hour-calendar :is(th, td) { border-color: #e5e5e5; }
.msgc-unified-booking .msgc-hour-calendar thead th,
.msgc-unified-booking .msgc-hour-calendar thead tr > th:first-child { background: var(--msgc-accent); color: #111; }
.msgc-unified-booking .msgc-hour-calendar thead th.is-today { background: var(--msgc-accent); color: #111; box-shadow: inset 0 -3px #111; }
.msgc-unified-booking .msgc-hour-calendar tbody tr > th:first-child { background: #fff; color: #111; }
.msgc-unified-booking .msgc-hour-calendar td > a { color: var(--msgc-calendar-available); }
.msgc-unified-booking .msgc-hour-calendar td > a:hover { background: #edf7fc; }
.msgc-unified-booking .msgc-hour-calendar td.is-selected > a { color: var(--msgc-calendar-available); background: #fff0c2; box-shadow: inset 0 0 0 2px var(--msgc-accent); }
.msgc-unified-booking .msgc-slot.is-selected[aria-current],
.msgc-unified-booking .preview-times button[aria-pressed="true"] { background: #fff0c2; color: #111; border-color: var(--msgc-accent); box-shadow: inset 0 0 0 1px var(--msgc-accent); }
.msgc-unified-booking .msgc-calendar-key span:first-child { color: #397da1; }
.msgc-unified-booking [data-msgc-batch-confirm] { width: 100%; max-width: none; padding: 0; border: 0; background: #fff; }
.msgc-unified-booking [data-msgc-booking-confirm-form] .msgc-check-row { display: flex; align-items: center; gap: 8px; margin: 0 0 20px; line-height: 1.6; }
.msgc-unified-booking [data-msgc-booking-confirm] { flex: 0 0 auto; accent-color: var(--msgc-accent); }
.msgc-unified-booking :is(.msgc-add-booking, [data-msgc-booking-submit]) { display: block; width: 100%; min-height: 52px; padding: 14px; border: 1px solid var(--msgc-accent); border-radius: 12px; font: inherit; font-weight: 600; line-height: 1.5; text-align: center; }
.msgc-unified-booking [data-msgc-booking-submit] { background: var(--msgc-accent); color: #111; margin: 0; }
.msgc-unified-booking [data-msgc-booking-submit]:hover:not(:disabled) { background: #f8ba2f; box-shadow: inset 0 0 0 1px #111; }
.msgc-unified-booking :is(.msgc-calendar-filters a, .msgc-calendar-navigation a, .msgc-hour-scroll, .msgc-hour-calendar a, .msgc-slot, .msgc-add-booking, [data-msgc-booking-submit]):focus-visible { outline: 3px solid #111; outline-offset: -3px; }
@media (max-width: 480px) {
  .msgc-unified-booking .msgc-calendar-navigation { gap: 4px; }
  .msgc-unified-booking .msgc-calendar-navigation strong { font-size: 12px; }
  .msgc-unified-booking .msgc-calendar-navigation a { min-width: 34px; }
  .msgc-unified-booking .msgc-hour-calendar { min-width: 280px; font-size: 11px; }
  .msgc-unified-booking .msgc-hour-calendar tr > th:first-child { width: 43px; font-size: 10px; }
  .msgc-unified-booking .msgc-hour-calendar.is-month { min-width: 1420px; }
  .msgc-unified-booking .msgc-slot-list { padding: 12px; }
}

/* Member cards align with the existing customer Karte page shell. */
body:has(.msgc-mypage) #inner-wrap :is(.content-container,.content-wrap,.site-main,.entry,.entry-content-wrap,.entry-content){width:100%!important;max-width:none!important;margin-inline:0!important;padding-inline:0!important;box-sizing:border-box}
body:has(.msgc-mypage) #main .msgc-mypage{width:100%;max-width:1000px;margin-inline:auto!important;padding-inline:38px;box-sizing:border-box}
@media(min-width:1600px){body:has(.msgc-mypage) #main .msgc-mypage{padding-inline:55px}}
@media(max-width:1150px){body:has(.msgc-mypage) #main .msgc-mypage{padding-inline:24px}}
@media(max-width:760px){body:has(.msgc-mypage) #main .msgc-mypage{padding-inline:17px}}

/* My Page hierarchy: existing controls and data, compact presentation. */
.msgc-mypage h2{font-size:24px;line-height:1.4}
.msgc-mypage h3,.msgc-mypage .msgc-personal-history summary h3{font-size:18px;line-height:1.5}
.msgc-mypage .msgc-personal-history>summary{cursor:pointer;padding:12px 0}
.msgc-mypage .msgc-personal-history>summary h3{display:inline;margin:0}
.msgc-mypage .msgc-remaining-compact{margin:10px 0;padding:10px 0;border:0;background:transparent}
.msgc-mypage .msgc-remaining-compact h3{font-size:13px;margin:0 0 6px}
.msgc-mypage .msgc-remaining-compact .msgc-remaining-grid{display:flex;flex-wrap:wrap;gap:8px}
.msgc-mypage .msgc-remaining-compact .msgc-remaining-card{padding:8px 12px;min-width:0}
.msgc-mypage .msgc-remaining-compact .msgc-remaining-card strong{font-size:18px}
.msgc-mypage .msgc-remaining-compact .msgc-remaining-card p,.msgc-mypage .msgc-remaining-compact .msgc-policy-note{font-size:12px;margin:4px 0}

/* Registration actions override theme blue hover without changing other services. */
.msgc-core.msgc-register-shell .msgc-button,
.msgc-core.msgc-register-shell button:not(.msgc-button-secondary){background:#f8ba2f!important;color:#1f2937!important;transition:background-color .15s ease}
.msgc-core.msgc-register-shell .msgc-button:hover,
.msgc-core.msgc-register-shell button:not(.msgc-button-secondary):hover,
.msgc-core.msgc-register-shell button:not(.msgc-button-secondary):focus-visible{background:#fbd477!important;color:#1f2937!important;filter:none}
.msgc-core.msgc-register-shell .msgc-button-secondary:hover{background:#fff2ce!important;color:#1f2937!important;filter:none}
.msgc-core.msgc-register-shell button:focus-visible{outline:3px solid #936b00;outline-offset:3px}
.msgc-core.msgc-register-shell button:disabled{cursor:wait}
@media(prefers-reduced-motion:reduce){.msgc-core.msgc-register-shell button{transition:none}}

/* SALUGIA course-change controls. */
.msgc-core.msgc-personal-plan-change .msgc-button,
.msgc-core.msgc-personal-plan-change .msgc-button-secondary{background:#f8ba2f;color:#222;border:1px solid #f8ba2f;box-shadow:none}
.msgc-core.msgc-personal-plan-change .msgc-button:hover,
.msgc-core.msgc-personal-plan-change .msgc-button-secondary:hover{background:#ffdf8a;color:#222;border-color:#ffdf8a}
.msgc-core.msgc-personal-plan-change .msgc-button:focus-visible,
.msgc-core.msgc-personal-plan-change .msgc-button-secondary:focus-visible{outline:3px solid #8a6200;outline-offset:4px}
.msgc-core.msgc-personal-plan-change input[type=checkbox]{accent-color:#f8ba2f}

/* Read-only confirmation is separate from selection and consent. */
.msgc-personal-plan-change .msgc-change-summary { border: 1px solid #d9d5cb; border-radius: 16px; background: #fffdf6; padding: clamp(20px, 4vw, 32px); margin: 24px 0; color: #222; }
.msgc-personal-plan-change .msgc-change-summary h3 { margin-top: 0; }
.msgc-personal-plan-change .msgc-change-summary ul { padding-left: 1.3em; line-height: 1.8; }
.msgc-personal-plan-change .msgc-change-summary p:has(> strong) { border-top: 1px solid #e4dcc6; padding-top: 18px; font-size: 1.4rem; }

/* My Page actions, including reservation cancellation dialogs. */
.msgc-mypage :is(.msgc-button,.msgc-button-danger){background:#f8ba2f!important;color:#222!important;border-color:#f8ba2f!important}.msgc-mypage :is(.msgc-button,.msgc-button-danger):hover,.msgc-core .msgc-button-danger:hover{background:#ffdf8a!important;color:#222!important;border-color:#ffdf8a!important}.msgc-mypage .msgc-link-button:hover{background:#fff2ce!important;color:#222!important}

/* Cancellation and membership lifecycle disclosures retain a red interaction cue. */
.msgc-core .msgc-cancel-confirm > .msgc-link-button,
.msgc-payment-hub .msgc-cancel-confirm > .msgc-link-button{color:#b42318!important;border-radius:4px;transition:color .15s ease,background-color .15s ease}
.msgc-core .msgc-cancel-confirm > .msgc-link-button:hover,
.msgc-payment-hub .msgc-cancel-confirm > .msgc-link-button:hover{color:#c74e47!important;background:#fff1f0!important}
.msgc-core .msgc-cancel-confirm > .msgc-link-button:focus,
.msgc-payment-hub .msgc-cancel-confirm > .msgc-link-button:focus{color:#b42318!important;background:#fff1f0!important;outline:2px solid #d86b65!important;outline-offset:3px;box-shadow:none!important}
