:root{font:15px system-ui,sans-serif;color:#252638;background:#f4f3ee}*{box-sizing:border-box}body{margin:0}header{background:#272438;color:white;padding:24px max(18px,calc((100vw - 820px)/2))}header a{color:#f1d6a3}header h1{font-size:25px}header p{line-height:1.5}main{max-width:820px;margin:auto;padding:18px}.panel,#unavailable{background:white;padding:20px;border:1px solid #e0dfd9;border-radius:13px;margin-bottom:14px}h2{font-size:20px}.panel form{display:grid;gap:12px}label{display:grid;gap:6px;font-weight:700;font-size:13px}input:not([type=checkbox]){font:inherit;width:100%;border:1px solid #b6b6c1;padding:12px;border-radius:8px}.check{display:flex;align-items:start;gap:8px;font-weight:500}button{font:inherit;background:#29263b;color:white;border:0;border-radius:8px;padding:12px 14px;cursor:pointer;font-weight:700}button:disabled{opacity:.5;cursor:not-allowed}#status{font-weight:700;background:#fff8e7;padding:12px;border-radius:9px}#unavailable[hidden]{display:none}@media(max-width:650px){main{padding:13px}header{padding:18px}}
/* Retroalimentación de registro inmediatamente debajo del botón, incluso en móviles. */
#status:empty{display:none}
.registrationFeedback{border:1px solid #8cb7a4;border-left:5px solid #23745c;border-radius:10px;padding:16px;background:#edf8f2;color:#173d32;outline-offset:3px;line-height:1.5}
.registrationFeedback[hidden]{display:none}
.registrationFeedback strong{display:block;font-size:17px;margin-bottom:7px}
.registrationFeedback p{margin:0;font-size:14px;font-weight:500;overflow-wrap:anywhere}
.registrationFeedbackError{border-color:#d9a3a3;border-left-color:#9c3232;background:#fff2f1;color:#712727}
@media(max-width:650px){.registrationFeedback{padding:14px}}

/* ACATLÁN VIP · navegación móvil centrada en tareas, no en formularios. */
[hidden]{display:none!important}
:root{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#183049;background:#f4f7f9;color-scheme:light}
body{padding-bottom:calc(84px + env(safe-area-inset-bottom));min-height:100dvh}
.vipMobileTop{position:sticky;top:0;z-index:25;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#142a42;color:#fff;padding:11px max(14px,calc((100vw - 720px)/2));box-shadow:0 5px 18px #132b4520}
.vipMobileBrand{display:flex;gap:10px;align-items:center;text-decoration:none;font-weight:850;color:#fff;font-size:16px;letter-spacing:.015em;min-width:0}
.vipMobileBrand img{width:43px;height:43px;object-fit:contain;background:#fff;border-radius:13px;padding:3px;flex:none}
.vipMobileBrand small{display:block;font-size:10px;letter-spacing:.1em;font-weight:700;color:#f2d99f;margin-top:3px}
.vipMobileHeaderActions{display:flex;gap:6px;align-items:center;flex-shrink:0}
.vipMobileHeaderActions a{font-size:12px;color:#f9e2b4;font-weight:700;text-decoration:none}
.vipMobileHeaderActions button{background:#edf3f7;color:#173047;border:1px solid #b4c7d1;border-radius:11px;font-size:12px;min-height:42px;padding:8px 10px}
.vipMobileHeaderActions [data-vip-session-status]{font-size:11px;display:block;max-width:130px}
#accountMain{max-width:750px;margin:auto;padding:15px 14px 22px}
.appPage{display:none}.appPage.is-active{display:block;animation:vipPageIn .15s ease-out}
@keyframes vipPageIn{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}
.vipWelcome{background:linear-gradient(126deg,#163c58,#17627a);color:#fff;border-radius:23px;padding:26px 21px;margin:2px 0 23px;box-shadow:0 9px 28px #17344918}
.vipEyebrow{font-size:10px;letter-spacing:.13em;font-weight:900;color:#cfac69}
.vipWelcome .vipEyebrow{color:#f2d99f}.vipWelcome h1{font-size:clamp(23px,6vw,31px);line-height:1.13;margin:12px 0}
.vipWelcome p{max-width:430px;font-size:14px;color:#e5eff3;line-height:1.5;margin:0}
.vipSectionTitle{font-size:19px;color:#183249;margin:15px 0 13px}
.vipActionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vipActionCard{font:inherit;display:flex;flex-direction:column;align-items:flex-start;min-height:160px;gap:7px;text-align:left;border:1px solid #dce7ed;background:#fff;color:#21354a;text-decoration:none;border-radius:20px;padding:18px 14px;box-shadow:0 5px 18px #1d37510a}
.vipActionCard:hover,.vipActionCard:focus-visible{border-color:#75a0b1;outline-offset:3px}
.vipActionIcon{display:grid;place-items:center;width:47px;height:47px;font-size:24px;background:#e7f1f1;border-radius:15px;margin-bottom:4px}
.vipActionCard strong{font-size:15px;line-height:1.25}.vipActionCard small{color:#5b7282;font-weight:500;font-size:12px;line-height:1.3}
.vipFootnote{font-size:12px;color:#5d7282;line-height:1.6;margin-top:23px}
.vipPageHeading{margin:8px 2px 18px}.vipPageHeading h1{font-size:clamp(24px,6vw,30px);letter-spacing:-.02em;margin:7px 0;color:#173047}
.vipPageHeading p{margin:0;color:#617283;font-size:14px;line-height:1.45}
#accountMain .panel,#accountMain #unavailable{border:1px solid #dfe8ee;border-radius:19px;background:#fff;padding:19px 17px;margin-bottom:14px;box-shadow:0 4px 15px #142a4209}
#accountMain .panel h2{font-size:18px;margin-top:3px;color:#213b52;line-height:1.3}
#accountMain .panel h3{font-size:15px;line-height:1.4}
#accountMain .panel p{line-height:1.55;color:#637385;font-size:13px}
#accountMain input:not([type=checkbox]),#accountMain select{font:inherit;min-height:48px;background:#fff;color:#26394c;border:1px solid #becdd8;border-radius:12px;padding:11px;width:100%;max-width:100%}
#accountMain label{color:#314859;font-size:13px;line-height:1.4}
#accountMain .check input{width:18px;height:18px;flex:none;accent-color:#126781}
#accountMain button:not(.vipActionCard),#accountMain .vipPrimaryLink{font:inherit;background:#175e7b;color:#fff;border:0;border-radius:12px;min-height:46px;padding:11px 14px;font-weight:750;cursor:pointer}
#accountMain button:disabled{opacity:.55;cursor:wait}
.vipAuthSwitch{display:flex;gap:5px;background:#e9eef2;border:1px solid #dce3e9;padding:5px;border-radius:15px;margin-bottom:15px}
.vipAuthSwitch button{flex:1;min-width:0;border-radius:11px!important;color:#466276!important;background:transparent!important;box-shadow:none}
.vipAuthSwitch button.active{background:#fff!important;color:#173f58!important;box-shadow:0 2px 7px #18394e12}
.vipAccountSummary{background:#eef8f4;border:1px solid #cbe6d9;border-radius:17px;padding:15px;display:flex;gap:13px;align-items:center;margin-bottom:16px}
.vipAccountAvatar{border-radius:50%;display:grid;place-items:center;width:40px;height:40px;flex:none;background:#24816b;color:#fff;font-weight:900}
.vipAccountSummary strong{color:#184d40;font-size:15px}.vipAccountSummary p{font-size:12px;color:#486e60;margin:4px 0 0;line-height:1.4}
.vipEmptyState{display:grid;justify-items:center;text-align:center;gap:9px;padding:35px 20px;border:1px dashed #b8d0df;background:#fff;border-radius:20px}
.vipEmptyState>span{font-size:33px}.vipEmptyState strong{font-size:18px}.vipEmptyState p{font-size:13px;color:#637385;max-width:290px;line-height:1.5;margin:0}
.vipEmptyState a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;margin-top:10px}
#clientQrPanel{text-align:center}#clientQrPanel img{max-width:100%;border:9px solid #fff;box-shadow:0 0 0 1px #e1e9ef;border-radius:14px}
#beautyBookingPanel .bookingWeekActions{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-items:center}
#beautyBookingPanel .bookingWeekActions strong{grid-column:1/-1;grid-row:1;text-align:center;font-size:12px;color:#526c80}
#beautyBookingPanel .bookingWeekActions button{font-size:12px;grid-row:2;min-width:0}
#beautyBookingForm{margin-top:18px}#beautyBookingForm label{margin:5px 0}
#beautyBookingForm button{width:100%}#beautyBookingStatus:not(:empty){border-radius:12px;padding:12px;background:#eaf7f0;color:#174d3a;font-weight:750;line-height:1.5}
#myBeautyBookings{padding:0;display:grid;gap:10px;list-style:none}
#myBeautyBookings li{background:#f5f9fb;border:1px solid #dce9ef;border-radius:13px;padding:13px;line-height:1.6;font-size:13px;overflow-wrap:anywhere}
#myBeautyBookings li button{margin:7px 0 0;display:block;background:#fcebe7!important;color:#9a4738!important;min-height:38px!important}
#accountMain .registrationFeedback{border-radius:12px}#accountMain #status:not(:empty){font-size:13px;line-height:1.5}
.vipBusinessEntry a{display:inline-flex;padding:12px;color:#175978;font-weight:850}
.vipMobileNav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;justify-content:center;gap:6px;background:#142a42;padding:8px max(9px,calc((100% - 630px)/2)) calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px #0d2a441d}
.vipMobileNav button{font:inherit;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;flex:1;min-width:0;max-width:148px;min-height:57px;border:0;border-radius:13px;background:transparent;color:#dce8f0;padding:7px 2px;cursor:pointer}
.vipMobileNav button.active{background:#f2e8d5;color:#13314a}.vipMobileNav button>span{font-size:23px;line-height:1}.vipMobileNav button small{font-size:11px;font-weight:800;white-space:nowrap}
.vipMobileNav button:focus-visible,#accountMain :focus-visible{outline:3px solid #cfab6b;outline-offset:2px}
@media(max-width:370px){.vipActionCard{padding:14px 11px;min-height:145px}.vipActionCard strong{font-size:13px}.vipMobileTop{padding:9px}.vipMobileBrand{font-size:13px}.vipMobileHeaderActions a{display:none}}
@media(prefers-reduced-motion:reduce){.appPage.is-active{animation:none}}

/* Mis citas · datos del cliente con varios negocios y selección opcional */
#allBookingsStatus:not(:empty){font-size:13px;color:#42667c;margin:8px 1px 15px;line-height:1.5}
.vipAllAppointments{margin-bottom:18px}
#allBeautyBookingsList,.vipAppointmentCards{list-style:none;margin:0;padding:0}
#allBeautyBookingsList{display:grid;gap:20px}
.vipAppointmentsGroup>h3{font-size:17px;font-weight:850;color:#193b52;margin:0 0 10px}
.vipAppointmentCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:11px}
.vipAppointmentCard{background:#fff;border:1px solid #dce7ed;border-radius:18px;padding:17px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;box-shadow:0 4px 14px #1f394d0b}
.vipAppointmentCard strong{font-size:16px;color:#1c4159}
.vipAppointmentCard p{margin:0;font-size:13px;color:#536b7d;line-height:1.45}
.vipAppointmentState{font-size:12px;background:#e8f6ee;border-radius:99px;color:#235c43;font-weight:750;padding:5px 9px}
.vipAppointmentsGroup:last-child .vipAppointmentState{background:#eef2f5;color:#536474}
.vipAppointmentCard a{align-self:stretch;text-align:center;text-decoration:none;font-size:13px;background:#175e7b;color:#fff;border-radius:11px;padding:12px 10px;min-height:44px;font-weight:800;margin-top:7px}
.vipAppointmentCard a:focus-visible{outline:3px solid #cfab6b;outline-offset:3px}

/* Marcas auténticas en el historial de citas, por organización. */
.vipAppointmentBrand{display:flex;align-items:center;gap:12px;min-width:0}
.vipAppointmentBrand strong{overflow-wrap:anywhere}
.vipAppointmentLogo,.vipAppointmentLogoFallback{width:54px;height:54px;flex:0 0 54px;object-fit:contain;border-radius:13px;border:1px solid #d9e5ec;background:#fff}
.vipAppointmentLogoFallback{display:grid;place-items:center;font-size:25px;background:#edf4f8}

/* Quinta pestaña de cliente: promociones de ACATLÁN VIP, no Marketplace. */
.vipMobileNav{gap:2px;padding-left:max(3px,calc((100% - 650px)/2));padding-right:max(3px,calc((100% - 650px)/2))}
.vipMobileNav button{min-width:0;flex:1;padding:7px 0}
.vipMobileNav button small{font-size:10px}
.vipPromoList{margin:14px 0 0;padding:0;display:grid;gap:12px;list-style:none}
.vipPromoCard{background:#fff;border:1px solid #d8e7ed;border-radius:18px;padding:17px;display:grid;gap:9px}
.vipPromoCard>small{color:#33657c;font-size:12px;font-weight:800}
.vipPromoCard h3{color:#193b53;font-size:18px;margin:0}
.vipPromoCard p{margin:0;line-height:1.45;font-size:13px;color:#566c7a}
.vipPromoPrices{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vipPromoPrices s{color:#8c6a67}.vipPromoPrices strong{font-size:20px;color:#0d6b78}
.vipPromoPrices span{font-size:12px;color:#236348;background:#e7f5ed;padding:5px 9px;border-radius:30px}
.vipPromoCard .vipPromoFine{font-size:11px}
.vipPromoCard a{display:block;text-align:center;background:#175e7b;border-radius:12px;color:#fff;text-decoration:none;padding:12px;font-weight:800}
#vipPromoStatus{font-size:13px;color:#4e6d80}
@media(max-width:360px){.vipMobileNav button small{font-size:9px}}

#clientManualCodePanel{display:grid;justify-items:center;gap:7px;padding:16px 10px;
 border:1px solid #d0dfeb;border-radius:15px;background:#f2f7fa;margin:10px auto}
#clientManualCode{font:800 clamp(24px,5vw,32px)/1.2 system-ui;letter-spacing:.13em;color:#1b4f69}
#clientManualCodePanel small{color:#63788a;line-height:1.5;font-size:11px}

/* Android: navigation relies on browser history for system back/forward gestures. */
.vipMobileNav button,[data-open-page]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

/* Fidelidad por organización: sin premios cruzados ni contador por mera reserva. */
#vipLoyaltyProgress{margin-top:22px;border-top:1px solid #dae7ec;padding-top:12px}
#vipLoyaltyProgress h3{font-size:17px;color:#163d55}
#vipLoyaltyProgress>p{font-size:12px;line-height:1.5;color:#516c7d}
#vipLoyaltyList{list-style:none;padding:0;display:grid;gap:10px}
#vipLoyaltyList li{display:grid;gap:5px;background:#f3f8fb;border:1px solid #d9e8ef;border-radius:13px;padding:14px;overflow-wrap:anywhere}
#vipLoyaltyList li strong{color:#183f55}
#vipLoyaltyList li p{font-size:13px;color:#225470;font-weight:750;margin:0}
#vipLoyaltyList li small{font-size:12px;color:#526c7c}

/* Cliente: comprobantes de transferencias directas, sin Marketplace. */
#clientTransferOrders{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.vipTransferCard{display:grid;gap:9px;padding:14px;border:1px solid #d2e2eb;border-radius:14px;background:#f7fafb;overflow-wrap:anywhere}
.vipTransferCard p{font-size:13px;line-height:1.5;margin:0}
.vipTransferForm{display:grid;gap:11px}
.vipTransferForm label{display:grid;gap:5px;font-size:13px}
.vipTransferForm .vipTransferConsent{display:flex;align-items:flex-start;gap:8px}
.vipTransferForm input[type=checkbox]{width:20px;height:20px;flex:0 0 20px}
.vipTransferForm button{min-height:44px}

/* Verified beauty-star reviews within the customer's account. */
#clientRatingsList{list-style:none;margin:0;padding:0;display:grid;gap:12px}
#clientRatingsList li{padding:14px;background:#f5f9fb;border:1px solid #dbe7ed;border-radius:12px}
#clientRatingsList form{display:grid;gap:10px;margin-top:9px}
#clientRatingsList label{display:grid;gap:5px}
#clientRatingsList input,#clientRatingsList select,#clientRatingsList textarea{min-width:0}
#clientRatingsList button{min-height:44px}

/* Portal de cliente: tarjetas grandes, filtros accesibles y recompensas independientes. */
.vipActionGrid{gap:13px}
.vipActionCard{min-height:172px;padding:18px 15px;gap:9px;border-radius:22px;box-shadow:0 5px 18px #15374d12}
.vipActionIcon{width:67px;height:67px;font-size:36px;border-radius:19px;margin-bottom:4px;background:#e8f3f5}
.vipActionCard strong{font-size:16px;line-height:1.25}
.vipActionCard small{font-size:12px;line-height:1.4}
#vipClientNoticeBell{position:relative;flex:none;width:46px;height:46px;display:grid;place-items:center;
 font-size:25px!important;background:#223f57!important;color:white!important;border:1px solid #718b9d!important}
#vipClientNoticeCount{position:absolute;top:-5px;right:-5px;min-width:18px;padding:3px;
 background:#f6cf7f;color:#153247;border-radius:999px;font-size:11px}
.vipDirectoryFilters{display:grid;gap:12px;padding:15px;border-radius:18px;
 background:#fff;border:1px solid #dce8ed;margin:0 0 14px}
.vipDirectoryFilters label{display:grid;gap:6px;font-size:12px;font-weight:750;color:#2a5369}
.vipDirectoryFilters select,.vipDirectoryFilters input{width:100%;min-width:0;min-height:45px;
 border:1px solid #b8cdd8;border-radius:11px;padding:10px 9px;background:#fff;font:inherit}
.vipDirectoryFilterGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#vipDirectoryStatus{font-size:13px;color:#44677b;line-height:1.5}
.vipDirectoryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vipDirectoryCard{background:white;border:1px solid #d7e6eb;border-radius:20px;text-decoration:none;
 overflow:hidden;box-shadow:0 5px 17px #15374d10;display:flex;flex-direction:column;
 align-items:center;gap:10px;padding:11px 10px 15px;min-width:0}
.vipDirectoryCard:hover,.vipDirectoryCard:focus-visible{border-color:#40879d;outline-offset:3px}
.vipDirectoryLogoFrame{display:grid;place-items:center;width:100%;aspect-ratio:1.18;
 background:#f3f8fa;border-radius:15px;overflow:hidden}
.vipDirectoryLogoFrame img{display:block;max-width:90%;max-height:90%;width:auto;height:auto;object-fit:contain}
.vipDirectoryLogoFrame span{font-size:49px}
.vipDirectoryCard strong{font-size:14px;text-align:center;color:#183a51;line-height:1.3;overflow-wrap:anywhere}
#vipDirectoryMore{height:30px}
#vipLoyaltyList li{border-radius:17px;padding:17px;background:#fff}
#vipLoyaltyList li progress{width:100%;height:15px;accent-color:#217a7c}
.vipRewardsRemaining{font-size:13px;font-weight:900;color:#1c766b}
.vipMembershipPreview{text-align:center}
.vipMembershipPreview>span{font-size:64px;display:block;margin:9px}
.vipMembershipPreview p{line-height:1.6}
.vipCustomerProfileHeader{display:flex;gap:16px;align-items:center;margin:18px 0}
.vipCustomerProfileHeader>img,.vipCustomerAvatarFallback{width:88px;height:88px;flex:0 0 88px;
 border-radius:50%;object-fit:cover;border:2px solid #d4e4eb;background:#e7f3f7}
.vipCustomerAvatarFallback{display:grid;place-items:center;font-size:42px}
.vipCustomerProfileHeader div{display:grid;gap:5px;min-width:0}
.vipCustomerProfileHeader strong{font-size:17px}
.vipCustomerProfileHeader small{font-size:12px;color:#607888;overflow-wrap:anywhere}
.vipCustomerPhotoActions{display:grid;gap:9px;padding-top:16px;margin-top:12px;border-top:1px solid #e1e7ef}
.vipCustomerPhotoActions button{width:100%}
#vipCustomerProfileStatus{font-size:13px;color:#386b76;line-height:1.6}
#vipNoticesList{display:grid;gap:10px;list-style:none;padding:0}
@media(max-width:380px){.vipActionCard strong{font-size:14px}.vipActionIcon{width:57px;height:57px;font-size:32px}
 .vipDirectoryFilterGrid{grid-template-columns:1fr 1fr}.vipDirectoryCard strong{font-size:13px}
 .vipMobileHeaderActions{gap:4px}.vipMobileHeaderActions button{padding:6px 8px}}

/* ACATLÁN VIP CLIENTES: identidad blanco / negro / dorado, independiente de OM y negocios. */
:root{--vipGold:#b78a38;--vipGoldSoft:#f6ead0;--vipBlack:#141414;--vipWhite:#fff;
 color:#1b1b1b!important;background:#f9f8f5!important}
body{background:#f9f8f5;color:#1b1b1b}
.vipMobileTop{background:#111!important;color:#fff!important;border-bottom:2px solid #b78a38;
 box-shadow:0 6px 22px #16120b20}
.vipMobileBrand{color:#fff!important}.vipMobileBrand small{color:#eac77c!important}
.vipMobileTop .vipMobileHeaderActions button:not([data-vip-sign-out]){background:#29241b!important;
 color:#f4d38b!important;border:1px solid #b78a38!important}
.vipMobileHeaderActions a{color:#f4d38b}
.vipMobileHeaderActions [data-vip-sign-out]{background:#fff!important;color:#151515!important;
 border:1px solid #b78a38!important}
.vipWelcome{background:linear-gradient(135deg,#171717 15%,#423314 100%)!important;
 color:#fff!important;border:1px solid #b78a38}
.vipEyebrow{color:#deb869!important}.vipWelcome .vipEyebrow{color:#e7c989!important}
.vipSectionTitle,.vipPageHeading h1,.vipBusinessInfoCard h2,
.vipBusinessHero h1{color:#141414}
.vipActionCard,.vipDirectoryCard,.vipServiceCard,.vipBusinessInfoCard,
#accountMain .panel,.vipDirectoryFilters{background:#fff;border:1px solid #e6d9bb;color:#1c1c1c;
 box-shadow:0 5px 17px #30250e0c}
.vipActionCard:hover,.vipDirectoryCard:hover{border-color:#b78a38}
.vipActionIcon{background:#f7edd8!important;color:#171717!important}
.vipActionCard strong,.vipDirectoryCard strong{color:#141414!important}
.vipActionCard small,.vipPageHeading p{color:#625e53!important}
.vipMobileNav{background:#111!important;border-top:2px solid #b78a38}
.vipMobileNav button{color:#d8d3c9!important}
.vipMobileNav button.active{background:#c99e4e!important;color:#141414!important}
#accountMain button:not(.vipActionCard),#accountMain .vipPrimaryLink,
.vipBusinessBookingLink{background:#171717!important;color:#fff!important;border:1px solid #ac873e!important}
#accountMain button:hover{filter:brightness(1.08)}
#accountMain button:focus-visible,#accountMain a:focus-visible{outline:3px solid #c69a46!important;outline-offset:3px}
#accountMain input:focus-visible,#accountMain select:focus-visible{outline:2px solid #b78a38;outline-offset:2px}
#accountMain input,#accountMain select,#accountMain textarea{border-color:#d3c6a9}
.vipDirectoryLogoFrame{background:#fcf8ee!important}
.vipServiceCatalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vipServiceCard{display:grid;gap:7px;align-content:start;padding:15px;border-radius:16px;overflow-wrap:anywhere}
.vipServiceCard small{color:#84601f;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.06em}
.vipServiceCard h3{font-size:15px;margin:0;color:#1a1a1a;line-height:1.3}
.vipServiceCard strong{color:#5e420f;font-size:16px}
.vipServiceCard span{color:#655e52;font-size:12px}
.vipServiceCard p{font-size:12px;line-height:1.45;color:#595651;margin:0}
.vipBusinessDetailCards{display:grid;gap:13px}
.vipBusinessInfoCard{border-radius:18px;padding:18px}
.vipBusinessInfoCard h2{font-size:19px;margin:0 0 10px}
.vipBusinessInfoCard>p{font-size:13px;line-height:1.55;color:#635d52}
.vipBusinessHero{background:linear-gradient(135deg,#1b1b1b,#46371c);color:#fff;
 border-radius:22px;border:1px solid #b78a38;padding:20px 17px;text-align:center;margin:14px 0}
.vipBusinessHero h1{color:#fff;font-size:clamp(23px,5vw,30px);margin:10px 0 4px}
.vipBusinessHero p{color:#f0dbb0}
.vipBusinessHeroLogo{height:99px;width:99px;margin:0 auto 14px;
 display:grid;place-items:center;border-radius:22px;background:#fff;overflow:hidden}
.vipBusinessHeroLogo img{width:100%;height:100%;object-fit:contain;padding:8px}
.vipBusinessHeroLogo span{font-size:48px}
.vipBusinessBookingLink{display:block;text-decoration:none;text-align:center;
 padding:13px;border-radius:12px;font-weight:800;min-height:44px;margin-top:10px}
.vipBusinessContactRow{display:grid;gap:4px;border-bottom:1px solid #eadfca;padding:10px 0;line-height:1.5}
.vipBusinessContactRow strong{font-size:12px;color:#70531c}
.vipBusinessContactRow span,.vipBusinessContactRow a{font-size:14px;color:#24211a;overflow-wrap:anywhere}
.vipBusinessHoursList{list-style:none;padding:0;display:grid;gap:9px}
.vipBusinessHoursList li{padding:11px 12px;background:#fcf8ef;border-radius:10px;color:#34302a}
#vipBusinessDetailStatus{font-size:13px;line-height:1.5;color:#64491b}
.vipNotificationToggle{display:flex;align-items:center;gap:12px;background:#fbf4e4;
 border:1px solid #d8ba7a;padding:15px;border-radius:13px;color:#1a1a1a}
.vipNotificationToggle input{min-width:24px!important;width:24px!important;height:24px;accent-color:#af7e23}
.vipNotificationSettings>p{line-height:1.6;font-size:13px}
#vipNoticesPreferenceStatus{font-weight:700;color:#6c4912}
.vipBusinessEntry button{width:100%;margin-top:12px}
.vipRewardsRemaining{color:#795515}
#vipLoyaltyList li progress{accent-color:#bc9144}
@media(max-width:380px){.vipServiceCatalog{grid-template-columns:1fr 1fr}
.vipServiceCard{padding:12px}.vipServiceCard h3{font-size:13px}}

/* Acceso cliente elegido después del selector de roles. */
#accountAuth.vipLoginEntry{max-width:510px;margin:0 auto 38px}
.vipLoginBack{display:inline-block;margin-bottom:16px;color:#805b1c;font-size:13px;font-weight:800;text-decoration:none}
.vipLoginIdentity{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#171717,#453314);
 color:white;border:1px solid #bb954d;border-radius:18px;padding:18px 16px;margin-bottom:16px}
.vipLoginIdentityIcon{display:grid;place-items:center;width:61px;height:61px;flex:none;border-radius:15px;
 background:#f8e7c7;font-size:30px}
.vipLoginIdentity small{display:block;color:#f0d18e;font-weight:850;font-size:10px;letter-spacing:.06em}
.vipLoginIdentity strong{display:block;font-size:22px;margin:4px 0}
.vipLoginIdentity p{margin:0;color:#f1e1c1;font-size:12px;line-height:1.5}
#accountAuth .vipAuthSwitch{background:#f8efdd;border-color:#e6d2a7}
#accountAuth .vipAuthSwitch button{border:0!important;background:transparent!important;color:#6d562f!important}
#accountAuth .vipAuthSwitch button.active{background:#fff!important;color:#191919!important}
#accountMain #accountAuth .vipLoginPanel{padding:21px 17px}
.vipPasswordField{display:block;position:relative}
#accountAuth .vipPasswordField input{padding-right:91px!important}
#accountMain #accountAuth .vipPasswordReveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);
 min-height:35px;padding:6px 9px;background:#f1e5ca!important;color:#593d0d!important;
 border:1px solid #cba86c!important;border-radius:9px;font-size:12px}
#accountMain #accountAuth .vipLoginSubmit{background:#171717!important;color:#f6da9e!important;
 width:100%;min-height:52px;font-size:16px}
#accountAuth .vipLoginFeedback:not(:empty){padding:11px;border-radius:10px;
 background:#fff2e9;color:#8a311e;border:1px solid #e7baa7;font-weight:750}
#accountAuth .vipLoginFeedback:empty{display:none}
#accountAuth .vipRecovery{text-align:right;margin:12px 0}
#accountAuth .vipRecovery a{color:#805715;font-weight:800}
#accountAuth .vipLoginHint{padding:12px;background:#fbf6ea;border-radius:11px}
.vipMobileNav[hidden],#vipClientNoticeBell[hidden]{display:none!important}
@media(max-width:380px){.vipLoginIdentity{gap:9px;padding:14px 11px}
 .vipLoginIdentityIcon{width:53px;height:53px;font-size:25px}
 .vipLoginIdentity strong{font-size:18px}}
