/* Ensigna Tours V8.9.6 — Mobile Reliability + Visual Polish + First Paint */
:root{
  --e896-violet:#4218db;
  --e896-violet-2:#7040ff;
  --e896-cyan:#12c8f5;
  --e896-green:#0bad6a;
  --e896-ink:#171f38;
  --e896-muted:#68768d;
  --e896-line:rgba(67,48,172,.14);
  --e896-shadow:0 18px 50px rgba(30,34,91,.11);
}

/* ================================================================
   PUBLIC HOME · ZERO LEGACY FLASH
   ================================================================ */
#carouselTestimonials.ensigna-trip-loading{
  min-height:560px;
  position:relative;
}
#carouselTestimonials.ensigna-trip-loading > .carousel-inner,
#carouselTestimonials.ensigna-trip-loading > .ensigna-trip-grid,
#carouselTestimonials.ensigna-trip-loading > .row.flex-center{
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
#carouselTestimonials:not(.ensigna-trip-loading) .v896-trip-skeletons{display:none!important}
.v896-trip-skeletons{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  width:100%;
  position:relative;
  z-index:2;
}
.v896-trip-skeleton{
  min-height:520px;
  overflow:hidden;
  border-radius:26px;
  border:1px solid rgba(69,47,178,.10);
  background:linear-gradient(145deg,#fff,#f7f8ff);
  box-shadow:0 18px 48px rgba(30,35,92,.07);
  padding:0 20px 22px;
}
.v896-trip-skeleton i,
.v896-trip-skeleton span,
.v896-trip-skeleton b{display:block;position:relative;overflow:hidden;background:#e8ebf5}
.v896-trip-skeleton i{height:310px;margin:0 -20px 24px;border-radius:25px 25px 0 0}
.v896-trip-skeleton span{height:22px;border-radius:9px;margin:0 0 16px;width:72%}
.v896-trip-skeleton span+span{height:14px;width:54%}
.v896-trip-skeleton b{height:48px;border-radius:14px;margin-top:35px;width:100%}
.v896-trip-skeleton i::after,.v896-trip-skeleton span::after,.v896-trip-skeleton b::after{
  content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.88),transparent);
  animation:v896-skeleton 1.15s ease-in-out infinite;
}
@keyframes v896-skeleton{to{transform:translateX(100%)}}
.v896-trip-load-error{
  padding:32px;border-radius:22px;border:1px solid rgba(205,75,45,.18);
  background:#fff7f4;color:#8e321f;text-align:center;font-weight:750;
}

/* ================================================================
   ADMIN / OPERATION · MOBILE CONTENT MUST NEVER DEPEND ON ANIMATION
   ================================================================ */
@media(max-width:900px), (pointer:coarse){
  body[data-ensigna-user-type="admin"] .ensigna-motion-reveal,
  body[data-ensigna-user-type="admin"] .v894-admin-motion,
  body[data-ensigna-user-type="operacion"] .ensigna-motion-reveal,
  body[data-ensigna-user-type="operacion"] .v894-admin-motion,
  body[data-ensigna-user-type="coordinador"] .ensigna-motion-reveal,
  body[data-ensigna-user-type="coordinador"] .v894-admin-motion{
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    transition:none!important;
  }
  body[data-ensigna-user-type="admin"] .admin-card,
  body[data-ensigna-user-type="admin"] .admin-table-wrap,
  body[data-ensigna-user-type="admin"] .admin-table,
  body[data-ensigna-user-type="admin"] .admin-table tbody,
  body[data-ensigna-user-type="admin"] .admin-table tr{
    visibility:visible!important;
  }
}

/* Mobile admin cards/readability. */
@media(max-width:760px){
  body[data-ensigna-user-type="admin"] .admin-main{padding-bottom:calc(104px + env(safe-area-inset-bottom))!important}
  body[data-ensigna-user-type="admin"] .admin-more-floating{
    bottom:calc(18px + env(safe-area-inset-bottom))!important;
    right:max(18px,env(safe-area-inset-right))!important;
  }
  body[data-ensigna-user-type="admin"] .admin-table tbody{gap:12px!important}
  body[data-ensigna-user-type="admin"] .admin-table tr{
    border-radius:20px!important;
    box-shadow:0 14px 38px rgba(26,33,82,.075)!important;
    background:linear-gradient(145deg,#fff,#fafaff)!important;
  }
}

/* Dashboard CTAs: no plain blue links. */
.v896-section-link,.v896-trip-open{
  display:inline-flex!important;align-items:center;justify-content:center;gap:8px;
  min-height:40px;padding:9px 13px;border-radius:999px;text-decoration:none!important;
  font-weight:900!important;line-height:1;color:#4422cb!important;
  border:1px solid rgba(67,40,203,.15);background:linear-gradient(145deg,#f8f6ff,#eef4ff);
  box-shadow:0 8px 22px rgba(55,39,145,.07);transition:.22s ease;
}
.v896-trip-open{background:linear-gradient(135deg,#4218db,#6c3bff);color:#fff!important;border-color:transparent;white-space:nowrap}
.v896-section-link:hover,.v896-trip-open:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(55,39,145,.15)}
.v896-section-link span,.v896-trip-open span{transition:transform .2s ease}.v896-section-link:hover span,.v896-trip-open:hover span{transform:translateX(3px)}
@media(max-width:760px){
  .admin-title-row .v896-section-link{align-self:flex-start}
  .v7-trip-row{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;padding:16px!important;border-radius:19px!important;background:linear-gradient(145deg,#fff,#f8f9ff)!important;box-shadow:0 10px 28px rgba(28,35,82,.055)}
  .v7-trip-row>div:first-child{min-width:0}.v7-trip-row>div:first-child strong{display:block;line-height:1.22;color:#29344b}.v7-trip-row .v7-progress{grid-column:1/-1;height:10px!important}.v7-trip-row>b{font-size:1rem;color:#66748b}.v896-trip-open{padding:10px 13px;font-size:.86rem}
}

/* ================================================================
   CLIENT CLUB · POINTS CENTER REDESIGN
   ================================================================ */
.v896-points-center{padding:0!important;overflow:hidden;border-radius:26px!important}
.v896-points-progress{padding:21px 22px 18px;background:radial-gradient(circle at 92% 0,rgba(18,200,245,.10),transparent 14rem),linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,247,255,.94))}
.v896-points-progress .v895-points-head{margin:0!important}
.v896-progress-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 -5px;color:#77849a;font-size:.72rem}.v896-progress-caption b{color:#4d32cb}
.v896-points-center .v8-progress{height:16px!important;margin:13px 0 0!important;background:#e8eaf5!important;box-shadow:inset 0 1px 4px rgba(29,25,79,.11)!important}
.v896-points-center .v8-progress>span:first-child{background:linear-gradient(90deg,#4218db,#6f3fff,#13bff0)!important}
.v896-points-center .v8-progress .pending{background:repeating-linear-gradient(135deg,#ff9c61 0 8px,#ffc3a1 8px 16px)!important}
.v896-points-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 22px 0}
.v896-redeem-card,.v896-referral-card{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;padding:17px;border:1px solid rgba(67,48,172,.11);border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(33,38,89,.055)}
.v896-action-icon{grid-row:1/3;width:46px;height:46px;border-radius:15px;display:grid;place-items:center;font-size:1.4rem;background:linear-gradient(145deg,#f0edff,#eafaff);box-shadow:inset 0 0 0 1px rgba(68,46,180,.08)}
.v896-action-copy span{display:block;font-size:.58rem;font-weight:950;letter-spacing:.13em;color:#5a3eda}.v896-action-copy strong{display:block;margin-top:4px;color:#1d2741}.v896-action-copy small{display:block;margin-top:5px;color:#748198;line-height:1.4}
.v896-redeem-card select,.v896-redeem-card button,.v896-referral-card button{grid-column:1/-1;width:100%!important;min-height:45px!important}
.v896-redeem-card button{background:linear-gradient(135deg,#ff8b42,#ffb277)!important;color:#fff!important;border:0!important;box-shadow:0 12px 26px rgba(255,128,58,.2)!important}
.v896-referral-card button{border:1px solid rgba(64,37,202,.14)!important;background:linear-gradient(145deg,#f7f5ff,#eef4ff)!important;color:#4425c5!important}
.v896-help-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 22px 22px}
.v896-help-button{appearance:none;border:1px solid rgba(66,49,166,.1);border-radius:17px;background:rgba(247,248,255,.9);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 13px;color:#29334d;text-align:left;cursor:pointer;transition:.2s ease}
.v896-help-button:hover{transform:translateY(-2px);background:#fff;box-shadow:0 10px 25px rgba(43,39,112,.08)}
.v896-help-button>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#ece8ff;color:#4c2bd0;font-weight:950}.v896-help-button b{font-size:.82rem}.v896-help-button i{font-size:.66rem;font-style:normal;color:#7b8799}
.v896-explainer{margin-top:10px!important;border-radius:20px!important;border:1px solid rgba(66,49,166,.11)!important;background:linear-gradient(145deg,#fff,#f8f8ff)!important;box-shadow:0 14px 36px rgba(35,39,91,.07)!important}.v896-explainer h3{margin:0 0 10px;color:#241875}.v896-explainer .v4-button{float:right;margin-left:10px}
@media(max-width:760px){
  .v896-points-progress{padding:16px}.v896-points-grid{grid-template-columns:1fr;padding:12px 16px 0}.v896-help-row{grid-template-columns:1fr;padding:12px 16px 17px}.v896-progress-caption{align-items:flex-start;flex-direction:column}.v896-help-button{grid-template-columns:auto 1fr}.v896-help-button i{grid-column:2}
}

/* Keep the client portal visually alive without sacrificing readability. */
body[data-ensigna-user-type="client"] .v4-card{transition:transform .28s ease,box-shadow .28s ease}
@media(hover:hover) and (pointer:fine){body[data-ensigna-user-type="client"] .v4-card:hover{transform:translateY(-2px);box-shadow:0 20px 48px rgba(29,33,88,.10)!important}}

/* Audio status feedback */
.ensigna-audio-feedback{position:fixed;right:18px;bottom:145px;z-index:1056;max-width:min(330px,calc(100vw - 36px));padding:10px 13px;border-radius:14px;background:rgba(22,28,49,.92);color:#fff;font:750 12px/1.35 system-ui,sans-serif;box-shadow:0 14px 35px rgba(10,16,38,.25);backdrop-filter:blur(12px);animation:v896-feedback .28s ease both}.ensigna-audio-feedback.error{background:rgba(134,44,31,.94)}@keyframes v896-feedback{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:760px){.ensigna-audio-feedback{right:12px;bottom:132px}}

@media(prefers-reduced-motion:reduce){.v896-trip-skeleton i::after,.v896-trip-skeleton span::after,.v896-trip-skeleton b::after{animation:none!important}}

/* Ensigna Tours V8.9.8 R2 — reto fotográfico + Ensigna Live móvil */

/* Evidencia del reto: nunca mostrar botones nativos del navegador. */
#v8BingoCards button:not(.v8-bingo-cell),
#v8BingoCards .v898-evidence-button,
#v8BingoCards [data-bingo-evidence],
#v8BingoCards [data-action="bingo-evidence"]{
  -webkit-appearance:none;
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:46px;
  max-width:100%;
  margin-top:.65rem;
  padding:.72rem 1rem;
  border:1px solid rgba(255,255,255,.34);
  border-radius:14px;
  background:linear-gradient(135deg,#ffffff 0%,#eff6ff 100%);
  color:#3417a8;
  font:900 .86rem/1.15 inherit;
  letter-spacing:.01em;
  text-decoration:none;
  box-shadow:0 10px 24px rgba(7,18,70,.18),inset 0 1px 0 rgba(255,255,255,.9);
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
  touch-action:manipulation;
}
#v8BingoCards button:not(.v8-bingo-cell)::before,
#v8BingoCards .v898-evidence-button::before,
#v8BingoCards [data-bingo-evidence]::before,
#v8BingoCards [data-action="bingo-evidence"]::before{
  content:"📷";
  font-size:1rem;
  line-height:1;
}
#v8BingoCards button:not(.v8-bingo-cell):hover:not(:disabled),
#v8BingoCards .v898-evidence-button:hover:not(:disabled),
#v8BingoCards [data-bingo-evidence]:hover:not(:disabled),
#v8BingoCards [data-action="bingo-evidence"]:hover:not(:disabled){
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(7,18,70,.24),inset 0 1px 0 rgba(255,255,255,.95);
}
#v8BingoCards button:not(.v8-bingo-cell):focus-visible,
#v8BingoCards .v898-evidence-button:focus-visible,
#v8BingoCards [data-bingo-evidence]:focus-visible,
#v8BingoCards [data-action="bingo-evidence"]:focus-visible{
  outline:3px solid rgba(107,224,255,.78);
  outline-offset:3px;
}
#v8BingoCards button:not(.v8-bingo-cell):disabled,
#v8BingoCards .v898-evidence-button:disabled,
#v8BingoCards [data-bingo-evidence]:disabled,
#v8BingoCards [data-action="bingo-evidence"]:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

/* Si la implementación de evidencias usa títulos/descripciones separados,
   impedir que se peguen en una sola línea como en el render móvil anterior. */
#v8BingoCards .v898-challenge-title,
#v8BingoCards .bingo-challenge-title,
#v8BingoCards [data-bingo-title]{
  display:block;
  margin:0 0 .25rem;
  line-height:1.18;
}
#v8BingoCards .v898-challenge-copy,
#v8BingoCards .bingo-challenge-copy,
#v8BingoCards [data-bingo-copy]{
  display:block;
  margin:0;
  line-height:1.4;
  color:rgba(255,255,255,.82);
}

/* Ensigna Live: v8-ui aplica width:100% a todos los input, incluido checkbox.
   El checkbox debe conservar su tamaño natural para no expulsar el texto. */
#v8LiveUploadForm .v4-consent{
  display:flex;
  align-items:flex-start;
  gap:.72rem;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
#v8LiveUploadForm .v4-consent input[type="checkbox"]{
  -webkit-appearance:auto;
  appearance:auto;
  width:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  height:20px!important;
  min-height:20px!important;
  margin:.15rem 0 0!important;
  padding:0!important;
  flex:0 0 20px;
  box-shadow:none!important;
}
#v8LiveUploadForm .v4-consent span{
  display:block;
  min-width:0;
  max-width:100%;
  flex:1 1 auto;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.42;
}

@media(max-width:640px){
  #v8BingoCards button:not(.v8-bingo-cell),
  #v8BingoCards .v898-evidence-button,
  #v8BingoCards [data-bingo-evidence],
  #v8BingoCards [data-action="bingo-evidence"]{
    width:100%;
    min-height:48px;
    margin-top:.7rem;
    border-radius:15px;
    font-size:.9rem;
  }
  #v8LiveUploadForm .v4-consent{
    padding:.85rem!important;
    border-radius:14px;
    background:rgba(255,255,255,.66);
  }
}

@media(prefers-reduced-motion:reduce){
  #v8BingoCards button:not(.v8-bingo-cell),
  #v8BingoCards .v898-evidence-button,
  #v8BingoCards [data-bingo-evidence],
  #v8BingoCards [data-action="bingo-evidence"]{transition:none!important;}
}
