
.iti{width:100%!important;display:block}
/* site theme: DARK = default (no attr); LIGHT = html[data-theme="light"] */
.iti__country-list{z-index:9999;font-size:14px;text-align:left;min-width:280px;max-width:calc(100vw - 40px);border-radius:12px;overflow-y:auto;background:#241a10;color:#f3e9d9;border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 44px -10px rgba(0,0,0,.7)}
.iti__country-list .iti__country{white-space:nowrap;padding:9px 12px}
.iti__country-list .iti__country.iti__highlight{background:rgba(201,161,90,.16)}
.iti__country-list .iti__dial-code{color:#b9a888}
/* v25: .iti--separate-dial-code va .iti__selected-flag khong con ton tai -- phan chon quoc gia nay la .iti__selected-country, va dropdown duoc boc trong .iti__dropdown-content kem mot O TIM KIEM moi. Kiem truc tiep tren ban 25.11.2 chu khong doan. */.iti__selected-country{border-radius:14px 0 0 14px;background:rgba(255,255,255,.06)}.iti__dropdown-content{background:#241a10;color:#f3e9d9;border:1px solid rgba(201,161,90,.25);border-radius:12px;overflow:hidden}.iti__search-input{width:100%;box-sizing:border-box;padding:10px 12px;border:0;border-bottom:1px solid rgba(201,161,90,.22);background:transparent;color:inherit;font-size:14px;outline:none}
html[data-theme="light"] .iti__country-list{background:#fff;color:#20160a;border-color:rgba(0,0,0,.1);box-shadow:0 16px 40px -12px rgba(60,40,15,.45)}
html[data-theme="light"] .iti__country-list .iti__country.iti__highlight{background:rgba(201,161,90,.14)}
html[data-theme="light"] .iti__country-list .iti__dial-code{color:#7a6a4a}
/* Concierge chatbot stays available on /booking (highest-intent page). Keep it ABOVE the
   sticky Total/Book bar (#bkbar z-index:150) so it's tappable and never overlapped. The
   FAB sits bottom-left so it can't cover the bottom-right Confirm/Continue action. */
.lux-chat-btn{z-index:210!important}
.lux-chat-panel{z-index:211!important}
@media(max-width:900px){.lux-chat-btn{left:16px;right:auto}}
html[data-theme="light"] .iti__selected-country{background:rgba(0,0,0,.03)}html[data-theme="light"] .iti__dropdown-content{background:#fff;color:#20160a;border-color:rgba(0,0,0,.1)}html[data-theme="light"] .iti__search-input{border-bottom-color:rgba(0,0,0,.1)}
/* iOS native date/time inputs "bulge" (ignore width:100%/padding, grow taller/wider than the form). Normalize them to plain boxes matching the other fields. */
.field input[type=date],.field input[type=time]{-webkit-appearance:none;appearance:none;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:0;height:48px;line-height:1.2;text-align:left;display:block}
.field input[type=date]::-webkit-date-and-time-value,.field input[type=time]::-webkit-date-and-time-value{text-align:left;margin:0;padding:0}
.field input[type=date]::-webkit-datetime-edit,.field input[type=time]::-webkit-datetime-edit{padding:0;line-height:1.2}
.field input[type=date]::-webkit-calendar-picker-indicator,.field input[type=time]::-webkit-calendar-picker-indicator{margin:0 0 0 auto;opacity:.6;filter:invert(.75)}
html[data-theme="light"] .field input[type=date]::-webkit-calendar-picker-indicator,html[data-theme="light"] .field input[type=time]::-webkit-calendar-picker-indicator{filter:none;opacity:.5}
.fhint{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.5;letter-spacing:.01em}
/* live inline validation hint (email/phone) — shown only while the field is invalid */
.ferr{font-size:11.5px;color:#f0a5a5;margin-top:5px;line-height:1.5;letter-spacing:.01em;display:none}
.field.bk-err .ferr{display:block}
/* Desktop hero clearance: the fixed floating nav pill (.lux-nav, ~90px tall at the
   top of the page) partially overlapped the H1 at ≥1440px. Add top padding so the
   eyebrow + "Book in Two Steps" H1 always clear the nav; scroll-margin keeps anchored
   scrolls from tucking the H1 under the fixed nav too. */
@media(min-width:901px){.page-hero{padding-top:210px}}
.page-hero h1{scroll-margin-top:120px}
.bk-wrap{max-width:760px;margin:0 auto}
.bk-step{border:1px solid var(--line);border-radius:22px;background:var(--panel);backdrop-filter:blur(10px);padding:26px 24px;margin-bottom:18px;transition:border-color .35s var(--ease),box-shadow .35s var(--ease)}
.bk-step:focus-within{border-color:var(--line2);box-shadow:0 20px 50px -34px rgba(201,161,90,.5)}
.bk-step h3{font-size:24px;margin-bottom:4px}
.st-num{display:inline-flex;align-items:center;gap:8px;font-family:'Fraunces',serif;color:var(--gold2);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:2px}
.st-num::before{content:"";width:22px;height:1px;background:var(--grad-gold);border-radius:2px;display:inline-block}
.mode-tabs{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.mode{flex:1;min-width:200px;position:relative;border:1px solid var(--line);border-radius:16px;padding:18px;cursor:pointer;transition:border-color .3s,background .3s,box-shadow .3s,transform .15s;background:rgba(255,255,255,.02)}
.mode:hover{border-color:var(--line2)}
.mode:active{transform:scale(.985)}
.mode.sel{border-color:var(--gold2);background:rgba(201,161,90,.1);box-shadow:0 14px 34px -20px rgba(201,161,90,.6)}
.mode.sel::after{content:"✓";position:absolute;top:12px;right:14px;width:20px;height:20px;border-radius:50%;background:var(--grad-gold);color:#20160a;font-size:12px;display:grid;place-items:center;font-weight:700}
.mode b{font-family:'Fraunces',serif;font-size:20px;display:block;margin-bottom:2px}.mode span{color:var(--muted);font-size:12.5px;line-height:1.4;display:block}
/* Auto-match used to carry a permanent gold border + filled gold pill — the SAME
   gold border that marks the card you have actually selected (.mode.sel). Guests
   read it as already-chosen and booked auto by accident: over 14 days auto-match
   was cancelled 64% of the time (32 of 50) against 18% for picking a therapist
   (44 of 241), and completed only 22% against 42%. Nobody cancels that hard over a
   choice they meant to make. So the card is now visually EQUAL to "Choose myself" —
   it stays clearly labelled and keeps a quiet outline pill, but it no longer
   impersonates the selected state. Speed-seekers still find it; nobody lands on it
   by mistake. */
.mode.mode-cta{background:rgba(201,161,90,.03)}
.cta-pill{display:inline-block;font-family:'Inter',system-ui,sans-serif;font-size:10px;font-weight:700;background:transparent;color:var(--gold2,#a9823f);border:1px solid rgba(201,161,90,.55);padding:1px 7px;border-radius:100px;margin-left:8px;vertical-align:middle;letter-spacing:.02em}
.autocard{margin-top:16px;border:1px dashed var(--line2);border-radius:16px;padding:18px;color:var(--muted);font-size:13.5px;line-height:1.55;background:rgba(201,161,90,.06)}
.autocard b{color:var(--gold1)}
/* smooth mode swap */
#autocard,#manualwrap{animation:bkFade .4s var(--ease) both}
@keyframes bkFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#autocard,#manualwrap{animation:none}}
.thr-scroll{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow:auto;padding:4px 4px 4px 0;margin-top:14px;scrollbar-width:thin}
.tpick{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:10px 14px;cursor:pointer;background:rgba(255,255,255,.02);transition:border-color .25s,box-shadow .25s,transform .15s;position:relative}
.tpick:hover{border-color:var(--line2);box-shadow:0 8px 20px -12px rgba(201,161,90,.5)}
.tpick:active{transform:scale(.98)}
.tpick.sel{border-color:var(--gold2);background:rgba(201,161,90,.08);box-shadow:0 0 0 2px var(--gold2)}
.tpick.sel::after{content:"✓";position:absolute;top:50%;right:12px;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--grad-gold);color:#20160a;font-size:12px;display:grid;place-items:center;font-weight:700;z-index:2;box-shadow:0 2px 8px -2px rgba(0,0,0,.4)}
.tpick .av-wrap{position:relative;flex-shrink:0;width:48px;height:48px}
.tpick img{width:48px;height:48px;border-radius:50%;object-fit:cover;display:block;position:relative;z-index:1}
.tpick:hover img{box-shadow:0 0 0 2px var(--gold1)}
.tpick .n{flex:1;min-width:0;font-size:12.5px}.tpick .n b{display:block;font-family:'Inter';font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpick .n .muted{font-size:11.5px}
.tpick .av{font-size:10px;padding:2px 8px;border-radius:100px;background:rgba(8,5,2,.62);backdrop-filter:blur(4px);color:#8fe6a8;letter-spacing:.03em;display:inline-block;margin-top:3px}
.tpick .av.busy{color:#f4c98a}.tpick .av.offline{color:#e6d4b6}
@keyframes avPulse{0%,100%{transform:scale(1);opacity:.45}50%{transform:scale(1.5);opacity:0}}
.tpick .av-wave{position:absolute;inset:0;border-radius:50%;border:2px solid #8fe6a8;animation:avPulse 2s ease-out infinite;z-index:0}
.tpick .av-wave:nth-child(2){animation-delay:.7s}
.opt-grid{display:flex;gap:12px;flex-wrap:wrap}
.opt{flex:1;min-width:104px;position:relative;border:1px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;transition:border-color .25s,background .25s,box-shadow .25s,transform .14s;background:rgba(255,255,255,.02);text-align:center}
.opt:hover{border-color:var(--line2)}
.opt:active{transform:scale(.97)}
.opt.sel{border-color:var(--gold2);background:rgba(201,161,90,.1);box-shadow:0 12px 28px -18px rgba(201,161,90,.6)}
.opt b{font-family:'Fraunces',serif;font-size:20px;display:block}.opt .p{color:var(--gold1);font-size:14px;margin-top:4px;font-weight:500}
.addon{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:13px;padding:13px 15px;cursor:pointer;transition:border-color .25s,background .25s,box-shadow .25s,transform .12s;margin-bottom:10px;background:rgba(255,255,255,.02)}
.addon:hover{border-color:var(--line2)}
.addon:active{transform:scale(.99)}
.addon.sel{border-color:var(--gold2);background:rgba(201,161,90,.09);box-shadow:0 10px 26px -18px rgba(201,161,90,.55)}
.addon .box{width:20px;height:20px;border:1px solid var(--line2);border-radius:6px;display:grid;place-items:center;font-size:13px;color:#20160a;transition:background .2s,border-color .2s;flex:0 0 auto}
.addon.sel .box{background:var(--grad-gold);border:none}.addon .pr{color:var(--gold1);font-size:14px;font-weight:500;white-space:nowrap}
.bk-total{margin-top:26px;padding-block:20px 8px;text-align:center}
/* itemized order summary (step 2, above Total) */
/* Order summary. This is the table a customer checks their money against, and it
   read as one flat block: label and value were the SAME 13.5px, separated only by
   weight 400 vs 500 and a hairline. Contrast was fine after the light-theme pass —
   the problem was hierarchy, so the value now leads and the label recedes, on a
   panel that separates the summary from the form above it. */
.bk-sum{text-align:left;margin:0 auto 4px;max-width:420px;background:var(--panel);
  border:1px solid var(--line);border-radius:14px;padding:6px 16px}
.bk-sum .sr{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);line-height:1.45}
.bk-sum .sr:last-child{border-bottom:none}
.bk-sum .sk{color:var(--muted);flex:0 0 auto;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.bk-sum .sv{color:var(--cream);text-align:right;font-weight:600;font-size:15px}
.bk-sum .sr.when .sv{color:var(--gold1);font-weight:800;font-size:17px;letter-spacing:.01em}
.bk-total .tot{font-family:'Fraunces',serif;font-size:34px;color:var(--cream);transition:transform .3s var(--ease);display:inline-block}
.bk-total .tot.bump{transform:scale(1.07)}
.bk-total .usd{color:var(--muted);font-size:14px;margin-top:2px}
/* "Total" sat at the same weight as everything else next to a 34px number. */
.bk-total .muted{font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:12px}
#confirm{transition:transform .15s var(--ease),box-shadow .35s var(--ease)}
#confirm:active{transform:scale(.98)}
#confirm.ok{box-shadow:0 0 0 3px rgba(143,230,168,.35)}
.muted{color:var(--muted);font-size:13px}
/* on-brand inline toast (replaces native alert() in the step gate / confirm path) */
.bk-toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%,14px);z-index:500;max-width:min(92vw,420px);
  display:flex;gap:10px;align-items:flex-start;padding:13px 16px;border-radius:14px;
  border:1px solid rgba(240,140,140,.5);background:rgba(40,20,16,.96);backdrop-filter:blur(12px);
  color:#f0a5a5;font-size:13.5px;line-height:1.5;box-shadow:0 18px 44px -14px rgba(0,0,0,.7);
  opacity:0;pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.bk-toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.bk-toast svg{width:17px;height:17px;flex:0 0 auto;margin-top:1px;stroke:#f0a5a5}
html[data-theme="light"] .bk-toast{background:rgba(255,250,247,.97);color:#b23b3b;border-color:rgba(200,90,90,.4)}
html[data-theme="light"] .bk-toast svg{stroke:#b23b3b}
@media(max-width:900px){.bk-toast{bottom:calc(110px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.bk-toast{transition:none}}
/* field red-error ring */
.field.bk-err input,.field.bk-err textarea{border:2px solid #C44 !important}
/* the therapist step is a .bk-step, not a .field — without this the "you must pick
   someone" flag was completely invisible */
.bk-step.bk-err{border-color:#C44 !important;box-shadow:0 0 0 3px rgba(204,68,68,.16)}
.pool-note{border:1px solid var(--line);border-left:3px solid var(--gold1,#C9A15A);border-radius:12px;
 background:rgba(201,161,90,.07);padding:12px 14px;margin:14px 0 10px;font-size:13px;line-height:1.55;color:var(--cream)}
html[data-theme="light"] .pool-note{color:#3a2f22}
.card-err{box-shadow:0 0 0 2px #C44 !important;border-color:#C44 !important;border-radius:14px}
/* time status chip */
.time-chip{margin-top:10px;font-size:12.5px;border-radius:10px;padding:9px 12px;line-height:1.4;display:none}
.time-chip.ok{display:block;color:#8fe6a8;background:rgba(143,230,168,.09);border:1px solid rgba(143,230,168,.25)}
.time-chip.bad{display:block;color:#f0a5a5;background:rgba(240,165,165,.08);border:1px solid rgba(240,165,165,.28)}
.v2prof{display:inline-block;margin-top:4px;font-size:12px;color:var(--gold2);text-decoration:underline;text-underline-offset:2px}
.v2more{margin-top:8px;font:inherit;font-size:13px;color:var(--gold1);background:transparent;border:1px solid var(--line2);border-radius:100px;padding:7px 14px;cursor:pointer}
.warn-box{margin-top:14px;font-size:13px;line-height:1.5;border-radius:14px;padding:14px 16px;border:1px solid rgba(244,201,138,.35);background:rgba(244,201,138,.08);color:#f4c98a;display:none}
.warn-box.show{display:block}
.warn-box b{color:#f4c98a}
.warn-box.block{border-color:rgba(240,140,140,.5);background:rgba(240,140,140,.1);color:#f0a5a5}
.warn-box.block b{color:#f0a5a5}
.hc-ack{display:flex;gap:9px;align-items:flex-start;margin-top:11px;padding-top:11px;border-top:1px solid rgba(244,201,138,.25);cursor:pointer;font-weight:500}
.hc-ack input{margin-top:2px;width:17px;height:17px;flex:0 0 auto;accent-color:#c9a15a;cursor:pointer}
/* nv2 chooser */
#nv2wrap{display:none;margin-top:18px;border-top:1px dashed var(--line2);padding-top:16px}
#nv2wrap.show{display:block}
.chan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px;margin:10px 0 2px}
.chan-grid .check-row{margin:6px 0}
.chan-notice{margin:14px 0 2px;padding:12px 14px;border-left:2px solid var(--gold,#c9a15a);background:rgba(201,161,90,.07);border-radius:0 10px 10px 0;font-size:12.5px;line-height:1.65;color:var(--muted,#b3a48d)}
@media(max-width:520px){.chan-grid{grid-template-columns:1fr}}
.check-row{display:flex;align-items:center;gap:10px;margin:12px 0;cursor:pointer;user-select:none;font-size:14px;color:var(--cream)}
.check-row .cbx{width:20px;height:20px;border:1px solid var(--line2);border-radius:6px;display:grid;place-items:center;font-size:13px;color:#20160a;transition:background .2s,border-color .2s;flex:0 0 auto}
.check-row.on .cbx{background:var(--grad-gold);border:none}
.pay-card{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:14px;padding:15px;cursor:pointer;margin-bottom:11px;transition:border-color .25s,background .25s,box-shadow .25s;background:rgba(255,255,255,.02);position:relative}
.pay-card:hover{border-color:var(--line2)}
.pay-card.sel{border-color:var(--gold2);background:rgba(201,161,90,.1);box-shadow:0 10px 26px -18px rgba(201,161,90,.55)}
.pay-card .radio{width:20px;height:20px;border-radius:50%;border:1px solid var(--line2);flex:0 0 auto;margin-top:2px;position:relative;transition:border-color .2s}
.pay-card.sel .radio{border-color:var(--gold2)}
.pay-card.sel .radio::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--grad-gold)}
.pay-card .pt{font-family:'Inter';font-weight:600;font-size:14.5px;color:var(--cream);display:flex;align-items:center;gap:8px}
.pay-card .pt .tag{font-size:9px;letter-spacing:.05em;padding:2px 7px;border-radius:100px;background:rgba(201,161,90,.16);color:var(--gold1);text-transform:uppercase}
.pay-card .pd{color:var(--muted);font-size:12px;margin-top:3px;line-height:1.4}
.crypto-fee{font-size:12.5px;line-height:1.5;border-radius:12px;padding:11px 13px;margin-top:2px;border:1px solid rgba(201,161,90,.28);background:rgba(201,161,90,.07);display:none}
.crypto-fee.show{display:block}
.crypto-fee b{color:var(--gold1)}
/* sticky mobile total bar — thumb-friendly conversion */
.bk-bar{position:fixed;left:0;right:0;bottom:0;z-index:150;display:none;gap:12px;align-items:center;justify-content:space-between;
  padding:11px 16px calc(11px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(16,11,6,0),rgba(16,11,6,.95) 30%);backdrop-filter:blur(14px);
  transform:translateY(130%);transition:transform .45s var(--ease)}
.bk-bar.show{transform:translateY(0)}
.bk-bar .bl{font-size:11px;color:var(--muted);line-height:1.25}
.bk-bar .bl b{display:block;font-family:'Fraunces',serif;font-size:19px;color:var(--cream)}
.bk-bar .btn{padding:13px 26px;white-space:nowrap}
html[data-theme="light"] .bk-bar{background:linear-gradient(180deg,rgba(250,247,241,0),rgba(250,247,241,.97) 30%)}
/* ≤900px the sticky Total/Book bar (~72px + safe-area) is fixed over the page. Pad the
   bottom of the scroll flow so the summary Total line and (on 4-hand) the descriptive
   couple/4-hand text clear it and are never hidden behind the bar. */
@media(max-width:900px){.bk-bar{display:flex}body{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}
/* city gate — premium modal appear */
.citygate.show{animation:cgFade .4s var(--ease) both}
.citygate.show .citygate-card{animation:cgRise .55s var(--ease) both}
@keyframes cgFade{from{opacity:0}to{opacity:1}}
@keyframes cgRise{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}
.citygate-card{max-width:420px}
.cg-city{border-radius:15px;padding:16px 18px;font-weight:500;transition:border-color .25s,background .25s,transform .15s,box-shadow .25s}
.cg-city:hover{transform:translateY(-2px);box-shadow:0 12px 28px -18px rgba(201,161,90,.6)}
.cg-city:active{transform:scale(.985)}
.cg-city span{transition:transform .25s var(--ease)}
.cg-city:hover span{transform:translateX(4px)}
@media(max-width:640px){.bk-step{padding:22px 18px}.mode{min-width:100%}}
@media(prefers-reduced-motion:reduce){.citygate.show,.citygate.show .citygate-card,#autocard,#manualwrap{animation:none}}
/* gift / promo code row */
.gift-row{display:flex;gap:10px;align-items:stretch}
.gift-row .field{flex:1;margin:0}
.gift-row input{text-transform:uppercase}
.gift-apply{flex:0 0 auto;align-self:stretch;padding-block:0;display:flex;align-items:center}
.gift-msg{font-size:12.5px;margin-top:8px;line-height:1.4;min-height:1px}
.gift-msg.ok{color:#8fe6a8}
.gift-msg.err{color:#f0a5a5}
.bk-total .disc{color:#8fe6a8;font-size:13px;margin-top:2px}
/* 2-step nav */
.bk-nav{display:flex;gap:12px;align-items:center;margin-top:8px}
.bk-nav .btn{flex:1;justify-content:center}
#step2wrap{display:none}
.step-reveal{animation:bkFade .4s var(--ease) both}
@media(prefers-reduced-motion:reduce){.step-reveal{animation:none}}
/* package badge (PACKAGE MODE) */
.pkg-badge{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:8px 14px;border-radius:100px;border:1px solid var(--gold2);background:rgba(201,161,90,.12);color:var(--gold1);font-family:'Fraunces',serif;font-size:15px;letter-spacing:.01em}
.pkg-badge::before{content:"✦";font-size:12px;color:var(--gold2)}
.couple-note{margin-top:14px;border:1px dashed var(--line2);border-radius:16px;padding:16px 18px;color:var(--muted);font-size:13.5px;line-height:1.6;background:rgba(201,161,90,.06)}
.couple-note b{color:var(--gold1)}
/* locked therapist chip (?code= flow) */
.lock-chip{margin-top:14px;display:flex;align-items:center;gap:14px;border:1px solid var(--gold2);border-radius:16px;padding:12px 14px;background:rgba(201,161,90,.1);box-shadow:0 12px 30px -22px rgba(201,161,90,.6);animation:bkFade .4s var(--ease) both}
.lock-chip img{width:52px;height:64px;object-fit:cover;border-radius:11px;flex:0 0 auto}
.lock-chip .lc-body{flex:1;min-width:0}
.lock-chip .lc-k{font-family:'Fraunces',serif;color:var(--gold2);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:2px}
.lock-chip .lc-n{font-family:'Fraunces',serif;font-size:19px;color:var(--cream);line-height:1.15}
.lock-chip .lc-av{font-size:12px;margin-top:3px}
.lock-chip .lc-av.available{color:#8fe6a8}.lock-chip .lc-av.busy{color:#f4c98a}.lock-chip .lc-av.offline{color:#e6d4b6}
.lock-chip .lc-change{flex:0 0 auto;font-size:12px;color:var(--gold1);text-decoration:underline;cursor:pointer;background:none;border:none;padding:4px}
@media(prefers-reduced-motion:reduce){.lock-chip{animation:none}}
/* Special Requests & Gift Code — collapsible (mirror girl) */
.extras-head{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:13px 16px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.02);transition:border-color .25s,background .25s}
.extras-head:hover{border-color:var(--line2)}
.extras-head .el{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--cream)}
.extras-head .el svg{width:16px;height:16px;stroke:var(--gold1);flex:0 0 auto}
.extras-head .chev{font-size:12px;color:var(--gold1);transition:transform .22s var(--ease);display:inline-block}
.extras-head.open .chev{transform:rotate(90deg)}
#extrasBody{display:none;margin-top:14px}
#extrasBody.open{display:block}
.gift-lbl{font-size:11px;font-weight:700;color:var(--dim);letter-spacing:.14em;margin:16px 0 8px}
/* SERVICE TERMS modal — styled like city-gate */
.terms-modal{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(8,5,2,.72);backdrop-filter:blur(6px)}
.terms-modal.show{display:flex;animation:cgFade .35s var(--ease) both}
.terms-card{max-width:460px;width:100%;position:relative;border:1px solid var(--line);border-radius:24px;background:var(--panel);backdrop-filter:blur(14px);padding:30px 26px 26px;animation:cgRise .5s var(--ease) both}
html[data-theme="light"] .terms-modal{background:rgba(244,239,231,.9)}
html[data-theme="light"] .terms-card{background:#fff}
.terms-card h2{font-family:'Fraunces',serif;font-size:22px;letter-spacing:.02em;margin-bottom:16px;color:var(--cream)}
.terms-card .tx{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.55;color:var(--muted);margin-bottom:13px}
.terms-card .tx::before{content:"✦";color:var(--gold2);font-size:11px;margin-top:3px;flex:0 0 auto}
.terms-card .tx.priv{color:var(--gold1)}
.terms-x{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);font-size:16px;cursor:pointer;display:grid;place-items:center;transition:border-color .2s,color .2s}
.terms-x:hover{border-color:var(--line2);color:var(--cream)}
.terms-close-btn{width:100%;justify-content:center;margin-top:8px}
.inline-terms{text-align:center;margin-top:12px;font-size:12px;color:var(--muted)}
.inline-terms .tlink{text-decoration:underline;cursor:pointer;color:var(--gold1)}
@media(prefers-reduced-motion:reduce){.terms-modal.show,.terms-card{animation:none}}
/* ═══ CUSTOMER JOURNEY v2 — availability grid + profile-entry re-validate (flag-gated) ═══ */
#v2panel{animation:bkFade .4s var(--ease) both}
@media(prefers-reduced-motion:reduce){#v2panel{animation:none}}
/* v2 grid card = the .tpick pattern + a right-side availability status column */
.v2c{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:10px 14px;cursor:pointer;background:rgba(255,255,255,.02);transition:border-color .25s,box-shadow .25s,transform .15s;position:relative}
.v2c:hover{border-color:var(--line2);box-shadow:0 8px 20px -12px rgba(201,161,90,.5)}
.v2c:active{transform:scale(.98)}
.v2c.sel{border-color:var(--gold2);background:rgba(201,161,90,.08);box-shadow:0 0 0 2px var(--gold2)}
.v2c.sel::after{content:"✓";position:absolute;top:50%;right:12px;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--grad-gold);color:#20160a;font-size:12px;display:grid;place-items:center;font-weight:700;z-index:2}
.v2c .av-wrap{position:relative;flex-shrink:0;width:48px;height:48px}
.v2c img{width:48px;height:48px;border-radius:50%;object-fit:cover;display:block;position:relative;z-index:1}
.v2c .n{flex:1;min-width:0;font-size:12.5px}
/* The name used to be nowrap+ellipsis, so at 320px 16 of 17 cards showed a cut name
   ("SG04 - Hươ…") — on the screen whose entire job is choosing a person. Let it wrap;
   two lines costs nothing and a name is what the guest is picking by. */
.v2c .n b{display:block;font-family:'Inter';font-weight:600;font-size:14px;white-space:normal;overflow-wrap:anywhere}
.v2c .n .muted{font-size:11.5px}
/* right-aligned status chip (reuses avPulse via .v2c .av-wave, mirrors .tpick colors) */
.v2c .v2st{flex:0 1 auto;max-width:46%;font-size:11px;padding:3px 9px;border-radius:100px;letter-spacing:.02em;margin-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* On a narrow phone the availability chip cannot fit beside the name without being
   sheared mid-word ("Bận đến 23:3…"), and that chip is half the decision. Drop it to
   its own full-width line under the name instead of truncating it. */
@media(max-width:400px){
  .v2c{flex-wrap:wrap}
  /* basis must LEAVE ROOM for its own margins (60 + 24), or the pill runs past the
     card edge; and the pill styling is dropped here so a full-width stretched capsule
     doesn't look like a mistake — plain text under the name reads better. */
  .v2c .v2st{flex:1 1 calc(100% - 84px);max-width:calc(100% - 84px);
    margin:2px 24px 0 60px;text-align:left;white-space:normal;overflow:visible;
    background:none!important;border:none!important;padding:0;border-radius:0}
}
.v2c .v2st.ready{color:#8fe6a8;background:rgba(143,230,168,.1);border:1px solid rgba(143,230,168,.28)}
.v2c .v2st.online{color:#bfe0c9;background:rgba(143,230,168,.05);border:1px solid rgba(143,230,168,.16)}
.v2c .v2st.busy{color:#f4c98a;background:rgba(244,201,138,.08);border:1px solid rgba(244,201,138,.28)}
.v2c .v2st.offline{color:#e6d4b6;background:rgba(230,212,182,.06);border:1px solid rgba(230,212,182,.22)}
.v2c .av-wave{position:absolute;inset:0;border-radius:50%;border:2px solid #8fe6a8;animation:avPulse 2s ease-out infinite;z-index:0}
.v2c .av-wave:nth-child(2){animation-delay:.7s}
@media(prefers-reduced-motion:reduce){.v2c .av-wave{animation:none}}
/* profile-entry (?code=) re-validate action buttons */
.v2pb{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.v2pb .btn{justify-content:center;text-align:center}
.v2pnote{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:2px}


.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start     top            top-end" "center-start  center         center-end" "bottom-start  bottom-center  bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}


#bk-success{display:none;position:fixed;inset:0;z-index:9999;background:var(--bg,#161009);overflow:auto;padding:38px 16px}
#bk-success.show{display:block}
#bk-success .bks-card{max-width:520px;margin:0 auto;background:var(--panel,#fff);border:1px solid var(--line,#edebe7);border-radius:22px;padding:34px 26px;text-align:center}
#bk-success .bks-ic{width:66px;height:66px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;font-size:34px;color:#161009;background:var(--grad-gold,#c9a15a)}
#bk-success h2{font-size:26px;margin:0 0 8px}
#bk-success .bks-sub{color:var(--muted,#6b5d4c);font-size:14.5px;line-height:1.6;margin:0 auto 22px;max-width:400px}
#bk-success .bks-code-box{background:rgba(201,161,90,.10);border:1px dashed var(--gold2,#c9a15a);border-radius:14px;padding:16px;margin-bottom:20px}
#bk-success .bks-lbl{font-size:11px;letter-spacing:1.5px;color:var(--gold2,#c9a15a);font-weight:700;margin-bottom:6px}
#bk-success .bks-code{font-size:30px;font-weight:800;letter-spacing:3px;color:var(--gold1,#8a5a1f)}
#bk-success .bks-save{font-size:12px;color:var(--muted,#6b5d4c);margin-top:6px}
#bk-success .bks-details{text-align:left;border-top:1px solid var(--line,#edebe7);padding-top:16px;margin-bottom:18px}
#bk-success .bks-details .bks-lbl{text-align:center;margin-bottom:12px}
#bk-success .bks-nv{font-weight:700;font-size:17px;color:var(--gold1,#8a5a1f);margin-bottom:4px}
#bk-success /* --fg does not exist in this project — the token is --cream — so every row of
   "Booking details" fell back to #f0e6d6, a near-white cream, on a white card:
   1.24:1. The text was there and simply could not be seen. Owner: "gan nhu
   cung mau background, hoa vao". --cream gives 17.07:1. */
.bks-row{color:var(--cream);font-size:14.5px;padding:3px 0}
#bks-time{color:var(--gold1);font-weight:800;font-size:17px}
#bk-success .bks-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line,#edebe7);margin-top:12px;padding-top:12px}
#bk-success .bks-total b{font-size:20px;color:var(--gold1,#8a5a1f)}
#bk-success .bks-emailnote{color:var(--muted,#6b5d4c);font-size:13px;margin:0 0 18px}
#bk-success .bks-update{background:rgba(255,255,255,.04);border-radius:12px;padding:14px;margin-bottom:20px}
#bk-success .bks-uq{font-weight:700;font-size:14px}
#bk-success .bks-us{color:var(--muted,#6b5d4c);font-size:12.5px;margin:2px 0 10px}
#bk-success .bks-contacts{display:flex;gap:8px;justify-content:center}
#bk-success .bks-c{flex:1;padding:9px 6px;border-radius:10px;font-size:13px;font-weight:600;text-decoration:none}
#bk-success .bks-c.wa{background:#25d366;color:#0a3d1a}#bk-success .bks-c.tg{background:#2aabee;color:#fff}#bk-success .bks-c.za{background:#0068ff;color:#fff}
