:root {
  --color-base-100: oklch(12% 0.042 264.695);
  --color-base-200: oklch(20% 0.042 265.755);
  --color-base-300: oklch(27% 0.041 260.031);
  --color-base-content: oklch(96% 0.007 247.896);
  --color-primary: oklch(72% 0.219 149.579);
  --color-primary-content: oklch(98% 0.018 155.826);
  --color-secondary: oklch(0% 0 0);
  --color-secondary-content: oklch(43% 0.232 292.759);
  --color-accent: oklch(76% 0.233 130.85);
  --color-accent-content: oklch(98% 0.031 120.757);
  --color-neutral: oklch(12% 0.042 264.695);
  --color-neutral-content: oklch(98% 0.003 247.858);
  --color-info: oklch(70% 0.165 254.624);
  --color-info-content: oklch(28% 0.091 267.935);
  --color-success: oklch(79% 0.209 151.711);
  --color-success-content: oklch(26% 0.065 152.934);
  --color-warning: oklch(82% 0.189 84.429);
  --color-warning-content: oklch(27% 0.077 45.635);
  --color-error: oklch(71% 0.202 349.761);
  --color-error-content: oklch(28% 0.109 3.907);
  --padding-default: 1rem;
  --radius-selector: 1rem;
  --radius-field: 0.25rem;
  --radius-box: 0.25rem;

  --size-selector: 0.25rem;
  --border: 3px;
  --seat-padding: 0.1rem;
  --size-field: 1rem;
}
html,
body {
  height: 100%;
}
body {
  color: #fff;
  background-color: black;
  background: var(--color-base-300);
  color: var(--color-base-content);
  font-family: "Segoe UI", sans-serif;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

a {
  text-decoration: none;
  color: inherit;
}
.contenedor-main {
  display: flex;
  flex: 1;
  flex-grow: 1; /* solo crece cuando hay espacio, pero no estira tarjetas */
  align-items: flex-start; /* evita que las tarjetas se estiren verticalmente */
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
.event-card {
  max-width: 560px;
  min-width: 360px;
  display: none;
  flex-direction: column;
  background: oklch(0.19 0.04 278.1);
  border-radius: 1rem;
  border: 1px solid var(--color-base-200);
  overflow: hidden;
  transition: all 0.3s ease;
}
.event-card.visible {
  display: flex;
}
.event-card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.event-details {
  display: flex;
  gap: 1rem;
}
.poster img {
  display: block;
  object-fit: fill;
  width: 300px;
  height: 300px;
}
.event-description {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.event-description h1 {
  margin: 0;
  font-size: 2rem;
  font-weight: bold;
}
.event-description p {
  font-size: 0.9rem;
  margin-top: 0.2rem;
}
.event-dates .title {
  margin: 0;
  padding: 1rem;
  text-align: center;
  background: var(--color-base-100);
}
.event-dates .dates {
  background-color: var(--color-base-200);
}
.event-dates .event-date {
  padding-top: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--color-fecha-content, --color-base-300);
  background-color: var(--color-fecha-base, --color-base-300);
  padding-bottom: 0.5rem;
}
.event-date.selected {
  --color-fecha-content: var(--color-base-300);
  --color-fecha-base: #fff;
}
.event-date h3 {
  margin: 0;
  font-size: 0.95rem;
  cursor: pointer;
  padding: 0.5rem;
  border-radius: var(--radio);
}
.event-date .schedules {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}
.schedules.expanded {
  max-height: 200px;
}
.schedules .schedule {
  padding: 0.5rem;
  text-align: center;
  border-radius: var(--radio);
  cursor: pointer;
  color: var(--color-horario-content, --color-base-300);
  background-color: var(--color-horario-base, --color-base-300);
}
.schedules .schedule:hover {
  background-color: var(--color-base-300);
  color: white;
}
.schedule.selected {
  --color-horario-base: var(--color-base-300);
  --color-horario-content: #fff;
}
.event-dates {
  display: none;
  transition: all 0.3s ease;
}
.visible {
  display: block;
}
.seats-selection-button {
  padding: 1rem;
  margin-top: 1rem;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  background-color: #1da851;
  color: #fff;
  display: none;
}
.seats-selection-button.visible {
  display: block;
}
.seats-selection-button:hover {
  transform: translateY(-2px);
}
.seats-selection-button:disabled {
  background-color: var(--gris);
  cursor: not-allowed;
  transform: none;
}

.backButton {
  width: 40px;
  height: 40px;
  display: none;
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 10;
  background-color: transparent;
  color: var(--texto);
  cursor: pointer;
  transition: all 0.3s ease;
  border-radius: 0.5rem;
}
.backButton.enabled {
  display: block;
}
.backButton:hover {
  background: var(--color-secondary);
}



.cart {
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  width: 100%;
  height: auto;
  max-height: 350px;
  align-items: center;
  border-radius: var(--border-radius, 1rem);
  margin: 4rem 0 0 0;
  overflow: hidden;
  justify-content: space-between;
}
.cart h3 {
  margin: 0;
  padding: 1rem 0;
  color: var(--color-activo);
  background-color: #03264c;
  width: 100%;
  text-align: center;
}
.asientos-seleccionados-fila {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  width: 100%;
  margin-left: 2rem;
  border-bottom: 1px solid #0000001f;
  padding-bottom: 0.5rem;
}

.lista-asientos {
  padding-top: 1rem;
  color: var(--color-base-300);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  height: 100%;
  overflow: auto;
}
.totales {
  width: 90%;
  height: 100px;
  background-color: #e7e7e7;
  border-radius: 1rem;
}
.totales.hide {
  display: none;
}
.gran-total,
.boletos-totales {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  color: oklch(0.38 0 0);
  font-size: 1.3rem;
  padding: 1rem;
}
.whatsapp-btn {
  margin: 1rem;
  padding: 1rem 0;
  font-size: 1rem;
  font-weight: bold;
  background-color: #1da851;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  width: 90%;
  text-align: center;
  border-radius: 1rem;
}
.whatsapp-btn:hover:not(.disabled) {
  transform: translateY(2px);
}
.whatsapp-btn.disabled {
  background-color: #1da8514a;
  cursor: not-allowed;
  transform: none;
}
.bubble {
  display: flex;
  flex-direction: row;
  justify-content: center;
  font-size: var(--seat-bubble-font-size, 0.6rem);
  color: var(--seat-bubble-color-content, #fff);
  background-color: var(--seat-bubble-color-base, #ff0000);
  transform: var(--seat-bubble-transform, translate(-18px, -11px));
  border-radius: var(--seat-border-radius, 1rem);
}
.bubble.center {
  --seat-bubble-transform: translate(0px, 0px);
  --seat-bubble-color-base: transparent;
}
.bubble.top {
  width: 15px;
  height: 15px;
  --seat-bubble-transform: translate(-18px, -11px);
  --seat-bubble-color-content: #fff;
}
footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width='24' height='20' viewBox='0 0 24 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18c0-1.105.887-2 1.998-2 1.104 0 2-.895 2.002-1.994V14v6h-4v-2zM0 13.998C0 12.895.888 12 2 12c1.105 0 2 .888 2 2 0 1.105.888 2 2 2 1.105 0 2 .888 2 2v2H0v-6.002zm16 4.004A1.994 1.994 0 0 1 14 20c-1.105 0-2-.887-2-1.998v-4.004A1.994 1.994 0 0 0 10 12c-1.105 0-2-.888-2-2 0-1.105-.888-2-2-2-1.105 0-2-.887-2-1.998V1.998A1.994 1.994 0 0 0 2 0a2 2 0 0 0-2 2V0h8v2c0 1.105.888 2 2 2 1.105 0 2 .888 2 2 0 1.105.888 2 2 2 1.105 0 2-.888 2-2 0-1.105.888-2 2-2 1.105 0 2-.888 2-2V0h4v6.002A1.994 1.994 0 0 1 22 8c-1.105 0-2 .888-2 2 0 1.105-.888 2-2 2-1.105 0-2 .887-2 1.998v4.004z' fill='%23dcdcdc' fill-opacity='0.18' fill-rule='evenodd'/%3E%3C/svg%3E");
}
header {
  display: flex;
  flex-direction: column;
  align-items: center;
}

header img {
  display: block;
  width: 150px;
  height: 90%;
}
.seat-legend {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
  pointer-events: none;
}
.seat-legend .icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--seat-font-size, 0.8rem);
  color: var(--seat-color-content, #6c6c6c);
  background-color: var(--seat-color-bg, transparent);
  width: var(--seat-size, calc(var(--size-field, --seat-padding) * 1));
  height: var(--seat-size, calc(var(--size-field, --seat-padding) * 1));
  padding: var(--seat-padding, 0.2rem);
  border: var(--seat-border, 1px solid var(--seat-color-border));
  border-radius: var(--seat-border-radius, 0.2rem);
  border-color: var(--seat-color-border, #48474778);
}
.seat-legend .icon::before {
  font-family: "Material Icons";
}
.seat-legend .icon.free {
  --seat-color-bg: #007bff;
}
.seat-legend .icon.occupied {
  --seat-color-border: #48474778;
}
.seat-legend .icon.selected {
  --seat-color-bg: yellow;
}
.seat-legend .icon.reserved {
  --seat-color-border: #6c6c6c;
  --seat-color-content: #d30a0a;
}
.seat-legend .icon.disabled {
  --seat-color-border: transparent;
  --seat-color-content: transparent;
  --seat-color-bg: #ffffff12;
}

.seat-legend .icon.occupied::before,
.seat-legend .icon.reserved::before {
  content: "person";
}
.seats-selection {
  display: none;
  flex-direction: row;
  align-items: flex-start;
  background-color: transparent;
}
.seats-selection.visible {
  display: flex;
}
.seats-map-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: auto;
  height: auto;
  padding: 1rem 2rem;
}
.seat-map-wrapper {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 1rem;
  user-select: none;
  overflow: hidden;
}
.seat-map-zoom-wrapper {
  width: 100%;
  max-width: 100%;
  width: auto;
  height: auto;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
.seat-map {
  display: flex;
  flex-direction: column;
  gap: 2px;
  transform-origin: top left;
}
.seat-map-row {
  display: flex;
  flex-direction: row;
  gap: 2px;
}
.aisle-row {
  display: flex;
  flex-direction: row;
  height: 21.5px;
}
.seat {
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--seat-size, calc(var(--size-field, --seat-padding) * 1));
  height: var(--seat-size, calc(var(--size-field, --seat-padding) * 1));
  font-size: var(--seat-font-size, 0.6rem);
  color: var(--seat-color-content, #6c6c6c);
  border: var(--seat-border, 1px) solid var(--seat-color-border, transparent);
  border-radius: var(--seat-border-radius, 0.2rem);
  background-color: var(--seat-color-bg, transparent);
  padding: var(--seat-padding, 0.2rem);
  cursor: pointer;
}
.seat-xs {
  --seat-font-size: 0.4rem;
  --seat-padding: 0.1rem;
  --seat-size: calc(var(--size-field, --seat-padding) * 0.4);
  --seat-border-radius: 0.1rem;
}
.seat-sm {
  --seat-font-size: 0.75rem;
  --seat-padding: 0.75rem;
  --seat-size: calc(var(--size-field, --seat-padding) * 0.4);
  --seat-border-radius: 0.75rem;
}
.seat-lg {
  --seat-font-size: 1.25rem;
  --seat-padding: 1rem;
  --seat-size: calc(var(--size-field, --seat-padding) * 0.4);
  --seat-border-radius: 1rem;
}
.seat::before {
  font-family: "Material Icons";
}
.seat.free {
  --seat-color-content: #fff;
  --seat-color-bg: #007bff;
  --seat-color-border: transparent;
}
.seat.free:hover {
  transform: scale(1.1);
}
.seat.selected {
  --seat-color-content: #000;
  --seat-color-bg: #f1c40f;
}
.seat.space,
.seat.occupied,
.seat.disabled,
.seat.reserved {
  --seat-font-size: 1.1rem;
  --seat-color-bg: transparent;
  pointer-events: none;
}
.seat.occupied::before,
.seat.reserved::before {
  content: "person";
}
.seat.reserved {
  --seat-color-content: #d30a0a;
  pointer-events: none;
}
.seat.disabled {
  --seat-color-bg: #ffffff12;
  --seat-font-size: 0;
}
.seat.disabled:before {
  content: "blocks";
}
.legends {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  width: 90%;
  user-select: none;
}
.rows-name-zoom-wrapper {
  max-width: 100%;
  width: auto;
  height: auto;
}
.rows-name {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 20px;
  gap: 2px;
  transform-origin: top;
  pointer-events: none;
}
.rows-name .seat {
  color: #fff;
  background-color: transparent;
}
.zoom-controls {
  display: flex;
  gap: 1rem;
  align-items: center;
  user-select: none;
}
.zoom-controls .button {
  display: flex;
  justify-content: center;
  height: 2rem;
  width: 2rem;
  border: none;
  border-radius: 50%;
  background-color: rgb(31, 75, 250);
  flex-direction: row;
  align-items: center;
  border-radius: 50%;
  cursor: pointer;
}
.button.disabled {
  background-color: rgb(128, 127, 129);
}
.button:hover:not(.disabled) {
  background-color: rgb(10, 44, 117);
}
.zoom-controls span {
  pointer-events: none;
}

@media (min-width: 1200px) {
  .event-card.expanded {
    min-width: 1200px;
    max-width: 90%;
    width: auto;
  }
  .event-card.expanded .poster img {
    height: 130px;
    width: 130px;
  }
  .event-card.expanded .informacion {
    box-shadow: rgba(0, 0, 0, 0.35) 0px -50px 36px -28px inset;
  }
  .event-card.expanded .seats-selection.visible {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
  }
}

/* Scrollbar global  */
*::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

*::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 5px;
}

*::-webkit-scrollbar-thumb {
  background: var(--color-acento);
  border-radius: 5px;
  border: 1px solid var(--color-principal);
  background-clip: padding-box;
  border-top: 40px solid transparent;
  border-bottom: 40px solid transparent;
}

*::-webkit-scrollbar-thumb:hover {
  background: #e63946;
}
