.im-booking-box,
.im-booking-profile {
  background: #fff;
  border: 1px solid #eadbce;
  border-radius: 24px;
  padding: 28px;
  margin: 32px 0;
}
.im-booking-box h2,
.im-booking-profile h3 {
  margin-top: 0;
}
.im-booking-grid {
  display: grid;
  gap: 24px;
}
.im-booking-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.im-booking-panel-form label {
  display: block;
  margin-bottom: 14px;
  font-weight: 600;
  color: #212121;
}
.im-booking-panel-form input[type="text"],
.im-booking-panel-form input[type="email"],
.im-booking-panel-form input[type="tel"],
.im-booking-panel-form input[type="number"],
.im-booking-panel-form input[type="date"],
.im-booking-panel-form input[type="time"],
.im-booking-panel-form select,
.im-booking-panel-form textarea,
.im-booking-service,
.im-booking-date,
.im-booking-customer-name,
.im-booking-customer-email,
.im-booking-customer-phone,
.im-booking-customer-note {
  width: 100%;
  border: 1px solid #d9c4b2;
  border-radius: 18px;
  padding: 12px 16px;
  margin-top: 8px;
  box-sizing: border-box;
}
.im-booking-panel-form textarea,
.im-booking-customer-note {
  min-height: 100px;
}
.im-booking-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 24px;
}
.im-booking-stat-card {
  background: #f8f4ef;
  border-radius: 20px;
  padding: 18px 20px;
}
.im-booking-stat-card span {
  display: block;
  color: #6d655d;
  margin-bottom: 6px;
}
.im-booking-stat-card strong {
  font-size: 24px;
  color: #111;
}
.im-booking-subnav {
  display: flex;
  gap: 24px;
  border-bottom: 1px solid #eadbce;
  margin-bottom: 24px;
  overflow: auto;
}
.im-booking-subnav a {
  display: inline-block;
  padding: 10px 0 14px;
  color: #111;
  text-decoration: none;
  font-weight: 700;
  border-bottom: 3px solid transparent;
}
.im-booking-subnav a.is-active {
  color: #a97146;
  border-bottom-color: #a97146;
}
.im-booking-service-card {
  border: 1px solid #eadbce;
  border-radius: 20px;
  padding: 18px;
  margin-bottom: 14px;
  background: #fff;
}
.im-booking-service-meta {
  color: #6d655d;
  margin-top: 8px;
  font-size: 14px;
}
.im-booking-actions-inline,
.im-booking-inline-form,
.im-booking-checkboxes,
.im-booking-mode-row,
.im-booking-help-row,
.im-booking-time-range,
.im-booking-checkbox-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.im-booking-checkbox-row {
  font-weight: 700;
}
.im-booking-actions-inline {
  margin-top: 14px;
}
.im-booking-help-row {
  gap: 18px;
  margin-bottom: 14px;
  color: #6d655d;
  font-size: 14px;
}
.im-booking-inline-note {
  background: #f8f4ef;
  border: 1px solid #eadbce;
  color: #5b4a3d;
  border-radius: 16px;
  padding: 12px 14px;
  margin: 10px 0 16px;
  font-size: 14px;
}
.im-booking-inline-note--warning {
  background: #fff7ef;
  border-color: #ecd4b7;
}
.im-booking-tip {
  position: relative;
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}
.im-booking-tip__icon {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #a97146;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  cursor: help;
}
.im-booking-tip__bubble {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  min-width: 220px;
  max-width: 280px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #2f2824;
  color: #fff;
  font-size: 13px;
  line-height: 1.45;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: .18s ease;
  z-index: 20;
}
.im-booking-tip:hover .im-booking-tip__bubble,
.im-booking-tip:focus-within .im-booking-tip__bubble {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.im-booking-time-range {
  flex-wrap: nowrap;
  gap: 8px;
}
.im-booking-time-range input[type="time"] {
  margin-top: 0;
  min-width: 125px;
}
.im-booking-table-wrap {
  overflow-x: auto;
}
.im-booking-table,
.im-booking-schedule-table {
  width: 100%;
  border-collapse: collapse;
}
.im-booking-table th,
.im-booking-table td,
.im-booking-schedule-table th,
.im-booking-schedule-table td {
  padding: 12px 10px;
  border-bottom: 1px solid #eadbce;
  text-align: left;
  vertical-align: middle;
}
.im-booking-badge {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #f2ece7;
}
.im-booking-badge.status-confirmed,
.im-booking-notice--success {
  background: #edf7ee;
  color: #205b2b;
}
.im-booking-badge.status-pending_payment {
  background: #fff4e5;
  color: #8a5a00;
}
.im-booking-badge.status-cancelled,
.im-booking-notice--error {
  background: #fdeaea;
  color: #8a2727;
}
.im-booking-notice {
  border-radius: 18px;
  padding: 14px 18px;
  margin-bottom: 18px;
}
.im-booking-service-info {
  padding: 14px 16px;
  border-radius: 18px;
  background: #f8f4ef;
  color: #3a312b;
  display: none;
}
.im-booking-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.im-booking-slot {
  border: 1px solid #d9c4b2;
  border-radius: 999px;
  padding: 8px 14px;
  background: #fff;
  cursor: pointer;
}
.im-booking-slot.is-active {
  background: #111;
  border-color: #111;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(17,17,17,.12);
}
.im-booking-response {
  margin-top: 12px;
  color: #6d655d;
}
.im-booking-margin-top {
  margin-top: 24px;
}
@media (max-width: 900px) {
  .im-booking-grid--2,
  .im-booking-stats {
    grid-template-columns: 1fr;
  }
  .im-booking-time-range {
    flex-wrap: wrap;
  }
}

.im-booking-nearest{margin-top:14px;padding-top:12px;border-top:1px solid #ead8ca}.im-booking-nearest strong{display:block;margin-bottom:10px}.im-booking-nearest-list{display:flex;flex-wrap:wrap;gap:10px}.im-booking-slot--nearest{min-width:140px}


.im-booking-service-card__image {
  margin-bottom: 14px;
}
.im-booking-service-card__image img,
.im-booking-service-image-preview img,
.im-booking-service-info__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  object-fit: cover;
}
.im-booking-service-description {
  margin-top: 12px;
  color: #4a4038;
  line-height: 1.6;
}
.im-booking-service-description p {
  margin: 0 0 10px;
}
.im-booking-service-media {
  margin-bottom: 18px;
}
.im-booking-service-image-preview {
  width: 100%;
  max-width: 320px;
  min-height: 120px;
  border: 1px dashed #d9c4b2;
  border-radius: 18px;
  background: #faf7f3;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: 12px;
}
.im-booking-service-image-preview.has-image {
  border-style: solid;
}
.im-booking-service-info__layout {
  display: grid;
  grid-template-columns: minmax(0, 180px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.im-booking-service-info__description {
  margin-top: 10px;
  line-height: 1.6;
}
.im-booking-service-info__mode {
  margin-top: 12px;
}
@media (max-width: 700px) {
  .im-booking-service-info__layout {
    grid-template-columns: 1fr;
  }
}

.im-booking-tip__bubble {
  max-height: 320px;
  overflow: auto;
  white-space: normal;
}
.im-booking-badge--hint {
  background: #f6efe8;
  color: #6d4a2f;
}
.im-booking-service-card__hint {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}
.im-booking-service-info__content {
  min-width: 0;
}
.im-booking-service-info__description {
  margin-top: 10px;
  line-height: 1.7;
}
.im-booking-readmore {
  margin-top: 12px;
  padding: 10px 16px;
  border: 1px solid #a97146;
  border-radius: 999px;
  background: #a97146;
  color: #fff;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: .18s ease;
}
.im-booking-readmore:hover,
.im-booking-readmore:focus {
  background: #8f603c;
  border-color: #8f603c;
  color: #fff;
  transform: translateY(-1px);
}
.im-booking-modal-open {
  overflow: hidden;
}
.im-booking-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 2147483000;
}
.im-booking-modal.is-open {
  display: block;
}
.im-booking-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(17, 17, 17, 0.58);
}
.im-booking-modal__dialog {
  position: relative;
  z-index: 2;
  width: min(920px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  margin: 24px auto;
  background: #fff;
  border-radius: 24px;
  padding: 26px;
  box-shadow: 0 24px 64px rgba(0,0,0,.24);
}
.im-booking-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #a97146;
  color: #fff;
  font-size: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(169,113,70,.24);
}
.im-booking-modal__close span {
  display: block;
  font-size: 24px;
  line-height: 1;
  transform: translateY(-1px);
}
.im-booking-modal__close:hover,
.im-booking-modal__close:focus {
  background: #8f603c;
}
.im-booking-modal__image {
  margin-bottom: 18px;
  min-height: 260px;
  max-height: 58vh;
  border-radius: 18px;
  background: #f8f4ef;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.im-booking-modal__image img {
  display: block;
  width: 100%;
  max-height: 58vh;
  height: auto;
  object-fit: contain;
  object-position: center;
}
.im-booking-modal__title {
  margin: 0 0 10px;
}
.im-booking-modal__meta {
  margin-bottom: 12px;
  color: #5f554d;
}
.im-booking-modal__text {
  line-height: 1.8;
  color: #302925;
}


.lp-single-instructor > .im-booking-box--public {
  width: 100%;
  margin-top: 28px;
  margin-right: 0px;
  margin-bottom: 28px;
  margin-left: 0px;
}

@media (max-width: 991px) {
  .lp-single-instructor > .im-booking-box--public {
    margin-top: 20px;
    padding: 20px;
  }
}


.im-booking-day-slots {
  display: grid;
  gap: 12px;
}
.im-booking-slot-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}
.im-booking-slot-label {
  font-weight: 700;
  color: #3a312b;
}
.im-booking-time-select {
  min-width: 126px;
  margin-top: 0 !important;
}
.im-booking-add-slot2 {
  appearance: none;
  border: 1px dashed #caa98e;
  border-radius: 999px;
  background: #fffaf5;
  color: #fff;
  padding: 9px 14px;
  font-weight: 700;
  cursor: pointer;
  align-self: flex-start;
}
.im-booking-add-slot2:hover {
  background: #f7efe7;
}
.im-booking-slot2-wrap[hidden] {
  display: none !important;
}
.im-booking-slot2-note {
  font-size: 13px;
  color: #6d655d;
  margin-left: 86px;
  margin-top: -4px;
}
.im-booking-schedule-row.has-slot2 {
  background: rgba(248, 244, 239, 0.35);
}
@media (max-width: 768px) {
  .im-booking-slot-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .im-booking-slot2-note {
    margin-left: 0;
  }
  .im-booking-time-range {
    flex-wrap: wrap;
  }
}


.im-booking-slot2-warning {
  font-size: 13px;
  color: #8a2727;
  margin-left: 86px;
  margin-top: 6px;
  font-weight: 600;
}

.im-booking-field-help {
  font-size: 13px;
  line-height: 1.5;
  color: #6d655d;
  margin-top: -6px;
  margin-bottom: 12px;
}

.im-booking-service-info__actions {
  margin-top: 10px;
}

.im-booking-service-info__description {
  display: none;
}


.im-booking-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.im-booking-margin-top { margin-top: 24px; }
.im-booking-service-card__hint { margin: 10px 0; }
.im-booking-badge.status-rescheduled { background:#eef3ff; color:#2b4f8a; }
.im-booking-badge.status-no_show { background:#fff0e5; color:#8a4a1b; }
.im-booking-badge.status-conflict { background:#fff1cc; color:#8a5a00; }
.im-booking-table .button { margin-top: 6px; }
@media (max-width: 991px){ .im-booking-grid--3 { grid-template-columns: 1fr; } }


.im-booking-live-filter .button {
  display: none;
}

.im-booking-table {
  table-layout: fixed;
}

.im-booking-table th,
.im-booking-table td {
  padding: 10px 8px;
  font-size: 14px;
  line-height: 1.35;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.im-booking-table td small {
  font-size: 12px;
  line-height: 1.35;
}

.im-booking-table th:nth-child(1),
.im-booking-table td:nth-child(1) { width: 78px; }
.im-booking-table th:nth-child(2),
.im-booking-table td:nth-child(2) { width: 74px; }
.im-booking-table th:nth-child(5),
.im-booking-table td:nth-child(5) { width: 78px; }
.im-booking-table th:nth-child(6),
.im-booking-table td:nth-child(6) { width: 112px; }
.im-booking-table th:nth-child(7),
.im-booking-table td:nth-child(7) { width: 100px; }
.im-booking-table th:nth-child(8),
.im-booking-table td:nth-child(8) { width: 132px; }

.im-booking-inline-form {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

.im-booking-inline-form select,
.im-booking-inline-form .button,
.im-booking-table td > .button {
  width: 100%;
  margin-top: 0;
  box-sizing: border-box;
}

.im-booking-table td > .button {
  text-align: center;
  margin-top: 8px;
}

@media (max-width: 1200px) {
  .im-booking-table-wrap {
    overflow-x: visible;
  }

  .im-booking-table th,
  .im-booking-table td {
    font-size: 13px;
    padding: 9px 6px;
  }
}

@media (max-width: 991px) {
  .im-booking-live-filter .button {
    display: inline-flex;
  }

  .im-booking-table-wrap {
    overflow-x: auto;
  }
}


/* 0.1.22 compact booking tables */
.im-booking-table--bookings,
.im-booking-table--my-sessions {
  table-layout: auto;
}

.im-booking-table--bookings th,
.im-booking-table--bookings td,
.im-booking-table--my-sessions th,
.im-booking-table--my-sessions td {
  padding: 12px 10px;
  vertical-align: top;
}

.im-booking-table--bookings th:nth-child(1),
.im-booking-table--bookings td:nth-child(1),
.im-booking-table--my-sessions th:nth-child(1),
.im-booking-table--my-sessions td:nth-child(1) {
  width: 140px;
}

.im-booking-table--bookings th:nth-child(3),
.im-booking-table--bookings td:nth-child(3),
.im-booking-table--bookings th:nth-child(4),
.im-booking-table--bookings td:nth-child(4),
.im-booking-table--my-sessions th:nth-child(3),
.im-booking-table--my-sessions td:nth-child(3) {
  width: 130px;
}

.im-booking-cell-term__date {
  font-weight: 700;
  color: #1f1b18;
}

.im-booking-cell-term__time {
  margin-top: 4px;
  color: #6d655d;
  font-weight: 600;
}

.im-booking-cell-details__name {
  font-weight: 700;
  color: #1f1b18;
  margin-bottom: 4px;
}

.im-booking-cell-details__meta {
  color: #564d46;
  margin-bottom: 2px;
}

.im-booking-cell-details small {
  display: block;
  margin-top: 6px;
}

.im-booking-cell-actions {
  min-width: 160px;
}

.im-booking-table--bookings .im-booking-inline-form {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

.im-booking-table--bookings .im-booking-inline-form select,
.im-booking-table--bookings .im-booking-inline-form .button,
.im-booking-table--bookings .im-booking-cell-actions > .button {
  width: 100%;
  box-sizing: border-box;
  margin-top: 0;
}

.im-booking-table--bookings .im-booking-cell-actions > .button {
  margin-top: 8px;
  text-align: center;
}

@media (max-width: 991px) {
  .im-booking-table--bookings,
  .im-booking-table--my-sessions {
    min-width: 0;
  }

  .im-booking-table--bookings th,
  .im-booking-table--bookings td,
  .im-booking-table--my-sessions th,
  .im-booking-table--my-sessions td {
    padding: 10px 8px;
    font-size: 13px;
  }

  .im-booking-cell-actions {
    min-width: 140px;
  }
}


/* 0.1.23 bookings improvements */
.im-booking-bookings-section { display:block; }
.im-booking-table--bookings th:nth-child(1),
.im-booking-table--bookings td:nth-child(1) { width: 120px; }
.im-booking-table--bookings th:nth-child(2),
.im-booking-table--bookings td:nth-child(2) { width: auto; min-width: 260px; }
.im-booking-table--bookings th:nth-child(3),
.im-booking-table--bookings td:nth-child(3) { width: 150px; }
.im-booking-table--bookings th:nth-child(4),
.im-booking-table--bookings td:nth-child(4) { width: 120px; }
.im-booking-table--bookings th:nth-child(5),
.im-booking-table--bookings td:nth-child(5) { width: 170px; }

.im-booking-cell-details__name { white-space: normal; }
.im-booking-cell-details__meta { white-space: normal; }
.im-booking-cell-details small { word-break: break-all; color:#6d655d; }

.im-booking-button-save,
.im-booking-button-save:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border-radius: 999px;
  background: #a97146;
  border: 1px solid #a97146;
  color: #fff;
  font-weight: 700;
  min-height: 44px;
}
.im-booking-button-save:hover,
.im-booking-button-save:focus { background:#8f603c; border-color:#8f603c; color:#fff; }

.im-booking-button-edit,
.im-booking-button-edit:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border-radius: 999px;
  background: #f1f4f8;
  border: 1px solid #cfd9e3;
  color: #304255;
  font-weight: 700;
  min-height: 42px;
  margin-top: 8px;
}
.im-booking-button-edit:hover,
.im-booking-button-edit:focus { background:#e6edf5; border-color:#b8c7d6; color:#223446; }

.im-booking-edit-form-wrap { margin-top: 0; }
.im-booking-edit-form-wrap h3 { margin-bottom: 18px; }
.im-booking-modal__dialog--form { width:min(760px, calc(100vw - 32px)); }

.im-booking-session-cards {
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
.im-booking-session-card {
  border:1px solid #eadbce;
  border-radius:20px;
  padding:18px 20px;
  display:grid;
  grid-template-columns:160px minmax(0,1fr) auto;
  gap:18px;
  align-items:start;
  background:#fff;
}
.im-booking-session-card__date { font-weight:700; color:#1f1b18; }
.im-booking-session-card__time { margin-top:4px; color:#6d655d; font-weight:600; }
.im-booking-session-card__title { font-weight:700; color:#1f1b18; margin-bottom:8px; }
.im-booking-session-card__meta { color:#564d46; margin-bottom:4px; }
.im-booking-session-card__status { display:flex; align-items:flex-start; justify-content:flex-end; }

@media (max-width: 900px) {
  .im-booking-session-card { grid-template-columns:1fr; }
  .im-booking-session-card__status { justify-content:flex-start; }
}


/* 0.1.24 modal over header + pill selects */
.im-booking-modal__dialog {
  margin: 72px auto 24px;
}
.im-booking-table--bookings .im-booking-inline-form select,
.im-booking-table--bookings .im-booking-cell-actions select[name="booking_status"] {
  width: 100%;
  min-height: 42px;
  border-radius: 999px;
  border: 1px solid #d8c1ae;
  background: #fffaf5;
  color: #3a312b;
  font-weight: 700;
  padding: 0 40px 0 16px;
  box-sizing: border-box;
}
.im-booking-table--bookings .im-booking-inline-form select:focus,
.im-booking-table--bookings .im-booking-cell-actions select[name="booking_status"]:focus {
  border-color: #a97146;
  box-shadow: 0 0 0 3px rgba(169,113,70,.12);
  outline: none;
}
@media (max-width: 782px) {
  .im-booking-modal__dialog {
    margin: 56px auto 16px;
    width: min(760px, calc(100vw - 20px));
    padding: 20px;
  }
}


/* 0.1.25 payments + modal + picker polish */
.im-booking-modal {
  z-index: 2147483647 !important;
}
.im-booking-modal__backdrop {
  z-index: 1;
}
.im-booking-modal__dialog {
  position: relative;
  z-index: 2;
  margin: 88px auto 24px;
}

.im-booking-table--bookings th:nth-child(1),
.im-booking-table--bookings td:nth-child(1) { width: 110px; }
.im-booking-table--bookings th:nth-child(2),
.im-booking-table--bookings td:nth-child(2) { min-width: 340px; }
.im-booking-table--bookings th:nth-child(4),
.im-booking-table--bookings td:nth-child(4) { width: 170px; }
.im-booking-table--bookings th:nth-child(5),
.im-booking-table--bookings td:nth-child(5) { width: 210px; }

.im-booking-cell-actions {
  min-width: 210px;
}

.im-booking-pill-select {
  width: 100%;
  min-height: 44px;
  border-radius: 999px;
  border: 1px solid #d8c1ae;
  background: #fffaf5;
  color: #3a312b;
  font-weight: 700;
  padding: 0 42px 0 16px;
  box-sizing: border-box;
}
.im-booking-pill-select:focus {
  border-color: #a97146;
  box-shadow: 0 0 0 3px rgba(169,113,70,.12);
  outline: none;
}
.im-booking-pill-select--payment {
  background: #f8f4ef;
}
.im-booking-inline-form--payment {
  display: block;
  margin: 0;
}

@media (max-width: 782px) {
  .im-booking-modal__dialog {
    margin: 70px auto 16px;
  }
}


/* 0.1.26 column polish + modal picker ergonomics */
.im-booking-table--bookings th:nth-child(1),
.im-booking-table--bookings td:nth-child(1) { width: 130px; }
.im-booking-table--bookings th:nth-child(2),
.im-booking-table--bookings td:nth-child(2) { min-width: 300px; }
.im-booking-table--bookings th:nth-child(4),
.im-booking-table--bookings td:nth-child(4) { width: 185px; }
.im-booking-table--bookings th:nth-child(5),
.im-booking-table--bookings td:nth-child(5) { width: 225px; }
.im-booking-cell-actions { min-width: 225px; }

.im-booking-panel-form input[type="date"],
.im-booking-panel-form input[type="time"],
.im-booking-box input[type="date"],
.im-booking-box input[type="time"],
.im-booking-block-form input[type="date"],
.im-booking-block-form input[type="time"] {
  cursor: pointer;
}

#im-booking-edit-modal .im-booking-modal__dialog {
  z-index: 2147483648 !important;
}

/* 0.1.27 planner + default subnav order */
.im-booking-planner__toolbar {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
  flex-wrap:wrap;
}
.im-booking-planner__nav,
.im-booking-planner__switches {
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.im-booking-planner__switches a {
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border:1px solid #d8b79e;
  border-radius:999px;
  text-decoration:none;
  color:#4d4036;
  font-weight:700;
  background:#fff;
}
.im-booking-planner__switches a.is-active {
  background:#b77a48;
  color:#fff;
  border-color:#b77a48;
}
.im-booking-planner__fullscreen-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border:1px solid #d8b79e;
  border-radius:14px;
  background:#fff;
  color:#4d4036;
  font-size:20px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(61,51,44,.06);
}
.im-booking-planner__fullscreen-toggle:hover,
.im-booking-planner__fullscreen-toggle.is-active {
  background:#b77a48;
  color:#fff;
  border-color:#b77a48;
}
.im-booking-planner-shell:fullscreen,
.im-booking-planner-shell.is-fullscreen,
.im-booking-planner-shell.is-fullscreen-fallback {
  background:#faf7f3;
  padding:20px;
  overflow:auto;
}
.im-booking-planner-shell.is-fullscreen-fallback {
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  z-index:99999;
  margin:0;
  border-radius:0;
  box-sizing:border-box;
}
body.im-booking-planner-fullscreen-active {
  overflow:hidden;
}
.im-booking-planner-shell:fullscreen .im-booking-service-card,
.im-booking-planner-shell.is-fullscreen .im-booking-service-card,
.im-booking-planner-shell.is-fullscreen-fallback .im-booking-service-card {
  min-height:100%;
}
.im-booking-planner__grid {
  display:grid;
  grid-template-columns:repeat(7, minmax(0,1fr));
  border:1px solid #eadbce;
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}
.im-booking-planner__head {
  background:#fbf7f3;
  padding:12px 10px;
  font-weight:700;
  border-right:1px solid #eadbce;
}
.im-booking-planner__head:last-child { border-right:0; }
.im-booking-planner__cell {
  min-height:170px;
  padding:10px;
  border-top:1px solid #eadbce;
  border-right:1px solid #eadbce;
  background:#fff;
}
.im-booking-planner__cell:nth-child(7n) { border-right:0; }
.im-booking-planner__cell.is-muted { background:#fcfbfa; }
.im-booking-planner__cell.is-today { box-shadow: inset 0 0 0 2px #c99365; }
.im-booking-planner__date {
  font-weight:800;
  margin-bottom:8px;
  color:#211b16;
}
.im-booking-planner__events {
  display:flex;
  flex-direction:column;
  gap:8px;
}
.im-booking-planner__event {
  border-radius:14px;
  padding:8px 10px;
  line-height:1.35;
  font-size:13px;
}
.im-booking-planner__event.booking { background:#f6f1ea; }
.im-booking-planner__event.block { background:#f3ede7; }
.im-booking-planner__event.status-confirmed { border-left:4px solid #8bbf8b; }
.im-booking-planner__event.status-pending_payment { border-left:4px solid #d2aa54; }
.im-booking-planner__event.status-conflict { border-left:4px solid #d37f3f; }
.im-booking-planner__event.status-cancelled { border-left:4px solid #d4a7ad; opacity:.8; }
.im-booking-planner__event.type-manual_block { border-left:4px solid #9b7d62; }
.im-booking-planner__event.type-day_off { border-left:4px solid #7f8ca1; }
.im-booking-planner__event.type-vacation { border-left:4px solid #6f9dcb; }
.im-booking-planner__event-time { display:block; font-weight:800; color:#3d332c; }
.im-booking-planner__event-title { display:block; font-weight:700; color:#211b16; }
.im-booking-planner__event small { display:block; color:#6d655d; margin-top:3px; }
.im-booking-planner__empty { color:#9f9388; font-size:13px; }

.im-booking-planner__legend {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:14px 0 16px;
}
.im-booking-planner__legend-item {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  background:#fbf7f3;
  color:#3d332c;
  font-size:13px;
  font-weight:700;
}
.im-booking-planner__legend-item::before {
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  display:inline-block;
  background:#c99365;
}
.im-booking-planner__legend-item.is-confirmed::before { background:#8bbf8b; }
.im-booking-planner__legend-item.is-pending::before { background:#d2aa54; }
.im-booking-planner__legend-item.is-conflict::before { background:#d37f3f; }
.im-booking-planner__legend-item.is-cancelled::before { background:#d4a7ad; }
.im-booking-planner__legend-item.is-dayoff::before { background:#7f8ca1; }
.im-booking-planner__legend-item.is-vacation::before { background:#6f9dcb; }
.im-booking-planner__legend-item.is-block::before { background:#9b7d62; }
.im-booking-planner__head {
  display:flex;
  flex-direction:column;
  gap:4px;
}
.im-booking-planner__head-day { display:block; }
.im-booking-planner__head-meta {
  display:block;
  font-size:12px;
  font-weight:600;
  color:#8a7d72;
  line-height:1.35;
}
.im-booking-planner__head.is-unavailable,
.im-booking-planner__cell.is-unavailable {
  background:#f7f4f0;
}
.im-booking-planner__cell.is-unavailable .im-booking-planner__empty {
  color:#a79b90;
}
.im-booking-planner__event.im-booking-open-edit-modal {
  cursor:pointer;
  transition:transform .14s ease, box-shadow .14s ease;
}
.im-booking-planner__event.im-booking-open-edit-modal:hover,
.im-booking-planner__event.im-booking-open-edit-modal:focus {
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(61,51,44,.08);
  outline:none;
}

.im-booking-planner__event--draggable {
  position:relative;
  padding-left:16px;
  user-select:none;
}
.im-booking-planner__drag-handle {
  display:none !important;
  pointer-events:none !important;
  user-select:none;
}
.im-booking-planner__event--dragging {
  opacity:.45;
  transform:scale(.98);
  box-shadow:none !important;
}
.im-booking-planner__cell {
  position:relative;
}
.im-booking-planner__dropzones,
.im-booking-planner__month-dropzone {
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease, transform .16s ease;
}
.im-booking-planner-dragging .im-booking-planner__dropzones,
.im-booking-planner-dragging .im-booking-planner__month-dropzone {
  opacity:1;
  pointer-events:auto;
}
.im-booking-planner__dropzones--week {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  margin:0 0 10px;
  max-height:190px;
  overflow:auto;
  padding:2px 2px 4px;
  border-radius:14px;
  background:rgba(251,247,243,.82);
  backdrop-filter:blur(4px);
}
.im-booking-planner__drop-slot,
.im-booking-planner__month-dropzone {
  border:1px dashed #d8b79e;
  background:#fffdfa;
  color:#6f5a49;
  font-weight:700;
  border-radius:12px;
  padding:8px 10px;
  text-align:center;
  font-size:12px;
  box-shadow:0 6px 14px rgba(61,51,44,.04);
}
.im-booking-planner__drop-slot:hover,
.im-booking-planner__drop-slot.is-drag-over,
.im-booking-planner__month-dropzone:hover,
.im-booking-planner__month-dropzone.is-drag-over {
  border-color:#b77a48;
  background:#fff4ea;
  color:#3d332c;
}
.im-booking-planner__month-dropzone {
  width:100%;
  margin:0 0 10px;
}
.im-booking-planner__cell.is-drag-over {
  box-shadow:inset 0 0 0 2px rgba(183,122,72,.25);
}
.im-booking-planner-shell.is-moving-booking {
  pointer-events:none;
}
@media (max-width: 991px) {
  .im-booking-planner__grid {
    grid-template-columns:1fr;
  }
  .im-booking-planner__head { display:none; }
  .im-booking-planner__cell {
    min-height:0;
    border-right:0;
  }
}
@media (max-width: 991px) {
  .im-booking-planner__dropzones--week {
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-height:none;
  }
}

.im-booking-mode-switches {
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-bottom:18px;
}
.im-booking-mode-switches a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 18px;
  border-radius:999px;
  border:1px solid #d9b193;
  color:#3d332c;
  background:#fff;
  font-weight:700;
  text-decoration:none;
}
.im-booking-mode-switches a.is-active {
  background:#b77a48;
  border-color:#b77a48;
  color:#fff;
}
.im-booking-planner__quick-add {
  width:100%;
  margin-top:10px;
  border:1px dashed #d8c4b4;
  background:#f3efeb;
  color:#7b6f65;
  border-radius:14px;
  min-height:40px;
  font-weight:700;
  cursor:pointer;
}
.im-booking-planner__quick-add:hover,
.im-booking-planner__quick-add:focus {
  background:#ece6df;
  color:#5c5149;
}
.im-booking-list-toolbar {
  display:flex;
  justify-content:flex-end;
  margin: 14px 0 16px;
}
.im-booking-bookings-section--list-mode .im-booking-service-card {
  margin-bottom:14px;
}
@media (max-width: 991px) {
  .im-booking-mode-switches {
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}


/* 0.1.33 planner add/button polish + compact actions grid */
.im-booking-planner__quick-add,
.im-booking-planner__quick-add:visited,
.im-booking-planner__quick-add:hover,
.im-booking-planner__quick-add:focus {
  color:#fff !important;
  background:#b77a48;
  border-color:#d0a887;
}
.im-booking-planner__quick-add:hover,
.im-booking-planner__quick-add:focus {
  background:#a96e3f;
}
.im-booking-button-edit,
.im-booking-button-edit:visited,
.im-booking-button-edit:hover,
.im-booking-button-edit:focus,
.im-booking-list-toolbar .im-booking-button-edit,
.im-booking-list-toolbar .im-booking-button-edit:visited,
.im-booking-list-toolbar .im-booking-button-edit:hover,
.im-booking-list-toolbar .im-booking-button-edit:focus {
  color:#fff !important;
  background:#7f6a5a;
  border-color:#7f6a5a;
}
.im-booking-button-edit:hover,
.im-booking-button-edit:focus,
.im-booking-list-toolbar .im-booking-button-edit:hover,
.im-booking-list-toolbar .im-booking-button-edit:focus {
  background:#6f5b4c;
  border-color:#6f5b4c;
}
.im-booking-table--bookings th:nth-child(1),
.im-booking-table--bookings td:nth-child(1) { width:140px; }
.im-booking-table--bookings th:nth-child(2),
.im-booking-table--bookings td:nth-child(2) { min-width:250px; }
.im-booking-table--bookings th:nth-child(3),
.im-booking-table--bookings td:nth-child(3) { width:150px; }
.im-booking-table--bookings th:nth-child(4),
.im-booking-table--bookings td:nth-child(4) { width:290px; }
.im-booking-cell-actions { min-width:290px; }
.im-booking-inline-form--actions {
  display:block !important;
  margin:0;
}
.im-booking-cell-actions__row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.im-booking-cell-actions__row + .im-booking-cell-actions__row {
  margin-top:10px;
}
.im-booking-cell-actions__row--buttons .button {
  width:100%;
  margin-top:0 !important;
}
@media (max-width: 991px) {
  .im-booking-cell-actions__row {
    grid-template-columns:1fr;
  }
}

/* 0.1.35 simplification */
.im-booking-service-card__image { display:none; }

.im-booking-planner__grid.is-week {
  --im-booking-week-timeline-height: 760px;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  align-items:start;
}
.im-booking-planner__grid.is-week .im-booking-planner__cell {
  min-height:calc(var(--im-booking-week-timeline-height) + 118px);
  padding-bottom:84px;
}
.im-booking-planner__grid.is-week .im-booking-planner__events {
  position:absolute;
  left:8px;
  right:8px;
  z-index:3;
}
.im-booking-planner__grid.is-week .im-booking-planner__event {
  position:absolute !important;
  left:0;
  right:0;
  min-height:54px;
  height:auto;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  box-shadow:0 8px 18px rgba(61,51,44,.08);
}
.im-booking-planner__grid.is-week .im-booking-planner__event.block {
  z-index:2;
  background:rgba(243,237,231,.86);
  backdrop-filter:blur(1px);
}
.im-booking-planner__grid.is-week .im-booking-planner__event.booking {
  z-index:4;
}
.im-booking-planner__grid.is-week .im-booking-planner__event small {
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.im-booking-planner__timeline-lines,
.im-booking-planner__times,
.im-booking-planner__head--times,
.im-booking-planner__events--timeline { display:none !important; }
.im-booking-planner__grid.is-week .im-booking-planner__dropzones--week { display:none !important; }
.im-booking-planner__grid.is-week .im-booking-planner__cell.is-drag-over { box-shadow:inset 0 0 0 2px rgba(183,122,72,.22); }
.im-booking-planner__grid.is-week .im-booking-planner__cell.is-drop-valid { background:linear-gradient(180deg, rgba(201,147,101,.06), rgba(201,147,101,0)); }
.im-booking-planner__grid.is-week .im-booking-planner__cell.is-drop-conflict { background:linear-gradient(180deg, rgba(211,127,63,.10), rgba(211,127,63,0)); }
.im-booking-planner__grid.is-week .im-booking-planner__cell.is-drop-outside-schedule { background:linear-gradient(180deg, rgba(127,140,161,.08), rgba(127,140,161,0)); }
.im-booking-planner__drag-preview { position:absolute; left:10px; right:10px; z-index:12; pointer-events:none; border-radius:14px; border:1px dashed #b77a48; background:rgba(255,244,234,.97); color:#3d332c; box-shadow:0 14px 30px rgba(61,51,44,.14); padding:8px 10px; display:flex; flex-direction:column; justify-content:flex-start; gap:4px; }
.im-booking-planner__drag-preview-time { font-weight:800; font-size:13px; line-height:1.1; }
.im-booking-planner__drag-preview-title { font-size:12px; line-height:1.25; color:#6f5a49; }
.im-booking-planner__drag-preview.is-conflict { border-color:#d37f3f; background:rgba(255,239,230,.96); }
.im-booking-planner__drag-preview.is-outside-schedule { border-color:#9faabc; background:rgba(248,249,252,.96); }
.im-booking-planner__week-guide { position:absolute; left:8px; right:8px; z-index:1; pointer-events:none; border-radius:16px; background:rgba(237,232,225,.58); box-shadow:inset 0 0 0 1px rgba(183,122,72,.10); overflow:hidden; }
.im-booking-planner__week-guide-active { position:absolute; left:0; right:0; background:rgba(255,255,255,.78); }
.im-booking-planner__week-guide-line { position:absolute; left:0; right:0; border-top:1px dashed rgba(143,124,85,.14); }
.im-booking-planner__week-guide-line.is-hour { border-top-style:solid; border-top-color:rgba(183,122,72,.28); }
.im-booking-planner__week-guide-label { position:absolute; top:-10px; left:8px; display:inline-flex; align-items:center; padding:2px 6px; border-radius:999px; background:rgba(255,250,245,.96); color:#8a6a4f; font-size:10px; font-weight:800; letter-spacing:.01em; box-shadow:0 4px 10px rgba(61,51,44,.06); }
.im-booking-planner__grid.is-week .im-booking-planner__empty--week {
  position:absolute;
  left:14px;
  right:14px;
  z-index:2;
  padding:6px 8px;
  border-radius:10px;
  background:rgba(255,255,255,.78);
}
.im-booking-planner__grid.is-week .im-booking-planner__quick-add { display:none !important; }
.im-booking-planner-dragging .im-booking-planner__events,
.im-booking-planner-dragging .im-booking-planner__empty--week,
.im-booking-planner-dragging .im-booking-planner__quick-add { z-index:5; }

.im-booking-cell-actions {
  min-width: 180px;
}
.im-booking-inline-form--ajax {
  display:flex !important;
  flex-direction:column;
  gap:10px;
}
.im-booking-inline-form--ajax .im-booking-pill-select,
.im-booking-inline-form--ajax .button {
  width:100%;
  margin:0 !important;
}
.im-booking-inline-status {
  font-size:12px;
  color:#6d655d;
  text-align:center;
}

/* 0.1.38 settlements modal polish */
.im-booking-settlement-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.im-booking-settlement-toolbar__meta h3 {
  margin:0 0 6px;
}
.im-booking-settlement-summary-card {
  margin-top:18px;
}
.im-booking-settlement-period-form__submit {
  display:flex;
  align-items:flex-end;
}
.im-booking-stats--settlements {
  margin-top:18px;
}
.im-booking-settlement-note {
  margin:14px 0 10px;
}
#im-booking-settlement-modal .im-booking-modal__dialog {
  z-index:2147483649 !important;
}
#im-booking-settlement-modal .im-booking-modal__actions {
  margin-top:16px;
  display:flex;
  justify-content:flex-start;
}
@media (max-width: 991px) {
  .im-booking-settlement-toolbar {
    align-items:flex-start;
  }
}


/* 0.1.39 settlements layout + offline payment */
.im-booking-service-info__payment {
  margin-top: 10px;
  color: #564d46;
}

.im-booking-stats--settlements {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.im-booking-table--settlements th:nth-child(1),
.im-booking-table--settlements td:nth-child(1) {
  width: 210px;
}
.im-booking-table--settlements th:nth-child(2),
.im-booking-table--settlements td:nth-child(2) {
  width: 190px;
}
.im-booking-table--settlements th:nth-child(3),
.im-booking-table--settlements td:nth-child(3) {
  width: 90px;
}
.im-booking-table--settlements th:nth-child(4),
.im-booking-table--settlements td:nth-child(4) {
  width: 110px;
}
.im-booking-table--settlements th:nth-child(5),
.im-booking-table--settlements td:nth-child(5) {
  width: 170px;
}
.im-booking-table--settlements th:nth-child(6),
.im-booking-table--settlements td:nth-child(6) {
  width: 140px;
}
.im-booking-table--settlements td,
.im-booking-table--settlements th {
  vertical-align: top;
}

#im-booking-settlement-modal .im-booking-modal__dialog {
  width: min(760px, calc(100vw - 96px));
  max-height: calc(100vh - 160px);
  margin: 64px auto;
  padding: 22px 24px;
}

@media (max-width: 1100px) {
  .im-booking-stats--settlements {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 782px) {
  #im-booking-settlement-modal .im-booking-modal__dialog {
    width: min(760px, calc(100vw - 24px));
    max-height: calc(100vh - 72px);
    margin: 24px auto;
    padding: 18px;
  }
  .im-booking-stats--settlements {
    grid-template-columns: 1fr;
  }
}


/* 0.1.40 settlements modal + table polish */
#im-booking-settlement-modal .im-booking-modal__dialog {
  width: min(760px, calc(100vw - 120px));
  max-height: calc(100vh - 150px);
  margin: 96px auto 40px;
  padding: 22px 24px;
}
.im-booking-table-wrap--settlements {
  overflow-x: visible;
}
.im-booking-table--settlements {
  table-layout: fixed;
  width: 100%;
}
.im-booking-table--settlements .im-booking-col-term { width: 26%; }
.im-booking-table--settlements .im-booking-col-client { width: 22%; }
.im-booking-table--settlements .im-booking-col-order { width: 9%; }
.im-booking-table--settlements .im-booking-col-gross { width: 13%; }
.im-booking-table--settlements .im-booking-col-deductions { width: 17%; }
.im-booking-table--settlements .im-booking-col-payout { width: 13%; }
.im-booking-table--settlements td,
.im-booking-table--settlements th {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  vertical-align: top;
}
.im-booking-settlement-term {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.im-booking-settlement-term__date {
  display: block;
}
.im-booking-settlement-term__time {
  display: block;
  color: #564d46;
}
@media (max-width: 782px) {
  #im-booking-settlement-modal .im-booking-modal__dialog {
    width: min(760px, calc(100vw - 28px));
    max-height: calc(100vh - 84px);
    margin: 44px auto 20px;
    padding: 18px;
  }
  .im-booking-table-wrap--settlements {
    overflow-x: auto;
  }
  .im-booking-table--settlements {
    table-layout: auto;
    min-width: 720px;
  }
}


/* 0.1.41 settlement toolbar + picker polish */
.im-booking-settlement-period-form {
  display:grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
  gap:16px;
  align-items:end;
}
.im-booking-settlement-period-form > div,
.im-booking-settlement-period-form > label {
  margin:0;
}
.im-booking-settlement-period-form__submit {
  align-self:end;
  height:100%;
}
.im-booking-settlement-period-form__submit .button {
  margin-top:24px;
}
@media (max-width: 991px) {
  .im-booking-settlement-period-form {
    grid-template-columns: 1fr;
  }
  .im-booking-settlement-period-form__submit .button {
    margin-top:0;
  }
}


/* 0.1.42 settlement/header polish + picker fix */
.im-booking-settlement-period-form {
  grid-template-columns: minmax(260px, 1.35fr) minmax(260px, 1.35fr) minmax(220px, 1fr) !important;
  gap: 22px !important;
  align-items: end !important;
}
.im-booking-settlement-period-form > div,
.im-booking-settlement-period-form > label,
.im-booking-settlement-period-form input[type="date"] {
  width: 100%;
}
.im-booking-settlement-period-form__submit {
  align-self: end !important;
  width: 100%;
}
.im-booking-settlement-period-form__submit .button {
  width: 100%;
  min-height: 56px;
  margin-top: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.im-booking-stat-card strong,
.im-booking-stat-card strong .woocommerce-Price-amount,
.im-booking-stat-card strong .woocommerce-Price-amount bdi,
.im-booking-stat-card strong bdi {
  display: inline-block !important;
  white-space: nowrap !important;
  line-height: 1.1 !important;
}
.im-booking-stat-card strong .woocommerce-Price-currencySymbol {
  display: inline !important;
  margin-left: 4px !important;
}
.im-booking-box label > input.im-booking-date,
.im-booking-box input.im-booking-date {
  cursor: pointer;
}
@media (max-width: 991px) {
  .im-booking-settlement-period-form {
    grid-template-columns: 1fr !important;
  }
}


/* 0.1.43 settlement widths + full-field picker + offline payment choice */
.im-booking-settlement-period-form {
  grid-template-columns: minmax(300px, 1.7fr) minmax(300px, 1.7fr) minmax(300px, 1.2fr) !important;
  gap: 24px !important;
  align-items: end !important;
}
.im-booking-settlement-period-form label {
  display: flex !important;
  flex-direction: column !important;
}
.im-booking-settlement-period-form label input[type="date"] {
  width: 100% !important;
  min-width: 300px !important;
}
.im-booking-settlement-period-form__submit .button {
  width: 100% !important;
  min-width: 300px !important;
  min-height: 62px !important;
  border-radius: 20px !important;
}
.im-booking-box input[type="date"],
.im-booking-box input[type="time"],
.im-booking-panel-form input[type="date"],
.im-booking-panel-form input[type="time"],
.im-booking-settlement-period-form input[type="date"],
.im-booking-block-form input[type="date"],
.im-booking-block-form input[type="time"],
#im-booking-edit-modal input[type="date"],
#im-booking-edit-modal input[type="time"] {
  position: relative;
  cursor: pointer;
}
.im-booking-box input[type="date"]::-webkit-calendar-picker-indicator,
.im-booking-box input[type="time"]::-webkit-calendar-picker-indicator,
.im-booking-panel-form input[type="date"]::-webkit-calendar-picker-indicator,
.im-booking-panel-form input[type="time"]::-webkit-calendar-picker-indicator,
.im-booking-settlement-period-form input[type="date"]::-webkit-calendar-picker-indicator,
.im-booking-block-form input[type="date"]::-webkit-calendar-picker-indicator,
.im-booking-block-form input[type="time"]::-webkit-calendar-picker-indicator,
#im-booking-edit-modal input[type="date"]::-webkit-calendar-picker-indicator,
#im-booking-edit-modal input[type="time"]::-webkit-calendar-picker-indicator {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.im-booking-payment-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 18px;
  margin: 2px 0 10px;
}
.im-booking-payment-row strong {
  flex-basis: 100%;
  font-size: 15px;
}
.im-booking-payment-row label {
  margin:0;
  font-weight:600;
}
@media (max-width: 1100px) {
  .im-booking-settlement-period-form {
    grid-template-columns: 1fr !important;
  }
  .im-booking-settlement-period-form label input[type="date"],
  .im-booking-settlement-period-form__submit .button {
    min-width: 0 !important;
  }
}


/* 0.1.44 settlement period layout + booking date click reliability */
.im-booking-settlement-period-form {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) minmax(220px, 1fr) !important;
  gap: 22px !important;
  align-items: end !important;
}
.im-booking-settlement-period-form > label,
.im-booking-settlement-period-form > .im-booking-settlement-period-form__submit {
  min-width: 0 !important;
  width: 100% !important;
}
.im-booking-settlement-period-form > label {
  display: flex !important;
  flex-direction: column !important;
}
.im-booking-settlement-period-form > label input[type="date"] {
  width: 100% !important;
  min-width: 0 !important;
}
.im-booking-settlement-period-form__submit {
  align-self: end !important;
}
.im-booking-settlement-period-form__submit .button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 56px !important;
  border-radius: 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.im-booking-date-field,
.im-booking-date-field input,
.im-booking-date-field * {
  cursor: pointer !important;
}
@media (max-width: 991px) {
  .im-booking-settlement-period-form {
    grid-template-columns: 1fr !important;
  }
}


/* 0.1.45 settlement period layout final polish */
.im-booking-settlement-period-form {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  gap: 24px !important;
}
.im-booking-settlement-period-form > label {
  flex: 1 1 280px !important;
  min-width: 280px !important;
  max-width: 360px !important;
  margin: 0 !important;
}
.im-booking-settlement-period-form > label input[type="date"] {
  width: 100% !important;
  min-width: 0 !important;
}
.im-booking-settlement-period-form__submit {
  flex: 0 0 220px !important;
  min-width: 220px !important;
  max-width: 240px !important;
  margin: 0 !important;
  align-self: flex-end !important;
}
.im-booking-settlement-period-form__submit .button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 56px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
}
@media (max-width: 991px) {
  .im-booking-settlement-period-form {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .im-booking-settlement-period-form > label,
  .im-booking-settlement-period-form__submit {
    min-width: 0 !important;
    max-width: none !important;
    flex: 1 1 auto !important;
  }
}

/* 0.1.47 packages + notes + brief */
.im-booking-package-row {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:6px 0 12px;
}
.im-booking-package-select {
  width:100%;
}
.im-booking-package-offers {
  margin-top:14px;
  padding-top:12px;
  border-top:1px dashed #d9c5b2;
}
.im-booking-package-offers__list {
  display:grid;
  gap:10px;
  margin-top:10px;
}
.im-booking-package-buy {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid #d8c6b7;
  border-radius:16px;
  background:#fffaf5;
  color:#5a3c2d;
  text-decoration:none;
}
.im-booking-package-buy:hover { border-color:#b88f72; }
.im-booking-package-buy__name { font-weight:700; }
.im-booking-checkboxes--stack { display:grid; gap:8px; }

.im-booking-package-row__head,
.im-booking-package-offers__head {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.im-booking-package-selection { margin: 0 0 12px; }
.im-booking-package-buy {
  appearance:none;
  width:100%;
  text-align:left;
  cursor:pointer;
}
.im-booking-package-buy.is-selected {
  border-color:#a97146;
  box-shadow:0 0 0 2px rgba(169,113,70,.16);
  background:#fff4ea;
}
.im-booking-package-buy.is-selected::after {
  content:"✓ Wybrany pakiet";
  display:block;
  margin-top:6px;
  font-size:12px;
  font-weight:700;
  color:#8a5a34;
}

.im-booking-package-progress {
  margin: 0 0 12px;
}
.im-booking-package-cards {
  display:grid;
  grid-template-columns: repeat(auto-fit,minmax(240px,1fr));
  gap:16px;
  margin: 0 0 18px;
}
.im-booking-package-card {
  background:#fffaf5;
  border:1px solid #ead9cb;
  border-radius:18px;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.im-booking-package-card__title {
  font-weight:700;
  font-size:18px;
}
.im-booking-package-card__meta {
  color:#6f5a4c;
  line-height:1.45;
}


.im-booking-grid--clients {grid-template-columns: minmax(260px, 320px) 1fr;}
.im-booking-client-card {display:block; border:1px solid #e5d4c5; border-radius:18px; padding:16px 18px; margin-bottom:14px; text-decoration:none; color:inherit; background:#fff; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, opacity .18s ease;}
.im-booking-client-card:hover {border-color:#c48758; box-shadow:0 8px 22px rgba(109,72,42,.08); transform:translateY(-1px);}
.im-booking-client-card.is-active {border-color:#b77442; box-shadow:0 0 0 2px rgba(183,116,66,.12);}
.im-booking-client-card.is-loading {opacity:.7; pointer-events:none;}
.im-booking-client-record-panel {position:relative; min-height:220px;}
.im-booking-client-record-panel__loader {position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:24px; border:1px solid #eadccd; border-radius:24px; background:rgba(255,250,245,.88); color:#7a5a3c; font-weight:700; backdrop-filter:blur(2px); z-index:3;}
.im-booking-client-record-panel__loader[hidden], .im-booking-client-record-panel:not(.is-loading) .im-booking-client-record-panel__loader {display:none !important; visibility:hidden; pointer-events:none;}
.im-booking-client-record-panel.is-loading .im-booking-client-record-panel__body {opacity:.45; pointer-events:none;}
.im-booking-client-card__name {font-weight:700; margin-bottom:6px;}
.im-booking-client-card__meta {font-size:14px; color:#5f5a53; margin-bottom:3px; word-break:break-word;}
.im-booking-client-card__stats {font-size:13px; color:#7b7369; margin-top:8px;}
.im-booking-client-profile {background:#fff; border:1px solid #eadccd; border-radius:24px; padding:22px;}
.im-booking-client-profile__head {display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:18px;}
.im-booking-client-profile__count {padding:10px 14px; border-radius:999px; background:#f5efe9; font-weight:700;}
.im-booking-client-notes-history {margin:24px 0; padding:20px; border:1px solid #eadccd; border-radius:24px; background:linear-gradient(180deg,#fff8f2 0%,#ffffff 100%);}
.im-booking-client-notes-history h4 {margin:0 0 14px;}
.im-booking-client-note-form {margin-bottom:18px; padding:16px 18px; border:1px dashed #e4ccb8; border-radius:18px; background:#fff;}
.im-booking-client-note-form.is-saving {opacity:.72; pointer-events:none;}
.im-booking-client-note-form__label {display:block; margin-bottom:8px; font-weight:600;}
.im-booking-client-note-status.is-error {color:#b42318;}
.im-booking-client-note-list {display:flex; flex-direction:column; gap:14px;}
.im-booking-client-note-entry {border:1px solid #e7d3c1; border-radius:20px; padding:16px 18px; background:#fff; box-shadow:0 10px 28px rgba(92,58,31,.06);}
.im-booking-client-note-entry.is-flash {animation:im-booking-note-flash 1.4s ease;}
.im-booking-client-note-entry__meta {display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid #f2e5d9; color:#6d6257; font-size:13px; line-height:1.4;}
.im-booking-client-note-entry__meta strong {font-size:16px; color:#2f271f;}
.im-booking-client-note-entry__meta span {display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; background:#f6eee7; color:#7a5a3c; font-weight:600;}
.im-booking-client-note-entry__meta em {font-style:normal; color:#9a6f49;}
.im-booking-client-note-entry__body {font-size:15px; line-height:1.7; color:#2f2a26;}
.im-booking-client-note-entry .im-booking-actions-inline {margin-top:14px; padding-top:12px; border-top:1px solid #f2e5d9; justify-content:flex-end;}
.im-booking-client-note-list > .description {margin:0; padding:16px 18px; border:1px dashed #e4ccb8; border-radius:18px; background:#fff;}
.im-booking-client-timeline {display:flex; flex-direction:column; gap:14px;}
.im-booking-client-entry {border:1px solid #ecdccd; border-radius:18px; padding:16px 18px; background:#fffdfb;}
.im-booking-client-entry__top {display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:8px;}
.im-booking-client-entry__service {font-weight:600; margin-bottom:8px;}
.im-booking-client-entry__note, .im-booking-client-entry__brief, .im-booking-client-entry__admin {margin-top:8px; font-size:14px; line-height:1.55;}
@media (max-width: 991px){.im-booking-grid--clients{grid-template-columns:1fr;} .im-booking-client-profile__head{flex-direction:column;} .im-booking-client-notes-history{padding:16px;} .im-booking-client-note-entry{padding:14px 15px;}}

@keyframes im-booking-note-flash {0%{box-shadow:0 0 0 0 rgba(182,132,86,.35);}40%{box-shadow:0 0 0 10px rgba(182,132,86,.12);}100%{box-shadow:0 10px 28px rgba(92,58,31,.06);}}


/* 0.1.61 settlements table facelift */
.im-booking-table-wrap--settlements {
  margin-top: 18px;
}
.im-booking-table--settlements {
  border-collapse: separate;
  border-spacing: 0 12px;
}
.im-booking-table--settlements thead th {
  padding: 0 18px 10px;
  border: 0;
  color: #6a5a4d;
  font-size: 13px;
  font-weight: 700;
}
.im-booking-table--settlements thead .im-booking-col-gross,
.im-booking-table--settlements thead .im-booking-col-deductions,
.im-booking-table--settlements thead .im-booking-col-payout {
  text-align: right;
}
.im-booking-table--settlements tbody td {
  padding: 18px;
  border-top: 1px solid #eadbce;
  border-bottom: 1px solid #eadbce;
  background: #fffdfa;
  vertical-align: middle;
}
.im-booking-table--settlements tbody td:first-child {
  border-left: 1px solid #eadbce;
  border-radius: 20px 0 0 20px;
}
.im-booking-table--settlements tbody td:last-child {
  border-right: 1px solid #eadbce;
  border-radius: 0 20px 20px 0;
}
.im-booking-table--settlements tbody tr:hover td {
  background: #fff9f2;
}
.im-booking-table--settlements .im-booking-col-gross,
.im-booking-table--settlements .im-booking-col-deductions,
.im-booking-table--settlements .im-booking-col-payout {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.im-booking-table--settlements .im-booking-col-payout strong,
.im-booking-table--settlements .im-booking-col-gross .woocommerce-Price-amount,
.im-booking-table--settlements .im-booking-col-deductions .woocommerce-Price-amount {
  font-weight: 700;
}
.im-booking-settlement-client {
  display: inline-block;
  font-weight: 700;
  color: #211a15;
}
.im-booking-settlement-order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #f6efe7;
  color: #8f5f37;
  text-decoration: none;
  font-weight: 700;
}
.im-booking-settlement-order--empty {
  color: #8a7a6d;
}
.im-booking-settlement-term__date {
  font-weight: 700;
  color: #211a15;
}
.im-booking-settlement-term__time {
  color: #7e6f63;
  font-size: 14px;
}
@media (max-width: 782px) {
  .im-booking-table--settlements {
    border-spacing: 0 10px;
  }
  .im-booking-table--settlements thead th,
  .im-booking-table--settlements tbody td {
    padding-left: 14px;
    padding-right: 14px;
  }
}


/* 0.1.63 settlements simplification */
.im-booking-table-wrap--settlements {
  margin-top: 18px;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0;
}
.im-booking-table--settlements {
  width: 100%;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0;
  border-collapse: separate;
  border-spacing: 0 12px;
  table-layout: fixed;
}
.im-booking-table--settlements thead,
.im-booking-table--settlements tbody,
.im-booking-table--settlements tr,
.im-booking-table--settlements th,
.im-booking-table--settlements td {
  border-color: transparent;
}
.im-booking-table--settlements th:nth-child(1),
.im-booking-table--settlements td:nth-child(1),
.im-booking-table--settlements .im-booking-col-term { width: 28%; }
.im-booking-table--settlements th:nth-child(2),
.im-booking-table--settlements td:nth-child(2),
.im-booking-table--settlements .im-booking-col-client { width: 24%; }
.im-booking-table--settlements th:nth-child(3),
.im-booking-table--settlements td:nth-child(3),
.im-booking-table--settlements .im-booking-col-gross { width: 16%; }
.im-booking-table--settlements th:nth-child(4),
.im-booking-table--settlements td:nth-child(4),
.im-booking-table--settlements .im-booking-col-deductions { width: 16%; }
.im-booking-table--settlements th:nth-child(5),
.im-booking-table--settlements td:nth-child(5),
.im-booking-table--settlements .im-booking-col-payout { width: 16%; }
.im-booking-table--settlements tbody td {
  padding: 18px;
  border-top: 1px solid #eadbce;
  border-bottom: 1px solid #eadbce;
  background: #fffdfa;
}
.im-booking-table--settlements tbody td + td {
  border-left: 0;
}
.im-booking-table--settlements tbody td:first-child {
  border-left: 1px solid #eadbce;
  border-radius: 20px 0 0 20px;
}
.im-booking-table--settlements tbody td:last-child {
  border-right: 1px solid #eadbce;
  border-radius: 0 20px 20px 0;
}
.im-booking-table--settlements tbody tr:hover td {
  background: #fff9f2;
}
@media (max-width: 782px) {
  .im-booking-table--settlements {
    min-width: 640px;
    table-layout: auto;
  }
}

.im-booking-manual-booking-response[hidden] {
  display: none !important;
}
.im-booking-manual-booking-response.is-error {
  color: #8a2727;
}
.im-booking-manual-booking-response.is-success {
  color: #205b2b;
}
.im-booking-manual-booking-form.is-saving {
  pointer-events: none;
}
.im-booking-planner-shell__notice {
  margin-bottom: 16px;
}


.im-booking-manual-booking-help {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f7f3ea;
  color: #6d5430;
  font-size: 13px;
  line-height: 1.55;
}

.im-booking-manual-booking-help.is-error {
  background: #fff1f0;
  color: #9c2f26;
}

.im-booking-manual-booking-help.is-success {
  background: #eef8f1;
  color: #266742;
}

.im-booking-manual-booking-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}

.im-booking-manual-booking-form .im-booking-time-select.is-loading,
.im-booking-planner-shell.is-loading {
  opacity: .7;
}

.im-booking-manual-booking-form .im-booking-time-select option:disabled {
  color: #a4a09a;
}

.im-booking-planner-shell.is-loading {
  pointer-events: none;
}


.im-booking-manual-time-field {
  margin-bottom: 14px;
}

.im-booking-manual-time-field__label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #212121;
}

.im-booking-manual-time-select-wrap.is-enhanced {
  display: none;
}

.im-booking-manual-timeline {
  border: 1px solid #eadbce;
  border-radius: 20px;
  background: linear-gradient(180deg, #fffdf9 0%, #f8f4ee 100%);
  padding: 14px;
}

.im-booking-manual-timeline__summary {
  font-size: 13px;
  line-height: 1.5;
  color: #6f573f;
  margin-bottom: 12px;
}

.im-booking-manual-timeline__track {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
  gap: 8px;
  max-height: 280px;
  overflow: auto;
  padding-right: 4px;
}

.im-booking-manual-timeline__placeholder {
  border: 1px dashed #d9c4b2;
  border-radius: 16px;
  padding: 16px;
  background: rgba(255,255,255,0.66);
  color: #8c7459;
  font-size: 13px;
}

.im-booking-manual-timeline__slot {
  appearance: none;
  border: 1px solid #d9c4b2;
  border-radius: 14px;
  background: #fff;
  color: #3e2b1c;
  min-height: 44px;
  padding: 10px 8px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.1;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease, color .12s ease;
}

.im-booking-manual-timeline__slot:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: #c68a50;
  box-shadow: 0 8px 18px rgba(120, 77, 37, 0.10);
}

.im-booking-manual-timeline__slot.is-preferred {
  background: #fffaf3;
  border-color: #c68a50;
}

.im-booking-manual-timeline__slot.is-outside-hours {
  background: #f3eee7;
  border-style: dashed;
  color: #967f68;
}

.im-booking-manual-timeline__slot.is-disabled,
.im-booking-manual-timeline__slot:disabled {
  background: #ebe5de;
  color: #b19d8a;
  border-color: #ddd0c2;
  cursor: not-allowed;
  opacity: .9;
  text-decoration: line-through;
  box-shadow: none;
  transform: none;
}

.im-booking-manual-timeline__slot.is-selected {
  background: #b57743;
  border-color: #b57743;
  color: #fff;
  box-shadow: 0 10px 22px rgba(120, 77, 37, 0.18);
}

.im-booking-manual-timeline__slot.is-selected.is-outside-hours {
  background: #8f6b4a;
  border-color: #8f6b4a;
  color: #fff;
  border-style: solid;
}

.im-booking-manual-timeline__slot.is-hour-boundary {
  position: relative;
}

.im-booking-manual-timeline__slot.is-hour-boundary::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 10px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: currentColor;
  opacity: .16;
}

@media (max-width: 782px) {
  .im-booking-manual-timeline__track {
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  }
}

.im-booking-config-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:20px;margin-top:18px}.im-booking-config-card{background:#fff;border:1px solid rgba(143,124,85,.18);border-radius:22px;padding:20px;box-shadow:0 12px 30px rgba(36,24,8,.05)}.im-booking-config-card h3{margin:0 0 14px}.im-booking-config-section+.im-booking-config-section{margin-top:18px;padding-top:18px;border-top:1px solid rgba(143,124,85,.12)}.im-booking-config-section__head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.im-booking-config-statuses{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.im-booking-config-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f3efe6;color:#6a5737;font-size:12px;font-weight:600}.im-booking-config-pill.is-success{background:#e8f5ea;color:#2f7a3e}.im-booking-config-pill.is-error{background:#fdeaea;color:#a33c3c}.im-booking-config-pill.is-muted{background:#f6f3ee;color:#7d6f58}.im-booking-actions-inline--config{margin-top:18px}.im-booking-actions-stack{display:flex;flex-direction:column;gap:10px}.im-booking-actions-stack form{margin:0}.im-booking-config-card input[readonly]{background:#faf7f1;color:#6b5b45}.im-booking-config-card textarea{min-height:120px}
@media (max-width: 960px){.im-booking-config-grid{grid-template-columns:1fr}}


.im-booking-planner__event--dragging {
  opacity:.18 !important;
  box-shadow:none !important;
}
.im-booking-planner__cell.has-inline-add .im-booking-planner__empty--week {
  opacity:.2;
}
.im-booking-planner__quick-add-inline {
  position:absolute;
  left:10px;
  right:10px;
  z-index:9;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:flex-start;
  gap:4px;
  padding:8px 10px;
  border-radius:14px;
  border:1px dashed rgba(183,122,72,.55);
  background:rgba(255,248,241,.97);
  color:#3d332c;
  box-shadow:0 10px 24px rgba(61,51,44,.10);
  cursor:pointer;
}
.im-booking-planner__quick-add-inline:hover,
.im-booking-planner__quick-add-inline:focus {
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(61,51,44,.12);
}
.im-booking-planner__quick-add-inline.is-outside-schedule {
  border-color:rgba(143,153,172,.55);
  background:rgba(246,247,249,.97);
}
.im-booking-planner__quick-add-inline.is-conflict {
  border-color:rgba(211,127,63,.55);
  background:rgba(255,240,232,.97);
}
.im-booking-planner__quick-add-time {
  font-size:12px;
  font-weight:800;
  line-height:1.1;
}
.im-booking-planner__quick-add-label {
  font-size:13px;
  font-weight:700;
  line-height:1.15;
}

.im-booking-planner__drag-helper {
  position:fixed;
  left:-9999px;
  top:-9999px;
  z-index:99999;
  pointer-events:none;
  min-width:170px;
  max-width:220px;
  border-radius:14px;
  border:1px dashed #b77a48;
  background:rgba(255,244,234,.98);
  color:#3d332c;
  box-shadow:0 14px 30px rgba(61,51,44,.18);
  padding:8px 10px;
  display:flex;
  flex-direction:column;
  gap:4px;
  transform:translateZ(0);
}
.im-booking-planner__drag-helper-time { font-weight:800; font-size:13px; line-height:1.1; }
.im-booking-planner__drag-helper-title { font-size:12px; line-height:1.25; color:#6f5a49; }
.im-booking-planner__drag-helper.is-conflict { border-color:#d37f3f; background:rgba(255,239,230,.98); }
.im-booking-planner__drag-helper.is-outside-schedule { border-color:#9faabc; background:rgba(248,249,252,.98); }
.im-booking-planner__drag-preview { z-index:11 !important; opacity:.92; }
.im-booking-planner__event--drag-source { z-index:10; }
.im-booking-planner__confirm-modal { position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; }
.im-booking-planner__confirm-backdrop { position:absolute; inset:0; background:rgba(30,24,18,.28); backdrop-filter:blur(3px); }
.im-booking-planner__confirm-card { position:relative; z-index:1; width:min(420px, calc(100vw - 32px)); padding:22px; border-radius:20px; background:#fffdfa; border:1px solid rgba(143,124,85,.16); box-shadow:0 18px 40px rgba(36,24,8,.18); }
.im-booking-planner__confirm-card p { margin:0 0 16px; font-size:17px; font-weight:700; color:#2f2119; }
.im-booking-planner__confirm-actions { display:flex; gap:12px; justify-content:flex-end; }
.im-booking-planner__confirm-btn { min-width:86px; padding:10px 16px; border-radius:12px; border:1px solid #d8b79e; background:#fff; color:#4d4036; font-weight:700; cursor:pointer; }
.im-booking-planner__confirm-btn.is-yes { background:#b77a48; border-color:#b77a48; color:#fff; }


/* 0.1.81 mobile planner day / 3 day mode */
.im-booking-planner__mobile-controls {
  display:none;
}

@media (max-width: 767px) {
  .im-booking-planner__toolbar {
    align-items:flex-start;
  }
  .im-booking-planner__switches {
    width:100%;
    justify-content:flex-start;
  }
  .im-booking-planner__switches a,
  .im-booking-planner__fullscreen-toggle {
    min-height:42px;
  }
  .im-booking-planner__legend {
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:4px;
    -webkit-overflow-scrolling:touch;
  }
  .im-booking-planner__legend-item {
    white-space:nowrap;
    flex:0 0 auto;
  }
  .im-booking-planner-shell[data-planner-view="week"] .im-booking-planner__mobile-controls {
    display:flex;
    flex-direction:column;
    gap:12px;
    margin:0 0 14px;
  }
  .im-booking-planner__mobile-modes,
  .im-booking-planner__mobile-nav,
  .im-booking-planner__mobile-days {
    display:flex;
    gap:10px;
    align-items:center;
  }
  .im-booking-planner__mobile-modes {
    flex-wrap:wrap;
  }
  .im-booking-planner__mobile-mode,
  .im-booking-planner__mobile-arrow,
  .im-booking-planner__mobile-day {
    appearance:none;
    border:1px solid #d8b79e;
    background:#fff;
    color:#4d4036;
    border-radius:999px;
    font-weight:700;
    box-shadow:0 8px 18px rgba(61,51,44,.05);
  }
  .im-booking-planner__mobile-mode,
  .im-booking-planner__mobile-arrow {
    padding:10px 14px;
  }
  .im-booking-planner__mobile-mode.is-active,
  .im-booking-planner__mobile-day.is-active {
    background:#b77a48;
    color:#fff;
    border-color:#b77a48;
  }
  .im-booking-planner__mobile-nav {
    justify-content:space-between;
  }
  .im-booking-planner__mobile-current {
    flex:1 1 auto;
    text-align:center;
    color:#3d332c;
    font-size:14px;
  }
  .im-booking-planner__mobile-arrow[disabled] {
    opacity:.35;
    cursor:default;
  }
  .im-booking-planner__mobile-days {
    overflow-x:auto;
    padding-bottom:2px;
    -webkit-overflow-scrolling:touch;
  }
  .im-booking-planner__mobile-day {
    flex:0 0 auto;
    padding:9px 12px;
    white-space:nowrap;
  }
  .im-booking-planner__mobile-day.is-in-range:not(.is-active) {
    background:#fbf3eb;
    border-color:#e2c1a6;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week {
    grid-template-columns:repeat(var(--im-booking-mobile-visible-count, 1), minmax(0, 1fr));
    gap:0;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__head.is-mobile-hidden,
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__cell.is-mobile-hidden {
    display:none !important;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__head,
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__cell {
    border-right:1px solid #eadbce;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__cell {
    min-height:calc(var(--im-booking-week-timeline-height) + 84px);
    padding-bottom:22px;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week {
    align-items:start;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__head,
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__cell {
    min-width:0;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__cell {
    overflow:hidden;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__events {
    overflow:visible;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__event {
    left:8px;
    right:8px;
    width:auto;
    max-width:none;
    overflow:hidden;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__week-guide-label {
    font-size:11px;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__event {
    font-size:14px;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__grid.is-week .im-booking-planner__event small {
    -webkit-line-clamp:3;
  }
  .im-booking-planner-shell.is-mobile-planner .im-booking-planner__view-switch.is-month {
    display:none;
  }
  .im-booking-planner__mobile-fab {
    position:fixed;
    right:18px;
    bottom:96px;
    width:58px;
    height:58px;
    border:0;
    border-radius:999px;
    background:#b77a48;
    color:#fff;
    box-shadow:0 16px 28px rgba(61,51,44,.24);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:32px;
    font-weight:500;
    z-index:9998;
  }
  .im-booking-planner__mobile-fab span {
    line-height:1;
    transform:translateY(-1px);
  }
  .im-booking-planner__mobile-fab:hover,
  .im-booking-planner__mobile-fab:focus {
    background:#a86c3a;
    color:#fff;
  }
  .im-booking-planner-shell:not(.is-mobile-planner) .im-booking-planner__mobile-fab {
    display:none !important;
  }
  .im-booking-modal.is-open {
    z-index:100001;
  }
}

.im-booking-order-controls {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.im-booking-order-controls form {
  margin: 0;
}
.im-booking-order-button {
  min-width: 36px;
  text-align: center;
  padding-left: 10px !important;
  padding-right: 10px !important;
}
.im-booking-service-card.is-order-moving {
  opacity: .68;
  pointer-events: none;
}
.im-booking-order-button:disabled {
  opacity: .35;
  cursor: not-allowed;
}

/* 0.1.93 onboarding compatibility */
.im-booking-guide-force-complete .im-booking-guide-force-complete-icon,
.im-booking-guide-force-complete [class*="check"]:first-child,
.im-booking-guide-force-complete [class*="status"]:first-child,
.im-booking-guide-force-complete [class*="dot"]:first-child {
  color: #168a42 !important;
  border-color: #bce8cc !important;
  background-color: #ddf8e8 !important;
}


/* 0.1.94 service categories + drag/drop */
.im-booking-section-spacer {
  margin-top: 26px;
}
.im-booking-card-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.im-booking-card-head__body {
  flex: 1;
  min-width: 0;
}
.im-booking-drag-handle {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  border: 1px solid #eadbce;
  background: #fbf7f2;
  color: #7c6047;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  font-weight: 800;
  line-height: 1;
  user-select: none;
  flex: 0 0 auto;
}
.im-booking-drag-handle:active {
  cursor: grabbing;
}
.im-booking-drag-handle--disabled {
  opacity: .45;
  cursor: default;
}
.im-booking-sortable-placeholder {
  border: 2px dashed #c99b73;
  border-radius: 20px;
  min-height: 74px;
  margin-bottom: 14px;
  background: rgba(201,155,115,.08);
}
.im-booking-sortable-list.is-sort-saving .im-booking-service-card {
  opacity: .76;
}
.im-booking-service-card.is-dragging {
  box-shadow: 0 18px 35px rgba(40,24,8,.16);
}
.im-booking-category-static,
.im-booking-service-group__head {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f8f4ef;
  border: 1px solid #eadbce;
  border-radius: 16px;
  padding: 10px 12px;
  margin-bottom: 10px;
}
.im-booking-category-static strong,
.im-booking-service-group__head strong {
  flex: 1;
}
.im-booking-category-static span:last-child,
.im-booking-service-group__head span {
  background: #fff;
  border: 1px solid #eadbce;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 12px;
  color: #6d655d;
}
.im-booking-category-list {
  margin-bottom: 18px;
}
.im-booking-category-card {
  padding: 14px;
}
.im-booking-service-group {
  margin-bottom: 18px;
}
.im-booking-service-list {
  min-height: 24px;
}
.im-booking-empty-sortable {
  border: 1px dashed #eadbce;
  border-radius: 16px;
  padding: 12px;
  color: #8a7a6c;
  background: #fffdfb;
  margin-bottom: 12px;
}
.im-booking-category-form {
  margin-bottom: 22px;
}
@media (max-width: 720px) {
  .im-booking-card-head {
    gap: 10px;
  }
  .im-booking-drag-handle {
    width: 32px;
    height: 32px;
  }
}

/* Pricing rules ---------------------------------------------------------- */
.im-booking-pricing-layout{align-items:start}
.im-booking-pricing-rules{display:grid;gap:12px}
.im-booking-pricing-days{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:8px}
.im-booking-pricing-days label{display:inline-flex!important;align-items:center;gap:6px;margin:0!important}
.im-booking-pricing-preview{margin-top:14px;padding:12px 14px;border:1px solid rgba(165,105,61,.24);border-radius:10px;background:rgba(165,105,61,.07);display:flex;flex-direction:column;gap:5px}
.im-booking-pricing-preview__base{font-size:13px;color:#687181}
.im-booking-pricing-preview ul{margin:2px 0 0 18px;font-size:13px;color:#687181}
.im-booking-service-card.is-inactive{opacity:.65}

.im-booking-pricing-presets{margin:14px 0;padding:12px;border:1px dashed #d7c0ad;border-radius:10px;background:#fffaf6}
.im-booking-pricing-presets .im-booking-actions-inline{margin-top:8px}

/* Notifications admin */
.im-booking-notification-health,
.im-booking-notification-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 18px 0;
}
.im-booking-notification-grid {
	grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
	align-items: start;
}
.im-booking-notification-health .im-booking-stat-card strong {
	font-size: 16px;
	line-height: 1.35;
}
.im-booking-notification-health .is-good { color: #08783e; }
.im-booking-notification-health .is-warning { color: #9a6700; }
.im-booking-notification-health .is-muted { color: #646970; }
.im-booking-notification-offsets-wrap { margin: 20px 0; }
.im-booking-notification-offsets { display: grid; gap: 8px; margin: 8px 0 10px; }
.im-booking-notification-offset-row {
	display: grid;
	grid-template-columns: 120px auto 1fr;
	gap: 10px;
	align-items: center;
	max-width: 620px;
}
.im-booking-notification-offset-row input { width: 120px; }
.im-booking-inline-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.im-booking-inline-form input[type="email"] { min-width: 260px; }
.im-booking-input-suffix { display: flex; align-items: stretch; }
.im-booking-input-suffix input { border-radius: 4px 0 0 4px; }
.im-booking-input-suffix span {
	display: flex;
	align-items: center;
	padding: 0 10px;
	border: 1px solid #8c8f94;
	border-left: 0;
	border-radius: 0 4px 4px 0;
	background: #f6f7f7;
}
.im-booking-help-tip {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 17px;
	height: 17px;
	margin-left: 4px;
	border-radius: 50%;
	background: #646970;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	cursor: help;
	vertical-align: middle;
}
.im-booking-help-tip::after {
	content: attr(data-tip);
	position: absolute;
	z-index: 99999;
	left: 50%;
	bottom: calc(100% + 8px);
	width: 280px;
	max-width: 70vw;
	padding: 10px 12px;
	border-radius: 6px;
	background: #1d2327;
	color: #fff;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.45;
	white-space: normal;
	transform: translateX(-50%);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	box-shadow: 0 6px 24px rgba(0,0,0,.22);
}
.im-booking-help-tip:hover::after,
.im-booking-help-tip:focus::after { opacity: 1; visibility: visible; }
.im-booking-notification-stats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.im-booking-notification-stats span {
	padding: 5px 9px;
	border-radius: 999px;
	background: #f0f0f1;
	font-size: 12px;
}
.im-booking-manual-notification-form { display: flex; gap: 6px; flex-wrap: wrap; }
.im-booking-notification-log-header { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.im-booking-notification-log-header h2 { margin-top: 0; }
.im-booking-notification-status {
	display: inline-block;
	padding: 4px 8px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	background: #f0f0f1;
}
.im-booking-notification-status.status-sent { background: #d7f3e3; color: #075f34; }
.im-booking-notification-status.status-failed { background: #fce3e3; color: #8a1818; }
.im-booking-notification-status.status-retrying { background: #fff1c7; color: #7a4d00; }
.im-booking-notification-status.status-pending,
.im-booking-notification-status.status-processing { background: #e2eefc; color: #174a7e; }
.im-booking-notification-status.status-skipped { background: #ececec; color: #50575e; }
.im-booking-notification-table td { vertical-align: top; }
@media (max-width: 1100px) {
	.im-booking-notification-health { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.im-booking-notification-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
	.im-booking-notification-health { grid-template-columns: 1fr; }
	.im-booking-notification-offset-row { grid-template-columns: 100px 1fr; }
	.im-booking-notification-offset-row .button-link-delete { grid-column: 1 / -1; justify-self: start; }
	.im-booking-notification-log-header { display: block; }
}


/* 0.3.3 instructor notifications UX cleanup */
.im-booking-notification-front-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 20px;
  align-items: stretch;
}
.im-booking-notification-front-card {
  height: 100%;
}
.im-booking-notification-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}
.im-booking-notification-summary-item {
  background: #f8f4ef;
  border: 1px solid #efe1d5;
  border-radius: 18px;
  padding: 16px;
  min-height: 92px;
}
.im-booking-notification-summary-label {
  display: block;
  color: #6d655d;
  font-size: 13px;
  line-height: 1.4;
  margin-bottom: 8px;
}
.im-booking-notification-summary-value {
  display: block;
  font-size: 20px;
  line-height: 1.25;
  color: #111;
  word-break: break-word;
}
.im-booking-notification-summary-value.is-good { color: #08783e; }
.im-booking-notification-summary-value.is-muted { color: #646970; }
.im-booking-notification-callout {
  margin-top: 16px;
  padding: 14px 16px;
  background: #fcfaf8;
  border: 1px solid #eadbce;
  border-radius: 16px;
}
.im-booking-notification-callout__label {
  font-size: 13px;
  color: #6d655d;
  margin-bottom: 6px;
}
.im-booking-notification-callout__value {
  font-size: 16px;
  font-weight: 700;
  color: #111;
  word-break: break-word;
}
.im-booking-notification-list {
  margin: 14px 0 0 18px;
  padding: 0;
  display: grid;
  gap: 12px;
  color: #3d3d3d;
  line-height: 1.55;
}
.im-booking-table-wrap--notifications-front,
.im-booking-table-wrap--notifications-log {
  overflow-x: auto;
}
.im-booking-table--notifications-front,
.im-booking-table--notifications-log {
  table-layout: auto;
  min-width: 900px;
}
.im-booking-table--notifications-front th,
.im-booking-table--notifications-front td,
.im-booking-table--notifications-log th,
.im-booking-table--notifications-log td {
  white-space: normal;
  word-break: break-word;
  vertical-align: top;
}
.im-booking-table--notifications-front th:nth-child(1),
.im-booking-table--notifications-front td:nth-child(1) { width: 150px; }
.im-booking-table--notifications-front th:nth-child(2),
.im-booking-table--notifications-front td:nth-child(2) { width: 240px; }
.im-booking-table--notifications-front th:nth-child(3),
.im-booking-table--notifications-front td:nth-child(3) { width: auto; min-width: 220px; }
.im-booking-table--notifications-front th:nth-child(4),
.im-booking-table--notifications-front td:nth-child(4) { width: 220px; }
.im-booking-table--notifications-front th:nth-child(5),
.im-booking-table--notifications-front td:nth-child(5) { width: 150px; }
.im-booking-table--notifications-log th:nth-child(1),
.im-booking-table--notifications-log td:nth-child(1) { width: 150px; }
.im-booking-table--notifications-log th:nth-child(2),
.im-booking-table--notifications-log td:nth-child(2) { width: 240px; }
.im-booking-table--notifications-log th:nth-child(3),
.im-booking-table--notifications-log td:nth-child(3) { width: 210px; }
.im-booking-table--notifications-log th:nth-child(4),
.im-booking-table--notifications-log td:nth-child(4) { width: 150px; }
.im-booking-table--notifications-log th:nth-child(5),
.im-booking-table--notifications-log td:nth-child(5) { width: 120px; }
.im-booking-table--notifications-log th:nth-child(6),
.im-booking-table--notifications-log td:nth-child(6) { width: auto; min-width: 180px; }
.im-booking-notification-term,
.im-booking-notification-client {
  display: grid;
  gap: 4px;
}
.im-booking-notification-term small,
.im-booking-notification-client small {
  color: #6d655d;
}
.im-booking-notification-audience-list {
  display: grid;
  gap: 8px;
}
.im-booking-notification-audience-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.im-booking-manual-notification-form--front {
  display: grid;
  gap: 8px;
}
.im-booking-manual-notification-form--front .button {
  width: 100%;
  justify-content: center;
  margin: 0;
}
@media (max-width: 1100px) {
  .im-booking-notification-front-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 680px) {
  .im-booking-notification-summary-grid {
    grid-template-columns: 1fr;
  }
}

/* 0.3.4 calendar sync tutorial + timezone safeguards */
.im-booking-calendar-tutorial {
  border: 1px solid #eadbce;
  border-radius: 22px;
  padding: 22px;
  background: linear-gradient(135deg, #fff 0%, #fbf7f2 100%);
  box-shadow: 0 12px 30px rgba(36,24,8,.05);
  margin-bottom: 20px;
}
.im-booking-calendar-tutorial__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 18px;
}
.im-booking-calendar-tutorial__head h3 {
  margin: 4px 0 6px;
}
.im-booking-calendar-tutorial__head p {
  margin: 0;
  color: #6d655d;
}
.im-booking-calendar-tutorial__eyebrow {
  display: block;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 11px;
  font-weight: 800;
  color: #a97146;
}
.im-booking-calendar-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
  counter-reset: im-calendar-step;
}
.im-booking-calendar-steps li {
  counter-increment: im-calendar-step;
  position: relative;
  min-height: 140px;
  padding: 42px 14px 14px;
  border: 1px solid #eadbce;
  border-radius: 16px;
  background: #fff;
}
.im-booking-calendar-steps li::before {
  content: counter(im-calendar-step);
  position: absolute;
  top: 12px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #f2e9e1;
  color: #8b5d39;
  font-weight: 800;
  font-size: 12px;
}
.im-booking-calendar-steps li.is-done::before {
  content: "✓";
  background: #e8f5ea;
  color: #2f7a3e;
}
.im-booking-calendar-steps strong,
.im-booking-calendar-steps span {
  display: block;
}
.im-booking-calendar-steps strong {
  margin-bottom: 7px;
  line-height: 1.3;
}
.im-booking-calendar-steps span {
  color: #6d655d;
  font-size: 13px;
  line-height: 1.45;
}
.im-booking-config-section--advanced {
  opacity: .82;
  background: #fcfaf8;
  border-radius: 14px;
  padding: 14px;
}
.im-booking-config-section--advanced + .im-booking-config-section--advanced {
  margin-top: 12px;
}
@media (max-width: 1180px) {
  .im-booking-calendar-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .im-booking-calendar-tutorial__head {
    display: block;
  }
  .im-booking-calendar-tutorial__head .im-booking-config-pill {
    margin-top: 12px;
  }
  .im-booking-calendar-steps {
    grid-template-columns: 1fr;
  }
  .im-booking-calendar-steps li {
    min-height: 0;
  }
}


/* 0.3.5 notification email editing */
.im-booking-notification-email-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}
.im-booking-notification-email-form label {
  margin: 0;
}
.im-booking-notification-email-form input[type="email"] {
  margin-top: 7px;
}
.im-booking-notification-email-form .button {
  min-height: 46px;
  white-space: nowrap;
}
@media (max-width: 680px) {
  .im-booking-notification-email-form {
    grid-template-columns: 1fr;
  }
  .im-booking-notification-email-form .button {
    width: 100%;
  }
}

/* 0.3.6 simplified instructor Google Calendar panel */
.im-booking-calendar-steps--four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.im-booking-calendar-advanced {
  margin-top: 22px;
  border: 1px solid #eadbce;
  border-radius: 16px;
  background: #fcfaf8;
  overflow: hidden;
}
.im-booking-calendar-advanced summary {
  cursor: pointer;
  padding: 15px 18px;
  font-weight: 700;
  color: #6d4d36;
  list-style: none;
}
.im-booking-calendar-advanced summary::-webkit-details-marker { display: none; }
.im-booking-calendar-advanced summary::after {
  content: "+";
  float: right;
  font-size: 20px;
  line-height: 1;
}
.im-booking-calendar-advanced[open] summary::after { content: "−"; }
.im-booking-calendar-advanced__content {
  padding: 0 18px 18px;
  display: grid;
  gap: 14px;
}
.im-booking-calendar-advanced__content .im-booking-inline-note {
  margin: 0;
}
@media (max-width: 1180px) {
  .im-booking-calendar-steps--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .im-booking-calendar-steps--four {
    grid-template-columns: 1fr;
  }
}

/* 0.4.0 Google Calendar bidirectional sync */
.im-booking-calendar-bidirectional {
  margin-top: 16px;
  padding: 16px 18px;
  border: 1px solid #e5d5c7;
  border-radius: 16px;
  background: #fbf7f2;
}
.im-booking-calendar-bidirectional .im-booking-checkbox-row {
  margin-bottom: 10px;
}
.im-booking-calendar-bidirectional .im-booking-checkbox-row--sub {
  margin-left: 28px;
  font-weight: 500;
}
.im-booking-config-pill.is-warning {
  background: #fff3cd;
  color: #795500;
}
@media (max-width: 680px) {
  .im-booking-calendar-bidirectional .im-booking-checkbox-row--sub {
    margin-left: 0;
  }
}

/* 0.5.0 native Web Push for instructors */
.im-booking-push-panel {
  margin-top: 20px;
  overflow: hidden;
}
.im-booking-push-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.im-booking-push-header h3 {
  margin-bottom: 7px;
}
.im-booking-push-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  max-width: 280px;
  padding: 7px 11px;
  border-radius: 999px;
  background: #ececec;
  color: #50575e;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
.im-booking-push-status.is-good { background: #d7f3e3; color: #075f34; }
.im-booking-push-status.is-warning { background: #fff1c7; color: #7a4d00; }
.im-booking-push-status.is-error { background: #fce3e3; color: #8a1818; }
.im-booking-push-status.is-muted,
.im-booking-push-status.is-checking { background: #ececec; color: #50575e; }
.im-booking-push-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  padding: 18px;
  margin-top: 16px;
  border: 1px solid #eadbce;
  border-radius: 18px;
  background: #fcfaf8;
}
.im-booking-push-device-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}
.im-booking-push-device-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: #f0e3d8;
  color: #a97146;
  font-size: 14px;
  box-shadow: inset 0 0 0 1px rgba(169, 113, 70, .16);
}
.im-booking-push-device-card p {
  margin: 5px 0 5px;
  color: #4f4a45;
  line-height: 1.45;
}
.im-booking-push-device-card small {
  color: #77706a;
}
.im-booking-push-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.im-booking-push-actions .button {
  margin: 0;
  white-space: nowrap;
}
.im-booking-push-message {
  margin-top: 12px;
  padding: 11px 14px;
  border-radius: 12px;
  background: #eef3f8;
  color: #30445a;
  font-size: 14px;
}
.im-booking-push-message.is-success { background: #e2f5e9; color: #075f34; }
.im-booking-push-message.is-error { background: #fce7e7; color: #8a1818; }
.im-booking-push-preferences {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #eadbce;
}
.im-booking-push-preferences h4 {
  margin: 0 0 12px;
}
.im-booking-push-preferences-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.im-booking-push-preferences-grid label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 13px 14px;
  margin: 0;
  border: 1px solid #eadbce;
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
}
.im-booking-push-preferences-grid input {
  margin-top: 3px;
}
.im-booking-push-preferences-grid span {
  display: grid;
  gap: 3px;
}
.im-booking-push-preferences-grid strong {
  color: #171717;
}
.im-booking-push-preferences-grid small {
  color: #6d655d;
  line-height: 1.4;
}
.im-booking-push-help {
  margin-top: 18px;
  padding: 13px 15px;
  border: 1px dashed #d7c0ad;
  border-radius: 14px;
  background: #fffaf6;
}
.im-booking-push-help summary {
  cursor: pointer;
  font-weight: 700;
  color: #3c3027;
}
.im-booking-push-help ol {
  margin: 12px 0 0 21px;
  padding: 0;
  display: grid;
  gap: 7px;
}
@media (max-width: 840px) {
  .im-booking-push-header,
  .im-booking-push-layout {
    display: grid;
    grid-template-columns: 1fr;
  }
  .im-booking-push-status {
    justify-self: start;
  }
  .im-booking-push-actions {
    justify-content: flex-start;
  }
}
@media (max-width: 620px) {
  .im-booking-push-preferences-grid {
    grid-template-columns: 1fr;
  }
  .im-booking-push-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .im-booking-push-actions .button {
    width: 100%;
    justify-content: center;
  }
}

/* 0.5.1 idiot-proof Web Push onboarding */
.im-booking-push-eyebrow {
  display: inline-flex;
  margin-bottom: 8px;
  color: #a97146;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.im-booking-push-device-summary {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  margin-top: 18px;
  border: 1px solid #eadbce;
  border-radius: 18px;
  background: #fcfaf8;
}
.im-booking-push-device-summary > div:last-child {
  min-width: 0;
}
.im-booking-push-device-label {
  display: block;
  margin-bottom: 3px;
  color: #77706a;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.im-booking-push-device-summary strong[data-push-device-name] {
  display: block;
  color: #171717;
  font-size: 18px;
  line-height: 1.35;
}
.im-booking-push-device-summary p {
  margin: 5px 0 6px;
  color: #4f4a45;
  line-height: 1.5;
}
.im-booking-push-device-summary small {
  color: #77706a;
}
.im-booking-push-ios-alert {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid #e2b85c;
  border-radius: 14px;
  background: #fff8e8;
  color: #6f4c00;
}
.im-booking-push-ios-alert strong {
  display: block;
  margin-bottom: 4px;
  color: #5b3d00;
}
.im-booking-push-ios-alert p {
  margin: 0;
  line-height: 1.5;
}
.im-booking-push-setup {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.im-booking-push-step {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  padding: 15px;
  border: 1px solid #eadbce;
  border-radius: 16px;
  background: #fff;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.im-booking-push-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f0e3d8;
  color: #8c5c35;
  font-size: 16px;
  font-weight: 800;
}
.im-booking-push-step strong {
  display: block;
  margin-top: 1px;
  color: #171717;
}
.im-booking-push-step p {
  margin: 5px 0 9px;
  color: #6d655d;
  font-size: 13px;
  line-height: 1.45;
}
.im-booking-push-step-state {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f0f0f1;
  color: #646970;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}
.im-booking-push-step.is-current {
  border-color: #c99a73;
  background: #fffaf6;
  box-shadow: 0 7px 22px rgba(95, 58, 31, .08);
}
.im-booking-push-step.is-current .im-booking-push-step-state {
  background: #f3e2d4;
  color: #714420;
}
.im-booking-push-step.is-done {
  border-color: #9ed2b4;
  background: #f6fcf8;
}
.im-booking-push-step.is-done .im-booking-push-step-number {
  background: #d7f3e3;
  color: #075f34;
}
.im-booking-push-step.is-done .im-booking-push-step-number::before {
  content: '✓';
}
.im-booking-push-step.is-done .im-booking-push-step-number {
  font-size: 0;
}
.im-booking-push-step.is-done .im-booking-push-step-number::before {
  font-size: 17px;
}
.im-booking-push-step.is-done .im-booking-push-step-state {
  background: #d7f3e3;
  color: #075f34;
}
.im-booking-push-step.is-blocked {
  opacity: .72;
  background: #fafafa;
}
.im-booking-push-step.is-blocked .im-booking-push-step-state {
  background: #ececec;
  color: #646970;
}
.im-booking-push-actions--primary {
  justify-content: flex-start;
  margin-top: 16px;
}
.im-booking-push-actions--primary .button {
  min-height: 42px;
  padding: 8px 16px;
}
.im-booking-push-guides {
  margin-top: 22px;
  overflow: hidden;
  border: 1px solid #eadbce;
  border-radius: 18px;
  background: #fff;
}
.im-booking-push-guide-tabs {
  display: flex;
  gap: 6px;
  padding: 8px;
  border-bottom: 1px solid #eadbce;
  background: #f8f4ef;
  overflow-x: auto;
}
.im-booking-push-guide-tabs button {
  flex: 0 0 auto;
  padding: 9px 13px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #554c45;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.im-booking-push-guide-tabs button:hover,
.im-booking-push-guide-tabs button.is-active {
  background: #fff;
  color: #8c5c35;
  box-shadow: 0 2px 10px rgba(75, 47, 27, .08);
}
.im-booking-push-guide-panel {
  padding: 20px;
}
.im-booking-push-guide-panel h4 {
  margin: 0 0 15px;
  color: #171717;
  font-size: 18px;
}
.im-booking-push-guide-steps {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.im-booking-push-guide-steps li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 11px;
  align-items: flex-start;
}
.im-booking-push-guide-steps li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  background: #f0e3d8;
  color: #8c5c35;
  font-size: 13px;
  font-weight: 800;
}
.im-booking-push-guide-steps strong {
  display: block;
  color: #24201d;
  line-height: 1.35;
}
.im-booking-push-guide-steps p {
  margin: 3px 0 0;
  color: #6d655d;
  font-size: 13px;
  line-height: 1.5;
}
.im-booking-push-preferences-header h4 {
  margin: 0 0 5px;
}
.im-booking-push-preferences-header p {
  margin: 0 0 14px;
  color: #6d655d;
  line-height: 1.5;
}
.im-booking-push-troubleshooting {
  margin-top: 20px;
  border: 1px dashed #d7c0ad;
  border-radius: 14px;
  background: #fffaf6;
}
.im-booking-push-troubleshooting summary {
  padding: 14px 16px;
  cursor: pointer;
  color: #3c3027;
  font-weight: 800;
}
.im-booking-push-troubleshooting-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0 16px 16px;
}
.im-booking-push-troubleshooting-grid > div {
  padding: 13px 14px;
  border: 1px solid #eadbce;
  border-radius: 12px;
  background: #fff;
}
.im-booking-push-troubleshooting-grid strong {
  display: block;
  margin-bottom: 5px;
  color: #2f2925;
}
.im-booking-push-troubleshooting-grid p {
  margin: 0;
  color: #6d655d;
  font-size: 13px;
  line-height: 1.5;
}
@media (max-width: 980px) {
  .im-booking-push-setup {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .im-booking-push-troubleshooting-grid {
    grid-template-columns: 1fr;
  }
  .im-booking-push-guide-panel {
    padding: 16px;
  }
}
@media (max-width: 520px) {
  .im-booking-push-device-summary {
    padding: 14px;
  }
  .im-booking-push-step {
    grid-template-columns: 34px minmax(0, 1fr);
    padding: 13px;
  }
  .im-booking-push-step-number {
    width: 34px;
    height: 34px;
  }
  .im-booking-push-guide-tabs {
    display: grid;
    grid-template-columns: 1fr;
  }
  .im-booking-push-guide-tabs button {
    width: 100%;
    text-align: left;
  }
}

/* 0.6.2 — jeden stan publikacji profilu i rezerwacji */
.im-booking-publication-state {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
  padding: 16px 18px;
  border: 1px solid #ead8c9;
  border-radius: 18px;
  background: #fffaf6;
}
.im-booking-publication-state.is-active {
  border-color: #cce4d5;
  background: #f3fbf6;
}
.im-booking-publication-state__icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid #ddc7b4;
  border-radius: 50%;
  background: #fff;
  color: #9a5d32;
  font-size: 21px;
  font-weight: 900;
}
.im-booking-publication-state.is-active .im-booking-publication-state__icon {
  border-color: #b9ddc7;
  color: #26704a;
}
.im-booking-publication-state strong,
.im-booking-publication-state span {
  display: block;
}
.im-booking-publication-state strong {
  margin-bottom: 4px;
  color: #29231f;
  font-size: 15px;
}
.im-booking-publication-state span {
  color: #74685f;
  font-size: 13px;
  line-height: 1.5;
}
@media (max-width: 560px) {
  .im-booking-publication-state {
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 14px;
  }
  .im-booking-publication-state__icon {
    width: 38px;
    height: 38px;
  }
}

/* 0.6.13 — wspólny selektor kalendarza dla strony, widżetu i Mega PWA. */
.im-booking-box .im-booking-date.im-booking-calendar-source{
  display:none!important;
  position:absolute!important;
  left:-99999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.im-booking-box .im-booking-date-field{overflow:visible!important}
.im-booking-box .im-booking-calendar-control{
  --im-booking-calendar-accent:#b8794d;
  --im-booking-calendar-premium:#d49a35;
  --im-booking-calendar-discount:#42945f;
  position:relative!important;
  z-index:80!important;
  width:100%!important;
  margin-top:8px!important;
  box-sizing:border-box!important;
  font-family:inherit!important;
}
.im-booking-box .im-booking-calendar-control *{box-sizing:border-box!important}
.im-booking-box .im-booking-calendar-trigger{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  width:100%!important;
  min-height:52px!important;
  margin:0!important;
  padding:12px 15px!important;
  border:1px solid var(--im-booking-calendar-accent)!important;
  border-radius:15px!important;
  background:#fff!important;
  color:#6f6570!important;
  box-shadow:0 7px 20px rgba(36,25,30,.06)!important;
  font:500 14px/1.35 inherit!important;
  text-align:left!important;
  text-decoration:none!important;
  text-shadow:none!important;
  transform:none!important;
  cursor:pointer!important;
}
.im-booking-box .im-booking-calendar-trigger:hover,
.im-booking-box .im-booking-calendar-trigger:focus,
.im-booking-box .im-booking-calendar-trigger:focus-visible,
.im-booking-box .im-booking-calendar-control.is-open .im-booking-calendar-trigger{
  border-color:var(--im-booking-calendar-accent)!important;
  background:#fff!important;
  color:#241d20!important;
  box-shadow:0 0 0 3px rgba(184,121,77,.15),0 9px 22px rgba(36,25,30,.08)!important;
  outline:0!important;
}
.im-booking-box .im-booking-calendar-trigger.has-value{color:#241d20!important}
.im-booking-box .im-booking-calendar-trigger__icon{
  display:grid!important;
  place-items:center!important;
  flex:0 0 22px!important;
  width:22px!important;
  height:22px!important;
  color:var(--im-booking-calendar-accent)!important;
}
.im-booking-box .im-booking-calendar-trigger__icon svg{
  display:block!important;
  width:20px!important;
  height:20px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.im-booking-box .im-booking-calendar{
  position:absolute!important;
  left:0!important;
  top:calc(100% + 9px)!important;
  z-index:999999!important;
  width:min(410px,calc(100vw - 46px))!important;
  max-width:none!important;
  margin:0!important;
  padding:16px!important;
  border:1px solid #e1e5e9!important;
  border-radius:18px!important;
  background:#fff!important;
  color:#20252b!important;
  box-shadow:0 24px 65px rgba(22,28,34,.22)!important;
  overflow:hidden!important;
}
.im-booking-box .im-booking-calendar[hidden]{display:none!important}
.im-booking-box .im-booking-calendar__head{
  display:grid!important;
  grid-template-columns:40px minmax(0,1fr) 40px!important;
  align-items:center!important;
  gap:8px!important;
  margin:0 0 12px!important;
}
.im-booking-box .im-booking-calendar__head strong{
  display:block!important;
  margin:0!important;
  color:#20252b!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1.2!important;
  text-align:center!important;
  text-transform:capitalize!important;
}
.im-booking-box .im-booking-calendar__nav{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:grid!important;
  place-items:center!important;
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #e0e4e8!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#252b31!important;
  box-shadow:none!important;
  font:500 24px/1 inherit!important;
  text-shadow:none!important;
  transform:none!important;
  cursor:pointer!important;
}
.im-booking-box .im-booking-calendar__nav:hover,
.im-booking-box .im-booking-calendar__nav:focus-visible{
  border-color:var(--im-booking-calendar-accent)!important;
  background:#fff8f2!important;
  color:var(--im-booking-calendar-accent)!important;
  outline:0!important;
}
.im-booking-box .im-booking-calendar__weekdays,
.im-booking-box .im-booking-calendar__days{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:5px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
.im-booking-box .im-booking-calendar__weekdays{margin-bottom:6px!important}
.im-booking-box .im-booking-calendar__weekdays span{
  display:block!important;
  padding:5px 0!important;
  color:#7a838d!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
  text-transform:uppercase!important;
}
.im-booking-box .im-booking-calendar__empty{display:block!important;min-height:49px!important}
.im-booking-box .im-booking-calendar__day{
  -webkit-appearance:none!important;
  appearance:none!important;
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  width:100%!important;
  min-width:0!important;
  height:49px!important;
  min-height:49px!important;
  margin:0!important;
  padding:3px 1px!important;
  border:1px solid transparent!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#252b31!important;
  box-shadow:none!important;
  font:700 12px/1 inherit!important;
  text-shadow:none!important;
  transform:none!important;
  cursor:pointer!important;
  overflow:hidden!important;
}
.im-booking-box .im-booking-calendar__day:hover:not(:disabled),
.im-booking-box .im-booking-calendar__day:focus-visible:not(:disabled){
  border-color:var(--im-booking-calendar-accent)!important;
  background:#fff8f2!important;
  color:var(--im-booking-calendar-accent)!important;
  outline:0!important;
  transform:translateY(-1px)!important;
}
.im-booking-box .im-booking-calendar__day.is-today:not(.is-selected){border-color:#ccd4dc!important}
.im-booking-box .im-booking-calendar__day.is-selected{
  border-color:var(--im-booking-calendar-accent)!important;
  background:#fff4ea!important;
  color:var(--im-booking-calendar-accent)!important;
  box-shadow:0 7px 18px rgba(31,36,41,.14)!important;
}
.im-booking-box .im-booking-calendar__day:disabled{
  border-color:transparent!important;
  background:#f5f6f8!important;
  color:#bdc3c9!important;
  opacity:1!important;
  cursor:not-allowed!important;
}
.im-booking-box .im-booking-calendar__day.is-available:not(.is-selected){border-color:#dbe1e6!important;background:#fff!important}
.im-booking-box .im-booking-calendar__day.is-premium:not(.is-selected){border-color:#e4b765!important;background:#fff9ee!important;color:#8a5a12!important}
.im-booking-box .im-booking-calendar__day.is-discount:not(.is-selected){border-color:#84c59a!important;background:#f1fbf4!important;color:#267443!important}
.im-booking-box .im-booking-calendar__day.is-mixed:not(.is-selected){border-color:#ae91d7!important;background:#f8f3ff!important;color:#68449b!important}
.im-booking-box .im-booking-calendar__day-number{display:block!important;font-size:15px!important;font-weight:800!important;line-height:1!important}
.im-booking-box .im-booking-calendar__day-price{
  display:block!important;
  max-width:100%!important;
  font-size:8px!important;
  font-weight:800!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.im-booking-box .im-booking-calendar__day-dot{
  position:absolute!important;
  right:5px!important;
  top:5px!important;
  width:6px!important;
  height:6px!important;
  border-radius:50%!important;
  background:var(--im-booking-calendar-accent)!important;
}
.im-booking-box .im-booking-calendar__day.is-premium .im-booking-calendar__day-dot{background:var(--im-booking-calendar-premium)!important}
.im-booking-box .im-booking-calendar__day.is-discount .im-booking-calendar__day-dot{background:var(--im-booking-calendar-discount)!important}
.im-booking-box .im-booking-calendar__day.is-mixed .im-booking-calendar__day-dot{background:#7953ad!important}
.im-booking-box .im-booking-calendar__legend{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  margin:11px 0 0!important;
  padding:10px 0 0!important;
  border-top:1px solid #edf0f2!important;
  color:#6e7781!important;
  font-size:10px!important;
  line-height:1.2!important;
}
.im-booking-box .im-booking-calendar__legend span{display:inline-flex!important;align-items:center!important;gap:4px!important}
.im-booking-box .im-booking-calendar__legend i{display:block!important;width:7px!important;height:7px!important;border-radius:50%!important;background:var(--im-booking-calendar-accent)!important}
.im-booking-box .im-booking-calendar__legend .is-premium i{background:var(--im-booking-calendar-premium)!important}
.im-booking-box .im-booking-calendar__legend .is-discount i{background:var(--im-booking-calendar-discount)!important}
.im-booking-box .im-booking-calendar__foot{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin:10px 0 0!important;
  padding:10px 0 0!important;
  border-top:1px solid #edf0f2!important;
}
.im-booking-box .im-booking-calendar__status{color:#7a838d!important;font-size:10px!important;line-height:1.25!important}
.im-booking-box .im-booking-calendar__today{
  -webkit-appearance:none!important;
  appearance:none!important;
  margin:0!important;
  padding:8px 11px!important;
  border:0!important;
  border-radius:9px!important;
  background:#fff4ea!important;
  color:var(--im-booking-calendar-accent)!important;
  box-shadow:none!important;
  font:800 11px/1 inherit!important;
  text-shadow:none!important;
  transform:none!important;
  cursor:pointer!important;
}
.im-booking-box .im-booking-calendar__today:hover,
.im-booking-box .im-booking-calendar__today:focus-visible{background:#f3dfcf!important;color:#7f4828!important;outline:0!important}
@media(max-width:620px){
  .im-booking-box .im-booking-calendar{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    top:50%!important;
    width:auto!important;
    max-height:calc(100dvh - 28px)!important;
    transform:translateY(-50%)!important;
    overflow:auto!important;
  }
  .im-booking-box .im-booking-calendar__day{height:46px!important;min-height:46px!important}
  .im-booking-box .im-booking-calendar__day-price{font-size:7px!important}
}


/* 0.6.15 — jasne pakiety i spójna brązowo-beżowa paleta kalendarza. */
.im-booking-box .im-booking-package-offers__list{
  gap:12px!important;
}
.im-booking-box .im-booking-package-buy,
.im-booking-box .im-booking-package-buy:visited{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  width:100%!important;
  padding:14px 16px!important;
  border:1px solid #e5d6ca!important;
  border-radius:18px!important;
  background:#fff9f4!important;
  color:#4f3729!important;
  box-shadow:0 2px 10px rgba(95,61,37,.04)!important;
  text-decoration:none!important;
  text-shadow:none!important;
  transform:none!important;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,transform .18s ease,color .18s ease!important;
}
.im-booking-box .im-booking-package-buy:hover,
.im-booking-box .im-booking-package-buy:focus,
.im-booking-box .im-booking-package-buy:focus-visible{
  border-color:#c89b79!important;
  background:#fff5ec!important;
  color:#4b3428!important;
  box-shadow:0 8px 22px rgba(95,61,37,.08)!important;
  outline:0!important;
  transform:translateY(-1px)!important;
}
.im-booking-box .im-booking-package-buy.is-selected{
  border-color:#bf8d67!important;
  background:#fdf1e4!important;
  color:#4a3327!important;
  box-shadow:0 0 0 2px rgba(191,141,103,.14),0 8px 22px rgba(95,61,37,.08)!important;
}
.im-booking-box .im-booking-package-buy__name,
.im-booking-box .im-booking-package-buy__meta,
.im-booking-box .im-booking-package-buy__price,
.im-booking-box .im-booking-package-buy strong,
.im-booking-box .im-booking-package-buy span,
.im-booking-box .im-booking-package-buy small{
  color:inherit!important;
  background:transparent!important;
  text-shadow:none!important;
}
.im-booking-box .im-booking-package-buy__name,
.im-booking-box .im-booking-package-buy__price{
  font-weight:800!important;
}
.im-booking-box .im-booking-package-buy__price{white-space:nowrap!important}
.im-booking-box .im-booking-package-buy.is-selected::after{color:#8b5d3b!important}
.im-booking-box .im-booking-calendar-control{
  --im-booking-calendar-accent:#b8794d!important;
}
.im-booking-box .im-booking-calendar-trigger{
  border-color:#d8c5b5!important;
  color:#6e5a4d!important;
}
.im-booking-box .im-booking-calendar-trigger:hover,
.im-booking-box .im-booking-calendar-trigger:focus,
.im-booking-box .im-booking-calendar-trigger:focus-visible,
.im-booking-box .im-booking-calendar-control.is-open .im-booking-calendar-trigger{
  border-color:#b8794d!important;
  box-shadow:0 0 0 3px rgba(184,121,77,.15),0 9px 22px rgba(55,35,22,.07)!important;
}
.im-booking-box .im-booking-calendar{
  border-color:#ead8ca!important;
  box-shadow:0 24px 65px rgba(55,35,22,.18)!important;
}
.im-booking-box .im-booking-calendar__nav:hover,
.im-booking-box .im-booking-calendar__nav:focus-visible{
  background:#fff8f2!important;
}
.im-booking-box .im-booking-calendar__day:hover:not(:disabled),
.im-booking-box .im-booking-calendar__day:focus-visible:not(:disabled){
  background:#fff8f2!important;
}
.im-booking-box .im-booking-calendar__day.is-selected{
  background:#fff4ea!important;
}
.im-booking-box .im-booking-calendar__today{
  background:#fff4ea!important;
}
.im-booking-box .im-booking-calendar__today:hover,
.im-booking-box .im-booking-calendar__today:focus-visible{
  background:#f3dfcf!important;
  color:#7f4828!important;
}


/* 0.6.19 — selektor i numer tworzą jeden wizualny komponent telefonu. */
.im-booking-phone-field {
  display: grid;
  grid-template-columns: minmax(156px, .46fr) minmax(0, 1fr);
  align-items: stretch;
  width: 100%;
  min-width: 0;
  margin-top: 8px;
  overflow: hidden;
  border: 1px solid #d9c4b2;
  border-radius: 18px;
  background: #fff;
  box-shadow: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.im-booking-panel-form .im-booking-phone-field__country,
.im-booking-panel-form .im-booking-phone-field__number {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #212121;
  box-shadow: none !important;
  outline: 0 !important;
}
.im-booking-panel-form .im-booking-phone-field__country {
  padding: 11px 32px 11px 13px;
  border-right: 1px solid #d9c4b2 !important;
  font-weight: 700;
}
.im-booking-panel-form .im-booking-phone-field__number {
  padding: 12px 16px;
}
.im-booking-phone-field:focus-within {
  border-color: #a97146;
  box-shadow: 0 0 0 3px rgba(169, 113, 70, .14);
}
.im-booking-phone-field__number:invalid:not(:placeholder-shown) {
  background: #fff8f7 !important;
}
.im-booking-phone-field:has(.im-booking-phone-field__number:invalid:not(:placeholder-shown)) {
  border-color: #b8443d;
}
@media (max-width: 520px) {
  .im-booking-phone-field {
    grid-template-columns: 128px minmax(0, 1fr);
    border-radius: 15px;
  }
  .im-booking-panel-form .im-booking-phone-field__country {
    padding-left: 10px;
    padding-right: 28px;
    font-size: 13px;
  }
  .im-booking-panel-form .im-booking-phone-field__number {
    font-size: 16px;
  }
}
