PageSourceSearch

https://vancity-igdsmxcity.netlify.app/chunk-YOGZ5PAB.js

js vancity-igdsmxcity.netlify.app collected 2026-10-03 11:34:21 UTC 26,980 bytes, 1 lines download raw bytes

1import{$ as q,A as c,Aa as ae,B as o,Ba as ie,C as a,Ca as re,D as v,E as M,Ea as se,F as O,Fa as le,G as z,Ga as ce,H as C,I as g,K as V,L as T,M as r,N as h,O as p,P as F,Q as R,X as j,Y as D,Z as G,_ as $,aa as L,ca as B,da as U,ia as J,j as I,k as A,na as Y,oa as H,pa as K,qa as _,ra as W,sa as Q,t as i,ua as Z,va as X,w as k,wa as ee,x as N,xa as te,ya as ne,z as x,za as oe}from"./chunk-TDCZDMVM.js";function me(s,n){s&1&&(M(0),o(1,"strong"),r(2,"Round Trip Included"),a(),o(3,"span"),r(4," Your purchase covers the outbound transfer from your selected pickup point and the return trip to the same location, departing maximum 1 hour after the event ends. "),a(),O())}function ge(s,n){s&1&&(M(0),o(1,"strong"),r(2,"Viaje Redondo o Sencillo"),a(),o(3,"span"),r(4," El costo aplica para viaje redondo o sencillo. Tu compra cubre el traslado de ida desde el punto seleccionado y el regreso al mismo punto m\xE1ximo 1 hora al terminar el evento. "),a(),O())}function ue(s,n){if(s&1&&(o(0,"option",47),r(1),a()),s&2){let t=n.$implicit,e=g();c("value",t),i(),F(" ",t," ",e.lang==="en"?t===1?"Seat":"Seats":t===1?"Lugar":"Lugares"," ")}}function fe(s,n){if(s&1&&(o(0,"div",48)(1,"p"),r(2),o(3,"strong"),r(4),a()()()),s&2){let t=g();i(2),p("",t.lang==="en"?"Assigning to Unit:":"Asignando a Unidad:"," "),i(2),p("#",t.unidadActual)}}function xe(s,n){if(s&1){let t=z();o(0,"div",49),C("click",function(){let l=I(t).$implicit,m=g();return A(m.seleccionarAsiento(l))}),r(1),a()}if(s&2){let t=n.$implicit;V("top",t.top)("left",t.left),c("ngClass",t.estado),i(),p(" ",t.numero," ")}}function ve(s,n){if(s&1&&(o(0,"div",50)(1,"label",51),v(2,"input",52),r(3),a()()),s&2){let t=g();i(3),p(" ",t.lang==="en"?"Book all seats under one name":"Reservar todos los lugares bajo un solo nombre"," ")}}function be(s,n){if(s&1&&(M(0),r(1),O()),s&2){let t=g().index,e=g();i(),F(" ",e.lang==="en"?"Passenger":"Pasajero"," ",t+1," ")}}function he(s,n){if(s&1&&(M(0),r(1),O()),s&2){let t=g(2);i(),p(" ",t.lang==="en"?"Main Passenger (Titular)":"Pasajero Titular"," ")}}function _e(s,n){if(s&1&&(o(0,"div",53)(1,"h4",54),x(2,be,2,2,"ng-container",15)(3,he,2,1,"ng-container",15),a(),o(4,"div",18)(5,"div",19),v(6,"input",55),a(),o(7,"div",19),v(8,"input",56),a()(),o(9,"div",18)(10,"div",19),v(11,"input",57),a(),o(12,"div",19),v(13,"input",58),a()()()),s&2){let t,e,l=n.index,m=g();c("formGroupName",l),i(2),c("ngIf",!((t=m.reservaForm.get("mismoNombre"))!=null&&t.value)),i(),c("ngIf",(e=m.reservaForm.get("mismoNombre"))==null?null:e.value),i(3),c("placeholder",m.lang==="en"?"First Name":"Nombre"),i(2),c("placeholder",m.lang==="en"?"Last Name":"Apellido")}}function Ce(s,n){if(s&1&&(o(0,"div",59)(1,"h3"),r(2),a(),o(3,"p",60),r(4),j(5,"number"),a()()),s&2){let t=g();i(2),h(t.lang==="en"?"TOTAL FARE":"TARIFA TOTAL"),i(2),p("$",D(5,2,t.cotizacion,"1.2-2")," MXN")}}function Pe(s,n){if(s&1&&(o(0,"span"),r(1),a()),s&2){let t=g();i(),p(" ",t.lang==="en"?"CALCULATE TOTAL":"COTIZAR TICKETS"," ")}}function Me(s,n){if(s&1&&(o(0,"span"),r(1),a()),s&2){let t=g();i(),p(" ",t.pagoIniciado?"CONECTANDO...":t.lang==="en"?"PROCEED TO SECURE PAYMENT":"PROCEDER AL PAGO SEGURO"," ")}}function Oe(s,n){if(s&1){let t=z();o(0,"div",61)(1,"div",62)(2,"div",63),r(3,"\u2705"),a(),o(4,"h3",64),r(5),a(),o(6,"p",65),r(7),a(),o(8,"button",66),C("click",function(){I(t);let l=g();return A(l.closeSuccessModal())}),r(9,"Continuar"),a()()()}if(s&2){let t=g();i(5),h(t.lang==="en"?"Payment Successful!":"\xA1Pago Exitoso!"),i(2),p("Tus asientos han sido reservados con \xE9xito en la Unidad ",t.unidadActual,".")}}var ye="https://chyuacdnyaduqnawsoii.supabase.co",Se="sb_publishable_j34PDqBJtmzklQqnP6kL4A_AxNnerKR",y=ce(ye,Se),de=class s{constructor(n,t,e){this.fb=n;this.cdr=t;this.route=e;this.inicializarAsientos()}reservaForm;lang="es";loading=!1;pagoIniciado=!1;cotizacion=null;opcionesTickets=[1,2,3,4,5,6,7,8,9,10];precioPorBoleto=850;reservaGeneradaId=null;showSuccessModal=!1;unidadActual=1;texts={en:{title:"Vaiv\xE9n Shuttle Booking",tickets:"Number of Tickets",pickup:"Pickup Information"},es:{title:"Reserva Transporte Vaiv\xE9n",tickets:"N\xFAmero de Asientos",pickup:"Informaci\xF3n de Salida"}};asientos=[];asientosSeleccionados=[];ngOnInit(){this.reservaForm=this.fb.group({boletos:[1,_.required],punto_encuentro:["",_.required],mismoNombre:[!1],pasajerosDetalle:this.fb.array([])}),this.actualizarCamposPasajeros(1),this.cargarAsientosGlobales(),this.reservaForm.get("boletos")?.valueChanges.subscribe(n=>{let t=this.reservaForm.get("mismoNombre")?.value;this.actualizarCamposPasajeros(t?1:parseInt(n)),this.cotizacion=null,this.limpiarAsientosSeleccionados()}),this.reservaForm.get("mismoNombre")?.valueChanges.subscribe(n=>{let t=parseInt(this.reservaForm.get("boletos")?.value||"1");this.actualizarCamposPasajeros(n?1:t),this.cotizacion=null}),this.reservaForm.get("punto_encuentro")?.valueChanges.subscribe(()=>{this.cotizacion=null}),this.verificarPagoOpenpay()}inicializarAsientos(){let n=[{num:11,t:"22%",l:"9.5%"},{num:12,t:"36%",l:"9.5%"},{num:13,t:"60%",l:"9.5%"},{num:14,t:"75%",l:"9.5%"},{num:10,t:"22%",l:"19.8%"},{num:9,t:"36%",l:"19.8%"},{num:15,t:"75%",l:"19.8%"},{num:8,t:"22%",l:"29.8%"},{num:7,t:"36%",l:"29.8%"},{num:16,t:"75%",l:"29.8%"},{num:6,t:"22%",l:"39.8%"},{num:5,t:"36%",l:"39.8%"},{num:17,t:"75%",l:"39.8%"},{num:4,t:"22%",l:"49.8%"},{num:3,t:"36%",l:"49.8%"},{num:18,t:"75%",l:"49.8%"},{num:2,t:"22%",l:"59.8%"},{num:1,t:"36%",l:"59.8%"},{num:19,t:"76%",l:"69.8%"}];this.asientos=n.map(t=>({numero:t.num,estado:"disponible",top:t.t,left:t.l})).sort((t,e)=>t.numero-e.numero)}async cargarAsientosGlobales(){this.asientos.forEach(n=>n.estado="disponible"),this.asientosSeleccionados=[],this.loading=!0,this.cdr.detectChanges();try{let{data:n,error:t}=await y.from("reservas_vaiven").select("unidad_asignada, itinerario_notas").eq("estatus","PAGADO");if(t)throw t;let e=1,l=[];n&&n.length>0&&(e=Math.max(...n.map(d=>d.unidad_asignada)),n.filter(d=>d.unidad_asignada===e).forEach(d=>{let w=(d.itinerario_notas||"").match(/Asientos:\s*([^|]+)/);if(w&&w[1]){let pe=w[1].split(",").map(E=>parseInt(E.trim(),10)).filter(E=>!isNaN(E));l.push(...pe)}}),l.length>=19&&(e++,l=[])),this.unidadActual=e,this.asientos.forEach(u=>{l.includes(u.numero)&&(u.estado="ocupado")});let f=19-l.length,b=Math.min(10,f);this.opcionesTickets=[];for(let u=1;u<=b;u++)this.opcionesTickets.push(u);parseInt(this.reservaForm.get("boletos")?.value||"1")>b&&(this.reservaForm.patchValue({boletos:b}),alert(this.lang==="en"?`Only ${b} seats left in this unit. We adjusted your selection.`:`Solo quedan ${b} lugares en esta unidad. Hemos ajustado tu selecci\xF3n.`))}catch(n){console.error("Error al cargar asientos globales:",n)}finally{this.loading=!1,this.cdr.detectChanges()}}seleccionarAsiento(n){if(n.estado==="ocupado")return;let t=parseInt(this.reservaForm.get("boletos")?.value||"1");n.estado==="disponible"?this.asientosSeleccionados.length<t?(n.estado="seleccionado",this.asientosSeleccionados.push(n.numero)):alert(this.lang==="en"?"You have selected all your tickets.":"Ya seleccionaste todos tus asientos."):n.estado==="seleccionado"&&(n.estado="disponible",this.asientosSeleccionados=this.asientosSeleccionados.filter(e=>e!==n.numero)),this.cotizacion=null}limpiarAsientosSeleccionados(){this.asientosSeleccionados=[],this.asientos.forEach(n=>
1{n.estado==="seleccionado"&&(n.estado="disponible")})}get pasajerosDetalles(){return this.reservaForm.get("pasajerosDetalle")}actualizarCamposPasajeros(n){let t=this.pasajerosDetalles.length;if(n>t)for(let e=t;e<n;e++)this.pasajerosDetalles.push(this.fb.group({nombre:["",_.required],apellido:["",_.required],correo:["",[_.required,_.email]],telefono:["",_.required]}));else for(let e=t-1;e>=n;e--)this.pasajerosDetalles.removeAt(e)}async onSubmit(){let n=parseInt(this.reservaForm.get("boletos")?.value);if(this.reservaForm.invalid){alert(this.lang==="en"?"Please fill all fields.":"Por favor completa todos los campos requeridos.");return}if(this.asientosSeleccionados.length!==n){alert(this.lang==="en"?`Please select exactly ${n} seats on the map.`:`Por favor selecciona exactamente ${n} asientos en el mapa.`);return}let t=this.reservaForm.value;if(this.cotizacion===null){this.cotizacion=this.precioPorBoleto*n,this.loading=!1,this.cdr.detectChanges();let e=t.pasajerosDetalle[0],l=`Punto: ${t.punto_encuentro} | Asientos: ${this.asientosSeleccionados.join(", ")} | Pax Details: ${JSON.stringify(t.pasajerosDetalle)}`,m={nombre:e.nombre,apellido:e.apellido,correo_cliente:e.correo,telefono:e.telefono,pasajeros:n,punto_encuentro:t.punto_encuentro,unidad_asignada:this.unidadActual,estatus:"COTIZADO",cotizacion:this.cotizacion,vehiculo:"Large Van 19 Pax",itinerario_notas:l},{data:f,error:b}=await y.from("reservas_vaiven").insert([m]).select();f&&f.length>0&&(this.reservaGeneradaId=f[0].id)}else{this.loading=!0,this.pagoIniciado=!0;let e=t.pasajerosDetalle[0],l=`${e.nombre} ${e.apellido}`;await this.procederAlPago(l,e.correo)}}async procederAlPago(n,t){let e=this.reservaForm.get("boletos")?.value,l=this.asientosSeleccionados.join(", "),m=`Vaiven Shuttle - ${e} Tickets`,f=`Vaiven Shuttle - Unidad ${this.unidadActual} - ${e} Tickets (Asientos: ${l})`,b=`${window.location.origin}${window.location.pathname}?reserva_id=${this.reservaGeneradaId}`,P={nombre:n,email_destino:t,cotizacion:this.cotizacion,tipo_servicio:f};localStorage.setItem("reserva_vaiven_vancity",JSON.stringify(P)),localStorage.setItem("idioma_vancity",this.lang);let u={monto:this.cotizacion,nombre:n,email:t,descripcion:m,redirectUrl:b,reserva_id:this.reservaGeneradaId};try{this.pagoIniciado=!0;let{data:d,error:S}=await y.functions.invoke("openpay-checkout",{body:u});if(S||d&&d.error){alert(this.lang==="en"?"Bank connection error.":"Error al conectar con el banco."),this.loading=!1,this.pagoIniciado=!1,this.cdr.detectChanges();return}window.location.href=d.checkoutLink}catch{this.loading=!1,this.pagoIniciado=!1,this.cdr.detectChanges()}}verificarPagoOpenpay(){if(typeof window<"u"&&typeof localStorage<"u"){let n=new URLSearchParams(window.location.search),t=n.get("id"),e=n.get("reserva_id");t&&e&&y.functions.invoke("openpay-checkout",{body:{action:"verify",transaction_id:t}}).then(async({data:l,error:m})=>{if(m||!l||l.status!=="completed"){alert("El pago no pudo ser procesado o el banco declin\xF3 la autorizaci\xF3n."),window.history.replaceState({},document.title,window.location.pathname);return}let{data:f,error:b}=await y.from("reservas_vaiven").update({estatus:"PAGADO"}).eq("id",e).select("punto_encuentro");if(!b&&f&&f.length>0){let d=f[0].punto_encuentro;this.reservaForm.patchValue({punto_encuentro:d}),await this.cargarAsientosGlobales()}let P=localStorage.getItem("reserva_vaiven_vancity"),u=localStorage.getItem("idioma_vancity")||"es";if(P){let d=JSON.parse(P),S={titulo_mensaje:u==="en"?"\u2705 Payment Confirmed":"\u2705 Pago Confirmado",mensaje_principal:u==="en"?"Thank you! Your shuttle seats are reserved.":"\xA1Gracias! Tus lugares en la Van est\xE1n reservados.",nombre:d.nombre,email_destino:d.email_destino,folio:t,tipo_servicio:d.tipo_servicio,monto:d.cotizacion};le.send("service_gepyy7k","template_giiio1o",S,"8BD-wbQdkJaPiLyLx").catch(()=>{}),localStorage.removeItem("reserva_vaiven_vancity")}this.showSuccessModal=!0,this.cdr.detectChanges()})}}closeSuccessModal(){this.showSuccessModal=!1,localStorage.removeItem("reserva_vaiven_vancity"),localStorage.removeItem("idioma_vancity"),window.history.replaceState({},document.title,window.location.pathname)}static \u0275fac=function(t){return new(t||s)(k(re),k(G),k(J))};static \u0275cmp=N({type:s,selectors:[["app-reserva-vaiven"]],decls:82,vars:33,consts:[[1,"vancity-navbar"],[1,"navbar-logo"],["src","assets/logo.png","alt","Vancity Logo"],[1,"navbar-actions"],[1,"lang-segmented"],["type","button",3,"click"],["href","https://vaivenfestival.vancity.mx",1,"btn-back"],[1,"page-backdrop"],[1,"split-card"],[1,"image-side"],[1,"image-overlay"],[1,"form-side"],[1,"header"],[1,"subtitle-text"],[1,"info-redondo"],[4,"ngIf"],[3,"ngSubmit","formGroup"],[1,"section-title"],[1,"form-row"],[1,"input-group"],["formControlName","punto_encuentro"],["value","","disabled",""],["value","Tepotzotl\xE1n Centro - 10:00 AM"],["value","Fiesta Inn San Marcos - 10:30 AM"],["value","Perinorte - 11:00 AM"],["value","Mundo E - 11:20 AM"],["value","Metro Mixcoac - 12:10 PM"],["formControlName","boletos"],[3,"value",4,"ngFor","ngForOf"],["class","unit-indicator",4,"ngIf"],[1,"seat-selection-wrapper"],[1,"seat-label"],[1,"seat-legend"],[1,"legend-item"],[1,"seat-box","disp"],[1,"seat-box","selec"],[1,"seat-box","ocup"],[1,"van-image-container"],["src","/assets/van-layout.png","alt","Layout de la Van",1,"van-base-img"],["class","interactive-seat",3,"ngClass","top","left","click",4,"ngFor","ngForOf"],[1,"seat-counter"],["class","checkbox-wrapper",4,"ngIf"],["formArrayName","pasajerosDetalle"],["class","passenger-card",3,"formGroupName",4,"ngFor","ngForOf"],["class","quote-box",4,"ngIf"],["type","submit",1,"btn-submit",3,"disabled"],["class","custom-modal-overlay",4,"ngIf"],[3,"value"],[1,"unit-indicator"],[1,"interactive-seat",3,"click","ngClass"],[1,"checkbox-wrapper"],[1,"checkbox-label"],["type","checkbox","formControlName","mismoNombre"],[1,"passenger-card",3,"formGroupName"],[1,"pax-title"],["type","text","formControlName","nombre",3,"placeholder"],["type","text","formControlName","apellido",3,"placeholder"],["type","email","formControlName","correo","placeholder","Email"],["type","tel","formControlName","telefono","placeholder","Tel\xE9fono (WhatsApp)"],[1,"quote-box"],[1,"price"],[1,"custom-modal-overlay"],[1,"custom-modal-card","success-card"],[1,"modal-icon"],[1,"modal-title"],[1,"modal-text"],["type","button",1,"modal-btn","success-btn",3,"click"]],template:function(t,e){if(t&1&&(o(0,"nav",0)(1,"div",1),v(2,"img",2),a(),o(3,"div",3)(4,"div",4)(5,"button",5),C("click",function(){return e.lang="es"}),r(6,"ESP"),a(),o(7,"button",5),C("click",function(){return e.lang="en"}),r(8,"ENG"),a()(),o(9,"a",6),r(10),a()()(),o(11,"div",7)(12,"div",8)(13,"div",9)(14,"div",10)(15,"h2"),r(16,"Nescaf\xE9 Vaiv\xE9n"),a(),o(17,"p"),r(18),a()()(),o(19,"div",11)(20,"div",12)(21,"p"),r(22),a(),o(23,"span",13),r(24),a(),o(25,"div",14),x(26,me,5,0,"ng-container",15)(27,ge,5,0,"ng-container",15),a()(),o(28,"form",16),C("ngSubmit",function(){return e.onSubmit()}),o(29,"h3",17),r(30),a(),o(31,"div",18)(32,"div",19)(33,"label"),r(34),a(),o(35,"select",20)(36,"option",21),r(37),a(),o(38,"option",22),r(39,"Tepotzotl\xE1n Centro - 10:00 AM"),a(),o(40,"option",23),r(41,"Fiesta Inn San Marcos - 10:30 AM"),a(),o(42,"option",24),r(43,"Perinorte Hidrosina - 11:00 AM"),a(),o(44,"option",25),r(45,"Mundo E - 11:20 AM"),a(),o(4
16,"option",26),r(47,"Walmart Plateros - 12:10 PM"),a()()(),o(48,"div",19)(49,"label"),r(50),a(),o(51,"select",27),x(52,ue,2,3,"option",28),a()()(),x(53,fe,5,2,"div",29),o(54,"div",30)(55,"label",31),r(56),a(),o(57,"div",32)(58,"div",33),v(59,"div",34),r(60),a(),o(61,"div",33),v(62,"div",35),r(63),a(),o(64,"div",33),v(65,"div",36),r(66),a()(),o(67,"div",37),v(68,"img",38),x(69,xe,2,6,"div",39),a(),o(70,"p",40),r(71),a()(),o(72,"h3",17),r(73),a(),x(74,ve,4,1,"div",41),o(75,"div",42),x(76,_e,14,5,"div",43),a(),x(77,Ce,6,5,"div",44),o(78,"button",45),x(79,Pe,2,1,"span",15)(80,Me,2,1,"span",15),a()()()()(),x(81,Oe,10,2,"div",46)),t&2){let l,m;i(5),T("active",e.lang==="es"),i(2),T("active",e.lang==="en"),i(3),p(" ",e.lang==="en"?"Back":"Regresar"," "),i(8),h(e.lang==="en"?"Travel comfortably to Jardines de M\xE9xico.":"Viaja c\xF3modamente a Jardines de M\xE9xico."),i(4),h(e.lang==="en"?"Vaiv\xE9n Shuttle Reservation":"Reserva Transporte Vaiv\xE9n"),i(2),p(" ",e.lang==="en"?"Secure your seat in the shared Van.":"Asegura tu asiento en la Van compartida."," "),i(2),c("ngIf",e.lang==="en"),i(),c("ngIf",e.lang==="es"),i(),c("formGroup",e.reservaForm),i(2),p("1. ",e.lang==="en"?"Shuttle Details":"Detalles del Traslado"),i(4),h(e.lang==="en"?"Select Pickup Point":"Selecciona el Punto de Encuentro"),i(3),h(e.lang==="en"?"Choose pickup point...":"Elige tu punto de abordaje..."),i(13),h(e.texts[e.lang].tickets),i(2),c("ngForOf",e.opcionesTickets),i(),c("ngIf",!e.loading),i(3),h(e.lang==="en"?"Select your seats":"Selecciona tus asientos"),i(4),p(" ",e.lang==="en"?"Available":"Disponible"," "),i(3),p(" ",e.lang==="en"?"Selected":"Seleccionado"," "),i(3),p(" ",e.lang==="en"?"Booked":"Ocupado"," "),i(3),c("ngForOf",e.asientos),i(2),R(" ",e.lang==="en"?"Selected:":"Seleccionados:"," ",e.asientosSeleccionados.length," / ",(l=e.reservaForm.get("boletos"))==null?null:l.value," "),i(2),p("2. ",e.lang==="en"?"Passengers Information":"Informaci\xF3n de Pasajeros"),i(),c("ngIf",((m=e.reservaForm.get("boletos"))==null?null:m.value)>1),i(2),c("ngForOf",e.pasajerosDetalles.controls),i(),c("ngIf",e.cotizacion!==null),i(),c("disabled",e.loading||e.reservaForm.invalid||e.pagoIniciado),i(),c("ngIf",e.cotizacion===null),i(),c("ngIf",e.cotizacion!==null),i(),c("ngIf",e.showSuccessModal)}},dependencies:[U,$,q,L,se,Z,ae,ie,K,H,oe,W,Q,ne,te,X,ee,Y,B],styles:["*[_ngcontent-%COMP%]{box-sizing:border-box}.vancity-navbar[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:80px;background-color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 40px;box-shadow:0 2px 15px #0000000d;z-index:1000}.navbar-logo[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{height:40px;object-fit:contain}.navbar-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:20px}.lang-segmented[_ngcontent-%COMP%]{display:flex;background:#f1f5f9;border-radius:20px;padding:4px;gap:5px}.lang-segmented[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{border:none;background:transparent;padding:6px 16px;border-radius:15px;font-size:11px;font-weight:800;color:#64748b;cursor:pointer;transition:all .3s ease}.lang-segmented[_ngcontent-%COMP%]   button.active[_ngcontent-%COMP%]{background:#0b1d3a;color:#fff;box-shadow:0 2px 8px #0b1d3a33}.btn-back[_ngcontent-%COMP%]{background:transparent;border:none;color:#0b1d3a;font-weight:800;text-decoration:none;font-size:14px;cursor:pointer;display:flex;align-items:center;transition:color .3s ease}.btn-back[_ngcontent-%COMP%]:hover{color:#1a3a6c}.page-backdrop[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e4e8f0);padding:100px 20px 40px;font-family:Helvetica Neue,Arial,sans-serif}.split-card[_ngcontent-%COMP%]{display:flex;width:100%;max-width:1250px;height:85vh;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 25px 50px #00000026}.image-side[_ngcontent-%COMP%]{flex:1;background-image:url(/assets/vaiven-reserva.jpg);background-size:cover;background-position:center;position:relative}.image-overlay[_ngcontent-%COMP%]{position:absolute;bottom:40px;left:40px;right:40px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}.image-overlay[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:32px;font-weight:800;letter-spacing:2px}.image-overlay[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:5px 0 0;font-size:16px;opacity:.9}.form-side[_ngcontent-%COMP%]{flex:1.1;padding:50px;background:#fff;overflow-y:auto}.form-side[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px}.form-side[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#f1f1f1}.form-side[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:10px}.header[_ngcontent-%COMP%]{text-align:center;margin-bottom:40px}.logo-img[_ngcontent-%COMP%]{height:45px;margin-bottom:15px}.header[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#0b1d3a;font-size:24px;font-weight:700;margin:0 0 5px}.subtitle-text[_ngcontent-%COMP%]{color:#64748b;font-size:14px;display:block;margin-top:5px}.info-redondo[_ngcontent-%COMP%]{background-color:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #1a3a6c;border-radius:8px;padding:12px 18px;margin:20px auto 10px;max-width:90%;text-align:left;display:flex;flex-direction:column;gap:5px}.info-redondo[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#0b1d3a;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.info-redondo[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#475569;font-size:13px;line-height:1.5}
1.section-title[_ngcontent-%COMP%]{color:#1a3a6c;font-size:16px;border-bottom:2px solid #f1f5f9;padding-bottom:10px;margin:30px 0 20px;text-transform:uppercase;letter-spacing:1px}.form-row[_ngcontent-%COMP%]{display:flex;gap:20px;margin-bottom:20px}.input-group[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column}.input-group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-size:11px;color:#333;font-weight:700;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.input-group[_ngcontent-%COMP%]   input[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%]   select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%]   textarea[_ngcontent-%COMP%]{padding:14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#333;background:#f8fafc;transition:all .3s;box-sizing:border-box;width:100%}.input-group[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%]   select[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%]   textarea[_ngcontent-%COMP%]:focus{border-color:#0b1d3a;outline:none;background:#fff;box-shadow:0 0 0 3px #0b1d3a1a}.unit-indicator[_ngcontent-%COMP%]{background:#fffbeb;border:1px dashed #f59e0b;border-radius:8px;padding:10px;text-align:center;margin-bottom:20px}.unit-indicator[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;color:#b45309;font-size:13px;font-weight:600;text-transform:uppercase}.unit-indicator[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{font-size:16px;color:#92400e}.btn-submit[_ngcontent-%COMP%]{width:100%;padding:18px;background:linear-gradient(135deg,#0b1d3a,#1a3a6c);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:800;letter-spacing:1px;cursor:pointer;margin-top:10px;text-transform:uppercase;transition:all .3s}.btn-submit[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0b1d3a4d}.btn-submit[_ngcontent-%COMP%]:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.quote-box[_ngcontent-%COMP%]{text-align:center;margin:25px 0 15px;padding:20px;background:#0b1d3a08;border-radius:8px;border:1px solid rgba(11,29,58,.1)}.quote-box[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0;font-size:11px;color:#555;letter-spacing:2px}.quote-box[_ngcontent-%COMP%]   .price[_ngcontent-%COMP%]{font-size:34px;color:#0b1d3a;font-weight:800;margin:10px 0}.seat-selection-wrapper[_ngcontent-%COMP%]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin:20px 0 30px;overflow-x:auto}.seat-label[_ngcontent-%COMP%]{display:block;font-size:11px;color:#333;font-weight:700;text-transform:uppercase;margin-bottom:15px;text-align:center}.seat-legend[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:15px;margin-bottom:20px}.legend-item[_ngcontent-%COMP%]{display:flex;align-items:center;font-size:11px;color:#64748b;text-transform:uppercase}.seat-box[_ngcontent-%COMP%]{width:14px;height:14px;border-radius:3px;margin-right:5px}.seat-box.disp[_ngcontent-%COMP%]{background:#fff;border:2px solid #0b1d3a}.seat-box.selec[_ngcontent-%COMP%]{background:#e11d48}.seat-box.ocup[_ngcontent-%COMP%]{background:#94a3b8}.van-image-container[_ngcontent-%COMP%]{position:relative;width:100%;max-width:1100px;margin:0 auto}.van-base-img[_ngcontent-%COMP%]{width:100%;display:block;height:auto}.interactive-seat[_ngcontent-%COMP%]{position:absolute;width:4.4%;aspect-ratio:1/1;display:flex;justify-content:center;align-items:center;transform:translate(-50%,-50%);border-radius:8px;font-size:clamp(9px,.8vw,13px);font-weight:700;cursor:pointer;transition:.25s ease;-webkit-user-select:none;user-select:none;z-index:5}.interactive-seat.disponible[_ngcontent-%COMP%]{background:#fff;border:2px solid #0b1d3a;color:#0b1d3a}.interactive-seat.disponible[_ngcontent-%COMP%]:hover{background:#0b1d3a;color:#fff;transform:translate(-50%,-50%) scale(1.12)}.interactive-seat.seleccionado[_ngcontent-%COMP%]{background:#e11d48;border:2px solid #be123c;color:#fff;transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 12px #e11d488c;animation:_ngcontent-%COMP%_pulse 1s infinite}.interactive-seat.ocupado[_ngcontent-%COMP%]{background:#94a3b8;border:2px solid #64748b;color:#fff;cursor:not-allowed;pointer-events:none;opacity:.9}@keyframes _ngcontent-%COMP%_pulse{0%{box-shadow:0 0 #e11d4873}70%{box-shadow:0 0 0 8px #e11d4800}to{box-shadow:0 0 #e11d4800}}.seat-counter[_ngcontent-%COMP%]{text-align:center;margin-top:15px;font-size:12px;font-weight:700;color:#0b1d3a}.checkbox-wrapper[_ngcontent-%COMP%]{margin-bottom:25px;background:#f8fafc;padding:15px 20px;border-radius:8px;border:1px dashed #cbd5e1}.checkbox-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:700;color:#0b1d3a;cursor:pointer;text-transform:uppercase;letter-spacing:.5px}.checkbox-label[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%]{width:18px;height:18px;accent-color:#0b1d3a;cursor:pointer}.custom-modal-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%;background:#0b1d3ad9;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.custom-modal-card[_ngcontent-%COMP%]{background:#fff;width:90%;max-width:400px;border-radius:16px;padding:30px 25px;text-align:center;box-shadow:0 20px 40px #0003}.custom-modal-card.success-card[_ngcontent-%COMP%]{border-top:6px solid #10b981}.modal-icon[_ngcontent-%COMP%]{font-size:40px;margin-bottom:15px}.modal-title[_ngcontent-%COMP%]{color:#0b1d3a;font-size:20px;font-weight:800;margin:0 0 10px;text-transform:uppercase}.modal-text[_ngcontent-%COMP%]{color:#333;font-size:14px;line-height:1.5;margin:0 0 20px}.modal-btn[_ngcontent-%COMP%]{color:#fff;border:none;padding:12px 30px;border-radius:25px;font-weight:700;font-size:14px;cursor:pointer;text-transform:uppercase;width:100%}.modal-btn.success-btn[_ngcontent-%COMP%]{background:linear-gradient(135deg,#059669,#047857)}@media(max-width:768px){.vancity-navbar[_ngcontent-%COMP%]{padding:0 20px;height:70px}.navbar-logo[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{height:30px}.lang-segmented[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{padding:5px 10px;font-size:10px}.btn-back[_ngcontent-%COMP%]{font-size:11px}.page-backdrop[_ngcontent-%COMP%]{padding:80px 10px 20px;height:auto;display:block}.split-card[_ngcontent-%COMP%]{flex-direction:column;height:auto}.image-side[_ngcontent-%COMP%]{height:180px;flex:none}.image-overlay[_ngcontent-%COMP%]{bottom:20px;left:20px}.image-overlay[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:24px}.form-side[_ngcontent-%COMP%]{padding:25px 20px;overflow-y:visible}.form-row[_ngcontent-%COMP%]{flex-direction:column;gap:15px}}"]})};export{de as ReservaVaivenComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.