/* ==========================================================================
   WORKBOOK -- AGENDADOR PÚBLICO (Booking Experience)
   Fase "Rediseño Mayor del Agendador Público" -- 2.5.46

   Esta hoja es una capa de rediseño visual PURA sobre el Agendador público
   existente (public.css/workbook-premium.css, cargados antes que esta hoja
   -- ver dependencias en workbook.php). CERO cambios de markup fueron
   necesarios más allá del <link> de esta hoja: cada selector aquí apunta a
   clases/IDs/estructura YA EXISTENTES en class-anik-public.php, todas
   documentadas como contrato congelado antes de escribir una sola línea.
   CERO cambios en public.js -- todos los selectores que ese archivo usa
   (getForm/.anik-booking-form, .anik-service-card, .anik-staff-chip,
   .anik-slot-btn[data-time], .anik-selected-time, .anik-step-staff/
   .anik-step-customer + .anik-locked-step, .anik-auto-staff-card,
   .anik-staff-photo-filter, .anik-staff-dropdown-panel,
   .anik-hidden-select-label, #anik-extra-services, .anik-rut-input/
   .anik-rut-field, .anik-home-service y sus hijos, .anik-phone-row,
   #anik_coupon_*, .anik-booking-recap, .anik-payment-public-note,
   .anik-submit, .anik-category-chips/.anik-service-category-filter,
   .anik-service-filter-input, .anik-filter-empty) siguen existiendo
   exactamente igual, con el mismo comportamiento -- solo cambia su
   apariencia.

   Namespace de tokens: --wbp-* (Workbook Public), scoped a .anik-booking.
   Los tokens --wbs-* del Portal interno están scoped a .anik-portal y NO
   están disponibles aquí (verificado antes de diseñar) -- se replica la
   MISMA escala numérica bajo un namespace propio para el Agendador
   (sección 41 del mandato: "usar la escala actual O crear tokens públicos
   equivalentes SOLO si el Agendador no carga shell tokens").

   PRECEDENCIA: envuelta en @layer (anik-booking-redesign). public.css y
   workbook-premium.css usan cientos de reglas con selectores muy
   específicos y !important (ej. ".anik-booking.anik-theme-workbook_saas
   .anik-step-details>summary.anik-step-title" con especificidad (0,4,3))
   que ninguna cadena razonable de selectores nuevos podía vencer de forma
   confiable ni sistemática -- confirmado empíricamente durante esta
   implementación. Una capa de cascada declarada (algo que esos archivos NO
   usan) gana SIEMPRE sobre reglas !important sin capa, sin importar su
   especificidad (spec CSS Cascade Layers: unlayered !important tiene la
   prioridad más baja entre reglas !important) -- por eso los selectores de
   abajo pueden mantenerse simples y legibles en vez de necesitar hacks de
   especificidad (prefijos html/body, clases duplicadas) en cada regla.
   ========================================================================== */
@layer anik-booking-redesign {

/* Hallazgo real de QA (bug preexistente, reproducido también en la base sin
   ningún cambio de esta ronda): public.css define DOS reglas para <main>
   cuando .anik-booking está presente -- una que pone padding:0 (línea 196,
   pensada para que el plugin controle su propio layout) y otra, en otra
   parte del mismo archivo, que le gana la guerra de especificidad
   aplicando padding:26px -- el resultado real es ~37px de overflow
   horizontal a 1366px. Se corrige aquí (capa gana sobre !important sin
   capa, sin importar la especificidad real de cualquiera de las dos
   reglas legacy en conflicto) en vez de intentar diagnosticar cuál de las
   docenas de reglas existentes es la responsable exacta.  */
body:has(.anik-booking.anik-theme-workbook_saas) main{
  max-width:none !important; margin:0 !important; padding:0 !important;
}

.anik-booking.anik-theme-workbook_saas{
  --wbp-bg:#F7F7F8;
  --wbp-surface:#FFFFFF;
  --wbp-surface-subtle:#F4F5F7;
  --wbp-border:#E5E7EB;
  --wbp-border-strong:#D6D9DE;
  --wbp-text:#15171C;
  --wbp-text-secondary:#4B5160;
  --wbp-text-muted:#8A8F99;
  --wbp-brand:var(--anik-primary,#15171C);
  --wbp-brand-ink:#FFFFFF;
  --wbp-accent:var(--anik-accent,#C9A84C);
  --wbp-success:#1A7C3C; --wbp-success-bg:#EAF7EE; --wbp-success-border:#BFE6CB;
  --wbp-warning:#B45309; --wbp-warning-bg:#FEF3C7; --wbp-warning-border:#FCE4A6;
  --wbp-danger:#C0342B; --wbp-danger-bg:#FDECEC; --wbp-danger-border:#F6C6C2;
  --wbp-info:#0A6BB5; --wbp-info-bg:#E9F3FC;

  --wbp-text-xs:12px; --wbp-text-sm:13px; --wbp-text-base:14px; --wbp-text-md:15px;
  --wbp-text-lg:17px; --wbp-text-xl:20px; --wbp-text-2xl:24px; --wbp-text-3xl:30px;
  --wbp-weight-regular:450; --wbp-weight-medium:560; --wbp-weight-semibold:650; --wbp-weight-bold:750;

  --wbp-space-1:4px; --wbp-space-2:8px; --wbp-space-3:12px; --wbp-space-4:16px;
  --wbp-space-5:20px; --wbp-space-6:24px; --wbp-space-7:32px; --wbp-space-8:40px;

  --wbp-radius-sm:8px; --wbp-radius-md:12px; --wbp-radius-lg:16px; --wbp-radius-xl:22px; --wbp-radius-pill:999px;

  --wbp-shadow-xs:0 1px 2px rgba(16,24,40,.05);
  --wbp-shadow-sm:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);
  --wbp-shadow-md:0 8px 24px rgba(16,24,40,.10);
  --wbp-shadow-lg:0 20px 48px rgba(16,24,40,.14);

  --wbp-control-h:46px;
  --wbp-duration:160ms; --wbp-ease:cubic-bezier(.2,.7,.3,1);
}

/* --------------------------------------------------------------------------
   1. BASE / CONTENEDOR -- fondo claro, ancho controlado y centrado (sección
      12 del mandato: "no contenido pegado a los bordes, no formulario de
      1400px"). max-width calibrado para que la grilla de 3 servicios y los
      chips de horario respiren sin que la página entera se sienta como un
      dashboard ancho -- referencia de productos de booking maduros.
   -------------------------------------------------------------------------- */
body:has(.anik-booking.anik-theme-workbook_saas){ background:var(--wbp-bg,#F7F7F8) !important; }
.anik-booking.anik-theme-workbook_saas{
  background:transparent !important; box-shadow:none !important; border:0 !important;
  max-width:960px !important; width:calc(100% - 32px) !important; margin:var(--wbp-space-6) auto !important;
  padding:0 !important; color:var(--wbp-text) !important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif !important;
  -webkit-font-smoothing:antialiased !important;
}
.anik-booking.anik-theme-workbook_saas *{ box-sizing:border-box !important; }
.anik-booking.anik-theme-workbook_saas h1,
.anik-booking.anik-theme-workbook_saas h2,
.anik-booking.anik-theme-workbook_saas h3,
.anik-booking.anik-theme-workbook_saas strong,
.anik-booking.anik-theme-workbook_saas b{ color:var(--wbp-text) !important; font-weight:var(--wbp-weight-semibold) !important; }
.anik-booking.anik-theme-workbook_saas p,
.anik-booking.anik-theme-workbook_saas span,
.anik-booking.anik-theme-workbook_saas small,
.anik-booking.anik-theme-workbook_saas label{ color:var(--wbp-text-secondary) !important; }
/* Salvaguarda general: varios elementos de texto sueltos (<p>/<span> sin
   clase propia -- avisos de ayuda, estados vacíos) heredaban fondos
   sólidos oscuros de la era dark-mode del archivo legacy. Selector de
   elemento puro = especificidad más baja de esta hoja, así que cualquier
   regla con clase (mensajes con superficie propia real, como
   .anik-error-card o .anik-confirm-details) sigue ganando sin problema. */
.anik-booking.anik-theme-workbook_saas p,
.anik-booking.anik-theme-workbook_saas span{ background:transparent !important; box-shadow:none !important; }

/* Sistema de botones general (sección 43 del mandato: jerarquía coherente
   PRIMARY/SECONDARY/GHOST) -- hallazgo real de QA: varios botones ghost
   (Aplicar cupón, verificar dirección, ver reseñas en Google) heredaban el
   color de acento de marca del negocio (--anik-accent, configurable por
   negocio) como fondo sólido vía una regla legacy, rompiendo la paleta
   monocromática del resto del formulario en negocios con un acento muy
   saturado. Se fuerza un tratamiento ghost consistente por defecto; el
   acento de marca se sigue usando (badges, estrellas) pero no en botones
   secundarios genéricos. .anik-submit (la ÚNICA acción primaria real,
   sección 33) conserva su propio negro sólido, definido más abajo. */
.anik-booking.anik-theme-workbook_saas .anik-btn.ghost,
.anik-booking.anik-theme-workbook_saas .anik-btn.ghost.mini{
  background:var(--wbp-surface) !important; background-image:none !important; color:var(--wbp-text) !important;
  border:1px solid var(--wbp-border-strong) !important; box-shadow:none !important; border-radius:var(--wbp-radius-md) !important;
  font-weight:var(--wbp-weight-semibold) !important; height:auto !important; min-height:40px !important; padding:0 var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-btn.ghost:hover{ background:var(--wbp-surface-subtle) !important; }

/* --------------------------------------------------------------------------
   2. HERO -- compacto, sin dominar la pantalla (sección 13/14 del mandato).
      La portada (--anik-cover), si existe, se muestra como franja discreta
      detrás del bloque de identidad, nunca como fondo dramático a pantalla
      completa que obligue a hacer scroll antes de reservar.
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-booking-hero{
  min-height:0 !important; border-radius:var(--wbp-radius-xl) !important;
  padding:var(--wbp-space-6) var(--wbp-space-6) !important;
  background:var(--wbp-surface) !important; background-image:none !important;
  border:1px solid var(--wbp-border) !important; box-shadow:var(--wbp-shadow-sm) !important;
  display:flex !important; align-items:center !important; overflow:hidden !important; position:relative !important;
}
/* Candidate 28: la capa blanca anterior (.94/.97) tapaba casi por completo la
   portada -- se redujo para que la foto se aprecie, conservando el fundido
   hacia var(--wbp-surface) al final para no cortar en seco contra el resto
   de la tarjeta. El texto (h1/kicker/descripción, más abajo) suma un halo
   claro propio SOLO cuando hay portada, como reserva de contraste adicional
   frente a fotos oscuras, sin depender solo de esta capa. */
.anik-booking.anik-theme-workbook_saas.anik-has-cover .anik-booking-hero{
  background-image:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.72) 55%,var(--wbp-surface)),var(--anik-cover) !important;
  background-size:cover !important; background-position:inherit !important; background-repeat:no-repeat !important;
}
.anik-booking.anik-theme-workbook_saas.anik-has-cover .anik-booking-hero:after{ content:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-booking-hero > div{ position:relative !important; z-index:2 !important; width:100% !important; }
.anik-booking.anik-theme-workbook_saas.anik-has-cover .anik-booking-hero h1,
.anik-booking.anik-theme-workbook_saas.anik-has-cover .anik-booking-hero .anik-kicker,
.anik-booking.anik-theme-workbook_saas.anik-has-cover .anik-booking-hero > div > p:not(.anik-kicker){
  text-shadow:0 1px 14px rgba(255,255,255,.85),0 1px 2px rgba(255,255,255,.85) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-logo{
  max-height:44px !important; max-width:160px !important; width:auto !important; height:auto !important;
  object-fit:contain !important; border-radius:var(--wbp-radius-sm) !important; margin-bottom:var(--wbp-space-3) !important;
  box-shadow:none !important; border:0 !important;
}
.anik-booking.anik-theme-workbook_saas .anik-kicker{
  display:inline-flex !important; align-items:center !important; background:var(--wbp-surface-subtle) !important;
  border:1px solid var(--wbp-border) !important; color:var(--wbp-text-secondary) !important;
  font-size:var(--wbp-text-xs) !important; font-weight:var(--wbp-weight-semibold) !important;
  text-transform:uppercase !important; letter-spacing:.05em !important;
  padding:5px 12px !important; border-radius:var(--wbp-radius-pill) !important; margin:0 0 var(--wbp-space-3) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-booking-hero h1{
  font-size:clamp(24px,3vw,var(--wbp-text-3xl)) !important; font-weight:var(--wbp-weight-bold) !important;
  line-height:1.15 !important; margin:0 0 6px !important; letter-spacing:-.01em !important;
  color:var(--wbp-text) !important; max-width:none !important; text-shadow:none !important;
}
/* Hallazgo real de QA (bug preexistente, reproducido también en la base sin
   ningún cambio de esta ronda): public.css define -webkit-line-clamp:3 para
   la descripción del hero DENTRO de sus propios @media(max-width:640px) y
   otro breakpoint móvil similar -- como esas reglas legacy nunca compiten
   con las mías por display/overflow/line-clamp (mi regla original solo
   tocaba font-size/color/margin/line-height/max-width), el truncado con
   "..." seguía ganando en mobile aunque la regla base (sin media query) ya
   mostrara el texto completo en desktop. Se neutraliza aquí explícitamente
   -- una sola regla (sin @media) alcanza porque la precedencia de @layer es
   global, independiente del @media en que viva cada regla. */
.anik-booking.anik-theme-workbook_saas .anik-booking-hero > div > p:not(.anik-kicker){
  font-size:var(--wbp-text-md) !important; color:var(--wbp-text-secondary) !important; margin:0 0 var(--wbp-space-4) !important; line-height:1.5 !important;
  max-width:56ch !important;
  display:block !important; -webkit-line-clamp:unset !important; -webkit-box-orient:unset !important;
  overflow:visible !important; white-space:normal !important; text-overflow:clip !important;
}
/* Sección "Pulido hero": la dirección es información util para decidir una
   reserva (se mantiene como texto real + pin, nunca solo un icono sin
   texto). WhatsApp/Instagram/sitio web pasan de pills de texto
   administrativas a icon actions -- acciones secundarias, no CTA. */
/* Candidate 28 (punto 8): alineación consistente a la izquierda -- igual que
   el resto del encabezado -- en vez de space-between, que empujaba WhatsApp/
   redes/sitio al extremo derecho y rompía la alineación cuando la dirección
   era corta. Sin huecos reservados: cada elemento solo existe en el markup
   si el negocio lo tiene cargado (ver PHP, condicionales por campo). */
.anik-booking.anik-theme-workbook_saas .anik-public-meta{
  display:flex !important; flex-wrap:wrap !important; align-items:center !important;
  justify-content:flex-start !important; gap:var(--wbp-space-3) !important; margin:0 !important; max-width:100% !important;
}
.anik-booking.anik-theme-workbook_saas .anik-meta-address{
  display:inline-flex !important; align-items:center !important; gap:6px !important;
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important;
  color:var(--wbp-text-secondary) !important; font-size:var(--wbp-text-sm) !important; font-weight:var(--wbp-weight-medium) !important;
  padding:6px 12px !important; border-radius:var(--wbp-radius-pill) !important; text-decoration:none !important;
  max-width:100% !important; overflow-wrap:anywhere !important; word-break:break-word !important;
}
.anik-booking.anik-theme-workbook_saas .anik-meta-icon{
  width:15px !important; height:15px !important; flex:0 0 auto !important; color:var(--wbp-text-muted) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-meta-actions{
  display:flex !important; align-items:center !important; gap:8px !important; flex:0 0 auto !important;
}
.anik-booking.anik-theme-workbook_saas .anik-meta-icon-btn{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:40px !important; height:40px !important; flex:0 0 auto !important;
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important;
  border-radius:var(--wbp-radius-pill) !important; color:var(--wbp-text-secondary) !important;
  text-decoration:none !important; transition:background var(--wbp-duration) var(--wbp-ease), border-color var(--wbp-duration) var(--wbp-ease), color var(--wbp-duration) var(--wbp-ease) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-meta-icon-btn svg{ width:18px !important; height:18px !important; }
.anik-booking.anik-theme-workbook_saas .anik-meta-icon-btn:hover{
  background:var(--wbp-surface) !important; border-color:var(--wbp-border-strong) !important; color:var(--wbp-text) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-meta-icon-btn:focus-visible{
  outline:2px solid var(--wbp-text) !important; outline-offset:2px !important;
}

/* --------------------------------------------------------------------------
   3. PROGRESO -- hallazgo real de la auditoría: el indicador de 4 pasos era
      prácticamente invisible (texto oscuro sobre fondo oscuro, casi sin
      contraste). Rediseñado como stepper real, alto contraste, con línea
      conectora y estado "actual" -- responde con claridad a "¿dónde estoy?".
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-booking-progress{
  display:flex !important; align-items:center !important; justify-content:space-between !important;
  background:transparent !important; border:0 !important; padding:var(--wbp-space-5) var(--wbp-space-2) !important;
  margin:0 !important; gap:4px !important; opacity:1 !important;
}
.anik-booking.anik-theme-workbook_saas .anik-booking-progress span{
  display:flex !important; align-items:center !important; gap:8px !important;
  font-size:var(--wbp-text-sm) !important; font-weight:var(--wbp-weight-medium) !important; color:var(--wbp-text-muted) !important;
  white-space:nowrap !important; flex:0 0 auto !important;
}
.anik-booking.anik-theme-workbook_saas .anik-booking-progress span b{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:24px !important; height:24px !important; border-radius:999px !important;
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border-strong) !important;
  color:var(--wbp-text-secondary) !important; font-size:11px !important; font-weight:var(--wbp-weight-bold) !important; flex:0 0 auto !important;
}
.anik-booking.anik-theme-workbook_saas .anik-booking-progress i{
  flex:1 1 auto !important; height:1px !important; background:var(--wbp-border-strong) !important; margin:0 4px !important; min-width:12px !important;
  font-style:normal !important;
}

/* --------------------------------------------------------------------------
   4. RESULTADO -- éxito / error (sección 38-40 del mandato: confirmación
      clara, tranquilizadora, profesional; sin confetti ni animaciones
      teatrales).
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-success-card{
  background:var(--wbp-surface) !important; border:1px solid var(--wbp-success-border) !important;
  border-radius:var(--wbp-radius-xl) !important; box-shadow:var(--wbp-shadow-md) !important;
  padding:var(--wbp-space-7) var(--wbp-space-6) !important; text-align:center !important; margin:0 0 var(--wbp-space-5) !important;
  overflow:hidden !important; position:relative !important;
}
/* Sin confetti ni animaciones teatrales (sección 39 del mandato) --
   neutraliza cualquier blob/gradiente decorativo heredado (:before/:after)
   de la era anterior en success/error/step/empty. */
.anik-booking.anik-theme-workbook_saas .anik-success-card:before,
.anik-booking.anik-theme-workbook_saas .anik-success-card:after,
.anik-booking.anik-theme-workbook_saas .anik-error-card:before,
.anik-booking.anik-theme-workbook_saas .anik-error-card:after,
.anik-booking.anik-theme-workbook_saas .anik-step:before,
.anik-booking.anik-theme-workbook_saas .anik-step:after,
.anik-booking.anik-theme-workbook_saas .anik-empty:before,
.anik-booking.anik-theme-workbook_saas .anik-empty:after{ content:none !important; display:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-confirm-icon{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:56px !important; height:56px !important; border-radius:999px !important;
  background:var(--wbp-success-bg) !important; color:var(--wbp-success) !important;
  font-size:26px !important; margin:0 0 var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-success-card h2{ font-size:var(--wbp-text-xl) !important; margin:0 0 8px !important; }
.anik-booking.anik-theme-workbook_saas .anik-success-card > p{ font-size:var(--wbp-text-md) !important; max-width:48ch !important; margin:0 auto var(--wbp-space-5) !important; }
.anik-booking.anik-theme-workbook_saas .anik-confirm-details{
  display:grid !important; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) !important; gap:var(--wbp-space-3) !important;
  text-align:left !important; background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important;
  border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) var(--wbp-space-5) !important; margin:0 0 var(--wbp-space-5) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-confirm-details span{
  display:flex !important; flex-direction:column !important; gap:2px !important; font-size:var(--wbp-text-sm) !important; color:var(--wbp-text) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-confirm-details span b{
  font-size:var(--wbp-text-xs) !important; text-transform:uppercase !important; letter-spacing:.04em !important; color:var(--wbp-text-muted) !important; font-weight:var(--wbp-weight-semibold) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-error-card{
  background:var(--wbp-danger-bg) !important; border:1px solid var(--wbp-danger-border) !important; color:var(--wbp-danger) !important;
  border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) var(--wbp-space-5) !important; margin:0 0 var(--wbp-space-5) !important;
  font-size:var(--wbp-text-sm) !important; box-shadow:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-error-card strong{ color:var(--wbp-danger) !important; }
.anik-booking.anik-theme-workbook_saas .anik-empty{
  background:var(--wbp-surface) !important; border:1px solid var(--wbp-border) !important; color:var(--wbp-text-secondary) !important;
  border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-6) !important; text-align:center !important;
}

/* --------------------------------------------------------------------------
   5. PASOS (<details class="anik-step">) -- cada paso es una superficie
      real, clara y con jerarquía obvia. Estado bloqueado se lee por peso
      visual (opacidad + no-cursor), nunca se oculta el paso siguiente por
      completo (el usuario sabe que existe).
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-step{
  background:var(--wbp-surface) !important; border:1px solid var(--wbp-border) !important; color:var(--wbp-text) !important;
  border-radius:var(--wbp-radius-xl) !important; box-shadow:var(--wbp-shadow-xs) !important;
  padding:0 !important; margin:0 0 var(--wbp-space-4) !important; overflow:hidden !important;
}
.anik-booking.anik-theme-workbook_saas .anik-step-title{
  list-style:none !important; cursor:pointer !important; display:flex !important; align-items:center !important; gap:var(--wbp-space-3) !important;
  padding:var(--wbp-space-4) var(--wbp-space-5) !important; margin:0 !important; background:transparent !important; color:var(--wbp-text) !important;
  border-bottom:0 !important;
}
.anik-booking.anik-theme-workbook_saas .anik-step[open] > .anik-step-title{ border-bottom:1px solid var(--wbp-border) !important; }
.anik-booking.anik-theme-workbook_saas .anik-step-title::-webkit-details-marker{ display:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-step-title span{
  display:flex !important; align-items:center !important; justify-content:center !important; flex:0 0 auto !important;
  width:30px !important; height:30px !important; border-radius:999px !important;
  background:var(--wbp-text) !important; color:#fff !important; font-size:var(--wbp-text-sm) !important; font-weight:var(--wbp-weight-bold) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-step-title h2{
  font-size:var(--wbp-text-lg) !important; font-weight:var(--wbp-weight-semibold) !important; margin:0 !important; flex:1 1 auto !important;
}
.anik-booking.anik-theme-workbook_saas .anik-step.anik-locked-step{ opacity:.55 !important; }
.anik-booking.anik-theme-workbook_saas .anik-step.anik-locked-step .anik-step-title{ cursor:default !important; }
.anik-booking.anik-theme-workbook_saas .anik-step.anik-locked-step .anik-step-title span{ background:var(--wbp-border-strong) !important; color:var(--wbp-text-muted) !important; }
.anik-booking.anik-theme-workbook_saas .anik-step > *:not(.anik-step-title){ padding-left:var(--wbp-space-5) !important; padding-right:var(--wbp-space-5) !important; }
.anik-booking.anik-theme-workbook_saas .anik-step > *:last-child{ padding-bottom:var(--wbp-space-5) !important; }
.anik-booking.anik-theme-workbook_saas .anik-step > *:not(.anik-step-title):first-of-type{ margin-top:var(--wbp-space-4) !important; }

/* --------------------------------------------------------------------------
   6. SERVICIO -- toolbar (buscar + categoría) y grilla de tarjetas. El
      dropdown de categoría (.anik-service-category-filter) queda
      accesible pero visualmente oculto (sr-only real, no display:none) --
      los chips (.anik-category-chips) son la única UI de filtro visible
      (hallazgo real de la auditoría: mostrar dropdown+chips simultáneos
      para la misma acción es un control duplicado y confuso). El <select>
      sigue funcionando exactamente igual para JS (mismo .val()), solo deja
      de renderizarse dos veces la misma decisión.
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-service-toolbar{
  display:flex !important; flex-wrap:wrap !important; align-items:flex-end !important; gap:var(--wbp-space-3) !important;
  background:transparent !important; border:0 !important; padding:0 !important; margin:0 0 var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-search{ flex:1 1 240px !important; display:flex !important; flex-direction:column !important; gap:4px !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-search span{
  font-size:var(--wbp-text-xs) !important; font-weight:var(--wbp-weight-semibold) !important; color:var(--wbp-text-muted) !important;
  text-transform:uppercase !important; letter-spacing:.04em !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-filter-input{
  height:var(--wbp-control-h) !important; border-radius:var(--wbp-radius-md) !important; border:1px solid var(--wbp-border-strong) !important;
  background:var(--wbp-surface) !important; padding:0 var(--wbp-space-4) !important; font-size:var(--wbp-text-base) !important; color:var(--wbp-text) !important;
  width:100% !important; box-shadow:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-filter-input:focus{ outline:none !important; border-color:var(--wbp-text) !important; box-shadow:0 0 0 3px rgba(21,23,28,.08) !important; }
.anik-booking.anik-theme-workbook_saas .anik-category-filter{
  position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important;
  overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}
.anik-booking.anik-theme-workbook_saas .anik-category-chips{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; width:100% !important; margin:0 !important; }
.anik-booking.anik-theme-workbook_saas .anik-category-chips button{
  height:36px !important; padding:0 var(--wbp-space-4) !important; border-radius:var(--wbp-radius-pill) !important;
  border:1px solid var(--wbp-border-strong) !important; background:var(--wbp-surface) !important; color:var(--wbp-text-secondary) !important;
  font-size:var(--wbp-text-sm) !important; font-weight:var(--wbp-weight-medium) !important; cursor:pointer !important; box-shadow:none !important;
  transition:background var(--wbp-duration) var(--wbp-ease),border-color var(--wbp-duration) var(--wbp-ease),color var(--wbp-duration) var(--wbp-ease) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-category-chips button:hover{ border-color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-category-chips button.active{
  background:var(--wbp-text) !important; border-color:var(--wbp-text) !important; color:#fff !important;
}
.anik-booking.anik-theme-workbook_saas .anik-filter-empty{
  text-align:center !important; color:var(--wbp-text-muted) !important; font-size:var(--wbp-text-sm) !important; padding:var(--wbp-space-5) 0 !important;
}

.anik-booking.anik-theme-workbook_saas .anik-service-grid{
  display:grid !important; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) !important; gap:var(--wbp-space-3) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-card{
  display:flex !important; align-items:center !important; gap:var(--wbp-space-3) !important;
  background:var(--wbp-surface) !important; border:1.5px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important;
  padding:var(--wbp-space-3) var(--wbp-space-4) !important; cursor:pointer !important; box-shadow:none !important;
  transition:border-color var(--wbp-duration) var(--wbp-ease),background var(--wbp-duration) var(--wbp-ease),box-shadow var(--wbp-duration) var(--wbp-ease) !important;
  position:relative !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-card:hover{ border-color:var(--wbp-border-strong) !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-card.active,
.anik-booking.anik-theme-workbook_saas .anik-service-card:has(input:checked){
  border-color:var(--wbp-text) !important; background:var(--wbp-surface) !important;
  box-shadow:0 0 0 1.5px var(--wbp-text) inset !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-card.active:after,
.anik-booking.anik-theme-workbook_saas .anik-service-card:has(input:checked):after{
  content:"\2713" !important; position:absolute !important; top:10px !important; right:10px !important;
  width:20px !important; height:20px !important; border-radius:999px !important; background:var(--wbp-text) !important; color:#fff !important;
  display:flex !important; align-items:center !important; justify-content:center !important; font-size:11px !important; font-weight:700 !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-media{
  flex:0 0 auto !important; width:44px !important; height:44px !important; border-radius:var(--wbp-radius-md) !important; overflow:hidden !important;
  background:var(--wbp-surface-subtle) !important; display:flex !important; align-items:center !important; justify-content:center !important;
  border:1px solid var(--wbp-border) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-media img{ width:100% !important; height:100% !important; object-fit:cover !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-media em{ font-style:normal !important; font-size:var(--wbp-text-md) !important; font-weight:var(--wbp-weight-bold) !important; color:var(--wbp-text-muted) !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-content{ display:flex !important; flex-direction:column !important; gap:2px !important; min-width:0 !important; flex:1 1 auto !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-content strong{
  font-size:var(--wbp-text-base) !important; font-weight:var(--wbp-weight-semibold) !important; text-transform:none !important;
  overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-content p{ font-size:var(--wbp-text-xs) !important; margin:0 !important; overflow:hidden !important; text-overflow:ellipsis !important; display:-webkit-box !important; -webkit-line-clamp:1 !important; -webkit-box-orient:vertical !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-content small{ font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; font-weight:var(--wbp-weight-medium) !important; }
.anik-booking.anik-theme-workbook_saas .anik-public-featured-badge{
  align-self:flex-start !important; font-style:normal !important; font-size:10px !important; font-weight:var(--wbp-weight-semibold) !important;
  text-transform:uppercase !important; letter-spacing:.04em !important; color:var(--wbp-accent) !important; background:color-mix(in srgb, var(--wbp-accent) 16%, white) !important;
  padding:2px 8px !important; border-radius:var(--wbp-radius-pill) !important; margin:0 0 2px !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-simple_list .anik-service-media{ display:none !important; }

/* --------------------------------------------------------------------------
   7. PROFESIONAL + FECHA
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-selected-service-pill{
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; color:var(--wbp-text-secondary) !important;
  border-radius:var(--wbp-radius-md) !important; padding:var(--wbp-space-3) var(--wbp-space-4) !important; font-size:var(--wbp-text-sm) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-selected-service-pill b{ color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-single-pro-note,
.anik-booking.anik-theme-workbook_saas .anik-auto-staff-card{
  display:flex !important; align-items:center !important; gap:var(--wbp-space-3) !important;
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important;
  padding:var(--wbp-space-3) var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-single-pro-avatar,
.anik-booking.anik-theme-workbook_saas .anik-auto-staff-avatar{
  flex:0 0 auto !important; width:40px !important; height:40px !important; border-radius:999px !important; overflow:hidden !important;
  background:var(--wbp-text) !important; color:#fff !important; display:flex !important; align-items:center !important; justify-content:center !important;
  font-weight:var(--wbp-weight-bold) !important; font-size:var(--wbp-text-sm) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-single-pro-avatar img,
.anik-booking.anik-theme-workbook_saas .anik-auto-staff-avatar img{ width:100% !important; height:100% !important; object-fit:cover !important; }
.anik-booking.anik-theme-workbook_saas .anik-single-pro-copy,
.anik-booking.anik-theme-workbook_saas .anik-auto-staff-card > div{ display:flex !important; flex-direction:column !important; gap:1px !important; }
.anik-booking.anik-theme-workbook_saas .anik-single-pro-copy small,
.anik-booking.anik-theme-workbook_saas .anik-auto-staff-card small{ font-size:var(--wbp-text-xs) !important; text-transform:uppercase !important; letter-spacing:.03em !important; color:var(--wbp-text-muted) !important; }
.anik-booking.anik-theme-workbook_saas .anik-single-pro-copy strong,
.anik-booking.anik-theme-workbook_saas .anik-auto-staff-card strong{ font-size:var(--wbp-text-base) !important; }
.anik-booking.anik-theme-workbook_saas .anik-single-pro-copy em,
.anik-booking.anik-theme-workbook_saas .anik-auto-staff-card em{ font-style:normal !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; }

.anik-booking.anik-theme-workbook_saas .anik-staff-photo-filter{ display:flex !important; flex-wrap:wrap !important; gap:var(--wbp-space-3) !important; }
.anik-booking.anik-theme-workbook_saas .anik-staff-chip{
  display:flex !important; flex-direction:column !important; align-items:center !important; gap:6px !important;
  background:transparent !important; border:0 !important; padding:4px !important; cursor:pointer !important; width:76px !important; box-shadow:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-staff-avatar{
  width:56px !important; height:56px !important; border-radius:999px !important; overflow:hidden !important;
  background:var(--wbp-surface-subtle) !important; border:2px solid var(--wbp-border) !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  font-weight:var(--wbp-weight-bold) !important; color:var(--wbp-text-secondary) !important; font-size:var(--wbp-text-md) !important;
  transition:border-color var(--wbp-duration) var(--wbp-ease) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-staff-avatar img{ width:100% !important; height:100% !important; object-fit:cover !important; }
.anik-booking.anik-theme-workbook_saas .anik-staff-chip b{ font-size:var(--wbp-text-xs) !important; font-weight:var(--wbp-weight-medium) !important; color:var(--wbp-text) !important; text-align:center !important; overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; max-width:100% !important; }
.anik-booking.anik-theme-workbook_saas .anik-staff-chip small{ display:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-staff-chip.active .anik-staff-avatar{ border-color:var(--wbp-text) !important; box-shadow:0 0 0 2px var(--wbp-surface),0 0 0 3.5px var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-staff-chip.is-incompatible{ opacity:.35 !important; }
.anik-booking.anik-theme-workbook_saas .anik-staff-dropdown-panel small{ color:var(--wbp-text-muted) !important; font-size:var(--wbp-text-sm) !important; }
.anik-booking.anik-theme-workbook_saas .anik-staff-help{
  display:block !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; margin-top:var(--wbp-space-2) !important;
  background:transparent !important; border:0 !important; padding:0 !important; border-radius:0 !important; box-shadow:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-staff-help.warn{ color:var(--wbp-warning) !important; }

.anik-booking.anik-theme-workbook_saas .anik-extra-services{
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important;
  padding:var(--wbp-space-4) !important; margin-top:var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-extra-services-header strong{ font-size:var(--wbp-text-base) !important; display:block !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-services-header small{ font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-services-list{ display:flex !important; flex-direction:column !important; gap:var(--wbp-space-2) !important; margin-top:var(--wbp-space-3) !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-service-item{
  display:flex !important; align-items:center !important; gap:var(--wbp-space-3) !important;
  background:var(--wbp-surface) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-md) !important;
  padding:var(--wbp-space-3) !important; cursor:pointer !important;
}
.anik-booking.anik-theme-workbook_saas .anik-extra-service-item input[type="checkbox"]{ width:18px !important; height:18px !important; flex:0 0 auto !important; accent-color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-service-info strong{ font-size:var(--wbp-text-sm) !important; display:block !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-service-info small{ font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-service-item.anik-extra-disabled{ opacity:.45 !important; }
/* Candidate 28: lista compacta -- el item sigue en el DOM y su checkbox
   sigue enviándose con el formulario; solo se le quita de la vista. */
.anik-booking.anik-theme-workbook_saas .anik-extra-service-item.anik-extra-overflow{ display:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-toggle{
  display:inline-flex !important; align-items:center !important; gap:6px !important;
  margin-top:var(--wbp-space-2) !important; padding:6px 2px !important; background:none !important; border:0 !important;
  color:var(--wbp-link,var(--wbp-text)) !important; font-size:var(--wbp-text-sm) !important; font-weight:var(--wbp-weight-semibold) !important;
  text-decoration:underline !important; cursor:pointer !important; -webkit-tap-highlight-color:transparent !important;
}
.anik-booking.anik-theme-workbook_saas .anik-extra-toggle:focus-visible{ outline:2px solid var(--wbp-text) !important; outline-offset:2px !important; border-radius:4px !important; }
.anik-booking.anik-theme-workbook_saas .anik-extra-selected-chips{
  display:flex !important; flex-wrap:wrap !important; gap:6px !important; margin-top:var(--wbp-space-2) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-extra-chip{
  display:inline-flex !important; align-items:center !important; background:var(--wbp-surface-subtle) !important;
  border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-pill) !important;
  padding:3px 10px !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-secondary) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-extra-price-summary{ font-size:var(--wbp-text-sm) !important; color:var(--wbp-success) !important; font-weight:var(--wbp-weight-medium) !important; }

.anik-booking.anik-theme-workbook_saas .anik-form-line{ display:flex !important; flex-wrap:wrap !important; gap:var(--wbp-space-3) !important; margin-top:var(--wbp-space-4) !important; max-width:100% !important; }
/* Candidate 28: min-width:0 -- sin esto, un item flex no puede encogerse
   más allá del ancho intrínseco de su contenido (min-width:auto por
   default), sin importar que tenga width:100% adentro. Eso es lo que hacía
   que el input de teléfono (y, por herencia del mismo patrón, cualquier
   otro campo de esta fila) se saliera por el borde derecho en pantallas
   angostas en vez de encogerse dentro de su contenedor. */
.anik-booking.anik-theme-workbook_saas .anik-form-line > label{ flex:1 1 200px !important; min-width:0 !important; max-width:100% !important; display:flex !important; flex-direction:column !important; gap:4px !important; }
/* Salvaguarda: dentro de la @layer, un !important siempre gana sobre un
   !important sin capa (por diseño) -- sin esta regla más específica, la
   regla genérica de arriba (display:flex) ganaría por error sobre el
   display:none!important que public.css usa para ocultar de verdad
   .anik-hidden-select-label/.anik-staff-select/etc. cuando corresponde
   ([hidden], .is-force-hidden -- mecanismo 100% de public.js, no tocado).
   Confirmado real durante QA: sin esto, el <select> de colaborador
   quedaba "visualmente oculto pero mal posicionado" en vez de
   genuinamente display:none, generando scroll horizontal fantasma. */
.anik-booking.anik-theme-workbook_saas .anik-form-line > label.is-force-hidden,
.anik-booking.anik-theme-workbook_saas .anik-form-line > label[hidden],
.anik-booking.anik-theme-workbook_saas [hidden],
.anik-booking.anik-theme-workbook_saas .is-force-hidden{ display:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-date-line{ align-items:flex-end !important; }
.anik-booking.anik-theme-workbook_saas .anik-hidden-select-label,
.anik-booking.anik-theme-workbook_saas .anik-form-line label{
  font-size:var(--wbp-text-xs) !important; font-weight:var(--wbp-weight-semibold) !important; color:var(--wbp-text-muted) !important;
  text-transform:uppercase !important; letter-spacing:.03em !important;
}
.anik-booking.anik-theme-workbook_saas input,
.anik-booking.anik-theme-workbook_saas select,
.anik-booking.anik-theme-workbook_saas textarea{
  height:var(--wbp-control-h) !important; border-radius:var(--wbp-radius-md) !important; border:1px solid var(--wbp-border-strong) !important;
  background:var(--wbp-surface) !important; padding:0 var(--wbp-space-4) !important; font-size:var(--wbp-text-base) !important; color:var(--wbp-text) !important;
  width:100% !important; box-shadow:none !important; font-family:inherit !important;
}
.anik-booking.anik-theme-workbook_saas textarea{ height:auto !important; min-height:88px !important; padding:var(--wbp-space-3) var(--wbp-space-4) !important; resize:vertical !important; }
.anik-booking.anik-theme-workbook_saas input:focus,
.anik-booking.anik-theme-workbook_saas select:focus,
.anik-booking.anik-theme-workbook_saas textarea:focus{ outline:none !important; border-color:var(--wbp-text) !important; box-shadow:0 0 0 3px rgba(21,23,28,.08) !important; }
.anik-booking.anik-theme-workbook_saas .anik-date-input{ margin-top:2px !important; }
/* Candidate 28: el icono de calendario nativo no aparece en todos los
   navegadores (falta en iPhone/Safari) y el campo se veía vacío sin pista
   visual. .anik-date-input-wrap agrega un icono y un texto propios, ambos
   decorativos (pointer-events:none): el <input> sigue siendo el único
   control real y sigue siendo clicable en TODA su superficie -- no se
   agrega ningún botón nuevo que pueda fallar. El indicador nativo de
   Chromium se hace invisible (opacity:0, sigue ahí y sigue funcionando)
   para no duplicar el icono visualmente; en navegadores sin ese
   pseudo-elemento (Safari/Firefox) esta regla simplemente no aplica. */
.anik-booking.anik-theme-workbook_saas .anik-date-input-wrap{ position:relative !important; display:block !important; max-width:100% !important; }
.anik-booking.anik-theme-workbook_saas .anik-date-input-wrap .anik-date-input{
  width:100% !important; max-width:100% !important; padding-right:40px !important; box-sizing:border-box !important;
}
.anik-booking.anik-theme-workbook_saas .anik-date-input::-webkit-calendar-picker-indicator{ opacity:0 !important; }
.anik-booking.anik-theme-workbook_saas .anik-date-icon{
  position:absolute !important; right:14px !important; top:50% !important; transform:translateY(-50%) !important;
  color:var(--wbp-text-muted) !important; pointer-events:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-date-placeholder{
  position:absolute !important; left:var(--wbp-space-4) !important; top:50% !important; transform:translateY(-50%) !important;
  color:var(--wbp-text-muted) !important; font-size:var(--wbp-text-base) !important; pointer-events:none !important;
  white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:calc(100% - 56px) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-date-input-wrap.is-has-value .anik-date-placeholder{ display:none !important; }
/* Mientras no hay valor, el propio input muestra sus segmentos nativos
   "dd/mm/aaaa" -- se hacen transparentes para que no se dupliquen visualmente
   con el texto propio de arriba. En cuanto hay valor (is-has-value, vía JS),
   esta regla deja de aplicar y el input vuelve a mostrar la fecha elegida
   con el color normal (--wbp-text, regla genérica de inputs). */
.anik-booking.anik-theme-workbook_saas .anik-date-input-wrap:not(.is-has-value) .anik-date-input{ color:transparent !important; }

/* --------------------------------------------------------------------------
   8. HORARIOS -- crítico para conversión (sección 24 del mandato): grilla
      densa de chips, nunca un dropdown, escalable a 30+ horarios sin volverse
      una card gigante por horario.
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-slots{ margin-top:var(--wbp-space-4) !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-slots > p{
  font-size:var(--wbp-text-sm) !important; color:var(--wbp-text-muted) !important; text-align:center !important;
  padding:var(--wbp-space-5) 0 !important; margin:0 !important;
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-slot-title{
  display:block !important; width:100% !important;
  font-size:var(--wbp-text-xs) !important; font-weight:var(--wbp-weight-semibold) !important; color:var(--wbp-text-muted) !important;
  text-transform:uppercase !important; letter-spacing:.03em !important; margin:0 0 var(--wbp-space-3) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-slots{ display:block !important; }
.anik-booking.anik-theme-workbook_saas .anik-slot-btn{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  height:40px !important; padding:0 var(--wbp-space-3) !important; margin:0 8px 8px 0 !important;
  border-radius:var(--wbp-radius-md) !important; border:1px solid var(--wbp-border-strong) !important; background:var(--wbp-surface) !important;
  color:var(--wbp-text) !important; font-size:var(--wbp-text-sm) !important; font-weight:var(--wbp-weight-medium) !important; cursor:pointer !important;
  font-variant-numeric:tabular-nums !important; box-shadow:none !important;
  transition:background var(--wbp-duration) var(--wbp-ease),border-color var(--wbp-duration) var(--wbp-ease),color var(--wbp-duration) var(--wbp-ease) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-slot-btn:hover{ border-color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-slot-btn.active{ background:var(--wbp-text) !important; border-color:var(--wbp-text) !important; color:#fff !important; }

/* --------------------------------------------------------------------------
   9. DATOS DEL CLIENTE
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-booking-recap{
  display:flex !important; flex-wrap:wrap !important; gap:var(--wbp-space-2) var(--wbp-space-4) !important;
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important;
  padding:var(--wbp-space-4) !important; margin:var(--wbp-space-4) 0 0 !important;
}
.anik-booking.anik-theme-workbook_saas .anik-booking-recap:empty{ display:none !important; padding:0 !important; margin:0 !important; border:0 !important; }
.anik-booking.anik-theme-workbook_saas .anik-booking-recap span{ font-size:var(--wbp-text-sm) !important; color:var(--wbp-text-secondary) !important; }
.anik-booking.anik-theme-workbook_saas .anik-booking-recap span b{ color:var(--wbp-text) !important; display:block !important; font-size:var(--wbp-text-base) !important; }
.anik-booking.anik-theme-workbook_saas .anik-form-line.three{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; }
.anik-booking.anik-theme-workbook_saas .anik-full-label{ display:flex !important; flex-direction:column !important; gap:4px !important; margin-top:var(--wbp-space-4) !important; }
.anik-booking.anik-theme-workbook_saas .anik-phone-row{ display:flex !important; gap:8px !important; max-width:100% !important; min-width:0 !important; }
.anik-booking.anik-theme-workbook_saas .anik-country-code{ flex:0 0 96px !important; min-width:0 !important; padding:0 8px !important; }
/* min-width:0 es la corrección real (ver nota arriba de .anik-form-line):
   sin ella, este input no podía encogerse por debajo de su ancho de
   contenido por defecto y se salía por el borde derecho en teléfono. */
.anik-booking.anik-theme-workbook_saas .anik-phone-local{ flex:1 1 auto !important; min-width:0 !important; }
.anik-booking.anik-theme-workbook_saas .anik-rut-field.invalid input{ border-color:var(--wbp-danger) !important; }
.anik-booking.anik-theme-workbook_saas .anik-rut-hint{ font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; margin-top:2px !important; }

.anik-booking.anik-theme-workbook_saas .anik-home-service{
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important;
  padding:var(--wbp-space-4) !important; margin-top:var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-home-title{ font-size:var(--wbp-text-base) !important; color:var(--wbp-text) !important; display:block !important; margin:0 0 var(--wbp-space-3) !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-options{ display:flex !important; gap:var(--wbp-space-3) !important; flex-wrap:wrap !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-opt{
  display:flex !important; align-items:center !important; gap:6px !important; font-size:var(--wbp-text-sm) !important; color:var(--wbp-text) !important;
  background:var(--wbp-surface) !important; border:1px solid var(--wbp-border-strong) !important; border-radius:var(--wbp-radius-pill) !important;
  padding:8px 14px !important; cursor:pointer !important;
}
.anik-booking.anik-theme-workbook_saas .anik-home-opt input{ width:16px !important; height:16px !important; accent-color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-note{ display:block !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; margin-top:var(--wbp-space-2) !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-address{ margin-top:var(--wbp-space-3) !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-actions{ margin-top:var(--wbp-space-2) !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-status{ font-size:var(--wbp-text-xs) !important; margin-top:var(--wbp-space-2) !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-status.ok{ color:var(--wbp-success) !important; }
.anik-booking.anik-theme-workbook_saas .anik-home-status.bad{ color:var(--wbp-danger) !important; }

.anik-booking.anik-theme-workbook_saas .anik-mode-selector{ background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) !important; }
.anik-booking.anik-theme-workbook_saas .anik-mode-selector strong{ display:block !important; font-size:var(--wbp-text-base) !important; margin-bottom:var(--wbp-space-2) !important; }
.anik-booking.anik-theme-workbook_saas .anik-mode-selector label{ display:inline-flex !important; align-items:center !important; gap:6px !important; margin-right:var(--wbp-space-4) !important; font-size:var(--wbp-text-sm) !important; color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-mode-selector input{ width:16px !important; height:16px !important; accent-color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-mode-selector small{ display:block !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; margin-top:var(--wbp-space-2) !important; }

.anik-booking.anik-theme-workbook_saas .anik-payment-choice{ background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) !important; }
.anik-booking.anik-theme-workbook_saas .anik-payment-choice strong{ display:block !important; font-size:var(--wbp-text-base) !important; margin-bottom:var(--wbp-space-2) !important; }
.anik-booking.anik-theme-workbook_saas .anik-payment-choice-grid{ display:flex !important; flex-wrap:wrap !important; gap:var(--wbp-space-2) !important; }
.anik-booking.anik-theme-workbook_saas .anik-payment-choice-grid label{ display:inline-flex !important; align-items:center !important; gap:6px !important; background:var(--wbp-surface) !important; border:1px solid var(--wbp-border-strong) !important; border-radius:var(--wbp-radius-pill) !important; padding:8px 14px !important; font-size:var(--wbp-text-sm) !important; color:var(--wbp-text) !important; }

.anik-booking.anik-theme-workbook_saas .anik-coupon-row{ background:var(--wbp-surface-subtle) !important; border:1px dashed var(--wbp-border-strong) !important; border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) !important; }
.anik-booking.anik-theme-workbook_saas .anik-coupon-row strong{ display:block !important; font-size:var(--wbp-text-base) !important; margin-bottom:var(--wbp-space-3) !important; }
.anik-booking.anik-theme-workbook_saas .anik-coupon-input-group{ display:flex !important; gap:8px !important; }
.anik-booking.anik-theme-workbook_saas .anik-coupon-input-group input{ flex:1 1 auto !important; }
.anik-booking.anik-theme-workbook_saas .anik-coupon-input-group button{
  flex:0 0 auto !important; height:var(--wbp-control-h) !important; padding:0 var(--wbp-space-4) !important;
  background:var(--wbp-surface) !important; background-image:none !important; color:var(--wbp-text) !important;
  border:1px solid var(--wbp-border-strong) !important; border-radius:var(--wbp-radius-md) !important; box-shadow:none !important; font-weight:var(--wbp-weight-semibold) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-coupon-input-group button:hover{ background:var(--wbp-surface-subtle) !important; }
.anik-booking.anik-theme-workbook_saas .anik-policy{ background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; margin-top:var(--wbp-space-4) !important; }
.anik-booking.anik-theme-workbook_saas .anik-accept{
  display:flex !important; align-items:flex-start !important; gap:8px !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; margin-top:var(--wbp-space-4) !important;
  background:transparent !important; border:0 !important; padding:0 !important; border-radius:0 !important; box-shadow:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-accept input{ width:16px !important; height:16px !important; margin-top:1px !important; accent-color:var(--wbp-text) !important; flex:0 0 auto !important; }
.anik-booking.anik-theme-workbook_saas .anik-booking-policy-note{ font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; text-align:center !important; margin:var(--wbp-space-3) 0 !important; }

/* --------------------------------------------------------------------------
   10. CTA -- una sola acción principal inequívoca (sección 33 del mandato).
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-submit{
  display:flex !important; align-items:center !important; justify-content:center !important; width:100% !important;
  height:52px !important; border-radius:var(--wbp-radius-md) !important; background:var(--wbp-text) !important; color:#fff !important;
  font-size:var(--wbp-text-md) !important; font-weight:var(--wbp-weight-semibold) !important; border:0 !important; box-shadow:none !important;
  margin-top:var(--wbp-space-2) !important; cursor:pointer !important; transition:filter var(--wbp-duration) var(--wbp-ease) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-submit:hover{ filter:brightness(1.12) !important; }
.anik-booking.anik-theme-workbook_saas .anik-submit:disabled{ opacity:.6 !important; cursor:not-allowed !important; }
.anik-booking.anik-theme-workbook_saas .anik-payment-public-note{
  background:var(--wbp-info-bg) !important; color:var(--wbp-info) !important; border-radius:var(--wbp-radius-md) !important;
  padding:var(--wbp-space-3) var(--wbp-space-4) !important; font-size:var(--wbp-text-sm) !important; margin-top:var(--wbp-space-3) !important; text-align:center !important;
}

/* --------------------------------------------------------------------------
   11. CONFIANZA + RESEÑAS
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-booking-trust{
  display:flex !important; flex-wrap:wrap !important; justify-content:center !important; gap:var(--wbp-space-2) var(--wbp-space-5) !important;
  background:transparent !important; border:0 !important; padding:var(--wbp-space-5) 0 !important; margin:0 !important;
}
.anik-booking.anik-theme-workbook_saas .anik-booking-trust span{
  display:flex !important; align-items:center !important; gap:6px !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important;
  background:transparent !important; border:0 !important; padding:0 !important; border-radius:0 !important; box-shadow:none !important;
}
.anik-booking.anik-theme-workbook_saas .anik-booking-trust b{
  display:flex !important; align-items:center !important; justify-content:center !important; width:16px !important; height:16px !important;
  border-radius:999px !important; background:var(--wbp-success-bg) !important; color:var(--wbp-success) !important; font-size:9px !important;
}
.anik-booking.anik-theme-workbook_saas .anik-google-showcase{
  background:var(--wbp-surface) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-xl) !important;
  box-shadow:var(--wbp-shadow-xs) !important; padding:var(--wbp-space-6) !important; margin-top:var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-google-score h2{ font-size:var(--wbp-text-2xl) !important; }
.anik-booking.anik-theme-workbook_saas .anik-stars{ color:var(--wbp-accent) !important; }
.anik-booking.anik-theme-workbook_saas .anik-review-card{
  background:var(--wbp-surface-subtle) !important; border:1px solid var(--wbp-border) !important; border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-credit{ text-align:center !important; font-size:var(--wbp-text-xs) !important; color:var(--wbp-text-muted) !important; margin-top:var(--wbp-space-5) !important; }

/* --------------------------------------------------------------------------
   12. POPUP -- reutiliza .anik-public-popup existente, solo restyle.
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-public-popup .anik-popup-card{
  background:var(--wbp-surface,#fff) !important; border-radius:var(--wbp-radius-xl,20px) !important; box-shadow:0 24px 64px rgba(16,24,40,.24) !important;
  border:1px solid var(--wbp-border,#E5E7EB) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-public-popup .anik-popup-content h2{ color:var(--wbp-text,#15171C) !important; }
.anik-booking.anik-theme-workbook_saas .anik-public-popup .anik-popup-content p{ color:var(--wbp-text-secondary,#4B5160) !important; }

/* --------------------------------------------------------------------------
   12b. DESCRIPCIÓN COMPLETA DE SERVICIOS (punto 7) -- icono discreto dentro
   del renglón existente de duración/precio (sin fila nueva) + ventana de
   detalle. El botón vive DENTRO del <label> de la tarjeta pero es un
   <button>: por especificación, un click sobre un <button> descendiente de
   un <label> no activa el control asociado (el radio del servicio), y el JS
   además detiene la propagación como refuerzo. La animación respeta
   prefers-reduced-motion vía la regla general de la sección 13 (más abajo).
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas .anik-service-info-btn{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:24px !important; height:24px !important; min-width:24px !important; margin-left:6px !important;
  padding:0 !important; border:1px solid var(--wbp-border-strong) !important; border-radius:50% !important;
  background:var(--wbp-surface) !important; color:var(--wbp-text-muted) !important; cursor:pointer !important;
  vertical-align:middle !important; flex:0 0 auto !important; -webkit-tap-highlight-color:transparent !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-info-btn:hover{ color:var(--wbp-text) !important; border-color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-content small{ display:inline-flex !important; align-items:center !important; flex-wrap:wrap !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-detail-modal[hidden]{ display:none !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-detail-modal{
  position:fixed !important; inset:0 !important; z-index:9999 !important; display:flex !important;
  align-items:center !important; justify-content:center !important; padding:var(--wbp-space-4) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-detail-overlay{
  position:absolute !important; inset:0 !important; background:rgba(15,17,23,.5) !important; border:0 !important; cursor:pointer !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-detail-card{
  position:relative !important; z-index:1 !important; background:var(--wbp-surface) !important; color:var(--wbp-text) !important;
  border-radius:var(--wbp-radius-lg) !important; box-shadow:0 24px 64px rgba(16,24,40,.28) !important;
  max-width:480px !important; width:100% !important; max-height:min(80vh,640px) !important; overflow:hidden !important;
  display:flex !important; flex-direction:column !important; padding:var(--wbp-space-5) !important;
  animation:anikServiceDetailIn .18s var(--wbp-ease,ease-out) !important;
}
@keyframes anikServiceDetailIn{ from{ opacity:0; transform:translateY(6px) scale(.98); } to{ opacity:1; transform:none; } }
.anik-booking.anik-theme-workbook_saas .anik-service-detail-close{
  position:absolute !important; top:var(--wbp-space-3) !important; right:var(--wbp-space-3) !important;
  width:32px !important; height:32px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important;
  border:1px solid var(--wbp-border) !important; border-radius:50% !important; background:var(--wbp-surface) !important;
  color:var(--wbp-text-muted) !important; cursor:pointer !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-detail-close:hover{ color:var(--wbp-text) !important; }
.anik-booking.anik-theme-workbook_saas .anik-service-detail-card h3{
  margin:0 var(--wbp-space-6) var(--wbp-space-3) 0 !important; font-size:var(--wbp-text-lg) !important; font-weight:var(--wbp-weight-bold) !important; color:var(--wbp-text) !important;
}
.anik-booking.anik-theme-workbook_saas .anik-service-detail-body{
  overflow-y:auto !important; font-size:var(--wbp-text-base) !important; line-height:1.55 !important; color:var(--wbp-text-secondary) !important;
  white-space:pre-line !important;
}

/* --------------------------------------------------------------------------
   13. ACCESIBILIDAD -- focus-visible real, reduced-motion.
   -------------------------------------------------------------------------- */
.anik-booking.anik-theme-workbook_saas a:focus-visible,
.anik-booking.anik-theme-workbook_saas button:focus-visible,
.anik-booking.anik-theme-workbook_saas input:focus-visible,
.anik-booking.anik-theme-workbook_saas select:focus-visible,
.anik-booking.anik-theme-workbook_saas .anik-service-card:focus-within,
.anik-booking.anik-theme-workbook_saas .anik-step-title:focus-visible{
  outline:2px solid var(--wbp-text) !important; outline-offset:2px !important;
}
@media (prefers-reduced-motion: reduce){
  .anik-booking.anik-theme-workbook_saas *{ transition:none !important; animation:none !important; }
}

/* --------------------------------------------------------------------------
   14. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width:900px){
  .anik-booking.anik-theme-workbook_saas{ width:calc(100% - 24px) !important; margin:var(--wbp-space-4) auto !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-hero{ padding:var(--wbp-space-5) !important; }
}
@media (max-width:768px){
  .anik-booking.anik-theme-workbook_saas .anik-service-grid{ grid-template-columns:1fr !important; }
  .anik-booking.anik-theme-workbook_saas .anik-form-line.three{ grid-template-columns:1fr !important; }
  .anik-booking.anik-theme-workbook_saas .anik-confirm-details{ grid-template-columns:1fr 1fr !important; }
}
@media (max-width:480px){
  .anik-booking.anik-theme-workbook_saas{ width:calc(100% - 16px) !important; margin:var(--wbp-space-3) auto !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-hero{ border-radius:var(--wbp-radius-lg) !important; padding:var(--wbp-space-4) !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-hero h1{ font-size:22px !important; }
  .anik-booking.anik-theme-workbook_saas .anik-step{ border-radius:var(--wbp-radius-lg) !important; }
  .anik-booking.anik-theme-workbook_saas .anik-step-title{ padding:var(--wbp-space-3) var(--wbp-space-4) !important; }
  .anik-booking.anik-theme-workbook_saas .anik-step > *:not(.anik-step-title){ padding-left:var(--wbp-space-4) !important; padding-right:var(--wbp-space-4) !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-progress{ padding:var(--wbp-space-4) 0 !important; overflow-x:visible !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-progress span b{ width:20px !important; height:20px !important; font-size:10px !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-progress span{ font-size:11px !important; gap:5px !important; }
}
@media (max-width:400px){
  /* El stepper no tiene estado "paso actual" via JS (los 4 pasos son
     paneles <details> independientes, no un wizard) -- es un resumen de
     orientación, cuya información principal ya la repite el título de
     cada .anik-step-title. En viewports muy angostos (390/360) el texto
     completo de las 4 etiquetas no cabe sin scroll horizontal interno
     silencioso (sin affordance visible); se colapsa a solo número +
     conector, patrón habitual en steppers de checkout compactos. El
     texto permanece en el DOM (no se usa [hidden]/display:none), solo se
     colapsa visualmente vía font-size:0 en el contenedor. */
  .anik-booking.anik-theme-workbook_saas .anik-booking-progress{ justify-content:center !important; gap:0 !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-progress span{ font-size:0 !important; gap:0 !important; flex:0 0 auto !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-progress span b{ width:22px !important; height:22px !important; font-size:11px !important; }
  .anik-booking.anik-theme-workbook_saas .anik-booking-progress i{ min-width:14px !important; max-width:28px !important; margin:0 3px !important; }
  .anik-booking.anik-theme-workbook_saas .anik-confirm-details{ grid-template-columns:1fr !important; }
  .anik-booking.anik-theme-workbook_saas .anik-staff-chip{ width:64px !important; }
  .anik-booking.anik-theme-workbook_saas .anik-staff-avatar{ width:48px !important; height:48px !important; }
}
} /* fin @layer anik-booking-redesign */

