/* Dark colour scheme for the Golf In Club front end (booking wizard, tee calendar, tee schedule).

   The plugin ships light only. This sheet recolours it to match golfinclub.com: navy surfaces, soft white
   text and the site's red for primary actions. It changes colours, borders and shadows only, never layout,
   and is written against the plugin's own class names so it could ship in the plugin as a "Dark" option.
   Everything is scoped to .mk-dark (set on <html>); swap that for the plugin's own scope class. */

.mk-dark {
  --gd-page: #0e131f;        /* site background (rich-black) */
  --gd-surface: #141b2a;     /* wizard / calendar / schedule panel */
  --gd-card: #1b2334;        /* cards inside a panel */
  --gd-inset: #232c40;       /* controls and insets inside a card */
  --gd-line: rgba(255, 255, 255, 0.10);
  --gd-line-strong: rgba(255, 255, 255, 0.18);
  --gd-text: #eaedf6;        /* ghost-white */
  --gd-muted: #b4bcc6;       /* cadet-gray, a touch lighter for small text */
  --gd-red: #ff0035;         /* imperial-red */
  --gd-red-dark: #cc002a;
  --gd-red-soft: #ff8098;    /* red text that stays readable on navy */
  --gd-red-fill: #e6002f;    /* filled red behind white text: a shade deeper than the brand red so white reads at 4.5:1+ */
  --gd-red-fill-dark: #b80026;
  --gd-green: #7be3ad;
  /* The accent in dark mode is the site's red, whatever accent the light scheme uses. */
  --gic-primary-color: #e6002f; --gic-hover-color: #b80026; --gic-primary-hover: #b80026; --gic-primary-active: #99001f;
  color-scheme: dark;
}
.mk-dark body { background: var(--gd-page); color: var(--gd-text); }
.mk-dark .mk-title { color: var(--gd-text); }
.mk-dark .mk-panel { background: var(--gd-surface); color: var(--gd-text); box-shadow: 0 0 0 1px var(--gd-line), 0 24px 60px rgba(0, 0, 0, 0.35); }

/* ---------- Booking wizard ---------- */
.mk-dark .gic-booking-wrapper {
  --gic-primary-color: #e6002f; --gic-hover-color: #b80026;
  --gic-background-color: var(--gd-surface);
  --gic-focus-color: rgba(255, 0, 53, 0.25);
  background-color: var(--gd-surface);
  color: var(--gd-text) !important;                  /* the plugin sets #333 !important here */
  box-shadow: 0 0 0 1px var(--gd-line), 0 24px 60px rgba(0, 0, 0, 0.35);
}
.mk-dark .gic-booking-wrapper h3,
.mk-dark .gic-booking-wrapper h4,
.mk-dark .gic-booking-wrapper p,
.mk-dark .gic-booking-wrapper strong { color: var(--gd-text); }
.mk-dark .gic-booking-wrapper small { color: var(--gd-muted); }

/* Progress */
.mk-dark .gic-progress-step { border-bottom-color: var(--gd-line); }
.mk-dark .gic-progress-step:not(:last-child)::after { background: var(--gd-line-strong); }
.mk-dark .gic-step-icon { background: var(--gd-card); border-color: var(--gd-line-strong); color: var(--gd-muted); }
.mk-dark .gic-step-icon::after { color: var(--gd-muted); }      /* short labels under the icons on phones */
.mk-dark .gic-step-text { color: var(--gd-muted); }
.mk-dark .gic-progress-step.gic-active { border-bottom-color: var(--gd-red); }
.mk-dark .gic-progress-step.gic-active .gic-step-icon { border-color: var(--gd-red); color: var(--gd-red-soft); background: rgba(255, 0, 53, 0.14); }
.mk-dark .gic-progress-step.gic-active .gic-step-icon::after,
.mk-dark .gic-progress-step.gic-active .gic-step-text { color: var(--gd-text); }
.mk-dark .gic-progress-step.gic-complete .gic-step-icon { color: var(--gd-text); }

/* Fields. The plugin forces white fields with !important, so these have to match it. */
.mk-dark .gic-booking-wrapper label,
.mk-dark .gic-booking-wrapper .gic-form-group label { color: var(--gd-text) !important; }
.mk-dark .gic-booking-wrapper input[type="date"],
.mk-dark .gic-booking-wrapper input[type="text"],
.mk-dark .gic-booking-wrapper input[type="email"],
.mk-dark .gic-booking-wrapper input[type="password"],
.mk-dark .gic-booking-wrapper input[type="number"],
.mk-dark .gic-booking-wrapper select { background-color: var(--gd-card) !important; border-color: var(--gd-line-strong) !important; color: var(--gd-text) !important; }
.mk-dark .gic-booking-form select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23eaedf6' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); }
.mk-dark .gic-booking-wrapper select option { background: var(--gd-card); color: var(--gd-text); }

/* Buttons: primary uses the site's red gradient, secondary is a quiet navy button */
.mk-dark .gic-booking-wrapper .gic-button { background: linear-gradient(135deg, var(--gd-red-fill) 0%, var(--gd-red-fill-dark) 100%); color: #fff; }
.mk-dark .gic-booking-wrapper .gic-button:disabled { background: var(--gd-inset) !important; color: var(--gd-muted) !important; opacity: 1; }
.mk-dark .gic-booking-wrapper .gic-prev-step,
.mk-dark .gic-booking-wrapper .gic-back-to-choice,
.mk-dark .gic-booking-wrapper .gic-button.gic-calendar-button { background: var(--gd-inset) !important; color: var(--gd-text) !important; box-shadow: inset 0 0 0 1px var(--gd-line); opacity: 1; }
.mk-dark .gic-booking-wrapper .gic-button.gic-date-nav { background: var(--gd-card) !important; border-color: var(--gd-line-strong) !important; color: var(--gd-text) !important; box-shadow: none; }
.mk-dark .gic-booking-wrapper .gic-button.gic-date-nav .gic-date-nav-icon > i { color: var(--gd-text) !important; }
.mk-dark .gic-booking-wrapper .gic-button.gic-date-nav:disabled { background: transparent !important; border-color: var(--gd-line) !important; }
.mk-dark .gic-booking-wrapper .gic-button.gic-date-nav:disabled .gic-date-nav-icon > i { color: rgba(255, 255, 255, 0.3) !important; }

/* Step 2: time slots */
.mk-dark .gic-time-slots-title,
.mk-dark .gic-time-slots-title-prefix,
.mk-dark .gic-time-slots-title-date,
.mk-dark .gic-time-slots-title-line { color: var(--gd-text); }
.mk-dark .gic-time-slot-group { background: var(--gd-card); box-shadow: inset 0 0 0 1px var(--gd-line); }
.mk-dark .gic-time-slot-group-header h4 { color: var(--gd-text); }
.mk-dark .gic-time-slot-group-header span,
.mk-dark .gic-time-slot-group-description { color: var(--gd-muted); }
.mk-dark .gic-booking-wrapper button.gic-time-slot-button { background: var(--gd-inset); border-color: var(--gd-line); color: var(--gd-text); }
.mk-dark .gic-booking-wrapper button.gic-time-slot-button span.gic-time { color: var(--gd-text); }
.mk-dark .gic-booking-wrapper button.gic-time-slot-button span.gic-price { background: rgba(53, 208, 127, 0.12); border-color: rgba(53, 208, 127, 0.32); color: var(--gd-green); }
.mk-dark .gic-booking-wrapper button.gic-time-slot-button.gic-selected { background: linear-gradient(135deg, var(--gd-red-fill) 0%, var(--gd-red-fill-dark) 100%); border-color: var(--gd-red); }
.mk-dark .gic-booking-wrapper button.gic-time-slot-button.gic-selected span.gic-time { color: #fff; }
.mk-dark .gic-booking-wrapper button.gic-time-slot-button.gic-selected span.gic-price { background: rgba(0, 0, 0, 0.22); border-color: rgba(255, 255, 255, 0.5); color: #fff; }
.mk-dark .gic-time-slots-message { background: var(--gd-card); color: var(--gd-text); border-color: var(--gd-line); }

/* Step 3: bays */
.mk-dark .gic-selected-time { color: var(--gd-text); }
.mk-dark .gic-booking-wrapper .gic-bay-card { background: var(--gd-card); border-color: var(--gd-line); }
.mk-dark .gic-booking-wrapper .gic-bay-card h4 { color: var(--gd-text); }
.mk-dark .gic-booking-wrapper .gic-bay-card p { color: var(--gd-muted); }
.mk-dark .gic-booking-wrapper .gic-bay-card.gic-selected { border-color: var(--gd-red); background: #20283b; box-shadow: 0 0 0 3px rgba(255, 0, 53, 0.28); }

/* Step 5: summary and payment */
.mk-dark .gic-payment-details { background: var(--gd-card); border-color: var(--gd-line); box-shadow: none; }
.mk-dark .gic-summary-header h3 { border-bottom-color: var(--gd-line); color: var(--gd-text); }
.mk-dark .gic-summary-item { border-bottom-color: var(--gd-line); }
.mk-dark .gic-summary-label { color: var(--gd-muted); }
.mk-dark .gic-summary-value { color: var(--gd-text); }
.mk-dark .gic-pricing-breakdown { background: var(--gd-surface); }
.mk-dark .gic-price-item.gic-discount .gic-summary-value { color: var(--gd-green); }
.mk-dark .gic-summary-item.gic-total { border-top-color: var(--gd-line-strong); }
.mk-dark .gic-summary-item.gic-total .gic-summary-label { color: var(--gd-text); }
.mk-dark .gic-summary-item.gic-total .gic-summary-value { color: #fff; }
.mk-dark .stripe-element-container { background: var(--gd-surface); border-color: var(--gd-line); }

/* Step 6: confirmation */
.mk-dark .gic-success-message h2 { color: var(--gd-text); }
.mk-dark .gic-success-message h2 i { color: var(--gd-green); }
.mk-dark .gic-success-message > p { color: var(--gd-muted); }
.mk-dark .gic-success-message .gic-booking-details { background: var(--gd-card); box-shadow: inset 0 0 0 1px var(--gd-line); }
.mk-dark .gic-success-message .gic-booking-details p,
.mk-dark .gic-success-message .gic-booking-details strong,
.mk-dark .gic-pricing-details h3 { color: var(--gd-text); }
.mk-dark hr.gic-divider { border-color: var(--gd-line); background: var(--gd-line); }
.mk-dark .gic-step-loading p { color: var(--gd-muted); }

/* ---------- Tee calendar ---------- */
.mk-dark .gic-tee-calendar-wrapper { color: var(--gd-text); --fc-border-color: var(--gd-line); --fc-page-bg-color: var(--gd-surface); --fc-neutral-bg-color: var(--gd-card); --fc-today-bg-color: rgba(255, 255, 255, 0.05); }
.mk-dark .gic-calendar-filters label { color: var(--gd-text); }
.mk-dark .select2-container--default .select2-selection--multiple,
.mk-dark .select2-container--default .select2-selection--single { background-color: var(--gd-card); border-color: var(--gd-line-strong); }
.mk-dark .select2-container--default .select2-search--inline .select2-search__field { color: var(--gd-text); }
.mk-dark .select2-container--default .select2-search--inline .select2-search__field::placeholder { color: var(--gd-muted); opacity: 1; }
.mk-dark .fc .fc-toolbar-title,
.mk-dark .fc .fc-col-header-cell-cushion { color: var(--gd-text); }
.mk-dark .fc .fc-button-primary { background: linear-gradient(135deg, var(--gd-red-fill) 0%, var(--gd-red-fill-dark) 100%); border-color: transparent; color: #fff; }
.mk-dark .fc .fc-button-primary:disabled { background: var(--gd-inset); color: var(--gd-muted); opacity: 1; }
.mk-dark .fc .fc-button-primary:not(:disabled).fc-button-active { background: #99001f !important; border-color: transparent !important; box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.35); }
/* Grid lines and the "today" column are forced light with !important in tee-calendar.css. */
.mk-dark .fc .fc-daygrid-day.fc-day-today { background-color: rgba(255, 255, 255, 0.05) !important; }
.mk-dark .fc .fc-col-header-cell { border-bottom-color: var(--gd-line-strong) !important; }
.mk-dark .fc-theme-standard td { border-right-color: var(--gd-line) !important; }
.mk-dark .fc-theme-standard td, .mk-dark .fc-theme-standard th { border-color: var(--gd-line); }

/* ---------- Tee schedule ---------- */
.mk-dark .gic-tee-schedule .gic-bay-card { background: var(--gd-card); box-shadow: 0 0 0 1px var(--gd-line), 0 18px 40px rgba(0, 0, 0, 0.30); }
.mk-dark .gic-no-bookings { color: var(--gd-muted); }
.mk-dark .gic-day-header { background: var(--gd-inset); }
.mk-dark .gic-day-weekday, .mk-dark .gic-day-date--full { color: var(--gd-text); }
.mk-dark .gic-day-date { color: var(--gd-muted); }
.mk-dark .gic-booking-count { background: transparent; color: var(--gd-red-soft); border-color: rgba(255, 128, 152, 0.6); }
.mk-dark .gic-day-header.active { background: linear-gradient(135deg, var(--gd-red-fill) 0%, var(--gd-red-fill-dark) 100%); }
.mk-dark .gic-day-header.active .gic-day-weekday,
.mk-dark .gic-day-header.active .gic-day-date,
.mk-dark .gic-day-header.active .gic-day-date--full { color: #fff; }
.mk-dark .gic-day-header.active .gic-booking-count { background: #fff; color: #b00024; border-color: #fff; }
.mk-dark .gic-day-bookings { background: transparent; }
.mk-dark .gic-booking-item { background: transparent; border-color: var(--gd-line); }
.mk-dark .gic-time-start, .mk-dark .gic-time-end { background: var(--gd-inset); color: var(--gd-text); }
.mk-dark .gic-time-start::before, .mk-dark .gic-time-end::before { background: var(--gd-card); color: var(--gd-muted); }
.mk-dark .gic-booking-user { color: var(--gd-text); }
.mk-dark .gic-booking-duration { color: var(--gd-muted); }
.mk-dark .gic-cancel-booking { background: transparent; color: var(--gd-red-soft); border-color: rgba(255, 128, 152, 0.6); }
.mk-dark .gic-status-active { background: rgba(255, 170, 60, 0.10); }

/* ---------- Stand-in for Stripe's Payment Element: its own "night" appearance ---------- */
.mk-dark .mk-stripe { color: #fff; }
.mk-dark .mk-stripe-tab { background: #30313d; border-color: #424353; color: #c7c8d2; box-shadow: none; }
.mk-dark .mk-stripe-tab.is-selected { border-color: #85b7ff; color: #85b7ff; box-shadow: 0 0 0 1px #85b7ff; }
.mk-dark .mk-stripe-field > span { color: #fff; }
.mk-dark .mk-stripe-input { background: #30313d; border-color: #424353; color: #fff; box-shadow: none; }
.mk-dark .mk-stripe-input svg, .mk-dark .mk-stripe-input i { color: #a9aab6; }

/* ---------- Loading states: skeleton loaders and the spinner ---------- */
.mk-dark .gic-booking-wrapper .gic-time-slots-skeleton-group,
.mk-dark .gic-booking-wrapper .gic-bays-skeleton-card { background: var(--gd-card); border-color: var(--gd-line); box-shadow: inset 0 0 0 1px var(--gd-line); }
/* The shimmer keeps the plugin's size and animation; only its colours change. */
.mk-dark .gic-booking-wrapper .gic-time-slots-skeleton-line,
.mk-dark .gic-booking-wrapper .gic-time-slots-skeleton-pill,
.mk-dark .gic-booking-wrapper .gic-step2-date-skeleton-line,
.mk-dark .gic-booking-wrapper .gic-bays-skeleton-header,
.mk-dark .gic-booking-wrapper .gic-bays-skeleton-image,
.mk-dark .gic-booking-wrapper .gic-bays-skeleton-line { background-image: linear-gradient(90deg, #232c40 0%, #34405a 50%, #232c40 100%); }
.mk-dark .gic-spinner,
.mk-dark .gic-step-loading .gic-spinner { border-color: var(--gd-inset); border-top-color: var(--gd-red); }

/* ---------- Hover and focus ---------- */
.mk-dark .gic-booking-wrapper button.gic-time-slot-button:hover { background: #2b3550; border-color: var(--gd-red); }
.mk-dark .gic-booking-wrapper button.gic-time-slot-button.gic-selected:hover { background: linear-gradient(135deg, var(--gd-red-fill) 0%, var(--gd-red-fill-dark) 100%); }
.mk-dark .gic-booking-wrapper .gic-prev-step:hover:not(:disabled),
.mk-dark .gic-booking-wrapper .gic-back-to-choice:hover:not(:disabled),
.mk-dark .gic-booking-wrapper .gic-button.gic-calendar-button:hover:not(:disabled) { background: #2b3550 !important; }
.mk-dark .gic-booking-wrapper .gic-button.gic-date-nav:hover:not(:disabled) { background: #2b3550 !important; border-color: var(--gd-red) !important; }
.mk-dark .gic-booking-wrapper .gic-button.gic-date-nav:hover:not(:disabled) .gic-date-nav-icon > i { color: #fff !important; }
.mk-dark .gic-booking-wrapper .gic-bay-card:hover:not(.gic-selected) { background: #20283b; border-color: var(--gd-line-strong); }
.mk-dark .gic-booking-wrapper .gic-next-step:hover:not(:disabled),
.mk-dark .gic-booking-wrapper .gic-button:hover:not(:disabled):not(.gic-prev-step):not(.gic-date-nav):not(.gic-calendar-button):not(.gic-back-to-choice) { background: linear-gradient(135deg, #f20032 0%, #c40029 100%); }
.mk-dark .gic-day-header:hover { background: #2b3550; }
.mk-dark .gic-day-header.active:hover { background: linear-gradient(135deg, var(--gd-red-fill) 0%, var(--gd-red-fill-dark) 100%); }
.mk-dark .gic-cancel-booking:hover { background: var(--gd-red-fill); color: #fff; border-color: var(--gd-red-fill); }
.mk-dark .stripe-element-container:focus-within { border-color: var(--gd-line-strong); }

/* ---------- My bookings ([gic_user_bookings]) ---------- */
.mk-dark .gic-booking-wrapper .gic-date-header { color: var(--gd-text); border-bottom-color: var(--gd-red); }
.mk-dark .gic-booking-item { background: var(--gd-card); border-color: var(--gd-line); }
.mk-dark .gic-booking-item.gic-booking-active { border-color: var(--gd-red); box-shadow: 0 0 0 3px rgba(255, 0, 53, 0.18); }
.mk-dark .gic-booking-time { color: var(--gd-text); }
.mk-dark .gic-booking-item .gic-booking-details { color: var(--gd-muted); }
.mk-dark .gic-booking-wrapper .gic-status { background-color: rgba(53, 208, 127, 0.14); color: var(--gd-green); box-shadow: inset 0 0 0 1px rgba(53, 208, 127, 0.32); }
.mk-dark .gic-booking-wrapper .gic-status.gic-status-active { background-color: rgba(255, 170, 60, 0.14) !important; color: #ffc078; box-shadow: inset 0 0 0 1px rgba(255, 170, 60, 0.4); }
.mk-dark .gic-booking-wrapper .gic-cancel-booking { background: transparent; color: var(--gd-red-soft); box-shadow: inset 0 0 0 1px rgba(255, 128, 152, 0.6); }
.mk-dark .gic-booking-wrapper .gic-cancel-booking:hover { background: var(--gd-red-fill); color: #fff; box-shadow: none; }
.mk-dark .gic-booking-wrapper .gic-no-bookings { background: var(--gd-card); color: var(--gd-muted); }

/* ---------- Member registration ([gic_registration]) ---------- */
.mk-dark .gic-registration-wrapper { background: var(--gd-surface); color: var(--gd-text); box-shadow: 0 0 0 1px var(--gd-line), 0 24px 60px rgba(0, 0, 0, 0.35); }
.mk-dark .gic-registration-wrapper label,
.mk-dark .gic-registration-wrapper .gic-payment-label { color: var(--gd-text); }
.mk-dark .gic-registration-wrapper input { background: var(--gd-card); border-color: var(--gd-line-strong); color: var(--gd-text); }
.mk-dark .gic-registration-wrapper input:focus { border-color: var(--gd-red); box-shadow: 0 0 0 1px var(--gd-red); }
.mk-dark .gic-registration-wrapper .gic-password-requirements { color: var(--gd-muted); }
.mk-dark .gic-registration-wrapper .gic-stripe-element { background: var(--gd-card); border-color: var(--gd-line); }
.mk-dark .gic-registration-wrapper .gic-button { background: linear-gradient(135deg, var(--gd-red-fill) 0%, var(--gd-red-fill-dark) 100%); color: #fff; }
.mk-dark .gic-registration-wrapper .gic-button:hover { background: linear-gradient(135deg, #f20032 0%, #c40029 100%); }
.mk-dark .gic-registration-wrapper .gic-error-message { background: rgba(255, 0, 53, 0.10); color: var(--gd-red-soft); border-left-color: var(--gd-red); }
