.beautyos-booking {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(53, 16, 94, 0.22);
  border-radius: 8px;
  box-shadow: 0 34px 110px rgba(53, 16, 94, 0.18);
  color: #0b090d;
  margin: 0 auto;
  max-width: 1120px;
  overflow: hidden;
}

.beautyos-booking__header {
  background:
    linear-gradient(135deg, #0a0610 0%, #35105e 56%, #7c3cff 100%);
  color: var(--beauty-white, #fff);
  max-width: none;
  padding: 36px 42px 30px;
}

.beautyos-booking__kicker,
.beautyos-booking__header p {
  color: #eedcff;
}

.beautyos-booking__kicker {
  font-size: 0.72rem;
  font-weight: 900;
  margin: 0 0 9px;
  text-transform: uppercase;
}

.beautyos-booking h2 {
  color: var(--beauty-white, #fff);
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 3.05rem;
  line-height: 0.98;
  margin: 0 0 13px;
}

.beautyos-booking__header p:last-child {
  font-size: 0.84rem;
  font-weight: 750;
  margin: 0;
}

.beautyos-booking__progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.beautyos-booking__progress span {
  align-items: center;
  background: #f7f5f2;
  border-bottom: 4px solid transparent;
  border-right: 1px solid var(--beauty-border, #e8dff2);
  color: var(--beauty-muted, #756b7d);
  display: flex;
  font-size: 0.76rem;
  font-weight: 800;
  min-height: 58px;
  padding: 12px 18px;
}

.beautyos-booking__progress span:last-child {
  border-right: 0;
}

.beautyos-booking__progress span.is-active {
  background: linear-gradient(135deg, #f0dcff, #e4dcff);
  border-bottom-color: #0b090d;
  color: #0b090d;
}

.beautyos-booking__notice,
.beautyos-booking__form {
  margin-left: 42px;
  margin-right: 42px;
}

.beautyos-booking__notice {
  border-radius: 5px;
  margin-bottom: 0;
  margin-top: 26px;
  min-height: 0;
}

.beautyos-booking__notice:not(:empty) {
  background: var(--beauty-lavender, #f1ecff);
  border-left: 4px solid var(--beauty-primary, #7c3aed);
  padding: 13px 15px;
}

.beautyos-booking__notice[data-type="error"] {
  background: color-mix(in srgb, var(--beauty-error, #b4233c) 10%, white);
  border-left-color: var(--beauty-error, #b4233c);
  color: var(--beauty-error, #b4233c);
}

.beautyos-booking__notice[data-type="success"] {
  background: color-mix(in srgb, var(--beauty-success, #247a57) 10%, white);
  border-left-color: var(--beauty-success, #247a57);
  color: var(--beauty-success, #247a57);
}

.beautyos-booking__empty {
  background: linear-gradient(135deg, #f0dcff, #fcf8ff);
  border: 1px solid #e5d8ef;
  color: #21102f;
  display: grid;
  gap: 6px;
  margin: 16px 0 22px;
  padding: 18px;
}

.beautyos-booking__empty strong { font-size: 1rem; }
.beautyos-booking__empty span { color: #74647f; line-height: 1.5; }

.beautyos-booking__form {
  padding: 34px 0 42px;
}

.beautyos-booking fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.beautyos-booking legend {
  color: var(--portal-ink, #120f14);
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 1.65rem;
  font-weight: 700;
  margin-bottom: 22px;
}

.beautyos-booking label {
  display: grid;
  gap: 7px;
  margin-bottom: 17px;
}

.beautyos-booking label > span {
  color: var(--portal-ink, #120f14);
  font-size: 0.82rem;
  font-weight: 850;
}

.beautyos-booking input,
.beautyos-booking select,
.beautyos-booking textarea {
  appearance: none;
  background: var(--beauty-white, #fff);
  border: 1px solid color-mix(in srgb, var(--portal-ink, #120f14) 22%, white);
  border-radius: 5px;
  color: var(--portal-ink, #120f14);
  font: inherit;
  min-height: 52px;
  padding: 12px 14px;
  width: 100%;
}

.beautyos-booking select {
  background-image: linear-gradient(45deg, transparent 50%, var(--portal-ink, #120f14) 50%), linear-gradient(135deg, var(--portal-ink, #120f14) 50%, transparent 50%);
  background-position: calc(100% - 19px) 22px, calc(100% - 14px) 22px;
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;
  padding-right: 38px;
}

.beautyos-booking input:focus,
.beautyos-booking select:focus,
.beautyos-booking textarea:focus,
.beautyos-slot:focus,
.beautyos-button:focus {
  border-color: var(--beauty-primary, #7c3aed);
  outline: 3px solid color-mix(in srgb, var(--beauty-primary, #7c3aed) 28%, transparent);
  outline-offset: 2px;
}

.beautyos-booking__fields {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.beautyos-service-summary {
  background: #ddd6ff;
  border: 0;
  border-radius: 5px;
  margin: 10px 0 22px;
  padding: 18px;
}

.beautyos-service-summary:empty {
  display: none;
}

.beautyos-service-summary strong,
.beautyos-service-summary span {
  display: block;
}

.beautyos-service-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 16px 0 22px;
}

.beautyos-service-card {
  background: #fff;
  border: 1px solid #e8dff2;
  border-radius: 8px;
  min-width: 0;
  overflow: hidden;
}

.beautyos-service-card.is-selected {
  border-color: var(--beauty-primary, #7c3aed);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--beauty-primary, #7c3aed) 17%, transparent);
}

.beautyos-service-card__button {
  background: transparent;
  border: 0;
  color: #120f14;
  cursor: pointer;
  display: grid;
  gap: 9px;
  padding: 18px;
  text-align: left;
  width: 100%;
}

.beautyos-service-card__button strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.65rem;
  line-height: 0.95;
}

.beautyos-service-card__button p {
  color: #746b7d;
  font-size: 0.8rem;
  line-height: 1.45;
  margin: 0;
}

.beautyos-service-card__button span {
  color: #7c3aed;
  font-size: 0.78rem;
  font-weight: 850;
}

.beautyos-native-select {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.beautyos-booking__success-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.beautyos-button--whatsapp {
  background: #dff7e9;
  border-color: #247a57;
  color: #145738;
}

@media (max-width: 720px) {
  .beautyos-booking__header,
  .beautyos-booking__notice,
  .beautyos-booking__form {
    margin-left: 0;
    margin-right: 0;
  }

  .beautyos-booking__header {
    padding: 28px 20px 24px;
  }

  .beautyos-booking h2 {
    font-size: 2.45rem;
  }

  .beautyos-booking__progress span {
    font-size: 0.67rem;
    justify-content: center;
    min-height: 48px;
    padding: 9px 5px;
    text-align: center;
  }

  .beautyos-booking__form {
    padding: 26px 20px 30px;
  }

  .beautyos-service-grid {
    grid-template-columns: 1fr;
  }

  .beautyos-booking__fields {
    grid-template-columns: 1fr;
  }

  .beautyos-button {
    min-height: 48px;
    width: 100%;
  }

  .beautyos-booking__actions,
  .beautyos-booking__success-links {
    display: grid;
    grid-template-columns: 1fr;
  }
}

.beautyos-service-summary span {
  font-size: 0.84rem;
  font-weight: 700;
  margin-top: 5px;
}

.beautyos-slot-grid {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
  margin: 20px 0;
}

.beautyos-slot {
  background: var(--beauty-white, #fff);
  border: 1px solid color-mix(in srgb, var(--portal-ink, #120f14) 24%, white);
  border-radius: 5px;
  color: var(--portal-ink, #120f14);
  cursor: pointer;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 800;
  min-height: 46px;
  padding: 10px 12px;
}

.beautyos-slot:hover,
.beautyos-slot.is-selected {
  background: var(--beauty-primary, #7c3aed);
  border-color: var(--beauty-primary, #7c3aed);
  color: var(--beauty-white, #fff);
}

.beautyos-check {
  align-items: start;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: auto 1fr;
}

.beautyos-check input {
  appearance: auto;
  margin-top: 4px;
  min-height: auto;
  width: auto;
}

.beautyos-button {
  align-items: center;
  background: linear-gradient(135deg, #f0dcff, #ffffff);
  border: 1px solid rgba(10, 6, 16, 0.72);
  border-radius: 999px;
  color: #0b090d;
  cursor: pointer;
  display: inline-flex;
  font-weight: 900;
  justify-content: center;
  min-height: 50px;
  padding: 12px 20px;
  text-decoration: none;
}

.beautyos-button:hover {
  filter: brightness(0.94);
}

.beautyos-button--ghost {
  background: var(--beauty-white, #fff);
  border-color: color-mix(in srgb, var(--portal-ink, #120f14) 30%, white);
  color: var(--portal-ink, #120f14);
}

.beautyos-booking__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.beautyos-booking__success {
  background: linear-gradient(135deg, #e4dcff, #f0dcff);
  border: 0;
  border-radius: 5px;
  padding: 28px;
}

.beautyos-booking__success h3 {
  color: var(--portal-ink, #120f14);
}

.beautyos-honeypot {
  left: -100vw;
  position: absolute;
}

.beautyos-operator {
  background:
    linear-gradient(135deg, #0a0610 0%, #241034 46%, #4f1d7c 100%);
  color: #fff;
  min-height: calc(100svh - var(--header-height, 82px));
  padding: 34px 0 92px;
}

.beautyos-operator__shell {
  margin: 0 auto;
  max-width: 1180px;
  padding: 0 24px;
  width: 100%;
}

.beautyos-operator__hero {
  align-items: end;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-bottom: 20px;
}

.beautyos-operator__kicker {
  color: #f0dcff;
  font-size: 0.72rem;
  font-weight: 900;
  margin: 0 0 10px;
  text-transform: uppercase;
}

.beautyos-operator h1,
.beautyos-operator-card h2 {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  letter-spacing: 0;
}

.beautyos-operator h1 {
  font-size: 4.8rem;
  line-height: 0.9;
  margin: 0;
}

.beautyos-operator__hero p:last-child {
  color: rgba(255, 255, 255, 0.76);
  font-weight: 700;
  margin: 14px 0 0;
}

.beautyos-operator__daynav,
.beautyos-operator__quick {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.beautyos-operator__daynav a,
.beautyos-operator__quick a,
.beautyos-operator__button {
  align-items: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 900;
  justify-content: center;
  min-height: 44px;
  padding: 10px 15px;
  text-decoration: none;
}

.beautyos-operator__button {
  background: #f0dcff;
  border-color: #f0dcff;
  color: #0a0610;
  cursor: pointer;
}

.beautyos-operator__notice {
  background: #f0dcff;
  color: #0a0610;
  font-weight: 850;
  margin: 16px 0;
  padding: 14px 16px;
}

.beautyos-operator__stats {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 22px 0;
}

.beautyos-operator__stats div {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  display: grid;
  gap: 18px;
  min-height: 120px;
  padding: 18px;
}

.beautyos-operator__stats span,
.beautyos-operator-card__top span,
.beautyos-operator-card__form span {
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.beautyos-operator__stats strong {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 2.55rem;
  line-height: 0.9;
}

.beautyos-operator__workspace-nav {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 18px 0 30px;
}

.beautyos-operator__workspace-nav a {
  border: 1px solid rgba(255, 255, 255, .24);
  color: #fff;
  display: grid;
  gap: 6px;
  min-height: 68px;
  padding: 15px 17px;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease;
}

.beautyos-operator__workspace-nav a:hover,
.beautyos-operator__workspace-nav a.is-current {
  background: #f0dcff;
  border-color: #f0dcff;
  color: #21102f;
}

.beautyos-operator__workspace-nav strong { font-size: .9rem; }
.beautyos-operator__workspace-nav span { color: rgba(255, 255, 255, .68); font-size: .76rem; }
.beautyos-operator__workspace-nav a:hover span,
.beautyos-operator__workspace-nav a.is-current span { color: #74647f; }

.beautyos-operator__section-label {
  align-items: end;
  border-top: 1px solid rgba(255, 255, 255, .22);
  display: grid;
  gap: 18px;
  grid-template-columns: 58px minmax(0, 1fr);
  margin: 36px 0 18px;
  padding-top: 22px;
}

.beautyos-operator__section-label > span {
  color: #f0dcff;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 2.8rem;
  line-height: 1;
}

.beautyos-operator__section-label h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2rem, 4vw, 3.3rem);
  line-height: .92;
  margin: 0;
}

.beautyos-operator__section-label p:last-child {
  color: rgba(255, 255, 255, .7);
  margin: 8px 0 0;
}

.beautyos-operator__section-label--secondary { margin-top: 48px; }

.beautyos-operator__gifts {
  background: rgba(255, 255, 255, .94);
  color: #0a0610;
  margin: 20px 0;
  padding: 22px;
}
.beautyos-operator__gifts .beautyos-operator__kicker { color: #5b20ad; }
.beautyos-operator__gifts .beautyos-operator__calendar-heading p:last-child { color: #74647f; }
.beautyos-operator__gifts h2,
.beautyos-operator__gifts h3 { color: #21102f; }
.beautyos-operator__gift-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.beautyos-operator__gift-grid .beautyos-operator__availability-form { margin: 0; }
.beautyos-operator__gift-list { border-top: 1px solid #e5d8ef; display: grid; gap: 8px; margin-top: 20px; padding-top: 18px; }
.beautyos-operator__gift-list div { align-items: center; background: #f7efff; display: flex; gap: 14px; justify-content: space-between; padding: 11px 13px; }
.beautyos-operator__gift-list span { color: #74647f; font-size: .8rem; }

.beautyos-operator__gift-success {
  align-items: center;
  background: linear-gradient(135deg, #35105e, #7c3cff);
  color: #fff;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin: 20px 0;
  padding: 18px 20px;
}

.beautyos-operator__gift-success .beautyos-operator__kicker { margin-bottom: 5px; }
.beautyos-operator__gift-success strong { display: block; font-size: clamp(1.8rem, 4vw, 2.7rem); letter-spacing: .08em; }
.beautyos-operator__gift-success p:last-child { color: rgba(255, 255, 255, .78); margin: 7px 0 0; }
.beautyos-operator__gift-success .beautyos-operator__button { flex: 0 0 auto; }

.beautyos-operator__gift-panel {
  background: #fff;
  border: 1px solid #e5d8ef;
  padding: 20px;
}

.beautyos-operator__gift-panel-head {
  align-items: flex-start;
  display: grid;
  gap: 14px;
  grid-template-columns: 38px minmax(0, 1fr);
}

.beautyos-operator__gift-panel-head > span {
  color: #7c3cff;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 2rem;
  line-height: 1;
}

.beautyos-operator__gift-panel-head h3 { font-size: 1.8rem; margin: 0; }
.beautyos-operator__gift-panel-head p:last-child { color: #74647f; line-height: 1.45; margin: 7px 0 0; }
.beautyos-operator__gift-form { margin-top: 20px !important; }
.beautyos-operator__gift-form .beautyos-operator__button { width: 100%; }
.beautyos-operator__gift-help { color: #74647f; font-size: .82rem; grid-column: 1 / -1; line-height: 1.45; margin: 0; }

.beautyos-operator__filters {
  background: rgba(255, 255, 255, 0.92);
  color: #0a0610;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 14px;
  padding: 16px;
}

.beautyos-operator__filters label,
.beautyos-operator-card__form label {
  display: grid;
  gap: 7px;
}

.beautyos-operator__filters input,
.beautyos-operator__filters select,
.beautyos-operator-card__form select,
.beautyos-operator-card__form textarea {
  appearance: none;
  background: #fff;
  border: 1px solid rgba(10, 6, 16, 0.2);
  border-radius: 5px;
  color: #0a0610;
  min-height: 46px;
  padding: 10px 12px;
  width: 100%;
}

.beautyos-operator__quick {
  margin: 18px 0 24px;
}

.beautyos-operator-card__reschedule {
  background: #f7efff;
  border: 1px solid #e5d8ef;
  display: grid;
  gap: 9px;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  padding: 12px;
}

.beautyos-operator-card__reschedule strong {
  color: #5b20ad;
  font-size: .76rem;
  grid-column: 1 / -1;
  text-transform: uppercase;
}

.beautyos-operator-card__reschedule label { color: #74647f; font-size: .72rem; }

.beautyos-operator-card__reschedule input {
  background: #fff;
  border: 1px solid rgba(10, 6, 16, .2);
  border-radius: 5px;
  box-sizing: border-box;
  color: #0a0610;
  display: block;
  font: inherit;
  margin-top: 6px;
  min-height: 42px;
  padding: 8px 10px;
  width: 100%;
}

.beautyos-operator__timeline {
  display: grid;
  gap: 14px;
}

.beautyos-operator-card {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.42);
  color: #0a0610;
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  overflow: hidden;
}

.beautyos-operator-card__time {
  background:
    linear-gradient(180deg, var(--appointment-color, #7c3cff), #190824);
  color: #fff;
  display: grid;
  gap: 7px;
  justify-items: center;
  padding: 24px 12px;
}

.beautyos-operator-card__time time {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 2.25rem;
  line-height: 0.95;
}

.beautyos-operator-card__body {
  padding: 20px;
}

.beautyos-operator-card__top,
.beautyos-operator-card__links {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: space-between;
}

.beautyos-operator-card__top span {
  background: #f0dcff;
  border-radius: 999px;
  color: #35105e;
  padding: 7px 10px;
}

.beautyos-operator-card h2 {
  font-size: 2.25rem;
  line-height: 0.95;
  margin: 24px 0 8px;
}

.beautyos-operator-card p {
  color: #74647f;
  margin: 0;
}

.beautyos-operator-card__links {
  justify-content: flex-start;
  margin: 16px 0;
}

.beautyos-operator-card__links a {
  background: #0a0610;
  border-radius: 999px;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 900;
  padding: 9px 12px;
  text-decoration: none;
}

.beautyos-operator-card__note {
  background: #f7efff;
  color: #21102f !important;
  margin: 12px 0 0 !important;
  padding: 12px;
}

.beautyos-operator-card__form {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 0.55fr) minmax(220px, 1fr) auto;
  margin-top: 18px;
}

.beautyos-operator__assistant {
  background:
    radial-gradient(circle at 92% 10%, rgba(240, 182, 219, 0.32), transparent 34%),
    linear-gradient(135deg, rgba(124, 60, 255, 0.78), rgba(53, 16, 94, 0.88));
  border: 1px solid rgba(255, 255, 255, 0.24);
  margin: 20px 0;
  padding: 22px;
}

.beautyos-operator__assistant-copy h2 {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 2.15rem;
  line-height: 0.95;
  margin: 0;
}

.beautyos-operator__assistant-copy p:last-child {
  color: rgba(255, 255, 255, 0.78);
  margin: 8px 0 16px;
}

.beautyos-operator__assistant-form {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.beautyos-operator__assistant-form input {
  background: rgba(255, 255, 255, 0.96);
  border: 0;
  border-radius: 4px;
  color: #0a0610;
  min-height: 46px;
  padding: 10px 13px;
  width: 100%;
}

.beautyos-operator__assistant-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.beautyos-operator__assistant-suggestions button {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 8px 11px;
}

.beautyos-operator__assistant-answer {
  background: #fcf8ff;
  color: #21102f;
  margin-top: 16px;
  padding: 15px 17px;
}

.beautyos-operator__assistant-answer strong {
  color: #7c3cff;
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.beautyos-operator__assistant-answer p {
  color: #21102f;
  line-height: 1.55;
  margin: 8px 0 0;
  white-space: pre-line;
}

.beautyos-operator__loyalty {
  background: linear-gradient(135deg, #2d0b50, #6f35d9 58%, #c783e5);
  border: 1px solid rgba(255, 255, 255, 0.24);
  color: #fff;
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 0.9fr) minmax(300px, 1.1fr);
  margin: 20px 0;
  padding: 22px;
}

.beautyos-operator__loyalty .beautyos-operator__assistant-copy p:last-child {
  margin-bottom: 0;
}

.beautyos-operator__scanner {
  background: rgba(255, 255, 255, 0.1);
  padding: 14px;
}

.beautyos-operator__qr-reader {
  background: rgba(10, 6, 16, 0.48);
  min-height: 0;
  overflow: hidden;
}

.beautyos-operator__qr-reader video {
  width: 100% !important;
}

.beautyos-operator__scanner-status {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.78rem;
  line-height: 1.4;
  margin: 10px 0 0;
}

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

.beautyos-operator__loyalty-form label {
  display: grid;
  gap: 6px;
}

.beautyos-operator__loyalty-form label span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.beautyos-operator__loyalty-form input {
  background: #fff;
  border: 0;
  border-radius: 4px;
  color: #21102f;
  min-height: 44px;
  padding: 9px 11px;
  width: 100%;
}

.beautyos-operator__loyalty-wide {
  grid-column: 1 / -1;
}

.beautyos-operator__customer-card {
  align-items: center;
  background: #f7efff;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin: -10px 0 22px;
  padding: 12px 14px;
}

.beautyos-operator__customer-card span {
  color: #74647f;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.beautyos-operator__customer-card strong {
  color: #5b20ad;
  letter-spacing: 0.08em;
}

.beautyos-operator__loyalty-history {
  border-top: 1px solid #eadff1;
  display: grid;
  gap: 6px;
  margin-top: 18px;
  padding-top: 16px;
}

.beautyos-operator__loyalty-history strong {
  color: #5b20ad;
  font-size: 0.75rem;
  text-transform: uppercase;
}

.beautyos-operator__loyalty-history span {
  color: #74647f;
  font-size: 0.8rem;
}

.beautyos-operator__blocks {
  align-items: center;
  background: rgba(255, 240, 194, 0.96);
  color: #3a2b00;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  justify-content: space-between;
  margin: 12px 0 20px;
  padding: 14px 16px;
}

.beautyos-operator__blocks strong {
  display: block;
}

.beautyos-operator__blocks p {
  color: rgba(58, 43, 0, 0.7);
  font-size: 0.8rem;
  margin: 4px 0 0;
}

.beautyos-operator__blocks > span {
  background: rgba(255, 255, 255, 0.7);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  padding: 8px 11px;
}

.beautyos-operator__calendar,
.beautyos-operator__availability {
  background: #fcf8ff;
  border: 1px solid #e5d8ef;
  margin: 20px 0;
  padding: 20px;
}

.beautyos-operator__calendar-heading {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.beautyos-operator__calendar-heading h2 {
  color: #21102f;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 2.15rem;
  line-height: 0.95;
  margin: 0;
}

.beautyos-operator__calendar-heading p:last-child {
  color: #74647f;
  margin: 7px 0 0;
}

.beautyos-operator__calendar-nav {
  display: flex;
  gap: 8px;
}

.beautyos-operator__calendar-nav a {
  align-items: center;
  background: #21102f;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: 1.3rem;
  height: 42px;
  justify-content: center;
  text-decoration: none;
  width: 42px;
}

.beautyos-operator__calendar-weekdays,
.beautyos-operator__calendar-grid {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.beautyos-operator__calendar-weekdays {
  color: #74647f;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  margin: 20px 0 7px;
  text-transform: uppercase;
}

.beautyos-operator__calendar-weekdays span {
  padding: 0 8px;
}

.beautyos-operator__calendar-day {
  background: #fff;
  border: 1px solid #eadff1;
  color: #21102f;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-height: 78px;
  padding: 10px;
  text-decoration: none;
}

.beautyos-operator__calendar-day:hover,
.beautyos-operator__calendar-day.is-selected {
  border-color: #7c3cff;
  box-shadow: inset 0 0 0 1px #7c3cff;
}

.beautyos-operator__calendar-day.is-today strong {
  align-items: center;
  background: #7c3cff;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  height: 25px;
  justify-content: center;
  width: 25px;
}

.beautyos-operator__calendar-day.is-empty {
  background: transparent;
  border-color: transparent;
}

.beautyos-operator__calendar-day strong {
  font-size: 1rem;
}

.beautyos-operator__calendar-day small {
  color: #74647f;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.15;
}

.beautyos-operator__calendar-day small.is-blocked {
  color: #9a3156;
}

.beautyos-operator__install-wrap {
  grid-column: 2;
  justify-self: end;
  margin-top: -10px;
  text-align: right;
}

.beautyos-operator__install-wrap p {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.72rem;
  margin: 8px 0 0;
}

.beautyos-operator__install {
  background: #f0dcff;
  border: 1px solid #f0dcff;
  border-radius: 999px;
  color: #0a0610;
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 900;
  min-height: 40px;
  padding: 9px 14px;
}

.beautyos-operator__calendar-search {
  align-items: end;
  background: #f3eafa;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 18px;
  padding: 12px;
}

.beautyos-operator__calendar-search label {
  color: #74647f;
  display: grid;
  gap: 6px;
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.beautyos-operator__calendar-search input {
  background: #fff;
  border: 1px solid #d9c8e5;
  border-radius: 4px;
  color: #21102f;
  min-height: 44px;
  padding: 9px 11px;
}

.beautyos-operator__customer {
  background: #fff;
  color: #21102f;
  margin: 24px 0;
  padding: 24px;
}

.beautyos-operator__customer-index {
  background: #fcf8ff;
  color: #21102f;
  margin: 20px 0;
  padding: 24px;
}

.beautyos-operator__customer-index .beautyos-operator__kicker,
.beautyos-operator__customer-index h2 { color: #21102f; }

.beautyos-operator__customer-index .beautyos-operator__calendar-heading p:last-child { color: #74647f; }

.beautyos-operator__customer-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 20px;
}

.beautyos-operator__customer-list a {
  background: #fff;
  border: 1px solid #e5d8ef;
  color: #21102f;
  display: grid;
  gap: 5px;
  padding: 15px;
  text-decoration: none;
  transition: border-color 160ms ease, transform 160ms ease;
}

.beautyos-operator__customer-list a:hover { border-color: #7c3cff; transform: translateY(-2px); }
.beautyos-operator__customer-list span { color: #74647f; font-size: .8rem; }
.beautyos-operator__customer-list > p { color: #74647f; grid-column: 1 / -1; }

.beautyos-operator__customer-head {
  align-items: start;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.beautyos-operator__customer h2 {
  color: #21102f;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 3rem;
  line-height: 0.9;
  margin: 0;
}

.beautyos-operator__customer-head p:not(.beautyos-operator__kicker),
.beautyos-operator__customer-history > p {
  color: #74647f;
  margin: 10px 0 0;
}

.beautyos-operator__customer-contact {
  display: grid;
  gap: 7px;
  justify-items: end;
}

.beautyos-operator__customer-contact a {
  color: #5b20ad;
  font-size: 0.84rem;
  font-weight: 850;
}

.beautyos-operator__customer-stats {
  border-bottom: 1px solid #eadff1;
  border-top: 1px solid #eadff1;
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 22px 0;
  padding: 14px 0;
}

.beautyos-operator__customer-stats div {
  display: grid;
  gap: 6px;
}

.beautyos-operator__customer-stats span,
.beautyos-operator__customer-form label > span {
  color: #74647f;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.beautyos-operator__customer-stats strong {
  color: #21102f;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 1.65rem;
}

.beautyos-operator__customer-form {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.beautyos-operator__customer-form label {
  display: grid;
  gap: 7px;
}

.beautyos-operator__customer-form input,
.beautyos-operator__customer-form textarea {
  background: #fcf8ff;
  border: 1px solid #d9c8e5;
  border-radius: 4px;
  color: #21102f;
  font: inherit;
  min-height: 44px;
  padding: 9px 11px;
  width: 100%;
}

.beautyos-operator__customer-form textarea {
  min-height: 100px;
}

.beautyos-operator__customer-form .beautyos-operator__button {
  background: #21102f;
  border-color: #21102f;
  color: #fff;
  grid-column: 1 / -1;
  justify-self: start;
}

.beautyos-operator__customer-history {
  border-top: 1px solid #eadff1;
  margin-top: 24px;
  padding-top: 20px;
}

.beautyos-operator__history-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.beautyos-operator__history-list div {
  align-items: center;
  background: #f7efff;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(160px, 0.8fr) minmax(200px, 1fr) auto;
  padding: 12px;
}

.beautyos-operator__history-list span {
  color: #74647f;
  font-size: 0.8rem;
}

.beautyos-operator__history-list em {
  color: #5b20ad;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 900;
}

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

.beautyos-operator__availability-form label,
.beautyos-operator__availability-owner {
  display: grid;
  gap: 6px;
}

.beautyos-operator__availability-form label > span,
.beautyos-operator__availability-owner {
  color: #74647f;
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.beautyos-operator__availability-form input:not([type="checkbox"]),
.beautyos-operator__availability-form select,
.beautyos-operator__availability-form textarea {
  background: #fff;
  border: 1px solid #d9c8e5;
  border-radius: 4px;
  color: #21102f;
  min-height: 44px;
  padding: 9px 11px;
  width: 100%;
}

.beautyos-operator__availability-form textarea {
  min-height: 70px;
}

.beautyos-operator__availability-check {
  align-items: center;
  display: flex !important;
  gap: 8px !important;
  grid-column: 1 / -1;
}

.beautyos-operator__availability-check span {
  color: #21102f !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.beautyos-operator__availability-wide,
.beautyos-operator__availability-form > .beautyos-operator__button {
  grid-column: 1 / -1;
}

.beautyos-operator__availability-owner {
  align-content: center;
  background: #f3eafa;
  margin: 0;
  padding: 10px 12px;
}

.beautyos-operator__block-item {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.beautyos-operator__block-remove {
  background: transparent;
  border: 1px solid rgba(58, 43, 0, 0.35);
  border-radius: 999px;
  color: #3a2b00;
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 900;
  padding: 7px 10px;
  white-space: nowrap;
}

.beautyos-operator-card--empty {
  display: block;
  padding: 30px;
}

.beautyos-operator--locked {
  align-items: center;
  display: flex;
}

.beautyos-operator--locked h1 {
  max-width: 760px;
}

@media (max-width: 720px) {
  .beautyos-booking__header {
    padding: 28px 20px 25px;
  }

  .beautyos-booking h2 {
    font-size: 2.45rem;
  }

  .beautyos-booking__progress {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beautyos-booking__progress span:nth-child(2) {
    border-right: 0;
  }

  .beautyos-booking__notice,
  .beautyos-booking__form {
    margin-left: 20px;
    margin-right: 20px;
  }

  .beautyos-booking__form {
    padding-bottom: 28px;
  }

  .beautyos-booking__fields {
    grid-template-columns: 1fr;
  }

  .beautyos-booking__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .beautyos-button {
    width: 100%;
  }

  .beautyos-operator {
    padding-top: 22px;
  }

  .beautyos-operator__shell {
    padding: 0 14px;
  }

  .beautyos-operator__hero,
  .beautyos-operator__filters,
  .beautyos-operator-card,
  .beautyos-operator-card__form {
    grid-template-columns: 1fr;
  }

  .beautyos-operator h1 {
    font-size: 3.25rem;
  }

  .beautyos-operator__daynav,
  .beautyos-operator__quick {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beautyos-operator__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beautyos-operator__workspace-nav {
    grid-template-columns: 1fr;
    margin-bottom: 22px;
  }

  .beautyos-operator__stats div {
    min-height: 104px;
    padding: 14px;
  }

  .beautyos-operator-card__time {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: 16px;
  }

  .beautyos-operator-card h2 {
    font-size: 2rem;
  }

  .beautyos-operator-card__form .beautyos-operator__button {
    width: 100%;
  }

  .beautyos-operator-card__reschedule,
  .beautyos-operator__customer-list {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__customer-index {
    padding: 18px;
  }

  .beautyos-operator__assistant-form {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__loyalty {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .beautyos-operator__loyalty-form {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__gift-grid {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__gift-success {
    align-items: stretch;
    flex-direction: column;
  }

  .beautyos-operator__gift-success .beautyos-operator__button {
    width: 100%;
  }

  .beautyos-operator__loyalty-wide {
    grid-column: auto;
  }

  .beautyos-operator__assistant-form .beautyos-operator__button {
    width: 100%;
  }

  .beautyos-operator__calendar,
  .beautyos-operator__availability {
    padding: 14px;
  }

  .beautyos-operator__calendar-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .beautyos-operator__calendar-weekdays,
  .beautyos-operator__calendar-grid {
    gap: 4px;
  }

  .beautyos-operator__calendar-weekdays span {
    padding: 0 4px;
  }

  .beautyos-operator__calendar-day {
    min-height: 62px;
    padding: 6px;
  }

  .beautyos-operator__calendar-day small {
    font-size: 0.58rem;
  }

  .beautyos-operator__availability-form {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__availability-check,
  .beautyos-operator__availability-wide,
  .beautyos-operator__availability-form > .beautyos-operator__button {
    grid-column: auto;
  }

  .beautyos-operator__block-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .beautyos-operator__install-wrap {
    grid-column: auto;
    justify-self: start;
    margin-top: 0;
    text-align: left;
  }

  .beautyos-operator__calendar-search,
  .beautyos-operator__customer-form {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__calendar-search .beautyos-operator__button,
  .beautyos-operator__customer-form .beautyos-operator__button {
    width: 100%;
  }

  .beautyos-operator__customer {
    padding: 18px;
  }

  .beautyos-operator__customer-head {
    display: grid;
  }

  .beautyos-operator__customer h2 {
    font-size: 2.5rem;
  }

  .beautyos-operator__customer-contact {
    justify-items: start;
  }

  .beautyos-operator__customer-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beautyos-operator__history-list div {
    align-items: start;
    grid-template-columns: 1fr;
  }
}
.beautyos-shop { background: var(--beauty-cream, #fcf8ff); padding: 84px 5vw 110px; }
.beautyos-shop__intro, .beautyos-shop__form { margin: 0 auto; max-width: 1180px; }
.beautyos-shop__intro { background: linear-gradient(135deg, #35105e, #7c3cff); color: #fff; padding: clamp(32px, 6vw, 82px); }
.beautyos-shop__intro h1, .beautyos-shop__checkout h2 { font-family: Georgia, serif; font-size: clamp(2.6rem, 6vw, 5.8rem); line-height: .95; margin: 12px 0 20px; }
.beautyos-shop__intro p:last-child { font-size: 1.15rem; max-width: 650px; }
.beautyos-shop__kicker { font-size: 12px; font-weight: 900; letter-spacing: .12em; margin: 0 0 10px; text-transform: uppercase; }
.beautyos-shop__notice { margin: 24px auto; max-width: 1180px; padding: 16px 20px; }
.beautyos-shop__notice--success { background: #eaf8ef; color: #175c38; }
.beautyos-shop__notice--error { background: #fff0f2; color: #8d1d31; }
.beautyos-shop__grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 48px 0; }
.beautyos-product-card { background: #fff; border: 1px solid #e5d8ef; }
.beautyos-product-card__media { aspect-ratio: 1 / .86; background: linear-gradient(145deg, #35105e, #ba9ced); display: grid; place-items: center; overflow: hidden; }
.beautyos-product-card__media img { height: 100%; object-fit: cover; width: 100%; }
.beautyos-product-card__media span { color: #fff; font: 700 6rem Georgia, serif; }
.beautyos-product-card__body { padding: 24px; }
.beautyos-product-card h2 { font: 700 2rem Georgia, serif; margin: 12px 0; }
.beautyos-product-card__meta { align-items: center; display: flex; justify-content: space-between; margin-top: 22px; }
.beautyos-product-card__meta strong { color: #35105e; font-size: 1.25rem; }
.beautyos-product-card__meta label, .beautyos-shop__fields label { display: grid; gap: 7px; }
.beautyos-product-card__meta label span, .beautyos-shop__fields label span { font-size: 12px; font-weight: 800; }
.beautyos-product-card input, .beautyos-shop__fields input, .beautyos-shop__fields textarea { border: 1px solid #d8c5f3; border-radius: 3px; box-sizing: border-box; font: inherit; padding: 11px 12px; width: 100%; }
.beautyos-product-card input { max-width: 92px; }
.beautyos-shop__checkout { background: #f0dcff; display: grid; gap: 40px; grid-template-columns: .85fr 1.15fr; padding: clamp(28px, 5vw, 64px); }
.beautyos-shop__checkout p { line-height: 1.55; }
.beautyos-shop__total { display: block; color: #35105e; font-size: 1.2rem; margin-top: 28px; }
.beautyos-shop__fields { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.beautyos-shop__field-wide, .beautyos-shop__button { grid-column: 1 / -1; }
.beautyos-shop__button { background: #35105e; border: 0; color: #fff; cursor: pointer; font: 800 1rem inherit; padding: 16px 20px; }
.beautyos-shop__empty { background: #f0dcff; margin: 48px auto 0; max-width: 1180px; padding: 50px; }
@media (max-width: 820px) { .beautyos-shop { padding: 36px 16px 70px; } .beautyos-shop__grid, .beautyos-shop__checkout { grid-template-columns: 1fr; } .beautyos-shop__fields { grid-template-columns: 1fr; } .beautyos-shop__field-wide, .beautyos-shop__button { grid-column: auto; } }

.beautyos-operator__shop-grid { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.beautyos-operator__shop-card { background: rgba(255, 255, 255, .72); border: 1px solid rgba(53, 16, 94, .14); padding: 20px; }
.beautyos-operator__shop-card h3 { margin-top: 0; }
.beautyos-operator__shop-card .beautyos-inline-fields { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.beautyos-operator__shop-card input, .beautyos-operator__shop-card textarea, .beautyos-operator__shop-card select { box-sizing: border-box; max-width: 100%; width: 100%; }
.beautyos-operator__shop-order { border-top: 1px solid rgba(53, 16, 94, .14); margin-top: 14px; padding-top: 14px; }
.beautyos-operator .beautyos-media-field { align-items: flex-start; background: rgba(255,255,255,.58); border: 1px dashed rgba(53,16,94,.2); display: flex; flex-wrap: wrap; gap: 10px; padding: 12px; }
.beautyos-operator .beautyos-media-field > label { flex: 1 1 100%; }
.beautyos-operator .beautyos-media-preview { flex: 0 0 88px; min-height: 66px; }
.beautyos-operator .beautyos-media-preview img { border-radius: 4px; display: block; height: 66px; object-fit: cover; width: 88px; }
.beautyos-operator .beautyos-media-field .button-link-delete { align-self: center; background: transparent; border: 0; color: #8c214b; cursor: pointer; font: inherit; font-weight: 800; padding: 8px; }
@media (max-width: 820px) { .beautyos-operator__shop-grid, .beautyos-operator__shop-card .beautyos-inline-fields { grid-template-columns: 1fr; } }

/* Keep operator content readable when names, notes or codes are long. */
.beautyos-operator__shell,
.beautyos-operator__shell > *,
.beautyos-operator__shell > * > * { min-width: 0; }
.beautyos-operator h1,
.beautyos-operator h2,
.beautyos-operator h3,
.beautyos-operator p,
.beautyos-operator a,
.beautyos-operator span,
.beautyos-operator strong { overflow-wrap: anywhere; }
.beautyos-operator__gift-list div,
.beautyos-operator__gift-success,
.beautyos-operator__customer-card { min-width: 0; }

/* Booking: empty slot messages must never collapse into one tiny grid column. */
.beautyos-slot-grid .beautyos-booking__empty {
  grid-column: 1 / -1;
  max-width: 720px;
  min-width: 0;
  width: 100%;
}

.beautyos-slot-grid .beautyos-booking__empty strong,
.beautyos-slot-grid .beautyos-booking__empty span {
  max-width: 56ch;
}

/* Shop refresh: complete pickup cart, clearer catalog and readable checkout. */
.beautyos-shop {
  background: #fbf7f2;
  color: #151119;
  padding: clamp(38px, 6vw, 82px) max(18px, 5vw) clamp(70px, 8vw, 118px);
}

.beautyos-shop__intro,
.beautyos-shop__form,
.beautyos-shop__notice,
.beautyos-shop__empty {
  margin-left: auto;
  margin-right: auto;
  max-width: 1280px;
}

.beautyos-shop__intro {
  align-items: end;
  background: #151119;
  border: 1px solid rgba(21, 17, 25, 0.16);
  border-radius: 8px;
  color: #fff;
  display: grid;
  gap: clamp(24px, 4vw, 54px);
  grid-template-columns: minmax(0, 1fr) minmax(230px, 0.32fr);
  padding: clamp(30px, 6vw, 76px);
}

.beautyos-shop__intro h1 {
  color: #fff;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 7vw, 6.6rem);
  line-height: 0.88;
  margin: 12px 0 20px;
  max-width: 880px;
}

.beautyos-shop__intro p:last-child {
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  line-height: 1.55;
  margin: 0;
  max-width: 680px;
}

.beautyos-shop__intro-panel {
  background: #f3f8ef;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  color: #151119;
  display: grid;
  gap: 8px;
  min-height: 190px;
  padding: 22px;
}

.beautyos-shop__intro-panel span,
.beautyos-shop__intro-panel small,
.beautyos-shop__kicker {
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.beautyos-shop__intro-panel strong {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 5rem;
  line-height: 0.85;
  margin-top: auto;
}

.beautyos-shop__intro-panel small {
  color: #5d6657;
  line-height: 1.35;
}

.beautyos-shop__kicker {
  margin: 0 0 10px;
}

.beautyos-shop__notice {
  border-radius: 8px;
  font-weight: 850;
  margin-bottom: 24px;
  margin-top: 24px;
  padding: 16px 18px;
}

.beautyos-shop__notice--success { background: #e8f6ec; color: #145738; }
.beautyos-shop__notice--error { background: #fff0f2; color: #8d1d31; }

.beautyos-shop__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 26px 0 18px;
}

.beautyos-shop__filters button,
.beautyos-shop__cart-actions button,
.beautyos-shop__cart-actions a {
  align-items: center;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  font-weight: 900;
  justify-content: center;
  min-height: 42px;
  padding: 9px 14px;
  text-decoration: none;
}

.beautyos-shop__filters button {
  background: #fff;
  border: 1px solid #d8ccd6;
  color: #151119;
}

.beautyos-shop__filters button.is-active {
  background: #151119;
  border-color: #151119;
  color: #fff;
}

.beautyos-shop__layout {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
  margin-top: 28px;
}

.beautyos-shop__grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0;
}

.beautyos-product-card {
  background: #fff;
  border: 1px solid #e2d8df;
  border-radius: 8px;
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  overflow: hidden;
}

.beautyos-product-card[hidden] {
  display: none;
}

.beautyos-product-card__media {
  aspect-ratio: 4 / 3;
  background: #21102f;
  display: grid;
  overflow: hidden;
  place-items: center;
}

.beautyos-product-card__media img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.beautyos-product-card__media span {
  color: #fff;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: clamp(4rem, 9vw, 7rem);
  font-weight: 700;
}

.beautyos-product-card__body {
  display: grid;
  gap: 14px;
  padding: 22px;
}

.beautyos-product-card__topline,
.beautyos-product-card__meta,
.beautyos-shop__cart-total {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.beautyos-product-card__topline span,
.beautyos-product-card__meta small {
  color: #6d6170;
  font-size: 0.74rem;
  font-weight: 850;
}

.beautyos-product-card h2 {
  color: #151119;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
  line-height: 0.98;
  margin: 0;
}

.beautyos-product-card__body > p {
  color: #5e5361;
  font-size: 0.92rem;
  line-height: 1.55;
  margin: 0;
}

.beautyos-product-card__meta {
  border-top: 1px solid #ece3ea;
  margin-top: auto;
  padding-top: 14px;
}

.beautyos-product-card__meta strong {
  color: #1f4e33;
  font-size: 1.08rem;
}

.beautyos-product-card__purchase {
  align-items: center;
  background: #f8f3f7;
  border: 1px solid #eadfe8;
  border-radius: 999px;
  display: grid;
  gap: 6px;
  grid-template-columns: 42px 42px minmax(106px, 1fr);
  min-height: 52px;
  padding: 5px;
}

.beautyos-product-card__purchase button,
.beautyos-product-card__purchase output {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-weight: 900;
  justify-content: center;
  min-height: 42px;
}

.beautyos-product-card__purchase button {
  background: #151119;
  border: 1px solid #151119;
  color: #fff;
  cursor: pointer;
  padding: 8px 12px;
}

.beautyos-product-card__purchase button:first-of-type {
  background: #fff;
  border-color: #d8ccd6;
  color: #151119;
}

.beautyos-product-card__purchase button:disabled {
  background: #e8e0e6;
  border-color: #e8e0e6;
  color: #817784;
  cursor: not-allowed;
  grid-column: 1 / -1;
}

.beautyos-product-card__purchase output {
  background: #fff;
  color: #151119;
}

.beautyos-shop__cart {
  background: #fff;
  border: 1px solid #ded4dc;
  border-radius: 8px;
  box-shadow: 0 22px 70px rgba(21, 17, 25, 0.1);
  color: #151119;
  display: grid;
  gap: 16px;
  padding: 20px;
  position: sticky;
  top: 18px;
}

.beautyos-shop__cart-head {
  align-items: start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.beautyos-shop__cart-head h2 {
  color: #151119;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 2.2rem;
  line-height: 0.95;
  margin: 0;
}

.beautyos-shop__cart-head > strong {
  background: #e8f6ec;
  border-radius: 999px;
  color: #145738;
  flex: 0 0 auto;
  font-size: 0.74rem;
  padding: 8px 10px;
}

.beautyos-shop__cart-items {
  border-bottom: 1px solid #ece3ea;
  border-top: 1px solid #ece3ea;
  display: grid;
  gap: 0;
  min-height: 72px;
  padding: 8px 0;
}

.beautyos-shop__cart-items > p,
.beautyos-shop__cart > p {
  color: #6d6170;
  font-size: 0.84rem;
  line-height: 1.45;
  margin: 0;
}

.beautyos-shop__cart-items article {
  display: grid;
  gap: 5px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 10px 0;
}

.beautyos-shop__cart-items strong,
.beautyos-shop__cart-items span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.beautyos-shop__cart-items span {
  color: #6d6170;
  font-size: 0.8rem;
}

.beautyos-shop__cart-items button {
  background: transparent;
  border: 0;
  color: #8d1d31;
  cursor: pointer;
  font-weight: 900;
  grid-row: span 2;
  padding: 4px 0 4px 10px;
}

.beautyos-shop__cart-total strong {
  color: #1f4e33;
  font-size: 1.4rem;
}

.beautyos-shop__cart-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}

.beautyos-shop__cart-actions button {
  background: #fff;
  border: 1px solid #d8ccd6;
  color: #151119;
}

.beautyos-shop__cart-actions a {
  background: #151119;
  border: 1px solid #151119;
  color: #fff;
}

.beautyos-shop__checkout {
  background: #fff;
  border: 1px solid #ded4dc;
  border-radius: 8px;
  display: grid;
  gap: clamp(24px, 4vw, 56px);
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  margin-top: 24px;
  padding: clamp(24px, 5vw, 56px);
}

.beautyos-shop__checkout h2 {
  color: #151119;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem, 5vw, 4.6rem);
  line-height: 0.92;
  margin: 10px 0 16px;
}

.beautyos-shop__checkout p {
  color: #5e5361;
  line-height: 1.55;
  margin: 0;
}

.beautyos-shop__checkout-total {
  color: #1f4e33;
  display: block;
  font-size: 1.15rem;
  margin-top: 22px;
}

.beautyos-shop__fields {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.beautyos-shop__fields label {
  display: grid;
  gap: 7px;
}

.beautyos-shop__fields label span {
  color: #5e5361;
  font-size: 0.74rem;
  font-weight: 900;
  text-transform: uppercase;
}

.beautyos-shop__fields input,
.beautyos-shop__fields textarea {
  background: #fff;
  border: 1px solid #d8ccd6;
  border-radius: 5px;
  box-sizing: border-box;
  color: #151119;
  font: inherit;
  min-height: 50px;
  padding: 12px 13px;
  width: 100%;
}

.beautyos-shop__field-wide,
.beautyos-shop__button {
  grid-column: 1 / -1;
}

.beautyos-shop__button {
  background: #151119;
  border: 1px solid #151119;
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  font-weight: 900;
  min-height: 52px;
  padding: 14px 20px;
}

.beautyos-shop__empty,
.beautyos-shop__no-results {
  background: #fff;
  border: 1px solid #ded4dc;
  border-radius: 8px;
  color: #151119;
  margin-top: 24px;
  padding: 32px;
}

/* Operator refresh: higher contrast, visible clients and detailed appointments. */
.beautyos-operator {
  background: #120f14;
  color: #fff;
}

.beautyos-operator__hero {
  align-items: start;
}

.beautyos-operator h1 {
  font-size: clamp(3rem, 7vw, 4.8rem);
}

.beautyos-operator__hero p:last-child,
.beautyos-operator__section-label p:last-child {
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.45;
}

.beautyos-operator__stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.beautyos-operator__stats div {
  background: #fff;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  color: #21102f;
}

.beautyos-operator__workspace-nav {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.beautyos-operator__workspace-nav a {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  line-height: 1.3;
}

.beautyos-operator__workspace-nav a:hover,
.beautyos-operator__workspace-nav a.is-current {
  background: #f3f8ef;
  border-color: #f3f8ef;
  color: #151119;
}

.beautyos-operator__calendar,
.beautyos-operator__availability,
.beautyos-operator__customer,
.beautyos-operator__customer-index,
.beautyos-operator__gifts,
.beautyos-operator__shop,
.beautyos-operator__day-clients {
  background: #fff;
  border: 1px solid #e5d8ef;
  border-radius: 8px;
  color: #21102f;
}

.beautyos-operator__shop,
.beautyos-operator__day-clients {
  margin: 20px 0;
  padding: 24px;
}

.beautyos-operator__calendar-heading h2,
.beautyos-operator__customer h2,
.beautyos-operator__customer-index h2,
.beautyos-operator__day-clients h2,
.beautyos-operator__shop h2 {
  color: #21102f;
}

.beautyos-operator__calendar-heading p:last-child,
.beautyos-operator__customer-index .beautyos-operator__calendar-heading p:last-child,
.beautyos-operator__day-clients .beautyos-operator__calendar-heading p:last-child {
  color: #5f5368;
  line-height: 1.5;
}

.beautyos-operator__day-client-list {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 18px;
}

.beautyos-operator__day-client-list article {
  align-items: center;
  background: #fcf8ff;
  border: 1px solid #eadff1;
  border-radius: 8px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  min-width: 0;
  padding: 14px;
}

.beautyos-operator__day-client-list strong,
.beautyos-operator__day-client-list span {
  display: block;
  overflow-wrap: anywhere;
}

.beautyos-operator__day-client-list span {
  color: #6f6377;
  font-size: 0.82rem;
  margin-top: 4px;
}

.beautyos-operator__day-client-list nav {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.beautyos-operator__day-client-list a {
  background: #21102f;
  border-radius: 999px;
  color: #fff;
  font-size: 0.76rem;
  font-weight: 900;
  padding: 8px 10px;
  text-decoration: none;
}

.beautyos-operator-card {
  background: #fff;
  border: 1px solid #e5d8ef;
  border-radius: 8px;
  grid-template-columns: 128px minmax(0, 1fr);
}

.beautyos-operator-card__body {
  min-width: 0;
  padding: 22px;
}

.beautyos-operator-card h2 {
  color: #21102f;
  font-size: clamp(1.9rem, 3vw, 2.55rem);
}

.beautyos-operator-card__details {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 18px 0 0;
}

.beautyos-operator-card__details div {
  background: #fcf8ff;
  border: 1px solid #eadff1;
  border-radius: 8px;
  min-width: 0;
  padding: 11px 12px;
}

.beautyos-operator-card__details dt {
  color: #6f6377;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.beautyos-operator-card__details dd {
  color: #21102f;
  font-size: 0.9rem;
  font-weight: 800;
  margin: 5px 0 0;
  overflow-wrap: anywhere;
}

.beautyos-operator-card__form {
  align-items: end;
  background: #fbf7fd;
  border: 1px solid #eadff1;
  border-radius: 8px;
  padding: 12px;
}

.beautyos-operator__shop-list,
.beautyos-operator__shop-orders {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.beautyos-operator__shop-list details,
.beautyos-operator__shop-orders form {
  background: #fcf8ff;
  border: 1px solid #eadff1;
  border-radius: 8px;
  color: #21102f;
  padding: 14px;
}

.beautyos-operator__shop-list summary {
  cursor: pointer;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.beautyos-operator__shop-orders select {
  background: #fff;
  border: 1px solid #d9c8e5;
  border-radius: 5px;
  color: #21102f;
  margin: 8px 8px 8px 0;
  min-height: 42px;
  padding: 8px 10px;
}

@media (max-width: 1080px) {
  .beautyos-shop__layout,
  .beautyos-shop__checkout {
    grid-template-columns: 1fr;
  }

  .beautyos-shop__cart {
    position: static;
  }

  .beautyos-operator__workspace-nav,
  .beautyos-operator__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .beautyos-shop {
    padding: 28px 14px 72px;
  }

  .beautyos-shop__intro,
  .beautyos-shop__grid,
  .beautyos-shop__fields,
  .beautyos-operator__day-client-list,
  .beautyos-operator-card,
  .beautyos-operator-card__details,
  .beautyos-operator-card__form {
    grid-template-columns: 1fr;
  }

  .beautyos-shop__intro {
    padding: 24px;
  }

  .beautyos-shop__intro-panel {
    min-height: 150px;
  }

  .beautyos-product-card__purchase {
    grid-template-columns: 42px 42px minmax(0, 1fr);
  }

  .beautyos-shop__field-wide,
  .beautyos-shop__button {
    grid-column: auto;
  }

  .beautyos-shop__cart-actions {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__stats,
  .beautyos-operator__workspace-nav {
    grid-template-columns: 1fr;
  }

  .beautyos-operator__shop,
  .beautyos-operator__day-clients {
    padding: 18px;
  }

  .beautyos-operator__day-client-list article {
    align-items: flex-start;
    flex-direction: column;
  }

  .beautyos-operator__day-client-list nav {
    justify-content: flex-start;
  }
}

/* Final market-ready polish for booking, shop and operator surfaces. */
.beautyos-booking,
.beautyos-shop,
.beautyos-operator {
  overflow-wrap: anywhere;
}

.beautyos-booking__empty {
  border-radius: 8px;
  box-shadow: inset 5px 0 0 #7c3aed;
  font-size: 1rem;
}

.beautyos-booking__empty strong {
  color: #21102f;
  font-size: clamp(1.2rem, 2.5vw, 1.55rem);
  line-height: 1.08;
}

.beautyos-booking__empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.beautyos-booking__empty-actions button {
  background: #21102f;
  border: 1px solid #21102f;
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 900;
  min-height: 42px;
  padding: 9px 13px;
}

.beautyos-booking__empty-actions button + button {
  background: #fff;
  color: #21102f;
}

.beautyos-shop__cart::before {
  align-items: center;
  background: #151119;
  border-radius: 999px;
  color: #fff;
  content: "Carrello";
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 950;
  justify-content: center;
  min-height: 32px;
  padding: 7px 12px;
  text-transform: uppercase;
  width: fit-content;
}

.beautyos-shop.has-cart-items .beautyos-shop__cart {
  border-color: #1f4e33;
  box-shadow: 0 24px 76px rgba(31, 78, 51, 0.16);
}

.beautyos-product-card,
.beautyos-shop__cart,
.beautyos-shop__checkout {
  min-width: 0;
}

.beautyos-product-card__body > p,
.beautyos-shop__checkout p,
.beautyos-shop__cart-items span {
  overflow-wrap: anywhere;
}

.beautyos-operator__shop-order-card {
  display: grid;
  gap: 14px;
}

.beautyos-operator__shop-order-head {
  align-items: start;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.beautyos-operator__shop-order-head span {
  color: #6f6377;
  display: block;
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.beautyos-operator__shop-order-head strong {
  color: #21102f;
  display: block;
  font-size: 1.15rem;
  line-height: 1.18;
  margin-top: 4px;
}

.beautyos-operator__shop-order-head b {
  color: #1f4e33;
  flex: 0 0 auto;
  font-size: 1.05rem;
}

.beautyos-operator__shop-order-meta {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
}

.beautyos-operator__shop-order-meta div,
.beautyos-operator__shop-order-items {
  background: #fff;
  border: 1px solid #eadff1;
  border-radius: 8px;
  min-width: 0;
  padding: 10px;
}

.beautyos-operator__shop-order-meta dt {
  color: #6f6377;
  font-size: 0.66rem;
  font-weight: 950;
  text-transform: uppercase;
}

.beautyos-operator__shop-order-meta dd {
  color: #21102f;
  font-size: 0.84rem;
  font-weight: 800;
  margin: 5px 0 0;
}

.beautyos-operator__shop-order-items {
  display: grid;
  gap: 7px 12px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.beautyos-operator__shop-order-items span {
  color: #21102f;
  font-weight: 850;
}

.beautyos-operator__shop-order-items small {
  color: #6f6377;
  font-weight: 800;
}

.beautyos-operator__shop-order-note {
  background: #f3f8ef;
  border: 1px solid #d8e7ce;
  border-radius: 8px;
  color: #36543c;
  margin: 0;
  padding: 10px 12px;
}

.beautyos-operator__shop-order-card > label {
  display: grid;
  gap: 7px;
}

.beautyos-operator__shop-order-card > label > span {
  color: #6f6377;
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.beautyos-operator__shop-order-card select {
  width: 100%;
}

@media (max-width: 720px) {
  .beautyos-booking__empty-actions,
  .beautyos-operator__shop-order-head {
    align-items: stretch;
    flex-direction: column;
  }

  .beautyos-booking__empty-actions button,
  .beautyos-operator__shop-order-head b {
    width: 100%;
  }

  .beautyos-operator__shop-order-meta,
  .beautyos-operator__shop-order-items {
    grid-template-columns: 1fr;
  }
}

/* Booking concierge redesign. */
.beautyos-booking {
  background: #fffdf9;
  border: 1px solid rgba(33, 16, 47, 0.08);
  box-shadow: 0 28px 90px rgba(21, 17, 25, 0.14);
  isolation: isolate;
  max-width: 1180px;
  position: relative;
}

.beautyos-booking::before {
  background: linear-gradient(90deg, #2d6f4b, #f4b26d, #7c3aed);
  content: "";
  height: 6px;
  inset: 0 0 auto;
  position: absolute;
  z-index: 1;
}

.beautyos-booking__header {
  background:
    linear-gradient(135deg, rgba(18, 13, 23, 0.96), rgba(47, 29, 69, 0.94)),
    linear-gradient(90deg, rgba(45, 111, 75, 0.36), rgba(244, 178, 109, 0.2));
  padding: clamp(28px, 4vw, 54px);
}

.beautyos-booking__header p:last-child {
  color: rgba(255, 255, 255, 0.84);
  font-size: clamp(0.94rem, 1.2vw, 1.05rem);
  max-width: 760px;
}

.beautyos-booking h2 {
  font-size: clamp(2.1rem, 4.4vw, 4.45rem);
  letter-spacing: 0;
  max-width: 880px;
}

.beautyos-booking__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.beautyos-booking__badges span {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 8px;
  color: #fff;
  font-size: 0.76rem;
  font-weight: 900;
  padding: 9px 12px;
  text-transform: uppercase;
}

.beautyos-booking__progress {
  background: #fff;
  gap: 1px;
  padding: 10px;
}

.beautyos-booking__progress span {
  background: #f7f1fb;
  border: 0;
  border-radius: 8px;
  color: #6c5d74;
  min-height: 52px;
}

.beautyos-booking__progress span.is-active {
  background: #21102f;
  color: #fff;
}

.beautyos-booking__form {
  padding-bottom: 48px;
}

.beautyos-booking fieldset {
  background: #fff;
  border: 1px solid #efe6f3;
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(33, 16, 47, 0.07);
  margin: 0;
  padding: clamp(18px, 3vw, 30px);
}

.beautyos-booking legend {
  background: #fff;
  border: 1px solid #efe6f3;
  border-radius: 8px;
  color: #21102f;
  display: inline-flex;
  font-size: clamp(1.45rem, 2.4vw, 2.05rem);
  line-height: 1.05;
  margin-bottom: 18px;
  padding: 10px 14px;
}

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

.beautyos-booking label {
  min-width: 0;
}

.beautyos-booking label > span,
.beautyos-native-select > span {
  color: #5d5066;
  letter-spacing: 0;
}

.beautyos-booking input,
.beautyos-booking select,
.beautyos-booking textarea {
  background: #fffdf9;
  border: 1px solid #dacfe2;
  border-radius: 8px;
  color: #21102f;
  min-height: 54px;
}

.beautyos-service-grid {
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.beautyos-service-card {
  border: 1px solid #e8ddec;
  border-radius: 8px;
  min-width: 0;
}

.beautyos-service-card__button {
  min-height: 176px;
  padding: 22px;
}

.beautyos-service-card__button strong {
  color: #21102f;
  font-size: 1.08rem;
  line-height: 1.15;
}

.beautyos-service-card__button p {
  color: #675b6d;
}

.beautyos-service-card__button span {
  color: #2d6f4b;
}

.beautyos-service-card.is-selected {
  border-color: #2d6f4b;
  box-shadow: 0 18px 42px rgba(45, 111, 75, 0.15);
}

.beautyos-service-summary {
  background: #f3f8ef;
  border: 1px solid #d7e8ce;
  border-radius: 8px;
  padding: 16px;
}

.beautyos-service-summary:empty {
  display: none;
}

.beautyos-slot-grid {
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
}

.beautyos-slot {
  background: #fffdf9;
  border: 1px solid #dacfe2;
  border-radius: 8px;
  color: #21102f;
  font-weight: 900;
  min-height: 58px;
}

.beautyos-slot:hover,
.beautyos-slot.is-selected {
  background: #2d6f4b;
  border-color: #2d6f4b;
  color: #fff;
}

.beautyos-slot-grid .beautyos-booking__empty {
  background: #fff7ec;
  border-color: #f1d7b8;
  box-shadow: inset 5px 0 0 #f4b26d;
}

.beautyos-button {
  background: #21102f;
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(33, 16, 47, 0.18);
}

.beautyos-button--ghost {
  background: #fff;
  box-shadow: none;
}

.beautyos-booking__actions {
  gap: 12px;
  justify-content: space-between;
}

.beautyos-booking__success {
  background: #f3f8ef;
  border-color: #d7e8ce;
  border-radius: 8px;
}

/* Public Beauty AI assistant. */
.beautyos-public-ai {
  bottom: 96px;
  color: #21102f;
  max-width: calc(100vw - 32px);
  position: fixed;
  right: 20px;
  z-index: 9998;
}

.beautyos-public-ai__launcher {
  align-items: center;
  background: #21102f;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  box-shadow: 0 18px 52px rgba(21, 17, 25, 0.28);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  gap: 10px;
  min-height: 54px;
  padding: 10px 14px 10px 10px;
}

.beautyos-public-ai__launcher span {
  align-items: center;
  background: #f4b26d;
  border-radius: 8px;
  color: #21102f;
  display: inline-flex;
  font-size: 0.8rem;
  font-weight: 950;
  height: 34px;
  justify-content: center;
  width: 38px;
}

.beautyos-public-ai__launcher strong {
  font-size: 0.92rem;
  letter-spacing: 0;
  white-space: nowrap;
}

.beautyos-public-ai__panel {
  background: #fffdf9;
  border: 1px solid #e5d8ef;
  border-radius: 8px;
  bottom: 70px;
  box-shadow: 0 24px 86px rgba(21, 17, 25, 0.24);
  display: grid;
  grid-template-rows: auto minmax(180px, 1fr) auto auto;
  max-height: min(680px, calc(100vh - 112px));
  overflow: hidden;
  position: absolute;
  right: 0;
  width: min(392px, calc(100vw - 32px));
}

.beautyos-public-ai__panel[hidden] {
  display: none !important;
}

.beautyos-public-ai__head {
  align-items: start;
  background: #21102f;
  color: #fff;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 18px;
}

.beautyos-public-ai__head p {
  color: #f4b26d;
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0;
  margin: 0 0 5px;
  text-transform: uppercase;
}

.beautyos-public-ai__head h2 {
  color: #fff;
  font-family: inherit;
  font-size: 1.12rem;
  line-height: 1.2;
  margin: 0;
}

.beautyos-public-ai__head button {
  background: rgba(255, 255, 255, 0.12);
  border: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font-size: 1.5rem;
  height: 36px;
  line-height: 1;
  width: 36px;
}

.beautyos-public-ai__messages {
  display: grid;
  gap: 10px;
  overflow: auto;
  padding: 16px;
}

.beautyos-public-ai__message {
  border-radius: 8px;
  max-width: 92%;
  min-width: 0;
  padding: 11px 12px;
  white-space: pre-line;
}

.beautyos-public-ai__message p {
  margin: 0;
}

.beautyos-public-ai__message--assistant {
  background: #f7f1fb;
  border: 1px solid #eadff1;
  justify-self: start;
}

.beautyos-public-ai__message--user {
  background: #2d6f4b;
  color: #fff;
  justify-self: end;
}

.beautyos-public-ai__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.beautyos-public-ai__actions a {
  background: #21102f;
  border-radius: 8px;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 900;
  padding: 8px 10px;
  text-decoration: none;
}

.beautyos-public-ai__chips {
  border-top: 1px solid #efe6f3;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 12px 14px;
}

.beautyos-public-ai__chips button {
  background: #fff;
  border: 1px solid #dacfe2;
  border-radius: 8px;
  color: #21102f;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 0.78rem;
  font-weight: 900;
  padding: 8px 10px;
}

.beautyos-public-ai__form {
  border-top: 1px solid #efe6f3;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px;
}

.beautyos-public-ai__form input {
  background: #fff;
  border: 1px solid #dacfe2;
  border-radius: 8px;
  color: #21102f;
  font: inherit;
  min-height: 44px;
  min-width: 0;
  padding: 10px 11px;
}

.beautyos-public-ai__form button {
  background: #21102f;
  border: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  min-height: 44px;
  padding: 10px 12px;
}

@media (max-width: 760px) {
  .beautyos-booking__header,
  .beautyos-booking__notice,
  .beautyos-booking__form {
    margin-left: 14px;
    margin-right: 14px;
  }

  .beautyos-booking__header {
    margin: 0;
    padding: 28px 18px;
  }

  .beautyos-booking__progress {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .beautyos-booking__selector-grid,
  .beautyos-booking__fields,
  .beautyos-slot-grid {
    grid-template-columns: 1fr;
  }

  .beautyos-booking__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .beautyos-public-ai {
    bottom: 92px;
    right: 14px;
  }

  .beautyos-public-ai__launcher strong {
    display: inline;
    font-size: 0.78rem;
  }

  .beautyos-public-ai__panel {
    bottom: 62px;
    max-height: calc(100vh - 92px);
  }
}

/* Violet/wisteria unification for all BeautyOS surfaces. */
.beautyos-booking,
.beautyos-shop,
.beautyos-operator {
  --ib-ink: #120719;
  --ib-plum: #2c0a49;
  --ib-violet: #7b3cff;
  --ib-wisteria: #baa3ee;
  --ib-lilac: #f0dcff;
  --ib-paper: #fffaff;
  --ib-line: #e8d9f2;
}

.beautyos-booking {
  background: var(--ib-paper);
  border-color: rgba(186, 163, 238, 0.32);
}

.beautyos-booking::before {
  background: linear-gradient(90deg, var(--ib-lilac), var(--ib-wisteria), var(--ib-violet));
}

.beautyos-booking__header,
.beautyos-shop__intro,
.beautyos-operator__hero,
.beautyos-operator__assistant {
  background:
    linear-gradient(135deg, rgba(18, 7, 25, 0.98) 0%, rgba(53, 16, 94, 0.95) 54%, rgba(123, 60, 255, 0.88) 100%);
  color: #fff;
}

.beautyos-booking__badges span,
.beautyos-shop__intro-stat,
.beautyos-operator__hero p,
.beautyos-operator__assistant-copy p {
  color: rgba(255, 255, 255, 0.86);
}

.beautyos-booking__progress span.is-active,
.beautyos-button,
.beautyos-shop__button,
.beautyos-operator__button,
.beautyos-public-ai__launcher,
.beautyos-public-ai__head,
.beautyos-public-ai__form button,
.beautyos-public-ai__actions a {
  background: linear-gradient(135deg, var(--ib-plum), var(--ib-violet));
  color: #fff;
}

.beautyos-button--ghost,
.beautyos-operator__button--soft {
  background: #fff;
  color: var(--ib-plum);
}

.beautyos-booking fieldset,
.beautyos-service-card,
.beautyos-product-card,
.beautyos-shop__cart,
.beautyos-shop__checkout,
.beautyos-operator-card,
.beautyos-operator__stats > div,
.beautyos-operator__workspace-nav a,
.beautyos-operator__availability,
.beautyos-operator__calendar,
.beautyos-operator__customer-index,
.beautyos-operator__customer,
.beautyos-operator__day-clients,
.beautyos-operator__shop,
.beautyos-operator__gifts,
.beautyos-operator__gift-panel,
.beautyos-public-ai__panel {
  background: rgba(255, 250, 255, 0.94);
  border-color: rgba(186, 163, 238, 0.32);
  border-radius: 8px;
  box-shadow: 0 18px 56px rgba(53, 16, 94, 0.09);
}

.beautyos-operator__shell {
  background:
    linear-gradient(180deg, #fffaff 0%, #f7efff 46%, #fffdf9 100%);
}

.beautyos-operator__workspace-nav a.is-current,
.beautyos-operator__calendar-day.is-selected,
.beautyos-service-card.is-selected {
  border-color: var(--ib-violet);
  box-shadow: 0 18px 46px rgba(123, 60, 255, 0.16);
}

.beautyos-slot:hover,
.beautyos-slot.is-selected,
.beautyos-product-card__purchase button:last-child,
.beautyos-shop.has-cart-items .beautyos-shop__cart::before {
  background: var(--ib-violet);
  border-color: var(--ib-violet);
  color: #fff;
}

.beautyos-shop__cart::before,
.beautyos-public-ai__launcher span {
  background: var(--ib-lilac);
  color: var(--ib-plum);
}

.beautyos-public-ai__message--assistant {
  background: #f7efff;
  border-color: var(--ib-line);
}

.beautyos-public-ai__chips button {
  background: #fff;
  border-color: var(--ib-line);
}

.beautyos-public-ai.is-open .beautyos-public-ai__launcher {
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 760px) {
  .beautyos-public-ai {
    max-width: calc(100vw - 28px);
  }
}

/* AI panel must stay readable above any page hero. */
.beautyos-public-ai__panel {
  background: #fffaff !important;
}

.beautyos-public-ai__head {
  background: linear-gradient(135deg, #2c0a49, #7b3cff) !important;
}

.beautyos-public-ai__head p,
.beautyos-public-ai__head h2,
.beautyos-public-ai__head button {
  color: #fff !important;
  opacity: 1;
}

.beautyos-public-ai__message--assistant {
  background: #f7efff !important;
  color: #21102f;
}

@media (max-width: 760px) {
  .beautyos-public-ai__panel {
    border: 1px solid rgba(53, 16, 94, 0.2);
    bottom: 66px;
    max-height: min(560px, calc(100svh - 100px));
  }

  .beautyos-public-ai__messages {
    min-height: 190px;
  }

  .beautyos-public-ai__form {
    grid-template-columns: minmax(0, 1fr) 76px;
  }

  .beautyos-public-ai__form button {
    background: #35105e !important;
    color: #fff !important;
    min-width: 76px;
    padding-left: 8px;
    padding-right: 8px;
  }
}

/* Final readability pass: light operator panels always use dark text. */
.beautyos-operator__shell {
  color: #21102f;
}

.beautyos-operator__hero,
.beautyos-operator__assistant {
  color: #fff;
}

.beautyos-operator__hero h1,
.beautyos-operator__hero p,
.beautyos-operator__hero .beautyos-operator__kicker,
.beautyos-operator__assistant h2,
.beautyos-operator__assistant p,
.beautyos-operator__assistant .beautyos-operator__kicker {
  color: #fff;
}

.beautyos-operator__workspace-nav a {
  background: #fffaff;
  border-color: #e8d9f2;
  color: #21102f;
}

.beautyos-operator__workspace-nav a strong {
  color: #21102f;
}

.beautyos-operator__workspace-nav a span {
  color: #6f6377;
}

.beautyos-operator__workspace-nav a:hover,
.beautyos-operator__workspace-nav a.is-current {
  background: #f0dcff;
  border-color: #7b3cff;
  color: #21102f;
}

.beautyos-operator__section-label {
  border-top-color: rgba(53, 16, 94, 0.14);
}

.beautyos-operator__section-label > span,
.beautyos-operator__section-label .beautyos-operator__kicker,
.beautyos-operator__section-label h2,
.beautyos-operator__section-label p:last-child {
  color: #21102f;
}

.beautyos-operator__section-label p:last-child {
  color: #6f6377;
}

.beautyos-operator__calendar-heading h2,
.beautyos-operator__calendar-heading h3,
.beautyos-operator__availability h2,
.beautyos-operator__customer h2,
.beautyos-operator__customer-index h2,
.beautyos-operator__shop h2,
.beautyos-operator__gifts h2,
.beautyos-operator-card h2 {
  color: #21102f;
}

.beautyos-operator__calendar-heading p,
.beautyos-operator__availability p,
.beautyos-operator__customer p,
.beautyos-operator__customer-index p,
.beautyos-operator__shop p,
.beautyos-operator__gifts p {
  color: #6f6377;
}

/* 0.10.27 polish: readable AI, stronger operator actions and a richer native shop. */
.beautyos-public-ai__launcher {
  background: linear-gradient(135deg, #2c0a49 0%, #7b3cff 100%) !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  box-shadow: 0 22px 70px rgba(44, 10, 73, 0.34) !important;
  color: #fff !important;
  opacity: 1 !important;
}

.beautyos-public-ai__launcher strong {
  color: #fff !important;
}

.beautyos-public-ai__launcher span {
  background: #f0dcff !important;
  color: #2c0a49 !important;
}

.beautyos-operator__assistant .beautyos-operator__assistant-answer {
  background: #fffaff !important;
  border: 1px solid #e8d9f2 !important;
  color: #21102f !important;
}

.beautyos-operator__assistant .beautyos-operator__assistant-answer strong {
  color: #7b3cff !important;
}

.beautyos-operator__assistant .beautyos-operator__assistant-answer p {
  color: #21102f !important;
}

.beautyos-operator__quick a {
  background: #35105e !important;
  border-color: #35105e !important;
  box-shadow: 0 14px 34px rgba(53, 16, 94, 0.18);
  color: #fff !important;
}

.beautyos-operator__hero .beautyos-operator__daynav a {
  background: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(255, 255, 255, 0.42) !important;
  color: #fff !important;
}

.beautyos-operator__hero {
  align-items: center !important;
  min-height: 260px;
  padding: clamp(34px, 5vw, 64px) !important;
}

.beautyos-operator h1 {
  font-size: clamp(3.2rem, 7vw, 5.6rem) !important;
  line-height: 0.92 !important;
}

.beautyos-operator__install-wrap {
  align-self: start;
  padding-top: 4px;
}

.beautyos-operator__install-wrap p {
  color: rgba(255, 255, 255, 0.9) !important;
  max-width: 360px;
  text-align: right;
}

@media (max-width: 760px) {
  .beautyos-operator__hero {
    grid-template-columns: 1fr !important;
    min-height: 0;
    padding: 28px 20px !important;
  }

  .beautyos-operator__install-wrap p {
    text-align: left;
  }
}

.beautyos-shop {
  background:
    radial-gradient(circle at 12% 0%, rgba(186, 163, 238, 0.2), transparent 30%),
    linear-gradient(180deg, #fffaff 0%, #f7efff 46%, #fffdf9 100%);
  color: #21102f;
}

.beautyos-shop__intro {
  background:
    linear-gradient(135deg, #120719 0%, #35105e 55%, #7b3cff 100%) !important;
  border-color: rgba(240, 220, 255, 0.28);
}

.beautyos-shop__intro-panel {
  background: #fffaff !important;
  color: #21102f !important;
}

.beautyos-shop__intro-panel small,
.beautyos-product-card__body > p,
.beautyos-shop__checkout p,
.beautyos-shop__cart-items span,
.beautyos-shop__cart > p {
  color: #6f6377 !important;
}

.beautyos-shop__toolbar {
  align-items: end;
  background: #fffaff;
  border: 1px solid #e8d9f2;
  border-radius: 8px;
  box-shadow: 0 16px 48px rgba(53, 16, 94, 0.08);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(220px, 1.25fr) minmax(180px, 0.7fr) auto;
  margin: 24px 0 18px;
  padding: 16px;
}

.beautyos-shop__toolbar label {
  display: grid;
  gap: 7px;
}

.beautyos-shop__toolbar label span {
  color: #5f5369;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.beautyos-shop__toolbar input,
.beautyos-shop__toolbar select {
  background: #fff;
  border: 1px solid #d9cae8;
  border-radius: 6px;
  color: #21102f;
  min-height: 48px;
  padding: 11px 12px;
  width: 100%;
}

.beautyos-shop__toolbar output {
  background: #f0dcff;
  border-radius: 999px;
  color: #35105e;
  font-size: 0.8rem;
  font-weight: 900;
  min-width: 116px;
  padding: 12px 14px;
  text-align: center;
}

.beautyos-shop__filters button.is-active,
.beautyos-shop__cart-actions a,
.beautyos-shop__button,
.beautyos-product-card__purchase button {
  background: linear-gradient(135deg, #35105e, #7b3cff) !important;
  border-color: #35105e !important;
  color: #fff !important;
}

.beautyos-product-card {
  border-color: rgba(186, 163, 238, 0.34) !important;
  box-shadow: 0 18px 58px rgba(53, 16, 94, 0.1);
}

.beautyos-product-card__media {
  background: linear-gradient(135deg, #2c0a49, #baa3ee) !important;
}

.beautyos-product-card__meta strong,
.beautyos-shop__cart-total strong,
.beautyos-shop__checkout-total {
  color: #35105e !important;
}

.beautyos-shop__cart,
.beautyos-shop__checkout {
  background: rgba(255, 250, 255, 0.96) !important;
  border-color: rgba(186, 163, 238, 0.34) !important;
}

@media (max-width: 820px) {
  .beautyos-shop__toolbar {
    grid-template-columns: 1fr;
  }

  .beautyos-shop__toolbar output {
    width: 100%;
  }
}
