*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

a {
  text-decoration: none;
  color: inherit;
}

ul,
ol {
  list-style: none;
}

img {
  max-width: 100%;
  display: block;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 1rem;
  color: #333333;
  line-height: 1.6;
  background-color: #f5f7fa;
}

.main {
  flex: 1;
}

h1, h2, h3, h4 {
  color: #333333;
  line-height: 1.3;
  margin-bottom: 0.5rem;
}

h1 {
  font-size: 2rem;
}

h2 {
  font-size: 1.5rem;
}

h3 {
  font-size: 1.25rem;
}

p {
  margin-bottom: 1rem;
  color: #666666;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

noscript + * [data-reveal-target=item],
.no-js [data-reveal-target=item] {
  opacity: 1 !important;
  transform: none !important;
}

[data-reveal-target=item] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
[data-reveal-target=item].is-visible {
  opacity: 1;
  transform: translateY(0);
}

[data-reveal-target=item][data-reveal-delay="1"] {
  transition-delay: 0.12s;
}

[data-reveal-target=item][data-reveal-delay="2"] {
  transition-delay: 0.24s;
}

[data-reveal-target=item][data-reveal-delay="3"] {
  transition-delay: 0.36s;
}

[data-reveal-target=item][data-reveal-delay="4"] {
  transition-delay: 0.48s;
}

[data-reveal-target=item][data-reveal-delay="5"] {
  transition-delay: 0.6s;
}

[data-reveal-target=item][data-reveal-delay="6"] {
  transition-delay: 0.72s;
}

[data-reveal-target=item][data-reveal-delay="7"] {
  transition-delay: 0.84s;
}

[data-reveal-target=item][data-reveal-delay="8"] {
  transition-delay: 0.96s;
}

[data-reveal-target=item][data-reveal-direction=left] {
  opacity: 0;
  transform: translateX(-30px);
}
[data-reveal-target=item][data-reveal-direction=left].is-visible {
  opacity: 1;
  transform: translateX(0);
}

[data-reveal-target=item][data-reveal-direction=right] {
  opacity: 0;
  transform: translateX(30px);
}
[data-reveal-target=item][data-reveal-direction=right].is-visible {
  opacity: 1;
  transform: translateX(0);
}

[data-reveal-target=item][data-reveal-direction=scale] {
  opacity: 0;
  transform: scale(0.9);
}
[data-reveal-target=item][data-reveal-direction=scale].is-visible {
  opacity: 1;
  transform: scale(1);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.5rem 1.5rem;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  border: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.btn--primary {
  background-color: #2B579A;
  color: #ffffff;
}
.btn--primary:hover {
  background-color: #1e3f6f;
}
.btn--outline {
  border: 1px solid #e0e0e0;
  color: #333333;
  background-color: #ffffff;
}
.btn--outline:hover {
  background-color: #f5f7fa;
}
.btn--accent {
  background-color: #e8eff7;
  color: #2B579A;
  border: 1px solid #2B579A;
}
.btn--accent:hover {
  background-color: #d5e2f0;
}
.btn--danger {
  background-color: #dc3545;
  color: #ffffff;
}
.btn--danger:hover {
  background-color: #bd2130;
}
.btn--success {
  background-color: rgba(40, 167, 69, 0.1);
  color: #1e7e34;
  border: 1px solid rgba(40, 167, 69, 0.3);
}
.btn--success:hover {
  background-color: rgba(40, 167, 69, 0.2);
  border-color: rgba(40, 167, 69, 0.5);
  color: #19692c;
}
.btn--block {
  width: 100%;
}
.btn--lg {
  padding: 1rem 2rem;
  font-size: 1rem;
}
.btn--sm {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
}

.auth-page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 2rem 1rem;
  background: linear-gradient(160deg, #2B579A 0%, #1e3f6f 100%);
}

.btn--google {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  background: #fff;
  color: #3c4043;
  border: 1px solid #dadce0;
  font-weight: 500;
}
.btn--google:hover {
  background: #f8f9fa;
  border-color: #c6c6c6;
}

.form__divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.25rem 0;
  color: #999;
  font-size: 0.85rem;
}
.form__divider::before, .form__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e5e7eb;
}

.form {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  width: 100%;
  padding: 3rem;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
}
@media (min-width: 1024px) {
  .form {
    min-width: 540px;
  }
}
.form__brand {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 700;
  color: #2B579A;
  margin-bottom: 0.5rem;
  letter-spacing: -0.5px;
}
.form__title {
  font-size: 1.125rem;
  font-weight: 500;
  color: #666666;
  margin-bottom: 2rem;
  text-align: center;
}
.form__group {
  margin-bottom: 1rem;
}
.form__group--checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.form__label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #2B579A;
}
.form__label--checkbox {
  font-size: 0.875rem;
  color: #333333;
  cursor: pointer;
}
.form__input {
  width: 100%;
  padding: 0.5rem 1rem;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  font-size: 1rem;
  font-family: "Plus Jakarta Sans", sans-serif;
  transition: border-color 0.2s ease;
}
.form__input:focus {
  outline: none;
  border-color: #4472C4;
}
.form__input--error {
  border-color: #dc3545;
}
.form__checkbox {
  width: auto;
  cursor: pointer;
}
.form__error {
  color: #dc3545;
  font-size: 0.875rem;
  margin-top: 0.25rem;
}
.form__alert {
  padding: 0.5rem 1rem;
  border-radius: 6px;
  margin-bottom: 1rem;
  font-size: 0.875rem;
}
.form__alert--danger {
  background-color: #f6cdd1;
  color: #dc3545;
  border: 1px solid #efa2a9;
}
.form__footer {
  margin-top: 1.5rem;
  text-align: center;
  font-size: 0.875rem;
  color: #666666;
}
.form__footer a {
  color: #2B579A;
}
.form__footer a:hover {
  text-decoration: underline;
}

.disponibilidad__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.disponibilidad__toolbar-izq {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.disponibilidad__toolbar-izq h2 {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  color: #1a1a2e;
}

.disponibilidad__toolbar-der {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.disponibilidad__volver {
  font-size: 0.85rem;
  color: #666;
  text-decoration: none;
  padding: 0.3rem 0.6rem;
  border-radius: 6px;
  transition: background 0.15s;
}
.disponibilidad__volver:hover {
  background: #f0f0f5;
  color: #333;
}

.badge {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.badge--info {
  background: #e0edff;
  color: #2563eb;
}
.badge--neutral {
  background: #f0f0f5;
  color: #666;
}

.btn-dash {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.9rem;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s;
  white-space: nowrap;
}
.btn-dash--guardar {
  background: #1a1a2e;
  color: #fff;
}
.btn-dash--guardar:hover {
  background: #2d2d44;
}
.btn-dash--aplicar {
  background: #2563eb;
  color: #fff;
}
.btn-dash--aplicar:hover {
  background: #1d4ed8;
}
.btn-dash--config {
  background: #f0f0f5;
  color: #333;
}
.btn-dash--config:hover {
  background: #e2e2ea;
}
.btn-dash--nav {
  background: #f0f0f5;
  color: #333;
  padding: 0.4rem 0.7rem;
  font-size: 1rem;
}
.btn-dash--nav:hover {
  background: #e2e2ea;
}

.select-dash {
  padding: 0.45rem 0.6rem;
  border: 2px solid #e2e2ea;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 500;
  color: #333;
  background: #fff;
  cursor: pointer;
}
.select-dash:focus {
  outline: none;
  border-color: #2563eb;
}

.disponibilidad__semana-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.disponibilidad__semana-label {
  font-size: 0.95rem;
  font-weight: 600;
  color: #333;
  min-width: 180px;
  text-align: center;
}

.disponibilidad__generar-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

@media (max-width: 768px) {
  .disponibilidad__toolbar {
    flex-direction: column;
    align-items: flex-start;
  }
  .disponibilidad__toolbar-der {
    flex-wrap: wrap;
    width: 100%;
  }
  .disponibilidad__generar-inline {
    flex-wrap: wrap;
    width: 100%;
  }
  .disponibilidad__generar-inline .select-dash {
    flex: 1;
    min-width: 0;
  }
  .disponibilidad__generar-inline .btn-dash--aplicar {
    width: 100%;
    justify-content: center;
  }
}
.disponibilidad__hint {
  color: #888;
  font-size: 0.8rem;
  margin-bottom: 1rem;
  padding-left: 0.25rem;
}

.disponibilidad__grid {
  overflow-x: auto;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  padding: 0.5rem;
}

.calendario__ocupado-badge {
  display: block;
  color: #fff;
  font-size: 0.75rem;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0 4px;
}

.calendario {
  width: 100%;
  border-collapse: separate;
  border-spacing: 3px;
  user-select: none;
}
.calendario__dia-header {
  text-align: center;
  padding: 0.6rem 0.25rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #1a1a2e;
  min-width: 80px;
}
.calendario__dia-header span {
  font-weight: 500;
  color: #999;
  font-size: 0.75rem;
}
.calendario__hora-col {
  width: 55px;
}
.calendario__hora {
  font-size: 0.75rem;
  color: #999;
  text-align: right;
  padding-right: 0.5rem;
  vertical-align: middle;
  font-weight: 500;
}
.calendario__celda {
  background: #f5f5fa;
  height: 38px;
  cursor: pointer;
  border-radius: 6px;
  transition: all 0.12s;
  position: relative;
}
.calendario__celda:hover {
  background: #e8e8f0;
  transform: scale(1.02);
}
.calendario__celda--activa {
  background: #2563eb;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.3);
}
.calendario__celda--activa:hover {
  background: #1d4ed8;
}
.calendario__celda--seleccionando {
  background: #93bbfd;
}
.calendario__celda--pasado {
  background: #ebebeb;
  cursor: default;
  opacity: 0.5;
}
.calendario__celda--pasado:hover {
  background: #ebebeb;
  transform: none;
}
.calendario__celda--pasado.calendario__celda--activa {
  background: #b0b8c9;
  box-shadow: none;
  opacity: 0.6;
}
.calendario__celda--pendiente {
  background: #d97706;
  box-shadow: 0 2px 6px rgba(217, 119, 6, 0.35);
}
.calendario__celda--pendiente:hover {
  background: #b45309;
}
.calendario__celda--confirmada {
  background: #0369a1;
  box-shadow: 0 2px 6px rgba(3, 105, 161, 0.35);
}
.calendario__celda--confirmada:hover {
  background: #075985;
}
.calendario__reserva-badge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 600;
  color: #fff;
  padding: 0 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#toast-contenedor {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.toast {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  font-size: 0.85rem;
  font-weight: 500;
  color: #fff;
  transform: translateX(120%);
  transition: transform 0.3s ease;
  max-width: 360px;
}
.toast--visible {
  transform: translateX(0);
}
.toast--exito {
  background: #16a34a;
}
.toast--error {
  background: #dc2626;
}
.toast--info {
  background: #2563eb;
}
.toast__mensaje {
  flex: 1;
}
.toast__cerrar {
  background: none;
  border: none;
  color: #fff;
  font-size: 1.2rem;
  cursor: pointer;
  opacity: 0.7;
  padding: 0;
  line-height: 1;
}
.toast__cerrar:hover {
  opacity: 1;
}

.admin {
  display: flex;
  min-height: 100vh;
  background: #f5f6fa;
}
.admin__sidebar {
  width: 220px;
  min-height: 100vh;
  background: #fff;
  border-right: 1px solid #e0e0e0;
  padding: 2rem 1rem;
  flex-shrink: 0;
}
.admin__nav {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.admin__nav-item {
  display: block;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  color: #666666;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}
.admin__nav-item:hover {
  background: #cad9f0;
  color: #2B579A;
}
.admin__nav-item--active {
  background: #bed0ed;
  color: #2B579A;
  font-weight: 700;
}
.admin__content {
  flex: 1;
  padding: 2rem;
  overflow-y: auto;
}
@media (max-width: 768px) {
  .admin {
    flex-direction: column;
  }
  .admin__sidebar {
    width: 100%;
    min-height: auto;
    border-right: none;
    border-bottom: 1px solid #e0e0e0;
    padding: 1rem;
  }
}

.admin-section {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  padding: 2rem;
}
.admin-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2rem;
}
.admin-section__header h2 {
  font-size: 1.125rem;
  font-weight: 700;
  color: #2B579A;
  margin: 0;
}

.admin-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.admin-table thead tr {
  border-bottom: 2px solid #e0e0e0;
}
.admin-table th {
  padding: 0.5rem 1rem;
  text-align: left;
  font-weight: 700;
  color: #666666;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.admin-table td {
  padding: 0.5rem 1rem;
  color: #333333;
  border-bottom: 1px solid #e0e0e0;
  vertical-align: middle;
}
.admin-table tbody tr:last-child td {
  border-bottom: none;
}
.admin-table tbody tr:hover td {
  background: #f9fafb;
}
.admin-table__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.admin-table__empty {
  text-align: center;
  color: #666666;
  padding: 2rem !important;
}

.badge {
  display: inline-block;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.badge--success {
  background: #c1f7d5;
  color: #16a34a;
}
.badge--muted {
  background: #f3f4f6;
  color: #666666;
}

.admin-form {
  max-width: 540px;
}
.admin-form .form__group,
.admin-form div {
  margin-bottom: 1rem;
}
.admin-form label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #2B579A;
}
.admin-form input[type=text],
.admin-form input[type=number],
.admin-form input[type=email] {
  width: 100%;
  padding: 0.5rem 1rem;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  font-size: 1rem;
  font-family: "Plus Jakarta Sans", sans-serif;
  transition: border-color 0.2s ease;
}
.admin-form input[type=text]:focus,
.admin-form input[type=number]:focus,
.admin-form input[type=email]:focus {
  outline: none;
  border-color: #4472C4;
}
.admin-form input[type=checkbox] {
  width: 16px;
  height: 16px;
  accent-color: #2B579A;
  cursor: pointer;
}
.admin-form__actions {
  margin-top: 1.5rem;
  display: flex;
  gap: 0.5rem;
}

.btn--sm {
  padding: 0.3rem 0.75rem;
  font-size: 0.78rem;
}

.btn--danger {
  background: #dc3545;
  color: #fff;
  border: none;
  cursor: pointer;
}
.btn--danger:hover {
  background: #c62232;
}

.chat {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 160px);
}
.chat__mensajes {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1rem 0;
  margin-bottom: 1rem;
}
.chat__burbuja {
  max-width: 70%;
  padding: 0.5rem 1rem;
  border-radius: 18px;
  font-size: 0.875rem;
  line-height: 1.5;
}
.chat__burbuja p {
  margin: 0;
}
.chat__burbuja--propia {
  align-self: flex-end;
  background: #2B579A;
  color: #fff;
  border-bottom-right-radius: 4px;
}
.chat__burbuja--ajena {
  align-self: flex-start;
  background: #f0f2f5;
  color: #333333;
  border-bottom-left-radius: 4px;
}
.chat__hora {
  display: block;
  font-size: 0.7rem;
  margin-top: 0.25rem;
  opacity: 0.65;
  text-align: right;
}
.chat__form {
  display: flex;
  gap: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid #e0e0e0;
}
.chat__form input {
  flex: 1;
}
.chat__input {
  width: 100%;
  padding: 0.5rem 1rem;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  font-size: 1rem;
  font-family: "Plus Jakarta Sans", sans-serif;
}
.chat__input:focus {
  outline: none;
  border-color: #4472C4;
}
.chat__vacio {
  text-align: center;
  color: #666666;
  margin: auto;
}
.chat__lista {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.chat__lista-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  border: 1px solid #e0e0e0;
  text-decoration: none;
  color: #333333;
  transition: background 0.2s ease;
}
.chat__lista-item:hover {
  background: #f9fafb;
}
.chat__lista-nombre {
  font-weight: 500;
}

.navbar {
  background-color: #ffffff;
  border-bottom: 1px solid #e0e0e0;
  padding: 0 1.5rem;
}
.navbar__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}
.navbar__logo {
  font-size: 1.4rem;
  font-weight: bold;
  color: #2B579A;
  flex-shrink: 0;
}
.navbar__toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  color: #333333;
  padding: 0.25rem;
}
.navbar__toggle-close {
  display: none;
}
.navbar.is-open .navbar__toggle-open {
  display: none;
}
.navbar.is-open .navbar__toggle-close {
  display: block;
}
.navbar__menu {
  display: flex;
  align-items: center;
  flex: 1;
  margin-left: 2rem;
}
.navbar__nav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-right: auto;
}
.navbar__link {
  color: #333333;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.875rem;
  transition: color 0.2s ease;
}
.navbar__link:hover {
  color: #2B579A;
}
.navbar__locale {
  display: flex;
  align-items: center;
  gap: 0;
  margin-left: 1rem;
  border: 1.5px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.navbar__locale form {
  margin: 0;
  display: flex;
}
.navbar__locale-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: none;
  border: none;
  padding: 0.35rem 0.65rem;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 600;
  color: #666666;
  transition: all 0.2s;
  white-space: nowrap;
}
.navbar__locale-btn:hover {
  background: rgba(43, 87, 154, 0.06);
  color: #2B579A;
}
.navbar__locale-btn--active {
  background: #e8eff7;
  color: #2B579A;
  cursor: default;
}
.navbar__locale-btn--active:hover {
  background: #e8eff7;
  color: #2B579A;
}
.navbar__locale-flag {
  display: block;
  flex-shrink: 0;
}
.navbar__session {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.navbar__user {
  color: #666666;
  font-size: 0.875rem;
}
.navbar__user-name {
  color: #2B579A;
  font-weight: 600;
}
.navbar__action {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #333333;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.875rem;
  padding: 0.45rem 0.85rem;
  border-radius: 8px;
  transition: all 0.2s;
  white-space: nowrap;
  background: none;
  border: 1.5px solid #e0e0e0;
}
.navbar__action svg {
  flex-shrink: 0;
  opacity: 0.7;
  transition: opacity 0.2s;
}
.navbar__action:hover {
  border-color: #2B579A;
  color: #2B579A;
  background: rgba(43, 87, 154, 0.04);
}
.navbar__action:hover svg {
  opacity: 1;
}
.navbar__action--accent {
  background: #e8eff7;
  color: #2B579A;
  border-color: #2B579A;
}
.navbar__action--accent svg {
  opacity: 1;
}
.navbar__action--accent:hover {
  background: #d5e2f0;
  border-color: #2B579A;
  color: #2B579A;
}
.navbar__action--salir {
  border-color: rgba(220, 38, 38, 0.25);
  color: #b91c1c;
  background: rgba(220, 38, 38, 0.06);
}
.navbar__action--salir svg {
  opacity: 0.85;
}
.navbar__action--salir:hover {
  border-color: rgba(220, 38, 38, 0.5);
  color: #dc2626;
  background: rgba(220, 38, 38, 0.12);
}
.navbar__action--salir:hover svg {
  opacity: 1;
}
@media (max-width: 1024px) {
  .navbar__container {
    padding: 0 1rem;
  }
  .navbar__toggle {
    display: flex;
  }
  .navbar__menu {
    display: none;
    position: absolute;
    top: 64px;
    left: 0;
    right: 0;
    background: #ffffff;
    border-bottom: 1px solid #e0e0e0;
    flex-direction: column;
    padding: 1.5rem;
    gap: 1rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    z-index: 100;
    margin-left: 0;
  }
  .navbar.is-open .navbar__menu {
    display: flex;
  }
  .navbar__nav {
    flex-direction: column;
    width: 100%;
    gap: 0;
    margin-right: 0;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 1rem;
  }
  .navbar__link {
    padding: 0.5rem 0;
    width: 100%;
  }
  .navbar__locale {
    margin-left: 0;
    justify-content: center;
  }
  .navbar__session {
    flex-direction: column;
    width: 100%;
    gap: 0.5rem;
  }
  .navbar__user {
    padding: 0.5rem 0;
  }
  .navbar__action {
    width: 100%;
    justify-content: center;
  }
}

.footer {
  background: #1e3f6f;
  padding: 3rem 1.5rem 1.5rem;
  margin-top: auto;
}
.footer__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
}
.footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
@media (max-width: 768px) {
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    text-align: center;
  }
}
.footer__logo {
  font-size: 1.3rem;
  font-weight: 800;
  color: #ffffff;
  display: block;
  margin-bottom: 0.5rem;
}
.footer__descripcion {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.6;
  max-width: 300px;
}
@media (max-width: 768px) {
  .footer__descripcion {
    max-width: 100%;
  }
}
.footer__col-titulo {
  font-size: 0.875rem;
  font-weight: 700;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}
.footer__links {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer__links li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.65);
}
@media (max-width: 768px) {
  .footer__links li {
    justify-content: center;
  }
}
.footer__links a {
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  transition: color 0.2s ease;
}
.footer__links a:hover {
  color: #ffffff;
}
.footer__links svg {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.45);
}
.footer__bottom {
  padding-top: 1.5rem;
  text-align: center;
}
.footer__bottom p {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.45);
}

.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.footer__bottom-legal {
  font-size: 0.85rem;
}
.footer__bottom-legal a {
  color: inherit;
  opacity: 0.7;
}
.footer__bottom-legal a:hover {
  opacity: 1;
}

.admin {
  display: flex;
  min-height: calc(100vh - 64px - 57px);
  margin: 0 auto;
  width: 100%;
}
.admin__sidebar {
  width: 240px;
  background-color: #ffffff;
  border-right: 1px solid #e0e0e0;
  padding: 1.5rem 0;
  flex-shrink: 0;
}
.admin__nav {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.admin__nav-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.5rem;
  color: #666666;
  font-size: 0.875rem;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.admin__nav-item:hover {
  background-color: #e8eff7;
  color: #2B579A;
}
.admin__nav-item--active {
  background-color: #e8eff7;
  color: #2B579A;
  font-weight: 600;
  border-right: 3px solid #2B579A;
}
.admin__content {
  flex: 1;
  padding: 2rem;
}
.admin-reservas__titulo {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}
.admin-reservas__filtros {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1.5rem;
}
.admin-reservas__filtro {
  padding: 0.25rem 1rem;
  border-radius: 20px;
  font-size: 0.875rem;
  color: #666666;
  border: 1px solid #e0e0e0;
  transition: all 0.2s ease;
}
.admin-reservas__filtro:hover {
  border-color: #2B579A;
  color: #2B579A;
}
.admin-reservas__filtro--active {
  background-color: #2B579A;
  color: #ffffff;
  border-color: #2B579A;
}
.admin-reservas__filtro--active:hover {
  background-color: #1e3f6f;
  color: #ffffff;
}
.admin-reservas__lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.admin-reservas__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
}
.admin-reservas__item--solicitud {
  border-left: 3px solid #7b1fa2;
}
.admin-reservas__item--cancelacion {
  border-left: 3px solid #e65100;
}
.admin-reservas__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.admin-reservas__fecha-hora {
  display: flex;
  gap: 1rem;
  font-weight: 500;
}
.admin-reservas__fecha {
  color: #333333;
}
.admin-reservas__hora {
  color: #666666;
}
.admin-reservas__alumno {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  color: #666666;
}
.admin-reservas__alumno svg {
  flex-shrink: 0;
}
.admin-reservas__nota {
  font-size: 0.875rem;
  color: #666666;
}
.admin-reservas__badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}
.admin-reservas__tipo, .admin-reservas__estado {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 10px;
  white-space: nowrap;
}
.admin-reservas__tipo--individual {
  background-color: #e8eff7;
  color: #2B579A;
}
.admin-reservas__tipo--duo, .admin-reservas__tipo--solicitud_duo {
  background-color: #f3e5f5;
  color: #7b1fa2;
}
.admin-reservas__tipo--abierto_duo {
  background-color: #f3e5f5;
  color: #7b1fa2;
}
.admin-reservas__estado--pendiente {
  background-color: #fff3e0;
  color: #e65100;
}
.admin-reservas__estado--confirmada {
  background-color: #e8f5e9;
  color: #2e7d32;
}
.admin-reservas__estado--cancelada {
  background-color: #fce4ec;
  color: #dc3545;
}
.admin-reservas__estado--rechazada {
  background-color: #fce4ec;
  color: #dc3545;
}
.admin-reservas__estado--cancelacion_pendiente {
  background-color: #fff3e0;
  color: #e65100;
}
.admin-reservas__acciones {
  display: flex;
  gap: 0.25rem;
}
.admin-reservas__vacio {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem;
  color: #666666;
}
.admin-reservas__vacio p {
  font-size: 1.125rem;
}
@media (max-width: 768px) {
  .admin {
    flex-direction: column;
  }
  .admin__sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #e0e0e0;
    padding: 1rem 0;
  }
  .admin__nav {
    flex-direction: row;
    overflow-x: auto;
    gap: 0;
  }
  .admin__nav-item {
    white-space: nowrap;
    border-right: none;
  }
  .admin__nav-item--active {
    border-right: none;
    border-bottom: 3px solid #2B579A;
  }
}

.home__hero {
  text-align: center;
  padding: 3rem 0;
}
.home__hero h1 {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  color: #2B579A;
}
.home__hero p {
  font-size: 1.125rem;
  max-width: 600px;
  margin: 0 auto 2rem;
}

.testimonios {
  padding: 3rem 0;
  background-color: #1e3f6f;
}
.testimonios__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
}
.testimonios__header {
  text-align: center;
  margin-bottom: 2rem;
}
.testimonios__titulo {
  font-size: 1.8rem;
  color: #ffffff;
  margin-bottom: 0.5rem;
}
.testimonios__rating-global {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.testimonios__estrellas {
  display: flex;
  gap: 2px;
}
.testimonios__nota {
  font-size: 1.125rem;
  font-weight: 700;
  color: #ffffff;
}
.testimonios__cantidad {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.7);
}
.testimonios__carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.testimonios__track-wrapper {
  overflow: hidden;
  flex: 1;
  border-radius: 12px;
}
.testimonios__track {
  display: flex;
  transition: transform 0.5s ease;
  align-items: flex-start;
}
.testimonios__flecha {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
.testimonios__flecha:hover {
  background: #ffffff;
  border-color: #ffffff;
  color: #1e3f6f;
}
@media (max-width: 768px) {
  .testimonios__flecha {
    display: none;
  }
}
.testimonios__card {
  flex: 0 0 33.3333333333%;
  min-width: 0;
  padding: 1.5rem;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .testimonios__card {
    flex: 0 0 100%;
  }
}
.testimonios__card-inner {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  height: 100%;
  min-height: 320px;
  gap: 1rem;
  position: relative;
}
.testimonios__card-inner:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.testimonios__card-estrellas {
  display: flex;
  gap: 2px;
}
.testimonios__card-texto {
  font-size: 1rem;
  color: #666666;
  line-height: 1.6;
  flex: 1;
  font-style: italic;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.testimonios__card-texto.is-expanded {
  -webkit-line-clamp: unset;
  overflow: visible;
}
.testimonios__card-toggle {
  background: none;
  border: none;
  color: #2B579A;
  font-size: 0.875rem;
  cursor: pointer;
  padding: 0;
  margin-top: 0.25rem;
  font-weight: 600;
}
.testimonios__card-toggle:hover {
  text-decoration: underline;
}
.testimonios__card-autor {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.testimonios__card-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #2B579A;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.875rem;
  flex-shrink: 0;
}
.testimonios__card-nombre {
  font-size: 0.875rem;
  font-weight: 600;
  color: #333333;
}
.testimonios__card-google {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  opacity: 0.4;
  transition: opacity 0.2s ease;
}
.testimonios__card:hover .testimonios__card-google {
  opacity: 1;
}
.testimonios__footer {
  text-align: center;
  margin-top: 2rem;
}
.testimonios__google-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  font-size: 0.875rem;
  padding: 0.5rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 6px;
  transition: all 0.2s ease;
}
.testimonios__google-link:hover {
  border-color: #ffffff;
  color: #ffffff;
}

.ventajas {
  padding: 3rem 0;
  background: #f5f7fa;
}
.ventajas__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
}
.ventajas__header {
  text-align: center;
  margin-bottom: 3rem;
}
.ventajas__badge {
  display: inline-block;
  padding: 0.4rem 1rem;
  background: #e8eff7;
  color: #2B579A;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 20px;
  letter-spacing: 0.02em;
  margin-bottom: 1rem;
}
.ventajas__titulo {
  font-size: 1.8rem;
  color: #333333;
  margin-bottom: 0.5rem;
}
.ventajas__subtitulo {
  font-size: 1.125rem;
  color: #666666;
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.6;
}
.ventajas__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
@media (max-width: 768px) {
  .ventajas__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    max-width: 480px;
    margin: 0 auto;
  }
}
.ventajas__card {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-align: center;
  padding: 2rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  position: relative;
  overflow: hidden;
}
.ventajas__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.ventajas__card--goblin::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 50%;
  background-image: var(--goblin);
  background-repeat: no-repeat;
  background-position: top right;
  background-size: auto 100%;
  opacity: 0.18;
  pointer-events: none;
}
.ventajas__card-icono {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5rem;
}
.ventajas__card-icono--clases {
  background: rgba(43, 87, 154, 0.1);
  color: #2B579A;
}
.ventajas__card-icono--recursos {
  background: rgba(40, 167, 69, 0.1);
  color: #28a745;
}
.ventajas__card-icono--horarios {
  background: rgba(68, 114, 196, 0.1);
  color: #4472C4;
}
.ventajas__card-titulo {
  font-size: 1.15rem;
  font-weight: 700;
  color: #333333;
}
.ventajas__card-texto {
  font-size: 1rem;
  color: #666666;
  line-height: 1.6;
}

.credenciales {
  padding: 3rem 0;
  background: #f5f7fa;
}
.credenciales__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
}
.credenciales__header {
  text-align: center;
  margin-bottom: 3rem;
}
.credenciales__badge {
  display: inline-block;
  padding: 0.4rem 1rem;
  background: #e8eff7;
  color: #2B579A;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 20px;
  letter-spacing: 0.02em;
  margin-bottom: 1rem;
}
.credenciales__titulo {
  font-size: 1.8rem;
  color: #333333;
  margin-bottom: 0.5rem;
}
.credenciales__subtitulo {
  font-size: 1.125rem;
  color: #666666;
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.6;
}
.credenciales__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media (max-width: 576px) {
  .credenciales__grid {
    grid-template-columns: 1fr;
  }
}
.credenciales__card {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.5rem 2rem;
}
.credenciales__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.credenciales__card-icono {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.credenciales__card-icono--graduacion {
  background: rgba(43, 87, 154, 0.1);
  color: #2B579A;
}
.credenciales__card-icono--idioma {
  background: rgba(40, 167, 69, 0.1);
  color: #28a745;
}
.credenciales__card-icono--ensenanza {
  background: rgba(68, 114, 196, 0.1);
  color: #4472C4;
}
.credenciales__card-icono--experiencia {
  background: rgba(255, 193, 7, 0.15);
  color: #ba8b00;
}
.credenciales__card-info {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.credenciales__card-titulo {
  font-size: 1rem;
  font-weight: 700;
  color: #333333;
}
.credenciales__card-entidad {
  font-size: 0.875rem;
  color: #666666;
}

.prueba {
  padding: 3rem 0;
  background: #2B579A;
}
.prueba__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 3rem;
}
@media (max-width: 768px) {
  .prueba__container {
    flex-direction: column;
    text-align: center;
  }
}
.prueba__icono {
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
}
@media (max-width: 768px) {
  .prueba__icono {
    width: 96px;
    height: 96px;
  }
  .prueba__icono svg {
    width: 60px;
    height: 60px;
  }
}
.prueba__contenido {
  flex: 1;
}
.prueba__titulo {
  font-size: 1.8rem;
  color: #ffffff;
  margin-bottom: 0.5rem;
}
@media (max-width: 576px) {
  .prueba__titulo {
    font-size: 1.4rem;
  }
}
.prueba__texto {
  font-size: 1.125rem;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
  margin-bottom: 2rem;
  max-width: 520px;
}
@media (max-width: 768px) {
  .prueba__texto {
    margin-left: auto;
    margin-right: auto;
  }
}
.prueba__acciones {
  display: flex;
  align-items: center;
  gap: 1rem;
}
@media (max-width: 768px) {
  .prueba__acciones {
    justify-content: center;
  }
}
@media (max-width: 576px) {
  .prueba__acciones {
    flex-direction: column;
  }
}
.prueba__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.85rem 2rem;
  background: #ffffff;
  color: #2B579A;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.2s;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}
.prueba__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}
.prueba__cta-sec {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  transition: color 0.2s;
}
.prueba__cta-sec:hover {
  color: #ffffff;
}

.faq {
  padding: 3rem 0;
  background: #e8eff7;
}
.faq__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
  max-width: 760px;
}
.faq__header {
  text-align: center;
  margin-bottom: 2rem;
}
.faq__badge {
  display: inline-block;
  padding: 0.35rem 1rem;
  background: #ffffff;
  color: #2B579A;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 20px;
  letter-spacing: 0.02em;
  margin-bottom: 1rem;
}
.faq__titulo {
  font-size: 1.8rem;
  color: #333333;
}
.faq__lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.faq__item {
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.faq__item.is-open {
  border-color: rgba(43, 87, 154, 0.3);
  box-shadow: 0 2px 12px rgba(43, 87, 154, 0.08);
}
.faq__item.is-open .faq__icono {
  transform: rotate(180deg);
}
.faq__item.is-open .faq__pregunta {
  color: #2B579A;
}
.faq__pregunta {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 2rem;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 600;
  color: #333333;
  text-align: left;
  transition: color 0.2s;
}
.faq__pregunta:hover {
  color: #2B579A;
}
.faq__icono {
  flex-shrink: 0;
  transition: transform 0.3s ease;
  color: #2B579A;
}
.faq__respuesta {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.faq__respuesta p {
  padding: 0 2rem 1.5rem;
  font-size: 0.95rem;
  line-height: 1.7;
  color: #666666;
}

.hero {
  display: flex;
  height: calc(100vh - 64px);
  overflow: hidden;
  background: #f5f7fa;
}
.hero__imagen {
  position: relative;
  width: 55%;
  flex-shrink: 0;
}
.hero__imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero__imagen::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  background: linear-gradient(to right, transparent, #f5f7fa);
}
.hero__contenido {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem 4rem 3rem 2rem;
  max-width: 740px;
}
.hero__badge {
  display: inline-block;
  width: fit-content;
  padding: 0.4rem 1rem;
  background: #e8eff7;
  color: #2B579A;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 20px;
  letter-spacing: 0.02em;
  margin-bottom: 1.5rem;
}
.hero__titulo {
  font-size: 3rem;
  font-weight: 400;
  line-height: 1.15;
  color: #333333;
  margin-bottom: 1.5rem;
}
.hero__titulo strong {
  color: #2B579A;
  font-weight: 800;
}
.hero__subtitulo {
  font-size: 1.1rem;
  line-height: 1.6;
  color: #666666;
  margin-bottom: 2rem;
}
.hero__highlights {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.hero__highlight {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #666666;
  font-size: 0.9rem;
  font-weight: 500;
}
.hero__highlight svg {
  color: #2B579A;
  flex-shrink: 0;
}
.hero__acciones {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.hero__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.85rem 2rem;
  background: #2B579A;
  color: #ffffff;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.2s;
  box-shadow: 0 4px 14px rgba(43, 87, 154, 0.3);
}
.hero__cta:hover {
  background: #1e3f6f;
  box-shadow: 0 6px 20px rgba(43, 87, 154, 0.4);
  transform: translateY(-1px);
}
.hero__cta-sec {
  color: #666666;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  transition: color 0.2s;
}
.hero__cta-sec:hover {
  color: #2B579A;
}
@media (max-width: 1024px) {
  .hero {
    flex-direction: column;
    height: auto;
    min-height: calc(100vh - 64px);
  }
  .hero__imagen {
    width: 100%;
    height: 50vh;
  }
  .hero__imagen::after {
    top: auto;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40%;
    background: linear-gradient(to bottom, transparent, #f5f7fa);
  }
  .hero__contenido {
    padding: 2rem;
    max-width: 100%;
    text-align: center;
    align-items: center;
  }
  .hero__highlights {
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
  }
  .hero__titulo {
    font-size: 2.2rem;
  }
  .hero__acciones {
    justify-content: center;
  }
}
@media (max-width: 576px) {
  .hero__titulo {
    font-size: 1.8rem;
  }
  .hero__subtitulo {
    font-size: 1rem;
  }
  .hero__cta {
    padding: 0.75rem 1.5rem;
    font-size: 0.9rem;
  }
}

.contacto {
  min-height: calc(100vh - 64px);
  display: flex;
  align-items: center;
  background: #f5f7fa;
  padding: 3rem 0;
}
.contacto__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
@media (max-width: 768px) {
  .contacto__container {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}
.contacto__titulo {
  font-size: 2.4rem;
  color: #333333;
  margin-bottom: 1rem;
}
@media (max-width: 576px) {
  .contacto__titulo {
    font-size: 1.8rem;
  }
}
.contacto__subtitulo {
  font-size: 1.125rem;
  color: #666666;
  line-height: 1.6;
  margin-bottom: 2rem;
}
.contacto__detalles {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.contacto__detalle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #333333;
  font-size: 1rem;
}
.contacto__detalle svg {
  color: #2B579A;
  flex-shrink: 0;
}
.contacto__form-wrapper {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  padding: 2rem;
  border-radius: 12px;
}
.contacto__flash {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem;
  background: rgba(40, 167, 69, 0.08);
  border: 1px solid rgba(40, 167, 69, 0.2);
  border-radius: 6px;
  color: #28a745;
  font-weight: 500;
  margin-bottom: 1.5rem;
}
.contacto__form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.contacto__campo {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.contacto__campo label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #333333;
}
.contacto__campo .error {
  font-size: 0.875rem;
  color: #dc3545;
}
.contacto__input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1.5px solid #e0e0e0;
  border-radius: 6px;
  font-size: 1rem;
  font-family: "Plus Jakarta Sans", sans-serif;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  background: #ffffff;
  box-sizing: border-box;
}
.contacto__input:focus {
  outline: none;
  border-color: #2B579A;
  box-shadow: 0 0 0 3px rgba(43, 87, 154, 0.1);
}
.contacto__input::placeholder {
  color: #c7c7c7;
}
.contacto__input--textarea {
  resize: vertical;
  min-height: 140px;
}
.contacto__whatsapp-divider {
  text-align: center;
  margin: 1.5rem 0;
  position: relative;
}
.contacto__whatsapp-divider::before, .contacto__whatsapp-divider::after {
  content: "";
  position: absolute;
  top: 50%;
  width: calc(50% - 60px);
  height: 1px;
  background: #e0e0e0;
}
.contacto__whatsapp-divider::before {
  left: 0;
}
.contacto__whatsapp-divider::after {
  right: 0;
}
.contacto__whatsapp-divider span {
  font-size: 0.875rem;
  color: #666666;
}
.contacto__whatsapp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.85rem;
  background: #25D366;
  color: #ffffff;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.2s;
}
.contacto__whatsapp:hover {
  background: #1da851;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.35);
}
.contacto__honeypot {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
  opacity: 0;
}
.contacto__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem 2rem;
  background: #2B579A;
  color: #ffffff;
  font-weight: 700;
  font-size: 1rem;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 4px 14px rgba(43, 87, 154, 0.3);
}
.contacto__submit:hover {
  background: #1e3f6f;
  box-shadow: 0 6px 20px rgba(43, 87, 154, 0.4);
  transform: translateY(-1px);
}

.sobre-mi {
  background: #f5f7fa;
  padding: 3rem 0;
}
.sobre-mi__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
  max-width: 860px;
}
.sobre-mi__video-wrapper {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  margin-bottom: 3rem;
}
.sobre-mi__video {
  width: 100%;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: #000;
}
.sobre-mi__sound-btn {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.6);
  color: #ffffff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
}
.sobre-mi__sound-btn:hover {
  background: rgba(0, 0, 0, 0.8);
  transform: scale(1.05);
}
.sobre-mi__sound-icon--on {
  display: none;
}
.sobre-mi__video-wrapper.is-unmuted .sobre-mi__sound-icon--off {
  display: none;
}
.sobre-mi__video-wrapper.is-unmuted .sobre-mi__sound-icon--on {
  display: block;
}
.sobre-mi__contenido {
  text-align: center;
}
.sobre-mi__badge {
  display: inline-block;
  padding: 0.4rem 1rem;
  background: #e8eff7;
  color: #2B579A;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 20px;
  letter-spacing: 0.02em;
  margin-bottom: 1.5rem;
}
.sobre-mi__titulo {
  font-size: 2.4rem;
  color: #333333;
  margin-bottom: 2rem;
}
@media (max-width: 576px) {
  .sobre-mi__titulo {
    font-size: 1.8rem;
  }
}
.sobre-mi__texto {
  text-align: left;
  max-width: 700px;
  margin: 0 auto 2rem;
}
.sobre-mi__texto p {
  font-size: 1.125rem;
  line-height: 1.7;
  color: #666666;
  margin-bottom: 1.5rem;
}
.sobre-mi__texto p:last-child {
  margin-bottom: 0;
}
.sobre-mi__texto p strong {
  color: #333333;
  font-weight: 600;
}
.sobre-mi__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin: 2rem auto;
  max-width: 600px;
}
@media (max-width: 576px) {
  .sobre-mi__stats {
    grid-template-columns: 1fr;
    max-width: 240px;
  }
}
.sobre-mi__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}
.sobre-mi__stat-numero {
  font-size: 2rem;
  font-weight: 800;
  color: #2B579A;
}
.sobre-mi__stat-label {
  font-size: 0.875rem;
  color: #666666;
}
.sobre-mi__acciones {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 2rem;
}
@media (max-width: 576px) {
  .sobre-mi__acciones {
    flex-direction: column;
  }
}
.sobre-mi__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.85rem 2rem;
  background: #2B579A;
  color: #ffffff;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.2s;
  box-shadow: 0 4px 14px rgba(43, 87, 154, 0.3);
}
.sobre-mi__cta:hover {
  background: #1e3f6f;
  box-shadow: 0 6px 20px rgba(43, 87, 154, 0.4);
  transform: translateY(-1px);
}
.sobre-mi__cta-sec {
  color: #666666;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  transition: color 0.2s;
}
.sobre-mi__cta-sec:hover {
  color: #2B579A;
}

.recursos__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.recursos__toolbar-izq {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  flex: 1;
  flex-wrap: wrap;
}
.recursos__toolbar-izq h2 {
  font-size: 1.5rem;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  max-width: 100%;
}
.recursos__toolbar-der {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}
.recursos__auth-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background-color: #ffeeba;
  border: 1px solid #ffce3a;
  border-radius: 6px;
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.recursos__auth-banner-texto {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #a07800;
  font-size: 0.875rem;
}
.recursos__auth-banner-texto svg {
  flex-shrink: 0;
  color: #d39e00;
}
.recursos__aviso {
  display: flex;
  gap: 1rem;
  padding: 1.5rem;
  background-color: #ffeeba;
  border: 1px solid #ffdb6d;
  border-radius: 6px;
  margin-bottom: 2rem;
  font-size: 0.875rem;
  line-height: 1.6;
}
.recursos__aviso svg {
  flex-shrink: 0;
  color: #ba8b00;
  margin-top: 2px;
}
.recursos__aviso p, .recursos__aviso ol {
  margin: 0.25rem 0 0;
}
.recursos__aviso ol {
  padding-left: 1.5rem;
}
.recursos__aviso code {
  background-color: rgba(0, 0, 0, 0.06);
  padding: 1px 4px;
  border-radius: 3px;
  font-size: 0.8rem;
}
.recursos__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
}
.recursos__breadcrumb-link {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  color: #2B579A;
}
.recursos__breadcrumb-link:hover {
  text-decoration: underline;
}
.recursos__breadcrumb-sep {
  color: #666666;
}
.recursos__breadcrumb-actual {
  color: #333333;
  font-weight: 500;
}
.recursos__section {
  margin-bottom: 2rem;
}
.recursos__section-title {
  font-size: 1rem;
  color: #666666;
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.recursos__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}
.recursos__card {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-decoration: none;
  color: #333333;
}
.recursos__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.recursos__card--folder {
  flex-direction: row;
  align-items: center;
  cursor: pointer;
  border-left: 3px solid #ffc107;
}
.recursos__card--compartido {
  border-left: 3px solid #28a745;
}
.recursos__card--file {
  padding: 0;
  overflow: hidden;
  gap: 0;
}
.recursos__card-cover {
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
}
.recursos__card-cover--doc {
  background: linear-gradient(135deg, #4285F4 0%, #1565C0 100%);
}
.recursos__card-cover--sheet {
  background: linear-gradient(135deg, #34A853 0%, #1B5E20 100%);
}
.recursos__card-cover--slides {
  background: linear-gradient(135deg, #F9AB00 0%, #E37400 100%);
}
.recursos__card-cover--pdf {
  background: linear-gradient(135deg, #EA4335 0%, #B71C1C 100%);
}
.recursos__card-cover--archivo {
  background: linear-gradient(135deg, #78909C 0%, #37474F 100%);
}
.recursos__card-cover svg {
  color: rgba(255, 255, 255, 0.9);
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}
.recursos__card-cover-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: background 0.15s, opacity 0.15s;
  opacity: 0.7;
}
.recursos__card-cover-btn:hover {
  background: rgba(0, 0, 0, 0.6);
  opacity: 1;
}
.recursos__card-cover-btn--add {
  opacity: 1;
  background: rgba(255, 255, 255, 0.25);
}
.recursos__card-cover-btn--add:hover {
  background: rgba(255, 255, 255, 0.4);
}
.recursos__card-body {
  padding: 0.5rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  flex: 1;
}
.recursos__card-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.recursos__card-icon {
  flex-shrink: 0;
  color: #2B579A;
}
.recursos__card-icon img {
  display: block;
  width: 40px;
  height: 40px;
}
.recursos__card-name {
  font-weight: 500;
  line-height: 1.4;
  word-break: break-word;
  overflow-wrap: anywhere;
  padding-top: 2px;
}
.recursos__card-footer {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  padding-left: calc(40px + 1rem);
}
.recursos__card-footer--file {
  padding: 0.5rem 1rem 1rem;
}
.recursos__card-meta {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.recursos__card-actions {
  display: flex;
  gap: 0.25rem;
  flex-shrink: 0;
}
.recursos__preview {
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  overflow: hidden;
}
.recursos__preview-iframe {
  width: 100%;
  height: calc(100vh - 250px);
  min-height: 500px;
  border: none;
  display: block;
}
.recursos__compartir {
  max-width: 640px;
}
.recursos__archivo-info {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}
.recursos__archivo-info h3 {
  margin: 0;
}
.recursos__archivo-icon {
  flex-shrink: 0;
}
.recursos__archivo-icon img {
  display: block;
}
.recursos__archivo-meta {
  font-size: 0.875rem;
  color: #666666;
}
.recursos__form {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
}
.recursos__form-group {
  margin-bottom: 1.5rem;
}
.recursos__form-label {
  display: block;
  font-weight: 500;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
}
.recursos__form-textarea {
  width: 100%;
  padding: 0.5rem 1rem;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 1rem;
  resize: vertical;
}
.recursos__form-textarea:focus {
  outline: none;
  border-color: #4472C4;
}
.recursos__alumnos-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 300px;
  overflow-y: auto;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  padding: 1rem;
}
.recursos__alumno-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.recursos__alumno-item:hover {
  background-color: #f5f7fa;
}
.recursos__alumno-item input[type=checkbox] {
  cursor: pointer;
}
.recursos__alumno-email {
  font-size: 0.875rem;
}
.recursos__form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e0e0e0;
}
.recursos__table-wrapper {
  overflow-x: auto;
}
.recursos__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.recursos__table th, .recursos__table td {
  padding: 0.5rem 1rem;
  text-align: left;
  border-bottom: 1px solid #e0e0e0;
}
.recursos__table th {
  background-color: #f5f7fa;
  font-weight: 600;
  color: #666666;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.75rem;
}
.recursos__table tbody tr {
  transition: background-color 0.2s ease;
}
.recursos__table tbody tr:hover {
  background-color: #f5f7fa;
}
.recursos__table-name {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.recursos__table-desc {
  color: #666666;
  font-size: 0.75rem;
}
.recursos__table-actions {
  display: flex;
  gap: 0.25rem;
  align-items: center;
}
.recursos__table-actions form {
  display: inline;
}
.recursos__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem;
  color: #666666;
}
.recursos__spinner {
  width: 32px;
  height: 32px;
  border: 3px solid #e0e0e0;
  border-top-color: #2B579A;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.recursos__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem;
  color: #666666;
  text-align: center;
}
.recursos__empty-text {
  color: #666666;
  font-size: 0.875rem;
}
@media (max-width: 768px) {
  .recursos__toolbar {
    flex-direction: column;
    align-items: flex-start;
  }
  .recursos__toolbar-izq h2 {
    white-space: normal;
    word-break: break-word;
  }
  .recursos__toolbar-der {
    flex-wrap: wrap;
    width: 100%;
  }
  .recursos__grid {
    grid-template-columns: 1fr;
  }
}
.recursos__table-portada {
  width: 48px;
  height: 28px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
  margin-bottom: 4px;
}
.recursos__portada-wrap {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  padding: 2rem;
  max-width: 540px;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.recursos__portada-info h3 {
  font-size: 1.125rem;
  margin: 0 0 0.25rem;
  overflow-wrap: anywhere;
}
.recursos__portada-info p {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.875rem;
  color: #666666;
  margin: 0;
}
.recursos__portada-actual {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.recursos__portada-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #666666;
  margin: 0;
}
.recursos__portada-preview {
  width: 100%;
  max-height: 200px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #e0e0e0;
}
.recursos__portada-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.mis-recursos {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
  padding-top: 2rem;
  padding-bottom: 3rem;
}
.mis-recursos__header {
  margin-bottom: 2rem;
}
.mis-recursos__header h1 {
  font-size: 1.5rem;
  margin-bottom: 0.25rem;
}
.mis-recursos__header p {
  color: #666666;
  font-size: 0.875rem;
}
.mis-recursos__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
}
.mis-recursos__card {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  gap: 0;
}
.mis-recursos__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.mis-recursos__card-cover {
  height: 130px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mis-recursos__card-cover--doc {
  background: linear-gradient(135deg, #4285F4 0%, #1565C0 100%);
}
.mis-recursos__card-cover--sheet {
  background: linear-gradient(135deg, #34A853 0%, #1B5E20 100%);
}
.mis-recursos__card-cover--slides {
  background: linear-gradient(135deg, #F9AB00 0%, #E37400 100%);
}
.mis-recursos__card-cover--pdf {
  background: linear-gradient(135deg, #EA4335 0%, #B71C1C 100%);
}
.mis-recursos__card-cover--archivo {
  background: linear-gradient(135deg, #78909C 0%, #37474F 100%);
}
.mis-recursos__card-cover svg {
  color: rgba(255, 255, 255, 0.9);
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}
.mis-recursos__card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1rem;
  gap: 0.5rem;
}
.mis-recursos__card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  align-items: center;
}
.mis-recursos__card-date {
  font-size: 0.875rem;
  color: #666666;
}
.mis-recursos__card-title {
  font-size: 1.125rem;
  margin: 0;
  line-height: 1.35;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mis-recursos__card-desc {
  font-size: 0.875rem;
  color: #666666;
  line-height: 1.5;
  margin: 0;
  flex: 1;
}
.mis-recursos__card-footer {
  padding: 0 1rem 1rem;
}
.mis-recursos__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem;
  color: #666666;
  text-align: center;
}
@media (max-width: 768px) {
  .mis-recursos__grid {
    grid-template-columns: 1fr;
  }
}

.recurso-modal {
  border: none;
  padding: 0;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
  width: 90vw;
  max-width: 1100px;
  height: 85vh;
  margin: auto;
}
.recurso-modal::backdrop {
  background: rgba(0, 0, 0, 0.55);
}
.recurso-modal__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.recurso-modal__barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e8e8f0;
  background: #f8f9fa;
  border-radius: 12px 12px 0 0;
  gap: 1rem;
  flex-shrink: 0;
}
.recurso-modal__barra-izq {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  overflow: hidden;
}
.recurso-modal__titulo {
  font-weight: 600;
  font-size: 0.9rem;
  color: #1a1a2e;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.recurso-modal__barra-der {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.recurso-modal__drive-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #444;
  text-decoration: none;
  background: #f0f0f5;
  transition: background 0.15s;
}
.recurso-modal__drive-btn:hover {
  background: #e2e2ea;
  color: #1a1a2e;
}
.recurso-modal__cerrar {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.3rem;
  color: #666;
  border-radius: 6px;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  transition: background 0.15s;
}
.recurso-modal__cerrar:hover {
  background: #e2e2ea;
  color: #333;
}
.recurso-modal__iframe {
  flex: 1;
  border: none;
  border-radius: 0 0 12px 12px;
  width: 100%;
  min-height: 0;
}
@media (max-width: 768px) {
  .recurso-modal {
    width: 100vw;
    height: 100dvh;
    border-radius: 0;
    max-width: none;
  }
  .recurso-modal__barra {
    border-radius: 0;
  }
  .recurso-modal__iframe {
    border-radius: 0;
  }
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.5;
}
.badge--neutral {
  background-color: #f5f7fa;
  color: #666666;
}
.badge--primary {
  background-color: #e8eff7;
  color: #2B579A;
}
.badge--success {
  background-color: #afecbd;
  color: #1e7e34;
}

.english-fun {
  padding: 3rem 0;
  min-height: 80vh;
}
.english-fun__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  width: 100%;
}
.english-fun__header {
  text-align: center;
  margin-bottom: 2rem;
}
.english-fun__title {
  font-size: 2.25rem;
  color: #2B579A;
  margin-bottom: 0.5rem;
}
.english-fun__subtitle {
  color: #666666;
  font-size: 1.125rem;
}
.english-fun__tabs {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}
.english-fun__tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.5rem;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  background: #ffffff;
  color: #333333;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}
.english-fun__tab:hover:not(.english-fun__tab--disabled) {
  border-color: #2B579A;
  color: #2B579A;
}
.english-fun__tab--active {
  background: #2B579A;
  border-color: #2B579A;
  color: #ffffff;
}
.english-fun__tab--active:hover {
  background: #1e3f6f;
  border-color: #1e3f6f;
  color: #ffffff;
}
.english-fun__tab--disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.english-fun__badge {
  font-size: 0.7rem;
  background: #ffc107;
  color: #333333;
  padding: 2px 6px;
  border-radius: 8px;
  font-weight: 600;
  text-transform: uppercase;
}
.english-fun__panel {
  display: none;
}
.english-fun__panel--active {
  display: block;
}
.english-fun__sound-btn {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #2B579A;
  color: #ffffff;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  z-index: 100;
}
.english-fun__sound-btn:hover {
  background: #1e3f6f;
  transform: scale(1.1);
}

.pasapalabra {
  display: flex;
  align-items: center;
  gap: 3rem;
  max-width: 900px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .pasapalabra {
    flex-direction: column;
    gap: 2rem;
  }
}
.pasapalabra__circle {
  flex-shrink: 0;
  width: 380px;
  height: 380px;
}
@media (max-width: 768px) {
  .pasapalabra__circle {
    width: 300px;
    height: 300px;
  }
}
@media (max-width: 576px) {
  .pasapalabra__circle {
    width: 260px;
    height: 260px;
  }
}
.pasapalabra__svg {
  width: 100%;
  height: 100%;
}
.pasapalabra__letter-bg {
  transition: fill 0.3s ease;
}
.pasapalabra__letter-bg--pending {
  fill: #4472C4;
}
.pasapalabra__letter-bg--correct {
  fill: #28a745;
}
.pasapalabra__letter-bg--incorrect {
  fill: #dc3545;
}
.pasapalabra__letter-text {
  fill: #ffffff;
  font-size: 14px;
  font-weight: 700;
  font-family: "Plus Jakarta Sans", sans-serif;
  pointer-events: none;
}
.pasapalabra__letter-group--active circle {
  stroke: #ffffff;
  stroke-width: 3;
  filter: drop-shadow(0 0 6px rgba(0, 0, 0, 0.3));
}
.pasapalabra__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.pasapalabra__current {
  text-align: center;
}
.pasapalabra__current-label {
  display: block;
  font-size: 0.875rem;
  color: #666666;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 0.25rem;
}
.pasapalabra__current-letter {
  display: block;
  font-size: 4rem;
  font-weight: 800;
  color: #2B579A;
  line-height: 1;
}
.pasapalabra__stats {
  display: flex;
  gap: 1rem;
  justify-content: center;
}
.pasapalabra__stat {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  text-align: center;
  min-width: 90px;
  padding: 1rem;
}
.pasapalabra__stat--correct .pasapalabra__stat-value {
  color: #28a745;
}
.pasapalabra__stat--incorrect .pasapalabra__stat-value {
  color: #dc3545;
}
.pasapalabra__stat--pending .pasapalabra__stat-value {
  color: #4472C4;
}
.pasapalabra__stat-value {
  display: block;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 0.25rem;
}
.pasapalabra__stat-label {
  font-size: 0.875rem;
  color: #666666;
}
.pasapalabra__controls {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
}
.pasapalabra__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.5rem;
  border: none;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.pasapalabra__btn--correct {
  background: #28a745;
  color: #ffffff;
}
.pasapalabra__btn--correct:hover {
  background: #208637;
}
.pasapalabra__btn--incorrect {
  background: #dc3545;
  color: #ffffff;
}
.pasapalabra__btn--incorrect:hover {
  background: #c62232;
}
.pasapalabra__btn--skip {
  background: #e8eff7;
  color: #2B579A;
}
.pasapalabra__btn--skip:hover {
  background: #d5e2f0;
}
.pasapalabra__btn--new {
  background: #2B579A;
  color: #ffffff;
  margin: 0 auto;
}
.pasapalabra__btn--new:hover {
  background: #1e3f6f;
}

.dados {
  max-width: 700px;
  margin: 0 auto;
}
.dados__board {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
}
.dados__board-img {
  width: 100%;
  max-width: 800px;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.dados__area {
  position: absolute;
  top: 20%;
  right: 4%;
}
@media (max-width: 576px) {
  .dados__area {
    right: 1%;
  }
}
.dados__dice-container {
  display: flex;
  gap: 2rem;
}
@media (max-width: 576px) {
  .dados__dice-container {
    gap: 0.5rem;
  }
}
.dados__scene {
  width: 58px;
  height: 58px;
  perspective: 1000px;
  cursor: pointer;
}
.dados__scene:hover {
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.3));
}
@media (max-width: 576px) {
  .dados__scene {
    width: 36px;
    height: 36px;
  }
}
.dados__cube {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.dados__face {
  position: absolute;
  width: 100%;
  height: 100%;
  background: #ffffff;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  display: grid;
  padding: 8px;
  box-sizing: border-box;
  backface-visibility: hidden;
}
@media (max-width: 576px) {
  .dados__face {
    padding: 5px;
    border-radius: 5px;
  }
}
.dados__face--1 {
  transform: translateZ(29px);
  place-items: center;
}
@media (max-width: 576px) {
  .dados__face--1 {
    transform: translateZ(18px);
  }
}
.dados__face--2 {
  transform: rotateY(90deg) translateZ(29px);
  grid-template-columns: 1fr 1fr;
  align-items: center;
  justify-items: center;
}
.dados__face--2 .dados__dot:first-child {
  align-self: start;
}
.dados__face--2 .dados__dot:last-child {
  align-self: end;
}
@media (max-width: 576px) {
  .dados__face--2 {
    transform: rotateY(90deg) translateZ(18px);
  }
}
.dados__face--3 {
  transform: rotateX(90deg) translateZ(29px);
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  justify-items: center;
}
.dados__face--3 .dados__dot:first-child {
  align-self: start;
  justify-self: start;
}
.dados__face--3 .dados__dot:nth-child(2) {
  align-self: center;
}
.dados__face--3 .dados__dot:last-child {
  align-self: end;
  justify-self: end;
}
@media (max-width: 576px) {
  .dados__face--3 {
    transform: rotateX(90deg) translateZ(18px);
  }
}
.dados__face--4 {
  transform: rotateX(-90deg) translateZ(29px);
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  place-items: center;
}
@media (max-width: 576px) {
  .dados__face--4 {
    transform: rotateX(-90deg) translateZ(18px);
  }
}
.dados__face--5 {
  transform: rotateY(-90deg) translateZ(29px);
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  place-items: center;
}
.dados__face--5 .dados__dot:nth-child(1) {
  grid-area: 1/1;
}
.dados__face--5 .dados__dot:nth-child(2) {
  grid-area: 1/3;
}
.dados__face--5 .dados__dot:nth-child(3) {
  grid-area: 2/2;
}
.dados__face--5 .dados__dot:nth-child(4) {
  grid-area: 3/1;
}
.dados__face--5 .dados__dot:nth-child(5) {
  grid-area: 3/3;
}
@media (max-width: 576px) {
  .dados__face--5 {
    transform: rotateY(-90deg) translateZ(18px);
  }
}
.dados__face--6 {
  transform: rotateX(180deg) translateZ(29px);
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  place-items: center;
}
@media (max-width: 576px) {
  .dados__face--6 {
    transform: rotateX(180deg) translateZ(18px);
  }
}
.dados__dot {
  width: 10px;
  height: 10px;
  background: #1e3f6f;
  border-radius: 50%;
}
@media (max-width: 576px) {
  .dados__dot {
    width: 5px;
    height: 5px;
  }
}
.dados__controls {
  text-align: center;
}
.dados__hint {
  color: #666666;
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
}
.dados__result {
  margin-top: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: #2B579A;
  min-height: 2rem;
}

.sound-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 2rem;
  background: #f5f7fa;
  font-family: "Plus Jakarta Sans", sans-serif;
}
.sound-panel__title {
  font-size: 1.5rem;
  color: #2B579A;
  margin-bottom: 2rem;
}
.sound-panel__buttons {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  max-width: 280px;
}
.sound-panel__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1.5rem;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  overflow: hidden;
}
.sound-panel__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.sound-panel__btn--thinking {
  color: #ffc107;
}
.sound-panel__btn--thinking:hover, .sound-panel__btn--thinking.sound-panel__btn--playing {
  border-color: #ffc107;
}
.sound-panel__btn--incorrect {
  color: #dc3545;
}
.sound-panel__btn--incorrect:hover, .sound-panel__btn--incorrect.sound-panel__btn--playing {
  border-color: #dc3545;
}
.sound-panel__btn--success {
  color: #28a745;
}
.sound-panel__btn--success:hover, .sound-panel__btn--success.sound-panel__btn--playing {
  border-color: #28a745;
}
.sound-panel__btn--playing {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.sound-panel__label {
  font-weight: 600;
  color: #333333;
  font-size: 1rem;
}
.sound-panel__progress {
  width: 100%;
  height: 4px;
  background: #e0e0e0;
  border-radius: 2px;
  overflow: hidden;
}
.sound-panel__progress-bar {
  height: 100%;
  width: 0;
  border-radius: 2px;
  transition: width 0.1s linear;
}
.sound-panel__btn--thinking .sound-panel__progress-bar {
  background: #ffc107;
}
.sound-panel__btn--incorrect .sound-panel__progress-bar {
  background: #dc3545;
}
.sound-panel__btn--success .sound-panel__progress-bar {
  background: #28a745;
}

.reservar__titulo {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}
.reservar__nav-semana {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.reservar__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #333333;
  transition: background-color 0.2s ease;
}
.reservar__nav-btn:hover {
  background-color: #e8eff7;
  color: #2B579A;
}
.reservar__semana-label {
  font-weight: 600;
  font-size: 1.125rem;
}
.reservar__calendario {
  overflow-x: auto;
  margin-bottom: 1.5rem;
}
.reservar__tabla {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
}
.reservar__th-hora {
  width: 60px;
}
.reservar__th-dia {
  text-align: center;
  padding: 0.5rem;
  font-size: 0.875rem;
}
.reservar__th-dia--hoy {
  background-color: #e8eff7;
  border-radius: 6px 6px 0 0;
}
.reservar__dia-nombre {
  display: block;
  font-weight: 400;
  color: #666666;
  font-size: 0.75rem;
  text-transform: uppercase;
}
.reservar__dia-num {
  display: block;
  font-weight: 600;
  font-size: 1.125rem;
}
.reservar__td-hora {
  font-size: 0.875rem;
  color: #666666;
  padding: 0.5rem;
  text-align: right;
  vertical-align: middle;
}
.reservar__celda {
  border: 1px solid #e0e0e0;
  text-align: center;
  padding: 0.25rem;
  height: 44px;
  vertical-align: middle;
  transition: background-color 0.2s ease, transform 0.1s ease;
}
.reservar__celda--disponible {
  background-color: #e8f5e9;
  cursor: pointer;
}
.reservar__celda--disponible:hover {
  background-color: #c8e6c9;
}
.reservar__celda--disponible .reservar__celda-label {
  color: #2e7d32;
  font-size: 0.75rem;
  font-weight: 500;
}
.reservar__celda--mia {
  background-color: #e8eff7;
}
.reservar__celda--mia .reservar__celda-label {
  color: #2B579A;
  font-size: 0.75rem;
  font-weight: 600;
}
.reservar__celda--abierto-duo {
  background-color: #f3e5f5;
  cursor: pointer;
}
.reservar__celda--abierto-duo:hover {
  background-color: #e1bee7;
}
.reservar__celda--abierto-duo .reservar__celda-label {
  color: #7b1fa2;
  font-size: 0.7rem;
  font-weight: 600;
}
.reservar__celda--llena {
  background-color: #f5f5f5;
}
.reservar__celda--llena .reservar__celda-label {
  color: #666666;
  font-size: 0.75rem;
}
.reservar__celda--vacia {
  background-color: transparent;
}
.reservar__celda--seleccionada {
  outline: 2px solid #2B579A;
  outline-offset: -2px;
  background-color: #a5d6a7;
}
.reservar__leyenda {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  margin-bottom: 1.5rem;
}
.reservar__leyenda-item {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  color: #666666;
}
.reservar__leyenda-color {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 3px;
}
.reservar__leyenda-color--disponible {
  background-color: #e8f5e9;
  border: 1px solid #c8e6c9;
}
.reservar__leyenda-color--abierto-duo {
  background-color: #f3e5f5;
  border: 1px solid #ce93d8;
}
.reservar__leyenda-color--mia {
  background-color: #e8eff7;
  border: 1px solid #2B579A;
}
.reservar__leyenda-color--llena {
  background-color: #f5f5f5;
  border: 1px solid #e0e0e0;
}
.reservar__vacio {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem;
  color: #666666;
}
.reservar__vacio p {
  font-size: 1.125rem;
}
.reservar__modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.reservar__modal[hidden] {
  display: none;
}
.reservar__modal.is-visible {
  pointer-events: auto;
}
.reservar__modal.is-visible .reservar__modal-overlay {
  opacity: 1;
}
.reservar__modal.is-visible .reservar__modal-contenido {
  opacity: 1;
  transform: scale(1) translateY(0);
}
.reservar__modal-overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.reservar__modal-contenido {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 480px;
  background-color: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.04);
  padding: 2rem 2rem 3rem;
  opacity: 0;
  transform: scale(0.95) translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.reservar__modal-cerrar {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  cursor: pointer;
  width: 32px;
  height: 32px;
  color: #666666;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.reservar__modal-cerrar:hover {
  background-color: #fce4ec;
  color: #dc3545;
  transform: rotate(90deg);
}
.reservar__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem 0;
  color: #666666;
  font-size: 0.875rem;
}
.reservar__loading-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid #e0e0e0;
  border-top-color: #2B579A;
  border-radius: 50%;
  animation: reservar-spin 0.8s linear infinite;
}
@keyframes reservar-spin {
  to {
    transform: rotate(360deg);
  }
}
.reservar__animate-in {
  animation: reservar-slideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes reservar-slideUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.reservar__confirmacion {
  padding: 0;
}
.reservar__confirmacion .form__group {
  margin-bottom: 1.5rem;
}
.reservar__confirmacion-titulo {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: #333333;
}
.reservar__confirmacion-detalle {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 2rem;
  padding: 1rem 1.5rem;
  background: linear-gradient(135deg, #e8eff7, #f0f4fa);
  border-radius: 12px;
  border-left: 3px solid #2B579A;
}
.reservar__confirmacion-campo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #333333;
  font-size: 0.875rem;
}
.reservar__confirmacion-campo svg {
  color: #2B579A;
  flex-shrink: 0;
}
.reservar__confirmacion-aviso {
  color: #e65100;
  background-color: #fff3e0;
  padding: 1rem;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.875rem;
  text-align: center;
}
.reservar__confirmacion-info-duo {
  display: flex;
  gap: 1rem;
  padding: 1rem 1.5rem;
  background: linear-gradient(135deg, #f3e5f5, #ede7f6);
  border-radius: 12px;
  border-left: 3px solid #7b1fa2;
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
  color: #4a148c;
  line-height: 1.6;
}
.reservar__confirmacion-info-duo svg {
  flex-shrink: 0;
  margin-top: 2px;
}
.reservar__nota-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #333333;
  margin-bottom: 0.5rem;
}
.reservar__nota-wrapper {
  position: relative;
}
.reservar__nota-input {
  display: block;
  width: 100%;
  padding: 1rem;
  font-family: inherit;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #333333;
  background-color: #f5f7fa;
  border: 2px solid transparent;
  border-radius: 12px;
  resize: vertical;
  min-height: 80px;
  transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}
.reservar__nota-input::placeholder {
  color: #aaa;
}
.reservar__nota-input:hover {
  background-color: #f2f4f8;
}
.reservar__nota-input:focus {
  outline: none;
  background-color: #ffffff;
  border-color: #2B579A;
  box-shadow: 0 0 0 3px rgba(43, 87, 154, 0.12);
}
.reservar__tipo-selector {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.reservar__tipo-opcion {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  cursor: pointer;
  transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease, transform 0.15s ease;
}
.reservar__tipo-opcion input[type=radio] {
  display: none;
}
.reservar__tipo-opcion:hover {
  border-color: rgba(43, 87, 154, 0.4);
  box-shadow: 0 2px 8px rgba(43, 87, 154, 0.08);
  transform: translateY(-1px);
}
.reservar__tipo-opcion:has(:checked) {
  border-color: #2B579A;
  background-color: #e8eff7;
  box-shadow: 0 2px 12px rgba(43, 87, 154, 0.15);
}
.reservar__tipo-opcion:has(:checked) .reservar__tipo-icono {
  background-color: #2B579A;
  color: #ffffff;
}
.reservar__tipo-opcion:has(:checked) .reservar__tipo-nombre {
  color: #2B579A;
}
.reservar__tipo-icono {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 10px;
  background-color: #f5f7fa;
  color: #666666;
  transition: background-color 0.25s ease, color 0.25s ease;
}
.reservar__tipo-texto {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.reservar__tipo-nombre {
  font-size: 0.875rem;
  font-weight: 600;
  color: #333333;
  transition: color 0.25s ease;
}
.reservar__tipo-desc {
  font-size: 0.75rem;
  color: #666666;
  line-height: 1.3;
}
.reservar__btn-confirmar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  font-weight: 600;
  border-radius: 12px;
  transition: transform 0.15s ease, box-shadow 0.25s ease;
}
.reservar__btn-confirmar:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(43, 87, 154, 0.3);
}
.reservar__btn-confirmar:active {
  transform: translateY(0);
}

.alumno-panel__titulo {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 2rem;
}
.alumno-panel__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .alumno-panel__cards {
    grid-template-columns: 1fr;
  }
}
.alumno-panel__card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  min-height: 220px;
  display: flex;
  align-items: flex-end;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.alumno-panel__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}
.alumno-panel__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--goblin);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: auto 85%;
}
.alumno-panel__card::after {
  content: "";
  position: absolute;
  inset: 0;
}
.alumno-panel__card--creditos {
  background-color: #1a3a6b;
}
.alumno-panel__card--creditos::after {
  background: linear-gradient(135deg, rgba(26, 58, 107, 0.95) 40%, rgba(26, 58, 107, 0.3) 100%);
}
.alumno-panel__card--clases {
  background-color: #2e5f2e;
}
.alumno-panel__card--clases::after {
  background: linear-gradient(135deg, rgba(46, 95, 46, 0.95) 40%, rgba(46, 95, 46, 0.3) 100%);
}
.alumno-panel__card--recursos {
  background-color: #5a3200;
}
.alumno-panel__card--recursos::after {
  background: linear-gradient(135deg, rgba(90, 50, 0, 0.95) 40%, rgba(90, 50, 0, 0.3) 100%);
}
.alumno-panel__card-content {
  position: relative;
  z-index: 1;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 60%;
}
.alumno-panel__card-numero {
  font-size: 3rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
}
.alumno-panel__card-label {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 500;
}
.alumno-panel__card-btn {
  margin-top: 0.5rem;
  align-self: flex-start;
  background-color: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.5);
  color: #ffffff;
  font-size: 0.875rem;
  padding: 6px 14px;
  backdrop-filter: blur(4px);
}
.alumno-panel__card-btn:hover {
  background-color: rgba(255, 255, 255, 0.35);
  border-color: #ffffff;
  color: #ffffff;
}
.alumno-panel__lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.alumno-panel__clase {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
}
.alumno-panel__clase-fecha {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-width: 48px;
  padding: 0.25rem;
  background-color: #e8eff7;
  border-radius: 6px;
}
.alumno-panel__clase-dia {
  font-size: 1.125rem;
  font-weight: 700;
  color: #2B579A;
  line-height: 1;
}
.alumno-panel__clase-mes {
  font-size: 0.7rem;
  color: #2B579A;
  text-transform: uppercase;
}
.alumno-panel__clase-info {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.alumno-panel__clase-hora {
  font-size: 0.875rem;
  font-weight: 500;
}
.alumno-panel__clase-badges {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
}
.alumno-panel__clase-tipo, .alumno-panel__clase-estado {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  display: inline-block;
  width: fit-content;
}
.alumno-panel__clase-tipo--individual {
  background-color: #e8eff7;
  color: #2B579A;
}
.alumno-panel__clase-tipo--duo, .alumno-panel__clase-tipo--solicitud_duo {
  background-color: #f3e5f5;
  color: #7b1fa2;
}
.alumno-panel__clase-tipo--abierto_duo {
  background-color: #f3e5f5;
  color: #7b1fa2;
}
.alumno-panel__clase-estado--pendiente {
  background-color: #fff3e0;
  color: #e65100;
}
.alumno-panel__clase-estado--confirmada {
  background-color: #e8f5e9;
  color: #2e7d32;
}
.alumno-panel__clase-estado--cancelada {
  background-color: #fce4ec;
  color: #dc3545;
}
.alumno-panel__clase-estado--rechazada {
  background-color: #fce4ec;
  color: #dc3545;
}
.alumno-panel__clase-estado--cancelacion_pendiente {
  background-color: #fff3e0;
  color: #e65100;
}
.alumno-panel__vacio {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem;
  color: #666666;
}
.alumno-panel__vacio p {
  font-size: 1.125rem;
}

.mis-reservas__titulo {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}
.mis-reservas__filtros {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1.5rem;
}
.mis-reservas__filtro {
  padding: 0.25rem 1rem;
  border-radius: 20px;
  font-size: 0.875rem;
  color: #666666;
  border: 1px solid #e0e0e0;
  transition: all 0.2s ease;
}
.mis-reservas__filtro:hover {
  border-color: #2B579A;
  color: #2B579A;
}
.mis-reservas__filtro--active {
  background-color: #2B579A;
  color: #ffffff;
  border-color: #2B579A;
}
.mis-reservas__filtro--active:hover {
  background-color: #1e3f6f;
  color: #ffffff;
}
.mis-reservas__lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mis-reservas__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
}
.mis-reservas__fecha {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-width: 56px;
  padding: 0.5rem;
  background-color: #e8eff7;
  border-radius: 6px;
}
.mis-reservas__dia {
  font-size: 1.5rem;
  font-weight: 700;
  color: #2B579A;
  line-height: 1;
}
.mis-reservas__mes {
  font-size: 0.7rem;
  color: #2B579A;
  text-transform: uppercase;
}
.mis-reservas__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.mis-reservas__hora {
  font-weight: 500;
}
.mis-reservas__nota {
  font-size: 0.875rem;
  color: #666666;
  font-style: italic;
}
.mis-reservas__badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}
.mis-reservas__tipo, .mis-reservas__estado {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 10px;
  white-space: nowrap;
}
.mis-reservas__tipo--individual {
  background-color: #e8eff7;
  color: #2B579A;
}
.mis-reservas__tipo--duo, .mis-reservas__tipo--solicitud_duo {
  background-color: #f3e5f5;
  color: #7b1fa2;
}
.mis-reservas__tipo--abierto_duo {
  background-color: #f3e5f5;
  color: #7b1fa2;
}
.mis-reservas__estado--pendiente {
  background-color: #fff3e0;
  color: #e65100;
}
.mis-reservas__estado--confirmada {
  background-color: #e8f5e9;
  color: #2e7d32;
}
.mis-reservas__estado--cancelada {
  background-color: #fce4ec;
  color: #dc3545;
}
.mis-reservas__estado--rechazada {
  background-color: #fce4ec;
  color: #dc3545;
}
.mis-reservas__estado--cancelacion_pendiente {
  background-color: #fff3e0;
  color: #e65100;
}
.mis-reservas__acciones {
  flex-shrink: 0;
}
.mis-reservas__btn-cancelar {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: #666666;
  background: none;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.mis-reservas__btn-cancelar:hover {
  color: #dc3545;
  border-color: #dc3545;
  background-color: #fce4ec;
}
.mis-reservas__vacio {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  padding: 3rem;
  color: #666666;
}
.mis-reservas__vacio p {
  font-size: 1.125rem;
}

.pagos__packs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 3rem;
}
@media (max-width: 768px) {
  .pagos__packs {
    grid-template-columns: 1fr;
    max-width: 360px;
  }
}
.pagos__pack {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  position: relative;
  text-align: center;
  gap: 0.5rem;
  cursor: pointer;
  border: 2px solid #e0e0e0;
  transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.pagos__pack:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.pagos__pack--destacado {
  border-color: #2B579A;
  box-shadow: 0 4px 20px rgba(43, 87, 154, 0.15);
}
.pagos__pack--seleccionado {
  border-color: #2B579A;
  background-color: #e8eff7;
}
.pagos__pack-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #2B579A;
  color: #ffffff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 20px;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pagos__pack-icono {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0.5rem auto 0;
  border-radius: 12px;
  background-color: #e8eff7;
  color: #2B579A;
}
.pagos__pack-nombre {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0;
}
.pagos__pack-precio {
  font-size: 2rem;
  font-weight: 700;
  color: #2B579A;
  margin: 0;
  line-height: 1.1;
}
.pagos__pack-creditos {
  font-size: 0.875rem;
  color: #666666;
  margin: 0;
}
.pagos__pack-por-clase {
  font-size: 0.875rem;
  color: #2e7d32;
  font-weight: 600;
  margin: 0;
}
.pagos__pack-btn {
  margin-top: auto;
  width: 100%;
}
.pagos__modal {
  margin: auto;
  padding: 0;
  border: none;
  border-radius: 12px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
  width: min(480px, 95vw);
  max-height: 85vh;
  overflow-y: auto;
}
.pagos__modal::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(2px);
}
.pagos__modal[open] {
  display: flex;
  flex-direction: column;
}
.pagos__modal-inner {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.pagos__modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.pagos__modal-cerrar {
  background: none;
  border: none;
  cursor: pointer;
  color: #666666;
  padding: 0.25rem;
  border-radius: 6px;
  display: flex;
  align-items: center;
  transition: color 0.2s ease, background-color 0.2s ease;
  flex-shrink: 0;
}
.pagos__modal-cerrar:hover {
  color: #333333;
  background-color: #f5f7fa;
}
.pagos__form-titulo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.125rem;
  margin: 0;
  flex-wrap: wrap;
}
.pagos__payment-element {
  margin-bottom: 1.5rem;
  min-height: 200px;
}
.pagos__error {
  color: #dc3545;
  font-size: 0.875rem;
  margin-bottom: 1rem;
  min-height: 1.2em;
}
.pagos__submit {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.pagos__submit:disabled {
  opacity: 0.75;
  cursor: not-allowed;
}
.pagos__btn-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: pagos-spin 0.7s linear infinite;
  flex-shrink: 0;
}
.pagos__seguridad {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  margin-top: 1rem;
  font-size: 0.875rem;
  color: #666666;
}
.pagos__spinner-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 0;
}
.pagos__spinner {
  width: 32px;
  height: 32px;
  border: 3px solid #e0e0e0;
  border-top-color: #2B579A;
  border-radius: 50%;
  animation: pagos-spin 0.8s linear infinite;
}
@keyframes pagos-spin {
  to {
    transform: rotate(360deg);
  }
}
.pagos__historial {
  margin-top: 2rem;
}
.pagos__historial-titulo {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 1rem;
}
.pagos__historial-lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.pagos__historial-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  gap: 1rem;
}
@media (max-width: 576px) {
  .pagos__historial-item {
    flex-direction: column;
    align-items: flex-start;
  }
}
.pagos__historial-info {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.pagos__historial-desc {
  font-weight: 500;
}
.pagos__historial-fecha {
  font-size: 0.875rem;
  color: #666666;
}
.pagos__historial-der {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
}
.pagos__historial-importe {
  font-weight: 700;
  font-size: 1.125rem;
}
.pagos__historial-estado {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  text-transform: capitalize;
}
.pagos__historial-estado--completado {
  background-color: #e8f5e9;
  color: #2e7d32;
}
.pagos__historial-estado--pendiente {
  background-color: #fff3e0;
  color: #e65100;
}
.pagos__historial-estado--fallido {
  background-color: #fce4ec;
  color: #dc3545;
}
.pagos__exito {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1.5rem;
  padding: 3rem 1.5rem;
  text-align: center;
}
.pagos__exito-icono {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background-color: #e8f5e9;
  color: #2e7d32;
}
.pagos__exito-titulo {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0;
}
.pagos__exito-texto {
  color: #666666;
  max-width: 380px;
  margin: 0;
}
.pagos__exito-creditos {
  font-size: 2rem;
  font-weight: 700;
  color: #2B579A;
}
.pagos__exito-acciones {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.dash-hero {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  min-height: 160px;
  display: flex;
  align-items: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  margin-bottom: 2rem;
}
.dash-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--goblin);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: auto 130%;
}
.dash-hero::after {
  content: "";
  position: absolute;
  inset: 0;
}
.dash-hero--azul {
  background-color: #1a3a6b;
}
.dash-hero--azul::after {
  background: linear-gradient(90deg, rgba(26, 58, 107, 0.97) 45%, rgba(26, 58, 107, 0.2) 100%);
}
.dash-hero--verde {
  background-color: #2e5f2e;
}
.dash-hero--verde::after {
  background: linear-gradient(90deg, rgba(46, 95, 46, 0.97) 45%, rgba(46, 95, 46, 0.2) 100%);
}
.dash-hero--marron {
  background-color: #5a3200;
}
.dash-hero--marron::after {
  background: linear-gradient(90deg, rgba(90, 50, 0, 0.97) 45%, rgba(90, 50, 0, 0.2) 100%);
}
.dash-hero__content {
  position: relative;
  z-index: 1;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.dash-hero__fila {
  display: flex;
  align-items: baseline;
  gap: 1rem;
}
.dash-hero__numero {
  font-size: 3.5rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
}
.dash-hero__label {
  font-size: 1.125rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.dash-hero__sub {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.6);
  margin: 0.25rem 0 0;
}

.reservar__sin-creditos {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  padding: 2rem 0;
  text-align: center;
}
.reservar__sin-creditos-icono {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background-color: #fff3e0;
  color: #e65100;
  margin: 0 auto;
}
.reservar__sin-creditos-texto {
  color: #666666;
  font-size: 0.875rem;
  max-width: 280px;
  margin: 0 auto;
}

.legal {
  max-width: 800px;
  margin: 0 auto;
  padding: 3rem 1.5rem;
}
.legal__contenido h1 {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}
.legal__contenido h2 {
  font-size: 1.2rem;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}
.legal__contenido p, .legal__contenido li {
  line-height: 1.7;
  color: #444;
}
.legal__contenido ul {
  padding-left: 1.5rem;
  margin-bottom: 1rem;
}
.legal__contenido a {
  color: var(--color-primario, #2563eb);
}
.legal__fecha {
  color: #888;
  font-size: 0.9rem;
  margin-bottom: 2rem;
}

/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../assets/styles/base/_reset.scss%22,%22../../assets/styles/abstracts/_variables.scss%22,%22../../assets/styles/base/_typography.scss%22,%22../../assets/styles/base/_container.scss%22,%22../../assets/styles/abstracts/_mixins.scss%22,%22../../assets/styles/base/_animations.scss%22,%22../../assets/styles/components/_buttons.scss%22,%22../../assets/styles/components/_forms.scss%22,%22../../assets/styles/components/_calendar.scss%22,%22../../assets/styles/components/_toast.scss%22,%22../../assets/styles/components/_packs.scss%22,%22../../assets/styles/components/_mensajeria.scss%22,%22../../assets/styles/layout/_navbar.scss%22,%22../../assets/styles/layout/_footer.scss%22,%22../../assets/styles/layout/_admin-dashboard.scss%22,%22../../assets/styles/pages/_home.scss%22,%22../../assets/styles/pages/_hero.scss%22,%22../../assets/styles/pages/_contacto.scss%22,%22../../assets/styles/pages/_sobre-mi.scss%22,%22../../assets/styles/pages/_recursos.scss%22,%22../../assets/styles/pages/_english-fun.scss%22,%22../../assets/styles/pages/_reservar.scss%22,%22../../assets/styles/pages/_pagos.scss%22,%22../../assets/styles/pages/_legales.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAGA;AAAA;AAAA;EAGI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;AAAA;EAEI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA,aClBU;EDmBV,WClBa;EDmBb,OCzBG;ED0BH;EACA,kBC7BC;;;ADgCL;EACI;;;AEvCJ;EACI,ODOG;ECNH;EACA,eDkBS;;;ACfb;EAAK;;;AACL;EAAK;;;AACL;EAAK;;;AAEL;EACI,eDWS;ECVT,ODHS;;;AETb;ECcI,WHcQ;EGbR;EACA;EACA;EDfA,aFsBS;EErBT,gBFqBS;;;AI1Bb;AAAA;EAEI;EACA;;;AAKJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;;AAMJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AADJ;EACI;;;AAKR;EACI;EACA;;AAEA;EACI;EACA;;;AAKR;EACI;EACA;;AAEA;EACI;EACA;;;AAKR;EACI;EACA;;AAEA;EACI;EACA;;;ACrDR;EACI;EACA;EACA;EACA,KLgBS;EKfT;EACA,eLuBK;EKtBL,WLQW;EKPX;EACA;EACA;EACA;;AAEA;EACI,kBLhBE;EKiBF,OLRA;;AKSA;EAAU,kBLjBH;;AKoBX;EACI;EACA,OLbD;EKcC,kBLfA;;AKgBA;EAAU,kBLjBb;;AKoBD;EACI,kBL3BQ;EK4BR,OL9BE;EK+BF;;AACA;EAAU;;AAGd;EACI,kBL/BC;EKgCD,OL5BA;;AK6BA;EAAU;;AAGd;EACI;EACA;EACA;;AACA;EACI;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;EACA,WL1CS;;AK6Cb;EACI;EACA,WL9CO;;;AMff;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEI;EACA;EACA;EACA;;;AAIR;EHFI,kBHjCI;EGkCJ;EACA,eHbK;EGcL,YHZK;EGaL,SHrBS;EMqBT;EACA,SNpBU;EMqBV;;AHrCA;EGiCJ;IAOQ;;;AAGJ;EACI;EACA;EACA;EACA,ON1DE;EM2DF,eNpCK;EMqCL;;AAGJ;EACI,WN9CO;EM+CP;EACA,ONvDK;EMwDL,eNzCK;EM0CL;;AAGJ;EACI,eNhDK;;AMkDL;EACI;EACA;EACA,KNtDC;;AM0DT;EACI;EACA,eN7DK;EM8DL,WNnEO;EMoEP;EACA,ONtFE;;AMwFF;EACI,WNxEG;EMyEH,ONhFL;EMiFK;;AAIR;EACI;EACA;EACA;EACA,eNpEC;EMqED,WNpFS;EMqFT,aNtFM;EMuFN;;AAEA;EACI;EACA,cNvGH;;AM0GD;EACI,cNzGH;;AM6GL;EACI;EACA;;AAGJ;EACI,ONnHC;EMoHD,WNxGO;EMyGP,YNpGK;;AMuGT;EACI;EACA,eNhGC;EMiGD,eNxGK;EMyGL,WNhHO;;AMkHP;EACI;EACA,ONhIH;EMiIG;;AAIR;EACI,YNlHK;EMmHL;EACA,WN5HO;EM6HP,ONnIK;;AMqIL;EACI,ONjJF;;AMkJE;EAAU;;;AClJtB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;;AAKR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;;;AAIJ;EACI;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAEA;IACI;IACA;;EAGJ;IACI;IACA;;;AAMZ;EACI;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAKR;EACI;EACA;;AAEA;EACI;;AAKR;EACI;EACA;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACtUR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;ACnDZ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA,KTEK;;ASCT;EACI;EACA;EACA,eTKC;ESJD,WTVO;ESWP;EACA,OTlBK;ESmBL;EACA;;AAEA;EACI;EACA,OTnCF;;ASsCF;EACI;EACA,OTxCF;ESyCE;;AAIR;EACI;EACA,STrBK;ESsBL;;AAGJ;EAhDJ;IAiDQ;;EAEA;IACI;IACA;IACA;IACA;IACA,STnCC;;;;ASyCb;ENvBI,kBHjCI;EGkCJ;EACA,eHbK;EGcL,YHZK;EGaL,SHrBS;ES0CT,STzCS;;AS2CT;EACI;EACA;EACA;EACA,eT/CK;;ASiDL;EACI,WT1DG;ES2DH;EACA,OT9EF;ES+EE;;;AAMZ;EACI;EACA;;;AAGJ;EACI;EACA;EACA,WT5EW;;AS8EX;EACI;;AAGJ;EACI;EACA;EACA;EACA,OT5FK;ES6FL;EACA;EACA;;AAGJ;EACI;EACA,OTrGD;ESsGC;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA,KTxGK;;AS2GT;EACI;EACA,OTzHK;ES0HL;;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA,OT/IK;;;ASoJb;EACI;;AAEA;AAAA;EAEI,eT5IK;;AS+IT;EACI;EACA,eTnJK;ESoJL,WTzJO;ES0JP;EACA,OT5KE;;AS+KN;AAAA;AAAA;EAGI;EACA;EACA;EACA,eTtJC;ESuJD,WTtKS;ESuKT,aTxKM;ESyKN;;AAEA;AAAA;AAAA;EACI;EACA,cTzLH;;AS6LL;EACI;EACA;EACA,cTnME;ESoMF;;AAGJ;EACI,YT/KK;ESgLL;EACA,KTnLK;;;ASwLb;EACI;EACA;;;AAGJ;EACI,YThNK;ESiNL;EACA;EACA;;AAEA;EACI;;;ACxNR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,KVUK;EUTL;EACA,eVSK;;AUNT;EACI;EACA;EACA;EACA,WVLO;EUMP;;AAEA;EAAI;;AAEJ;EACI;EACA,YV7BF;EU8BE;EACA;;AAGJ;EACI;EACA;EACA,OV3BL;EU4BK;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA,KV7BK;EU8BL,aV7BK;EU8BL;;AAEA;EAAQ;;AAGZ;EACI;EACA;EACA;EACA,eVhCC;EUiCD,WVhDS;EUiDT,aVlDM;;AUoDN;EACI;EACA,cVlEH;;AUsEL;EACI;EACA,OVhEK;EUiEL;;AAGJ;EACI;EACA;EACA,KV5DK;;AU+DT;EACI;EACA;EACA;EACA;EACA,eV3DC;EU4DD;EACA;EACA,OVnFD;EUoFC;;AAEA;EACI;;AAIR;EACI;;;ACpGR;EACI,kBXMI;EWLJ;EACA;;AAEA;ERSA,WHcQ;EGbR;EACA;EACA;EAWA;EACA;EACA;EQtBI;;AAGJ;EACI;EACA;EACA,OXhBE;EWiBF;;AAIJ;EACI;EACA;EACA;EACA;EACA,OXhBD;EWiBC,SXLK;;AWQT;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAIJ;EACI;EACA;EACA;EACA,aXrBK;;AWyBT;EACI;EACA;EACA,KX7BK;EW8BL;;AAGJ;EACI,OXjDD;EWkDC;EACA;EACA,WX7CO;EW8CP;;AAEA;EACI,OXlEF;;AWuEN;EACI;EACA;EACA;EACA,aXnDK;EWoDL;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OXtFK;EWuFL;EACA;;AAEA;EACI;EACA,OXvGF;;AW0GF;EACI,YXzGI;EW0GJ,OX5GF;EW6GE;;AAEA;EACI,YX9GA;EW+GA,OXjHN;;AWsHN;EACI;EACA;;AAIJ;EACI;EACA;EACA,KXvGK;;AW0GT;EACI,OXxHK;EWyHL,WXnHO;;AWsHX;EACI,OXxIE;EWyIF;;AAGJ;EACI;EACA;EACA;EACA,OXtID;EWuIC;EACA;EACA,WXlIO;EWmIP;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI,cXlKF;EWmKE,OXnKF;EWoKE;;AAEA;EACI;;AAIR;EACI,YX1KI;EW2KJ,OX7KF;EW8KE,cX9KF;;AWgLE;EACI;;AAGJ;EACI;EACA,cXtLN;EWuLM,OXvLN;;AW2LF;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAOhB;EACI;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA,YXvNJ;IWwNI;IACA;IACA,SX1MC;IW2MD,KX5MC;IW6MD,YXnMA;IWoMA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA,gBX5NC;;EW+NL;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA,KX7OC;;EWgPL;IACI;;EAGJ;IACI;IACA;;;;AC1QZ;EACI,YZHW;EYIX;EACA;;AAEA;ETQA,WHcQ;EGbR;EACA;EACA;;ASPA;EACI;EACA;EACA,KZYM;EYXN,gBZUK;EYTL;;ATVJ;ESKA;IAQQ;IACA,KZKC;IYJD;;;AAIR;EACI;EACA;EACA,OZpBA;EYqBA;EACA,eZRK;;AYWT;EACI,WZlBO;EYmBP;EACA;EACA;;AT/BJ;ES2BA;IAOQ;;;AAIR;EACI,WZ7BO;EY8BP;EACA,OZvCA;EYwCA;EACA;EACA,eZ3BK;;AY8BT;EACI;EACA;EACA,KZlCK;;AYoCL;EACI;EACA;EACA,KZvCC;EYwCD,WZ9CG;EY+CH;;ATzDR;ESoDI;IAQQ;;;AAIR;EACI;EACA;EACA;;AAEA;EACI,OZpER;;AYwEA;EACI;EACA;;AAIR;EACI,aZ/DK;EYgEL;;AAEA;EACI,WZ3EG;EY4EH;;;AAMZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AACA;EACI;EACA;;AACA;EAAU;;;AC7GtB;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA,kBbDA;EaEA;EACA;EACA;;AAGJ;EVoBA;EACA;EUnBI,KbIK;;AaDT;EACI;EACA;EACA,KbDK;EaEL;EACA,ObfK;EagBL,WbVO;EaWP;;AAEA;EACI,kBb7BI;Ea8BJ,ObhCF;;AamCF;EACI,kBblCI;EamCJ,ObrCF;EasCE;EACA;;AAIR;EACI;EACA,SbnBK;;AawBL;EACI,WbhCG;EaiCH,eb3BC;;Aa8BL;EACI;EACA,KbnCC;EaoCD,ebjCC;;AaoCL;EACI;EACA;EACA,Wb/CG;EagDH,ObtDC;EauDD;EACA;;AAEA;EACI,cbtEN;EauEM,ObvEN;;Aa0EE;EACI,kBb3EN;Ea4EM,ObnER;EaoEQ,cb7EN;;Aa+EM;EACI,kBb/EL;EagFK,ObxEZ;;Aa6EA;EACI;EACA;EACA,KblEC;;AaqEL;EACI;EACA;EACA,KbvEC;EawED,SbxEC;EayED,kBbxFJ;EayFI;EACA,ebpEH;;AasEG;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA,Kb5FC;;Aa+FL;EACI;EACA,Kb/FC;EagGD;;AAGJ;EACI,OblHL;;AaqHC;EACI,ObrHC;;AawHL;EACI;EACA;EACA,KbhHC;EaiHD,WbtHG;EauHH,Ob7HC;;Aa+HD;EACI;;AAIR;EACI,Wb/HG;EagIH,ObtIC;;AayIL;EACI;EACA;EACA;EACA,KblIC;;AaqIL;EAEI;EACA;EACA;EACA;EACA;;AAIA;EACI,kBbpKA;EaqKA,ObvKN;;Aa0KE;EAEI,kBbhIE;EaiIF,OblIJ;;AaqIA;EACI,kBbrIE;EasIF,ObvIJ;;Aa4IA;EACI,kBbtIQ;EauIR,ObxIE;;Aa2IN;EACI,kBb9IS;Ea+IT,ObhJG;;AamJP;EACI,kBb/IQ;EagJR,Ob9LP;;AaiMG;EACI,kBbpJQ;EaqJR,ObnMP;;AasMG;EACI,kBb1JQ;Ea2JR,Ob5JE;;AagKV;EACI;EACA,Kb7LC;;AagML;EV9LJ;EACA;EACA;EU8LQ;EACA,KbjMC;EakMD,Sb/LE;EagMF,ObhNC;;AakND;EACI,Wb5MD;;AGXX;EULJ;IAkOQ;;EAEA;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAEA;IACI;IACA;;;;ACtPZ;EACI;EACA;;AAEA;EACI;EACA,edeC;EcdD,OdVF;;AcaF;EACI,WdIG;EcHH;EACA;;;AAMZ;EACI;EACA,kBdvBW;;AcyBX;EXVA,WHcQ;EGbR;EACA;EACA;;AWWA;EACI;EACA,edNK;;AcST;EACI;EACA,Od5BA;Ec6BA,edfK;;AckBT;EXjBA;EACA;EACA;EWiBI,KdpBK;EcqBL;;AAGJ;EACI;EACA;;AAGJ;EACI,WdnCO;EcoCP;EACA,Od9CA;;AciDJ;EACI,Wd1CO;Ec2CP;;AAIJ;EACI;EACA;EACA;EACA,Kd7CK;;AcgDT;EACI;EACA;EACA,ed1CI;;Ac6CZ;EACQ;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OdjFA;EckFA;EXnEJ;EACA;EACA;EWmEI;;AAEA;EACI,YdvFJ;EcwFI,cdxFJ;EcyFI,OdjGG;;AGMX;EW4EA;IAmBQ;;;AAKR;EACI;EACA;EACA,SdrFK;EcsFL;;AXxGJ;EWoGA;IAOQ;;;AAIR;EX5EA,kBHjCI;EGkCJ;EACA,eHbK;EGcL,YHZK;EGaL,SHrBS;EGWT;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ACI;IACA;IACA;IACA;IACA;IACA;;EAIR;IACI,Sf7HC;Ie8HD;IACA;IACA;;EAGJ;IACI;IACA;IACA,KfxIC;;Ee2IL;IACI;;EAGJ;IACI;;;AAIR;EACI;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;;;ACrLZ;EACI;EACA;EACA;EACA,YhBEC;EgBDD;;AAEA;EbOA,WHcQ;EGbR;EACA;EACA;EaRI;EACA;EACA,KhBcM;EgBbN;;AbPJ;EaEA;IAQQ;IACA,KhBQC;;;AgBHT;EACI;EACA,OhBfD;EgBgBC,ehBFK;;AGrBT;EaoBA;IAMQ;;;AAIR;EACI,WhBhBO;EgBiBP,OhBxBK;EgByBL;EACA,ehBXK;;AgBcT;EbJA;EACA;EaKI,KhBlBK;;AgBqBT;EACI;EACA;EACA,KhBzBK;EgB0BL,OhBvCD;EgBwCC,WhBlCS;;AgBoCT;EACI,OhBrDF;EgBsDE;;AAKR;EbjBA,kBHjCI;EGkCJ;EACA,eHbK;EGcL,YHZK;EGaL,SHrBS;EgBoCL,ShBnCK;EgBoCL,ehB9BI;;AgBiCR;EACI;EACA;EACA,KhB7CK;EgB8CL,ShB7CK;EgB8CL;EACA;EACA,ehBzCC;EgB0CD,OhBrEE;EgBsEF;EACA,ehBlDK;;AgBqDT;Eb1CA;EACA;Ea2CI,KhBvDK;;AgB0DT;Eb/CA;EACA;EagDI,KhB/DK;;AgBiEL;EACI,WhBvEG;EgBwEH;EACA,OhBhFL;;AgBmFC;EACI,WhB7EG;EgB8EH,OhB1FH;;AgB8FL;EACI;EACA;EACA;EACA,ehBxEC;EgByED,WhBxFS;EgByFT,ahB1FM;EgB2FN;EACA,YhBlGA;EgBmGA;;AAEA;EACI;EACA,chBhHF;EgBiHE;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EAEI;EACA;EACA;EACA;EACA;EACA,YhB9HH;;AgBiID;EAAY;;AACZ;EAAW;;AAEX;EACI,WhBhIG;EgBiIH,OhBvIC;;AgB2IT;EACI;EACA;EACA;EACA,KhBnIK;EgBoIL;EACA;EACA;EACA,OhBrJA;EgBsJA;EACA,WhBhJS;EgBiJT;EACA;EACA;;AAEA;EACI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AkB4NT;EACI;EACA,OlBtPE;;AkBwPF;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,KlBpPK;EkBsPL;;AAEA;EACI;;AAIR;EACI;EACA;EACA,KlBjQK;;AkBoQT;EACI;EACA,KlBtQK;EkBuQL;;AAIJ;EACI;EACA,elBpQC;EkBqQD;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIJ;EACI;;AAGJ;Ef1QA,kBHjCI;EGkCJ;EACA,eHbK;EGcL,YHZK;EGaL,SHrBS;EkB6RL;EACA;EACA,KlBhSK;EkBiSL,elB/RK;;AkBiSL;EACI;;AAIR;EACI;;AAEA;EACI;;AAIR;EACI,WlBxTO;EkByTP,OlB/TK;;AkBmUT;EfpSA,kBHjCI;EGkCJ;EACA,eHbK;EGcL,YHZK;EGaL,SHrBS;;AkByTT;EACI,elB1TK;;AkB6TT;EACI;EACA;EACA,elBlUK;EkBmUL,WlBzUO;;AkB4UX;EACI;EACA;EACA;EACA,elBlUC;EkBmUD,alBnVM;EkBoVN,WlBnVS;EkBoVT;;AAEA;EACI;EACA,clBrWH;;AkByWL;EACI;EACA;EACA,KlBxVK;EkByVL;EACA;EACA;EACA,elBpVC;EkBqVD,SlB5VK;;AkB+VT;EACI;EACA;EACA,KlBnWK;EkBoWL;EACA,elB7VC;EkB8VD;EACA;;AAEA;EACI,kBlBzXP;;AkB4XG;EACI;;AAIR;EACI,WlBzXO;;AkB4XX;EACI;EACA;EACA,KlBxXK;EkByXL,alBzXK;EkB0XL;;AAIJ;EACI;;AAGJ;EACI;EACA;EACA,WlB5YO;;AkB8YP;EACI;EACA;EACA;;AAGJ;EACI,kBlB9ZP;EkB+ZO;EACA,OlB7ZC;EkB8ZD;EACA;EACA;;AAGJ;EACI;;AAEA;EACI,kBlB1aX;;AkB+aD;EACI;EACA;EACA;;AAGJ;EACI,OlBnbK;EkBobL;;AAGJ;EACI;EACA,KlB9aK;EkB+aL;;AAEA;EACI;;AAKR;EfrbA;EACA;EACA;EeqbI;EACA,KlBxbK;EkBybL,SlBtbM;EkBubN,OlBvcK;;AkB0cT;EACI;EACA;EACA;E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mBofL,SnBlfK;EmBmfL;EACA,enB7eI;EmB8eJ,YnBrgBA;EmBsgBA;EACA;EACA;EACA;;AAEA;EACI;EACA,YnBpfA;;AmBufJ;EACI,OnBphBF;;AmBqhBE;EAAuC,cnBrhBzC;;AmBwhBF;EACI,OnB1hBH;;AmB2hBG;EAAuC,cnB3hB1C;;AmB8hBD;EACI,OnBhiBF;;AmBiiBE;EAAuC,cnBjiBzC;;AmBoiBF;EACI,YnBvgBA;;AmB2gBR;EACI;EACA,OnBriBD;EmBsiBC,WnBhiBS;;AmBmiBb;EACI;EACA;EACA,YnB1iBC;EmB2iBD;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EAAgC,YnB3jB9B;;AmB4jBF;EAAiC,YnB7jBhC;;AmB8jBD;EAA+B,YnB/jB7B;;;AoBAN;EACI,WpBcO;EoBbP,epBmBK;;AoBhBT;EjBeA;EACA;EACA;EiBfI,KpBcK;EoBbL,epBaK;;AoBVT;EjBSA;EACA;EACA;EiBTI;EACA;EACA;EACA,OpBVD;EoBWC;;AAEA;EACI,kBpBtBI;EoBuBJ,OpBzBF;;AoB6BN;EACI;EACA,WpBbO;;AoBgBX;EACI;EACA,epBXK;;AoBcT;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA,SpB5BK;EoB6BL,WpBnCO;;AoBqCP;EACI,kBpBrDI;EoBsDJ;;AAIR;EACI;EACA;EACA,OpBpDK;EoBqDL;EACA;;AAGJ;EACI;EACA;EACA,WpBrDO;;AoBwDX;EACI,WpB1DO;EoB2DP,OpBjEK;EoBkEL,SpBtDK;EoBuDL;EACA;;AAGJ;EACI;EACA;EACA,SpB/DK;EoBgEL;EACA;EACA;;AAEA;EACI,kBpB5Ca;EoB6Cb;;AAEA;EACI,kBpB/CS;;AoBkDb;EACI,OpBrDG;EoBsDH;EACA;;AAIR;EACI,kBpBxGI;;AoB0GJ;EACI,OpB7GN;EoB8GM;EACA;;AAIR;EACI,kBpBxEM;EoByEN;;AAEA;EACI,kBpB3EE;;AoB8EN;EACI,OpBjFJ;EoBkFI;EACA;;AAIR;EACI;;AAEA;EACI,OpB3HH;EoB4HG;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;;AAI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oB+jBL;;AAGJ;EACI;EACA;EACA,OpBnlBA;EoBolBA;;AAGJ;EACI,WpBhlBO;EoBilBP;EACA;;AAGJ;EACI,YpBhlBK;EoBilBL;EACA;EACA;EACA,OpBlmBA;EoBmmBA,WpB3lBO;EoB4lBP;EACA;;AAEA;EACI;EACA,cpBzmBJ;EoB0mBI,OpB1mBJ;;AoB8mBJ;EACI;EACA;EACA,KpBnmBK;;AoBsmBT;EACI;EACA;EACA,KpBxmBK;EoBymBL,SpBzmBK;EoB0mBL,kBpBznBA;EoB0nBA;EACA,epBrmBC;;AoBwmBL;EjB/mBA;EACA;EACA;EiB+mBI;EACA;EACA,SpBrnBK;EoBsnBL,kBpB1oBQ;EoB2oBR,epB9mBC;;AoBinBL;EACI,WpB/nBO;EoBgoBP;EACA,OpBnpBE;EoBopBF;;AAGJ;EACI;EACA,OpBzpBE;EoB0pBF;;AAGJ;EACI;EACA;EACA,KpB1oBK;;AoB6oBT;EACI,WpBnpBO;EoBopBP;;AAGJ;EACI;EACA,KpBppBK;EoBqpBL;;AAGJ;EAEI;EACA;EACA;EACA;EACA;EACA;;AAIA;EACI,kBpBxrBI;EoByrBJ,OpB3rBF;;AoB8rBF;EAEI,kBpBppBM;EoBqpBN,OpBtpBA;;AoBypBJ;EACI,kBpBzpBM;EoB0pBN,OpB3pBA;;AoBgqBJ;EACI,kBpB1pBY;EoB2pBZ,OpB5pBM;;AoB+pBV;EACI,kBpBlqBa;EoBmqBb,OpBpqBO;;AoBuqBX;EACI,kBpBnqBY;EoBoqBZ,OpBltBH;;AoBqtBD;EACI,kBpBxqBY;EoByqBZ,OpBvtBH;;AoB0tBD;EACI,kBpB9qBY;EoB+qBZ,OpBhrBM;;AoBorBd;EjB7sBA;EACA;EACA;EiB6sBI;EACA,KpBhtBK;EoBitBL,SpB9sBM;EoB+sBN,OpB/tBK;;AoBiuBL;EACI,WpB3tBG;;;AoBkuBX;EACI,WpBluBO;EoBmuBP,epB7tBK;;AoBguBT;EACI;EACA,KpBruBK;EoBsuBL,epBnuBK;;AoBsuBT;EACI;EACA;EACA,WpBjvBO;EoBkvBP,OpBxvBK;EoByvBL;EACA;;AAEA;EACI,cpBxwBF;EoBywBE,OpBzwBF;;AoB4wBF;EACI,kBpB7wBF;EoB8wBE,OpBrwBJ;EoBswBI,cpB/wBF;;AoBixBE;EACI,kBpBjxBD;EoBkxBC,OpB1wBR;;AoB+wBJ;EACI;EACA;EACA,KpBpwBK;;AoBuwBT;EACI;EACA;EACA,KpBzwBK;EoB0wBL,SpB1wBK;EoB2wBL,kBpB1xBA;EoB2xBA;EACA,epBtwBC;;AoBywBL;EjBhxBA;EACA;EACA;EiBgxBI;EACA;EACA,SpBrxBK;EoBsxBL,kBpB3yBQ;EoB4yBR,epB/wBC;;AoBkxBL;EACI,WpB/xBO;EoBgyBP;EACA,OpBpzBE;EoBqzBF;;AAGJ;EACI;EACA,OpB1zBE;EoB2zBF;;AAGJ;EACI;EACA;EACA;EACA,KpB5yBK;;AoB+yBT;EACI;;AAGJ;EACI,WpBzzBO;EoB0zBP,OpBh0BK;EoBi0BL;;AAGJ;EACI;EACA;EACA;EACA,KpB7zBK;;AoBg0BT;EAEI;EACA;EACA;EACA;EACA;;AAIA;EACI,kBpB/1BI;EoBg2BJ,OpBl2BF;;AoBq2BF;EAEI,kBpB3zBM;EoB4zBN,OpB7zBA;;AoBg0BJ;EACI,kBpBh0BM;EoBi0BN,OpBl0BA;;AoBu0BJ;EACI,kBpBj0BY;EoBk0BZ,OpBn0BM;;AoBs0BV;EACI,kBpBz0Ba;EoB00Bb,OpB30BO;;AoB80BX;EACI,kBpB10BY;EoB20BZ,OpBz3BH;;AoB43BD;EACI,kBpB/0BY;EoBg1BZ,OpB93BH;;AoBi4BD;EACI,kBpBr1BY;EoBs1BZ,OpBv1BM;;AoB21Bd;EACI;;AAGJ;EACI;EACA;EACA,KpB73BK;EoB83BL;EACA;EACA;EACA,OpB54BK;EoB64BL;EACA;EACA,epB33BC;EoB43BD;EACA;;AAEA;EACI,OpB15BH;EoB25BG,cpB35BH;EoB45BG,kBpB92BY;;AoBk3BpB;EjB74BA;EACA;EACA;EiB64BI;EACA,KpBh5BK;EoBi5BL,SpB94BM;EoB+4BN,OpB/5BK;;AoBi6BL;EACI,WpB35BG;;;AqBbX;EACI;EACA;EACA,KrBiBK;EqBhBL,erBkBM;;AGpBV;EkBFA;IAOQ;IACA;;;AAIR;ElByBA,kBHjCI;EGkCJ;EACA,eHbK;EGcL,YHZK;EGaL,SHrBS;EGWT;EACA;EkBjBI;EACA;EACA,KrBCK;EqBAL;EACA;EACA;;AAEA;EACI;EACA,YrBKA;;AqBFJ;EACI,crBjCF;EqBkCE;;AAGJ;EACI,crBtCF;EqBuCE,kBrBrCI;;AqByCZ;EACI;EACA;EACA;EACA;EACA,kBrBhDE;EqBiDF,OrBxCA;EqByCA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;ElBnCA;EACA;EACA;EkBmCI;EACA;EACA;EACA,erBhCI;EqBiCJ,kBrB/DQ;EqBgER,OrBlEE;;AqBqEN;EACI,WrBpDO;EqBqDP;EACA;;AAGJ;EACI;EACA;EACA,OrB9EE;EqB+EF;EACA;;AAGJ;EACI,WrBnEO;EqBoEP,OrB1EK;EqB2EL;;AAGJ;EACI,WrBzEO;EqB0EP,OrB7CW;EqB8CX;EACA;;AAGJ;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA,erB1EI;EqB2EJ;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAIR;EACI,SrBlGK;EqBmGL;EACA;EACA,KrBvGK;;AqB0GT;ElBpGA;EACA;EACA;EkBoGI,KrB5GK;EqB6GL,erB9GK;;AqBiHT;EACI;EACA;EACA;EACA,OrBjIK;EqBkIL,SrBvHK;EqBwHL,erB/GC;EqBgHD;EACA;EACA;EACA;;AAEA;EACI,OrB3IL;EqB4IK,kBrB9IP;;AqBkJD;EACI;EACA;EACA,KrBtIK;EqBuIL,WrB5IO;EqB6IP;EACA;;AAGJ;EACI,erB3IK;EqB4IL;;AAGJ;EACI,OrBpKC;EqBqKD,WrBzJO;EqB0JP,erBnJK;EqBoJL;;AAGJ;EACI;EACA;EACA;EACA;EACA,KrB7JK;;AqB+JL;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA,kBrBxLA;EqByLA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,KrBrLK;EqBsLL,YrBpLK;EqBqLL,WrB5LO;EqB6LP,OrBnMK;;AqBuMT;ElB1LA;EACA;EACA;EkB0LI;;AAGJ;EACI;EACA;EACA;EACA,kBrB3NE;EqB4NF;EACA;;AAGJ;EACI;IAAK;;;AAIT;EACI,YrB5MK;;AqB+MT;EACI,WrBxNO;EqByNP;EACA,erBpNK;;AqBuNT;ElB3MA;EACA;EkB4MI,KrB1NK;;AqB6NT;ElBtNA;EACA;EACA;EkBsNI,SrB9NK;EqB+NL,kBrB9OA;EqB+OA;EACA,erB1NC;EqB2ND,KrBlOK;;AGrBT;EkBiPA;IASQ;IACA;;;AAIR;ElB9NA;EACA;EkB+NI,KrB9OK;;AqBiPT;EACI;;AAGJ;EACI,WrB3PO;EqB4PP,OrBlQK;;AqBqQT;EACI;EACA;EACA,KrB3PK;EqB4PL;;AAGJ;EACI;EACA,WrBvQO;;AqB0QX;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,kBrBrPa;EqBsPb,OrBvPO;;AqB0PX;EACI,kBrBvPY;EqBwPZ,OrBzPM;;AqB4PV;EACI,kBrB3PY;EqB4PZ,OrB1SH;;AqB+SL;ElB5RA;EACA;EACA;EkB4RI;EACA,KrB9RK;EqB+RL;EACA;;AAGJ;ElBpSA;EACA;EACA;EkBoSI;EACA;EACA;EACA,kBrBlRiB;EqBmRjB,OrBpRW;;AqBuRf;EACI,WrBnTO;EqBoTP;EACA;;AAGJ;EACI,OrBjUK;EqBkUL;EACA;;AAGJ;EACI;EACA;EACA,OrBpVE;;AqBuVN;EACI;EACA,KrBjUK;EqBkUL;EACA;;;AAKR;EACI;EACA,erBlUQ;EqBmUR;EACA;EACA;EACA;EACA,YrBrUQ;EqBsUR,erB9US;;AqBgVT;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AACA;EAAW;;AAGf;EACI;;AACA;EAAW;;AAGf;EACI;;AACA;EAAW;;AAGf;EACI;EACA;EACA,SrBlXK;EqBmXL;EACA;EACA,KrBzXK;;AqB4XT;EACI;EACA;EACA,KrB7XK;;AqBgYT;EACI;EACA;EACA,OrBlZA;EqBmZA;;AAGJ;EACI,WrB9YO;EqB+YP;EACA;;AAGJ;EACI,WrBrZO;EqBsZP;EACA;;;AAMJ;ElB1YA;EACA;EkB2YI;EACA,KrBxZK;EqByZL;EACA;;AAGJ;ElB9ZA;EACA;EACA;EkB8ZI;EACA;EACA;EACA,kBrBzYgB;EqB0YhB,OrB3YU;EqB4YV;;AAGJ;EACI,OrBtbK;EqBubL,WrBjbO;EqBkbP;EACA;;;ACrcR;EACI;EACA;EACA;;AAGI;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA%22,%22file%22:%22app.output.css%22%7D */
