/* GlowNow upgrades #96-#110. Keep each surface compact and independently removable. */
.upgrade-kicker {
  color: #a36b22;
  font-size: 11px;
  font-weight: 620;
  line-height: 1.2;
  text-transform: uppercase;
}

.booking-readiness-strip {
  display: grid;
  gap: 9px;
  margin: 10px 0;
  border: 1px solid rgba(197, 93, 139, 0.2);
  border-radius: 7px;
  padding: 12px;
  background: rgba(255, 248, 251, 0.88);
}

.booking-readiness-head,
.upgrade-panel-head,
.matchability-head,
.provider-preview-head,
.provider-earnings-result,
.admin-exception-head {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.booking-readiness-head > div,
.upgrade-panel-head > div,
.matchability-head > div,
.provider-preview-head > div,
.admin-exception-head > div {
  min-width: 0;
}

.booking-readiness-head strong,
.upgrade-panel-head h3,
.matchability-head strong,
.provider-preview-head strong,
.admin-exception-head h3 {
  display: block;
  margin: 0;
  color: #2c1923;
  font-size: 15px;
  font-weight: 590;
  line-height: 1.25;
}

.booking-readiness-head span,
.upgrade-panel-head p,
.matchability-head span,
.provider-preview-head span,
.admin-exception-head p {
  display: block;
  margin: 2px 0 0;
  color: #806a77;
  font-size: 12px;
  line-height: 1.4;
}

.booking-readiness-score {
  flex: 0 0 auto;
  color: #a43b6a;
  font-size: 14px;
  font-weight: 620;
}

.booking-readiness-track,
.matchability-track {
  overflow: hidden;
  height: 5px;
  border-radius: 999px;
  background: rgba(151, 86, 117, 0.14);
}

.booking-readiness-track > span,
.matchability-track > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #e95a98, #d59b43);
  transition: width 180ms ease;
}

.booking-readiness-checks {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 5px;
}

.booking-readiness-checks button {
  display: inline-flex;
  min-width: 0;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid rgba(183, 73, 122, 0.17);
  border-radius: 6px;
  padding: 6px;
  background: #fff;
  color: #70525f;
  font: inherit;
  font-size: 11px;
  line-height: 1.15;
  cursor: pointer;
}

.booking-readiness-checks button svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.booking-readiness-checks button.is-complete {
  border-color: rgba(66, 143, 109, 0.27);
  background: #f3fbf7;
  color: #28664b;
}

.upgrade-panel {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  border-top: 1px solid rgba(190, 117, 151, 0.2);
  padding-top: 16px;
}

.upgrade-panel-head > i,
.upgrade-panel-head > svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: #b24b78;
}

.booking-addon-options,
.required-preference-list,
.matchability-actions,
.review-edit-grid,
.privacy-timeline,
.service-health-metrics,
.admin-exception-list {
  display: grid;
  gap: 8px;
}

.booking-addon-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.booking-addon-option,
.required-preference-item {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(183, 73, 122, 0.18);
  border-radius: 7px;
  padding: 9px 10px;
  background: #fffafd;
  color: #4f3441;
  font-size: 13px;
  line-height: 1.3;
}

.booking-addon-option input,
.required-preference-item input {
  flex: 0 0 auto;
  accent-color: #d84e8a;
}

.booking-addon-option span,
.required-preference-item span {
  min-width: 0;
}

.booking-addon-option small,
.required-preference-item small {
  display: block;
  margin-top: 2px;
  color: #866f7a;
  font-size: 11px;
}

.booking-addon-empty,
.required-preference-empty,
.calendar-preflight-status,
.upgrade-inline-note {
  margin: 0;
  color: #806a77;
  font-size: 12px;
  line-height: 1.45;
}

.required-preference-panel[hidden],
.booking-addon-brief[hidden] {
  display: none;
}

.required-preference-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.search-expansion-grid,
.appointment-planner-grid,
.policy-preview-grid,
.provider-earnings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.search-expansion-grid label,
.appointment-planner-grid label,
.policy-preview-grid label,
.provider-earnings-grid label {
  display: grid;
  min-width: 0;
  gap: 5px;
  color: #654b58;
  font-size: 12px;
}

.search-expansion-grid select,
.search-expansion-grid input,
.appointment-planner-grid select,
.appointment-planner-grid input,
.policy-preview-grid select,
.provider-earnings-grid select,
.provider-earnings-grid input {
  width: 100%;
}

.appointment-plan-output,
.policy-preview-output {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(183, 73, 122, 0.18);
  border-radius: 7px;
  background: rgba(183, 73, 122, 0.14);
}

.appointment-plan-output > div,
.policy-preview-output > div {
  min-width: 0;
  padding: 10px;
  background: #fffafd;
}

.appointment-plan-output span,
.policy-preview-output span,
.provider-earnings-result span,
.service-health-metrics span {
  display: block;
  color: #806a77;
  font-size: 11px;
  line-height: 1.25;
}

.appointment-plan-output strong,
.policy-preview-output strong,
.provider-earnings-result strong,
.service-health-metrics strong {
  display: block;
  margin-top: 3px;
  color: #2d1923;
  font-size: 14px;
  font-weight: 590;
  line-height: 1.25;
}

.appointment-plan-message,
.policy-preview-message {
  grid-column: 1 / -1;
  margin: 0;
  border-top: 1px solid rgba(183, 73, 122, 0.14);
  padding: 9px 10px;
  background: #fffafd;
  color: #765b68;
  font-size: 12px;
  line-height: 1.4;
}

.matchability-panel {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  border: 1px solid rgba(183, 73, 122, 0.2);
  border-radius: 7px;
  padding: 12px;
  background: #fffafd;
}

.matchability-badge {
  flex: 0 0 auto;
  border: 1px solid rgba(183, 73, 122, 0.2);
  border-radius: 999px;
  padding: 5px 9px;
  background: #fff2f7;
  color: #a13d69;
  font-size: 11px;
  font-weight: 620;
}

.matchability-panel[data-level="strong"] .matchability-badge {
  border-color: rgba(65, 139, 105, 0.25);
  background: #eef9f3;
  color: #2a684d;
}

.matchability-panel[data-level="good"] .matchability-badge {
  border-color: rgba(185, 132, 45, 0.28);
  background: #fff9eb;
  color: #835f24;
}

.matchability-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.matchability-facts span {
  border-radius: 999px;
  padding: 5px 8px;
  background: #f7edf2;
  color: #70525f;
  font-size: 11px;
}

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

.matchability-actions:empty {
  display: none;
}

.review-edit-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.review-edit-grid button {
  width: 100%;
  min-height: 39px;
}

.policy-preview-output {
  grid-column: 1 / -1;
}

.privacy-timeline {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.privacy-timeline article {
  position: relative;
  min-width: 0;
  border-left: 2px solid rgba(218, 79, 139, 0.3);
  padding-left: 10px;
}

.privacy-timeline span {
  color: #a36b22;
  font-size: 10px;
  font-weight: 620;
  text-transform: uppercase;
}

.privacy-timeline strong {
  display: block;
  margin: 3px 0;
  color: #2d1923;
  font-size: 13px;
  font-weight: 590;
}

.privacy-timeline p {
  margin: 0;
  color: #765b68;
  font-size: 11px;
  line-height: 1.4;
}

.provider-profile-preview,
.provider-earnings-estimator,
.provider-service-health,
.admin-exception-centre {
  display: grid;
  gap: 12px;
}

.provider-profile-preview {
  margin-top: 16px;
  border-top: 1px solid rgba(214, 91, 146, 0.2);
  padding-top: 16px;
}

.provider-preview-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  border: 1px solid rgba(183, 73, 122, 0.2);
  border-radius: 7px;
  padding: 12px;
  background: #fffafd;
}

.provider-preview-avatar {
  display: inline-flex;
  width: 50px;
  height: 50px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(200, 150, 63, 0.45);
  border-radius: 50%;
  background: #fde5ef;
  color: #9d3d67;
  font-size: 18px;
  font-weight: 600;
}

.provider-preview-copy {
  min-width: 0;
}

.provider-preview-copy h3 {
  margin: 0;
  color: #2d1923;
  font-size: 17px;
  font-weight: 590;
}

.provider-preview-copy p {
  margin: 3px 0 0;
  color: #715763;
  font-size: 12px;
}

.provider-preview-stats {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  border-top: 1px solid rgba(183, 73, 122, 0.14);
  padding-top: 10px;
}

.provider-preview-stats span {
  min-width: 0;
  color: #806a77;
  font-size: 10px;
}

.provider-preview-stats strong {
  display: block;
  margin-top: 2px;
  overflow-wrap: anywhere;
  color: #3e2833;
  font-size: 12px;
  font-weight: 580;
}

.provider-earnings-estimator,
.provider-service-health {
  border-top: 1px solid rgba(214, 91, 146, 0.2);
  padding-top: 16px;
}

.provider-earnings-result {
  border: 1px solid rgba(183, 73, 122, 0.18);
  border-radius: 7px;
  padding: 11px;
  background: #fffafd;
}

.provider-earnings-result > div {
  min-width: 0;
}

.provider-earnings-result > div:last-child {
  text-align: right;
}

.service-health-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.service-health-metrics > div {
  min-width: 0;
  border-left: 2px solid rgba(214, 91, 146, 0.25);
  padding-left: 8px;
}

.service-health-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.service-rule-quality-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 7px;
  background: #f8eaf1;
  color: #7b5668;
  font-size: 10px;
}

.service-rule-quality-badge.is-ready {
  background: #eef9f3;
  color: #2b684d;
}

.calendar-preflight-status[data-status="error"] {
  color: #ad355b;
}

.calendar-preflight-status[data-status="success"] {
  color: #2d6d50;
}

.admin-exception-centre {
  margin-top: 18px;
}

.admin-exception-summary {
  display: flex;
  flex: 0 0 auto;
  align-items: baseline;
  gap: 5px;
}

.admin-exception-summary strong {
  color: #a33d69;
  font-size: 21px;
  font-weight: 620;
}

.admin-exception-summary span {
  color: #806a77;
  font-size: 11px;
}

.admin-exception-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-exception-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  border-top: 1px solid rgba(183, 73, 122, 0.16);
  padding: 10px 0;
}

.admin-exception-item > i,
.admin-exception-item > svg {
  width: 17px;
  height: 17px;
  color: #b14675;
}

.admin-exception-item div {
  min-width: 0;
}

.admin-exception-item strong,
.admin-exception-item small {
  display: block;
}

.admin-exception-item strong {
  color: #3b2630;
  font-size: 13px;
  font-weight: 580;
}

.admin-exception-item small {
  margin-top: 2px;
  color: #806a77;
  font-size: 11px;
  line-height: 1.35;
}

.admin-exception-empty {
  margin: 0;
  color: #2f6b50;
  font-size: 13px;
}

.provider-notification-editor .checkbox-line {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 0;
}

.provider-notification-editor .checkbox-line input[type="checkbox"] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  box-shadow: none;
}

.provider-notification-editor .checkbox-line span {
  min-width: 0;
  overflow-wrap: anywhere;
}

body[data-theme="dark"] .booking-readiness-strip,
body[data-theme="dark"] .matchability-panel,
body[data-theme="dark"] .booking-addon-option,
body[data-theme="dark"] .required-preference-item,
body[data-theme="dark"] .appointment-plan-output > div,
body[data-theme="dark"] .policy-preview-output > div,
body[data-theme="dark"] .appointment-plan-message,
body[data-theme="dark"] .policy-preview-message,
body[data-theme="dark"] .provider-preview-card,
body[data-theme="dark"] .provider-earnings-result {
  border-color: rgba(242, 116, 170, 0.22);
  background: #281620;
}

body[data-theme="dark"] .booking-readiness-checks button {
  border-color: rgba(242, 116, 170, 0.2);
  background: #2b1722;
  color: #e5cbd7;
}

body[data-theme="dark"] .booking-readiness-checks button.is-complete {
  border-color: rgba(111, 201, 158, 0.28);
  background: #1d2e29;
  color: #b9ead4;
}

body[data-theme="dark"] :is(.booking-readiness-head strong, .upgrade-panel-head h3, .matchability-head strong, .provider-preview-head strong, .admin-exception-head h3, .appointment-plan-output strong, .policy-preview-output strong, .provider-earnings-result strong, .service-health-metrics strong, .privacy-timeline strong, .provider-preview-copy h3, .provider-preview-stats strong, .admin-exception-item strong) {
  color: #fff2f8;
}

body[data-theme="dark"] :is(.booking-readiness-head span, .upgrade-panel-head p, .matchability-head span, .provider-preview-head span, .admin-exception-head p, .appointment-plan-output span, .policy-preview-output span, .provider-earnings-result span, .service-health-metrics span, .privacy-timeline p, .provider-preview-copy p, .provider-preview-stats span, .admin-exception-item small, .upgrade-inline-note, .booking-addon-empty, .required-preference-empty) {
  color: #d6bcca;
}

body[data-theme="dark"] .matchability-facts span,
body[data-theme="dark"] .service-rule-quality-badge {
  background: #3a202e;
  color: #e7ccda;
}

body[data-theme="dark"] .provider-preview-avatar {
  border-color: rgba(232, 189, 104, 0.45);
  background: #3e2131;
  color: #ffb6d3;
}

@media (max-width: 760px) {
  .booking-readiness-checks {
    overflow-x: auto;
    grid-template-columns: repeat(5, minmax(92px, 1fr));
    padding-bottom: 2px;
  }

  .booking-addon-options,
  .required-preference-list,
  .search-expansion-grid,
  .appointment-planner-grid,
  .policy-preview-grid,
  .provider-earnings-grid,
  .matchability-actions,
  .admin-exception-list {
    grid-template-columns: minmax(0, 1fr);
  }

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

  .privacy-timeline {
    grid-template-columns: minmax(0, 1fr);
  }

  .provider-preview-stats,
  .service-health-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 430px) {
  .booking-readiness-strip,
  .matchability-panel {
    padding: 10px;
  }

  .booking-readiness-head,
  .upgrade-panel-head,
  .matchability-head,
  .provider-preview-head,
  .admin-exception-head {
    align-items: flex-start;
  }

  .appointment-plan-output,
  .policy-preview-output {
    grid-template-columns: minmax(0, 1fr);
  }

  .appointment-plan-message,
  .policy-preview-message {
    grid-column: 1;
  }

  .provider-preview-card {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .provider-preview-avatar {
    width: 42px;
    height: 42px;
    font-size: 15px;
  }

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

@media (prefers-reduced-motion: reduce) {
  .booking-readiness-track > span,
  .matchability-track > span {
    transition-duration: 0.01ms;
  }
}
