/* Labkhand Booking & Family Flow 1.0.0 — every rule is scoped to body.lk-booking-vnext (booking page, gate active)
   or to .lkbff-thanks (thank-you note). Existing components keep their own CSS; only visibility is controlled here. */

/* Fail-safe: if the flow script never runs, the untouched form is revealed after 4s. */
@keyframes lkbff-failsafe { to { visibility: visible; max-height: none; overflow: visible; } }
body.lk-booking-vnext:not(.lkbff-js) .lv3-booking-form { visibility: hidden; max-height: 0; overflow: hidden; animation: lkbff-failsafe 0s 4s forwards; }

/* Shells are hidden until their state is active. */
body.lk-booking-vnext .lkbff-step0-wrap,
body.lk-booking-vnext .lkbff-bar,
body.lk-booking-vnext .lkbff-b-head,
body.lk-booking-vnext .lkbff-quick,
body.lk-booking-vnext .lkbff-b-actions { display: none; }
body.lk-booking-vnext.lkbff-js:not(.lkbff-route-a):not(.lkbff-route-b) .lv3-booking-form,
body.lk-booking-vnext.lkbff-js:not(.lkbff-route-a):not(.lkbff-route-b) #lv3-main .lv3-booking-form { display: none !important; }
body.lk-booking-vnext.lkbff-step0 .lkbff-step0-wrap { display: block; }
body.lk-booking-vnext.lkbff-route-a .lkbff-bar:not(.lkbff-quick-bar),
body.lk-booking-vnext.lkbff-b-login .lkbff-bar:not(.lkbff-quick-bar),
body.lk-booking-vnext.lkbff-b-quick .lkbff-bar:not(.lkbff-quick-bar),
body.lk-booking-vnext.lkbff-b-login .lkbff-b-head,
body.lk-booking-vnext.lkbff-b-login .lkbff-b-actions,
body.lk-booking-vnext.lkbff-b-quick .lkbff-quick { display: block; }
body.lk-booking-vnext .lkbff-quick .lkbff-bar { display: flex; }

/* Returning — login: only the existing membership card (code + existing recovery). */
/* #lv3-main variants: the V3 structural stylesheet forces .lv3-btn visible with an ID selector. */
body.lk-booking-vnext.lkbff-b-login .lkmm-flow > :not(.lkmm-membership),
body.lk-booking-vnext.lkbff-b-login #lv3-main .lkmm-flow > :not(.lkmm-membership) { display: none !important; }
body.lk-booking-vnext.lkbff-b-login .lkmm-flow { padding-bottom: 0 !important; }
body.lk-booking-vnext.lkbff-b-login.lkbff-recovering .lkmm-membership > input[name="membership_code"],
body.lk-booking-vnext.lkbff-b-login.lkbff-recovering .lkbff-continue,
body.lk-booking-vnext.lkbff-b-login.lkbff-recovering #lv3-main .lkbff-continue { display: none !important; }

/* Returning — quick booking: service, stylist, date, time, notes + existing submit. */
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lkmm-child,
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lkmm-dob,
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lkmm-phone,
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lkmm-phone2,
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lkmm-familiarity,
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lkmm-membership,
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lkmm-referral,
body.lk-booking-vnext.lkbff-b-quick .lkmm-flow > .lk-bcl-hint,
body.lk-booking-vnext.lkbff-b-quick #lv3-main .lkmm-flow > .lkmm-card:is(.lkmm-child, .lkmm-dob, .lkmm-phone, .lkmm-phone2, .lkmm-familiarity, .lkmm-membership, .lkmm-referral) { display: none !important; }

/* Step zero — 1.0.2: two whole-card buttons, one label each (base look follows .lkmm-card). */
/* 1.0.3: one clearance for the fixed home dock (existing component, not restyled). */
body.lk-booking-vnext { --lkbff-dock-space: calc(96px + env(safe-area-inset-bottom, 0px)); }
html:has(body.lk-booking-vnext) { scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
body.lk-booking-vnext .lkmm-flow :is(input, select, textarea, button), body.lk-booking-vnext :is(.lkbff-choice, .lkbff-continue, .lkbff-back) { scroll-margin-bottom: var(--lkbff-dock-space); }
body.lk-booking-vnext .lkbff-step0-wrap { margin: 0 0 12px; padding-bottom: var(--lkbff-dock-space); direction: rtl; }
body.lk-booking-vnext .lkbff-choices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
@media (min-width: 760px) { body.lk-booking-vnext .lkbff-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body.lk-booking-vnext .lkbff-choices > .lkbff-choice.lkmm-card {
	box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 84px; margin: 0 !important;
	padding: 16px 14px !important; border: 2px solid #cfe2e8 !important; border-radius: 22px !important; cursor: pointer; appearance: none; -webkit-appearance: none;
	background: linear-gradient(150deg, #fff 0%, #f8fcfd 100%) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 5px 0 #d6e8ed, 0 12px 22px rgba(31, 78, 104, .10) !important;
	transition: transform .12s ease, box-shadow .12s ease;
	font: 900 18px/1.6 Estedad, Vazirmatn, Tahoma, sans-serif; color: #173e5b; text-align: center; text-transform: none; letter-spacing: normal;
	overflow-wrap: anywhere; -webkit-tap-highlight-color: transparent;
}
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--first.lkmm-card { border-color: #bfe9ec !important; background: linear-gradient(150deg, #fff 0%, #eefbfb 100%) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 5px 0 #c7e9ec, 0 12px 22px rgba(23, 150, 160, .12) !important; }
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--returning.lkmm-card { border-color: #f5cfe0 !important; background: linear-gradient(150deg, #fff 0%, #fff3f8 100%) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 5px 0 #f3d3e2, 0 12px 22px rgba(200, 80, 140, .10) !important; }
@media (hover: hover) { body.lk-booking-vnext .lkbff-choices > .lkbff-choice.lkmm-card:hover { transform: translateY(-1px); } }
body.lk-booking-vnext .lkbff-choices > .lkbff-choice.lkmm-card:active { transform: translateY(3px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 2px 0 #d6e8ed, 0 5px 10px rgba(31, 78, 104, .08) !important; }
@media (prefers-reduced-motion: reduce) { body.lk-booking-vnext .lkbff-choices > .lkbff-choice.lkmm-card { transition: none; } }
body.lk-booking-vnext .lkbff-choice:focus-visible { outline: 3px solid #17b9c6; outline-offset: 3px; }
body.lk-booking-vnext .lkbff-continue {
	box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; margin-top: 8px;
	font: 900 16px/1.4 Vazirmatn, Estedad, Tahoma, sans-serif; cursor: pointer;
}
body.lk-booking-vnext .lkbff-continue[disabled] { opacity: .6; cursor: progress; }

/* 1.0.2 — header row: existing page title + light secondary «تغییر نوع رزرو» (hidden on step zero). */
body.lk-booking-vnext .lkbff-head-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: nowrap; min-width: 0; direction: rtl; }
body.lk-booking-vnext .lkbff-head-row > :is(h1, h2) { flex: 1 1 auto; min-width: 0; margin-bottom: 0; overflow-wrap: anywhere; }
body.lk-booking-vnext .lkbff-back {
	display: none; flex: 0 0 auto; align-items: center; min-height: 40px; margin: 0; padding: 0 12px; border: 1px solid #cfe2e8; border-radius: 999px;
	background: #fff; color: #087d8a; box-shadow: none; cursor: pointer; white-space: nowrap; text-transform: none; letter-spacing: normal;
	font: 800 13px/1.4 Vazirmatn, Estedad, Tahoma, sans-serif;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-route-b) .lkbff-back { display: inline-flex; }
body.lk-booking-vnext .lkbff-back:focus-visible { outline: 3px solid #17b9c6; outline-offset: 2px; }
body.lk-booking-vnext .lkbff-bar:empty { display: none !important; }
@media (max-width: 400px) {
	body.lk-booking-vnext .lkbff-head-row { gap: 8px; }
	body.lk-booking-vnext .lkbff-head-row > :is(h1, h2) { font-size: clamp(19px, 6.2vw, 24px); }
	body.lk-booking-vnext .lkbff-back { padding: 0 10px; font-size: 12px; }
}

/* 1.0.2 — returning login: lighter nesting (existing recovery fields reused). 1.0.9: the extra helper line was removed. */
body.lk-booking-vnext.lkbff-b-login .lkmm-membership .lkmm-recovery { margin-top: 10px; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; }
body.lk-booking-vnext.lkbff-b-login .lkmm-recovery > input:not([type="hidden"]) { display: block !important; width: 100%; margin: 0 0 10px !important; }

/* Returning header / actions / messages. */
body.lk-booking-vnext .lkbff-b-head { margin: 0 0 8px; direction: rtl; }
body.lk-booking-vnext .lkbff-b-title { margin: 0 4px 4px; font: 900 22px/1.6 Estedad, Vazirmatn, Tahoma, sans-serif; color: #173e5b; outline: none; }
body.lk-booking-vnext .lkbff-b-text { margin: 0 4px !important; }
body.lk-booking-vnext .lkbff-b-actions { margin: 10px 0 0; padding-bottom: var(--lkbff-dock-space); direction: rtl; }
body.lk-booking-vnext .lkbff-msg { min-height: 22px; margin: 8px 4px 0; font: 800 13px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif; color: #a13a32; }
body.lk-booking-vnext .lkbff-msg.is-ok { color: #176c58; }
body.lk-booking-vnext .lkbff-bar { margin: 0 0 8px; direction: rtl; }
body.lk-booking-vnext .lkbff-link {
	min-height: 44px; padding: 0 6px; border: 0; background: none; color: #087d8a; cursor: pointer;
	font: 900 14px/1.4 Vazirmatn, Estedad, Tahoma, sans-serif; text-decoration: underline; text-underline-offset: 4px;
}

/* Account inside the booking column (existing .lkfam-* cards). */
body.lk-booking-vnext .lkbff-account.lkfam-shell { max-width: 100%; margin: 0 0 12px; padding: 0; }
body.lk-booking-vnext .lkbff-account .lkfam-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 10px; }
body.lk-booking-vnext .lkbff-account .lkfam-stats { grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); }
body.lk-booking-vnext .lkbff-account h2 { overflow-wrap: anywhere; outline: none; }
body.lk-booking-vnext .lkbff-account .lkfam-cta-card .lkfam-btn { min-height: 52px; }
body.lk-booking-vnext .lkbff-account .lkfam-benefit { flex-wrap: wrap; }
body.lk-booking-vnext .lkbff-account .lkfam-benefit span { flex: 1 1 100%; }
@media (max-width: 760px) { body.lk-booking-vnext .lkbff-account .lkfam-cta-card .lkfam-btn { width: 100%; } }

/* Accessibility: visible focus, screen-reader-only heading. */
body.lk-booking-vnext .lkbff-choice__cta:focus-visible,
body.lk-booking-vnext .lkbff-continue:focus-visible,
body.lk-booking-vnext .lkbff-link:focus-visible,
body.lk-booking-vnext .lkbff-account .lkfam-btn:focus-visible { outline: 3px solid #17b9c6; outline-offset: 3px; }
body.lk-booking-vnext .lkbff-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Admin-only preview marker. */
body.lk-booking-vnext .lkbff-preview-badge {
	position: fixed; bottom: 96px; left: 8px; z-index: 99990; max-width: calc(100vw - 16px); box-sizing: border-box;
	padding: 4px 10px; border-radius: 999px; background: #173e5b; color: #fff; font: 800 11px/1.6 Tahoma, sans-serif; pointer-events: none; opacity: .85;
}

/* Thank-you note (inside the existing .lksb-success box). */
.lkbff-thanks { margin: 12px 0 0; text-align: right; direction: rtl; }
.lkbff-thanks p { margin: 0 0 6px; line-height: 1.9; }

/* 1.0.1 — /family-account/ (No-OTP) : reuses .lkfam-* and the re-scoped .lk-thanks-* card. */
body.lk-family-vnext .lkbff-success { margin: 34px 0 14px; } /* same top spacing as the thank-you shell (.lk-thanks-shell) */
@media (max-width: 520px) { body.lk-family-vnext .lkbff-success { margin-top: 24px; } }
body.lk-family-vnext .lkbff-success .lk-thanks-status { width: 52px; height: 52px; margin-bottom: 12px; }
body.lk-family-vnext .lkbff-success .lk-thanks-title { margin-bottom: 16px; outline: none; }
body.lk-family-vnext .lkbff-manage:not([hidden]) { display: inline-flex; align-items: center; min-height: 44px; margin-top: 10px; }
body.lk-family-vnext .lkbff-account .lkfam-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
body.lk-family-vnext .lkbff-account .lkfam-stats { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
body.lk-family-vnext .lkbff-account .lkfam-benefit { flex-wrap: wrap; }
body.lk-family-vnext .lkbff-account .lkfam-benefit span { flex: 1 1 100%; }
body.lk-family-vnext .lkbff-account h2 { overflow-wrap: anywhere; outline: none; }
body.lk-family-vnext .lkbff-pending-note { margin-top: 10px; }
body.lk-family-vnext .lkbff-logout { margin: 16px 0 0; text-align: center; }
body.lk-family-vnext .lkfam-link:focus-visible, body.lk-family-vnext .lkfam-btn:focus-visible { outline: 3px solid #17b9c6; outline-offset: 3px; }
body.lk-booking-vnext .lkbff-compact .lkfam-card-head { margin-bottom: 8px; }

/* 1.0.3 — one alignment rule for Booking vNext (RTL kept): titles, helper texts, card texts and buttons centred;
   explanatory paragraphs keep a readable width. The title/action row keeps its two-sided layout. */
body.lk-booking-vnext :is(.lkbff-b-title, .lkbff-b-text, .lkbff-msg) { text-align: center !important; }
body.lk-booking-vnext .lkbff-b-text { max-width: 32ch; margin-inline: auto !important; line-height: 1.9; }
/* .lkbff-b-text also carries .lkmm-help (Mini Master forces right/margins there with 0,3,1 !important) */
body.lk-booking-vnext.lkmm-ready .lkbff-b-head .lkbff-b-text { text-align: justify !important; text-align-last: center; margin-inline: auto !important; max-width: 32ch; }
body.lk-booking-vnext .lkbff-msg { max-width: 36ch; margin-inline: auto; }
body.lk-booking-vnext.lkmm-ready .lkmm-flow :is(.lkmm-help, .lkmm-title, .lkmm-dob-summary, .lkmm-error, .lkmm-time-head, .lkmm-recovery-result) { text-align: center !important; }
body.lk-booking-vnext.lkmm-ready .lkmm-flow .lkmm-help { max-width: 40ch; margin-inline: auto !important; line-height: 1.9 !important; }
body.lk-booking-vnext.lkmm-ready .lkmm-flow :is(.lkmm-trigger, .lkmm-action, .lkmm-submit) { justify-content: center !important; text-align: center !important; }
body.lk-booking-vnext.lkmm-ready .lkmm-flow input.lkmm-control { text-align: center !important; }
body.lk-booking-vnext.lkmm-ready .lkmm-flow input.lkmm-control::placeholder { text-align: center; }
body.lk-booking-vnext .lkbff-quick-bar { justify-content: center; }
body.lk-booking-vnext .lkbff-compact .lkfam-card-head { justify-content: center; text-align: center; }
body.lk-booking-vnext .lkbff-compact .lkfam-card { text-align: center; }

/* 1.0.4 — step-zero cards filled with the Labkhand turquoise / pink (same size, shape, text), 3D like the home dock button. */
body.lk-booking-vnext .lkbff-choices > .lkbff-choice.lkmm-card { color: #fff !important; font-size: 19px; text-shadow: 0 1px 1px rgba(0, 0, 0, .18); border-width: 1px !important; }
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--first.lkmm-card {
	background: linear-gradient(160deg, #1b9fa9 0%, #11858f 100%) !important; border-color: #0f7c86 !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 5px 0 #0c6a73, 0 12px 22px rgba(12, 106, 115, .28) !important;
}
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--returning.lkmm-card {
	background: linear-gradient(160deg, #df5592 0%, #c63f7a 100%) !important; border-color: #b93a72 !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 5px 0 #a3305f, 0 12px 22px rgba(163, 48, 95, .26) !important;
}
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--first.lkmm-card:active { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 2px 0 #0c6a73, 0 5px 10px rgba(12, 106, 115, .22) !important; }
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--returning.lkmm-card:active { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 2px 0 #a3305f, 0 5px 10px rgba(163, 48, 95, .2) !important; }
body.lk-booking-vnext .lkbff-choice:focus-visible { outline: 3px solid #173e5b; outline-offset: 3px; }

/* 1.0.4 — hero row: same vertical rhythm as the hero, title/action vertically centred. */
body.lk-booking-vnext .lkbff-head-row { margin: 12px 0 10px; }
body.lk-booking-vnext .lkbff-head-row > :is(h1, h2) { margin-top: 0; }

/* 1.0.4 — multi-line explanatory text: justified RTL body with a centred last line (tidy both edges, single lines stay centred). */
body.lk-booking-vnext .lkbff-b-head .lkbff-b-text,
body.lk-booking-vnext.lkmm-ready .lkmm-flow .lkmm-help { text-align: justify !important; text-align-last: center; text-justify: inter-word; }

/* 1.0.4 — returning title: a little stronger, Labkhand turquoise (contrast ≥ 4.5:1 on white). */
body.lk-booking-vnext .lkbff-b-title { color: #0e7c86; font-size: 23px; font-weight: 950; }

/* 1.0.5 — helper paragraphs under «خدمت موردنظر…» and «آرایشگر موردنظر…» only: right-aligned RTL, no justify,
   natural spacing, controlled width (block stays centred in the card). Owner of the markup: Mini Master (.lkmm-help). */
body.lk-booking-vnext.lkmm-ready .lkmm-flow > :is(.lkmm-service, .lkmm-stylist) > .lkmm-help {
	direction: rtl; text-align: right !important; text-align-last: right !important; text-justify: auto !important;
	word-spacing: normal !important; letter-spacing: normal !important; max-width: 40ch; margin-inline: auto !important; overflow-wrap: break-word;
}

/* 1.0.7 — new-customer form (route first): service / stylist / date / time visual refinement.
   Replaces the 1.0.5 visual block (not stacked on it). Root cause of the weak 1.0.5 effect: the plugin
   «Labkhand Booking Final Polish Safe» 1.2.9 styles .lkmm-card / .lkmm-trigger / .lkmm-option and every selected
   state ([aria-pressed="true"], .is-selected) under «#lv3-main form.lv3-booking-form» with !important — an ID selector,
   so any class-only rule loses. These rules use the same #lv3-main + form anchor plus the Booking vNext route classes,
   so they win cleanly only inside the new-customer route of the preview; outside it nothing changes.
   Markup and states are Mini Master 1.13.3 (unchanged): triggers .is-selected / [disabled], options [aria-pressed],
   <span>title</span><small>price</small>, date options (no selected state; the trigger shows it), time chips .is-selected.
   Colours: existing Labkhand tokens only (turquoise #17b9c6 / #0e8e99 / #0c6a73, navy #173e5b, pink #a8074b / #fff0f6, cream #fffdf9). */

/* Cards: warm cream → light turquoise tint, brand border, soft visible depth. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow > .lkmm-card:is(.lkmm-service, .lkmm-stylist, .lkmm-date, .lkmm-time) {
	background: linear-gradient(160deg, #fffdf9 0%, #eef8fa 100%) !important;
	border: 1px solid #cfe2e8 !important;
	box-shadow: inset 0 1px 0 #fff, 0 4px 0 #dcecef, 0 12px 24px rgba(31, 78, 104, .09) !important;
}

/* Triggers (service, stylist, date) — default: tinted, brand edge, 3D lip. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow > .lkmm-card .lkmm-trigger {
	background: linear-gradient(180deg, #ffffff 0%, #f1f9fa 100%) !important;
	border: 1.5px solid #bfe0e6 !important;
	color: #173e5b !important;
	box-shadow: inset 0 1px 0 #fff, 0 4px 0 #d3e9ed, 0 8px 16px rgba(31, 78, 104, .07) !important;
	padding-block: 8px !important; padding-inline: 16px 44px !important;
	line-height: 1.6 !important; text-wrap: balance;
}
/* Trigger — selected (value chosen; for service it reads «title — price»): turquoise fill, 2px turquoise edge. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow > .lkmm-card .lkmm-trigger.is-selected {
	background: linear-gradient(160deg, #e6f8fa 0%, #cdeff3 100%) !important;
	border: 2px solid #17b9c6 !important;
	color: #0b5f6b !important;
	box-shadow: inset 0 1px 0 #fff, 0 4px 0 #9fd9e0, 0 8px 18px rgba(23, 150, 160, .16) !important;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow > .lkmm-card .lkmm-trigger:active {
	transform: translateY(2px) !important;
	box-shadow: inset 0 1px 0 #fff, 0 2px 0 #cfe6ea, 0 4px 8px rgba(31, 78, 104, .06) !important;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow > .lkmm-card .lkmm-trigger[disabled] {
	opacity: .65; cursor: not-allowed !important; background: #f3f6f7 !important; border: 1.5px solid #dfe7ea !important;
	color: #516b78 !important; box-shadow: none !important; transform: none !important;
}

/* Options (service, stylist) and date options — default: light tint, brand border, lip. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-options > .lkmm-option, .lkmm-date-options > .lkmm-date-option) {
	background: linear-gradient(180deg, #ffffff 0%, #f3fafb 100%) !important;
	border: 1px solid #cfe2e8 !important;
	color: #173e5b !important;
	box-shadow: inset 0 1px 0 #fff, 0 3px 0 #dcecef, 0 6px 12px rgba(31, 78, 104, .05) !important;
}
/* Title / price: title wraps inside its own column, price keeps its line and edge (no irregular detachment). */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-options > .lkmm-option > span {
	flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; line-height: 1.55; text-align: right;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-options > .lkmm-option > small {
	flex: none; white-space: nowrap; padding: 2px 9px; border-radius: 999px;
	background: #fff0f6; color: #a8074b; font-size: 12.5px; font-weight: 850; line-height: 1.7;
}
/* Option — selected: solid Labkhand turquoise, white text (contrast ≥ 4.5:1), clearly different from default. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-options > .lkmm-option[aria-pressed="true"] {
	background: linear-gradient(160deg, #0f7c86 0%, #0c6a73 100%) !important;
	border: 1px solid #0c6a73 !important;
	color: #fff !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 3px 0 #0a5a62, 0 8px 16px rgba(12, 106, 115, .22) !important;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-options > .lkmm-option[aria-pressed="true"] > small {
	background: rgba(255, 255, 255, .16); color: #fff;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-options > .lkmm-option, .lkmm-date-options > .lkmm-date-option):active {
	transform: translateY(2px); box-shadow: inset 0 1px 0 #fff, 0 1px 0 #d6e8ec !important;
}

/* Time chips — default: tint + brand edge + lip; selected: the same solid turquoise as selected options. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-time-grid, .lkmm-other-times) > .lkmm-time-chip {
	background: linear-gradient(180deg, #ffffff 0%, #eaf8fa 100%) !important;
	border: 1.5px solid #a6e1e7 !important;
	color: #0e5574 !important;
	box-shadow: inset 0 1px 0 #fff, 0 4px 0 #d3e9ed, 0 8px 14px rgba(17, 112, 131, .07) !important;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-time-grid, .lkmm-other-times) > .lkmm-time-chip.is-selected {
	transform: translateY(1px);
	background: linear-gradient(160deg, #0f7c86 0%, #0c6a73 100%) !important;
	border: 1.5px solid #0c6a73 !important;
	color: #fff !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 3px 0 #0a5a62, 0 8px 14px rgba(12, 106, 115, .22) !important;
}
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-time-grid, .lkmm-other-times) > .lkmm-time-chip:active {
	transform: translateY(3px); box-shadow: inset 0 1px 0 #fff, 0 1px 0 #cfe6ea !important;
}

/* Focus and motion. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-option, .lkmm-date-option, .lkmm-time-chip):focus-visible { outline: 3px solid #173e5b; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-trigger, .lkmm-option, .lkmm-date-option, .lkmm-time-chip) { transition: none !important; }
}

/* 1.0.6 — new-customer route: the stylist helper paragraph (Mini Master .lkmm-help appended to .lkmm-stylist) is not shown;
   display:none removes its box, so no vertical gap remains. Service helper and the stylist trigger/options are untouched. */
body.lk-booking-vnext:is(.lkbff-route-a, .lkbff-b-quick).lkmm-ready .lkmm-flow > .lkmm-stylist > .lkmm-help:not(.lkmm-leave-note) { display: none !important; } /* 1.0.9: the Taran leave note (Mini Master) stays visible */

/* 1.0.8 — Booking vNext preview polish (Amir phone screenshots 2026-09-30 22:32–22:37). Both vNext routes (new customer and
   returning quick booking); nothing here applies outside body.lk-booking-vnext. Anchor #lv3-main + form as in 1.0.7 so these
   rules beat «Final Polish Safe» (its generic :is([aria-pressed="true"], [aria-selected="true"], .is-selected, .is-active)
   is pink) and Audit-Fix (!important service-option grid with «— price»). */

/* Service list: from the first open the same tidy layout as after a selection — name right, price pill in one aligned column.
   Covers both markups: Audit-Fix first render (.lk-baf-option-label / .lk-baf-option-price) and Mini Master re-render (span / small). */
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-service .lkmm-options > .lkmm-option {
	display: flex !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important;
	gap: 4px !important; padding-inline: 8px !important; text-align: right !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-service .lkmm-options > .lkmm-option > :is(span, .lk-baf-option-label) {
	display: block !important; flex: 1 1 auto !important; min-width: 0 !important; overflow-wrap: anywhere; line-height: 1.55 !important; text-align: right !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-service .lkmm-options > .lkmm-option > :is(small, .lk-baf-option-price) {
	display: inline-block !important; flex: none !important; box-sizing: border-box; margin: 0 !important; padding: 1px 5px !important;
	border-radius: 999px !important; background: #fff0f6 !important; color: #a8074b !important; opacity: 1 !important;
	font-size: 11px !important; font-weight: 850 !important; line-height: 1.7 !important; text-align: center !important; white-space: nowrap !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-service .lkmm-options > .lkmm-option > .lk-baf-option-price::before { content: none !important; }

/* Nothing looks chosen until it is chosen (press/hover/.is-active never paint the selected colour). */
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-service, .lkmm-stylist) .lkmm-options > .lkmm-option:not([aria-pressed="true"]) {
	background: linear-gradient(180deg, #ffffff 0%, #f3fafb 100%) !important; border: 1px solid #cfe2e8 !important; color: #173e5b !important;
}
/* Chosen = the same solid Labkhand teal as the chosen stylist (1.0.7 values). */
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow :is(.lkmm-service, .lkmm-stylist) .lkmm-options > .lkmm-option[aria-pressed="true"] {
	background: linear-gradient(160deg, #0f7c86 0%, #0c6a73 100%) !important; border: 1px solid #0c6a73 !important; color: #fff !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 3px 0 #0a5a62, 0 8px 16px rgba(12, 106, 115, .22) !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-service .lkmm-options > .lkmm-option[aria-pressed="true"] > :is(small, .lk-baf-option-price) {
	background: rgba(255, 255, 255, .16) !important; color: #fff !important;
}

/* «زمان دیگری…»: text visible at once (no transition/animation from the interaction runtime), strong contrast. */
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-time .lkmm-more-time {
	transition: none !important; animation: none !important; opacity: 1 !important; filter: none !important;
	background: #ffffff !important; border: 1.5px solid #17b9c6 !important; color: #0b4f6c !important; -webkit-text-fill-color: #0b4f6c !important;
	font-weight: 850 !important;
}

/* «نحوه آشنایی»: chosen option and filled trigger use the same teal as the stylist card (Instagram was pink). */
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-familiarity .lk-baf-familiarity-options > .lk-baf-familiarity-option:not([aria-selected="true"]) {
	background: linear-gradient(180deg, #ffffff 0%, #f3fafb 100%) !important; border: 1px solid #cfe2e8 !important; color: #173e5b !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-familiarity .lk-baf-familiarity-options > .lk-baf-familiarity-option[aria-selected="true"] {
	background: linear-gradient(160deg, #0f7c86 0%, #0c6a73 100%) !important; border: 1px solid #0c6a73 !important; color: #fff !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 3px 0 #0a5a62, 0 8px 16px rgba(12, 106, 115, .22) !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main form.lv3-booking-form .lkmm-flow .lkmm-familiarity .lk-baf-familiarity-trigger.is-selected {
	background: linear-gradient(160deg, #e6f8fa 0%, #cdeff3 100%) !important; border: 2px solid #17b9c6 !important; color: #0b5f6b !important;
}

/* 1.0.9 — Booking vNext readability (Amir phone review 2026-10-01 07:13–07:30). Colours are existing Labkhand tokens,
   deepened only where the measured contrast was below 4.5:1 (WCAG AA). #lv3-main anchors win over Final Polish Safe /
   V3 publisher rules (ID selectors with !important), as in 1.0.7. Nothing here applies outside body.lk-booking-vnext. */

/* Step zero: «اشتراک ندارم» / «اشتراک دارم» — deeper card colours (white text ≥ 4.9:1 on every gradient stop) + soft dark shadow. */
body.lk-booking-vnext .lkbff-choices > .lkbff-choice.lkmm-card { text-shadow: 0 1px 2px rgba(0, 0, 0, .35); font-size: 20px; }
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--first.lkmm-card {
	background: linear-gradient(160deg, #0f7c86 0%, #0c6a73 100%) !important; border-color: #0a5f68 !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 5px 0 #08535b, 0 12px 22px rgba(12, 106, 115, .28) !important;
}
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--returning.lkmm-card {
	background: linear-gradient(160deg, #c2306f 0%, #a3285f 100%) !important; border-color: #922356 !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 5px 0 #7f1e4a, 0 12px 22px rgba(163, 40, 95, .26) !important;
}
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--first.lkmm-card:active { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 2px 0 #08535b, 0 5px 10px rgba(12, 106, 115, .22) !important; }
body.lk-booking-vnext .lkbff-choices > .lkbff-choice--returning.lkmm-card:active { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 2px 0 #7f1e4a, 0 5px 10px rgba(163, 40, 95, .2) !important; }

/* Step zero guide: two centred lines in the empty area under the pink card; only the colour words take the card colours. */
body.lk-booking-vnext .lkbff-guide { margin: 22px auto 0; max-width: 36ch; direction: rtl; text-align: center; }
body.lk-booking-vnext #lv3-main .lkbff-guide .lkbff-guide__line {
	margin: 0 0 12px !important; color: #173e5b !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-align: center !important;
}
body.lk-booking-vnext #lv3-main .lkbff-guide strong { font-weight: 900 !important; text-shadow: 0 0 1px rgba(255, 255, 255, .9); }
body.lk-booking-vnext #lv3-main .lkbff-guide .lkbff-guide__green { color: #0c6a73 !important; }
body.lk-booking-vnext #lv3-main .lkbff-guide .lkbff-guide__pink { color: #a3285f !important; }

/* First-visit route: no membership-code box and no «بازیابی کد اشتراک» (the card stays in the form, only not shown). */
body.lk-booking-vnext.lkbff-route-a .lkmm-flow > .lkmm-membership,
body.lk-booking-vnext.lkbff-route-a #lv3-main .lkmm-flow > .lkmm-card.lkmm-membership { display: none !important; }

/* Returning page: title = Labkhand teal #0c6a73 (6.1:1 on the cream panel; font, size and weight unchanged);
   subtitle = darker teal-navy #12404f (10.8:1), centred lines (no justified gaps). */
body.lk-booking-vnext #lv3-main .lkbff-b-head > .lkbff-b-title { color: #0c6a73 !important; }
body.lk-booking-vnext.lkmm-ready #lv3-main .lkbff-b-head > .lkbff-b-text {
	color: #12404f !important; font-size: 16px !important; font-weight: 700 !important; line-height: 1.9 !important;
	text-align: center !important; text-align-last: center !important; text-justify: auto !important; word-spacing: normal !important; max-width: 34ch;
}

/* Forgot-code panel: ONE message line (Mini Master .lkmm-recovery-result) — centred, narrower block, high contrast. */
body.lk-booking-vnext.lkmm-ready #lv3-main .lkmm-membership .lkmm-recovery-result {
	max-width: 30ch; margin: 10px auto 0 !important; color: #173e5b !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important;
	text-align: center !important; text-align-last: center !important; text-justify: auto !important; word-spacing: normal !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main .lkmm-membership .lkmm-recovery-result:empty { display: none !important; }

/* Readability for weak eyes: helper / note / hint texts 16px, dark ink (≥ 8.5:1); placeholders ≥ 5:1; messages ≥ 8:1. */
body.lk-booking-vnext.lkmm-ready #lv3-main .lkmm-flow .lkmm-help,
body.lk-booking-vnext.lkmm-ready #lv3-main .lkmm-flow .lk-referral-inline-hint,
body.lk-booking-vnext.lkmm-ready #lv3-main .lkmm-flow .lk-bcl-hint {
	color: #2c4654 !important; font-size: 16px !important; font-weight: 650 !important; line-height: 1.9 !important; opacity: 1 !important;
	text-justify: auto !important; word-spacing: normal !important;
}
body.lk-booking-vnext.lkmm-ready #lv3-main .lkmm-flow .lkmm-help:not(.lkmm-service > .lkmm-help):not(.lkmm-stylist > .lkmm-help) { text-align: center !important; text-align-last: center !important; }
body.lk-booking-vnext.lkmm-ready #lv3-main .lkmm-flow :is(input, textarea)::placeholder { color: #5b6f7b !important; opacity: 1 !important; }
body.lk-booking-vnext #lv3-main .lkbff-msg { color: #8f2f28 !important; font-size: 16px !important; }
body.lk-booking-vnext #lv3-main .lkbff-msg.is-ok { color: #125a49 !important; }

/* Primary buttons in vNext («ثبت نهایی نوبت», «ادامه رزرو»): deeper Labkhand pink (white ≥ 5.4:1) and 16px text. */
body.lk-booking-vnext #lv3-main :is(.lkmm-flow .lkmm-submit, .lkbff-continue).lv3-btn {
	background: linear-gradient(160deg, #d1065f 0%, #b80653 100%) !important; color: #fff !important; font-size: 16px !important; font-weight: 900 !important;
}

/* 1.0.10 — member match (first-visit and returning routes). Messages are positive; dark ink ≥ 9:1, buttons ≥ 4.9:1. */
body.lk-booking-vnext .lkbff-match { box-sizing: border-box; margin: 4px 0 12px; padding: 12px 14px; border: 1.5px solid #9fd9e0; border-radius: 18px; background: #eefafb; direction: rtl; text-align: center; }
body.lk-booking-vnext:not(.lkbff-route-a) .lkbff-match { display: none !important; }
body.lk-booking-vnext .lkbff-match[hidden] { display: none !important; }
body.lk-booking-vnext #lv3-main .lkbff-match p { margin: 0 !important; color: #12404f !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-align: center !important; }
body.lk-booking-vnext #lv3-main .lkbff-match strong { color: #0c6a73; font-weight: 900; }
body.lk-booking-vnext .lkbff-match__row { display: flex; gap: 10px; justify-content: center; margin-top: 10px; }
body.lk-booking-vnext #lv3-main .lkbff-match__btn {
	min-width: 96px; min-height: 46px; padding: 0 18px; border-radius: 999px; cursor: pointer;
	font: 900 16px/1.4 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-transform: none; letter-spacing: normal;
}
body.lk-booking-vnext #lv3-main .lkbff-match__yes { background: #0c6a73 !important; border: 1px solid #0a5f68 !important; color: #fff !important; }
body.lk-booking-vnext #lv3-main .lkbff-match__no { background: #fff !important; border: 1.5px solid #0c6a73 !important; color: #0c6a73 !important; }
body.lk-booking-vnext .lkbff-match__btn:focus-visible, body.lk-booking-vnext .lkbff-go:focus-visible { outline: 3px solid #173e5b; outline-offset: 2px; }
body.lk-booking-vnext #lv3-main .lkbff-phone-note { margin: 10px 0 0 !important; padding: 8px 10px; border-radius: 14px; background: #eefafb; color: #12404f !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-align: center !important; }
body.lk-booking-vnext .lkbff-phone-note[hidden] { display: none !important; }
/* Returning — forgot code: automatic lookup, so the «بازیابی کد» button of the recovery is not shown here. */
body.lk-booking-vnext.lkbff-b-login .lkmm-recovery > button.lkmm-action,
body.lk-booking-vnext.lkbff-b-login #lv3-main .lkmm-recovery > button.lkmm-action { display: none !important; }
body.lk-booking-vnext .lkbff-go { box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; margin-top: 10px; }
body.lk-booking-vnext .lkbff-go[hidden] { display: none !important; }
body.lk-booking-vnext #lv3-main .lkbff-go.lv3-btn { background: linear-gradient(160deg, #d1065f 0%, #b80653 100%) !important; color: #fff !important; font-size: 16px !important; font-weight: 900 !important; }
/* 1.0.10 (F3): an existing child was found on the first-visit route → no referral card (first visits only); same mechanism as the quick route. */
body.lk-booking-vnext.lkbff-route-a.lkbff-member-found .lkmm-flow > .lkmm-referral,
body.lk-booking-vnext.lkbff-route-a.lkbff-member-found #lv3-main .lkmm-flow > .lkmm-card.lkmm-referral { display: none !important; }

/* 1.0.11 — returning quick booking = the same form as the first visit (the 1.0.7 visual rules above now take
   :is(.lkbff-route-a, .lkbff-b-quick); same specificity), reduced to service · stylist · date · time · note.
   One confirmation line from the server record (name + masked mobile) and «اطلاعات من نیست». */
body.lk-booking-vnext .lkbff-quick { margin: 0 0 10px; direction: rtl; text-align: center; }
body.lk-booking-vnext #lv3-main .lkbff-confirm {
	margin: 0 4px 2px !important; padding: 10px 12px; border: 1.5px solid #9fd9e0; border-radius: 16px; background: #eefafb;
	color: #12404f !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-align: center !important; outline: none;
}
body.lk-booking-vnext #lv3-main .lkbff-confirm strong { color: #0c6a73; font-weight: 900; }
body.lk-booking-vnext #lv3-main .lkbff-confirm bdi { font-weight: 800; letter-spacing: .5px; }
body.lk-booking-vnext #lv3-main .lkbff-quick .lkbff-other { color: #0c6a73 !important; font-size: 16px !important; }

/* batch19 2026-10-02: refusal notice (same child, same day) */
body.lk-booking-vnext #lv3-main .lkbff-notice, .lkbff-notice { margin: 12px 0; padding: 12px 14px; border: 2px solid #c2306f; border-radius: 14px; background: #fff5f8; color: #5a1230 !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important; }

/* batch20 2026-10-02 (Amir) — «نوبت برای کودک دیگر» (sibling), the family message of «اشتراک ندارم», /family-account/ cards.
   Contrast: dark ink #12404f / #173e5b on white or #eefafb ≥ 9:1; buttons white on #0c6a73 ≥ 5.6:1 or #0c6a73 on white ≥ 5.6:1; focus ring 3px #173e5b. */
/* sibling form = the member short form + the child name and birth date cards (phones / membership / referral stay hidden) */
body.lk-booking-vnext.lkbff-b-quick.lkbff-b-sibling .lkmm-flow > .lkmm-child,
body.lk-booking-vnext.lkbff-b-quick.lkbff-b-sibling .lkmm-flow > .lkmm-dob,
body.lk-booking-vnext.lkbff-b-quick.lkbff-b-sibling #lv3-main .lkmm-flow > .lkmm-card:is(.lkmm-child, .lkmm-dob) { display: block !important; }
body.lk-booking-vnext .lkbff-sib { margin: 8px 4px 0; text-align: center; }
body.lk-booking-vnext.lkbff-b-sibling .lkbff-sib { display: none; }
body.lk-booking-vnext #lv3-main .lkbff-sib-line,
body.lk-booking-vnext #lv3-main .lkbff-sib-hint { margin: 0 0 8px !important; color: #12404f !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-align: center !important; }
body.lk-booking-vnext #lv3-main .lkbff-sib-hint { margin: 6px 4px 0 !important; }
body.lk-booking-vnext #lv3-main .lkbff-sib-btn,
body.lk-booking-vnext #lv3-main .lkbff-fam-btn {
	box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin: 0 0 8px; padding: 0 16px; cursor: pointer;
	border: 1.5px solid #0c6a73 !important; border-radius: 999px; background: #fff !important; color: #0c6a73 !important;
	font: 900 16px/1.4 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-transform: none; letter-spacing: normal;
}
body.lk-booking-vnext #lv3-main .lkbff-fam-btn--other { background: #0c6a73 !important; border-color: #0a5f68 !important; color: #fff !important; }
body.lk-booking-vnext .lkbff-sib-btn:focus-visible, body.lk-booking-vnext .lkbff-fam-btn:focus-visible { outline: 3px solid #173e5b; outline-offset: 2px; }
/* «اشتراک ندارم» with a registered primary mobile: no booking — the submit button is hidden while the children are offered */
body.lk-booking-vnext.lkbff-family-hit .lkmm-flow > .lkmm-submit,
body.lk-booking-vnext.lkbff-family-hit #lv3-main .lkmm-flow > .lkmm-submit,
body.lk-booking-vnext.lkbff-family-hit #lv3-main .lkmm-flow .lkmm-submit.lv3-btn { display: none !important; }
body.lk-booking-vnext .lkbff-match--family { text-align: center; }
body.lk-booking-vnext #lv3-main .lkbff-match--family .lkbff-fam-title { margin: 0 0 10px !important; }
body.lk-booking-vnext .lkbff-fam-kids { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
body.lk-booking-vnext #lv3-main .lkbff-match--family .lkbff-fam-note { margin: 4px 0 0 !important; font-weight: 600 !important; }
/* /family-account/ — one simple card per child */
body.lk-family-vnext .lkbff-kids { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
body.lk-family-vnext .lkbff-kid .lkbff-kid-cta,
body.lk-family-vnext .lkbff-sib-card .lkbff-sib-cta { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: 12px; text-decoration: none; }
body.lk-family-vnext .lkbff-sib-card { margin-top: 14px; text-align: center; }
body.lk-family-vnext .lkbff-sib-card .lkbff-sib-text { margin: 0; color: #12404f; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif; }
body.lk-family-vnext .lkbff-kid .lkbff-kid-member { color: #2c4654; font-size: 15px; }

/* batch21 2026-10-08 — «اصلاحیه نوبت»: the member form with the child name / birth date (while the child has never visited), service, note; date / time / stylist only after «تغییر زمان یا آرایشگر». Contrast ≥ 4.5. */
body.lk-booking-vnext.lkbff-b-amend .lkmm-flow > .lkmm-submit,
body.lk-booking-vnext.lkbff-b-amend #lv3-main .lkmm-flow > .lkmm-submit,
body.lk-booking-vnext.lkbff-b-amend #lv3-main .lkmm-flow .lkmm-submit.lv3-btn { display: none !important; }
body.lk-booking-vnext.lkbff-b-quick.lkbff-b-amend .lkmm-flow > .lkmm-child,
body.lk-booking-vnext.lkbff-b-quick.lkbff-b-amend .lkmm-flow > .lkmm-dob,
body.lk-booking-vnext.lkbff-b-quick.lkbff-b-amend #lv3-main .lkmm-flow > .lkmm-card:is(.lkmm-child, .lkmm-dob) { display: block !important; }
body.lk-booking-vnext.lkbff-b-amend.lkbff-amend-lockid .lkmm-flow > .lkmm-child,
body.lk-booking-vnext.lkbff-b-amend.lkbff-amend-lockid .lkmm-flow > .lkmm-dob,
body.lk-booking-vnext.lkbff-b-quick.lkbff-b-amend.lkbff-amend-lockid #lv3-main .lkmm-flow > .lkmm-card:is(.lkmm-child, .lkmm-dob) { display: none !important; }
body.lk-booking-vnext.lkbff-b-amend:not(.lkbff-amend-slot) .lkmm-flow > .lkmm-date,
body.lk-booking-vnext.lkbff-b-amend:not(.lkbff-amend-slot) .lkmm-flow > .lkmm-time,
body.lk-booking-vnext.lkbff-b-amend:not(.lkbff-amend-slot) .lkmm-flow > .lkmm-stylist,
body.lk-booking-vnext.lkbff-b-amend:not(.lkbff-amend-slot) #lv3-main .lkmm-flow > .lkmm-card:is(.lkmm-date, .lkmm-time, .lkmm-stylist) { display: none !important; }
body.lk-booking-vnext .lkbff-amend-bar { display: none; margin: 12px 4px; text-align: center; }
body.lk-booking-vnext.lkbff-b-amend .lkbff-amend-bar { display: block; }
body.lk-booking-vnext #lv3-main .lkbff-amend-save { width: 100%; min-height: 50px; background: linear-gradient(160deg, #d1065f 0%, #b80653 100%) !important; color: #fff !important; font-size: 16px !important; font-weight: 900 !important; }
body.lk-booking-vnext #lv3-main .lkbff-amend-cur { margin: 8px 4px !important; color: #12404f !important; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif !important; text-align: center !important; }
body.lk-family-vnext .lkbff-amend-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
body.lk-family-vnext .lkbff-amend-btn, body.lk-family-vnext a.lkbff-amend-success { font-weight: 800; color: #0c6a73; text-decoration: underline; min-height: 44px; display: inline-flex; align-items: center; }
body.lk-family-vnext .lkbff-amended-note { margin: 0 0 12px; padding: 10px 14px; border: 1.5px solid #9fd9e0; border-radius: 14px; background: #eefafb; color: #12404f; font: 700 16px/1.9 Vazirmatn, Estedad, Tahoma, sans-serif; text-align: center; }body.lk-booking-vnext.lkbff-b-amend .lkbff-quick-bar { display: none !important; } /* «کد دیگری وارد می‌کنم» has no place in an amendment */

/* batch21 R1/R2 2026-10-08 — «اصلاحیه نوبت» / «مدیریت یا لغو» are real buttons (they were plain links glued together). White on #0c6a73 ≥ 5.6:1, #0c6a73 on white ≥ 5.6:1, tap area ≥ 44px. */
body.lk-family-vnext .lkbff-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 14px; }
body.lk-family-vnext .lkbff-row-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 0; }
body.lk-family-vnext .lkbff-amend-row { display: block; }
body.lk-family-vnext .lkbff-amend-row > dt { margin-bottom: 4px; }
body.lk-family-vnext a.lkbff-act-btn {
	box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border-radius: 999px; text-decoration: none !important;
	border: 1.5px solid #0c6a73; background: #fff; color: #0c6a73 !important; font: 900 15px/1.4 Vazirmatn, Estedad, Tahoma, sans-serif; cursor: pointer;
}
body.lk-family-vnext .lkbff-actions a.lkbff-act-btn { width: 100%; }
body.lk-family-vnext a.lkbff-act-btn.lkbff-act-primary, body.lk-family-vnext .lkbff-row-actions a.lkbff-amend-btn { background: #0c6a73; border-color: #0a5f68; color: #fff !important; }
body.lk-family-vnext a.lkbff-act-btn:focus-visible { outline: 3px solid #173e5b; outline-offset: 2px; }
body.lk-family-vnext .lkbff-amended-note a.lkbff-act-btn { margin-top: 8px; }
body.lk-family-vnext .lkbff-amended-note p { margin: 0; }
body.lk-booking-vnext .lkbff-fam-note { display: inline-block; margin: 6px 0 0; text-decoration: underline; }
/* ===== batch26 (B3/B5) ===== */
/* B3: «تغییر زمان یا آرایشگر» sits directly under the service card; the stylist / date / time cards it opens follow right below it. */
body.lk-booking-vnext .lkbff-amend-slot-card { display: none; margin: 0 0 10px; padding: 12px; border: 1.5px solid #9fd9e0; border-radius: 18px; background: #f3fcfd; text-align: center; }
body.lk-booking-vnext.lkbff-b-amend .lkbff-amend-slot-card { display: block; }
body.lk-booking-vnext #lv3-main .lkbff-amend-slot-btn, body.lk-booking-vnext .lkbff-amend-slot-btn { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; margin: 0; padding: 10px 14px; border: 2px solid #0a5f68; border-radius: 16px; background: linear-gradient(160deg, #0f8591 0%, #0c6a73 100%) !important; color: #fff !important; font: 900 16px/1.6 Vazirmatn, Estedad, Tahoma, sans-serif; cursor: pointer; box-shadow: 0 4px 0 rgba(10, 95, 104, .35); }
body.lk-booking-vnext .lkbff-amend-slot-btn.is-open { background: #fff !important; color: #0c6a73 !important; box-shadow: none; }
body.lk-booking-vnext .lkbff-amend-slot-btn:focus-visible { outline: 3px solid #ffd54a; outline-offset: 2px; }
body.lk-booking-vnext .lkbff-amend-slot-help { margin: 8px 2px 0; color: #12404f; font: 700 14px/1.8 Vazirmatn, Estedad, Tahoma, sans-serif; }
/* B5: the single small link of the success card + clearly clickable row buttons */
body.lk-family-vnext .lkbff-success-link { margin: 12px 0 0; text-align: center; }
body.lk-family-vnext .lkbff-success-link a { font-weight: 800; color: #0c6a73; text-decoration: underline; min-height: 44px; display: inline-flex; align-items: center; }
body.lk-family-vnext .lkbff-row-actions { display: flex; flex-wrap: wrap; gap: 8px; }
body.lk-family-vnext .lkbff-row-actions a.lkbff-act-btn { flex: 1 1 130px; justify-content: center; text-align: center; text-decoration: none !important; min-height: 44px; border-radius: 14px; font-weight: 900; }
body.lk-family-vnext .lkbff-row-actions a.lkbff-act-btn:not(.lkbff-act-primary) { background: #fff; color: #0c6a73 !important; border: 2px solid #0c6a73; }
body.lk-booking-vnext .lkbff-amend-slot-help{unicode-bidi:plaintext}

/* ===== batch34 — family-account buttons use the /booking/ tokens (pink primary, teal outline secondary, 54px, 20px radius) ===== */
body.lk-family-vnext a.lkbff-act-btn,body.lk-family-vnext .lkbff-kid-cta,body.lk-family-vnext .lkbff-sib-cta{min-height:54px;border-radius:20px;font:900 15px/1.4 Estedad,Vazirmatn,Tahoma,sans-serif}
body.lk-family-vnext a.lkbff-act-btn.lkbff-act-primary,body.lk-family-vnext .lkbff-row-actions a.lkbff-amend-btn,body.lk-family-vnext .lkbff-kid-cta,body.lk-family-vnext .lkbff-sib-cta{background:linear-gradient(145deg,#ff2788,#f70673 58%,#ee0063)!important;color:#fff!important;border:0!important;box-shadow:0 10px 20px rgba(247,6,115,.24)!important}
body.lk-family-vnext .lkbff-row-actions a.lkbff-act-btn:not(.lkbff-act-primary){background:#fff!important;color:#0b6976!important;border:1.5px solid #66cfd8!important;box-shadow:none!important}
