
.lv-booking-backdrop{position:fixed;inset:0;z-index:2147483647;background:rgba(17,20,29,.48);display:grid;place-items:center;padding:20px;backdrop-filter:blur(12px)}
.lv-booking-dialog{width:min(680px,100%);max-height:min(90vh,860px);overflow:auto;background:var(--lv-surface-elevated,#fff);color:var(--lv-text,#20222a);border:1px solid var(--lv-line,rgba(0,0,0,.08));border-radius:28px;box-shadow:var(--lv-shadow-overlay,0 24px 70px rgba(0,0,0,.2));padding:28px;position:relative}
.lv-booking-close{position:absolute;right:18px;top:16px;border:0;background:transparent;font-size:28px;color:var(--lv-muted,#777);cursor:pointer}
.lv-booking-kicker{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--module-accent,var(--place-accent,#b46678))}
.lv-booking-dialog h2{font-family:var(--lv-font-display,inherit);font-size:28px;margin:7px 0 8px}
.lv-booking-dialog>p{margin:0 0 22px;color:var(--lv-muted,#777)}
.lv-booking-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lv-booking-form label{display:grid;gap:7px}.lv-booking-form label.is-wide{grid-column:1/-1}
.lv-booking-form label span{font-size:13px;font-weight:700}.lv-booking-form label small{font-weight:500;color:var(--lv-muted,#777)}
.lv-booking-form input,.lv-booking-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--lv-line,rgba(0,0,0,.12));background:var(--lv-surface-soft,#f8f6f6);color:inherit;border-radius:14px;padding:12px 13px;font:inherit}
.lv-booking-safety{margin:18px 0;padding:15px 16px;border-radius:16px;background:var(--lv-surface-soft,#f8f6f6);font-size:13px}.lv-booking-safety p{margin:5px 0 0;color:var(--lv-muted,#666);line-height:1.5}
.lv-booking-actions{display:flex;justify-content:flex-end;gap:10px}.lv-booking-actions button{border:1px solid var(--lv-line,rgba(0,0,0,.12));border-radius:999px;padding:11px 17px;background:transparent;color:inherit;font-weight:750;cursor:pointer}.lv-booking-actions .is-primary{background:var(--module-accent,var(--place-accent,#b46678));border-color:transparent;color:#fff}
.lv-booking-result{margin-top:16px;padding:15px;border-radius:16px;background:var(--lv-surface-soft,#f8f6f6)}.lv-booking-result p{margin:5px 0 0;color:var(--lv-muted,#666)}
.lv-bookings-view{padding:24px;max-width:1100px;margin:0 auto}.lv-bookings-head span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--module-accent,#b46678)}.lv-bookings-head h1{margin:7px 0 8px;font-size:32px}.lv-bookings-head p{margin:0;color:var(--lv-muted,#777)}
.lv-booking-list{display:grid;gap:12px;margin-top:22px}.lv-booking-card{border:1px solid var(--lv-line,rgba(0,0,0,.08));background:var(--lv-surface-elevated,#fff);border-radius:20px;padding:18px;box-shadow:var(--lv-shadow-card,0 8px 30px rgba(0,0,0,.06));display:grid;gap:12px}.lv-booking-card-head{display:flex;justify-content:space-between;gap:14px}.lv-booking-card h3{margin:0;font-size:18px}.lv-booking-card small{color:var(--lv-muted,#777)}.lv-booking-status{white-space:nowrap;border-radius:999px;padding:6px 10px;background:var(--lv-surface-soft,#f4f2f2);font-size:12px;font-weight:800}.lv-booking-meta{display:flex;flex-wrap:wrap;gap:8px}.lv-booking-meta span{font-size:12px;padding:6px 9px;border-radius:999px;background:var(--lv-surface-soft,#f4f2f2)}.lv-booking-card-actions{display:flex;flex-wrap:wrap;gap:8px}.lv-booking-card-actions button,.lv-booking-card-actions a{border:1px solid var(--lv-line,rgba(0,0,0,.12));border-radius:999px;padding:8px 12px;background:transparent;color:inherit;text-decoration:none;font:inherit;font-weight:700;cursor:pointer}.lv-booking-card-actions .is-primary{background:var(--module-accent,#b46678);border-color:transparent;color:#fff}
.lv-booking-empty{margin-top:22px;padding:30px;border:1px dashed var(--lv-line,rgba(0,0,0,.14));border-radius:20px;text-align:center;color:var(--lv-muted,#777)}
@media(max-width:720px){.lv-booking-dialog{padding:22px 18px;border-radius:22px}.lv-booking-form{grid-template-columns:1fr}.lv-booking-form label.is-wide{grid-column:auto}.lv-bookings-view{padding:18px}.lv-booking-card-head{align-items:flex-start;flex-direction:column}}
.lv-booking-action-feedback{margin-top:2px;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45;background:var(--lv-surface-soft,#f4f6f6);color:var(--lv-muted,#5f6d78)}
.lv-booking-action-feedback.is-success{background:#edf8f3;color:#286c52}.lv-booking-action-feedback.is-error{background:#fff0f1;color:#a43f4d}.lv-booking-action-feedback.is-info{background:#f2f6f7;color:#536b77}.lv-booking-card-actions button:disabled{opacity:.58;cursor:wait}

.lv-booking-auto-contact{display:grid;gap:4px;padding:12px 13px;border-radius:14px;background:var(--lv-surface-soft,#f8f6f6);border:1px solid var(--lv-line,rgba(0,0,0,.1))}.lv-booking-auto-contact strong{font-size:14px;overflow-wrap:anywhere}.lv-booking-auto-contact small{font-size:12px;line-height:1.45}.lv-booking-auto-contact.is-found{border-color:color-mix(in srgb,var(--module-accent,var(--place-accent,#b46678)) 28%,var(--lv-line,#d9d9d9))}.lv-booking-auto-contact.is-missing{border-style:dashed}

/* Verified-email fallback canvas. Provider routes never enter this surface. */
.lv-booking-backdrop{align-items:end;padding:0;animation:lv-booking-veil-in .3s ease-out both}
.lv-booking-dialog{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto;width:min(100%,1180px);height:min(82dvh,820px);max-height:calc(100dvh - env(safe-area-inset-top));margin:0 auto;padding:clamp(22px,3vw,38px) clamp(20px,4vw,54px) max(18px,env(safe-area-inset-bottom));overflow:hidden;border-radius:34px 34px 0 0;background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(242,249,249,.98));animation:lv-booking-sheet-in .56s cubic-bezier(.2,.82,.22,1) both}
.lv-booking-dialog.is-inline{width:100%;height:100%;max-height:none;padding:clamp(20px,3vw,34px) clamp(18px,4vw,50px) max(14px,env(safe-area-inset-bottom));border:0;border-radius:0;box-shadow:none;animation:lv-booking-inline-in .34s ease-out both}
.is-booking-inline-host{display:block!important;min-height:0}.is-booking-inline-host>.lv-booking-dialog.is-inline{min-height:0}
.lv-booking-dialog>p{display:grid;gap:3px;margin:0 0 17px}.lv-booking-dialog>p strong{font-size:15px}.lv-booking-dialog>p span{color:var(--lv-muted,#687b8c);font-size:11px}
.lv-booking-progress{display:grid;grid-template-columns:auto minmax(20px,1fr) auto minmax(20px,1fr) auto;align-items:center;width:min(520px,100%);margin:0 0 20px}.lv-booking-progress>button{display:grid;grid-template-columns:34px auto;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:var(--lv-muted,#687b8c);font:inherit;text-align:left}.lv-booking-progress b{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(17,47,68,.13);border-radius:50%;background:#fff}.lv-booking-progress span{font-size:11px;font-weight:800}.lv-booking-progress>button[aria-current=step]{color:var(--module-accent,var(--place-accent,#be587a))}.lv-booking-progress>button[aria-current=step] b{border-color:transparent;background:var(--module-accent,var(--place-accent,#be587a));color:#fff}.lv-booking-progress>i{height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--module-accent,var(--place-accent,#be587a)) 65%,#fff),rgba(17,47,68,.12))}
.lv-booking-canvas{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}.lv-booking-step{align-self:center;max-width:900px;animation:lv-booking-step-in .32s ease-out both}.lv-booking-step>span{color:var(--module-accent,var(--place-accent,#be587a));font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.lv-booking-step h3{max-width:17ch;margin:8px 0;font-family:var(--lv-font-display,inherit);font-size:clamp(2rem,5vw,4rem);letter-spacing:-.055em;line-height:.95}.lv-booking-step>p{max-width:65ch;margin:0 0 24px;color:var(--lv-muted,#687b8c);line-height:1.55}.lv-booking-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.42fr);gap:13px}.lv-booking-fields label,.lv-booking-note{display:grid;gap:7px}.lv-booking-fields label>span,.lv-booking-note>span{font-size:11px;font-weight:800}.lv-booking-fields input,.lv-booking-note textarea{width:100%;min-height:54px;padding:12px 14px;border:1px solid rgba(17,47,68,.14);border-radius:15px;background:rgba(255,255,255,.86);color:inherit;font:inherit;box-sizing:border-box}.lv-booking-note textarea{min-height:92px;resize:vertical}.lv-booking-occasions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 15px}.lv-booking-occasions button{min-height:42px;padding:0 14px;border:1px solid rgba(17,47,68,.13);border-radius:999px;background:#fff;color:inherit;font-weight:760;cursor:pointer}.lv-booking-occasions button[aria-pressed=true]{border-color:color-mix(in srgb,var(--module-accent,var(--place-accent,#be587a)) 60%,#fff);background:color-mix(in srgb,var(--module-accent,var(--place-accent,#be587a)) 10%,#fff);color:var(--module-accent,var(--place-accent,#be587a))}.lv-booking-route{display:grid;gap:3px;margin-top:13px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--module-accent,var(--place-accent,#be587a)) 22%,transparent);border-radius:16px;background:color-mix(in srgb,var(--module-accent,var(--place-accent,#be587a)) 7%,#fff)}.lv-booking-route small{max-width:80ch;color:var(--lv-muted,#687b8c);line-height:1.45}.lv-booking-actions{align-items:center;padding-top:16px}.lv-booking-actions>span{flex:1}.lv-booking-actions button{min-height:48px}.lv-booking-result{align-self:center;margin:20px 0}
@keyframes lv-booking-veil-in{from{background:rgba(17,20,29,0);backdrop-filter:blur(0)}to{background:rgba(17,20,29,.48);backdrop-filter:blur(12px)}}
@keyframes lv-booking-sheet-in{from{opacity:.25;transform:translate3d(0,105%,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes lv-booking-inline-in{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}
@keyframes lv-booking-step-in{from{opacity:0;transform:translate3d(18px,0,0)}to{opacity:1;transform:none}}
@media(max-width:720px){.lv-booking-dialog,.lv-booking-dialog.is-inline{height:min(88dvh,780px);padding:18px 16px max(10px,env(safe-area-inset-bottom));border-radius:26px 26px 0 0}.lv-booking-dialog.is-inline{height:100%;border-radius:0}.lv-booking-dialog h2{max-width:13ch;font-size:clamp(1.7rem,8vw,2.5rem);line-height:.98}.lv-booking-progress{margin-bottom:12px}.lv-booking-progress>button{grid-template-columns:32px}.lv-booking-progress b{width:32px;height:32px}.lv-booking-progress span{display:none}.lv-booking-canvas{display:block;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding-bottom:72px}.lv-booking-canvas::-webkit-scrollbar{display:none}.lv-booking-step{align-self:start;min-height:0;overflow:visible}.lv-booking-step h3{font-size:clamp(1.8rem,10vw,3rem)}.lv-booking-step>p{margin-bottom:17px;font-size:12px}.lv-booking-fields{grid-template-columns:1fr}.lv-booking-occasions{gap:6px}.lv-booking-occasions button{min-height:38px;padding-inline:11px;font-size:11px}.lv-booking-dialog.is-inline .lv-booking-actions{position:absolute;left:16px;right:16px;bottom:max(8px,env(safe-area-inset-bottom));z-index:4;padding:12px 0 2px;background:linear-gradient(180deg,rgba(248,252,252,0),rgba(248,252,252,.98) 24%)}.lv-booking-actions button{padding-inline:14px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.lv-booking-backdrop,.lv-booking-dialog,.lv-booking-dialog.is-inline,.lv-booking-step{animation:none!important}.lv-booking-occasions button,.lv-booking-actions button{transition:none!important}}

@media(max-width:720px){
  .lv-booking-dialog.is-inline{padding-top:14px}.lv-booking-dialog.is-inline>p{margin-bottom:8px}.lv-booking-dialog.is-inline .lv-booking-progress{margin-bottom:5px}
  .lv-booking-dialog.is-inline .lv-booking-step h3{margin:4px 0;font-size:clamp(1.55rem,7.8vw,2.15rem);line-height:1}
  .lv-booking-dialog.is-inline .lv-booking-step>p{margin-bottom:10px;line-height:1.4}.lv-booking-dialog.is-inline .lv-booking-occasions{margin-bottom:8px}
  .lv-booking-dialog.is-inline .lv-booking-occasions button{min-height:34px}.lv-booking-dialog.is-inline .lv-booking-note textarea{min-height:64px;max-height:78px}
  .lv-booking-dialog.is-inline .lv-booking-route{margin-top:8px;padding:9px 11px}.lv-booking-dialog.is-inline .lv-booking-route small{font-size:9px;line-height:1.35}
}

.lv-booking-dialog{--module-accent:var(--trip-accent,var(--luvia-color-action-primary,#b46678))}
