/* GlowNow unified button system - loaded after every page-specific stylesheet. */
:root {
  --gn-button-height: 44px;
  --gn-button-radius: 7px;
  --gn-button-text: #321a27;
  --gn-button-muted: #694857;
  --gn-button-pink: #e85897;
  --gn-button-pink-deep: #c83977;
  --gn-button-pink-soft: #fff1f7;
  --gn-button-gold: #c99a3e;
  --gn-button-surface: #fffafd;
  --gn-button-line: rgba(183, 73, 122, 0.24);
  --gn-button-shadow: 0 7px 18px rgba(120, 40, 78, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.72);
  --gn-button-shadow-hover: 0 10px 24px rgba(151, 45, 94, 0.17), inset 0 1px 0 rgba(255, 255, 255, 0.76);
  --gn-button-focus: 0 0 0 3px rgba(232, 88, 151, 0.2), 0 0 0 5px rgba(201, 154, 62, 0.15);
}

body[data-theme="dark"] {
  --gn-button-text: #fff2f8;
  --gn-button-muted: #e4cad7;
  --gn-button-pink: #f374aa;
  --gn-button-pink-deep: #ff9bc4;
  --gn-button-pink-soft: #3a1d2c;
  --gn-button-gold: #e8bd68;
  --gn-button-surface: #291722;
  --gn-button-line: rgba(242, 116, 170, 0.3);
  --gn-button-shadow: 0 8px 20px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.07);
  --gn-button-shadow-hover: 0 11px 26px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.09);
  --gn-button-focus: 0 0 0 3px rgba(243, 116, 170, 0.24), 0 0 0 5px rgba(232, 189, 104, 0.14);
}

button,
[role="button"],
.launch-primary,
.launch-secondary,
.launch-soft-button,
.primary-action,
.secondary-action,
.glass-action {
  box-sizing: border-box;
  max-width: 100%;
  letter-spacing: 0;
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
[role="button"]:focus-visible,
.launch-primary:focus-visible,
.launch-secondary:focus-visible,
.launch-soft-button:focus-visible,
.primary-action:focus-visible,
.secondary-action:focus-visible,
.glass-action:focus-visible {
  outline: 0;
  box-shadow: var(--gn-button-focus);
}

.launch-primary,
.launch-secondary,
.launch-soft-button,
.primary-action,
.secondary-action,
.glass-action,
.danger-action,
.admin-theme-toggle,
.ops-actions button,
.admin-export-actions button,
.admin-launch-actions button,
.admin-readiness-actions button,
.booking-draft-bar button,
.booking-intake-actions button,
.intake-result-actions button,
.completion-actions button,
.client-referral-share button,
.launch-wallet-actions button,
.launch-wallet-offers button,
.account-credit-control button,
.account-quote-list button,
.provider-pass-entry button,
.provider-replacement-button,
.provider-quote-form button,
.provider-operation-list article button {
  position: relative;
  display: inline-flex;
  min-width: 0;
  min-height: var(--gn-button-height);
  align-items: center;
  justify-content: center;
  gap: 8px;
  overflow: hidden;
  border-radius: var(--gn-button-radius);
  padding: 9px 16px;
  font: inherit;
  font-size: 14px;
  font-weight: 540;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
}

.launch-primary svg,
.launch-secondary svg,
.launch-soft-button svg,
.primary-action svg,
.secondary-action svg,
.glass-action svg,
.danger-action svg,
.admin-theme-toggle svg,
.ops-actions button svg,
.admin-export-actions button svg,
.admin-launch-actions button svg,
.admin-readiness-actions button svg,
.booking-draft-bar button svg,
.booking-intake-actions button svg,
.intake-result-actions button svg,
.completion-actions button svg,
.client-referral-share button svg,
.launch-wallet-actions button svg,
.launch-wallet-offers button svg,
.account-credit-control button svg,
.account-quote-list button svg,
.provider-pass-entry button svg,
.provider-replacement-button svg,
.provider-quote-form button svg,
.provider-operation-list article button svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  pointer-events: none;
}

/* Labels stay mathematically centred while icons keep a stable edge position. */
:is(.launch-primary, .launch-secondary, .launch-soft-button, .primary-action, .secondary-action, .glass-action, .danger-action):not([aria-label]):has(> svg:first-child) {
  padding-right: 44px;
  padding-left: 44px;
}

:is(.launch-primary, .launch-secondary, .launch-soft-button, .primary-action, .secondary-action, .glass-action, .danger-action):not([aria-label]) > svg:first-child {
  position: absolute;
  left: 15px;
}

#bookingContinueButton > svg {
  right: 15px;
  left: auto;
}

.launch-primary,
.launch-actions .launch-primary,
.primary-action {
  border: 1px solid rgba(186, 132, 44, 0.54);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3), transparent 48%),
    linear-gradient(135deg, #f376aa 0%, #e85897 64%, #ce8f3e 145%);
  color: #2c1420;
  box-shadow: 0 8px 20px rgba(196, 55, 118, 0.19), inset 0 1px 0 rgba(255, 255, 255, 0.48), inset 0 -1px 0 rgba(105, 31, 66, 0.16);
}

.launch-secondary,
.secondary-action,
.glass-action,
.launch-actions .launch-secondary,
.admin-theme-toggle,
.ops-actions button,
.admin-export-actions button,
.admin-launch-actions button,
.admin-readiness-actions button,
.booking-draft-bar button,
.booking-intake-actions button,
.intake-result-actions button,
.completion-actions button,
.client-referral-share button,
.launch-wallet-actions button,
.launch-wallet-offers button,
.account-credit-control button,
.account-quote-list button,
.provider-pass-entry button,
.provider-replacement-button,
.provider-quote-form button,
.provider-operation-list article button {
  border: 1px solid transparent;
  background:
    linear-gradient(var(--gn-button-surface), var(--gn-button-surface)) padding-box,
    linear-gradient(135deg, rgba(232, 88, 151, 0.48), rgba(201, 154, 62, 0.54)) border-box;
  color: var(--gn-button-text);
  box-shadow: var(--gn-button-shadow);
}

.launch-soft-button {
  border: 1px solid var(--gn-button-line);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.52), transparent),
    var(--gn-button-pink-soft);
  color: var(--gn-button-muted);
  box-shadow: 0 4px 12px rgba(112, 39, 73, 0.07), inset 0 1px 0 rgba(255, 255, 255, 0.48);
}

.danger-action,
.account-confirm-cancel {
  border-color: rgba(183, 55, 75, 0.34);
  background: linear-gradient(180deg, #fff8f8, #fff0f2);
  color: #a52f4d;
  box-shadow: 0 6px 16px rgba(148, 38, 60, 0.1);
}

body[data-theme="dark"] .launch-primary,
body[data-theme="dark"] .launch-actions .launch-primary,
body[data-theme="dark"] .primary-action {
  border-color: rgba(232, 189, 104, 0.55);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 48%),
    linear-gradient(135deg, #f47aaa 0%, #d95391 72%, #c08c41 148%);
  color: #27131e;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

body[data-theme="dark"] .launch-secondary,
body[data-theme="dark"] .secondary-action,
body[data-theme="dark"] .glass-action,
body[data-theme="dark"] .launch-actions .launch-secondary,
body[data-theme="dark"] .admin-theme-toggle,
body[data-theme="dark"] .ops-actions button,
body[data-theme="dark"] .admin-export-actions button,
body[data-theme="dark"] .admin-launch-actions button,
body[data-theme="dark"] .admin-readiness-actions button,
body[data-theme="dark"] .booking-draft-bar button,
body[data-theme="dark"] .booking-intake-actions button,
body[data-theme="dark"] .intake-result-actions button,
body[data-theme="dark"] .completion-actions button,
body[data-theme="dark"] .client-referral-share button,
body[data-theme="dark"] .launch-wallet-actions button,
body[data-theme="dark"] .launch-wallet-offers button,
body[data-theme="dark"] .account-credit-control button,
body[data-theme="dark"] .account-quote-list button,
body[data-theme="dark"] .provider-pass-entry button,
body[data-theme="dark"] .provider-replacement-button,
body[data-theme="dark"] .provider-quote-form button,
body[data-theme="dark"] .provider-operation-list article button {
  background:
    linear-gradient(var(--gn-button-surface), var(--gn-button-surface)) padding-box,
    linear-gradient(135deg, rgba(243, 116, 170, 0.52), rgba(232, 189, 104, 0.48)) border-box;
  color: var(--gn-button-text);
}

body[data-theme="dark"] .launch-soft-button {
  border-color: rgba(243, 116, 170, 0.25);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent), #351b29;
  color: #f5dce8;
  box-shadow: var(--gn-button-shadow);
}

body[data-theme="dark"] .danger-action,
body[data-theme="dark"] .account-confirm-cancel {
  border-color: rgba(255, 127, 147, 0.35);
  background: #3b1d27;
  color: #ffb5c4;
}

@media (hover: hover) {
  .launch-primary:hover,
  .launch-actions .launch-primary:hover,
  .primary-action:hover {
    border-color: rgba(164, 111, 29, 0.66);
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.34), transparent 48%),
      linear-gradient(135deg, #f781b2 0%, #e54e91 66%, #d29b47 145%);
    box-shadow: 0 11px 26px rgba(190, 48, 112, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.5);
    transform: translateY(-1px);
  }

  .launch-secondary:hover,
  .secondary-action:hover,
  .glass-action:hover,
  .launch-soft-button:hover,
  .admin-theme-toggle:hover,
  .ops-actions button:hover,
  .admin-export-actions button:hover,
  .admin-launch-actions button:hover,
  .admin-readiness-actions button:hover,
  .booking-draft-bar button:hover,
  .booking-intake-actions button:hover,
  .intake-result-actions button:hover,
  .completion-actions button:hover,
  .client-referral-share button:hover,
  .launch-wallet-actions button:hover,
  .launch-wallet-offers button:hover,
  .account-credit-control button:hover,
  .account-quote-list button:hover,
  .provider-pass-entry button:hover,
  .provider-replacement-button:hover,
  .provider-quote-form button:hover,
  .provider-operation-list article button:hover {
    border-color: transparent;
    background:
      linear-gradient(var(--gn-button-surface), var(--gn-button-surface)) padding-box,
      linear-gradient(135deg, rgba(232, 88, 151, 0.78), rgba(201, 154, 62, 0.74)) border-box;
    color: var(--gn-button-text);
    box-shadow: var(--gn-button-shadow-hover);
    transform: translateY(-1px);
  }
}

.launch-primary:active,
.launch-secondary:active,
.launch-soft-button:active,
.primary-action:active,
.secondary-action:active,
.glass-action:active,
.admin-theme-toggle:active,
.ops-actions button:active,
.admin-export-actions button:active {
  box-shadow: 0 3px 9px rgba(93, 27, 60, 0.12), inset 0 1px 2px rgba(63, 20, 42, 0.13);
  transform: translateY(0);
}

button:disabled,
.launch-primary[aria-disabled="true"],
.launch-secondary[aria-disabled="true"] {
  filter: grayscale(0.16);
  box-shadow: none;
  opacity: 0.52;
  transform: none;
}

/* Compact square controls remain stable and never move neighbouring actions. */
.launch-icon-button,
.launch-theme-toggle,
.provider-theme-toggle,
.admin-dialog-close,
.icon-button {
  display: inline-grid;
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  place-items: center;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: var(--gn-button-radius);
  background:
    linear-gradient(var(--gn-button-surface), var(--gn-button-surface)) padding-box,
    linear-gradient(135deg, rgba(232, 88, 151, 0.42), rgba(201, 154, 62, 0.5)) border-box;
  color: var(--gn-button-text);
  padding: 0;
  box-shadow: var(--gn-button-shadow);
}

.launch-actions .launch-theme-toggle {
  display: inline-grid;
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  place-items: center;
  overflow: hidden;
  border-radius: var(--gn-button-radius);
  padding: 0;
  font-weight: 500;
}

.launch-icon-button svg,
.launch-theme-toggle svg,
.provider-theme-toggle svg,
.admin-dialog-close svg,
.icon-button svg {
  width: 18px;
  height: 18px;
  margin: 0;
  pointer-events: none;
}

.launch-theme-toggle span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 1px;
  margin: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  transform: translate(-50%, -50%);
  white-space: nowrap;
  pointer-events: none;
}

.launch-form .launch-icon-button {
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
}

.booking-draft-bar button:last-child {
  width: 40px;
  min-width: 40px;
  padding: 0;
}

@media (hover: hover) {
  .launch-icon-button:hover,
  .launch-theme-toggle:hover,
  .provider-theme-toggle:hover,
  .admin-dialog-close:hover,
  .icon-button:hover {
    background:
      linear-gradient(var(--gn-button-pink-soft), var(--gn-button-pink-soft)) padding-box,
      linear-gradient(135deg, rgba(232, 88, 151, 0.72), rgba(201, 154, 62, 0.7)) border-box;
    color: var(--gn-button-pink-deep);
    box-shadow: var(--gn-button-shadow-hover);
    transform: translateY(-1px);
  }
}

/* Tabs and filters are compact controls, not primary calls to action. */
.client-hub-tabs button,
.client-auth-tabs button,
.provider-workspace-tabs button,
.account-tabs button,
.admin-tab,
.nav-button,
.forum-category-filter button,
.deal-tabs button,
.waitlist-options button,
.treatment-category-filters button,
.availability-slot-list button,
.slot-list button,
.package-list button,
.consult-options button,
.addon-options button,
.style-options button,
.area-filters button,
.blocked-examples button {
  display: inline-flex;
  min-width: 0;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--gn-button-line);
  border-radius: 6px;
  background: var(--gn-button-surface);
  color: var(--gn-button-muted);
  padding: 7px 11px;
  font: inherit;
  font-size: 12px;
  font-weight: 520;
  line-height: 1.25;
  text-align: center;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
  transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.treatment-category-filters button {
  min-height: 36px;
  border-radius: 999px;
  padding-inline: 13px;
}

.launch-form .treatment-category-filters button {
  min-height: 36px;
  border-color: var(--gn-button-line);
  background: var(--gn-button-surface);
  color: var(--gn-button-muted);
  padding-inline: 13px;
}

.launch-form .treatment-category-filters button.selected {
  border-color: rgba(207, 66, 128, 0.48);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.48), transparent),
    var(--gn-button-pink-soft);
  color: var(--gn-button-pink-deep);
  box-shadow: inset 0 -2px 0 rgba(201, 154, 62, 0.32), 0 4px 12px rgba(151, 45, 94, 0.08);
}

:is(.client-hub-tabs button, .client-auth-tabs button, .provider-workspace-tabs button, .account-tabs button, .admin-tab, .nav-button, .forum-category-filter button, .deal-tabs button, .waitlist-options button, .treatment-category-filters button, .availability-slot-list button, .slot-list button, .package-list button, .consult-options button, .addon-options button, .style-options button, .area-filters button).active,
:is(.treatment-category-filters button, .availability-slot-list button, .slot-list button, .package-list button, .consult-options button, .addon-options button, .style-options button, .area-filters button).selected {
  border-color: rgba(207, 66, 128, 0.48);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.48), transparent),
    var(--gn-button-pink-soft);
  color: var(--gn-button-pink-deep);
  box-shadow: inset 0 -2px 0 rgba(201, 154, 62, 0.32), 0 4px 12px rgba(151, 45, 94, 0.08);
}

body[data-theme="dark"] :is(.client-hub-tabs button, .client-auth-tabs button, .provider-workspace-tabs button, .account-tabs button, .admin-tab, .nav-button, .forum-category-filter button, .deal-tabs button, .waitlist-options button, .treatment-category-filters button, .availability-slot-list button, .slot-list button, .package-list button, .consult-options button, .addon-options button, .style-options button, .area-filters button, .blocked-examples button) {
  border-color: rgba(243, 116, 170, 0.2);
  background: #291722;
  color: #e7ceda;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

body[data-theme="dark"] :is(.client-hub-tabs button, .client-auth-tabs button, .provider-workspace-tabs button, .account-tabs button, .admin-tab, .nav-button, .forum-category-filter button, .deal-tabs button, .waitlist-options button, .treatment-category-filters button, .availability-slot-list button, .slot-list button, .package-list button, .consult-options button, .addon-options button, .style-options button, .area-filters button).active,
body[data-theme="dark"] :is(.treatment-category-filters button, .availability-slot-list button, .slot-list button, .package-list button, .consult-options button, .addon-options button, .style-options button, .area-filters button).selected {
  border-color: rgba(243, 116, 170, 0.46);
  background: #432136;
  color: #ffb8d5;
  box-shadow: inset 0 -2px 0 rgba(232, 189, 104, 0.38);
}

body[data-theme="dark"] .launch-form .treatment-category-filters button {
  border-color: rgba(243, 116, 170, 0.2);
  background: #291722;
  color: #e7ceda;
}

body[data-theme="dark"] .launch-form .treatment-category-filters button.selected {
  border-color: rgba(243, 116, 170, 0.46);
  background: #432136;
  color: #ffb8d5;
  box-shadow: inset 0 -2px 0 rgba(232, 189, 104, 0.38);
}

/* Wide command buttons centre their wording independently from the leading icon. */
:is(.admin-theme-toggle, .ops-actions button, .admin-export-actions button, .admin-launch-actions button, .admin-readiness-actions button, .booking-draft-bar button, .booking-intake-actions button, .intake-result-actions button, .completion-actions button, .client-referral-share button, .launch-wallet-actions button, .launch-wallet-offers button, .account-credit-control button, .account-quote-list button, .provider-pass-entry button, .provider-replacement-button, .provider-quote-form button, .provider-operation-list article button):not([aria-label]):has(> svg:first-child) {
  padding-right: 34px;
  padding-left: 34px;
}

:is(.admin-theme-toggle, .ops-actions button, .admin-export-actions button, .admin-launch-actions button, .admin-readiness-actions button, .booking-draft-bar button, .booking-intake-actions button, .intake-result-actions button, .completion-actions button, .client-referral-share button, .launch-wallet-actions button, .launch-wallet-offers button, .account-credit-control button, .account-quote-list button, .provider-pass-entry button, .provider-replacement-button, .provider-quote-form button, .provider-operation-list article button):not([aria-label]) > svg:first-child {
  position: absolute;
  left: 12px;
}

/* Card-like buttons retain their information layout while gaining better feedback. */
.service-finder-card,
.guide-grid button,
.client-account-bookings button,
.account-action-list > button,
.account-saved-list > button,
.client-reminder-suggestions button,
.provider-card-actions button {
  border-radius: var(--gn-button-radius);
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

@media (hover: hover) {
  .service-finder-card:hover,
  .guide-grid button:hover,
  .client-account-bookings button:hover,
  .account-action-list > button:hover,
  .account-saved-list > button:hover,
  .client-reminder-suggestions button:hover,
  .provider-card-actions button:hover {
    border-color: rgba(220, 75, 140, 0.42);
    box-shadow: 0 8px 20px rgba(114, 37, 75, 0.11);
    transform: translateY(-1px);
  }
}

.booking-steps button {
  border-radius: 6px;
  font-weight: 500;
  text-align: left;
  transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}

.booking-steps button.active {
  border-color: rgba(224, 80, 143, 0.28);
  box-shadow: inset 0 -2px 0 rgba(201, 154, 62, 0.3);
}

.launch-form input[type="file"]::file-selector-button {
  min-height: 36px;
  border: 1px solid var(--gn-button-line);
  border-radius: 6px;
  background: var(--gn-button-pink-soft);
  color: var(--gn-button-muted);
  padding: 7px 11px;
  font: inherit;
  font-size: 12px;
  font-weight: 520;
  cursor: pointer;
}

.launch-hero-actions,
.launch-cta-row,
.match-console-actions,
.account-dialog-actions,
.ops-actions,
.completion-actions,
.intake-result-actions {
  align-items: center;
  gap: 10px;
}

.launch-cta-row.center {
  justify-content: center;
}

.booking-flow-controls:has(#bookingBackButton[hidden]) {
  grid-template-columns: minmax(0, 1fr) auto;
}

.booking-flow-controls:has(#bookingContinueButton[hidden]) {
  grid-template-columns: auto minmax(0, 1fr);
}

.launch-actions .launch-primary,
.launch-actions .launch-secondary {
  min-height: 42px;
  padding-top: 7px;
  padding-bottom: 7px;
  font-size: 13px;
}

.admin-export-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.admin-page .admin-export-actions button:not([aria-label]) {
  min-width: 0;
  min-height: 42px;
  gap: 4px;
  padding: 7px 6px;
  font-size: 10.5px;
  white-space: nowrap;
}

.admin-page .admin-export-actions button:not([aria-label]) > svg:first-child {
  position: static;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.glownow-cookie-settings {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  padding: 7px 2px;
  line-height: 1.2;
  text-align: center;
}

.glownow-cookie-settings:hover {
  color: var(--gn-button-pink-deep);
  text-decoration-color: var(--gn-button-gold);
}

@media (max-width: 700px) {
  .ops-login {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .ops-login > button {
    width: 100%;
  }

  .ops-header-actions,
  .provider-header-actions {
    width: 100%;
  }

  .ops-header-actions > :not(.admin-theme-toggle),
  .provider-header-actions > :not(.provider-theme-toggle) {
    min-width: 0;
    flex: 1 1 auto;
  }

  .admin-export-actions button {
    width: 100%;
    min-height: 42px;
    padding: 7px 8px;
    font-size: 11px;
  }
}

@media (max-width: 640px) {
  .launch-hero-actions,
  .launch-cta-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .launch-hero-actions > :is(a, button),
  .launch-cta-row > :is(a, button) {
    width: 100%;
  }

  .booking-flow-controls {
    grid-template-columns: minmax(78px, 0.75fr) minmax(58px, 1fr) minmax(116px, 1fr);
    gap: 7px;
  }

  .booking-flow-controls:has(#bookingBackButton[hidden]) {
    grid-template-columns: minmax(0, 1fr) minmax(132px, 1fr);
  }

  .booking-flow-controls:has(#bookingContinueButton[hidden]) {
    grid-template-columns: minmax(90px, 0.8fr) minmax(0, 1fr);
  }

  .booking-flow-controls > span {
    min-width: 0;
    font-size: 11px;
    line-height: 1.2;
  }

  .booking-flow-controls .launch-primary,
  .booking-flow-controls .launch-soft-button {
    width: 100%;
    min-height: 44px;
    justify-self: stretch;
    padding-right: 24px;
    padding-left: 24px;
    font-size: 13px;
    white-space: nowrap;
  }

  body .booking-flow-controls :is(.launch-primary, .launch-soft-button):not([aria-label]):has(> svg:first-child) {
    padding-right: 24px;
    padding-left: 24px;
  }

  .booking-flow-controls :is(.launch-primary, .launch-soft-button) > svg:first-child {
    left: 11px;
  }

  .booking-flow-controls #bookingContinueButton > svg {
    right: 11px;
    left: auto;
  }

  .launch-form-section > .launch-primary[type="submit"],
  .launch-form-panel > .launch-primary[type="submit"] {
    width: 100%;
  }

  .account-dialog-actions,
  .ops-actions,
  .completion-actions,
  .intake-result-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .account-dialog-actions > :is(button, a),
  .ops-actions > :is(button, a),
  .completion-actions > :is(button, a),
  .intake-result-actions > :is(button, a) {
    width: 100%;
  }

  .client-hub-tabs button,
  .provider-workspace-tabs button {
    min-height: 42px;
  }
}

@media (max-width: 430px) {
  .launch-primary,
  .launch-secondary,
  .launch-soft-button,
  .primary-action,
  .secondary-action,
  .glass-action {
    font-size: 13px;
  }

  .admin-export-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .treatment-category-filters {
    scroll-padding-inline: 2px;
  }

}

@media (max-width: 700px) {
  body.account-page .client-hub-tabs {
    display: grid;
    width: 100%;
    grid-auto-flow: column;
    grid-auto-columns: minmax(132px, max-content);
    justify-content: start;
    gap: 8px;
    margin: 14px 0 18px;
    padding: 6px 2px 10px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: inline proximity;
    scrollbar-gutter: stable;
  }

  body.account-page .client-hub-tabs button {
    width: auto;
    min-width: 132px;
    min-height: 42px;
    flex: none;
    justify-content: flex-start;
    padding: 8px 12px;
    overflow: visible;
    white-space: nowrap;
    scroll-snap-align: start;
  }

  body.account-page .client-hub-tabs button svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
  }
}

@media (max-width: 350px) {
  body .service-basket-head .add-service-button.launch-soft-button:not([aria-label]):has(> svg:first-child) {
    padding-right: 22px;
    padding-left: 22px;
    font-size: 12px;
    white-space: nowrap;
  }

  body .service-basket-head .add-service-button.launch-soft-button > svg:first-child {
    left: 5px;
    width: 14px;
    height: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .launch-primary,
  .launch-secondary,
  .launch-soft-button,
  .primary-action,
  .secondary-action,
  .glass-action,
  button {
    transition-duration: 0.01ms;
  }
}
