:root{--booking-primary:#6558f5;--booking-secondary:#8b7cf6}body.booking-theme{background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--booking-primary) 10%,white),#f8f9fc 34%,#fff 70%);min-height:100vh}.booking{max-width:650px!important;margin:45px auto 80px!important;padding:0 18px}.booking .card{border:1px solid color-mix(in srgb,var(--booking-primary) 14%,#e5e7eb)!important;border-radius:26px!important;padding:34px!important;box-shadow:0 24px 70px rgba(30,35,60,.09)!important;background:rgba(255,255,255,.96)}.booking-top{display:flex;align-items:center;gap:12px;margin-bottom:24px}.business-mark{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--booking-primary),var(--booking-secondary));color:#fff;font-weight:900;font-size:19px;box-shadow:0 8px 20px color-mix(in srgb,var(--booking-primary) 22%,transparent)}.booking-top .eyebrow{margin:0;color:var(--booking-primary)!important;background:color-mix(in srgb,var(--booking-primary) 9%,white)!important}.booking-top small{display:block;margin-top:4px;color:#9298a8;font-size:12px}.booking h1{font-size:31px;letter-spacing:-.035em;margin:0 0 8px}.booking-sub{color:#737b8d;margin:0 0 24px;line-height:1.5}.booking-options{display:grid;gap:11px}.booking-option{width:100%;border:1px solid #e7e9f0;background:#fff;border-radius:16px;padding:16px;display:flex;align-items:center;gap:13px;text-align:left;cursor:pointer;transition:.18s ease;color:#171922}.booking-option:hover{border-color:color-mix(in srgb,var(--booking-primary) 42%,#e7e9f0);box-shadow:0 8px 24px color-mix(in srgb,var(--booking-primary) 10%,transparent);transform:translateY(-1px)}.booking-option>span:nth-child(2),.booking-option>span:first-child:not(.option-icon){flex:1}.booking-option strong{display:block;font-size:14px}.booking-option small{display:block;color:#8a91a2;margin-top:5px}.booking-option>b{margin-left:auto;font-size:13px}.option-icon{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--booking-primary) 9%,white);color:var(--booking-primary);font-weight:900}.chev{font-size:25px!important;color:color-mix(in srgb,var(--booking-primary) 65%,#999);line-height:1}.booking .back{color:var(--booking-primary)!important;margin-bottom:22px}.booking-summary{display:flex;justify-content:space-between;align-items:center;gap:15px;background:color-mix(in srgb,var(--booking-primary) 6%,white);border:1px solid color-mix(in srgb,var(--booking-primary) 14%,#eee);border-radius:14px;padding:13px 15px;margin:0 0 18px;color:#4c5363}.booking-summary.final span small{display:block;color:#8a91a2;margin-top:4px}.date-label{display:block;font-weight:750;color:#343846}.date-label input,.booking form input{margin-top:7px!important;border-radius:12px!important;border:1px solid #dfe2ea!important}.booking input:focus{border-color:var(--booking-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--booking-primary) 12%,transparent)!important;outline:none}.booking .slots button,.booking .btn{background:var(--booking-primary)!important;border-color:var(--booking-primary)!important;color:#fff!important}.booking .slots button:hover,.booking .btn:hover{filter:brightness(.96)}.notice.soft{background:#f8f9fb!important;color:#858c9c!important;border:1px dashed #dde1e9!important}.booking .success{background:var(--booking-primary)!important}@media(max-width:650px){.booking{margin:18px auto 50px!important;padding:0 12px}.booking .card{padding:22px 18px!important;border-radius:20px!important}.booking h1{font-size:27px}.booking-option{padding:14px}.booking-summary{align-items:flex-start;flex-direction:column}}

.date-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;background:#f3f4f8;padding:5px;border-radius:14px;margin:18px 0}.date-modes button{border:0;background:transparent;border-radius:10px;padding:11px 8px;font-weight:800;color:#777f91;cursor:pointer}.date-modes button.active{background:#fff;color:var(--booking-primary);box-shadow:0 3px 12px rgba(30,35,60,.08)}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:15px 0 20px}.week-days button{border:1px solid #e4e6ed;background:#fff;border-radius:13px;padding:10px 3px;cursor:pointer;color:#4d5362}.week-days button small{display:block;text-transform:capitalize;color:#969cac;font-size:12px;font-weight:700}.week-days button b{display:block;margin-top:4px;font-size:16px}.week-days button.active{background:var(--booking-primary);border-color:var(--booking-primary);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--booking-primary) 20%,transparent)}.week-days button.active small{color:#fff}.slots-head{display:flex;align-items:end;justify-content:space-between;margin:22px 0 11px}.slots-head small{color:#9298a8}.slots-head h3{margin:2px 0 0;font-size:18px}.slots-head>span{font-size:12px;font-weight:800;color:var(--booking-primary);background:color-mix(in srgb,var(--booking-primary) 8%,white);padding:6px 9px;border-radius:20px}.modern-slots{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:8px!important}.modern-slots button{border-radius:11px!important;padding:11px 6px!important;font-weight:800!important;background:#fff!important;color:var(--booking-primary)!important;border:1px solid color-mix(in srgb,var(--booking-primary) 30%,#ddd)!important}.modern-slots button:hover{background:var(--booking-primary)!important;color:#fff!important}.slots-loading,.no-slots{margin-top:18px;padding:22px;border-radius:14px;background:#f8f9fb;color:#858c9c;text-align:center}.slots-loading span{display:inline-block;width:14px;height:14px;border:2px solid #ddd;border-top-color:var(--booking-primary);border-radius:50%;margin-right:8px;vertical-align:-2px;animation:slotspin .7s linear infinite}.no-slots b,.no-slots span{display:block}.no-slots b{color:#555c6d;margin-bottom:5px}.no-slots span{font-size:13px}@keyframes slotspin{to{transform:rotate(360deg)}}.modern-date{margin:16px 0}@media(max-width:650px){.date-modes button{font-size:12px;padding:10px 4px}.week-days{gap:4px;overflow-x:auto;grid-template-columns:repeat(7,minmax(46px,1fr))}.modern-slots{grid-template-columns:repeat(3,1fr)!important}}
.week-days button i{display:block;font-style:normal;font-size:12px;font-weight:800;margin-top:4px;color:#25a064}.week-days button[disabled]{opacity:.42;background:#f5f6f8;cursor:not-allowed;border-style:dashed}.week-days button[disabled] i{color:#9da3b0}.week-days button.active i{color:#fff}.week-checking{margin:16px 0;padding:17px;text-align:center;border-radius:14px;background:#f8f9fb;color:#8b92a2;font-size:12px}

/* Reserva: tarjetas principales más visuales y legibles */
.booking-options{gap:14px}.booking-option{min-height:84px;padding:19px 20px;border-radius:19px;border-color:#e3e5ed;box-shadow:0 2px 7px rgba(31,35,55,.025)}.booking-option strong{font-size:17px;line-height:1.25;letter-spacing:-.015em;font-weight:800}.booking-option small{font-size:12px;margin-top:6px}.booking-option>b{font-size:15px;font-weight:850}.agenda-pick .option-icon{width:48px;height:48px;border-radius:15px;font-size:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--booking-primary) 13%,white),color-mix(in srgb,var(--booking-secondary) 8%,white));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--booking-primary) 5%,transparent)}.agenda-pick .chev,.service-pick .chev{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--booking-primary) 7%,white);font-size:21px!important;font-weight:500}.booking-option:hover .chev{background:var(--booking-primary);color:#fff}.booking-option:hover .option-icon{background:var(--booking-primary);color:#fff}.booking-option:active{transform:scale(.992)}@media(max-width:650px){.booking-option{min-height:78px;padding:16px}.booking-option strong{font-size:16px}.agenda-pick .option-icon{width:44px;height:44px}}

/* Tipografía de opciones: menos pesada, más cercana al título */
.booking-option strong{font-size:16px!important;font-weight:650!important;letter-spacing:-.01em!important}.booking-option>b{font-weight:650!important}

/* Horarios: controles sobrios y legibles para todas las temáticas */
body.booking-theme .booking .modern-slots button{background:#fff!important;color:#263044!important;border:1px solid #dde2ea!important;border-radius:12px!important;box-shadow:0 1px 3px rgba(25,35,55,.035)!important;font-weight:700!important;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}
body.booking-theme .booking .modern-slots button:hover{background:#f5f2f8!important;color:#263044!important;border-color:#b8a9c7!important;box-shadow:0 5px 14px rgba(37,31,48,.09)!important;transform:translateY(-1px)}
body.booking-theme .booking .modern-slots button:focus-visible,body.booking-theme .booking .date-modes button:focus-visible{outline:2px solid #655879;outline-offset:2px}
body.booking-theme .booking .modern-slots button:active{transform:translateY(0);background:#eee8f2!important}
body.booking-theme .booking .date-modes{background:#f2f3f6;border:1px solid #eceef2}
body.booking-theme .booking .date-modes button.active{color:#313746;background:#fff;box-shadow:0 2px 7px rgba(31,35,55,.07)}
body.booking-theme .booking .slots-head>span{color:#686073;background:#f5f1f7}
@media(max-width:650px){body.booking-theme .booking .modern-slots button{min-height:45px!important}}
.selected-service-mini{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:12px 15px;border-radius:13px;background:color-mix(in srgb,var(--booking-primary) 7%,white);color:#4c5363}.selected-service-mini span{font-size:12px;color:#858c9b}.professionals-list .option-icon{border-radius:50%}.any-professional{border-style:dashed;background:color-mix(in srgb,var(--booking-primary) 3%,white)}
.service-pick>span:nth-child(1){min-width:0}.service-public-description{display:-webkit-box!important;margin-top:5px!important;color:#737b8d!important;font-size:12px!important;line-height:1.4!important;white-space:normal!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.service-requirement-note{margin:0 0 16px;padding:14px 16px;border:1px solid #dfe2ea;border-left:3px solid var(--booking-primary);border-radius:13px;background:#fff}.service-requirement-note b{display:block;margin-bottom:4px;color:var(--booking-primary);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.service-requirement-note p{margin:0;color:#596174;font-size:12px;line-height:1.5;white-space:pre-line}
.booking+*{}.pwa-install-button{display:flex;align-items:center;gap:9px;float:none!important;width:100%;margin:14px 0 0;padding:10px 12px;border:1px solid #ddd8ff;border-radius:12px;background:#f6f4ff;color:#393174;text-align:left}.pwa-install-button>span:first-child{font-size:18px}.pwa-install-button>span:nth-child(2){display:flex;flex:1;flex-direction:column}.pwa-install-button small{color:#777386;font-size:12px}.pwa-install-button strong{padding:6px 8px;border-radius:7px;background:#6558f5;color:#fff;font-size:12px}
.booking-history-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:0 12px;border:1px solid #e1ddff;border-radius:12px;background:#f8f7ff;color:#5949d8;font-size:14px;font-weight:600;text-decoration:none}
.booking-history-link:hover{border-color:#c9c1ff;background:#f1efff}
@media(max-width:650px){.booking-history-link{min-height:46px;padding:0 14px}}
.booking-top small{font-size:13px!important}
.booking-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 26px;padding:0;list-style:none}.booking-progress:has(li:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}.booking-progress li{position:relative;display:grid;justify-items:center;gap:6px;color:#8b93a3;text-align:center}.booking-progress li:not(:last-child):after{content:"";position:absolute;z-index:0;top:15px;left:calc(50% + 19px);width:calc(100% - 38px);height:2px;background:#e5e7ee}.booking-progress li.complete:not(:last-child):after{background:color-mix(in srgb,var(--booking-primary) 65%,#e5e7ee)}.booking-progress li>span{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;border:2px solid #dfe2e9;border-radius:50%;background:#fff;color:#7a8291;font-size:13px;font-weight:700}.booking-progress li.active>span{border-color:var(--booking-primary);background:var(--booking-primary);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--booking-primary) 12%,transparent)}.booking-progress li.complete>span{border-color:color-mix(in srgb,var(--booking-primary) 70%,#fff);background:color-mix(in srgb,var(--booking-primary) 10%,#fff);color:var(--booking-primary)}.booking-progress li>small{font-size:12px;font-weight:600}.booking-progress li.active>small{color:#303746}
@media(max-width:430px){.booking-progress li>small{font-size:11px}.booking-progress{margin-bottom:22px}}
.booking-intro>.booking-progress{margin:0 0 20px}.booking-progress li>button{display:grid;justify-items:center;gap:6px;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}.booking-progress li>button:disabled{cursor:default}.booking-progress li>button>span{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:2px solid #dfe2e9;border-radius:50%;background:#fff;color:#7a8291;font-size:14px;font-weight:700}.booking-progress li.active>button>span{border-color:var(--booking-primary);background:var(--booking-primary);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--booking-primary) 12%,transparent);animation:bookingStepPulse 1.8s ease-in-out infinite}.booking-progress li.complete>button>span{border-color:color-mix(in srgb,var(--booking-primary) 70%,#fff);background:color-mix(in srgb,var(--booking-primary) 10%,#fff);color:var(--booking-primary)}.booking-progress li>button>small{font-size:12px;font-weight:600}.booking-progress li.active>button>small{color:#303746}.booking-top{margin-top:0}@keyframes bookingStepPulse{0%,100%{box-shadow:0 0 0 4px color-mix(in srgb,var(--booking-primary) 12%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--booking-primary) 6%,transparent)}}@media(prefers-reduced-motion:reduce){.booking-progress li.active>button>span{animation:none}}

/* Cabecera de reserva: progreso, identidad y contexto en una secuencia clara. */
.booking-intro{display:block;margin-bottom:22px}
.booking-intro>.booking-progress{width:100%;margin:0 0 12px}
.booking-intro .booking-top{margin:0 0 14px}
.booking-heading{min-width:0;padding:0;border:0}
.booking-heading .booking-sub{margin-bottom:0}
.booking-top .eyebrow{text-transform:none!important;letter-spacing:.02em!important;font-weight:650!important}
.booking-options{gap:12px}
.booking-option{min-height:70px;padding:13px 18px;border-radius:17px}
.service-category-title{font-weight:600!important}
.booking-option>b{font-weight:600!important}
@media(max-width:650px){
 .booking-intro{margin-bottom:22px}
 .booking-intro>.booking-progress{margin-bottom:12px}
 .booking-intro .booking-top{margin-bottom:14px}
 .booking-option{min-height:68px;padding:13px 15px}
}
.service-pick>span>small:first-of-type,.selected-service-mini span{font-size:13px!important}
.booking-summary.compact{position:sticky;top:max(8px,env(safe-area-inset-top));z-index:20;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;box-shadow:0 8px 22px rgba(31,35,55,.08);backdrop-filter:blur(12px)}
.booking-summary.compact span{display:grid;gap:3px;min-width:0}.booking-summary.compact small{color:#667085;font-size:13px}.booking-summary-date{grid-column:1/-1;color:#526071;font-size:13px;font-weight:600}
/* Jerarquía móvil: negocio, progreso y resumen deben leerse de un vistazo. */
@media(max-width:650px){
 .booking-intro{gap:16px}
 .booking-top{gap:14px}
 .business-mark{width:54px;height:54px;border-radius:16px;font-size:21px}
 .booking-top .eyebrow{font-size:14px!important;padding:7px 12px!important;letter-spacing:.07em}
 .booking-top small{font-size:13px!important;margin-top:6px}
 .booking-progress{margin-bottom:24px}
 .booking-progress li{gap:7px}
 .booking-progress li:not(:last-child):after{top:17px;left:calc(50% + 21px);width:calc(100% - 42px)}
 .booking-progress li>span{width:34px;height:34px;font-size:14px}
 .booking-progress li>small{font-size:12px;line-height:1.2}
 .booking-summary.compact{gap:5px 12px;padding:14px 15px}
 .booking-summary.compact span{gap:4px}
 .booking-summary.compact span>b{font-size:15px;line-height:1.25}
 .booking-summary.compact small{font-size:14px!important;line-height:1.25}
 .booking-summary.compact>b{font-size:15px;white-space:nowrap}
 .booking-summary-date{font-size:14px;font-weight:650;white-space:nowrap}
}
body.booking-theme .booking .modern-slots button.selected{border-color:var(--booking-primary)!important;background:var(--booking-primary)!important;color:#fff!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--booking-primary) 20%,transparent),0 8px 18px color-mix(in srgb,var(--booking-primary) 24%,transparent)!important;transform:translateY(-1px) scale(1.02)}
@media(max-width:600px){#bookingHelper{position:relative!important;right:auto!important;bottom:auto!important;display:flex;justify-content:flex-end;margin:-24px 14px 28px!important}#bookingHelper:after{display:none!important}#bhPanel{position:fixed!important;left:10px!important;right:10px!important;bottom:18px!important}}
.customer-followup{margin-top:20px;padding:17px;border:1px solid #d9e8df;border-radius:15px;background:#f5fbf7}.customer-followup h2{margin:0 0 8px;font-size:17px}.customer-followup p{margin:0 0 14px;color:#55655c;line-height:1.55;white-space:pre-line}.customer-followup a{display:inline-flex;text-decoration:none}
.waitlist-callout{margin-top:18px;padding:18px;border:1px solid color-mix(in srgb,var(--booking-primary) 28%,#e5e7eb);border-radius:16px;background:color-mix(in srgb,var(--booking-primary) 6%,white);text-align:left}.waitlist-callout strong{display:block;font-size:1.05rem}.waitlist-callout p{margin:6px 0 14px;color:#667085}.waitlist-choice{display:grid;gap:10px;margin-bottom:18px}.waitlist-choice label{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:12px;padding:14px;border:1px solid #e5e7eb;border-radius:14px;cursor:pointer}.waitlist-choice input{width:auto!important;margin-top:4px}.waitlist-choice span,.waitlist-choice b,.waitlist-choice small{display:block}.waitlist-choice small{margin-top:4px;color:#667085;line-height:1.35}
.booking .back{display:none!important}
.booking-summary.compact:has(+.date-modes){position:static;grid-template-columns:minmax(0,1fr) auto;padding:12px 14px;margin-bottom:14px;background:#faf9fc;box-shadow:none;backdrop-filter:none}
.booking-summary.compact:has(+.date-modes) .booking-summary-date{display:none}
.booking-summary.compact:has(+.date-modes) span{display:flex;align-items:baseline;gap:8px}
.booking-summary.compact:has(+.date-modes) span small{margin:0!important;font-size:12px!important}
.booking-summary.compact:has(+.date-modes)+.date-modes{margin-top:0}
.booking-summary.compact:has(+.date-modes) span>b{font-size:14px;line-height:1.3}
.booking-summary.compact:has(+.date-modes) span small{display:inline-flex;align-items:center;color:#667085;font-size:14px!important;line-height:1.3}
.booking-summary.compact:has(+.date-modes) span small:before{content:"|";margin-right:8px;color:#a0a6b2;font-weight:400}
.booking-summary.compact:has(+.date-modes)>b{font-size:14px;line-height:1.3}
.booking-summary.compact:has(+.date-modes)~.slots-head{margin-top:20px}
.booking-summary.compact:has(+.date-modes)~.slots-head>span{background:#f5f3f7;color:#747081;font-weight:600}
.booking-top .eyebrow{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border-radius:12px;font-size:17px!important;line-height:1.15;font-weight:700;letter-spacing:-.01em;text-transform:none}

/* Confirmación: resumen inequívoco y formulario compacto. */
.booking-summary.final.compact:not(:has(+.date-modes)){position:static;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;margin:0 0 16px;padding:14px 16px;background:color-mix(in srgb,var(--booking-primary) 5%,#fff);box-shadow:none;backdrop-filter:none}
.booking-summary.final.compact:not(:has(+.date-modes)) span{display:flex;align-items:baseline;gap:9px;min-width:0}
.booking-summary.final.compact:not(:has(+.date-modes)) span>b{font-size:15px;line-height:1.3}
.booking-summary.final.compact:not(:has(+.date-modes)) span small{margin:0!important;font-size:13px!important;line-height:1.3}
.booking-summary.final.compact:not(:has(+.date-modes))>b{font-size:15px;line-height:1.3;white-space:nowrap}
.booking-summary.final.compact:not(:has(+.date-modes)) .booking-summary-date{grid-column:1/-1;padding-top:7px;border-top:1px solid color-mix(in srgb,var(--booking-primary) 13%,#e5e7eb);color:#526071;font-size:14px;font-weight:400;line-height:1.35}
.booking-summary.final.compact:not(:has(+.date-modes)) .booking-summary-date:before{content:"Fecha y hora  ";color:#202939;font-size:14px;font-weight:600}
.booking #f{gap:13px}
.booking #f>label{gap:6px}
.booking #f input,.booking #f select{min-height:44px}
.booking #f .btn.wide{margin-top:3px}
@media(max-width:650px){.booking-summary.final.compact:not(:has(+.date-modes)){padding:13px 14px}.booking-summary.final.compact:not(:has(+.date-modes)) span{gap:7px}.booking #f{gap:12px}}
@media(max-width:430px){.booking-top .eyebrow{font-size:16px!important;padding:7px 11px}}
.next-available-note{margin-top:18px;padding:10px 12px;border-radius:11px;background:color-mix(in srgb,var(--booking-primary) 9%,white);color:var(--booking-primary);font-size:12px;font-weight:800;text-align:center}.waitlist-invite .waitlist-callout{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;text-align:left}.waitlist-invite .waitlist-callout strong{font-size:13px}.waitlist-invite .waitlist-callout .btn{width:auto;min-width:max-content;margin:0;padding:11px 15px;white-space:nowrap}@media(max-width:430px){.waitlist-invite .waitlist-callout{display:grid;text-align:center}.waitlist-invite .waitlist-callout .btn{width:100%;font-size:12px}.next-available-note{font-size:12px}}
