/*
 * Isla Holbox — la taquilla (/operador/).
 *
 * Pensada para una tablet o un teléfono al sol, con guantes de prisa: botones
 * grandes, contraste alto, poca decoración. Reutiliza ficha, botón y chip de
 * frontend.css; aquí sólo va la disposición.
 */

.ihb-op { max-width: 64rem; margin: 0 auto; }

.ihb .ihb-op__titulo { margin: 0; font-size: clamp(1.35rem, 5vw, 1.9rem); color: var(--ihb-marino); }
.ihb .ihb-op__sub { margin: 0 0 0.75rem; font-size: 1.1rem; color: var(--ihb-marino); }
.ihb .ihb-op__texto { margin: 0 0 1rem; }
.ihb .ihb-op__quien { margin: 0; font-size: 0.875rem; color: var(--ihb-tinta-suave); }

.ihb-op__entrada { max-width: 28rem; margin: 0 auto; padding: clamp(1rem, 4vw, 1.75rem); }
.ihb-op__form { display: grid; gap: 0.5rem; }
.ihb-op__form label { font-weight: 600; font-size: 0.8125rem; color: var(--ihb-tinta-suave); }
.ihb-op__form .ihb-boton { margin-top: 0.5rem; justify-self: start; }

.ihb-op__aviso { margin: 0 0 1rem; padding: 0.75rem 1rem; border-radius: 0.75rem; background: #fdecec; color: #8a2222; font-weight: 600; }

.ihb-op__cab { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 1.1rem; margin: 0 0 1rem; }
.ihb-op__salir { margin: 0; }

/* Pestañas: tres, a todo lo ancho, con el dedo en mente. */
.ihb-op__tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.35rem; margin: 0 0 1rem; }
.ihb-op__tab {
	min-height: 2.75rem;
	padding: 0.6rem 0.5rem;
	border: 1px solid var(--ihb-linea);
	border-radius: 0.75rem;
	background: var(--ihb-papel);
	color: var(--ihb-tinta);
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
}
.ihb-op__tab.es-activa { background: var(--ihb-mar); border-color: var(--ihb-mar); color: #fff; }
.ihb-op__tab:focus-visible { outline: 3px solid var(--ihb-tinta); outline-offset: 2px; }

.ihb-op__panel[hidden] { display: none; }

.ihb-op__fecha { display: flex; align-items: center; gap: 0.75rem; margin: 0 0 1rem; }
.ihb-op__fecha label { font-weight: 600; font-size: 0.8125rem; color: var(--ihb-tinta-suave); }
.ihb-lienzo-activo .ihb-op__fecha input { width: auto; max-width: 12rem; }

/* Cada salida es una ficha con su cabecera y la lista de pasajeros debajo. */
.ihb-op__salida { padding: 0; margin: 0 0 0.9rem; overflow: hidden; }
.ihb-op__salida-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; padding: 0.85rem 1rem; background: var(--ihb-arena); }
.ihb-op__hora { font-size: 1.35rem; font-weight: 800; color: var(--ihb-marino); }
.ihb-op__hora small { font-size: 0.875rem; font-weight: 600; color: var(--ihb-tinta-suave); margin-left: 0.35rem; }
.ihb-op__ruta { font-weight: 700; color: var(--ihb-marino); }
.ihb-op__cupo { font-size: 0.875rem; color: var(--ihb-tinta-suave); }
.ihb-op__cupo strong { color: var(--ihb-tinta); }
.ihb-op__cupo--lleno strong { color: var(--ihb-alerta); }

.ihb-op__pasajeros { list-style: none; margin: 0; padding: 0; }
.ihb-op__pasajero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.25rem 0.75rem;
	align-items: center;
	padding: 0.7rem 1rem;
	border-top: 1px solid var(--ihb-linea);
}
.ihb-op__pasajero--abordo { background: #f1f7f3; }
.ihb-op__nombre { font-weight: 700; color: var(--ihb-tinta); }
.ihb-op__detalle { font-size: 0.8125rem; color: var(--ihb-tinta-suave); word-break: break-word; }
.ihb-op__vacio { padding: 0.85rem 1rem; color: var(--ihb-tinta-suave); font-size: 0.9375rem; }

.ihb-op__buscar { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 0.5rem; margin: 0 0 0.5rem; }
.ihb-op__buscar .ihb-boton[hidden] { display: none; }
.ihb-op__auto { display: block; margin: 0 0 1rem; font-size: 0.875rem; color: var(--ihb-tinta-suave); }
.ihb-op__auto input { width: auto !important; min-height: 0 !important; margin-right: 0.35rem; vertical-align: middle; }

.ihb-op__camara { margin: 0 0 1rem; padding: 0.75rem; border-radius: 1rem; background: var(--ihb-marino); color: #fff; }
.ihb-op__camara video { display: block; width: 100%; max-height: 60vh; border-radius: 0.75rem; background: #000; object-fit: cover; }
.ihb-op__camara .ihb-op__texto { margin: 0.5rem 0; color: #fff; }
.ihb-op__camara[hidden] { display: none; }

.ihb-op__boleto { padding: 1rem 1.1rem; margin: 0 0 0.75rem; border-left: 6px solid var(--ihb-linea); }
.ihb-op__boleto--valido { border-left-color: var(--ihb-mar); }
.ihb-op__boleto--abordo { border-left-color: #2e7d4f; }
.ihb-op__boleto--mal { border-left-color: var(--ihb-alerta); }
.ihb-op__boleto-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; }
.ihb-op__boleto-nombre { font-size: 1.15rem; font-weight: 800; color: var(--ihb-marino); }
.ihb .ihb-op__boleto-viaje { margin: 0.35rem 0; font-size: 1rem; }
.ihb .ihb-op__boleto-aviso { margin: 0.5rem 0; padding: 0.5rem 0.75rem; border-radius: 0.6rem; background: #fff3d6; color: #7a4a00; font-weight: 600; }
.ihb .ihb-op__boleto-mal { margin: 0.5rem 0; padding: 0.5rem 0.75rem; border-radius: 0.6rem; background: #fdecec; color: #8a2222; font-weight: 700; }
.ihb .ihb-op__boleto-ok { margin: 0.5rem 0; padding: 0.5rem 0.75rem; border-radius: 0.6rem; background: #e8f3ec; color: #14532d; font-weight: 700; }
.ihb-op__boleto-acciones { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }

.ihb-op__venta { padding: clamp(1rem, 4vw, 1.5rem); margin: 0 0 1rem; }
.ihb-op__campos { display: grid; gap: 0.75rem; }
.ihb-op__campo label { display: block; margin: 0 0 0.25rem; font-weight: 600; font-size: 0.8125rem; color: var(--ihb-tinta-suave); }
@media (min-width: 40rem) {
	.ihb-op__campos { grid-template-columns: 1fr 1fr; }
	.ihb-op__campo--ancho { grid-column: 1 / -1; }
}
.ihb-op__metodos { margin: 1rem 0; padding: 0.75rem 1rem; border: 1px solid var(--ihb-linea); border-radius: 0.75rem; display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; }
.ihb-op__metodos legend { padding: 0 0.4rem; font-weight: 700; }
.ihb-op__metodo { font-weight: 600; }
.ihb-op__metodo input { width: auto !important; min-height: 0 !important; margin-right: 0.35rem; vertical-align: middle; }
.ihb .ihb-op__total { margin: 0 0 0.75rem; font-size: 1.25rem; font-weight: 800; color: var(--ihb-marino); min-height: 1.5em; }

.ihb-op__hecha { padding: 1.25rem; border-left: 6px solid #2e7d4f; }
.ihb-op__hecha[hidden] { display: none; }
.ihb .ihb-op__hecha h2 { margin: 0 0 0.5rem; color: #14532d; }
.ihb-op__hecha .ihb-op__boleto-acciones { margin-top: 1rem; }

@media (max-width: 40rem) {
	.ihb-op__buscar { grid-template-columns: 1fr; }
	.ihb-op__cab { align-items: flex-start; }
	.ihb-op__pasajero { grid-template-columns: 1fr; }
}
