*{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.loading{color:#333;font-size:1.2rem;height:100vh}.loading,.login-container{align-items:center;display:flex;justify-content:center}.login-container{background:linear-gradient(135deg,#3498db,#2980b9);min-height:100vh}.login-card{background:#fff;border-radius:10px;box-shadow:0 10px 25px #0003;max-width:400px;padding:2rem;width:100%}.login-card h1{color:#333;font-size:1.8rem;margin-bottom:.5rem;text-align:center}.login-card h2{color:#666;font-size:1.2rem;font-weight:400;margin-bottom:2rem;text-align:center}.error-message{background-color:#fee;border-radius:5px;color:#c33;margin-bottom:1rem;padding:.75rem;text-align:center}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:5px;padding:.75rem;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db;outline:none}.btn-primary{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:5px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem;transition:transform .2s;width:100%}.btn-primary:hover{transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.component-container{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:2rem}.header-actions{justify-content:space-between;margin-bottom:2rem}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%}table td,table th{border-bottom:1px solid #eee;padding:.75rem;text-align:left}table th{color:#333;font-weight:600}table th,table tr:hover{background-color:#f8f9fa}.badge{font-size:.85rem;font-weight:500;padding:.25rem .75rem}.badge.success{background-color:#d4edda;color:#155724}.badge.pending{background-color:#fff3cd;color:#856404}.badge.danger{background-color:#f8d7da;color:#721c24}.badge.info{background-color:#d1ecf1;color:#0c5460}.badge.warning{background-color:#fff3cd;color:#856404}.badge.admin{background-color:#f8d7da;color:#721c24}.btn-small{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:.85rem;margin-right:.5rem;padding:.35rem .75rem}.btn-small:hover{background-color:#0056b3}.btn-small.btn-danger{background-color:#dc3545}.btn-small.btn-danger:hover{background-color:#c82333}.btn-small.btn-success{background-color:#28a745}.btn-small.btn-success:hover{background-color:#218838}.btn-secondary{background-color:#6c757d;border:none;border-radius:5px;cursor:pointer;margin-left:.5rem;padding:.75rem 1.5rem}.btn-secondary:hover{background-color:#5a6268}.btn-success{background-color:#28a745;border:none;border-radius:5px;cursor:pointer;padding:.75rem 1.5rem}.btn-success:hover{background-color:#218838}.modal{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{border-radius:10px;padding:2rem;width:90%}.modal-content h3{color:#333;margin-bottom:1.5rem}.modal-actions{margin-top:1.5rem}.form-container{max-width:600px}@media (max-width:1024px){.component-container{padding:1.5rem}.modal-content{max-width:90%;padding:1.5rem}}@media (max-width:768px){.component-container{border-radius:5px;padding:1rem}.header-actions{align-items:stretch;flex-direction:column;gap:.75rem}.header-actions h2,.header-actions h3{text-align:center}.header-actions button{margin-top:0;width:100%}.detail-row,.info-row{flex-direction:column;gap:.25rem}.table-container{margin:0 -1rem;padding:0 1rem}table{-webkit-overflow-scrolling:touch;display:block;font-size:.85rem;overflow-x:auto}table td,table th{font-size:.82rem;padding:.5rem}.btn-danger,.btn-primary,.btn-secondary,.btn-success,.btn-warning{font-size:.95rem;min-height:44px;padding:.65rem 1rem}.btn-small{min-height:36px;padding:.5rem .75rem}.modal{-webkit-overflow-scrolling:touch;align-items:flex-start;overflow-y:auto;padding:calc(env(safe-area-inset-top, 0px) + .5rem) .5rem calc(env(safe-area-inset-bottom, 0px) + .5rem)}.modal-content{border-radius:8px;margin-bottom:1rem;max-height:none;max-width:100%;padding:1rem;width:100%}.modal-actions{flex-direction:column-reverse;gap:.5rem}.modal-actions button{margin-left:0!important;width:100%}.form-group{margin-bottom:1rem}.form-group label{font-size:.9rem;margin-bottom:.4rem}.form-group input,.form-group select,.form-group textarea{font-size:16px!important;padding:.65rem}.details-grid{gap:.75rem;grid-template-columns:1fr!important}.badge{font-size:.8rem;padding:.3rem .65rem}}@media (max-width:480px){.component-container{padding:.75rem}h2{font-size:1.4rem}h3{font-size:1.2rem}table{font-size:.75rem}table td,table th{font-size:.75rem;padding:.4rem .25rem}.hide-mobile{display:none!important}.modal-content{padding:.75rem}.btn-danger,.btn-primary,.btn-secondary,.btn-success,.btn-warning{font-size:.9rem;padding:.6rem .85rem}}@media (max-height:500px) and (orientation:landscape){.modal-content{max-height:85vh;padding:1rem}.component-container{padding:1rem}}@supports (-webkit-touch-callout:none){.btn-danger,.btn-primary,.btn-secondary,.btn-small,.btn-success,.btn-warning,button{-webkit-tap-highlight-color:rgba(0,0,0,.1);-webkit-appearance:none}input,select,textarea{-webkit-appearance:none;border-radius:5px}}.dashboard{display:flex;min-height:100vh;padding-bottom:env(safe-area-inset-bottom,0);padding-top:env(safe-area-inset-top,0);position:relative}.hamburger-menu{align-items:center;background-color:#2c3e50;border:none;border-radius:5px;box-shadow:0 2px 10px #0003;cursor:pointer;display:none;flex-direction:column;gap:5px;height:45px;justify-content:center;left:1rem;padding:8px;position:fixed;top:calc(env(safe-area-inset-top, 0px) + 1rem);width:45px;z-index:1001}.hamburger-menu span{background-color:#fff;border-radius:2px;display:block;height:3px;transition:all .3s ease;width:25px}.hamburger-menu:hover{background-color:#34495e}.mobile-overlay{background-color:#00000080;display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:999}.sidebar{background-color:#2c3e50;color:#fff;display:flex;flex-direction:column;padding:1.5rem;position:relative;transition:width .3s ease,padding .3s ease;width:280px}.sidebar.collapsed{padding:1.5rem .5rem;width:80px}.sidebar.collapsed .sidebar-header h2{font-size:1.2rem}.sidebar.collapsed .rol-badge,.sidebar.collapsed .sidebar-header p{display:none}.sidebar.collapsed .menu a{justify-content:center;padding:.75rem .5rem}.sidebar.collapsed .btn-logout{font-size:1.5rem;padding:.75rem .5rem}.sidebar-toggle{align-items:center;background-color:#3498db;border:none;border-radius:50%;box-shadow:0 2px 5px #0003;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:30px;justify-content:center;position:absolute;right:-15px;top:1rem;transition:background-color .3s ease;width:30px;z-index:10}.sidebar-toggle:hover{background-color:#2980b9}.mobile-close{display:none}.sidebar-header{margin-bottom:2rem}.sidebar-header h2,.sidebar-header p{margin-bottom:.5rem}.sidebar-header p{opacity:.8}.rol-badge{background-color:#3498db;border-radius:20px;display:inline-block;font-size:.85rem;padding:.25rem .75rem}.rol-badge.admin{background-color:#e74c3c}.rol-badge.mecanico{background-color:#f39c12}.menu{flex:1 1;list-style:none}.menu li{margin-bottom:.5rem}.menu a{align-items:center;border-radius:5px;color:#fff;display:flex;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:background-color .3s}.menu a:hover{background-color:#34495e}.menu-icon{font-size:1.2rem;min-width:1.5rem;text-align:center}.menu-text{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-section-header{cursor:pointer;margin-bottom:.25rem;margin-top:.75rem;-webkit-user-select:none;user-select:none}.menu-section-header:first-child{margin-top:0}.section-header-content{align-items:center;background-color:#ffffff1a;border-radius:5px;display:flex;gap:.75rem;padding:.6rem 1rem;transition:background-color .3s}.section-header-content:hover{background-color:#ffffff26}.menu-section-header.expanded .section-header-content{background-color:#3498db4d}.section-header-content .menu-text{flex:1 1;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.section-arrow{font-size:.7rem;opacity:.7;transition:transform .3s ease}.menu-section-header.expanded .section-arrow{opacity:1}.menu-section-header+li,.menu-section-header~li:not(.menu-section-header){padding-left:.5rem}.menu-container{flex:1 1;margin-bottom:1rem;overflow-y:auto}.sidebar-footer{border-top:1px solid #ffffff1a;padding-top:1rem}.sidebar-footer .menu{margin-bottom:.75rem}.menu li.active a{background-color:#3498db}.menu li.active a:hover{background-color:#2980b9}.sidebar.collapsed .menu-section-header{margin-top:.5rem}.sidebar.collapsed .section-header-content{justify-content:center;padding:.6rem .5rem}.sidebar.collapsed .section-arrow,.sidebar.collapsed .section-header-content .menu-text{display:none}.btn-logout{background-color:#e74c3c;border:none;border-radius:5px;font-size:1rem;padding:.75rem}.btn-logout:hover{background-color:#c0392b}.content{flex:1 1;overflow-y:auto;padding:2rem}@media (max-width:1024px){.sidebar{padding:1.25rem;width:220px}.content{padding:1.5rem}}@media (max-width:768px){.hamburger-menu{display:flex}.mobile-overlay{display:block}.sidebar-toggle{display:none}.mobile-close{align-items:center;background-color:initial;border:none;color:#fff;cursor:pointer;display:block;display:flex;font-size:2rem;height:40px;justify-content:center;position:absolute;right:1rem;top:calc(env(safe-area-inset-top, 0px) + 1rem);width:40px;z-index:1001}.mobile-close:hover{background-color:#ffffff1a;border-radius:5px}.dashboard{flex-direction:column}.sidebar{box-shadow:2px 0 10px #0000004d;height:100vh;left:-100%;overflow-y:auto;padding:calc(env(safe-area-inset-top, 0px) + 1rem) 1rem calc(env(safe-area-inset-bottom, 0px) + 5rem);position:fixed;top:0;transition:left .3s ease;width:280px;z-index:1000}.sidebar.mobile-open{left:0}.sidebar.collapsed{padding:1rem;width:280px}.sidebar.collapsed .menu-text,.sidebar.collapsed .rol-badge,.sidebar.collapsed .sidebar-header p{display:block}.sidebar.collapsed .menu a{justify-content:flex-start;padding:.6rem .75rem}.sidebar-header{margin-bottom:1rem;padding-top:1rem}.sidebar-header h2{font-size:1.3rem;margin-bottom:.25rem}.sidebar-header p{font-size:.85rem}.menu{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.menu li{margin-bottom:0}.menu a{font-size:.95rem;padding:.8rem 1rem}.btn-logout{width:100%}.btn-logout,.sidebar.collapsed .btn-logout{font-size:.95rem;padding:.8rem}.content{padding:calc(env(safe-area-inset-top, 0px) + 5rem) 1rem calc(env(safe-area-inset-bottom, 0px) + 1rem)}.menu-section-header{margin-top:.5rem}.section-header-content{padding:.6rem .8rem}.section-header-content .menu-text{font-size:.85rem}.sidebar.collapsed .section-arrow,.sidebar.collapsed .section-header-content .menu-text{display:block}.sidebar.collapsed .section-header-content{justify-content:flex-start}}@media (max-width:480px){.hamburger-menu{height:40px;left:.75rem;top:calc(env(safe-area-inset-top, 0px) + .75rem);width:40px}.sidebar{padding:calc(env(safe-area-inset-top, 0px) + .75rem) .75rem calc(env(safe-area-inset-bottom, 0px) + 5rem);width:260px}.sidebar-header h2{font-size:1.1rem}.sidebar-header p{font-size:.8rem}.menu{gap:.4rem}.menu a{font-size:.9rem;padding:.7rem .8rem}.rol-badge{font-size:.75rem;padding:.2rem .6rem}.content{padding:calc(env(safe-area-inset-top, 0px) + 4.5rem) .75rem calc(env(safe-area-inset-bottom, 0px) + .75rem)}}@media (max-height:500px) and (orientation:landscape){.sidebar{padding:.5rem .5rem 5rem;width:240px}.sidebar-header{align-items:center;display:flex;gap:1rem;margin-bottom:.5rem;padding-top:1rem}.sidebar-header h2{font-size:1rem;margin-bottom:0}.sidebar-header p{font-size:.75rem}.menu{margin-bottom:.5rem}.menu a{font-size:.85rem;padding:.5rem .8rem}.btn-logout{font-size:.85rem;padding:.6rem}.content{padding:4rem .75rem .75rem}}.dashboard-metricas{padding:2rem}.dashboard-metricas h1{color:#333;margin-bottom:2rem}.metricas-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.metrica-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:1rem;padding:1.5rem;transition:transform .2s,box-shadow .2s}.metrica-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-4px)}.metrica-card.success{border-left:4px solid #28a745}.metrica-card.warning{border-left:4px solid #ffc107}.metrica-card.highlight{background:linear-gradient(135deg,#3498db10,#2980b910);border-left:4px solid #3498db}.metrica-icon{font-size:2.5rem;min-width:60px;text-align:center}.metrica-info{flex:1 1}.metrica-info h3{color:#666;font-size:.9rem;font-weight:500;letter-spacing:.5px;margin:0 0 .5rem;text-transform:uppercase}.metrica-valor{color:#333;font-size:2rem;font-weight:700;margin:0}.metrica-detalle{color:#666;font-size:.85rem;margin:.25rem 0 0}@media (max-width:768px){.metricas-grid{grid-template-columns:1fr}.metrica-valor{font-size:1.5rem}.metrica-icon{font-size:2rem}}.festival-container{margin:0 auto;max-width:1400px;padding:20px}.festival-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:30px}.festival-header h2{color:#2c3e50;margin:0}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;padding:20px}.stat-card h3{font-size:.9rem;margin:0 0 10px;opacity:.9}.stat-value{font-size:2rem;font-weight:700;margin:0}.turno-control{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:30px;padding:20px}.turno-info{display:flex;gap:40px}.turno-label{color:#6c757d;margin-right:10px}.turno-value{color:#2c3e50;font-size:1.5rem;font-weight:700}.vuelos-section{margin-bottom:30px}.vuelos-section h3{color:#2c3e50;margin-bottom:20px}.vuelos-grid{grid-gap:16px;gap:16px;grid-template-columns:repeat(2,1fr)}.vuelo-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.vuelo-card-header,.vuelo-header{align-items:center;background:#f8f9fa;display:flex;justify-content:space-between;padding:15px}.aeronave,.circuito{color:#2c3e50;font-weight:700}.estado-badge{border-radius:20px;font-size:.85rem;letter-spacing:.5px;padding:6px 14px}.vuelo-body,.vuelo-card-body{padding:15px}.vuelo-body p,.vuelo-card-body p{color:#495057;margin:5px 0}.vuelo-progress{background:#e9ecef;height:4px}.progress-bar{background:linear-gradient(90deg,#27ae60,#2ecc71);height:100%;transition:width .3s ease}.vuelo-card-actions{gap:10px;padding:15px}.circuito-filtro-bar{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:12px 16px}.circuito-filtro-chip{background:#fff;border:2px solid #e0e0e0;border-radius:24px;color:#495057;cursor:pointer;font-size:.88rem;font-weight:500;padding:8px 18px;transition:all .2s}.circuito-filtro-chip:hover{border-color:#667eea;color:#667eea}.circuito-filtro-chip.active{background:#667eea;border-color:#667eea;color:#fff}.circuito-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:30px;overflow:hidden}.circuito-header{background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;gap:8px;justify-content:space-between;padding:12px 16px}.circuito-header,.circuito-header-left{align-items:center;display:flex;flex-wrap:wrap}.circuito-header-left{gap:12px}.circuito-header .circuito-numero{background:#fff3;border-radius:20px;font-size:.95rem;font-weight:600;padding:4px 12px}.circuito-meta-inline{display:flex;font-size:.85rem;gap:12px;opacity:.9}.circuito-meta-inline span{align-items:center;display:flex;gap:4px}.circuito-header-actions{display:flex;gap:6px}.circuito-meta{display:flex;font-size:.9rem;gap:20px;opacity:.9}.circuito-meta span{align-items:center;display:flex;gap:6px}.circuito-body{padding:20px}.vuelos-header-actions{display:flex;flex-wrap:wrap;gap:10px}.vuelos-header-actions .btn{white-space:nowrap}.vuelo-card-admin{background:#fff;border:1px solid #e0e0e0;border-radius:14px;box-shadow:0 2px 8px #0000000f;overflow:hidden;transition:all .2s ease;width:100%}.vuelo-card-admin:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-2px)}.vuelo-card-admin .vuelo-card-header{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:16px 20px}.vuelo-card-admin .vuelo-card-header .aeronave{color:#2c3e50;font-size:1.3rem;font-weight:700;letter-spacing:1px}.vuelo-card-admin .vuelo-card-body{padding:20px}.vuelo-card-admin .vuelo-info-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.vuelo-card-admin .vuelo-info-item{align-items:center;background:#f8f9fa;border-radius:8px;color:#495057;display:flex;font-size:.95rem;justify-content:space-between;padding:8px 12px}.vuelo-card-admin .vuelo-info-item .label{color:#6c757d;font-size:.9rem;font-weight:500}.vuelo-card-admin .vuelo-info-item .value{color:#2c3e50;font-size:1rem;font-weight:600;text-align:right}.vuelo-card-admin .vuelo-card-actions{background:#fafafa;border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:10px;padding:16px 20px}.vuelo-card-admin .vuelo-card-actions .btn{flex:1 1;font-size:.9rem;padding:10px 16px;text-align:center}.vuelo-pasajeros{border-top:1px solid #e9ecef;margin-top:12px;padding-top:12px}.vuelo-pasajeros-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:6px 0;-webkit-user-select:none;user-select:none}.vuelo-pasajeros-header:hover{color:#667eea}.vuelo-pasajeros-header span{align-items:center;color:#495057;display:flex;font-size:.85rem;font-weight:600;gap:6px}.vuelo-pasajeros-header .toggle-icon{font-size:.8rem;transition:transform .2s}.vuelo-pasajeros-header .toggle-icon.expanded{transform:rotate(180deg)}.vuelo-pasajeros-list{margin-top:8px;max-height:0;overflow:hidden;transition:max-height .3s ease}.vuelo-pasajeros-list.expanded{max-height:300px;overflow-y:auto}.pasajero-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:6px;padding:8px 10px}.pasajero-item:last-child{margin-bottom:0}.pasajero-item .pasajero-nombre{display:flex;flex-direction:column;gap:2px}.pasajero-item .pasajero-rut{color:#6c757d;font-size:.8rem}.pasajero-item .pasajero-estado{border-radius:12px;font-size:.75rem;font-weight:600;padding:2px 8px}.pasajero-item .pasajero-estado.embarcado{background:#d1fae5;color:#065f46}.pasajero-item .pasajero-estado.pendiente{background:#fef3c7;color:#92400e}.pasajero-item .pasajero-estado.no-show{background:#fee2e2;color:#991b1b}.vuelo-sin-pasajeros{color:#6c757d;font-size:.85rem;font-style:italic;padding:12px;text-align:center}.vuelo-card-actions{background:#fafafa;border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:8px;padding:12px 15px}.vuelo-card-actions .btn{flex:1 1;font-size:.8rem;min-width:80px;padding:8px 12px;text-align:center}.circuito-empty{color:#6c757d;padding:40px 20px;text-align:center}.circuito-empty-icon{font-size:3rem;margin-bottom:10px;opacity:.5}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-content.modal-lg{max-width:700px}.modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:20px}.modal-header h3{margin:0}.modal-close{background:none;border:none;color:#6c757d;cursor:pointer;font-size:1.5rem}.modal-info{color:#6c757d;font-size:.9rem;padding:0 20px}.modal-actions{border-top:1px solid #e9ecef;display:flex;gap:10px;justify-content:flex-end;padding:20px}form{padding:20px}.form-group{margin-bottom:15px}.form-group label{color:#495057;display:block;font-weight:500;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ced4da;border-radius:6px;font-size:1rem;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-row{grid-gap:15px;gap:15px}.checkbox-group{align-items:center}.checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:8px}.checkbox-group input[type=checkbox]{width:auto}.pasajero-form{background:#f8f9fa;border-radius:8px;margin-bottom:15px;padding:15px}.pasajero-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.filtros-section{gap:15px}.search-input{flex:1 1;font-size:1rem;min-width:250px}.filter-select,.search-input{border:1px solid #ced4da;border-radius:6px;padding:10px 15px}.filter-select{min-width:180px}.vuelos-select-list{max-height:300px;overflow-y:auto;padding:20px}.vuelo-select-item{border:1px solid #e9ecef;border-radius:8px;cursor:pointer;margin-bottom:10px;padding:15px;transition:all .2s}.vuelo-select-item:hover{background:#f8f9fa;border-color:#667eea}.embarque-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:20px;padding:20px}.embarque-section h3{color:#2c3e50;margin:0 0 15px}.qr-scanner-input{display:flex;gap:10px}.qr-input{border:2px solid #ced4da;border-radius:8px;flex:1 1;font-size:1.1rem;padding:15px}.qr-input:focus{border-color:#27ae60;outline:none}.search-row{display:flex;gap:10px}.search-results{margin-top:15px}.search-result-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:10px;padding:15px}.result-actions{display:flex;gap:5px}.vuelo-select{border:1px solid #ced4da;border-radius:8px;font-size:1rem;padding:12px;width:100%}.lista-header{align-items:center;flex-wrap:wrap;justify-content:space-between;margin-bottom:15px}.lista-header,.resumen-badges{display:flex;gap:10px}.qr-display{padding:20px;text-align:center}.qr-info{margin-top:20px}.qr-info p{margin:5px 0}.qr-info .expira{color:#e74c3c;font-size:.9rem}.badge{border-radius:20px;display:inline-block;font-size:.75rem;font-weight:600;padding:4px 10px;text-transform:capitalize}.badge-success{background:#27ae60;color:#fff}.badge-warning{background:#f39c12;color:#fff}.badge-danger{background:#e74c3c;color:#fff}.badge-info{background:#3498db;color:#fff}.badge-secondary{background:#95a5a6;color:#fff}.btn{border-radius:5px;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .2s;white-space:nowrap}.btn-sm{border-radius:4px;font-size:.78rem;padding:5px 11px}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5a6fd6}.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#219a52}.btn-warning{background:#f39c12;color:#fff}.btn-warning:hover{background:#d68910}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.btn-info{background:#3498db;color:#fff}.btn-info:hover{background:#2980b9}.table-responsive{overflow-x:auto}.table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 8px #0000000d;overflow:hidden;width:100%}.table td,.table th{border-bottom:1px solid #e9ecef;padding:12px 15px;text-align:left}.table th{color:#495057;font-weight:600}.table th,.table tr:hover{background:#f8f9fa}.alert{margin-bottom:20px;padding:15px 20px}.alert-danger{color:#991b1b}.alert-warning{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.alert-success{color:#065f46}.alert-info{background:#dbeafe;border:1px solid #bfdbfe;color:#1e40af}.loading{padding:40px;text-align:center}.loading,.text-muted{color:#6c757d}.recursos-tabs{border-bottom:2px solid #e9ecef;display:flex;gap:10px;margin-bottom:20px;padding-bottom:10px}.tab-btn{background:#f8f9fa;border:none;border-radius:8px 8px 0 0;color:#6c757d;cursor:pointer;font-size:.95rem;font-weight:500;padding:10px 20px;transition:all .2s}.tab-btn:hover{background:#e9ecef}.tab-btn.active{background:#667eea;color:#fff}.recursos-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:20px}.recursos-section .section-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.recursos-section .section-header h3{color:#2c3e50;margin:0}.btn-group{display:flex;gap:8px}.table td .btn-sm{font-size:.76rem;margin-left:4px;padding:5px 10px}.table td .btn-sm:first-child{margin-left:0}.aeronaves-list,.pilotos-list{max-height:400px;overflow-y:auto;padding:15px}.aeronave-item,.piloto-item{align-items:center;border:1px solid #e9ecef;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:10px;padding:15px;transition:all .2s}.aeronave-item:hover,.piloto-item:hover{background:#f8f9fa;border-color:#667eea;transform:translateX(5px)}.aeronave-info,.piloto-info{display:flex;flex-direction:column;gap:4px}.aeronave-info strong,.piloto-info strong{color:#2c3e50;font-size:1rem}.aeronave-info span,.piloto-info span{color:#6c757d;font-size:.85rem}.aeronave-capacidad,.piloto-licencia{color:#667eea;font-size:.9rem;font-weight:500}@media (max-width:768px){.festival-header{align-items:flex-start;flex-direction:column}.turno-control{flex-direction:column;text-align:center}.turno-info{flex-direction:column;gap:10px}.form-row{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.lista-header,.search-row{flex-direction:column}.lista-header{align-items:flex-start}.resumen-badges{flex-wrap:wrap}}.modal-large{max-width:650px;width:95%}.aeronaves-circuito-list{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;max-height:350px;overflow-y:auto;padding:10px}.aeronave-circuito-item{background:#fff;border:2px solid #e0e0e0;border-radius:8px;margin-bottom:10px;padding:12px;transition:all .2s ease}.aeronave-circuito-item:last-child{margin-bottom:0}.aeronave-circuito-item.selected{background:#f0fff4;border-color:#27ae60}.aeronave-circuito-item:not(.selected){opacity:.7}.aeronave-circuito-header{align-items:center;display:flex}.aeronave-circuito-header .checkbox-label{align-items:center;cursor:pointer;display:flex;margin:0;width:100%}.aeronave-circuito-header input[type=checkbox]{cursor:pointer;height:20px;margin-right:12px;width:20px}.aeronave-info{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.aeronave-info strong{color:#2c3e50;font-size:1.1rem}.aeronave-modelo{color:#7f8c8d;font-size:.9rem}.aeronave-capacidad{background:#3498db}.aeronave-capacidad,.badge-externa{border-radius:12px;color:#fff;font-size:.8rem;padding:2px 8px}.badge-externa{background:#e74c3c}.aeronave-circuito-piloto{align-items:center;border-top:1px solid #e0e0e0;display:flex;gap:10px;margin-top:10px;padding-top:10px}.aeronave-circuito-piloto label{color:#34495e;font-weight:600;margin:0;min-width:50px}.aeronave-circuito-piloto select{border:1px solid #ddd;border-radius:6px;flex:1 1;font-size:.95rem;padding:8px 12px}@media (max-width:480px){.aeronave-info{align-items:flex-start;flex-direction:column;gap:6px}.aeronave-circuito-piloto{align-items:stretch;flex-direction:column}.aeronave-circuito-piloto label{margin-bottom:4px}}@media (max-width:992px){.circuito-header{align-items:stretch;flex-direction:column}.circuito-header-left{justify-content:space-between}.circuito-header-actions{justify-content:flex-end}.vuelos-header-actions{justify-content:stretch;width:100%}.vuelos-header-actions .btn{flex:1 1}}@media (max-width:768px){.festival-container{padding:12px}.festival-header{align-items:center;flex-direction:row;gap:10px;margin-bottom:16px}.festival-header h2{flex:1 1;font-size:1.1rem}.festival-header .btn{font-size:.8rem;padding:8px 12px}.circuito-filtro-bar{gap:6px;margin-bottom:12px;padding:8px 10px}.circuito-filtro-chip{font-size:.82rem;padding:6px 14px}.vuelos-grid{gap:12px;grid-template-columns:1fr}.vuelo-card-admin .vuelo-card-header{padding:12px 14px}.vuelo-card-admin .vuelo-card-header .aeronave{font-size:1.1rem}.vuelo-card-admin .vuelo-card-body{padding:14px}.vuelo-card-admin .vuelo-info-grid{gap:8px;margin-bottom:12px}.vuelo-card-admin .vuelo-info-item{font-size:.88rem;padding:6px 10px}.circuito-section{border-radius:10px;margin-bottom:16px}.circuito-body{padding:12px}.circuito-header{padding:10px 12px}.circuito-header-left{width:100%}.circuito-header .circuito-numero{font-size:.88rem;padding:3px 10px}.circuito-meta-inline{font-size:.8rem;gap:8px}.circuito-header-actions{width:100%}.circuito-header-actions .btn{flex:1 1;text-align:center}.modal-overlay{-webkit-overflow-scrolling:touch;align-items:flex-start;overflow-y:auto;padding:calc(env(safe-area-inset-top, 0px) + 10px) 10px calc(env(safe-area-inset-bottom, 0px) + 10px)}.modal-content{border-radius:10px;margin-bottom:20px}.modal-content,.modal-content.modal-large{max-height:none;max-width:100%}.modal-header{padding:14px 16px}.modal-header h3{font-size:1.05rem}.modal-actions,form{padding:14px 16px}.form-row{gap:10px;grid-template-columns:1fr 1fr}}@media (max-width:576px){.festival-container{padding:8px}.festival-header{margin-bottom:12px}.festival-header h2{font-size:1rem}.vuelo-card-admin .vuelo-card-actions{gap:6px;padding:10px 12px}.vuelo-card-admin .vuelo-card-actions .btn{flex:1 1;font-size:.75rem;min-width:0;padding:8px 6px;text-align:center}.circuito-body{padding:10px}.estado-badge{font-size:.75rem;padding:4px 10px}.form-row{grid-template-columns:1fr}.boarding-vuelo-info{flex-wrap:wrap;gap:8px;justify-content:center;padding:12px}.boarding-vuelo-aeronave{font-size:1.2rem}.boarding-modal-content{padding:12px}.qr-reader-box{min-height:250px}.scan-result{padding:16px}.pasajero-nombre-result{font-size:1.1rem}.vuelo-comparacion{gap:10px}.vuelo-info-box{min-width:110px;padding:10px 16px}.boarding-actions .btn-lg{font-size:1rem;padding:14px 20px}.passengers-grid{gap:6px;grid-template-columns:1fr}}@media (max-width:400px){.circuito-meta-inline{font-size:.75rem}.circuito-header .circuito-numero{font-size:.82rem}.vuelo-card-admin .vuelo-card-header .aeronave{font-size:1rem}.vuelo-card-admin .vuelo-info-item{font-size:.82rem;padding:5px 8px}.vuelo-card-admin .vuelo-info-item .value{font-size:.9rem}}.tickets-cards-mobile{display:none}.ticket-card-mobile{background:#fff;border:1px solid #e9ecef;border-radius:10px;box-shadow:0 2px 8px #0000001a;margin-bottom:12px;overflow:hidden}.ticket-card-top{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:12px 14px}.ticket-card-code{color:#2c3e50;font-size:1rem}.ticket-card-badges{display:flex;flex-wrap:wrap;gap:6px}.ticket-card-body{padding:12px 14px}.ticket-card-info{display:flex;flex-direction:column;margin-bottom:10px}.ticket-card-info small{color:#6c757d;font-size:.82rem}.ticket-card-label{color:#6c757d;font-size:.75rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.ticket-card-meta{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.ticket-card-meta>div{display:flex;flex-direction:column}.ticket-card-actions{background:#fafafa;border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px}.ticket-card-actions .btn{flex:1 1;font-size:.82rem;min-width:80px;padding:8px 10px;text-align:center}.filtros-section{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.filtros-section .filter-select,.filtros-section .search-input{flex:1 1;min-width:0}@media (max-width:768px){.tickets-table-desktop{display:none}.tickets-cards-mobile{display:block}.filtros-section{flex-direction:column}.filtros-section .filter-select,.filtros-section .search-input{width:100%}.alert-transfer-pending{flex-direction:column;gap:10px;text-align:center}.alert-transfer-pending>div:first-child,.festival-header{flex-direction:column}.festival-header{align-items:stretch}.festival-header .btn{text-align:center;width:100%}}@keyframes pulse{0%{box-shadow:0 4px 15px #ff98004d}50%{box-shadow:0 4px 25px #ff980080}to{box-shadow:0 4px 15px #ff98004d}}.alert-transfer-pending{animation:pulse 2s infinite}.boarding-modal-content{padding:20px}.boarding-vuelo-info{align-items:center;background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:12px;color:#fff;display:flex;gap:20px;justify-content:center;margin-bottom:20px;padding:16px}.boarding-vuelo-aeronave{font-size:1.4rem;font-weight:700}.boarding-vuelo-circuito{background:#fff3;border-radius:20px;font-size:.9rem;padding:4px 12px}.boarding-vuelo-hora{font-size:1.1rem;font-weight:600}.scanner-container{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;flex-direction:column;margin-bottom:20px;padding:20px}.qr-reader-box{background:#000;border-radius:12px;max-width:350px;min-height:300px;overflow:hidden;width:100%}.btn-iniciar-scanner{font-size:1.1rem;margin-top:20px;padding:16px 32px}.scanner-hint{color:#6c757d;font-size:.95rem;margin-top:16px;text-align:center}.processing-indicator{align-items:center;display:flex;flex-direction:column;padding:20px}.processing-indicator .spinner{animation:spin 1s linear infinite;border:4px solid #e9ecef;border-radius:50%;border-top-color:#667eea;height:40px;width:40px}.processing-indicator p{color:#667eea;font-weight:500;margin-top:12px}.scan-error{background:#fee2e2;border-radius:12px;margin-top:16px;padding:20px;text-align:center}.scan-error p{color:#dc2626;font-weight:500;margin:0 0 16px}.scan-result{border-radius:16px;margin-bottom:20px;padding:24px;text-align:center}.scan-result-success{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:2px solid #10b981}.scan-result-warning{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b}.result-icon{font-size:3rem;margin-bottom:12px}.result-icon.success{color:#10b981}.result-icon.check{color:#059669}.result-icon.warning{color:#f59e0b}.scan-result h4{color:#1f2937;font-size:1.3rem;margin:0 0 8px}.pasajero-nombre-result{color:#1f2937;font-size:1.4rem;font-weight:700;margin:0 0 4px}.pasajero-rut-result{color:#6b7280;font-size:1rem;margin:0 0 20px}.scan-status{color:#059669;font-size:.95rem}.vuelo-comparacion{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin:20px 0}.vuelo-info-box{align-items:center;border-radius:12px;display:flex;flex-direction:column;min-width:140px;padding:16px 24px}.vuelo-actual{background:#ef44441a;border:2px solid #ef4444}.vuelo-correcto{background:#10b9811a;border:2px solid #10b981}.vuelo-label{color:#6b7280;font-size:.75rem;margin-bottom:6px;text-transform:uppercase}.vuelo-matricula{color:#1f2937;font-size:1.2rem;font-weight:700}.vuelo-circuito{color:#6b7280;font-size:.9rem}.vuelo-flecha{color:#9ca3af;font-size:1.5rem}.boarding-actions{display:flex;flex-direction:column;gap:12px;margin-top:20px}.boarding-actions .btn-lg{font-size:1.1rem;padding:16px 32px}.warning-note{color:#92400e;font-size:.85rem;font-style:italic;margin-top:16px}.boarding-passengers-list{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:16px}.boarding-passengers-list h4{color:#2c3e50;font-size:1rem;margin:0 0 16px}.passengers-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.passenger-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;padding:10px 14px}.passenger-item.embarcado{background:#d1fae5;border-color:#a7f3d0}.passenger-name{color:#1f2937;font-size:.9rem}.passenger-status{font-size:1.1rem}.passenger-status.embarcado{color:#10b981}.passenger-status.confirmado{color:#9ca3af}.no-passengers{color:#6c757d;font-style:italic;padding:20px;text-align:center}@media (max-width:576px){.boarding-vuelo-info{gap:10px}.boarding-vuelo-info,.vuelo-comparacion{flex-direction:column}.vuelo-flecha{transform:rotate(90deg)}.passengers-grid{grid-template-columns:1fr}}.embarque-mobile-container{background:#f8f9fa;margin:0 auto;max-width:600px;min-height:100vh;padding-bottom:40px}.embarque-mobile-header{background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;padding:16px 20px;text-align:center}.embarque-mobile-header h2{font-size:1.2rem;margin:0}.embarque-festival-name{font-size:.85rem;opacity:.8}.embarque-scanner-section{align-items:center;display:flex;flex-direction:column;padding:20px 16px}.embarque-btn-camara{align-items:center;background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:16px;box-shadow:0 6px 20px #27ae6066;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;gap:12px;justify-content:center;padding:24px 20px;transition:transform .2s,box-shadow .2s;width:100%}.embarque-btn-camara:hover{box-shadow:0 8px 28px #27ae6080;transform:translateY(-2px)}.embarque-btn-camara:active{transform:translateY(0)}.embarque-camara-icon{font-size:2rem}.embarque-camara-text{font-size:1.15rem}.embarque-btn-cerrar-camara{background:#e74c3c;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:12px;padding:16px;width:100%}.embarque-qr-reader{border-radius:12px;margin:12px auto 0;max-width:350px;overflow:hidden;width:100%}.embarque-scanner-hint{color:#6c757d;font-size:.9rem;margin-top:10px;text-align:center}.embarque-success-alert{font-size:1.1rem;font-weight:600;text-align:center}.embarque-secondary-options{display:flex;gap:8px;margin-bottom:12px;padding:0 16px}.embarque-toggle-btn{background:#fff;border:1px solid #dee2e6;border-radius:10px;color:#495057;cursor:pointer;flex:1 1;font-size:.82rem;font-weight:500;padding:10px 8px;transition:all .2s}.embarque-toggle-btn:hover{background:#e9ecef}.embarque-section-compact{background:#fff;border-radius:12px;box-shadow:0 1px 4px #0000000f;margin:0 16px 12px;padding:14px}.embarque-input-row{display:flex;gap:8px}.embarque-input{border:1.5px solid #dee2e6;border-radius:10px;flex:1 1;font-size:1rem;min-width:0;padding:12px}.embarque-input:focus{border-color:#27ae60;outline:none}.embarque-label{color:#2c3e50;display:block;font-size:.95rem;font-weight:600;margin-bottom:8px}.embarque-select{background:#fff;border:1.5px solid #dee2e6;border-radius:10px;font-size:1rem;padding:12px;width:100%}.embarque-resultados{margin-top:12px}.embarque-resultado-item{align-items:center;background:#f8f9fa;border-radius:10px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px}.embarque-resultado-info{display:flex;flex-direction:column;gap:2px}.embarque-resultado-info strong{font-size:.95rem}.embarque-resultado-info small{color:#6c757d}.embarque-resultado-actions{display:flex;flex-shrink:0;gap:4px}.embarque-lista-section{background:#fff;border-radius:12px;box-shadow:0 1px 4px #0000000f;margin:0 16px 16px;overflow:hidden}.embarque-lista-header{align-items:center;background:#2c3e50;color:#fff;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:12px 14px}.embarque-resumen{display:flex;gap:6px}.embarque-resumen .badge{font-size:.7rem;padding:3px 8px}.embarque-pasajeros-lista{padding:0}.embarque-pasajero-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:10px 14px}.embarque-pasajero-row:last-child{border-bottom:none}.embarque-pasajero-info{align-items:center;display:flex;gap:10px}.embarque-pasajero-asiento{align-items:center;background:#e9ecef;border-radius:8px;color:#2c3e50;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:30px;justify-content:center;width:30px}.embarque-pasajero-nombre{color:#1f2937;font-size:.9rem}.embarque-pasajero-actions{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:2px}.manifiesto-card{background:#fff;border:1px solid #e0e0e0;border-radius:14px;box-shadow:0 2px 8px #0000000f;overflow:hidden}.manifiesto-card-header{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:16px 20px}.manifiesto-aeronave{color:#2c3e50;display:block;font-size:1.1rem;font-weight:700}.manifiesto-matricula{color:#6c757d;font-size:.85rem;font-weight:600;letter-spacing:.5px}.manifiesto-card-body{padding:16px 20px}.manifiesto-info-row{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:8px;padding:8px 12px}.manifiesto-label{color:#6c757d;font-size:.9rem;font-weight:500}.manifiesto-value{color:#2c3e50;font-size:.95rem;font-weight:600}.manifiesto-pasajeros-section{border-top:1px solid #e9ecef;margin-top:12px;padding-top:12px}.manifiesto-pasajeros-titulo{color:#495057;display:block;font-size:.88rem;font-weight:600;margin-bottom:8px}.manifiesto-pasajeros-lista{list-style:none;margin:0;padding:0}.manifiesto-pasajero-item{background:#f8f9fa;border-radius:6px;color:#1f2937;font-size:.85rem;margin-bottom:4px;padding:6px 10px}.manifiesto-pasajero-item:last-child{margin-bottom:0}.manifiesto-sin-pasajeros{color:#6c757d;font-size:.85rem;font-style:italic;padding:12px;text-align:center}.recaudacion-card{border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;padding:20px}.recaudacion-card h3{font-size:.9rem;margin:0 0 10px;opacity:.9}.recaudacion-monto{font-size:1.8rem;font-weight:700;margin:0 0 8px}.recaudacion-detalle{font-size:.8rem;opacity:.8}.recaudacion-ingresos{background:linear-gradient(135deg,#27ae60,#2ecc71)}.recaudacion-devoluciones{background:linear-gradient(135deg,#e74c3c,#c0392b)}.recaudacion-balance{background:linear-gradient(135deg,#667eea,#764ba2)}.recaudacion-ticket-card{background:#fff;border:1px solid #e9ecef;border-radius:10px;box-shadow:0 1px 4px #0000000f;margin-bottom:10px;padding:14px}*{box-sizing:border-box}.pf-container{background:#f0f2f5;color:#1a1a2e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.pf-spinner{border:4px solid #ffffff4d;border-radius:50%;border-top-color:#e8b925;height:44px;width:44px}.pf-spinner,.pf-spinner-sm{animation:pf-spin .8s linear infinite}.pf-spinner-sm{border:3px solid #e0e0e0;border-radius:50%;border-top-color:#16697a;height:24px;width:24px}@keyframes pf-spin{to{transform:rotate(1turn)}}.pf-loading{align-items:center;background:#f0f2f5;color:#6b7280;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh}.pf-loading .pf-spinner{border-color:#16697a #e0e0e0 #e0e0e0}.pf-loading-inline{align-items:center;color:#6b7280;gap:10px;padding:20px 0}.pf-loading-inline,.pf-login{display:flex;justify-content:center}.pf-login{background:linear-gradient(160deg,#0d3b46,#16697a 50%,#489fb5);flex-direction:column;margin:0 auto;max-width:420px;min-height:100vh;padding:24px}.pf-login-logo{margin-bottom:20px;text-align:center}.pf-login-logo img{background:#ffffff26;border:2px solid #fff3;border-radius:50%;height:100px;object-fit:contain;padding:8px;width:100px}.pf-login-header{margin-bottom:32px;text-align:center}.pf-login-header h1{color:#e8b925;font-size:1.8rem;font-weight:800;letter-spacing:-.5px;margin:0 0 4px}.pf-login-header p{color:#fffc;font-size:1rem;margin:0}.pf-login-form{background:#fff;border-radius:20px;box-shadow:0 12px 40px #00000040;padding:28px}.pf-field{margin-bottom:18px}.pf-field label{color:#16697a;display:block;font-size:.9rem;font-weight:600;margin-bottom:6px}.pf-field input{background:#f8fafc;border:2px solid #e5e7eb;border-radius:12px;color:#1a1a2e;font-size:1rem;padding:14px 16px;transition:border-color .2s;width:100%}.pf-field input:focus{border-color:#16697a;box-shadow:0 0 0 3px #16697a1f;outline:none}.pf-field input::placeholder{color:#aaa}.pf-btn-login{background:linear-gradient(135deg,#16697a,#489fb5);border:none;border-radius:14px;color:#fff;cursor:pointer;font-size:1.05rem;font-weight:700;padding:16px;transition:transform .15s,box-shadow .15s;width:100%}.pf-btn-login:hover:not(:disabled){box-shadow:0 6px 20px #16697a66;transform:translateY(-1px)}.pf-btn-login:disabled{cursor:not-allowed;opacity:.6}.pf-login-hint{color:#ffffffb3;font-size:.85rem;margin-top:20px;text-align:center}.pf-header{background:linear-gradient(135deg,#16697a,#489fb5);box-shadow:0 2px 12px #00000026;justify-content:space-between;padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.pf-header,.pf-header-left{align-items:center;display:flex}.pf-header-left{gap:10px}.pf-header-logo{background:#ffffff26;border-radius:50%;height:36px;object-fit:contain;padding:3px;width:36px}.pf-header-title{color:#fff;font-size:1.15rem;font-weight:700}.pf-btn-logout{background:#ffffff26;border:1px solid #ffffff40;border-radius:10px;color:#fff;cursor:pointer;font-size:.85rem;padding:7px 16px;transition:background .2s}.pf-btn-logout:hover{background:#ffffff40}.pf-main{margin:0 auto;max-width:600px;padding:16px}.pf-alert{border-radius:14px;font-size:.92rem;margin-bottom:14px;padding:14px 18px}.pf-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.pf-card{background:#fff;border:1px solid #e8eaed;border-radius:18px;box-shadow:0 2px 10px #0000000f;margin-bottom:14px;padding:20px}.pf-card h2{color:#1a1a2e;font-size:1.2rem;margin:0 0 6px}.pf-card h3{color:#1a1a2e;font-size:1.05rem;margin:0 0 12px}.pf-card p{color:#6b7280;font-size:.92rem;line-height:1.5;margin:0}.pf-card-title{color:#16697a;font-size:1rem}.pf-card-subtitle{color:#489fb5;margin-bottom:16px!important}.pf-card-center{padding:40px 20px;text-align:center}.pf-card-icon{font-size:2rem;margin-bottom:8px}.pf-card-embarque-proximo{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#34d399;border-left:4px solid #10b981}.pf-card-embarque-proximo h3{color:#065f46}.pf-card-embarque-proximo p{color:#047857}.pf-card-embarque-proximo strong{color:#065f46}.pf-card-warning{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fcd34d;text-align:center}.pf-card-warning h3{color:#92400e}.pf-card-warning p{color:#a16207}.pf-card-notif{background:#fffdf5;border-color:#fbbf24}.pf-card-notif h3{color:#92400e}.pf-notif-item{background:#fef9e7;border-left:3px solid #f59e0b;border-radius:10px;margin-bottom:8px;padding:10px 12px}.pf-notif-item p{color:#1f2937;font-size:.9rem;margin-bottom:4px!important}.pf-notif-item small{color:#9ca3af}.pf-btn-text{background:none;border:none;color:#b45309;cursor:pointer;font-size:.85rem;margin-top:8px;padding:8px 0}.pf-ticket-card{background:#fff;border:1px solid #e8eaed;border-radius:18px;box-shadow:0 2px 10px #0000000f;margin-bottom:14px;overflow:hidden}.pf-ticket-top{align-items:center;background:linear-gradient(135deg,#16697a,#489fb5);color:#fff;display:flex;justify-content:space-between;padding:16px 20px}.pf-ticket-code{font-family:SF Mono,Courier New,monospace;font-size:1.3rem;font-weight:800;letter-spacing:2px}.pf-ticket-badge{background:#fff3;border-radius:20px;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:5px 14px;text-transform:uppercase}.pf-badge-disponible{background:#3b82f6}.pf-badge-inscrito{background:#22c55e}.pf-badge-volado{background:#a855f7}.pf-badge-cancelado{background:#ef4444}.pf-ticket-details{display:flex;padding:0}.pf-ticket-detail{border-right:1px solid #f0f0f0;flex:1 1;padding:16px 20px;text-align:center}.pf-ticket-detail:last-child{border-right:none}.pf-detail-label{color:#9ca3af;display:block;font-size:.75rem;margin-bottom:4px;text-transform:uppercase}.pf-detail-value{color:#1a1a2e;font-size:1rem;font-weight:700}.pf-text-ok{color:#16a34a}.pf-text-warn{color:#d97706}.pf-card-inscripcion{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7}.pf-card-inscripcion h2{color:#065f46}.pf-vuelos-list{display:flex;flex-direction:column;gap:16px}.pf-circuito-label{color:#065f46;font-size:.85rem;font-weight:700;letter-spacing:.5px;margin-bottom:8px;padding-left:2px;text-transform:uppercase}.pf-vuelo-item{background:#fff;border:1px solid #d1fae5;border-radius:14px;box-shadow:0 1px 4px #0000000a;display:flex;flex-direction:column;gap:12px;padding:16px}.pf-vuelo-info{align-items:center;display:flex;justify-content:space-between}.pf-vuelo-main{display:flex;flex-direction:column;gap:2px}.pf-vuelo-matricula{color:#065f46;font-size:1.1rem;font-weight:800}.pf-vuelo-modelo{color:#6b7280;font-size:.82rem}.pf-vuelo-meta{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.pf-vuelo-hora{color:#1a1a2e;font-size:1rem;font-weight:700}.pf-vuelo-asientos{background:#d1fae5;border-radius:10px;color:#059669;font-size:.8rem;font-weight:600;padding:3px 10px}.pf-btn-inscribirse{background:linear-gradient(135deg,#059669,#10b981);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:14px;text-align:center;transition:transform .15s,box-shadow .15s;width:100%}.pf-btn-inscribirse:hover:not(:disabled){box-shadow:0 4px 16px #05966966;transform:translateY(-1px)}.pf-btn-inscribirse:disabled{cursor:not-allowed;opacity:.6}.pf-empty{padding:20px 0;text-align:center}.pf-ticket-section{margin-bottom:8px}.pf-ticket-separator{border:none;border-top:2px dashed #e5e7eb;margin:20px 0}.pf-card-hint{color:#a16207;font-size:.82rem;font-style:italic;margin-top:10px!important;opacity:.8}.pf-passengers-inscripcion{background:#fff9;border-radius:12px;display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding:12px}.pf-passenger-inscripcion-row{align-items:center;background:#fff;border:1px solid #d1fae5;border-radius:10px;display:flex;justify-content:space-between;padding:8px 12px}.pf-passenger-inscripcion-info{align-items:center;display:flex;gap:8px}.pf-passenger-inscripcion-name{color:#065f46;font-size:.9rem;font-weight:600}.pf-passenger-inscripcion-individual{align-items:stretch;flex-direction:column;gap:8px}.pf-passenger-inscripcion-individual .pf-passenger-inscripcion-info{justify-content:space-between}.pf-passenger-inscripcion-actions{width:100%}.pf-passenger-inscrito-info{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.pf-passenger-vuelo-info{background:#d1fae5;border-radius:6px;color:#047857;font-size:.8rem;padding:2px 8px}.pf-vuelo-selector-inline{width:100%}.pf-vuelo-selector-inline .pf-vuelos-list{margin-top:8px}.pf-infante-options{display:flex;flex-wrap:wrap;gap:6px}.pf-empty-text{color:#6b7280;font-size:.85rem;padding:8px 0}.pf-vuelos-hint{color:#065f46;font-size:.85rem;font-weight:500;margin-bottom:12px}.pf-vuelo-card{background:#fff;border:1px solid #e8eaed;border-radius:18px;box-shadow:0 2px 10px #0000000f;margin-bottom:14px;overflow:hidden}.pf-vuelo-banner{color:#fff;padding:28px 24px;text-align:center}.pf-vuelo-banner h2{color:#fff;font-size:1.4rem;margin:0 0 6px;text-shadow:0 1px 2px #0000001a}.pf-vuelo-banner p{color:#ffffffeb;margin:0}.pf-vuelo-grid{grid-gap:1px;background:#e5e7eb;display:grid;gap:1px;grid-template-columns:repeat(3,1fr)}.pf-vuelo-stat{background:#fff;padding:18px;text-align:center}.pf-stat-label{color:#9ca3af;display:block;font-size:.7rem;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.pf-stat-value{color:#16697a;font-size:1.2rem;font-weight:800}.pf-cola{background:linear-gradient(135deg,#dbeafe,#bfdbfe);padding:18px 24px;text-align:center}.pf-cola h4{color:#1e40af;font-size:.9rem;margin:0 0 12px}.pf-cola-stats{display:flex;gap:40px;justify-content:center}.pf-cola-num{color:#1d4ed8;display:block;font-size:2rem;font-weight:800}.pf-cola-label{color:#3b82f6;font-size:.75rem}.pf-reprogramado{background:#fef2f2;border-top:1px solid #fecaca;padding:16px 20px}.pf-reprogramado h4{color:#dc2626;font-size:.85rem;margin:0 0 6px}.pf-reprogramado p{color:#7f1d1d;margin:0}.pf-boarding-card{background:#fff;border:2px solid #e8b925;border-radius:18px;box-shadow:0 4px 20px #e8b92526;margin-bottom:14px;overflow:hidden}.pf-boarding-header{align-items:center;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:flex;gap:14px;padding:20px}.pf-boarding-logo{background:#ffffff4d;border-radius:50%;height:48px;object-fit:contain;padding:4px;width:48px}.pf-boarding-header h2{color:#1f2937;font-size:1.3rem;margin:0}.pf-boarding-date{color:#422006;font-size:.88rem;text-transform:capitalize}.pf-pasajero-selector{background:#fffbeb;border-bottom:1px solid #fef3c7;padding:14px 20px}.pf-pasajero-selector label{color:#92400e;display:block;font-size:.85rem;font-weight:600;margin-bottom:8px}.pf-pasajero-btns{display:flex;flex-wrap:wrap;gap:8px}.pf-btn-pasajero{background:#fff;border:2px solid #fcd34d;border-radius:10px;color:#92400e;cursor:pointer;font-size:.85rem;font-weight:600;padding:9px 14px;transition:all .15s}.pf-btn-pasajero:hover{background:#fef3c7}.pf-btn-pasajero.active{background:#fbbf24;border-color:#f59e0b;color:#1f2937}.pf-qr-section{align-items:center;display:flex;flex-direction:column;padding:24px}.pf-qr-box{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001f;margin-bottom:16px;padding:16px}.pf-qr-name{color:#1a1a2e;font-size:1.2rem;font-weight:700;margin:0 0 2px}.pf-qr-rut{color:#6b7280;font-size:.9rem;margin:0 0 14px}.pf-qr-flight-info{background:#f0f2f5;border-radius:12px;display:flex;gap:16px;margin-bottom:12px;padding:12px 16px}.pf-qr-flight-info span{color:#16697a;font-size:.9rem;font-weight:600}.pf-qr-seat{background:#e0f2fe;border-radius:10px;color:#16697a;font-size:1.05rem;font-weight:700;margin-bottom:14px;padding:8px 20px}.pf-qr-hint{color:#9ca3af;font-size:.85rem;font-style:italic;margin:0 0 10px}.pf-passengers-list{display:flex;flex-direction:column;gap:8px}.pf-passenger-row{align-items:center;background:#f8fafc;border:1px solid #e8eaed;border-radius:12px;display:flex;justify-content:space-between;padding:12px 14px}.pf-passenger-name{align-items:center;color:#1a1a2e;display:flex;font-size:.92rem;font-weight:600;gap:8px}.pf-badge-menor{background:#e9d5ff;border-radius:8px;color:#7c3aed;font-size:.65rem;padding:2px 8px}.pf-badge-menor,.pf-passenger-status{font-weight:700;text-transform:uppercase}.pf-passenger-status{border-radius:10px;font-size:.72rem;padding:4px 12px}.pf-status-pendiente{background:#f3f4f6;color:#6b7280}.pf-status-inscrito{background:#dcfce7;color:#16a34a}.pf-status-embarcado{background:#dbeafe;color:#2563eb}.pf-status-volado{background:#f3e8ff;color:#9333ea}.pf-festival-info{align-items:center;background:linear-gradient(135deg,#16697a,#489fb5);border-radius:18px;color:#fff;display:flex;gap:14px;margin-bottom:14px;padding:18px 20px}.pf-festival-logo{background:#fff3;border-radius:50%;flex-shrink:0;height:50px;object-fit:contain;padding:4px;width:50px}.pf-festival-info h3{color:#fff;font-size:1rem;margin:0 0 4px}.pf-festival-info p{font-size:.85rem;margin:0;opacity:.85}.pf-footer{background:#fff;border-top:1px solid #e8eaed;padding:20px;text-align:center}.pf-btn-outline{background:#0000;border:1.5px solid #d1d5db;border-radius:12px;color:#6b7280;cursor:pointer;display:inline-block;font-size:.9rem;font-weight:600;padding:10px 24px;text-align:center;text-decoration:none;transition:all .15s}.pf-btn-outline:hover{background:#f0f2f5;border-color:#9ca3af;color:#374151}.pf-btn-sm{font-size:.82rem;padding:8px 18px}.pf-btn-primary{background:linear-gradient(135deg,#16697a,#489fb5);border:none;border-radius:14px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:700;padding:14px 32px;text-align:center;text-decoration:none;transition:transform .15s,box-shadow .15s}.pf-btn-primary:hover{box-shadow:0 6px 20px #16697a66;color:#fff;transform:translateY(-1px)}.pf-field-help{color:#9ca3af;display:block;font-size:.78rem;margin-top:6px}.pf-login-footer{align-items:center;display:flex;flex-direction:column;gap:10px;margin-top:24px;text-align:center}.pf-login-footer .pf-login-hint{margin:0}.pf-login-footer .pf-btn-outline{border-color:#fff6;color:#fff}.pf-login-footer .pf-btn-outline:hover{background:#ffffff1a;border-color:#fff9;color:#fff}.pf-login-hint a{color:#e8b925;text-decoration:none}.pf-login-hint a:hover{text-decoration:underline}@media (min-width:600px){.pf-vuelo-grid{grid-template-columns:repeat(3,1fr)}.pf-qr-box svg{height:220px!important;width:220px!important}}@media (min-width:1024px){.pf-main{max-width:700px;padding:24px}.pf-login{max-width:440px;padding:48px 32px}.pf-header{padding:14px 40px}}@media (max-width:480px){.pf-login{padding:20px 16px}.pf-login-form{padding:22px 18px}.pf-login-header h1{font-size:1.5rem}.pf-main{padding:12px}.pf-card{padding:16px}.pf-card-center h2,.pf-ticket-code{font-size:1.1rem}.pf-vuelo-grid{grid-template-columns:repeat(3,1fr)}.pf-vuelo-stat{padding:12px 8px}.pf-stat-value{font-size:1rem}.pf-qr-flight-info{flex-wrap:wrap;justify-content:center}.pf-boarding-header{flex-direction:column;text-align:center}}.validador-container{background:#f4f6f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.loading-screen{align-items:center;background:#f4f6f9;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.spinner{animation:spin 1s linear infinite;border:4px solid #e0e0e0;border-radius:50%;border-top-color:#3498db;height:50px;width:50px}.validador-header{align-items:center;background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;display:flex;justify-content:space-between;padding:16px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.validador-header h1{font-size:1.2rem;margin:0}.header-actions{align-items:center;display:flex;gap:12px}.usuario-info{font-size:.9rem;opacity:.8}.btn-logout{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px}.alert{border-radius:8px;font-size:.95rem;margin:10px 16px;padding:14px 20px}.alert-danger{background:#fee2e2;border:1px solid #fecaca;color:#dc2626}.alert-success{background:#d1fae5;border:1px solid #a7f3d0;color:#059669}.seccion-busqueda,.seccion-lista,.seccion-scanner,.seccion-vuelos{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin:16px;padding:20px}.seccion-busqueda h2,.seccion-lista h2,.seccion-scanner h2,.seccion-vuelos h2{align-items:center;color:#2c3e50;display:flex;font-size:1.1rem;gap:8px;margin:0 0 16px}.vuelos-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:16px}.vuelo-item{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;padding:14px;text-align:center;transition:all .2s}.vuelo-item:hover{border-color:#3498db}.vuelo-item.selected{background:#eff6ff;border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.vuelo-circuito{color:#2c3e50;font-size:.95rem;font-weight:600}.vuelo-hora{color:#3498db;font-size:1.3rem;font-weight:700;margin:4px 0}.vuelo-aeronave{color:#64748b;font-size:.85rem}.vuelo-estado{border-radius:12px;font-size:.75rem;font-weight:600;margin-top:8px;padding:4px 8px;text-transform:uppercase}.vuelo-estado.estado-abierto{background:#d1fae5;color:#059669}.vuelo-estado.estado-abordando{background:#fef3c7;color:#d97706}.vuelo-estado.estado-en_vuelo{background:#dbeafe;color:#2563eb}.btn-refresh{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;font-size:.95rem;padding:12px}.btn-refresh,.btn-scan{cursor:pointer;width:100%}.btn-scan{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:12px;color:#fff;font-size:1.1rem;font-weight:600;padding:20px}.scanner-container{text-align:center}#qr-reader{margin:0 auto;max-width:400px;width:100%}.btn-cancel{background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;margin-top:16px;padding:12px 24px}.busqueda-form{display:flex;gap:10px}.busqueda-form input{border:2px solid #e2e8f0;border-radius:8px;flex:1 1;font-size:1rem;padding:12px 16px}.busqueda-form input:focus{border-color:#3498db;outline:none}.busqueda-form button{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px 20px}.resultado-busqueda{background:#f8fafc;border-radius:8px;margin-top:16px;padding:16px}.not-found{color:#ef4444;margin:0;text-align:center}.pasajero-encontrado p{margin:0 0 8px}.btn-embarcar{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:12px;padding:12px;width:100%}.contador{color:#64748b;font-size:.9rem;font-weight:400;margin-left:auto}.lista-embarque{max-height:400px;overflow-y:auto}.pasajero-row{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;gap:12px;padding:12px}.pasajero-row:last-child{border-bottom:none}.pasajero-row.estado-embarcado{background:#f0fdf4}.pasajero-row.estado-no_show{background:#fef2f2;opacity:.7}.pasajero-info{align-items:center;display:flex;flex:1 1;gap:10px}.asiento{color:#64748b;font-weight:600;min-width:30px}.nombre{color:#1e293b;font-weight:500}.badge-menor{background:#a855f7;border-radius:10px;color:#fff;font-size:.7rem;padding:2px 8px;text-transform:uppercase}.pasajero-estado{min-width:80px;text-align:center}.estado-badge{border-radius:12px;color:#fff;display:inline-block;font-size:.75rem;font-weight:600;padding:4px 10px;text-transform:uppercase}.pasajero-acciones{display:flex;gap:6px}.btn-accion{border:none;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:600;padding:8px 12px}.btn-embarcar-sm{background:#10b981;color:#fff}.btn-noshow{background:#ef4444;color:#fff}.no-data{color:#94a3b8;padding:20px;text-align:center}@media (max-width:600px){.pasajero-row{flex-wrap:wrap}.pasajero-acciones{margin-top:8px;width:100%}.btn-accion{flex:1 1}}.install-pwa-container{animation:slideUp .3s ease-out;bottom:0;left:0;padding:16px;pointer-events:none;position:fixed;right:0;z-index:9999}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.install-pwa-card{background:#fff;border-radius:16px;box-shadow:0 -4px 20px #00000026;margin:0 auto;max-width:500px;padding:20px;pointer-events:all;position:relative}.install-pwa-close{align-items:center;background:#0000;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;position:absolute;right:12px;top:12px;transition:all .2s;width:32px}.install-pwa-close:hover{background:#f0f0f0;color:#333}.install-pwa-icon{display:flex;justify-content:center;margin-bottom:16px}.install-pwa-icon img{border-radius:12px;height:64px;width:64px}.install-pwa-title{color:#333;font-size:20px;font-weight:600;margin:0 0 12px;text-align:center}.install-pwa-content{text-align:center}.install-pwa-description{color:#666;font-size:14px;line-height:1.5;margin:0 0 16px}.install-pwa-button{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 32px;transition:background .2s;width:100%}.install-pwa-button:hover{background:#2980b9}.install-pwa-button:active{transform:scale(.98)}.install-pwa-instructions{background:#f8f9fa;border-radius:8px;margin-top:12px;padding:16px;text-align:left}.install-pwa-instructions p{color:#333;font-size:14px;font-weight:600;margin:0 0 8px}.install-pwa-instructions ol{margin:0;padding-left:20px}.install-pwa-instructions li{color:#666;font-size:14px;line-height:1.8;margin-bottom:4px}.ios-share-icon{display:inline-block;font-size:16px;vertical-align:middle}@media (min-width:768px){.install-pwa-container{bottom:20px;left:20px;max-width:400px;right:auto}.install-pwa-card{box-shadow:0 4px 20px #00000026}}@media (display-mode:standalone){.install-pwa-container{display:none}}:root{--color-bg-dark:#0a1628;--color-bg-medium:#1a2a4a;--color-bg-light:#2a3a5a;--color-bg-lighter:#3a4a6a;--color-gold:#d4af37;--color-gold-light:#f4d03f;--color-gold-dark:#b8860b;--color-gold-muted:#d4af374d;--color-success:#28a745;--color-success-bg:#28a74526;--color-warning:#ffc107;--color-warning-bg:#ffc10726;--color-error:#dc3545;--color-error-bg:#dc354526;--color-info:#17a2b8;--color-info-bg:#17a2b826;--color-text-primary:#fff;--color-text-secondary:#ffffffd9;--color-text-muted:#fff9;--color-text-dark:#1a1a2e;--bg-gradient-main:linear-gradient(135deg,var(--color-bg-dark) 0%,var(--color-bg-medium) 100%);--bg-gradient-hero:linear-gradient(180deg,#0a1628e6,#1a2a4af2);--bg-card:#ffffff0d;--bg-card-hover:#ffffff1a;--bg-card-solid:#1a2a4ae6;--bg-input:#ffffff14;--bg-input-focus:#ffffff1f;--border-subtle:#ffffff1a;--border-medium:#fff3;--border-gold:#d4af3780;--border-gold-strong:#d4af37cc;--shadow-sm:0 2px 8px #0003;--shadow-md:0 4px 16px #0000004d;--shadow-lg:0 8px 32px #0006;--shadow-gold:0 0 20px #d4af374d;--shadow-gold-lg:0 0 40px #d4af3766;--spacing-xs:0.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-xxl:4rem;--section-padding:80px 20px;--section-padding-mobile:60px 16px;--container-max-width:1200px;--container-narrow:800px;--card-padding:2rem;--card-padding-mobile:1.5rem;--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--border-radius-xl:24px;--border-radius-full:50px;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-family-display:"Segoe UI",Roboto,sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-size-5xl:3rem;--font-size-hero:3.5rem;--font-size-hero-mobile:2.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.75;--transition-fast:0.15s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700}[data-theme=light]{--color-bg-dark:#f0f2f5;--color-bg-medium:#e8eaed;--color-bg-light:#dfe1e5;--color-bg-lighter:#d0d3d8;--color-gold:#b8860b;--color-gold-light:#d4a017;--color-gold-dark:#8b6914;--color-gold-muted:#b8860b26;--color-text-primary:#1a1a2e;--color-text-secondary:#1a1a2ebf;--color-text-muted:#1a1a2e80;--color-text-dark:#1a1a2e;--bg-gradient-main:linear-gradient(135deg,#f0f2f5,#e8eaed);--bg-gradient-hero:linear-gradient(180deg,#f0f2f5f2,#e8eaedfa);--bg-card:#ffffffb3;--bg-card-hover:#ffffffe6;--bg-card-solid:#fffffff2;--bg-input:#fffc;--bg-input-focus:#fff;--border-subtle:#0000001a;--border-medium:#0003;--border-gold:#b8860b66;--border-gold-strong:#b8860bb3;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001a;--shadow-lg:0 8px 32px #0000001f;--shadow-gold:0 0 20px #b8860b33;--shadow-gold-lg:0 0 40px #b8860b40;--color-success-bg:#28a7451a;--color-warning-bg:#ffc1071f;--color-error-bg:#dc35451a;--color-info-bg:#17a2b81a}.public-page{background:var(--bg-gradient-main);color:var(--color-text-primary);font-family:var(--font-family);line-height:var(--line-height-normal);min-height:100vh}.public-container{margin:0 auto;max-width:var(--container-max-width);padding:0 var(--spacing-lg)}.public-section{padding:var(--section-padding)}.public-navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a1628f2;border-bottom:1px solid var(--border-subtle);left:0;position:fixed;right:0;top:0;transition:var(--transition-normal);z-index:var(--z-fixed)}.public-navbar.scrolled{background:#0a1628fa;box-shadow:var(--shadow-md)}.navbar-content{justify-content:space-between;margin:0 auto;max-width:var(--container-max-width);padding:var(--spacing-sm) var(--spacing-lg)}.navbar-content,.navbar-logo{align-items:center;display:flex}.navbar-logo{color:var(--color-text-primary);gap:var(--spacing-sm);text-decoration:none}.navbar-logo img{height:50px;width:auto}.navbar-logo-text{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.navbar-logo-text span{color:var(--color-gold)}.navbar-menu{align-items:center;display:flex;gap:var(--spacing-lg);list-style:none;margin:0;padding:0}.navbar-menu a{border-radius:var(--border-radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);padding:var(--spacing-xs) var(--spacing-sm);text-decoration:none;transition:var(--transition-fast)}.navbar-menu a.active,.navbar-menu a:hover{color:var(--color-gold)}.navbar-cta{background:linear-gradient(135deg,var(--color-gold) 0,var(--color-gold-dark) 100%);border-radius:var(--border-radius-full);font-weight:var(--font-weight-semibold)!important;padding:var(--spacing-xs) var(--spacing-md)!important}.navbar-cta,.navbar-cta:hover{color:var(--color-text-dark)!important}.navbar-cta:hover{box-shadow:var(--shadow-gold);transform:translateY(-2px)}.navbar-hamburger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:var(--spacing-xs)}.navbar-hamburger span{background:var(--color-text-primary);display:block;height:2px;transition:var(--transition-fast);width:25px}.hero-section{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:120px var(--spacing-lg) var(--spacing-xxl);position:relative;text-align:center}.hero-background{background:var(--bg-gradient-hero);bottom:0;left:0;position:absolute;right:0;top:0;z-index:-1}.hero-content{max-width:900px;z-index:1}.hero-badge{background:var(--color-gold-muted);border:1px solid var(--border-gold);border-radius:var(--border-radius-full);color:var(--color-gold-light);display:inline-block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:1px;padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase}.hero-badge,.hero-title{margin-bottom:var(--spacing-md)}.hero-title{font-size:var(--font-size-hero);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.hero-title .gold{color:var(--color-gold)}.hero-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg);margin-left:auto;margin-right:auto;max-width:700px}.hero-dates{flex-wrap:wrap;gap:var(--spacing-md);justify-content:center;margin-bottom:var(--spacing-xl)}.hero-date-item,.hero-dates{align-items:center;display:flex}.hero-date-item{color:var(--color-text-secondary);font-size:var(--font-size-lg);gap:var(--spacing-xs)}.hero-date-item svg{color:var(--color-gold)}.hero-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.btn,.hero-buttons{justify-content:center}.btn{align-items:center;border:none;border-radius:var(--border-radius-md);cursor:pointer;display:inline-flex;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);text-decoration:none;transition:var(--transition-normal)}.btn-primary{background:linear-gradient(135deg,var(--color-gold) 0,var(--color-gold-dark) 100%);color:var(--color-text-dark)}.btn-primary:hover{box-shadow:var(--shadow-gold-lg);transform:translateY(-3px)}.btn-secondary{background:var(--bg-card);border:1px solid var(--border-medium);color:var(--color-text-primary)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--color-gold)}.btn-lg{font-size:var(--font-size-lg);padding:var(--spacing-md) var(--spacing-xl)}.countdown-section{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);border-top:1px solid var(--border-subtle);padding:var(--spacing-xl) 0}.countdown-container{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);justify-content:center}.countdown-item{min-width:100px;text-align:center}.countdown-value{color:var(--color-gold);font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:1}.countdown-label{color:var(--color-text-muted);font-size:var(--font-size-sm);letter-spacing:1px;margin-top:var(--spacing-xs);text-transform:uppercase}.section-header{margin:0 auto var(--spacing-xxl);max-width:700px;text-align:center}.section-badge{color:var(--color-gold);display:inline-block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:2px;margin-bottom:var(--spacing-sm);text-transform:uppercase}.section-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md)}.section-description{color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed)}.cards-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--border-radius-lg);padding:var(--card-padding);transition:var(--transition-normal)}.card:hover{background:var(--bg-card-hover);border-color:var(--border-gold);transform:translateY(-5px)}.card-icon{align-items:center;background:var(--color-gold-muted);border-radius:var(--border-radius-md);display:flex;font-size:var(--font-size-2xl);height:60px;justify-content:center;margin-bottom:var(--spacing-md);width:60px}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm)}.card-text{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.flota-card{overflow:hidden;position:relative}.flota-card-image{border-radius:var(--border-radius-md);height:200px;margin-bottom:var(--spacing-md);object-fit:cover;width:100%}.flota-card-matricula{background:var(--color-gold);border-radius:var(--border-radius-sm);color:var(--color-text-dark);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);padding:var(--spacing-xs) var(--spacing-sm);position:absolute;right:var(--spacing-md);top:var(--spacing-md)}.flota-card-specs{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.flota-card-spec{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-xs)}.public-footer{background:#0a1628f2;border-top:1px solid var(--border-subtle);padding:var(--spacing-xxl) var(--spacing-lg) var(--spacing-lg)}.footer-content{margin:0 auto;max-width:var(--container-max-width)}.footer-grid{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:2fr 1fr 1fr 1fr;margin-bottom:var(--spacing-xl)}.footer-brand{max-width:300px}.footer-logo{align-items:center;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.footer-logo img{height:50px}.footer-description{color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-md)}.footer-social{display:flex;gap:var(--spacing-sm)}.footer-social a{align-items:center;background:var(--bg-card);border-radius:var(--border-radius-md);color:var(--color-text-secondary);display:flex;height:40px;justify-content:center;transition:var(--transition-fast);width:40px}.footer-social a:hover{background:var(--color-gold);color:var(--color-text-dark)}.footer-column h4{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md)}.footer-column ul{list-style:none;margin:0;padding:0}.footer-column li{margin-bottom:var(--spacing-sm)}.footer-column a{color:var(--color-text-muted);text-decoration:none;transition:var(--transition-fast)}.footer-column a:hover{color:var(--color-gold)}.footer-bottom{align-items:center;border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:space-between;padding-top:var(--spacing-lg)}.footer-copyright{color:var(--color-text-muted);font-size:var(--font-size-sm)}.footer-legal{display:flex;gap:var(--spacing-lg)}.footer-legal a{color:var(--color-text-muted);font-size:var(--font-size-sm);text-decoration:none}.footer-legal a:hover{color:var(--color-gold)}@media (max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width:768px){.navbar-menu{background:#0a1628fa;border-bottom:1px solid var(--border-subtle);display:none;flex-direction:column;gap:var(--spacing-sm);left:0;padding:var(--spacing-md);position:absolute;right:0;top:100%}.navbar-hamburger,.navbar-menu.open{display:flex}.hero-section{min-height:auto;padding-top:100px}.hero-title{font-size:var(--font-size-hero-mobile)}.hero-subtitle{font-size:var(--font-size-base)}.hero-buttons{align-items:center;flex-direction:column}.countdown-container{gap:var(--spacing-md)}.countdown-value,.section-title{font-size:var(--font-size-3xl)}.public-section{padding:var(--section-padding-mobile)}.footer-grid{grid-template-columns:1fr;text-align:center}.footer-brand{max-width:100%}.footer-logo,.footer-social{justify-content:center}.footer-bottom{flex-direction:column;text-align:center}}@media (max-width:480px){.public-container{padding:0 var(--spacing-sm)}.card{padding:var(--card-padding-mobile)}.countdown-item{min-width:70px}.countdown-value{font-size:var(--font-size-2xl)}}.purchase-page{background:var(--bg-gradient-main);color:var(--color-text-primary);min-height:100vh;padding-top:80px}.purchase-container{margin:0 auto;max-width:800px;padding:var(--spacing-xl) var(--spacing-lg)}.purchase-header{margin-bottom:var(--spacing-xl);text-align:center}.purchase-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm)}.purchase-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-lg)}.steps-indicator{justify-content:center;margin-bottom:var(--spacing-xl);padding:0 var(--spacing-md)}.step,.steps-indicator{align-items:center;display:flex;gap:var(--spacing-xs)}.step-number{align-items:center;background:var(--bg-card);border:2px solid var(--border-subtle);border-radius:50%;color:var(--color-text-muted);display:flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);height:36px;justify-content:center;transition:var(--transition-normal);width:36px}.step.active .step-number{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-text-dark)}.step.completed .step-number{background:var(--color-success);border-color:var(--color-success);color:#fff}.step-label{color:var(--color-text-muted);display:none;font-size:var(--font-size-sm)}.step.active .step-label{color:var(--color-gold)}.step-connector{background:var(--border-subtle);height:2px;width:40px}.step-connector.completed{background:var(--color-success)}@media (min-width:768px){.step-label{display:block}.step-connector{width:60px}}.purchase-form-card{background:var(--bg-card-solid);border:1px solid var(--border-subtle);border-radius:var(--border-radius-xl);margin-bottom:var(--spacing-lg);padding:var(--spacing-xl)}.form-step-title{border-bottom:1px solid var(--border-subtle);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-md)}.form-label{color:var(--color-text-secondary);display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs)}.form-label.required:after{color:var(--color-error);content:" *"}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);padding:var(--spacing-sm) var(--spacing-md);transition:var(--transition-fast);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{background:var(--bg-input-focus);border-color:var(--color-gold);box-shadow:0 0 0 3px var(--color-gold-muted);outline:none}.form-input::placeholder{color:var(--color-text-muted)}.form-input.error{border-color:var(--color-error)}.form-error{color:var(--color-error)}.form-error,.form-help{font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.form-help{color:var(--color-text-muted)}.form-row{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr}@media (max-width:600px){.form-row{grid-template-columns:1fr}}.quantity-selector{background:var(--bg-card);border-radius:var(--border-radius-lg);gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);padding:var(--spacing-xl)}.quantity-btn,.quantity-selector{align-items:center;display:flex;justify-content:center}.quantity-btn{background:var(--bg-card-hover);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-xl);height:50px;transition:var(--transition-fast);width:50px}.quantity-btn:hover:not(:disabled){background:var(--color-gold-muted);border-color:var(--color-gold)}.quantity-btn:disabled{cursor:not-allowed;opacity:.5}.quantity-value{color:var(--color-gold);font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);min-width:60px;text-align:center}.quantity-label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.price-summary{background:var(--bg-card);border-radius:var(--border-radius-lg);margin-top:var(--spacing-lg);padding:var(--spacing-lg)}.price-row{align-items:center;display:flex;justify-content:space-between;padding:var(--spacing-sm) 0}.price-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.price-row.total{border-top:2px solid var(--border-gold);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-top:var(--spacing-sm);padding-top:var(--spacing-md)}.price-row.total .price-value{color:var(--color-gold)}.passenger-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-lg)}.passenger-header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm)}.passenger-number{color:var(--color-gold);font-weight:var(--font-weight-semibold)}.passenger-remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-xs);transition:var(--transition-fast)}.passenger-remove:hover{color:var(--color-error)}.checkbox-group{display:flex;gap:var(--spacing-lg);margin-top:var(--spacing-md)}.checkbox-label{align-items:center;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:var(--spacing-xs)}.checkbox-label input{accent-color:var(--color-gold);height:18px;width:18px}.minor-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--border-radius-md);color:var(--color-warning);font-size:var(--font-size-sm);margin-top:var(--spacing-md);padding:var(--spacing-md)}.payment-options{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr}@media (max-width:600px){.payment-options{grid-template-columns:1fr}}.payment-option{background:var(--bg-card);border:2px solid var(--border-subtle);border-radius:var(--border-radius-lg);cursor:pointer;padding:var(--spacing-lg);position:relative;transition:var(--transition-normal)}.payment-option:hover{border-color:var(--color-gold-muted)}.payment-option.selected{background:var(--color-gold-muted);border-color:var(--color-gold)}.payment-option input{opacity:0;position:absolute}.payment-icon{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-sm)}.payment-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}.payment-description{color:var(--color-text-muted);font-size:var(--font-size-sm)}.transfer-info{background:var(--bg-card);border:1px solid var(--border-gold);border-radius:var(--border-radius-lg);margin-top:var(--spacing-lg);padding:var(--spacing-lg)}.transfer-info h4{color:var(--color-gold);margin-bottom:var(--spacing-md)}.transfer-detail{border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:var(--spacing-sm) 0}.transfer-detail:last-child{border-bottom:none}.transfer-label{color:var(--color-text-muted)}.transfer-value{font-weight:var(--font-weight-semibold)}.transfer-value.copy{color:var(--color-gold);cursor:pointer}.confirmation-section{padding:var(--spacing-xl);text-align:center}.confirmation-icon{align-items:center;background:var(--color-success-bg);border-radius:50%;display:flex;font-size:var(--font-size-4xl);height:80px;justify-content:center;margin:0 auto var(--spacing-lg);width:80px}.confirmation-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm)}.confirmation-code{background:var(--bg-card);border:2px dashed var(--border-gold);border-radius:var(--border-radius-lg);margin:var(--spacing-lg) 0;padding:var(--spacing-lg)}.confirmation-code-label{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.confirmation-code-value{color:var(--color-gold);font-family:monospace;font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);letter-spacing:4px}.qr-container{background:#fff;border-radius:var(--border-radius-md);display:inline-block;margin:var(--spacing-lg) 0;padding:var(--spacing-md)}.terms-checkbox{align-items:flex-start;display:flex;gap:var(--spacing-sm);margin:var(--spacing-lg) 0}.terms-checkbox input{accent-color:var(--color-gold);height:20px;margin-top:2px;width:20px}.terms-checkbox label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.terms-checkbox a{color:var(--color-gold);text-decoration:underline}.form-navigation{display:flex;gap:var(--spacing-md);justify-content:space-between;margin-top:var(--spacing-xl)}.form-navigation .btn{flex:1 1;max-width:200px}.btn-back{background:#0000;border:1px solid var(--border-medium);color:var(--color-text-secondary)}.btn-back:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.btn-submit{background:linear-gradient(135deg,var(--color-gold) 0,var(--color-gold-dark) 100%);color:#fff;font-weight:var(--font-weight-semibold)}.btn-submit:hover:not(:disabled){box-shadow:var(--shadow-gold);transform:translateY(-2px)}.btn-submit:disabled{cursor:not-allowed;opacity:.6;transform:none}.loading-overlay{align-items:center;background:#0a1628e6;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:var(--z-modal)}.loading-spinner{animation:spin 1s linear infinite;border:3px solid var(--border-subtle);border-radius:50%;border-top-color:var(--color-gold);height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.loading-text{color:var(--color-text-secondary);margin-top:var(--spacing-md)}.purchase-summary-sidebar{position:-webkit-sticky;position:sticky;top:100px}.summary-card{background:var(--bg-card-solid);border:1px solid var(--border-gold);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.summary-title{border-bottom:1px solid var(--border-subtle);color:var(--color-gold);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm)}.summary-item{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0}.summary-item,.summary-total{display:flex;justify-content:space-between}.summary-total{border-top:2px solid var(--border-gold);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.summary-total .amount{color:var(--color-gold)}.age-toggle-group{display:flex;gap:12px;margin-top:var(--spacing-md)}.age-toggle-btn{align-items:center;background:var(--bg-card);border:2px solid var(--border-subtle);border-radius:var(--border-radius-lg);color:var(--color-text-secondary);cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:6px;padding:14px 10px;position:relative;transition:var(--transition-normal)}.age-toggle-btn:hover:not(:disabled){border-color:var(--color-gold-muted)}.age-toggle-btn.active{background:var(--color-gold-muted);border-color:var(--color-gold);box-shadow:0 0 12px #d4af3740;color:var(--color-text-primary)}.age-toggle-btn.active.infante{background:var(--color-success-bg);border-color:var(--color-success);box-shadow:0 0 12px #28a74540}.age-toggle-btn:disabled{cursor:not-allowed;opacity:.4}.age-toggle-icon{font-size:1.5rem}.age-toggle-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:center}.age-toggle-badge{background:var(--color-success);border-radius:10px;color:#fff;font-size:.7rem;font-weight:var(--font-weight-bold);padding:2px 8px;position:absolute;right:-8px;top:-8px}.minor-auth-section{background:var(--bg-card);border:1px solid var(--border-gold);border-radius:var(--border-radius-lg);margin-top:var(--spacing-md);padding:var(--spacing-md)}.minor-auth-header{color:var(--color-gold);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:8px}.minor-auth-desc{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.signature-pad-wrapper{display:flex;flex-direction:column;gap:10px}.signature-canvas{aspect-ratio:3/1;background:#ffffff08;border:2px dashed var(--border-medium);border-radius:var(--border-radius-md);cursor:crosshair;height:auto;touch-action:none;width:100%}.signature-actions{display:flex;gap:8px;justify-content:flex-end}.btn-sm-custom{font-size:var(--font-size-sm)!important;padding:6px 14px!important}.signature-preview{align-items:center;display:flex;flex-direction:column;gap:10px}.signature-preview img{background:#ffffff08;border:1px solid var(--border-gold);border-radius:var(--border-radius-md);height:auto;max-width:300px;width:100%}.transfer-info-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:var(--spacing-md)}.transfer-info-header h4{margin:0}.btn-copy-all{background:var(--bg-card-hover);border:1px solid var(--border-gold);border-radius:var(--border-radius-md);color:var(--color-gold);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:8px 16px;transition:var(--transition-fast);white-space:nowrap}.btn-copy-all:hover{background:var(--color-gold-muted)}.confirm-summary{background:var(--bg-card);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.confirm-summary-title{color:var(--color-gold);font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.confirm-row{align-items:baseline;border-bottom:1px solid var(--border-subtle);display:flex;gap:12px;justify-content:space-between;padding:8px 0}.confirm-row:last-child{border-bottom:none}.confirm-label{color:var(--color-text-muted);flex-shrink:0}.confirm-label,.confirm-value{font-size:var(--font-size-sm);min-width:0}.confirm-value{font-weight:var(--font-weight-semibold);text-align:right;word-break:break-word}.confirm-value-break{word-break:break-all}.confirm-total{border-bottom:none;border-top:2px solid var(--border-gold);margin-top:8px;padding-top:12px}.confirm-total .confirm-label,.confirm-total .confirm-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.confirm-passengers{margin-bottom:var(--spacing-lg)}.confirm-passengers-title{font-size:var(--font-size-base);margin-bottom:10px}.confirm-passenger-item{align-items:center;background:var(--bg-card);border-radius:var(--border-radius-md);display:flex;gap:12px;justify-content:space-between;margin-bottom:8px;padding:10px 12px}.confirm-passenger-name{font-size:var(--font-size-sm);min-width:0;word-break:break-word}.confirm-passenger-type{color:var(--color-text-muted);flex-shrink:0;font-size:var(--font-size-xs);white-space:nowrap}.form-navigation-confirm{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-bottom:env(safe-area-inset-bottom,16px)}.form-navigation-confirm .btn{flex:1 1}.btn-confirm-purchase{font-size:var(--font-size-base)!important;font-weight:var(--font-weight-bold)!important;padding:14px 20px!important}.confirmation-subtitle{color:var(--color-text-secondary);margin-bottom:24px}.confirmation-transfer{margin-bottom:24px;text-align:left}.credentials-box{background:var(--bg-card);border-radius:var(--border-radius-lg);margin-bottom:24px;padding:var(--spacing-md)}.credentials-title{margin:0 0 var(--spacing-md) 0}.credentials-data{background:#d4af371a;border:1px solid var(--color-gold);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.credentials-field{margin-bottom:10px}.credentials-field:last-child{margin-bottom:0}.credentials-label{color:var(--color-text-muted);display:block;font-size:var(--font-size-sm);margin-bottom:2px}.credentials-value{color:var(--color-gold);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere;word-break:break-all}.credentials-help{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.pending-warning{background:#ff98001a;border:1px solid #ff9800;border-radius:var(--border-radius-md);margin-bottom:24px;padding:var(--spacing-md);text-align:center}.pending-warning p{color:#ff9800;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin:0}.confirmation-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center}.confirmation-actions .btn{align-items:center;display:inline-flex;flex:1 1;justify-content:center;max-width:200px;text-align:center;text-decoration:none}[data-theme=light] .purchase-page{background:var(--bg-gradient-main)}[data-theme=light] .signature-canvas{--stroke-color:#1a1a2e;background:#00000005;border-color:#0003}[data-theme=light] .btn-back{border-color:#0003;color:var(--color-text-secondary)}[data-theme=light] .btn-back:hover{border-color:#0006;color:var(--color-text-primary)}[data-theme=light] .btn-copy-all{background:#0000000d}@media (max-width:480px){.purchase-container{padding:var(--spacing-md) var(--spacing-sm)}.passenger-card,.purchase-form-card{padding:var(--spacing-md)}.passenger-header{align-items:flex-start;flex-direction:column;gap:8px}.age-toggle-group{gap:8px}.age-toggle-btn{padding:12px 8px}.age-toggle-icon{font-size:1.3rem}.age-toggle-label{font-size:.78rem}.transfer-detail{flex-direction:column;gap:4px;padding:10px 0}.transfer-value-copyable{justify-content:space-between}.confirm-row{flex-direction:column;gap:2px;padding:10px 0}.confirm-value{text-align:left}.form-navigation,.form-navigation-confirm{flex-direction:column;gap:10px}.form-navigation .btn,.form-navigation-confirm .btn{font-size:var(--font-size-base);max-width:100%;padding:14px;width:100%}.btn-confirm-purchase{order:-1}.price-row{font-size:var(--font-size-sm)}.price-row.total{font-size:var(--font-size-base)}.minor-auth-section{padding:var(--spacing-sm)}.signature-canvas{aspect-ratio:2.5/1}.transfer-info-header{align-items:stretch;flex-direction:column;gap:8px}.btn-copy-all{text-align:center;width:100%}.confirmation-code-value{font-size:var(--font-size-2xl);letter-spacing:2px;word-break:break-all}.confirmation-section{padding:var(--spacing-md)}.credentials-value{font-size:var(--font-size-sm)}.confirmation-actions{flex-direction:column}.confirmation-actions .btn{max-width:100%;padding:14px;width:100%}}.App{min-height:100vh}
/*# sourceMappingURL=main.5e95f14b.css.map*/