/* ======================================================================
   Eventos · alquipistas (módulo nuevo)
   ====================================================================== */



/* Flujo visual común de eventos ------------------------------------- */
.evt-flow-page { min-height: 650px; padding-bottom: 80px; color: #173d51; background: #f4f8fa; }
.evt-flow-page *, .evt-flow-page *::before, .evt-flow-page *::after { box-sizing: border-box; }
.evt-flow-content { position: relative; z-index: 3; max-width: 1120px; margin-top: 32px; padding: 30px; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.evt-events-content .evt-grid { margin: 0; }
.evt-events-content .evt-card { overflow: hidden; border: 1px solid #dce7eb; border-radius: 16px; box-shadow: 0 9px 25px rgba(27,61,80,.08); }
.evt-events-content .evt-card-name { padding: 17px; color: #173d51; background: #fff; font-size: 17px; font-weight: 500; }
.evt-flow-page .evt-modal-btn, .evt-flow-page .evt-form .btn, .evt-flow-page .evt-pago-card .btn { min-height: 50px; padding: 13px 20px; border: 0; border-radius: 11px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); font-size: 16px; font-weight: 400; }
.evt-flow-page .evt-main { width: 100%; border-radius: 16px; box-shadow: none; }
.evt-flow-page .evt-info { padding: 20px; border: 0; border-radius: 14px; background: #f1f6f8; }
.evt-flow-page .evt-info p { margin-bottom: 9px; color: #395863; font-size: 15px; }
.evt-flow-page .evt-descripcion { margin: 22px 0; color: #4f6974; font-size: 16px; line-height: 1.6; }
.evt-flow-page .evt-form { margin-top: 24px; padding: 25px; border: 1px solid #dce7eb; border-radius: 16px; background: #fbfcfd; }
.evt-flow-page .evt-form h2 { margin: 0 0 22px; color: #173d51; font-size: 25px; font-weight: 600; }
.evt-flow-page .evt-form label { color: #294854; font-size: 15px; font-weight: 600; }
.evt-flow-page .evt-form .form-control { min-height: 49px; padding: 10px 13px; border: 1px solid #cadbe2; border-radius: 10px; box-shadow: none; font-size: 15px; }
.evt-flow-page .evt-form input[type="checkbox"], .evt-flow-page .evt-form input[type="radio"] { width: 19px; height: 19px; accent-color: var(--tenant-primary, #012e46); vertical-align: middle; }
.evt-payment-summary { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 25px; border-radius: 15px; background: #f1f6f8; }
.evt-payment-label, .evt-payment-total span { display: block; margin: 0 0 7px; color: #6a828d; font-size: 13px; line-height: 1.3; }
.evt-payment-summary h2 { display: block; margin: 0 0 9px; color: #173d51; font-size: 25px; font-weight: 500; line-height: 1.2; }
.evt-payment-summary p { display: block; margin: 0; color: #607985; font-size: 15px; line-height: 1.4; }
.evt-payment-total { flex: 0 0 auto; text-align: right; }
.evt-payment-total strong { color: var(--tenant-primary, #012e46); font-size: 38px; font-weight: 500; line-height: 1; }
.evt-payment-heading { margin: 30px 0 17px; color: #173d51; font-size: 23px; font-weight: 500; }
.evt-flow-page .evt-pago-metodos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.evt-flow-page .evt-pago-card { display: flex; min-height: 205px; flex-direction: column; align-items: flex-start; padding: 25px; border: 1px solid #dce7eb; border-radius: 16px; background: #fff; box-shadow: none; text-align: left; }
.evt-flow-page .evt-pago-card h3 { margin: 0 0 8px; color: #173d51; font-size: 22px; font-weight: 500; }
.evt-flow-page .evt-pago-card p { flex: 1; margin: 0 0 22px; color: #647c87; font-size: 15px; }
.evt-flow-page .evt-pago-card .btn { width: 100%; }
.evt-flow-page .evt-pago-card .btn[disabled] { color: #617783; background: #dce6ea; opacity: 1; }
.evt-redsys-content { max-width: 720px; }
.evt-redsys-card { padding: 22px 12px; text-align: center; }
.evt-redsys-loader { display: block; width: 54px; height: 54px; margin: 0 auto 22px; border: 5px solid #dce8ec; border-top-color: var(--tenant-primary, #012e46); border-radius: 50%; animation: evt-redsys-spin .8s linear infinite; }
.evt-redsys-card h2 { margin: 0 0 10px; color: #173d51; font-size: 28px; font-weight: 500; }
.evt-redsys-card p { max-width: 510px; margin: 0 auto; color: #647c87; font-size: 16px; line-height: 1.55; }
.evt-redsys-submit { min-height: 50px; margin-top: 24px; padding: 13px 22px; border: 0; border-radius: 11px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); font-size: 16px; font-weight: 400; }
@keyframes evt-redsys-spin { to { transform: rotate(360deg); } }

/* Grid de tarjetas --------------------------------------------------- */
.evt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 22px;
  padding: 10px 0;
}
.evt-card {
  cursor: pointer;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
  transition: transform .15s ease, box-shadow .15s ease;
  display: flex;
  flex-direction: column;
}
.evt-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
}
.evt-card-img {
  width: 100%;
  aspect-ratio: 1 / 1.414;          /* proporción A4 vertical */
  background: #f4f4f4 center / contain no-repeat;  /* imagen entera, nunca recortada */
  display: flex;
  align-items: center;
  justify-content: center;
  color: #bbb;
  font-size: 44px;
}
.evt-card-name {
  padding: 12px 14px;
  font-weight: 600;
  font-size: 15px;
  color: #222;
  text-align: center;
}

/* Modal -------------------------------------------------------------- */
.evt-modal-bg {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .6);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.evt-modal-bg.open { display: flex; }
.evt-modal {
  background: #fff;
  border-radius: 12px;
  max-width: 720px;
  width: 100%;
  max-height: 80vh;             /* deja aire al footer fijo */
  overflow-y: auto;
  position: relative;
}
.evt-modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: rgba(255, 255, 255, .9);
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
  color: #444;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .2);
}
.evt-modal-img {
  width: 100%;
  max-height: 38vh;            /* moderada: deja sitio a meta + descripción + botón */
  object-fit: contain;
  background: #f4f4f4;
}
@media (max-width: 600px) {
  .evt-modal-img { max-height: 30vh; }
}
.evt-modal-body { padding: 22px; }
.evt-modal-body h2 { margin: 0 0 10px; font-size: 22px; color: #006699; }
.evt-modal-meta { color: #666; font-size: 14px; margin-bottom: 14px; line-height: 1.7; }
.evt-modal-desc { color: #333; line-height: 1.6; margin-bottom: 18px; }
.evt-modal-btn {
  display: inline-block;
  background: #0e415b;       /* mismo color que btn-default del proyecto */
  color: #fff;
  padding: 12px 24px;
  border-radius: 4px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
}
.evt-modal-btn:hover { background: #56bff4; color: #fff; }
.evt-modal-btn.disabled { background: #ccc; cursor: not-allowed; }

.evt-badge {
  display: inline-block;
  background: #f0f0f0;
  color: #444;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 12px;
  margin-right: 6px;
}
.evt-badge.cli-dep { background: #006699; color: #fff; }
.evt-badge.cli-cj  { background: #7b1fa2; color: #fff; }

/* Modal de eventos: ficha visual */
.evt-modal-bg { padding: 28px; background: rgba(5,24,34,.72); backdrop-filter: blur(4px); }
.evt-modal { overflow: hidden; width: min(100%, 980px); max-width: 980px; max-height: 88vh; border: 1px solid rgba(255,255,255,.4); border-radius: 22px; box-shadow: 0 30px 90px rgba(1,24,36,.32); }
.evt-modal-layout { display: grid; grid-template-columns: minmax(300px, 42%) minmax(0, 1fr); max-height: 88vh; }
.evt-modal-media { display: flex; min-height: 590px; align-items: center; justify-content: center; overflow: hidden; background: #eaf1f4; }
.evt-modal-img { width: 100%; height: 100%; max-height: 88vh; object-fit: contain; background: #eaf1f4; }
.evt-modal-img-fallback { display: flex; width: 100%; min-height: 590px; align-items: center; justify-content: center; color: var(--tenant-primary, #012e46); background: #eaf1f4; font-size: 76px; opacity: .35; }
.evt-modal-body { overflow-y: auto; padding: 42px 42px 34px; }
.evt-modal-eyebrow { display: block; margin-bottom: 8px; color: var(--tenant-primary, #012e46); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.evt-modal-body h2 { margin: 0 48px 24px 0; color: #173d51; font-size: 30px; font-weight: 500; line-height: 1.18; }
.evt-modal-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 25px; color: #173d51; line-height: 1.4; }
.evt-modal-meta-row { min-width: 0; padding: 12px 14px; border: 1px solid #dce7eb; border-radius: 11px; background: #f7fafb; }
.evt-modal-meta-row > span { display: block; margin-bottom: 3px; color: #748994; font-size: 11px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.evt-modal-meta-row > strong { display: block; overflow-wrap: anywhere; color: #294754; font-size: 14px; font-weight: 500; }
.evt-modal-organizer { grid-column: 1 / -1; display: flex; align-items: center; gap: 9px; padding-top: 3px; color: #748994; font-size: 12px; }
.evt-modal-organizer .evt-badge { margin: 0; padding: 5px 10px; border-radius: 20px; }
.evt-modal-desc { margin: 0 0 26px; color: #506a76; font-size: 15px; line-height: 1.65; }
.evt-modal-desc p:last-child { margin-bottom: 0; }
.evt-modal-actions { padding-top: 3px; }
.evt-flow-page .evt-modal-btn { display: inline-flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; padding: 13px 22px; border-radius: 12px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); font-size: 16px; font-weight: 400; }
.evt-flow-page .evt-modal-btn:hover { color: var(--tenant-text, #fff); filter: brightness(1.08); }
.evt-flow-page .evt-modal-btn.disabled { color: #607681; background: #dce6ea; filter: none; }
.evt-modal-close { z-index: 3; top: 15px; right: 15px; width: 40px; height: 40px; border: 1px solid #d7e3e8; color: #173d51; background: rgba(255,255,255,.96); box-shadow: 0 5px 16px rgba(18,50,66,.14); font-size: 25px; }

@media (max-width: 767px) {
  .evt-modal-bg { align-items: flex-end; height: 100dvh; padding: 0; }
  .evt-modal { width: 100%; height: 92dvh; max-height: 92dvh; border: 0; border-radius: 20px 20px 0 0; }
  .evt-modal-layout { display: block; height: 100%; max-height: none; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .evt-modal-media { min-height: 0; height: 31vh; max-height: 300px; }
  .evt-modal-img { width: 100%; height: 100%; max-height: none; }
  .evt-modal-img-fallback { min-height: 100%; font-size: 54px; }
  .evt-modal-body { overflow: visible; padding: 25px 18px max(30px, calc(22px + env(safe-area-inset-bottom))); }
  .evt-modal-eyebrow { font-size: 10px; }
  .evt-modal-body h2 { margin: 0 45px 18px 0; font-size: 24px; }
  .evt-modal-meta { grid-template-columns: 1fr; gap: 8px; margin-bottom: 20px; }
  .evt-modal-meta-row { padding: 10px 12px; }
  .evt-modal-organizer { grid-column: auto; }
  .evt-modal-desc { margin-bottom: 20px; font-size: 14px; }
  .evt-modal-close { top: 12px; right: 12px; }
}

/* Detalle / formulario ---------------------------------------------- */
.evt-detalle img.evt-main {
  width: 100%;
  max-height: 80vh;
  object-fit: contain;          /* en el detalle, cartel A4 al completo */
  border-radius: 8px;
  background: #f4f4f4;
  display: block;
}
.evt-descripcion {
  color: #333;
  line-height: 1.6;
  margin: 0 0 18px;
}
.evt-info {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 16px;
  margin-top: 16px;
}
.evt-info p { margin: 0 0 6px; }
.evt-form {
  background: #fff;
  border: 1px solid #e3e3e3;
  border-radius: 8px;
  padding: 20px;
}
.evt-form h2 { font-size: 20px; margin: 0 0 14px; }
.evt-form .form-group { margin-bottom: 14px; }
.evt-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.evt-form .req { color: #c00; }
.evt-form .form-control {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
}
.evt-form textarea.form-control { min-height: 90px; }
.evt-form .btn-primary {
  background: #006699;
  color: #fff;
  border: none;
  padding: 12px 22px;
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
}
.evt-form .btn-primary:hover { background: #00547a; }
.evt-form .nota {
  font-size: 12px;
  color: #888;
  margin-top: 14px;
}
.evt-honeypot {
  position: absolute;
  left: -9999px;
}

.evt-alert {
  padding: 14px;
  border-radius: 6px;
  margin-bottom: 14px;
}
.evt-alert.info    { background: #cfe2ff; border: 1px solid #9ec5fe; color: #084298; }
.evt-alert.warn    { background: #fff3cd; border: 1px solid #ffecb5; color: #664d03; }
.evt-alert.danger  { background: #f8d7da; border: 1px solid #f5c2c7; color: #842029; }
.evt-alert ul { margin: 6px 0 0 18px; }

/* Mis inscripciones ------------------------------------------------- */
.evt-mis-page {
  --evt-navy: #0c3349;
  --evt-blue: #087da8;
  --evt-sky: #57c3e8;
  --evt-ink: #172b38;
  --evt-muted: #647985;
  --evt-line: #dfe9ee;
  --evt-bg: #f4f8fa;
  --evt-orange: #ec7718;
  background: var(--evt-bg);
  color: var(--evt-ink);
  min-height: 620px;
  padding-bottom: 90px;
}
.evt-mis-page *, .evt-mis-page *::before, .evt-mis-page *::after { box-sizing: border-box; }
.evt-mis-hero {
  position: relative;
  overflow: hidden;
  color: var(--evt-hero-text, #fff);
  padding: 26px 0 74px;
  background: var(--evt-hero-primary, #012e46);
}
.evt-mis-hero::before, .evt-mis-hero::after {
  content: '';
  position: absolute;
  border: 1px solid #fff;
  opacity: .32;
  border-radius: 50%;
  pointer-events: none;
}
.evt-mis-hero::before { width: 360px; height: 360px; right: -130px; top: -210px; }
.evt-mis-hero::after { width: 210px; height: 210px; right: 80px; bottom: -150px; }
.evt-mis-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--evt-hero-text, #fff);
  opacity: .78;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
  margin-bottom: 25px;
}
.evt-mis-back:hover, .evt-mis-back:focus { color: var(--evt-hero-text, #fff); opacity: 1; text-decoration: none; }
.evt-mis-back .fa { font-size: 20px; }
.evt-mis-hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.evt-mis-eyebrow {
  display: block;
  color: var(--evt-blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  margin-bottom: 7px;
}
.evt-mis-hero .evt-mis-eyebrow { color: var(--evt-hero-text, #fff); }
.evt-mis-hero h1 { color: var(--evt-hero-text, #fff); font-size: 40px; line-height: 1.1; margin: 0 0 9px; letter-spacing: -.025em; }
.evt-mis-hero p { color: var(--evt-hero-text, #fff); opacity: .72; font-size: 16px; margin: 0; }
.evt-wallet {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 190px;
  padding: 13px 17px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px;
  background: rgba(255,255,255,.1);
  box-shadow: 0 12px 28px rgba(0,0,0,.1);
  backdrop-filter: blur(8px);
}
.evt-wallet-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; color: #092c40; background: #78d7f5; font-size: 16px; }
.evt-wallet small, .evt-wallet strong { display: block; }
.evt-wallet small { color: rgba(255,255,255,.66); font-size: 10px; text-transform: uppercase; letter-spacing: .09em; }
.evt-wallet strong { color: #fff; font-size: 18px; margin-top: 1px; }
.evt-mis-content { position: relative; margin-top: -38px; }
.evt-alert { display: flex; align-items: center; gap: 10px; }
.evt-alert .fa { font-size: 20px; }
.evt-alert-success { background: #e5f7ed; border: 1px solid #b7e5ca; color: #17653a; }
.evt-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #fff;
  border: 1px solid rgba(12,51,73,.06);
  border-radius: 17px;
  box-shadow: 0 14px 45px rgba(12,51,73,.09);
  margin-bottom: 38px;
}
.evt-summary-item { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 20px; position: relative; }
.evt-summary-item + .evt-summary-item::before { content: ''; position: absolute; left: 0; top: 21px; bottom: 21px; width: 1px; background: var(--evt-line); }
.evt-summary-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; font-size: 16px; }
.evt-summary-all { color: #087da8; background: #e3f5fb; }
.evt-summary-confirmed { color: #17804b; background: #e4f6ec; }
.evt-summary-attention { color: #b4510c; background: #fff0e1; }
.evt-summary-item strong, .evt-summary-item small { display: block; }
.evt-summary-item strong { color: var(--evt-ink); font-size: 24px; line-height: 1; }
.evt-summary-item small { color: var(--evt-muted); font-size: 11px; margin-top: 5px; text-transform: uppercase; letter-spacing: .06em; }
.evt-mis-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 0 0 19px; }
.evt-mis-toolbar h2 { color: var(--evt-ink); font-size: 24px; margin: 0; }
.evt-filter { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.evt-filter button {
  appearance: none;
  border: 1px solid var(--evt-line);
  border-radius: 999px;
  background: #fff;
  color: var(--evt-muted);
  padding: 8px 12px;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: .18s ease;
}
.evt-filter button span { display: inline-grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; margin-left: 4px; border-radius: 10px; background: #edf3f5; font-size: 10px; }
.evt-filter button:hover { border-color: #8bb9ca; color: var(--evt-blue); }
.evt-filter button.is-active { color: #fff; border-color: var(--evt-navy); background: var(--evt-navy); box-shadow: 0 5px 14px rgba(12,51,73,.18); }
.evt-filter button.is-active span { color: var(--evt-navy); background: #fff; }
.evt-mis-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 22px; }
.evt-mis-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(12,51,73,.08);
  border-radius: 17px;
  box-shadow: 0 8px 26px rgba(12,51,73,.07);
  transition: transform .2s ease, box-shadow .2s ease;
}
.evt-mis-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(12,51,73,.13); }
.evt-mis-card.is-filtered-out { display: none; }
.evt-mis-media { height: 190px; position: relative; overflow: hidden; background: #dcebf0; }
.evt-mis-img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.evt-mis-card:hover .evt-mis-img { transform: scale(1.035); }
.evt-mis-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,28,40,.08) 28%, rgba(5,28,40,.58) 100%); pointer-events: none; }
.evt-mis-media-empty { display: grid; place-items: center; color: rgba(255,255,255,.7); font-size: 55px; background: linear-gradient(145deg, #157c9f, #0b3850); }
.evt-status-badge {
  position: absolute;
  z-index: 1;
  top: 13px;
  left: 13px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: calc(100% - 26px);
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  color: #fff;
  background: rgba(12,51,73,.86);
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
  font-size: 11px;
  font-weight: 700;
  backdrop-filter: blur(6px);
}
.evt-status-attention .evt-status-badge { background: rgba(224,93,15,.92); }
.evt-status-confirmed .evt-status-badge { background: rgba(18,128,75,.92); }
.evt-status-inactive .evt-status-badge { background: rgba(82,93,101,.9); }
.evt-date-tile { position: absolute; z-index: 1; left: 14px; bottom: 13px; display: flex; align-items: baseline; gap: 7px; color: #fff; }
.evt-date-tile strong { font-size: 28px; line-height: 1; }
.evt-date-tile small { max-width: 95px; overflow: hidden; white-space: nowrap; font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.evt-mis-body { flex: 1; padding: 20px 20px 17px; }
.evt-card-topline { display: flex; align-items: center; justify-content: space-between; min-height: 19px; gap: 10px; margin-bottom: 8px; }
.evt-category { color: var(--evt-blue); font-size: 11px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evt-insc-number { color: #9aacb5; font-size: 10px; font-weight: 700; }
.evt-mis-body h3 { color: var(--evt-ink); font-size: 20px; line-height: 1.3; margin: 0 0 18px; }
.evt-event-meta { display: grid; gap: 11px; }
.evt-event-meta p { display: flex; align-items: center; gap: 11px; color: #334d5b; font-size: 13px; line-height: 1.25; margin: 0; min-width: 0; }
.evt-event-meta p > .fa { flex: 0 0 28px; display: grid; place-items: center; width: 28px; height: 28px; color: var(--evt-blue); border-radius: 8px; background: #eaf6fa; }
.evt-event-meta p > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evt-event-meta small { display: block; color: #91a1a9; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 2px; }
.evt-motivo { background: #fff4e8; border-left: 3px solid var(--evt-orange); color: #754421; padding: 10px 12px; border-radius: 4px; font-size: 12px; margin-top: 15px; }
.evt-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #edf2f4; padding: 15px 20px; }
.evt-price small, .evt-price strong { display: block; }
.evt-price small { color: #91a1a9; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.evt-price strong { color: var(--evt-ink); font-size: 17px; }
.evt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 9px; padding: 10px 14px; font-size: 12px; font-weight: 800; text-decoration: none; transition: .18s ease; }
.evt-btn:hover, .evt-btn:focus { color: #fff; text-decoration: none; transform: translateY(-1px); }
.evt-btn-primary, .evt-btn-ticket { color: #fff; background: var(--evt-navy); }
.evt-btn-primary:hover, .evt-btn-ticket:hover { background: var(--evt-blue); }
.evt-btn-action { color: #fff; background: var(--evt-orange); box-shadow: 0 5px 14px rgba(236,119,24,.22); }
.evt-btn-action:hover { background: #ce5d08; }
.evt-card-status-copy { color: var(--evt-muted); font-size: 11px; font-weight: 700; text-align: right; }
.evt-card-status-copy .fa { margin-right: 3px; }
.evt-filter-empty { text-align: center; color: var(--evt-muted); padding: 55px 15px; }
.evt-filter-empty .fa { color: #a9bec8; font-size: 30px; }
.evt-filter-empty p { margin: 8px 0 0; }
.evt-empty-state { text-align: center; max-width: 620px; margin: 0 auto; padding: 65px 30px; border: 1px solid rgba(12,51,73,.07); border-radius: 18px; background: #fff; box-shadow: 0 14px 45px rgba(12,51,73,.09); }
.evt-empty-illustration { position: relative; display: grid; place-items: center; width: 90px; height: 90px; color: var(--evt-blue); background: #e7f6fb; border-radius: 28px; font-size: 36px; margin: 0 auto 25px; transform: rotate(-4deg); }
.evt-empty-illustration .fa { transform: rotate(4deg); }
.evt-empty-plus { position: absolute; right: -7px; top: -7px; display: grid; place-items: center; width: 29px; height: 29px; color: #fff; background: var(--evt-orange); border: 4px solid #fff; border-radius: 50%; font-size: 15px; font-weight: 700; }
.evt-empty-state h2 { color: var(--evt-ink); font-size: 27px; margin: 0 0 10px; }
.evt-empty-state p { color: var(--evt-muted); font-size: 14px; line-height: 1.65; margin: 0 auto 24px; max-width: 460px; }

/* Pago: tarjetas de método ----------------------------------------- */
.evt-pago-metodos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
  margin-top: 14px;
}
.evt-pago-card {
  background: #fff;
  border: 1px solid #e3e3e3;
  border-radius: 10px;
  padding: 22px;
  text-align: center;
}
.evt-pago-icon { font-size: 42px; color: #006699; margin-bottom: 10px; }
.evt-pago-card h3 { margin: 0 0 6px; }
.evt-pago-card p  { color: #666; margin: 0 0 14px; font-size: 14px; }

/* Selector de categoría --------------------------------------------- */
.evt-categoria-opt {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  margin-bottom: 8px;
  border: 1px solid #ddd;
  border-radius: 6px;
  cursor: pointer;
  background: #fff;
  transition: border-color .15s, background .15s;
}
.evt-categoria-opt:hover { border-color: #006699; background: #f6fbfd; }
.evt-categoria-opt.disabled { opacity: .55; cursor: not-allowed; }
.evt-categoria-opt input[type="radio"] { margin: 0; }
.evt-cat-nombre  { flex: 1; font-weight: 600; }
.evt-cat-precio  { color: #006699; font-weight: 600; min-width: 70px; text-align: right; }
.evt-cat-plazas  { color: #888; font-size: 12px; min-width: 80px; text-align: right; }
@media (max-width: 480px) {
  .evt-categoria-opt { flex-wrap: wrap; }
  .evt-cat-plazas { width: 100%; text-align: left; }
}

/* OK page ----------------------------------------------------------- */
.evt-ok           { text-align: center; max-width: 700px; margin: 0 auto; padding: 30px 16px; }
.evt-ok-icon      { font-size: 64px; color: #28a745; margin-bottom: 16px; }
.evt-ok h1        { margin: 0 0 12px; }
.evt-ok .titulo   { font-size: 22px; font-weight: 600; color: #006699; margin-bottom: 24px; }
.evt-ok .siguiente {
  background: #fff3cd;
  border: 1px solid #ffecb5;
  color: #664d03;
  padding: 18px;
  border-radius: 8px;
  text-align: left;
  margin-bottom: 24px;
}
.evt-ok .btn-volver {
  background: #0e415b;          /* alineado con btn-default */
  color: #fff;
  padding: 12px 24px;
  border-radius: 4px;
  text-decoration: none;
  display: inline-block;
}
.evt-ok .btn-volver:hover { background: #56bff4; color: #fff; }

/* Responsive --------------------------------------------------------- */
@media (max-width: 600px) {
  .evt-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
  .evt-card-name { font-size: 14px; padding: 10px; }
}

@media (max-width: 767px) {
  .evt-flow-page { padding-bottom: 55px; }
  .evt-flow-content { margin-top: 20px; padding: 17px; border-radius: 17px; }
  .evt-flow-page .evt-detalle > .row { margin: 0; }
  .evt-flow-page .evt-detalle > .row > [class*="col-"] { padding: 0; }
  .evt-flow-page .evt-detalle > .row > [class*="col-"] + [class*="col-"] { margin-top: 20px; }
  .evt-flow-page .evt-form { padding: 18px; }
  .evt-payment-summary { display: block; padding: 19px; }
  .evt-payment-total { margin-top: 22px; text-align: left; }
  .evt-flow-page .evt-pago-metodos { grid-template-columns: 1fr; }
  .evt-mis-page { padding-bottom: 60px; }
  .evt-mis-hero { padding: 20px 0 64px; }
  .evt-mis-back { margin-bottom: 18px; }
  .evt-mis-hero-row { align-items: flex-start; }
  .evt-mis-hero h1 { font-size: 31px; }
  .evt-mis-hero p { font-size: 13px; }
  .evt-wallet { min-width: 0; padding: 10px 12px; }
  .evt-wallet-icon { display: none; }
  .evt-wallet strong { font-size: 15px; }
  .evt-mis-content { margin-top: -30px; }
  .evt-summary { margin-bottom: 30px; }
  .evt-summary-item { gap: 8px; padding: 16px 10px; }
  .evt-summary-icon { width: 34px; height: 34px; border-radius: 9px; font-size: 13px; }
  .evt-summary-item strong { font-size: 20px; }
  .evt-summary-item small { font-size: 8px; }
  .evt-mis-toolbar { display: block; }
  .evt-mis-toolbar h2 { font-size: 21px; }
  .evt-filter { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding: 13px 0 4px; -webkit-overflow-scrolling: touch; }
  .evt-filter button { flex: 0 0 auto; }
  .evt-mis-grid { grid-template-columns: 1fr; gap: 17px; }
  .evt-mis-media { height: 175px; }
}

/* Encabezado de usuario autenticado. Copia reversible: header.before-auth-redesign.php.bak */
.user-header { position: relative; z-index: 1000; min-height: 78px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); box-shadow: 0 5px 18px rgba(1,46,70,.13); }
.user-header .header_1 { width: 100%; max-width: 1380px; margin: 0 auto; padding: 0 28px; }
.user-header .header_1 > .row { display: flex; min-height: 78px; align-items: center; margin: 0; }
.user-header .public-login-logo { position: static; float: none; flex: 0 0 220px; width: 220px; padding: 0; }
.user-header .public-login-logo > div { text-align: left; }
.user-header .public-login-logo .navbar-brand { float: none; display: inline-flex; width: 210px; height: 62px; align-items: center; justify-content: center; margin: 0; padding: 6px 12px; border: 1px solid rgba(255,255,255,.55); border-radius: 9px; background: #fff; box-shadow: 0 2px 7px rgba(1,25,38,.08); }
/* El logo se ajusta a la caja SIN deformarse.
   Antes el tope era 38px de alto: un logo alargado (el de Alquipistas, 4:1)
   llenaba los 178px de ancho, pero uno mas cuadrado (los de delegacion, 3:1)
   se quedaba en 112px y parecia diminuto al lado. Subiendo el alto, los dos
   ocupan un sitio parecido y manda el ancho, que es lo que se ve. */
/* El padding: 0 es a proposito. responsive.css le mete padding-left:65px al
   logo por debajo de 800px -regla del diseno viejo-, y esos 65px se comian
   el ancho: el logo salia aplastado en el movil. */
.user-header .public-login-logo img { display: block; flex: 0 0 auto; width: auto; height: auto; max-width: 186px; max-height: 56px; padding: 0; object-fit: contain; }
.user-header .login { position: static; float: none; flex: 1; width: auto; padding: 0; }
.user-header .login > form, .user-header .login > form > .col-md-20 { width: 100%; margin: 0; padding: 0; }
.user-header .login .form-group { display: flex; width: 100%; align-items: center; margin: 0; padding: 0; }
.user-header .user-header-content { display: flex; flex: 1; align-items: center; }
.user-header br { display: none; }
.user-header .navbar-collapse.user-main-nav, .user-header #bs-navbar-collapse-1 { order: 1; flex: 1; min-height: 0 !important; padding: 0; border: 0; box-shadow: none; }
.user-header .navbar-nav { display: flex; float: none; align-items: center; justify-content: center; margin: 0; }
.user-header .navbar-nav > li { float: none; }
.user-header .navbar-nav > li > a { position: relative; padding: 23px 13px 22px; color: var(--tenant-text, #fff) !important; background: transparent !important; font-size: 15px; font-weight: 400; }
.user-header .navbar-nav > li > a::after { position: absolute; right: 13px; bottom: 15px; left: 13px; height: 2px; content: ''; background: var(--tenant-secondary, #25dfe5); transform: scaleX(0); transition: transform .18s ease; }
.user-header .navbar-nav > li > a:hover::after, .user-header .navbar-nav > li > a:focus::after { transform: scaleX(1); }
.user-account-menu { order: 2; flex: 0 0 auto; margin-left: auto; padding-left: 18px; }
.user-account-trigger { display: inline-flex; min-height: 44px; align-items: center; gap: 9px; padding: 5px 12px 5px 6px; border: 1px solid rgba(255,255,255,.25); border-radius: 23px; color: var(--tenant-text, #fff); background: rgba(255,255,255,.08); font-size: 14px; }
.user-account-trigger:hover, .user-account-trigger:focus { background: rgba(255,255,255,.15); outline: 0; }
.user-account-avatar { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; color: var(--tenant-primary, #012e46); background: var(--tenant-secondary, #25dfe5); font-size: 15px; font-weight: 600; }
.user-account-name { overflow: hidden; max-width: 170px; text-overflow: ellipsis; white-space: nowrap; }
.user-account-trigger .caret { margin-left: 2px; }
.user-account-menu .dropdown-menu { min-width: 205px; margin-top: 10px; padding: 8px; border: 1px solid #dce7eb; border-radius: 13px; box-shadow: 0 14px 38px rgba(1,46,70,.18); }
.user-account-menu .dropdown-menu > li > a, .user-logout-button { display: block; width: 100%; padding: 10px 12px; border: 0; border-radius: 8px; color: #173d51; background: transparent; text-align: left; font-size: 14px; font-weight: 400; }
.user-account-menu .dropdown-menu > li > a:hover, .user-logout-button:hover { color: #173d51; background: #eef4f7; }
.user-account-menu .divider { margin: 5px 0; }
.user-menu-toggle { display: none; width: 44px; height: 42px; padding: 10px; border: 1px solid rgba(255,255,255,.28); border-radius: 10px; background: transparent; }
.user-menu-toggle span { display: block; width: 22px; height: 2px; margin: 4px 0; background: var(--tenant-text, #fff); }

@media (max-width: 900px) {
  .user-header .header_1 { padding: 0 16px; }
  .user-header .public-login-logo { flex-basis: 190px; width: 190px; }
  .user-header .public-login-logo .navbar-brand { width: 180px; height: 58px; }
  .user-header .public-login-logo img { max-width: 158px; max-height: 50px; }
  .user-header .navbar-nav > li > a { padding-right: 9px; padding-left: 9px; font-size: 14px; }
}

@media (max-width: 767px) {
  .user-header, .user-header .header_1 > .row { min-height: 70px; }
  /* Todo en una sola fila: el logo a la izquierda y a su derecha la cuenta
     y la hamburguesa. Con flex-wrap se iban a una segunda linea y la
     cabecera crecia al doble. */
  .user-header .header_1 > .row { flex-wrap: nowrap; }
  .user-header .public-login-logo { flex: 0 1 auto; width: auto; min-width: 0; }
  .user-header .user-header-content { flex: 1 1 auto; justify-content: flex-end; }
  .user-header .public-login-logo .navbar-brand { width: 176px; height: 58px; padding: 6px 10px; }
  .user-header .public-login-logo img { max-width: 156px; max-height: 48px; }
  .user-header .login { flex: 0 0 auto; }
  .user-header .user-header-content { gap: 8px; }
  /* Primero el menu de la cuenta y despues la hamburguesa. */
  .user-account-menu { display: flex; order: 1; margin-left: auto; padding-left: 8px; }
  .user-menu-toggle { display: block; order: 2; margin-left: 10px; }
  .user-account-name { max-width: 105px; }
  .user-header #bs-navbar-collapse-1 { position: absolute; top: 70px; right: 0; left: 0; width: 100%; padding: 10px 16px 16px; background: var(--tenant-primary, #012e46); box-shadow: 0 12px 22px rgba(1,46,70,.18); }
  .user-header #bs-navbar-collapse-1.collapse { display: none !important; }
  .user-header #bs-navbar-collapse-1.collapse.in { display: block !important; }
  /* El menu desplegado tiene fondo azul, asi que su texto va en claro.
     La regla de arriba apunta a .navbar-nav y este menu usa .nav, por eso
     no le llegaba: los enlaces se quedaban del mismo color que el fondo y
     no se veia nada. */
  .user-header #bs-navbar-collapse-1 a,
  .user-header #bs-navbar-collapse-1 .nav-link,
  .user-header #bs-navbar-collapse-1 li > a { color: var(--tenant-text, #fff) !important; }
  .user-header #bs-navbar-collapse-1 a:hover,
  .user-header #bs-navbar-collapse-1 a:focus { color: var(--tenant-secondary, #25dfe5) !important; }
  .user-header .navbar-nav { display: block; }
  .user-header .navbar-nav > li > a { padding: 12px 10px; border-radius: 8px; }
  .user-header .navbar-nav > li > a:hover { background: rgba(255,255,255,.09) !important; }
  .user-header .navbar-nav > li > a::after { display: none; }
}

/* Pie de página global: forma parte del documento y nunca cubre el contenido. */
.public-login-header { position: relative; min-height: 720px; color: #fff; background-image: linear-gradient(270deg, #fff 0%, rgba(255,255,255,.98) 25%, rgba(255,255,255,.82) 37%, rgba(255,255,255,.28) 51%, rgba(255,255,255,0) 65%), linear-gradient(90deg, rgba(5,25,35,.38) 0%, rgba(5,25,35,0) 52%), url("../images/login-portada-v3.png"); background-position: center; background-size: cover; }
.public-login-header .header_1 { width: 100%; max-width: 1320px; min-height: 720px; padding: 0 42px; }
.public-login-header .header_1 > .row { position: relative; min-height: 720px; margin: 0; }
.public-login-intro { position: absolute; top: 50%; left: 20px; width: min(46%, 570px); text-align: left; transform: translateY(-50%); }
.public-login-eyebrow { display: block; margin-bottom: 18px; color: #fff; font-size: 14px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; }
.public-login-intro h1 { margin: 0 0 22px; color: #fff; font-size: clamp(44px, 5vw, 70px); font-weight: 400; letter-spacing: -.035em; line-height: .98; text-shadow: 0 2px 25px rgba(0,0,0,.18); }
.public-login-intro p { max-width: 530px; margin: 0; color: rgba(255,255,255,.92); font-size: 19px; line-height: 1.55; }
.public-login-header .public-login-logo { position: absolute; top: 42px; right: 20px; left: auto; float: none; width: 430px; padding: 0; border: 0; border-radius: 0; z-index: 2; background: transparent; box-shadow: none; }
.public-login-header .public-login-logo .navbar-brand { float: none; display: block; height: auto; margin: 0; padding: 0; text-align: left; }
.public-login-header .public-login-logo img { display: block; width: auto; max-width: 230px; max-height: 60px; margin: 0; object-fit: contain; }
.public-login-header .login { position: absolute; top: 145px; right: 20px; left: auto; float: none; width: 430px; padding: 0; }
.public-login-card { margin: 0 !important; padding: 34px; border: 1px solid rgba(255,255,255,.55); border-radius: 22px; color: #173d51; background: rgba(255,255,255,.96); box-shadow: 0 24px 65px rgba(5,27,39,.24); backdrop-filter: blur(10px); }
.public-login-heading { margin-bottom: 27px; }
.public-login-heading > span { display: block; margin-bottom: 7px; color: #65808c; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.public-login-heading h2 { margin: 0 0 8px; color: #122f3d; font-size: 30px; font-weight: 500; letter-spacing: -.02em; }
.public-login-heading p { margin: 0; color: #71858e; font-size: 15px; }
.public-login-card .form-inline > div:first-child { display: grid; grid-template-columns: 1fr; gap: 17px; }
.public-login-card .form-group { position: relative; display: block; width: 100%; margin: 0; }
.public-login-card .form-group label { display: block; margin: 0 0 7px; color: #294754; font-size: 14px; font-weight: 500; }
.public-login-card .form-control { display: block; width: 100%; height: 52px; padding: 12px 14px; border: 1px solid #cbdbe2; border-radius: 11px; color: #173d51; background: #fff; box-shadow: none; font-size: 16px; }
.public-login-card .form-control:focus { border-color: #327a96; box-shadow: 0 0 0 3px rgba(50,122,150,.12); }
.public-login-password .form-control { padding-right: 50px; }
.public-login-eye { position: absolute; right: 5px; bottom: 5px; width: 42px; height: 42px; border: 0; border-radius: 9px; color: #55717d; background: transparent; }
.public-login-submit { width: 100%; min-height: 52px; margin: 3px 0 0; border: 0 !important; border-radius: 11px !important; color: #fff !important; background: #012e46 !important; font-size: 16px; font-weight: 400; }
.public-login-links { float: none; width: 100%; margin: 22px 0 0; padding: 0; }
.public-login-card .public-login-links .pass { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 9px 15px; margin: 0; }
.public-login-card .public-login-links .pass a { color: #315d70 !important; font-size: 13px; font-weight: 400; }
.public-login-card .error_login:empty { display: none; }
.public-login-card .error_login:not(:empty) { margin-top: 20px; padding: 12px 14px; border: 1px solid #efc5c8; border-radius: 10px; color: #9e2e35; background: #fff0f1; font-size: 14px; }
.public-login-card .error_login p { margin: 0; }
.public-login-home-content { display: none; }
.public-login-header .public-events { position: relative; clear: both; width: 100%; padding: 64px 0 72px; color: #173d51; background: #f4f8fa; }
.public-events-inner { max-width: 1180px; }
.public-events-heading { margin-bottom: 28px; }
.public-events-heading > span { display: block; margin-bottom: 6px; color: #66808b; font-size: 13px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.public-events-heading h2 { margin: 0 0 8px; color: #173d51; font-size: 34px; font-weight: 500; line-height: 1.15; }
.public-events-heading p { margin: 0; color: #6a818b; font-size: 16px; }
.public-events-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.public-event-card { display: flex; overflow: hidden; min-width: 0; flex-direction: column; border: 1px solid #dce7eb; border-radius: 17px; color: #173d51; background: #fff; box-shadow: 0 10px 28px rgba(27,61,80,.08); text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.public-event-card:hover { color: #173d51; box-shadow: 0 16px 36px rgba(27,61,80,.13); text-decoration: none; transform: translateY(-3px); }
.public-event-media { display: block; overflow: hidden; width: 100%; height: 210px; background: #eaf0f3; }
.public-event-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.public-event-card:hover .public-event-media img { transform: scale(1.025); }
.public-event-name { display: block; padding: 19px 20px 7px; color: #173d51; font-size: 20px; font-weight: 500; line-height: 1.3; }
.public-event-date { display: block; padding: 0 20px 5px; color: #315d70; font-size: 14px; font-weight: 500; line-height: 1.4; }
.public-event-organizer { display: block; padding: 0 20px 7px; color: #6b818b; font-size: 14px; line-height: 1.4; }
.public-event-link { display: block; margin-top: auto; padding: 6px 20px 20px; color: #53717d; font-size: 14px; }
.inicio-options { display: flex; min-height: calc(100vh - 300px); align-items: center; justify-content: center; margin-top: 0; margin-bottom: 0; padding-top: 35px; padding-bottom: 35px; }
/* Rejilla de la portada de delegaciones.
   Era flex con columnas de Bootstrap y la altura de la foto clavada a 240px en
   el propio HTML. En el movil eso dejaba las seis tarjetas una debajo de otra,
   con solo los 10px de relleno de la columna separandolas y ocupando 240px
   cada una: una tira interminable y pegadas entre si.
   Ahora es una rejilla de verdad, con su separacion y su proporcion. */
.inicio-options-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: 100%; margin: 0; }
/* El contenedor conserva la clase .row de Bootstrap, y sus pseudo-elementos
   de limpieza (::before y ::after) cuentan como celdas de la rejilla: se
   comian la primera y empujaban todo, dejando la primera fila con dos
   tarjetas y una suelta al final. Por eso en el PC salia descuadrado. */
.inicio-options-grid::before, .inicio-options-grid::after { display: none; }
.inicio-option { min-width: 0; }
.inicio-option a { display: block; }
.inicio-option img {
  display: block;
  width: 100%;
  /* Proporcion en vez de altura fija: la foto se adapta al ancho que le toque
     en cada pantalla, y no deja seis bloques de 240px en el movil. */
  aspect-ratio: 16 / 10;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
  transition: transform .18s ease, box-shadow .18s ease;
}
.inicio-option a:hover img { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(1, 46, 70, .18); }

/* Navegadores sin aspect-ratio (Safari viejo): al menos que no se estire. */
@supports not (aspect-ratio: 1 / 1) {
  .inicio-option img { height: 240px; }
}

@media (max-width: 991px) { .inicio-options-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 479px) { .inicio-options-grid { grid-template-columns: 1fr; gap: 14px; } }
.alquileres-options-vertical { display: flex; min-height: calc(100vh - 300px); flex-direction: column; justify-content: center; margin-top: 0; margin-bottom: 0; }
#footer.site-footer { position: static !important; inset: auto !important; z-index: auto !important; width: 100%; margin: 60px 0 0; padding: 0; color: var(--footer-text, #fff); background: var(--footer-primary, #012e46); }
.site-footer .site-footer-inner { display: grid; grid-template-columns: 1fr; gap: 18px; padding-top: 24px; padding-bottom: 18px; }
.site-footer-brand { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.site-footer-brand strong { overflow-wrap: anywhere; color: var(--footer-text, #fff); font-size: 16px; font-weight: 750; line-height: 1.25; }
.site-footer-brand span { color: var(--footer-text, #fff); font-size: 12px; opacity: .68; }
.site-footer-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9px 24px; }
.site-footer-nav a { position: relative; color: var(--footer-text, #fff); font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: none; opacity: .9; }
.site-footer-nav a:hover { color: var(--footer-secondary, #25dfe5); opacity: 1; }
.site-footer-bottom { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.18); color: var(--footer-text, #fff); font-size: 14px; line-height: 1.45; opacity: .82; }
.site-footer-bottom a { color: inherit; font-weight: 700; text-decoration: none; }

@media (max-width: 767px) {
  .public-login-header { min-height: 675px; background-image: linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)), url("../images/login-portada-v3.png"); background-position: 68% center; }
  .public-login-header .header_1, .public-login-header .header_1 > .row { min-height: 675px; padding: 0; }
  .public-login-header::before { display: none; }
  .public-login-intro { display: none; }
  .public-login-header .public-login-logo { top: 34px; right: 20px; left: 20px; width: auto; padding: 0; }
  .public-login-header .public-login-logo img { max-width: 190px; max-height: 54px; }
  .public-login-header .login { top: 115px; right: 14px; left: 14px; width: auto; }
  .public-login-card { padding: 25px 20px; border-radius: 18px; }
  .public-login-heading h2 { font-size: 25px; }
  .public-login-card .public-login-links .pass { flex-direction: column; }
  .public-login-header .public-events { padding: 42px 0 48px; }
  .public-events-inner { padding-right: 16px; padding-left: 16px; }
  .public-events-heading { margin-bottom: 21px; }
  .public-events-heading h2 { font-size: 27px; }
  .public-events-heading p { font-size: 14px; line-height: 1.45; }
  .public-events-grid { grid-template-columns: 1fr; gap: 15px; }
  .public-event-card { display: grid; grid-template-columns: 118px minmax(0, 1fr); grid-template-rows: auto auto auto auto; min-height: 128px; }
  .public-event-media { grid-row: 1 / 5; width: 118px; height: 100%; min-height: 128px; }
  .public-event-name { align-self: end; padding: 12px 16px 2px; font-size: 17px; }
  .public-event-date { padding: 1px 16px 0; font-size: 12px; }
  .public-event-organizer { padding: 1px 16px 0; font-size: 12px; }
  .public-event-link { align-self: start; padding: 3px 16px 16px; font-size: 13px; }
  .inicio-options { min-height: calc(100vh - 250px); padding-top: 26px; padding-bottom: 26px; }
  .alquileres-options-vertical { min-height: calc(100vh - 250px); }
  #footer.site-footer { margin-top: 38px; text-align: left; }
  .site-footer .site-footer-inner { grid-template-columns: 1fr; gap: 20px; padding: 24px 20px 16px; }
  .site-footer-nav { justify-content: flex-start; gap: 11px 20px; }
  .site-footer-bottom { grid-column: 1; align-items: flex-start; flex-direction: column; gap: 5px; }
}

@media (max-width: 390px) {
  .public-login-header { min-height: 700px; }
  .public-login-header .header_1, .public-login-header .header_1 > .row { min-height: 700px; }
  .public-login-header .public-login-logo { top: 28px; }
  .public-login-header .login { top: 105px; }
}

/* Acceso público: registro y recuperación de credenciales */
.auth-service-page { min-height: 70vh; padding-bottom: 64px; color: #173d51; background: #f3f7f9; }
.auth-service-page > .head { display: none; }
.auth-service-hero { width: 100%; max-width: none; margin: 0; padding: 34px max(24px, calc((100% - 1120px) / 2)); color: #fff; background: #012e46; }
.auth-service-hero .cab { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: center; margin: 0; }
.auth-service-hero .cab > div { float: none; width: auto; padding: 0; }
.auth-service-hero .cab > a { color: #67f5f3; text-decoration: none; }
.auth-service-hero .cab > a p { margin: 0; color: inherit !important; font-size: 17px; }
.auth-service-hero h1 { margin: 0; color: #67f5f3; font-size: 38px; font-weight: 400; line-height: 1.15; }
.auth-service-help { margin: 18px auto -8px; }
.auth-service-help h4 { margin: 0; font-size: 14px; }
.auth-service-help a { color: #315d70; font-weight: 400; }
.auth-service-shell { float: none; width: min(100% - 32px, 980px); margin: 34px auto 0 !important; padding: 0; }
.auth-service-shell--narrow { max-width: 720px; }
.auth-service-shell > .col-md-2 { display: none; }
.auth-service-card, .auth-service-shell .forum-post, .auth-service-shell .billing-info { float: none; width: 100%; margin: 0; }
.auth-service-card { padding: 34px 38px !important; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 16px 42px rgba(23,61,81,.08); }
.auth-service-card .row.x2 { margin: 0 0 24px; }
.auth-service-card h2 { margin: 0; color: #173d51; font-size: 26px; font-weight: 500; }
.auth-service-card h4 { margin: 12px 0 0; font-size: 14px; }
.auth-service-card > .billing-info > label { display: block; margin: 0 0 24px; color: #58717d; font-size: 16px; font-weight: 400; line-height: 1.6; }
.auth-service-form label { display: block; margin: 18px 0 7px; color: #294754; font-size: 15px; font-weight: 500; }
.auth-service-form label span { color: #bd2634; }
.auth-service-form .form-control, .auth-service-form select, .auth-service-form .fakey { width: 100%; height: 50px; padding: 11px 14px; border: 1px solid #cbdbe2; border-radius: 10px; color: #173d51; background: #fff; box-shadow: none; font-size: 16px; }
.auth-service-form .form-control:focus, .auth-service-form select:focus { border-color: #327a96; outline: 0; box-shadow: 0 0 0 3px rgba(50,122,150,.12); }
.auth-service-form .fakey { display: flex; align-items: center; padding: 0 12px; }
.auth-service-form .fakey select { flex: 0 0 55px; height: 44px; padding: 8px; border: 0; }
.auth-service-form .fakey input { flex: 1; width: auto; height: 44px; padding: 8px; border: 0; outline: 0; font-size: 16px; }
.auth-service-form .checkbox { margin: 24px 0 0; }
.auth-service-form .checkbox label { margin: 0; font-weight: 400; line-height: 1.5; }
.auth-service-form .checkbox input { margin-top: 4px; }
.auth-service-form button.btn-default { min-height: 50px; margin-top: 24px; padding: 12px 24px; border: 0; border-radius: 10px; color: #fff; background: #012e46; font-size: 16px; font-weight: 400; }
.auth-service-form button.btn-default:hover, .auth-service-form button.btn-default:focus { color: #fff; background: #064563; }
.auth-service-form > p { margin: 20px 0 0; color: #647d88; font-size: 14px; line-height: 1.5; }
.auth-service-card .content-alert { float: none; width: 100%; margin-top: 20px; padding: 0; }
.auth-registration-page .auth-service-shell { max-width: 760px; }
.auth-registration-form > * { min-width: 0; }
.auth-registration-form br { display: none; }
.auth-registration-form .npl { float: none; width: 100%; margin-top: 18px; padding: 0; }
.auth-registration-form .npl label { margin: 0; color: #647d88; font-size: 13px; font-weight: 400; line-height: 1.5; }

@media (max-width: 767px) {
  .auth-service-page { padding-bottom: 38px; }
  .auth-service-hero { padding: 24px 18px; }
  .auth-service-hero .cab { grid-template-columns: 1fr; gap: 15px; }
  .auth-service-hero h1 { font-size: 30px; }
  .auth-service-shell { width: calc(100% - 24px); margin-top: 20px !important; }
  .auth-service-card { padding: 24px 18px !important; border-radius: 16px; }
  .auth-service-card h2 { font-size: 23px; }
  .auth-service-form button.btn-default { width: 100%; }
}

/* Gestiones: escuelas, campus y menores */
.spaces-page { min-height: 600px; padding: 0 0 70px; color: #173d51; background: #f4f8fa; }
.spaces-content { position: relative; z-index: 3; max-width: 1080px; margin-top: -38px; }
.spaces-search, .spaces-empty, .spaces-error { padding: 30px; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 16px 42px rgba(23,61,81,.09); }
.spaces-search h2, .spaces-results h2 { margin: 0 0 22px; color: #173d51; font-size: 26px; font-weight: 500; }
.spaces-fields { display: grid; grid-template-columns: 1.1fr repeat(2,1.45fr) .55fr .55fr; gap: 15px; }
.spaces-date-time { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); gap: 9px; }
.spaces-time-only { padding-top: 20px; }
.spaces-fields label { color: #294754; font-size: 13px; font-weight: 600; }
.spaces-fields input, .spaces-fields select { display: block; width: 100%; min-height: 48px; margin-top: 7px; padding: 10px 12px; border: 1px solid #cbdbe2; border-radius: 11px; color: #173d51; background: #fff; font-size: 14px; }
.spaces-search button { min-height: 48px; margin-top: 22px; padding: 12px 22px; border: 0; border-radius: 12px; color: var(--tenant-text,#fff); background: var(--tenant-primary,#012e46); font-size: 15px; }
.spaces-results { margin-top: 26px; }
.spaces-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.spaces-grid article { padding: 22px; border: 1px solid #dce7eb; border-radius: 16px; background: #fff; }
.spaces-unit-image { display: block; width: calc(100% + 44px); height: 190px; margin: -22px -22px 20px; border-radius: 16px 16px 0 0; object-fit: cover; }
.spaces-grid h3 { margin: 0 0 10px; color: #173d51; font-size: 20px; font-weight: 500; }
.spaces-grid p { margin: 0 0 12px; color: var(--tenant-primary,#012e46); font-size: 24px; }
.spaces-availability { display: block; margin: -3px 0 12px; color: #23734b; font-size: 14px; }
.spaces-grid span { color: #23734b; font-size: 13px; }
.spaces-book, .spaces-view { width: 100%; min-height: 44px; border: 0; border-radius: 11px; color: var(--tenant-text,#fff); background: var(--tenant-primary,#012e46); font-size: 15px; }
.spaces-book:disabled { cursor: wait; opacity: .65; }
.spaces-summary dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin: 0; border: 1px solid #dce7eb; border-radius: 14px; overflow: hidden; }
.spaces-summary dl div { padding: 16px 18px; border-bottom: 1px solid #e7eef1; }
.spaces-summary dl .spaces-summary-full-row { grid-column: 1 / -1; }
.spaces-summary dt { color: #667f8c; font-size: 13px; font-weight: 500; }
.spaces-summary dd { margin: 4px 0 0; color: #173d51; font-size: 18px; }
.spaces-pending { margin-top: 20px; padding: 16px 18px; border-radius: 12px; color: #745400; background: #fff7dc; }
.spaces-detail { display: grid; grid-template-columns: minmax(0,1fr) minmax(380px,.85fr); gap: 24px; align-items: start; }
.spaces-detail > *, .spaces-detail-fields > * { min-width: 0; }
.spaces-detail-info, .spaces-detail-booking { overflow: hidden; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 16px 42px rgba(23,61,81,.09); }
.spaces-detail-image { display: block; width: 100%; height: 370px; object-fit: cover; }
.spaces-detail-copy, .spaces-detail-booking { padding: 28px; }
.spaces-detail-resource-name { display: block; height: auto; margin: 0 0 12px; color: #69808b; font-size: 14px; line-height: 1.5; white-space: normal; }
.spaces-detail-unit-name, .spaces-detail-booking-title { display: block; height: auto; margin: 0 0 20px; color: #173d51; font-size: 26px; font-weight: 500; line-height: 1.35; white-space: normal; overflow-wrap: break-word; }
.spaces-detail-copy p { margin: 0; color: #526b77; font-size: 16px; line-height: 1.6; }
.spaces-rich-description { color: #526b77; font-size: 16px; line-height: 1.6; }
.spaces-rich-description > :first-child { margin-top: 0; }
.spaces-rich-description > :last-child { margin-bottom: 0; }
.spaces-rich-description img { max-width: 100%; height: auto; }
.spaces-rich-description, .spaces-rich-description * { max-width: 100%; overflow-wrap: anywhere; word-break: normal; }
.spaces-rich-description table { display: block; width: 100% !important; overflow-x: auto; }
.spaces-rich-description pre { overflow-x: auto; white-space: pre-wrap; }
.spaces-detail-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.spaces-detail-fields label { color: #294754; font-size: 13px; font-weight: 600; }
.spaces-detail-fields input, .spaces-detail-fields select { display: block; width: 100%; min-height: 48px; margin-top: 7px; padding: 10px 12px; border: 1px solid #cbdbe2; border-radius: 11px; color: #173d51; background: #fff; font-size: 14px; }
.spaces-detail-result { margin-top: 22px; padding: 18px; border-radius: 14px; color: #526b77; background: #f2f6f8; }
.spaces-detail-result > div:not(.spaces-error):not(.spaces-action-buttons) { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.spaces-detail-result strong { color: var(--tenant-primary,#012e46); font-size: 26px; font-weight: 500; }
.spaces-detail-confirm { width: 100%; min-height: 48px; margin-top: 16px; border: 0; border-radius: 11px; color: var(--tenant-text,#fff); background: var(--tenant-primary,#012e46); font-size: 15px; }
.spaces-action-buttons { display: grid; width: 100%; gap: 10px; margin-top: 16px; }
.spaces-action-buttons .spaces-detail-confirm { margin-top: 0; }
.spaces-action-buttons > .spaces-detail-confirm, .spaces-action-buttons > .spaces-cancel { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: center; box-sizing: border-box; text-align: center; }
.spaces-cancel { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; border: 1px solid #ccdce3; border-radius: 11px; color: #526b77; background: #fff; font-size: 15px; text-decoration: none; }
.spaces-cancel:hover, .spaces-cancel:focus { color: #173d51; background: #f3f7f9; text-decoration: none; }
.spaces-reservation-actions { display: flex; justify-content: flex-end; gap: 8px; }
.spaces-reservation-actions .spaces-cancel { width: auto; min-height: 40px; padding: 8px 13px; gap: 6px; white-space: nowrap; }
.spaces-empty .spaces-empty-action { display: inline-flex; width: auto; min-width: 190px; min-height: 46px; align-items: center; justify-content: center; padding: 10px 20px; text-decoration: none; }
.spaces-download-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; text-align: center; text-decoration: none; }
.spaces-download-action:hover, .spaces-download-action:focus { color: var(--tenant-text,#fff); text-decoration: none; }
.spaces-closed-legend { display: flex; align-items: center; gap: 8px; margin-top: 10px; color: #647b86; font-size: 13px; }
.spaces-closed-legend span { width: 13px; height: 13px; border-radius: 4px; background: #d9534f; }
.flatpickr-day.space-closed-day, .flatpickr-day.space-closed-day:hover { border-color: #efb3b0!important; color: #a52a25!important; background: #f9d9d7!important; text-decoration: line-through; }
.spaces-page input.spaces-date-picker,
.spaces-page input.spaces-date-picker[readonly] {
    display: block !important;
    width: 100% !important;
    min-height: 48px !important;
    margin-top: 7px !important;
    padding: 10px 12px !important;
    border: 1px solid #cbdbe2 !important;
    border-radius: 11px !important;
    color: #173d51 !important;
    background: #fff !important;
    cursor: pointer !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #173d51;
}
.spaces-payment-ready { margin-top: 16px; padding: 16px 18px; border-radius: 12px; color: #17623b; background: #eaf8f0; }

/* Shared modern result and inline-message views */
.tenant-result-page { position: relative; z-index: 3; width: min(100% - 32px,860px); min-height: 360px; margin: -34px auto 60px; }
.tenant-result-card { padding: 42px; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 18px 48px rgba(23,61,81,.1); }
.tenant-result-label { display: block; margin-bottom: 12px; color: var(--tenant-primary,#012e46); font-size: 13px; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; }
.tenant-result-card h2 { margin: 0 0 14px; color: #173d51; font-size: 30px; font-weight: 500; line-height: 1.3; }
.tenant-result-card p { max-width: 680px; margin: 0; color: #526b77; font-size: 17px; line-height: 1.65; }
.tenant-result-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; margin-top: 28px; padding: 0 24px; border-radius: 11px; color: var(--tenant-text,#fff); background: var(--tenant-primary,#012e46); font-size: 15px; text-decoration: none; }
.tenant-result-primary:hover,.tenant-result-primary:focus { color: var(--tenant-text,#fff); opacity: .9; text-decoration: none; }
.error-404-card { display: grid; grid-template-columns: minmax(180px,.6fr) minmax(0,1.4fr); align-items: center; gap: 42px; }
.error-404-code { color: var(--tenant-primary,#012e46); font-size: clamp(92px,12vw,160px); font-weight: 300; line-height: 1; letter-spacing: -.07em; opacity: .16; }
.error-404-copy { min-width: 0; }
.error-404-actions { display: flex; align-items: stretch; gap: 12px; margin-top: 28px; }
.error-404-actions .tenant-result-primary { min-width: 190px; margin-top: 0; }
.error-404-back { min-height: 48px; padding: 0 24px; border: 1px solid #ccdce3; border-radius: 11px; color: #526b77; background: #fff; font-size: 15px; font-weight: 400; }
.error-404-back:hover,.error-404-back:focus { color: #173d51; background: #f3f7f9; }
.tenant-inline-message { display: grid; gap: 4px; width: 100%; margin: 14px 0; padding: 16px 18px; border: 1px solid; border-radius: 12px; font-size: 15px; line-height: 1.5; }
.tenant-inline-message.is-error { color: #8f2f37; border-color: #efc5c8; background: #fff0f1; }
.tenant-inline-message.is-success { color: #17623b; border-color: #bfe4ce; background: #eaf8f0; }
@media(max-width:767px){.tenant-result-page{width:calc(100% - 24px);min-height:280px;margin-top:-28px}.tenant-result-card{padding:28px 20px;border-radius:17px}.tenant-result-card h2{font-size:23px;line-height:1.4}.tenant-result-card p{font-size:16px}.tenant-result-primary{width:100%;padding:0 16px}}
@media(max-width:767px){.error-404-card{grid-template-columns:1fr;gap:18px;text-align:center}.error-404-code{font-size:88px}.error-404-copy .tenant-result-label{margin-bottom:9px}.error-404-actions{flex-direction:column}.error-404-actions .tenant-result-primary,.error-404-back{width:100%}}
.tenant-form-page { position: relative; z-index: 3; width: min(100% - 32px,920px); margin: -34px auto 60px; }
.tenant-form-card { padding: 38px; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 18px 48px rgba(23,61,81,.1); }
.tenant-form-heading { margin-bottom: 28px; }
.tenant-form-heading h2 { margin: 0 0 8px; color: #173d51; font-size: 29px; font-weight: 500; line-height: 1.3; }
.tenant-form-heading p { margin: 0; color: #647c88; font-size: 16px; line-height: 1.55; }
.tenant-form { display: grid; grid-template-columns: 1fr; gap: 9px; }
.tenant-form>label:not(.tenant-form-check) { margin-top: 9px; color: #294d60; font-size: 15px; font-weight: 500; }
.tenant-form>label span[aria-hidden] { color: #b33c46; }
.tenant-form input:not([type=checkbox]),.tenant-form select,.tenant-form textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #ccdce3; border-radius: 11px; color: #173d51; background: #fff; font-size: 16px; box-shadow: none; }
.tenant-form textarea { min-height: 150px; resize: vertical; }
.tenant-form input:focus,.tenant-form select:focus,.tenant-form textarea:focus { border-color: var(--tenant-primary,#012e46); outline: 3px solid color-mix(in srgb,var(--tenant-primary,#012e46) 14%,transparent); }
.tenant-form-check { display: flex; align-items: flex-start; gap: 10px; margin: 15px 0 4px; color: #526b77; font-size: 14px; line-height: 1.5; }
.tenant-form-check input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; }
.tenant-form a { color: var(--tenant-primary,#012e46); text-decoration: underline; }
.tenant-form-submit { min-height: 50px; margin-top: 10px; border: 0; border-radius: 11px; color: var(--tenant-text,#fff); background: var(--tenant-primary,#012e46); font-size: 16px; }
.tenant-form-legal { margin: 10px 0 0; color: #728791; font-size: 13px; line-height: 1.55; }
.tenant-modal-content { overflow: hidden; border: 0; border-radius: 17px; }
@media(max-width:767px){.tenant-form-page{width:calc(100% - 24px);margin-top:-28px}.tenant-form-card{padding:26px 18px;border-radius:17px}.tenant-form-heading h2{font-size:23px}.tenant-form-submit{width:100%}}

/* Solicitud para hacerse abonado */
.abonarse-card { max-width: 820px; margin: 0 auto; }
.abonarse-content > p { margin: 0 0 25px; padding: 16px 18px; border-radius: 12px; color: #526b77; background: #f1f6f8; font-size: 15px; line-height: 1.55; }
.abonarse-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.abonarse-form .tenant-field { min-width: 0; }
.abonarse-form .tenant-field label { display: block; margin: 0 0 8px; color: #294d60; font-size: 15px; font-weight: 500; }
.abonarse-form .tenant-field input:not([type=checkbox]),
.abonarse-form .tenant-field select { width: 100%; min-height: 50px; margin: 0; padding: 12px 14px; border: 1px solid #ccdce3; border-radius: 11px; color: #173d51; background: #fff; font-size: 16px; box-shadow: none; }
.abonarse-form .tenant-field input:focus,
.abonarse-form .tenant-field select:focus { border-color: var(--tenant-primary,#012e46); outline: 3px solid color-mix(in srgb,var(--tenant-primary,#012e46) 14%,transparent); }
.abonarse-form .tenant-field small { display: block; margin-top: 7px; color: #728791; font-size: 13px; }
.abonarse-form #bloqueDocumento,
.abonarse-form #bloqueCaducidad,
.abonarse-form .tenant-note,
.abonarse-form .tenant-actions { grid-column: 1 / -1; }
.abonarse-form .tenant-note { margin: 0; padding: 14px 16px; border-radius: 11px; color: #17623b; background: #eaf8f0; font-size: 14px; line-height: 1.5; }
.abonarse-form .tenant-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .55fr); gap: 12px; margin-top: 5px; }
.abonarse-form .tenant-action-button,
.abonarse-form .tenant-cancel { display: flex; min-height: 50px; align-items: center; justify-content: center; margin: 0; padding: 12px 20px; border-radius: 11px; font-size: 16px; font-weight: 400; text-decoration: none !important; }
.abonarse-form .tenant-cancel { border: 1px solid #ccdce3; color: #526b77; background: #fff; }
.abonarse-form .tenant-cancel:hover,
.abonarse-form .tenant-cancel:focus { color: #173d51; background: #f3f7f9; }
.abonarse-page .tenant-alert { margin-bottom: 20px; padding: 15px 17px; border: 1px solid; border-radius: 12px; font-size: 15px; line-height: 1.5; }
.abonarse-page .tenant-alert-ok { border-color: #bfe4ce; color: #17623b; background: #eaf8f0; }
.abonarse-page .tenant-alert-error { border-color: #efc5c8; color: #8f2f37; background: #fff0f1; }
@media(max-width:767px){.abonarse-form{grid-template-columns:1fr;gap:16px}.abonarse-form #bloqueDocumento,.abonarse-form #bloqueCaducidad,.abonarse-form .tenant-note,.abonarse-form .tenant-actions{grid-column:auto}.abonarse-form .tenant-actions{grid-template-columns:1fr}.abonarse-content>p{padding:14px 15px}.abonarse-form .tenant-action-button,.abonarse-form .tenant-cancel{width:100%}}

/* Justificantes de matrícula */
.receipt-card { max-width: 780px; margin: 0 auto; }
.receipt-form { gap: 20px; }
.receipt-field label { display: block; margin: 0 0 8px; color: #294d60; font-size: 15px; font-weight: 500; }
.receipt-field select,.receipt-field input[type=file] { display: block; width: 100%; min-height: 50px; margin: 0; padding: 12px 14px; border: 1px solid #ccdce3; border-radius: 11px; color: #173d51; background: #fff; font-size: 16px; box-shadow: none; }
.receipt-field input[type=file] { min-height: 56px; padding: 10px 12px; }
.receipt-field input[type=file]::file-selector-button { min-height: 34px; margin-right: 12px; padding: 6px 13px; border: 0; border-radius: 8px; color: var(--tenant-text,#fff); background: var(--tenant-primary,#012e46); font-size: 14px; font-weight: 400; cursor: pointer; }
.receipt-field small { display: block; margin-top: 7px; color: #728791; font-size: 13px; line-height: 1.5; }
.receipt-actions,.receipt-result-actions { display: flex; align-items: stretch; gap: 12px; margin-top: 8px; }
.receipt-actions .tenant-form-submit { flex: 1 1 auto; margin-top: 0; }
.receipt-secondary-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 12px 22px; border: 1px solid #ccdce3; border-radius: 11px; color: #526b77; background: #fff; font-size: 15px; font-weight: 400; text-decoration: none !important; }
.receipt-secondary-button:hover,.receipt-secondary-button:focus { color: #173d51; background: #f3f7f9; }
.receipt-alert { margin-bottom: 20px; padding: 16px 18px; border: 1px solid; border-radius: 12px; font-size: 15px; line-height: 1.55; }
.receipt-alert.is-warning { border-color: #f0dfab; color: #735c18; background: #fff9e8; }
.receipt-result-card { border-top: 4px solid var(--tenant-primary,#012e46); }
.receipt-result-card.is-success { border-top-color: #2d8b57; }
.receipt-result-card.is-error { border-top-color: #b6424b; }
.receipt-result-actions { margin-top: 28px; }
.receipt-result-actions .tenant-result-primary { margin-top: 0; }
.receipt-error-list { display: grid; gap: 9px; margin: 22px 0 0; padding: 18px 20px 18px 38px; border-radius: 12px; color: #526b77; background: #f3f7f9; font-size: 15px; line-height: 1.5; }
@media(max-width:767px){.receipt-actions,.receipt-result-actions{flex-direction:column}.receipt-actions .tenant-form-submit,.receipt-secondary-button,.receipt-result-actions .tenant-result-primary{width:100%}.receipt-field input[type=file]{font-size:14px}.receipt-error-list{padding:16px 15px 16px 34px}}

/* Compra de entradas de piscina */
.pool-page { min-height: 520px; padding: 0 0 70px; color: #173d51; background: #f4f8fa; }
.pool-content { position: relative; z-index: 3; width: min(100% - 32px, 980px); margin-top: -34px; padding: 0; }
.pool-card,.psce-card,.pscm-card,.pool-payment-card,.pool-success-card { padding: 34px !important; border: 1px solid #dce7eb !important; border-radius: 20px !important; background: #fff !important; box-shadow: 0 18px 48px rgba(23,61,81,.1) !important; }
.pool-heading { margin-bottom: 27px; }
.pool-heading h2 { margin: 0 0 7px; color: #173d51; font-size: 28px; font-weight: 500; line-height: 1.3; }
.pool-heading p { margin: 0; color: #647c88; font-size: 16px; line-height: 1.55; }
.pool-alert { margin-bottom: 20px; padding: 15px 17px; border: 1px solid; border-radius: 12px; font-size: 15px; line-height: 1.5; }
.pool-alert.is-error { border-color: #efc5c8; color: #8f2f37; background: #fff0f1; }
.pool-empty { display: grid; gap: 6px; padding: 35px 24px; border-radius: 14px; color: #526b77; background: #f1f6f8; text-align: center; }
.pool-empty strong { color: #173d51; font-size: 17px; font-weight: 500; }
.pool-days-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.pool-day { position: relative; display: flex; min-height: 145px; flex-direction: column; align-items: center; justify-content: center; padding: 22px 16px; border: 1px solid #dce7eb; border-radius: 16px; color: #173d51; background: #f8fafb; text-align: center; text-decoration: none; transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.pool-day:hover,.pool-day:focus { border-color: var(--tenant-primary,#012e46); color: #173d51; box-shadow: 0 10px 25px rgba(23,61,81,.1); text-decoration: none; transform: translateY(-2px); }
.pool-day.is-available { border-color: #168744; color: #fff; background: #169447; }
.pool-day.is-available:hover,.pool-day.is-available:focus { border-color: #0d6f34; color: #fff; background: #117c3b; }
.pool-day.is-full { border-color: #bd3535; color: #fff; background: #c94242; cursor: default; }
.pool-day strong { font-size: 20px; font-weight: 500; }
.pool-day > span:not(.pool-day-today) { margin-top: 5px; color: #647c88; font-size: 14px; }
.pool-day.is-available > span:not(.pool-day-today),.pool-day.is-full > span:not(.pool-day-today) { color: rgba(255,255,255,.86); }
.pool-day em { margin-top: 10px; color: #fff; font-size: 12px; font-style: normal; font-weight: 500; text-transform: uppercase; }
.pool-day small,.pool-day-today { display: inline-flex; padding: 3px 9px; border-radius: 20px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.pool-day small { margin-top: 9px; color: #895f00; background: #fff3cd; }
.pool-day-today { position: absolute; top: 12px; right: 12px; color: var(--tenant-text,#fff); background: var(--tenant-primary,#012e46); }
.psce-wrap,.pscm-wrap,.pool-payment-page,.pool-success-page { position: relative; z-index: 3; width: min(100% - 32px,900px) !important; max-width: 900px !important; margin: -34px auto 60px !important; padding: 0 !important; }
.psce-back,.pscm-back,.pool-legacy-back { display: none !important; }
.psce-title,.pscm-title { color: #173d51 !important; font-size: 27px !important; font-weight: 500 !important; }
.psce-fecha { padding: 7px 14px !important; color: var(--tenant-text,#fff) !important; background: var(--tenant-primary,#012e46) !important; border-radius: 20px !important; font-weight: 500 !important; }
.psce-alert-info,.pscm-summary { border: 0 !important; color: #526b77 !important; background: #f1f6f8 !important; border-radius: 12px !important; }
.psce-alert-warn { border-color: #f0dfab !important; color: #735c18 !important; background: #fff9e8 !important; border-radius: 12px !important; font-weight: 400 !important; }
.psce-error,.pscm-error { border-color: #efc5c8 !important; color: #8f2f37 !important; background: #fff0f1 !important; border-radius: 12px !important; }
.psce-row { min-height: 70px; border-color: #e3ecef !important; }
.psce-label { color: #294d60 !important; font-weight: 500 !important; }
.psce-step-btn { border: 0 !important; color: var(--tenant-text,#fff) !important; background: var(--tenant-primary,#012e46) !important; border-radius: 10px !important; font-weight: 400 !important; }
.psce-step-val { color: #173d51 !important; background: #f4f8fa !important; border-color: #d7e3e8 !important; }
.psce-precio,.psce-total-value { color: var(--tenant-primary,#012e46) !important; }
.psce-btn,.pool-primary-button,.pool-success-button { min-height: 50px !important; border: 0 !important; border-radius: 11px !important; color: var(--tenant-text,#fff) !important; background: var(--tenant-primary,#012e46) !important; font-size: 16px !important; font-weight: 400 !important; }
.pscm-sub { color: #647c88 !important; font-size: 15px !important; }
.pscm-total,.pool-success-total { color: var(--tenant-text,#fff) !important; background: var(--tenant-primary,#012e46) !important; border-radius: 12px !important; }
.pscm-method { min-height: 92px; display: flex !important; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #dce7eb; border-radius: 14px !important; color: #173d51 !important; background: #f8fafb !important; font-weight: 500 !important; box-shadow: none; }
.pscm-method:hover,.pscm-method:focus { border-color: var(--tenant-primary,#012e46); color: #173d51 !important; background: #fff !important; }
.pscm-method-sub { color: #647c88; opacity: 1 !important; }
.pscm-method.disabled { color: #728791 !important; background: #edf2f4 !important; }
.pool-payment-card > div:first-child { color: #173d51 !important; font-size: 27px !important; font-weight: 500 !important; }
.pool-payment-card > div:nth-child(2) { border: 0 !important; border-radius: 12px !important; color: #526b77; background: #f1f6f8 !important; line-height: 1.7; }
.pool-primary-button { width: 100% !important; padding: 12px 18px !important; }
.pool-success-card > div:first-child { color: var(--tenant-primary,#012e46) !important; }
.pool-success-card > div:nth-child(2) { color: #173d51 !important; font-size: 28px !important; font-weight: 500 !important; }
.pool-success-card > div:nth-child(4) { border: 0 !important; border-radius: 12px !important; color: #526b77; background: #f1f6f8 !important; }
@media(max-width:767px){.pool-content,.psce-wrap,.pscm-wrap,.pool-payment-page,.pool-success-page{width:calc(100% - 24px)!important;margin-top:-28px!important}.pool-card,.psce-card,.pscm-card,.pool-payment-card,.pool-success-card{padding:24px 18px!important;border-radius:17px!important}.pool-heading h2,.psce-title,.pscm-title,.pool-payment-card>div:first-child{font-size:23px!important}.pool-days-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pool-day{min-height:128px;padding:20px 10px}.pool-day strong{font-size:18px}.psce-head{align-items:flex-start;flex-direction:column}.psce-row{grid-template-columns:minmax(0,1fr) auto!important}.psce-step-btn{width:40px!important;height:40px!important}.pscm-methods{grid-template-columns:1fr!important}.pool-success-card>div:nth-child(4)>div{gap:12px;align-items:flex-start;flex-direction:column}.pool-success-button{display:flex!important;width:100%;align-items:center;justify-content:center}}
@media(max-width:390px){.pool-days-grid{grid-template-columns:1fr}.pool-day{min-height:112px}}

/* Migrated legacy views: new structural shell */
.tenant-legacy-page { position: relative; z-index: 3; width: min(100% - 32px,1180px); min-height: 360px; margin: -34px auto 60px; }
.tenant-legacy-card { width: 100%; padding: 30px; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 18px 48px rgba(23,61,81,.1); }
.tenant-legacy-card-content,.tenant-legacy-form,.tenant-legacy-table { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.tenant-legacy-card h1,.tenant-legacy-card h2,.tenant-legacy-card h3,.tenant-legacy-card h4 { height: auto; color: #173d51; line-height: 1.35; white-space: normal; }
.tenant-legacy-card h2 { font-size: 27px; font-weight: 500; }
.tenant-legacy-card h3 { font-size: 22px; }
.tenant-legacy-card h4 { font-size: 19px; }
.tenant-legacy-card p,.tenant-legacy-card label,.tenant-legacy-card li,.tenant-legacy-card td,.tenant-legacy-card th { font-size: 16px; line-height: 1.55; }
.tenant-legacy-card input:not([type=checkbox]):not([type=radio]),.tenant-legacy-card select,.tenant-legacy-card textarea { max-width: 100%; min-height: 48px; border: 1px solid #ccdce3; border-radius: 10px; box-shadow: none; font-size: 16px; }
.tenant-legacy-card textarea { min-height: 120px; }
.tenant-legacy-card .btn,.tenant-legacy-card button,.tenant-legacy-card input[type=submit] { min-height: 46px; border-radius: 10px; font-size: 15px; font-weight: 400; }
.tenant-legacy-card table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #dce7eb; border-radius: 13px; overflow: hidden; background: #fff; }
.tenant-legacy-card th { color: #173d51; background: #eef4f6; font-weight: 500; }
.tenant-legacy-card th,.tenant-legacy-card td { padding: 13px 15px; border-bottom: 1px solid #e3ecef; vertical-align: middle; }
.tenant-legacy-card img { max-width: 100%; height: auto; }
@media(max-width:767px){.tenant-legacy-page{width:calc(100% - 24px);min-height:280px;margin-top:-28px}.tenant-legacy-card{padding:22px 16px;border-radius:17px;overflow:hidden}.tenant-legacy-card h2{font-size:23px}.tenant-legacy-card h3{font-size:20px}.tenant-legacy-card p,.tenant-legacy-card label,.tenant-legacy-card li,.tenant-legacy-card td,.tenant-legacy-card th{font-size:15px}.tenant-legacy-card .table-responsive{margin:0;border:0}.tenant-legacy-card table{display:block;max-width:100%;overflow-x:auto}.tenant-legacy-card .row{margin-left:0;margin-right:0}.tenant-legacy-card [class*=col-]{width:100%;padding-left:0;padding-right:0;float:none}}
.tenant-modern-panel,.tenant-modern-form,.tenant-modern-table { width: 100%; max-width: none; margin: 0; float: none; }
.tenant-modern-panel,.tenant-modern-form { padding: 0; }
.tenant-modern-table { overflow-x: auto; }
.tenant-modern-table table { width: 100%; }
@media(max-width:767px){.tenant-modern-panel,.tenant-modern-form,.tenant-modern-table{width:100%;padding-left:0;padding-right:0;float:none}.tenant-modern-panel [class*=col-],.tenant-modern-form [class*=col-]{width:100%;padding-left:0;padding-right:0;float:none}}
.spaces-error { color: #97333b; border-color: #efc5c8; background: #fff0f1; }
@media(max-width:991px){.spaces-detail{grid-template-columns:1fr}.spaces-detail-image{height:320px}}
@media(max-width:767px){.spaces-content{width:calc(100% - 24px);margin-top:-30px;padding:0}.spaces-search,.spaces-empty,.spaces-error{padding:22px 18px;border-radius:17px}.spaces-fields{grid-template-columns:1fr}.spaces-date-time{grid-template-columns:minmax(0,1fr) minmax(0,.72fr)}.spaces-search button{width:100%}.spaces-grid{grid-template-columns:1fr}.spaces-summary dl{grid-template-columns:1fr}.spaces-detail{width:100%;gap:16px}.spaces-detail-info,.spaces-detail-booking{width:100%;border-radius:17px}.spaces-detail-copy,.spaces-detail-booking{padding:21px 18px}.spaces-detail-image{height:230px}.spaces-detail-resource-name{margin:0 0 13px!important;font-size:14px!important;line-height:1.5!important}.spaces-detail-unit-name,.spaces-detail-booking-title{height:auto!important;margin:0 0 20px!important;font-size:21px!important;line-height:1.45!important;white-space:normal!important;overflow:visible!important;overflow-wrap:break-word!important}.spaces-rich-description{font-size:15px;line-height:1.55}.spaces-rich-description h1{font-size:24px!important}.spaces-rich-description h2{font-size:22px!important}.spaces-rich-description h3{font-size:19px!important}.spaces-detail-fields{grid-template-columns:1fr;gap:12px}.spaces-detail-fields label{display:block;width:100%;margin:0}.spaces-detail-fields input,.spaces-detail-fields select{max-width:100%;font-size:16px}.spaces-detail-fields .spaces-time-only{padding-top:0}.spaces-detail-result{padding:15px}.spaces-detail-result>div:not(.spaces-error):not(.spaces-action-buttons){align-items:flex-start;flex-direction:column;gap:4px}.spaces-detail-result strong{font-size:24px}.spaces-detail-confirm{white-space:normal;line-height:1.3}.spaces-action-buttons .spaces-cancel{width:100%;padding:10px 16px;line-height:1.3;white-space:normal}}
@media(max-width:380px){.spaces-content{width:calc(100% - 16px)}.spaces-detail-copy,.spaces-detail-booking{padding:18px 14px}.spaces-detail-image{height:205px}}
@media(max-width:767px){.tenant-menu-hero-row>div{min-width:0}.tenant-menu-hero h1{max-width:100%;font-size:25px;line-height:1.2;overflow-wrap:anywhere}}

.tenant-flow { position: relative; z-index: 3; }
.tenant-flow.inter-page { max-width: 1120px; margin: -38px auto 55px !important; padding: 28px 30px; background: #fff; border: 1px solid #dbe5eb; border-radius: 24px; box-shadow: 0 18px 45px rgba(1, 46, 70, .09); }
.tenant-flow .billing-info, .tenant-flow .forum-post, .tenant-flow .content, .tenant-flow .card { float: none; width: 100%; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.tenant-flow .row.x2 { margin: 0 0 24px; }
.tenant-flow .row.x2 > h2, .tenant-flow .billing-info h2 { margin: 0; color: #092f45; font-size: 27px; font-weight: 700; line-height: 1.2; }
.tenant-flow form { color: #173d51; font-size: 15px; }
.tenant-flow form label { display: block; margin: 0 0 7px; color: #173d51; font-size: 14px; font-weight: 700; }
.tenant-flow form label span { color: #c23b31; }
.tenant-flow input.form-control, .tenant-flow select.form-control, .tenant-flow textarea.form-control, .tenant-flow form select:not([class]) { width: 100%; min-height: 48px; padding: 10px 13px; color: #173d51; background: #fff; border: 1px solid #cddde5; border-radius: 12px; box-shadow: none; font-size: 15px; }
.tenant-flow textarea.form-control { min-height: 90px; resize: vertical; }
.tenant-flow input.form-control:focus, .tenant-flow select.form-control:focus, .tenant-flow textarea.form-control:focus { border-color: var(--tenant-secondary, #25dfe5); box-shadow: 0 0 0 3px rgba(37, 223, 229, .14); }
.tenant-flow .form-group { margin-bottom: 18px; }
.tenant-flow form .btn, .tenant-action-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 24px; color: var(--tenant-text, #fff) !important; background: var(--tenant-primary, #012e46) !important; border: 0 !important; border-radius: 13px !important; font-size: 15px; font-weight: 700; text-decoration: none !important; box-shadow: none; }
.tenant-flow form .btn:hover, .tenant-action-button:hover { filter: brightness(1.08); }
.tenant-flow table { width: 100%; margin: 18px 0; overflow: hidden; border-collapse: separate; border-spacing: 0; border: 1px solid #dbe5eb; border-radius: 15px; font-size: 14px; }
.tenant-flow table th { padding: 13px; color: #173d51; background: #eef4f7; font-size: 13px; font-weight: 800; }
.tenant-flow table td { padding: 13px; border-top: 1px solid #e4ecf0; vertical-align: middle; }
.tenant-flow input[type="checkbox"], .tenant-flow input[type="radio"] { width: 18px; height: 18px; accent-color: var(--tenant-primary, #012e46); }
.tenant-flow .alert { padding: 14px 16px; border: 0; border-radius: 12px; font-size: 14px; }
.tenant-flow-public-form { max-width: 820px !important; padding: 34px 38px !important; }
.tenant-flow-public-form .row.x2 { padding-bottom: 22px; border-bottom: 1px solid #e2eaee; }
.tenant-flow-public-form .row.x2 p { margin: 9px 0 0; color: #637b87; font-size: 15px; line-height: 1.5; }
.tenant-flow-public-form form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.tenant-flow-public-form .form-group { min-width: 0; }
.tenant-flow-public-form .tenant-field-wide, .tenant-flow-public-form .tenant-form-note, .tenant-flow-public-form .tenant-form-actions { grid-column: 1 / -1; }
.tenant-flow-public-form .tenant-form-note { margin-top: 4px; padding: 14px 16px; color: #536e7a; background: #eef4f7; border-radius: 12px; font-size: 14px; line-height: 1.5; }
.tenant-flow-public-form .tenant-form-actions { display: flex; justify-content: flex-end; margin-top: 22px; }
.tenant-flow-public-form .tenant-form-actions .btn { min-width: 220px; }
.tenant-flow-public-form .content-alert { float: none; width: 100%; margin-top: 18px; padding: 0; }
.tenant-flow-registration { max-width: 960px !important; }
.tenant-privacy { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 10px; margin-top: 5px; padding: 15px 17px; border: 1px solid #dfe8ec; border-radius: 12px; }
.tenant-privacy input { margin: 2px 0 0; }
.tenant-flow .tenant-privacy label { margin: 0; font-weight: 500; line-height: 1.5; }
.tenant-privacy a { color: #087f91; font-weight: 700; }

@media (max-width: 767px) {
  .tenant-flow-public-form { width: calc(100% - 24px); margin-top: -24px !important; padding: 24px 18px !important; border-radius: 18px !important; }
  .tenant-flow-public-form form { grid-template-columns: 1fr; }
  .tenant-flow-public-form .tenant-field-wide, .tenant-flow-public-form .tenant-form-note, .tenant-flow-public-form .tenant-form-actions { grid-column: auto; }
  .tenant-flow-public-form .tenant-form-actions { justify-content: stretch; }
  .tenant-flow-public-form .tenant-form-actions .btn { width: 100%; min-width: 0; }
}
.tenant-flow-campus form > .col-md-12, .tenant-flow-schools form > .form-group, .tenant-flow-schools .suscribe2, .tenant-flow-schools .suscribe3 { padding: 20px; background: #f7fafb; border: 1px solid #e1e9ed; border-radius: 16px; }
.tenant-flow-campus input[type="file"] { height: auto; padding: 12px; color: #173d51 !important; background: #edf4f7 !important; }
.tenant-flow-campus h2, .tenant-flow-schools h2 { color: #092f45; }

/* Formulario de campus */
.tenant-flow-campus { max-width: 1080px; padding: 34px 38px !important; }
.tenant-flow-campus > .row.x2 { margin: 0; }
.tenant-flow-campus > .row.x2 > h2 { margin: 0 0 24px; padding-bottom: 22px; border-bottom: 1px solid #e2eaee; }
.tenant-flow-campus br { display: none; }
.tenant-flow-campus [class*="col-md-"] { float: none; width: auto; min-height: 0; padding: 0; }
.tenant-flow-campus form { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 20px 16px; }
.tenant-flow-campus form > .col-md-12,
.tenant-flow-campus form > .col-md-10 { grid-column: 1 / -1; margin: 0; }
.tenant-flow-campus form > .col-md-12 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; padding: 22px; background: #f8fafb; border: 1px solid #dfe8ec; border-radius: 17px; }
.tenant-flow-campus form > .col-md-10:not(:has(table)):not(:has(> #autorizofoto)):not(:has(> #autorizopolitica)):not(:has(+ .col-md-8)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 22px; background: #f8fafb; border: 1px solid #dfe8ec; border-radius: 17px; }
.tenant-flow-campus form > .col-md-12 > div,
.tenant-flow-campus form > .col-md-10 > div { min-width: 0; }
.tenant-flow-campus form label { line-height: 1.35; }
.tenant-flow-campus form select,
.tenant-flow-campus form input.form-control { width: 100% !important; height: 48px; }
.tenant-flow-campus .select2-container { width: 100% !important; }
.tenant-flow-campus .select2-container .select2-selection--single { height: 48px; border: 1px solid #cddde5; border-radius: 12px; }
.tenant-flow-campus .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 13px; }
.tenant-flow-campus .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.tenant-flow-campus form > .col-md-10:has(table) { overflow: hidden; padding: 22px; background: #fff; border: 1px solid #dfe8ec; border-radius: 17px; }
.tenant-flow-campus form > .col-md-10:has(table) h2 { margin: 0 0 18px; font-size: 21px; }
.tenant-flow-campus form > .col-md-10:has(table) table { margin: 0; }
.tenant-flow-campus form > .col-md-10:has(table) input[type="reset"] { width: auto; min-width: 130px; margin: 16px 0 0; }
.tenant-flow-campus .campus-options-title { margin: 0 0 16px !important; text-align: left; }
.tenant-flow-campus .campus-options-actions { display: flex; justify-content: flex-end; }
.tenant-flow-campus #tablaOpciones { width: 100%; min-width: 720px; table-layout: auto; }
.tenant-flow-campus #tablaOpciones th, .tenant-flow-campus #tablaOpciones td { text-align: center; white-space: nowrap; }
.tenant-flow-campus #tablaOpciones .campus-option-name,
.tenant-flow-campus #tablaOpciones td:first-child { min-width: 170px; text-align: left; }
.tenant-flow-campus form > .col-md-10:has(+ .col-md-8) { padding: 20px 22px 0; color: #092f45; background: #eef6f8; border: 1px solid #dfe8ec; border-bottom: 0; border-radius: 17px 17px 0 0; font-size: 18px; font-weight: 700; }
.tenant-flow-campus form > .col-md-8 { grid-column: span 8; margin: 0; padding-left: 22px; }
.tenant-flow-campus form > .col-md-2 { grid-column: span 2; margin: 0; padding-right: 22px; }
.tenant-flow-campus form > .col-md-8,
.tenant-flow-campus form > .col-md-2 { position: relative; top: -20px; padding-top: 20px; background: #eef6f8; }
.tenant-flow-campus form > .col-md-8:nth-last-of-type(6),
.tenant-flow-campus form > .col-md-2:nth-last-of-type(5) { padding-bottom: 0; }
.tenant-flow-campus form > .col-md-8:nth-last-of-type(2),
.tenant-flow-campus form > .col-md-2:nth-last-of-type(1) { padding-bottom: 22px; border-radius: 0 0 17px 17px; }
.tenant-flow-campus form > .col-md-10:has(> #autorizofoto),
.tenant-flow-campus form > .col-md-10:has(> #autorizopolitica) { display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid #dfe8ec; border-radius: 12px; }
.tenant-flow-campus form > .col-md-10:has(> #autorizofoto) label,
.tenant-flow-campus form > .col-md-10:has(> #autorizopolitica) label { margin: 0; font-weight: 500; }
.tenant-flow-campus form > .col-md-10:has(> #autorizofoto) a,
.tenant-flow-campus form > .col-md-10:has(> #autorizopolitica) a { color: #087f91; font-weight: 700; }
.tenant-flow-campus form > .col-md-5 { grid-column: 1 / -1; display: flex; justify-content: flex-end; }
.tenant-flow-campus form > .col-md-5 button { min-width: 230px; }
.tenant-flow-campus input[type="file"] { width: 100%; min-height: 48px; margin: 0 0 14px; padding: 11px 12px; color: #173d51 !important; background: #edf4f7 !important; border: 1px dashed #b8ccd6 !important; border-radius: 12px !important; font-size: 13px; font-weight: 600; }
.tenant-flow-campus .datepicker { z-index: 100000 !important; }
.swal2-popup.campus-validation-popup { width: 540px; max-width: calc(100vw - 30px); padding: 34px 34px 30px; border-radius: 20px; }
.swal2-popup .campus-validation-title { font-size: 28px; line-height: 1.2; }
.swal2-popup .campus-validation-text { font-size: 18px; line-height: 1.55; }
.swal2-popup .campus-validation-button { min-width: 150px; min-height: 48px; padding: 11px 24px; border-radius: 11px; font-size: 16px; font-weight: 700; }

/* Campus usa un único contenedor: sin fichas ni fondos interiores. */
.tenant-flow-campus form > .col-md-12,
.tenant-flow-campus form > .col-md-10,
.tenant-flow-campus form > .col-md-10:not(:has(table)):not(:has(> #autorizofoto)):not(:has(> #autorizopolitica)):not(:has(+ .col-md-8)),
.tenant-flow-campus form > .col-md-10:has(table),
.tenant-flow-campus form > .col-md-10:has(+ .col-md-8),
.tenant-flow-campus form > .col-md-8,
.tenant-flow-campus form > .col-md-2,
.tenant-flow-campus form > .col-md-10:has(> #autorizofoto),
.tenant-flow-campus form > .col-md-10:has(> #autorizopolitica) { top: auto; margin: 0; background: transparent; border: 0; border-radius: 0; }
.tenant-flow-campus form > .col-md-12,
.tenant-flow-campus form > .col-md-10:not(:has(table)):not(:has(> #autorizofoto)):not(:has(> #autorizopolitica)):not(:has(+ .col-md-8)),
.tenant-flow-campus form > .col-md-10:has(table) { padding: 0; }
.tenant-flow-campus form > .col-md-10:has(+ .col-md-8) { padding: 12px 0 0; }
.tenant-flow-campus form > .col-md-10:has(+ .col-md-8) label { display: inline; margin: 0; }
.tenant-flow-campus form > .col-md-10:has(+ .col-md-8) > span { margin-left: 3px; color: #c23b31; }
.tenant-flow-campus form > .col-md-8 { padding: 0; }
.tenant-flow-campus form > .col-md-2 { padding: 0; }
.tenant-flow-campus form > .col-md-10:has(> #autorizofoto),
.tenant-flow-campus form > .col-md-10:has(> #autorizopolitica) { padding: 8px 0; }
.tenant-flow-campus form > .col-md-10:has(table) { position: relative; z-index: 1; clear: both; margin-top: 24px; padding-top: 12px; overflow-x: auto; }

/* La vista antigua de preinscripciones usa columnas Bootstrap no estándar.
   Este bloque las normaliza sin alterar campos, ids ni comportamiento. */
.tenant-flow-schools { max-width: 1040px; padding: 34px 38px !important; }
.tenant-flow-schools br { display: none; }
.tenant-flow-schools [class*="col-md-"] { float: none; width: auto; min-height: 0; padding: 0; }
.tenant-flow-schools .billing-info > .row.x2 { padding-bottom: 22px; border-bottom: 1px solid #e2eaee; }
.tenant-flow-schools form { display: flex; flex-direction: column; gap: 22px; }
.tenant-flow-schools form > .form-group { margin: 0; }
.tenant-flow-schools form > .form-group:first-child { display: none; }
.tenant-flow-schools form > .form-group:has(#usuario1),
.tenant-flow-schools form > .col-md-20:has(#usuario2),
.tenant-flow-schools form > .col-md-20:has(#usuario3),
.tenant-flow-schools form > .col-md-14 { padding: 22px; background: #f8fafb; border: 1px solid #dfe8ec; border-radius: 17px; }
.tenant-flow-schools form > .form-group:has(#usuario1) > .col-md-20 > .col-md-20,
.tenant-flow-schools form > .col-md-20:has(#usuario2) > .col-md-20,
.tenant-flow-schools form > .col-md-20:has(#usuario3) > .col-md-20 { display: grid; grid-template-columns: 1.1fr .8fr 1.1fr; gap: 18px; align-items: end; }
.tenant-flow-schools form > .form-group:has(#usuario1) > .col-md-20 > .col-md-20 > label { grid-column: 1 / -1; margin: 0; color: #092f45; font-size: 19px; }
.tenant-flow-schools form > .form-group:has(#usuario1) .col-md-20:has(> #nintolera1),
.tenant-flow-schools form > .col-md-20:has(#usuario2) .col-md-20:has(> .col-md-10),
.tenant-flow-schools form > .col-md-20:has(#usuario3) .col-md-20:has(> .col-md-10) { grid-column: 1 / -1; }
.tenant-flow-schools form > .col-md-14 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tenant-flow-schools form > .col-md-14 > label { grid-column: 1 / -1; margin: 0 0 2px; color: #092f45; font-size: 16px; }
.tenant-flow-schools select, .tenant-flow-schools input.form-control { width: 100% !important; height: 48px; }
.tenant-flow-schools .select2-container { width: 100% !important; }
.tenant-flow-schools .select2-container .select2-selection--single { height: 48px; border: 1px solid #cddde5; border-radius: 12px; }
.tenant-flow-schools .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 13px; }
.tenant-flow-schools .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.tenant-flow-schools form > .col-md-20:has(> .col-md-10 > .form-check) { padding: 2px 0; }
.tenant-flow-schools .form-check { display: flex; align-items: center; gap: 10px; padding: 14px 17px; background: #eef6f8; border-radius: 12px; }
.tenant-flow-schools .form-check label { margin: 0; }
.tenant-flow-schools form:has(#subscribe2:not(:checked)) > .col-md-20:has(#usuario2),
.tenant-flow-schools form:has(#subscribe2:not(:checked)) > .col-md-14:has(#escuela4),
.tenant-flow-schools form:has(#subscribe3:not(:checked)) > .col-md-20:has(#usuario3),
.tenant-flow-schools form:has(#subscribe3:not(:checked)) > .col-md-14:has(#escuela7) { display: none; }
.tenant-flow-schools form > .col-md-10:has(> #autorizofoto),
.tenant-flow-schools form > .col-md-10:has(> #autorizopolitica) { display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid #dfe8ec; border-radius: 12px; }
.tenant-flow-schools form > .col-md-10:has(> #autorizofoto) label,
.tenant-flow-schools form > .col-md-10:has(> #autorizopolitica) label { margin: 0; font-weight: 500; }
.tenant-flow-schools form > .col-md-10:has(> #autorizofoto) a,
.tenant-flow-schools form > .col-md-10:has(> #autorizopolitica) a { color: #087f91; font-weight: 700; }
.tenant-flow-schools form > .col-md-10:has(> button) { display: flex; justify-content: flex-end; padding-top: 4px; }
.tenant-flow-schools form > .col-md-10:has(> button) button { min-width: 230px; }

/* Preinscripciones usa un único panel blanco, sin fichas interiores. */
.tenant-flow-schools form > .form-group:has(#usuario1),
.tenant-flow-schools form > .col-md-20:has(#usuario2),
.tenant-flow-schools form > .col-md-20:has(#usuario3),
.tenant-flow-schools form > .col-md-14,
.tenant-flow-schools .form-check,
.tenant-flow-schools form > .col-md-10:has(> #autorizofoto),
.tenant-flow-schools form > .col-md-10:has(> #autorizopolitica) { background: transparent; border: 0; border-radius: 0; }
.tenant-flow-schools form > .form-group:has(#usuario1),
.tenant-flow-schools form > .col-md-20:has(#usuario2),
.tenant-flow-schools form > .col-md-20:has(#usuario3),
.tenant-flow-schools form > .col-md-14 { padding: 0; }
.tenant-flow-schools .form-check { padding: 8px 0; }
.tenant-flow-schools form > .col-md-10:has(> #autorizofoto),
.tenant-flow-schools form > .col-md-10:has(> #autorizopolitica) { padding: 8px 0; }

.tenant-minors-menu { padding: 30px !important; }
.tenant-minors-menu .billing-info > div[align="center"] > h2 { display: none; }
.tenant-minors-menu .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin: 0; }
.tenant-minors-menu .row > [class*="col-"] { width: auto; padding: 0; }
.tenant-minors-menu .row a { display: block; overflow: hidden; color: #092f45; background: #fff; border: 1px solid #dbe5eb; border-radius: 18px; font-size: 16px; font-weight: 700; text-align: left; text-decoration: none; box-shadow: 0 10px 24px rgba(1, 46, 70, .07); }
.tenant-minors-menu .row img { display: block; width: 100%; aspect-ratio: 2.1 / 1; object-fit: cover; margin-bottom: 14px; }
.tenant-minors-menu .row a { padding-bottom: 15px; }

.tenant-minor-register { max-width: 850px; margin: -38px auto 55px; padding: 0 20px; position: relative; z-index: 3; }
.tenant-minor-register .container-fluid { padding: 0; }
/* Solo la columna vacía que centra la tarjeta, nunca las columnas de dentro del formulario */
.tenant-minor-register > .container-fluid > .row > .col-md-4:first-child { display: none; }
.tenant-minor-register > .container-fluid > .row > .col-md-4 { width: 100%; }
.tenant-minor-register .card { padding: 28px 30px; background: #fff; border: 1px solid #dbe5eb; border-radius: 24px; box-shadow: 0 18px 45px rgba(1, 46, 70, .09); }
.tenant-minor-register .card-header { padding: 0 0 20px; background: transparent; border: 0; }
.tenant-minor-register .card-title { margin: 0; color: #092f45; font-size: 27px; font-weight: 700; }
.tenant-minor-register .card-body { padding: 0; }

.tenant-result { max-width: 820px !important; text-align: center; }
.tenant-result-card { padding: 12px 28px 20px; }
.tenant-result-label { display: inline-block; margin-bottom: 14px; color: var(--tenant-secondary, #159baa); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.tenant-result h2, .tenant-result .card-title { margin: 0 0 14px; color: #092f45; font-size: 28px; font-weight: 750; }
.tenant-result p, .tenant-result h3, .tenant-result h4 { margin: 0 auto 24px; max-width: 650px; color: #526f7f; font-size: 16px; font-weight: 400; line-height: 1.65; }
.tenant-result-error .tenant-result-label { color: #b7473e; }
.tenant-result.content { max-width: 820px; margin: -38px auto 55px; padding: 28px; position: relative; z-index: 3; background: #fff; border: 1px solid #dbe5eb; border-radius: 24px; box-shadow: 0 18px 45px rgba(1, 46, 70, .09); }
.tenant-result.content .container-fluid, .tenant-result.content .row, .tenant-result.content [class*="col-"] { width: 100%; margin: 0; padding: 0; }
.tenant-result.content .row > .col-md-4:first-child { display: none; }
.tenant-result.content .card-header { padding: 0; background: transparent; border: 0; }

@media (max-width: 767px) {
  .tenant-flow.inter-page { margin: -30px 14px 35px !important; padding: 20px 16px; border-radius: 18px; }
  .tenant-flow .row.x2 > h2, .tenant-flow .billing-info h2, .tenant-minor-register .card-title { font-size: 22px; }
  .tenant-flow-campus form > .col-md-12, .tenant-flow-schools form > .form-group, .tenant-flow-schools .suscribe2, .tenant-flow-schools .suscribe3 { padding: 15px 12px; }
  .tenant-flow table { display: block; overflow-x: auto; white-space: nowrap; }
  .tenant-minors-menu .row { grid-template-columns: 1fr; }
  .tenant-minor-register, .tenant-result.content { margin: -30px 14px 35px; padding: 20px 16px; }
  .tenant-minor-register .card { padding: 20px 16px; border-radius: 18px; }
  .tenant-result-card { padding: 5px 2px 12px; }
  .tenant-result h2 { font-size: 23px; }
  .tenant-flow-schools { padding: 20px 16px !important; }
  .tenant-flow-schools form > .form-group:has(#usuario1) > .col-md-20 > .col-md-20,
  .tenant-flow-schools form > .col-md-20:has(#usuario2) > .col-md-20,
  .tenant-flow-schools form > .col-md-20:has(#usuario3) > .col-md-20,
  .tenant-flow-schools form > .col-md-14 { grid-template-columns: 1fr; }
  .tenant-flow-schools form > .col-md-14 > label { grid-column: 1; }
  .tenant-flow-schools form > .col-md-10:has(> #autorizofoto),
  .tenant-flow-schools form > .col-md-10:has(> #autorizopolitica) { grid-template-columns: 20px 1fr; }
  .tenant-flow-schools form > .col-md-10:has(> #autorizofoto) a,
  .tenant-flow-schools form > .col-md-10:has(> #autorizopolitica) a { grid-column: 2; }
  .tenant-flow-schools form > .col-md-10:has(> button) button { width: 100%; min-width: 0; }
  .tenant-flow-schools form > .form-group:has(#usuario1),
  .tenant-flow-schools form > .col-md-20:has(#usuario2),
  .tenant-flow-schools form > .col-md-20:has(#usuario3),
  .tenant-flow-schools form > .col-md-14 { padding: 0; background: transparent; border: 0; }
  .tenant-flow-campus { padding: 20px 16px !important; }
  .tenant-flow-campus form { grid-template-columns: 1fr; gap: 16px; }
  .tenant-flow-campus form > .col-md-12,
  .tenant-flow-campus form > .col-md-10:not(:has(table)):not(:has(> #autorizofoto)):not(:has(> #autorizopolitica)):not(:has(+ .col-md-8)) { grid-template-columns: 1fr; padding: 17px 14px; }
  .tenant-flow-campus form > .col-md-10,
  .tenant-flow-campus form > .col-md-8,
  .tenant-flow-campus form > .col-md-2,
  .tenant-flow-campus form > .col-md-5 { grid-column: 1; }
  .tenant-flow-campus form > .col-md-8,
  .tenant-flow-campus form > .col-md-2 { top: -16px; padding: 16px 14px 0; }
  .tenant-flow-campus form > .col-md-10:has(> #autorizofoto),
  .tenant-flow-campus form > .col-md-10:has(> #autorizopolitica) { grid-template-columns: 20px 1fr; }
  .tenant-flow-campus form > .col-md-10:has(> #autorizofoto) a,
  .tenant-flow-campus form > .col-md-10:has(> #autorizopolitica) a { grid-column: 2; }
  .tenant-flow-campus form > .col-md-5 button { width: 100%; min-width: 0; }
}

/* Bonos ------------------------------------------------------------- */
.bonos-refund-page { min-height: 540px; padding: 0 0 70px; color: #173d51; background: #f4f8fa; }
.bonos-refund-content { position: relative; z-index: 3; max-width: 760px; margin-top: -38px !important; }
.bonos-refund-card { padding: 42px 44px; border: 1px solid #dce7eb; border-top: 4px solid var(--tenant-primary, #012e46); border-radius: 20px; background: #fff; box-shadow: 0 16px 42px rgba(23,61,81,.1); }
.bonos-refund-status { display: inline-block; margin-bottom: 15px; padding: 6px 10px; border-radius: 20px; color: #315d70; background: #eaf3f6; font-size: 12px; font-weight: 600; }
.bonos-refund-card h2 { margin: 0 0 13px; color: #173d51; font-size: 29px; font-weight: 500; line-height: 1.25; }
.bonos-refund-card p { max-width: 590px; margin: 0; color: #637b87; font-size: 16px; line-height: 1.6; }
.bonos-refund-card.is-success { border-top-color: #23885c; }
.bonos-refund-card.is-success .bonos-refund-status { color: #176b47; background: #e8f6ef; }
.bonos-refund-card.is-warning { border-top-color: #c1881f; }
.bonos-refund-card.is-warning .bonos-refund-status { color: #8a5c08; background: #fff5dc; }
.bonos-refund-card.is-error { border-top-color: #b7444d; }
.bonos-refund-card.is-error .bonos-refund-status { color: #97333b; background: #fff0f1; }
.bonos-refund-actions { display: flex; justify-content: flex-end; margin-top: 30px; padding-top: 24px; border-top: 1px solid #e4ecef; }
.bonos-payment-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; margin-top: 30px; padding-top: 24px; border-top: 1px solid #e4ecef; }
.bonos-payment-link { color: #466874; font-size: 15px; font-weight: 400; }
.bonos-payment-link:hover, .bonos-payment-link:focus { color: #173d51; }
.bonos-refund-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 22px; border-radius: 12px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); font-size: 15px; font-weight: 400; text-decoration: none; }
.bonos-refund-button:hover, .bonos-refund-button:focus { color: var(--tenant-text, #fff); filter: brightness(1.08); text-decoration: none; }

@media (max-width: 767px) {
  .bonos-refund-page { min-height: 460px; padding-bottom: 42px; }
  .bonos-refund-content { width: calc(100% - 24px); margin-top: -30px !important; padding: 0; }
  .bonos-refund-card { padding: 28px 20px; border-radius: 17px; }
  .bonos-refund-card h2 { font-size: 24px; }
  .bonos-refund-card p { font-size: 14px; }
  .bonos-refund-actions { margin-top: 24px; padding-top: 20px; }
  .bonos-payment-actions { flex-direction: column-reverse; align-items: stretch; gap: 15px; margin-top: 24px; padding-top: 20px; text-align: center; }
  .bonos-refund-button { width: 100%; }
}
.tenant-menu-hero { position: relative; overflow: hidden; padding: 16px 0 52px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); }
.tenant-menu-hero::before, .tenant-menu-hero::after { content: ''; position: absolute; border: 1px solid #fff; border-radius: 50%; opacity: .32; pointer-events: none; }
.tenant-menu-hero::before { width: 360px; height: 360px; right: -130px; top: -210px; }
.tenant-menu-hero::after { width: 210px; height: 210px; right: 80px; bottom: -150px; }
.tenant-menu-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--tenant-text, #fff); font-size: 13px; font-weight: 600; opacity: .78; }
.tenant-menu-back:hover, .tenant-menu-back:focus { color: var(--tenant-text, #fff); opacity: 1; text-decoration: none; }
.tenant-menu-back .fa { font-size: 20px; }
.tenant-menu-hero-row { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.tenant-menu-title { display: block; }
.tenant-menu-hero h1 { margin: 0 0 6px; color: var(--tenant-text, #fff); font-size: 34px; line-height: 1.1; letter-spacing: -.025em; }
.tenant-menu-hero p { display: none; }
.tenant-menu-hero-logo { display: block; width: auto; max-width: 150px; height: auto; max-height: 70px; object-fit: contain; }
.tenant-menu-hero + .container.inter-page, .tenant-menu-hero + div[style*="max-width"] { position: relative; z-index: 2; margin-top: -38px !important; }

@media (max-width: 767px) {
  .tenant-menu-hero { padding: 13px 0 46px; }
  .tenant-menu-back { margin-bottom: 11px; }
  .tenant-menu-hero h1 { font-size: 27px; }
  .tenant-menu-hero p { font-size: 12px; }
  .tenant-menu-hero-logo { max-width: 105px; max-height: 50px; }
  .tenant-menu-hero + .container.inter-page, .tenant-menu-hero + div[style*="max-width"] { margin-top: -30px !important; }
}

/* Monedero ---------------------------------------------------------- */
.wallet-result-page { min-height: 540px; padding: 0 0 70px; color: #173d51; background: #f4f8fa; }
.wallet-result-content { position: relative; z-index: 3; max-width: 760px; margin-top: -38px !important; }
.wallet-result-card { padding: 42px 44px; border: 1px solid #dce7eb; border-top: 4px solid #b7444d; border-radius: 20px; background: #fff; box-shadow: 0 16px 42px rgba(23,61,81,.1); }
.wallet-result-status { display: inline-block; margin-bottom: 15px; padding: 6px 10px; border-radius: 20px; color: #97333b; background: #fff0f1; font-size: 12px; font-weight: 600; }
.wallet-result-card.is-success { border-top-color: #23885c; }
.wallet-result-card.is-success .wallet-result-status { color: #176b47; background: #e8f6ef; }
.wallet-result-card h2 { margin: 0 0 13px; color: #173d51; font-size: 29px; font-weight: 500; line-height: 1.25; }
.wallet-result-card p { max-width: 610px; margin: 0; color: #637b87; font-size: 16px; line-height: 1.6; }
.wallet-result-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 28px 0 0; }
.wallet-result-summary > div { padding: 18px 20px; border: 1px solid #dce7eb; border-radius: 14px; background: #f4f8fa; }
.wallet-result-summary dt { margin-bottom: 6px; color: #718792; font-size: 12px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.wallet-result-summary dd { overflow-wrap: anywhere; margin: 0; color: #173d51; font-size: 22px; font-weight: 500; line-height: 1.25; }
.wallet-result-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; margin-top: 30px; padding-top: 24px; border-top: 1px solid #e4ecef; }
.wallet-result-link { color: #466874; font-size: 15px; font-weight: 400; }
.wallet-result-link:hover, .wallet-result-link:focus { color: #173d51; }
.wallet-result-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 22px; border-radius: 12px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); font-size: 15px; font-weight: 400; text-decoration: none; }
.wallet-result-button:hover, .wallet-result-button:focus { color: var(--tenant-text, #fff); filter: brightness(1.08); text-decoration: none; }

@media (max-width: 767px) {
  .wallet-result-page { min-height: 460px; padding-bottom: 42px; }
  .wallet-result-content { width: calc(100% - 24px); margin-top: -30px !important; padding: 0; }
  .wallet-result-card { padding: 28px 20px; border-radius: 17px; }
  .wallet-result-card h2 { font-size: 24px; }
  .wallet-result-card p { font-size: 14px; }
  .wallet-result-summary { grid-template-columns: 1fr; margin-top: 22px; }
  .wallet-result-summary > div { padding: 15px 16px; }
  .wallet-result-summary dd { font-size: 20px; }
  .wallet-result-actions { flex-direction: column-reverse; align-items: stretch; gap: 15px; margin-top: 24px; padding-top: 20px; text-align: center; }
  .wallet-result-button { width: 100%; }
}
/* Entradas, incidencias y gestiones -------------------------------- */
.entrada-detail-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.entrada-detail-content { position: relative; z-index: 3; max-width: 1050px; margin-top: -38px; }
.entrada-detail-content::before, .entrada-detail-content::after { display: none; content: none; }
.entrada-access-card, .entrada-info-card, .entrada-cancel-card, .entrada-cancelled { border: 1px solid #dfe9ee; border-radius: 19px; background: #fff; box-shadow: 0 12px 34px rgba(27,61,80,.08); }
.entrada-access-card { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 22px; padding: 28px 32px; }
.entrada-reference { display: inline-block; margin-bottom: 16px; padding: 6px 9px; border-radius: 7px; color: var(--entrada-text, #fff); background: var(--entrada-primary); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.entrada-access-copy h2, .entrada-section-heading h2 { margin: 0; color: #172b38; font-size: 24px; }
.entrada-access-copy p { margin: 0; color: #71858f; font-size: 14px; }
.entrada-door-button { display: inline-flex; align-items: center; gap: 9px; min-height: 45px; margin-top: 20px; padding: 10px 18px; border: 0; border-radius: 10px; color: var(--entrada-text, #fff); background: var(--entrada-primary); font-size: 13px; font-weight: 800; }
.entrada-qr { flex: 0 0 165px; text-align: center; }
.entrada-qr img { display: block; width: 155px; height: 155px; margin: 0 auto 6px; padding: 5px; border: 1px solid #dce6ea; border-radius: 12px; background: #fff; }
.entrada-qr small { color: #71858f; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.entrada-info-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 22px; }
.entrada-info-card { padding: 30px; }
.entrada-section-heading { margin-bottom: 23px; }
.entrada-data-list { margin: 0; }
.entrada-data-list > div { display: grid; grid-template-columns: 145px minmax(0,1fr); gap: 18px; padding: 13px 0; border-bottom: 1px solid #e8eef1; }
.entrada-data-list > div:last-child { border-bottom: 0; }
.entrada-data-list dt { color: #7a8e98; font-size: 14px; font-weight: 700; }
.entrada-data-list dd { margin: 0; color: #304955; font-size: 15px; font-weight: 700; text-align: right; }
.entrada-detail-status { display: inline-block; padding: 6px 8px; border-radius: 7px; font-size: 11px; font-weight: 800; }
.entrada-detail-status.is-active { color: #257143; background: #e7f6ec; }
.entrada-detail-status.is-cancelled { color: #a34343; background: #f9e9e9; }
.entrada-lines-wrap { overflow-x: auto; }
.entrada-lines-table { width: 100%; border-collapse: collapse; }
.entrada-lines-table th { padding: 12px 9px; border-bottom: 2px solid var(--entrada-primary); color: #607681; font-size: 11px; text-align: left; text-transform: uppercase; }
.entrada-lines-table td { padding: 15px 9px; border-bottom: 1px solid #e5ecef; color: #536b77; font-size: 13px; }
.entrada-lines-table td:last-child, .entrada-lines-table th:last-child { text-align: right; }
.entrada-cancelled { margin-bottom: 22px; padding: 22px; color: #a01b1b; border-color: #f0c1c1; background: #fff4f4; text-align: center; }
.entrada-cancelled strong, .entrada-cancelled span { display: block; }
.entrada-cancelled strong { font-size: 18px; text-transform: uppercase; }
.entrada-cancelled span { margin-top: 4px; font-size: 12px; }
.entrada-cancel-card { display: flex; align-items: center; justify-content: flex-end; gap: 20px; margin-top: 22px; padding: 20px 24px; }
.entrada-refund-warning { display: flex; align-items: flex-start; gap: 9px; margin-right: auto; color: #7a5f0d; font-size: 12px; }
.entrada-cancel-card > a { padding: 9px 13px; border: 1px solid #e5caca; border-radius: 9px; color: #a34343; background: #fffafa; font-size: 12px; font-weight: 800; }
.entrada-cancel-card > a:hover { color: #fff; background: #a34343; text-decoration: none; }

@media (max-width: 767px) {
  .entrada-detail-page { padding-bottom: 60px; }
  .entrada-detail-content { margin-top: -30px; }
  .entrada-access-card { align-items: flex-start; flex-direction: column-reverse; padding: 24px 20px; }
  .entrada-qr { width: 100%; }
  .entrada-door-button { justify-content: center; width: 100%; }
  .entrada-info-grid { grid-template-columns: 1fr; }
  .entrada-info-card { padding: 24px 19px; }
  .entrada-data-list > div { grid-template-columns: 1fr; gap: 3px; }
  .entrada-data-list dd { text-align: left; }
  .entrada-lines-table thead { display: none; }
  .entrada-lines-table, .entrada-lines-table tbody, .entrada-lines-table tr, .entrada-lines-table td { display: block; width: 100%; }
  .entrada-lines-table tr { margin-bottom: 12px; padding: 8px 12px; border: 1px solid #e1eaee; border-radius: 10px; }
  .entrada-lines-table td { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; text-align: right; }
  .entrada-lines-table td::before { content: attr(data-label); color: #8999a1; font-size: 11px; font-weight: 800; text-transform: uppercase; }
  .entrada-cancel-card { align-items: stretch; flex-direction: column; }
}

.entradas-page, .incidencias-page, .gestiones-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.entradas-content, .incidencias-content, .gestiones-content { position: relative; z-index: 3; margin-top: -38px; }
.entradas-content::before, .entradas-content::after, .incidencias-content::before, .incidencias-content::after, .gestiones-content::before, .gestiones-content::after { display: none; content: none; }
.entradas-card, .incidencias-card, .gestiones-panel { margin: 0 auto; padding: 30px; border: 1px solid #dfe9ee; border-radius: 19px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.entradas-card { max-width: 1120px; }
.entradas-heading, .gestiones-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 23px; }
.entradas-heading h2, .incidencias-heading h2, .gestiones-heading h2 { margin: 0; color: #172b38; font-size: 23px; }
.entradas-heading p, .incidencias-heading p, .gestiones-heading p { margin: 0; color: #71858f; font-size: 14px; }
.entradas-heading > span { flex: 0 0 auto; padding: 7px 10px; border-radius: 8px; color: #647985; background: #eef3f5; font-size: 12px; font-weight: 800; }
.entradas-alert { margin-bottom: 16px; padding: 13px 15px; border: 1px solid; border-radius: 10px; font-size: 13px; font-weight: 700; }
.entradas-alert.is-error { color: #a01b1b; border-color: #f5b1b1; background: #fce4e4; }
.entradas-alert.is-success { color: #1f6b39; border-color: #b7e1c1; background: #e6f4ea; }
.entradas-table-wrap { overflow-x: auto; }
.entradas-table { width: 100%; border-collapse: collapse; }
.entradas-table th { padding: 12px 9px; border-bottom: 2px solid var(--entradas-primary); color: #607681; font-size: 11px; text-align: left; text-transform: uppercase; }
.entradas-table td { padding: 15px 9px; border-bottom: 1px solid #e5ecef; color: #536b77; font-size: 13px; vertical-align: middle; }
.entradas-table tr.is-inactive { opacity: .58; }
.entradas-table td strong { color: #263d49; }
.entradas-status { display: inline-block; padding: 6px 8px; border-radius: 7px; font-size: 11px; font-weight: 800; }
.entradas-status.is-active { color: #257143; background: #e7f6ec; }
.entradas-status.is-cancelled { color: #a34343; background: #f9e9e9; }
.entradas-action { width: 1%; white-space: nowrap; }
.entradas-action a { display: inline-block; min-width: 55px; padding: 8px 10px; border-radius: 8px; font-size: 12px; font-weight: 800; text-align: center; }
.entradas-view { color: var(--entradas-primary); border: 1px solid var(--entradas-primary); }
.entradas-view:hover { color: var(--entradas-text, #fff); background: var(--entradas-primary); text-decoration: none; }
.entradas-cancel { color: #a34343; border: 1px solid #e5caca; background: #fffafa; }
.entradas-cancel:hover { color: #fff; background: #a34343; text-decoration: none; }
.entradas-empty { padding: 45px 15px; color: #71858f; text-align: center; }
.entradas-empty .fa { margin-bottom: 8px; font-size: 30px; }
.entradas-rules { margin-top: 25px; padding: 20px 22px; border-left: 4px solid var(--entradas-primary); border-radius: 0 11px 11px 0; color: #607681; background: #f2f6f8; }
.entradas-rules h3 { margin: 0; color: #304955; font-size: 17px; }
.entradas-rules ol { margin: 0; padding-left: 20px; }
.entradas-rules li { margin: 7px 0; font-size: 13px; line-height: 1.6; }
.incidencias-card { max-width: 760px; padding: 36px 40px; }
.incidencias-heading { margin-bottom: 28px; }
.incidencias-field { margin-bottom: 21px; }
.incidencias-field label { display: block; margin-bottom: 8px; color: #405762; font-size: 14px; font-weight: 800; }
.incidencias-field .form-control { width: 100%; border: 1px solid #d7e3e8; border-radius: 10px; box-shadow: none; font-size: 14px; }
.incidencias-field select.form-control { height: 48px; }
.incidencias-field textarea.form-control { min-height: 180px; padding: 13px; resize: vertical; }
.incidencias-field small { display: block; margin-top: 7px; color: #82949d; font-size: 11px; }
.incidencias-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding-top: 23px; border-top: 1px solid #dfe9ee; }
.incidencias-actions > span { margin-right: auto; color: #71858f; font-size: 11px; }
.incidencias-actions > span .fa { color: var(--incidencias-primary); }
.incidencias-actions button { display: inline-flex; align-items: center; gap: 9px; min-height: 46px; padding: 11px 20px; border: 0; border-radius: 10px; color: var(--incidencias-text, #fff); background: var(--incidencias-primary); font-size: 13px; font-weight: 800; }
.incidencias-alert, .gestiones-alert { margin-top: 18px; }
.gestiones-panel { max-width: 1050px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.gestiones-content { margin-top: 28px; }
.gestiones-heading { justify-content: flex-start; }
/* Tres por fila, como la pantalla de seleccion. Eran cinco, que valia
   cuando la tarjeta era solo una foto con su rotulo debajo; con el cuadro
   nuevo -titulo, descripcion y boton- a ese ancho no se lee. */
.gestiones-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 1199px) { .gestiones-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .gestiones-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
@media (max-width: 479px)  { .gestiones-grid { grid-template-columns: 1fr; } }
.gestiones-card { display: block; overflow: hidden; height: 100%; border: 1px solid #dce6ea; border-radius: 13px; color: #304955; background: #fff; box-shadow: 0 7px 18px rgba(27,61,80,.07); transition: transform .18s ease, box-shadow .18s ease; }
.gestiones-card:hover, .gestiones-card:focus { color: var(--gestiones-primary); box-shadow: 0 12px 25px rgba(27,61,80,.13); transform: translateY(-2px); text-decoration: none; }
.gestiones-card img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gestiones-card span { display: block; min-height: 48px; padding: 13px 10px; border-top: 1px solid #e5ecef; font-size: 13px; font-weight: 800; text-align: center; }
.menores-grid { grid-template-columns: repeat(2, minmax(0, 200px)); justify-content: center; }

@media (max-width: 767px) {
  .entradas-page, .incidencias-page, .gestiones-page { padding-bottom: 60px; }
  .entradas-content, .incidencias-content, .gestiones-content { margin-top: -30px; }
  .gestiones-content { margin-top: 20px; }
  .entradas-card, .incidencias-card, .gestiones-panel { padding: 23px 18px; border-radius: 16px; }
  .gestiones-panel { padding: 0; border-radius: 0; }
  .entradas-heading { align-items: flex-start; flex-direction: column; }
  .entradas-table thead { display: none; }
  .entradas-table, .entradas-table tbody, .entradas-table tr, .entradas-table td { display: block; width: 100%; }
  .entradas-table tr { margin-bottom: 13px; padding: 9px 13px; border: 1px solid #e1eaee; border-radius: 11px; }
  .entradas-table td { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; border-bottom: 1px solid #edf2f4; text-align: right; }
  .entradas-table td::before { content: attr(data-label); color: #8999a1; font-size: 11px; font-weight: 800; text-transform: uppercase; }
  .entradas-action { display: inline-flex !important; width: 50% !important; border-bottom: 0 !important; }
  .entradas-action::before { display: none; }
  .entradas-action a { width: 100%; }
  .incidencias-actions { align-items: stretch; flex-direction: column; }
  .incidencias-actions > span { margin-right: 0; text-align: center; }
  .incidencias-actions button { justify-content: center; width: 100%; }
  .menores-grid { grid-template-columns: repeat(2, minmax(0, 200px)); }
}
@media (max-width: 420px) { .menores-grid { grid-template-columns: 1fr; } }

/* Tutorizados ------------------------------------------------------ */
.tutorizados-page { min-height: 620px; padding-bottom: 80px; color: #172b38; background: #f4f8fa; }
.tutorizados-content { position: relative; z-index: 3; margin-top: -38px; }
.tutorizados-panel { max-width: 1100px; margin: 0 auto; padding: 26px; border: 1px solid #dfe9ee; border-radius: 20px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.tutorizados-table-wrap { width: 100%; overflow-x: auto; }
.tutorizados-table { width: 100%; border-collapse: separate; border-spacing: 0; color: #294653; font-size: 14px; }
.tutorizados-table th { padding: 13px 15px; color: #173d51; background: #eef4f7; border-bottom: 1px solid #d9e4e9; font-size: 12px; font-weight: 800; letter-spacing: .025em; text-align: left; text-transform: uppercase; }
.tutorizados-table th:first-child { border-radius: 12px 0 0 0; }
.tutorizados-table th:last-child { border-radius: 0 12px 0 0; }
.tutorizados-table td { padding: 15px; border-bottom: 1px solid #e6edef; vertical-align: middle; }
.tutorizados-table tbody tr:last-child td { border-bottom: 0; }
.tutorizados-table tbody tr:hover { background: #fafcfd; }
.tutorizados-actions-heading { text-align: right !important; }
.tutorizados-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 520px; }
.tutorizados-actions form { margin: 0; }
.tutorizados-button { min-height: 48px; padding: 12px 18px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); border: 1px solid var(--tenant-primary, #012e46); border-radius: 11px; font-size: 16px; font-weight: 400; line-height: 1.2; white-space: nowrap; }
.tutorizados-button-secondary { color: #173d51; background: #fff; border-color: #cddce3; }
.tutorizados-button:hover { filter: brightness(1.08); }
.tutorizados-empty { padding: 42px 20px; text-align: center; }
.tutorizados-empty h2 { margin: 0 0 8px; color: #173d51; font-size: 24px; }
.tutorizados-empty p { margin: 0; color: #71858f; font-size: 14px; }
.tutorizados-alert { margin-top: 18px; }
.tutorizados-payment-page { min-height: 680px; padding-bottom: 80px; color: #173d51; background: #f4f8fa; }
.tutorizados-payment-page *, .tutorizados-payment-page *::before, .tutorizados-payment-page *::after { box-sizing: border-box; }
.tutorizados-payment-content { position: relative; z-index: 3; max-width: 1120px; margin-top: 32px; }
.tutorizados-payment-content > .col-md-2 { display: none; }
.tutorizados-payment-content .forum-post,
.tutorizados-payment-content .billing-info,
.tutorizados-payment-content .row,
.tutorizados-payment-content [class*="col-"] { float: none; width: 100%; min-height: 0; margin: 0; padding: 0; }
.tutorizados-payment-content .forum-post { overflow: hidden; padding: 32px; border: 1px solid #dfe9ee; border-radius: 20px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.tutorizados-payment-content h3 { margin: 0 0 26px; padding: 18px 20px; border-radius: 14px; color: #496875; background: #f1f6f8; font-size: 15px; font-weight: 500; line-height: 1.55; }
.tutorizados-payment-content h3 p { margin: 0; }
.tutorizados-payment-content h3 br { display: none; }
.tutorizados-payment-form > table { overflow: hidden; width: 100%; margin: 0 0 22px; border: 1px solid #dce7eb !important; border-collapse: separate; border-spacing: 0; border-radius: 14px; background: #fff; }
.tutorizados-payment-form > table th,
.tutorizados-payment-form > table td { height: auto; padding: 13px 15px !important; border: 0 !important; border-bottom: 1px solid #e7eef1 !important; color: #294754 !important; background: #fff !important; font-size: 14px; line-height: 1.35; vertical-align: middle; }
.tutorizados-payment-form > table thead tr:first-child th { padding: 15px !important; color: var(--tenant-text, #fff) !important; background: var(--tenant-primary, #012e46) !important; font-size: 17px; font-weight: 800; text-align: left; }
.tutorizados-payment-form > table thead tr:nth-child(2) th { color: #67808b !important; background: #f3f7f8 !important; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.tutorizados-payment-form > table tbody tr:last-child td { border-bottom: 0 !important; }
.tutorizados-payment-form input[type="checkbox"] { width: 20px; height: 20px; margin: 0; accent-color: var(--tenant-primary, #012e46); cursor: pointer; }
.tutorizados-payment-form input[type="checkbox"]:disabled { cursor: not-allowed; opacity: .45; }
.tutorizados-payment-submit { display: flex; width: 100%; min-height: 54px; align-items: center; justify-content: center; margin-top: 10px; padding: 14px 22px; border: 0; border-radius: 12px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); font-size: 16px; font-weight: 400; line-height: 1.2; cursor: pointer; }
.tutorizados-payment-submit:hover { filter: brightness(1.08); }
.tutorizados-payment-content label:empty,
.tutorizados-payment-content > br,
.tutorizados-payment-content .content-alert:empty { display: none; }
.tutorizados-confirm-page { min-height: 680px; padding-bottom: 85px; color: #173d51; background: #f4f8fa; }
.tutorizados-confirm-page *, .tutorizados-confirm-page *::before, .tutorizados-confirm-page *::after { box-sizing: border-box; }
.tutorizados-confirm-content { position: relative; z-index: 3; max-width: 760px; margin-top: 32px; }
.tutorizados-confirm-card { padding: 38px; border: 1px solid #dfe9ee; border-radius: 20px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.tutorizados-confirm-copy { text-align: center; }
.tutorizados-confirm-label { display: block; margin-bottom: 8px; color: #6b838e; font-size: 14px; font-weight: 600; }
.tutorizados-confirm-amount { display: block; color: var(--tenant-primary, #012e46); font-size: clamp(42px, 8vw, 66px); font-weight: 500; line-height: 1.05; }
.tutorizados-confirm-amount small { font-size: .48em; font-weight: 400; }
.tutorizados-confirm-copy p { margin: 18px 0 28px; color: #607985; font-size: 16px; line-height: 1.5; }
.tutorizados-confirm-submit, .tutorizados-confirm-back { display: flex; width: 100%; min-height: 54px; align-items: center; justify-content: center; padding: 14px 22px; border: 1px solid var(--tenant-primary, #012e46); border-radius: 12px; color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); font-size: 16px; font-weight: 400; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; }
.tutorizados-confirm-submit:hover, .tutorizados-confirm-back:hover { color: var(--tenant-text, #fff); filter: brightness(1.08); text-decoration: none; }
.tutorizados-confirm-empty { text-align: center; }
.tutorizados-confirm-empty h2 { margin: 0 0 10px; color: #203f4d; font-size: 27px; font-weight: 600; }
.tutorizados-confirm-empty p { margin: 0 0 26px; color: #667f8a; font-size: 16px; line-height: 1.5; }
.tutorizados-confirm-head { height: 0 !important; min-height: 0 !important; }
.tutorizados-confirm-hero { width: 100%; max-width: none; margin: 0; padding: 0; color: #62f7ff; background: #012e46; }
.tutorizados-confirm-hero .cab { display: flex; width: 100%; max-width: 1180px; min-height: 190px; align-items: center; margin: 0 auto; padding: 32px 34px; }
.tutorizados-confirm-hero .cab > a { display: flex; align-items: center; align-self: stretch; color: #62f7ff; text-decoration: none; }
.tutorizados-confirm-hero .cab > a .col-md-4 { float: none; width: auto; padding: 0; }
.tutorizados-confirm-hero .cab > a p { margin: 0; color: #62f7ff !important; font-size: 16px; font-weight: 400; }
.tutorizados-confirm-hero .cab > .col-md-8 { float: none; width: auto; flex: 1; padding: 0 0 0 55px; }
.tutorizados-confirm-hero h1 { margin: 0; color: #62f7ff; font-size: clamp(36px, 5vw, 58px); font-weight: 400; line-height: 1.05; }
.tutorizados-confirm-hero img { display: none !important; }
.tutorizados-confirm-content-legacy { position: relative; z-index: 3; max-width: 760px; margin-top: 32px; padding: 0; }
.tutorizados-confirm-card-legacy { float: none !important; width: 100% !important; min-height: 0 !important; margin: 0 !important; padding: 38px !important; border: 1px solid #dfe9ee !important; border-radius: 20px !important; background: #fff !important; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.tutorizados-confirm-card-legacy .content-head,
.tutorizados-confirm-card-legacy > .col-md-3,
.tutorizados-confirm-summary + .col-md-3 { display: none; }
.tutorizados-confirm-summary { float: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; text-align: center; }
.tutorizados-confirm-summary .black { float: none !important; width: 100% !important; min-height: 0 !important; padding: 0 !important; color: #173d51 !important; background: transparent !important; }
.tutorizados-confirm-summary h4 { margin: 0; color: #607985; font-size: 16px; font-weight: 400; line-height: 1.45; }
.tutorizados-confirm-summary h4:nth-of-type(3) { margin: 12px 0; color: #012e46; font-size: clamp(42px, 8vw, 66px); font-weight: 400; line-height: 1.05; }
.tutorizados-confirm-form-legacy { margin-top: 28px; }
.tutorizados-confirm-submit-legacy, .tutorizados-confirm-back-legacy { float: none !important; width: 100% !important; min-height: 54px; padding: 14px 22px !important; border: 0 !important; border-radius: 12px !important; color: #fff !important; background: #012e46 !important; font-size: 16px !important; font-weight: 400 !important; line-height: 1.2; box-shadow: none !important; }
.tutorizados-confirm-summary-empty h4 { margin-bottom: 26px; color: #203f4d; font-size: 25px; }
.tutorizados-confirm-summary-empty a { text-decoration: none; }
.ah-page { min-height: 650px; padding-bottom: 80px; color: #173d51; background: #f4f8fa; }
.ah-page *, .ah-page *::before, .ah-page *::after { box-sizing: border-box; }
.ah-menu-content, .ah-manage-content { position: relative; z-index: 3; max-width: 1050px; margin-top: 32px; }
.ah-menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.ah-menu-card { display: flex; min-height: 180px; flex-direction: column; justify-content: center; padding: 30px; border: 1px solid #dce7eb; border-radius: 20px; color: #173d51; background: #fff; box-shadow: 0 12px 32px rgba(27,61,80,.08); text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ah-menu-card:hover { color: #173d51; border-color: var(--tenant-primary, #012e46); box-shadow: 0 17px 38px rgba(27,61,80,.13); text-decoration: none; transform: translateY(-3px); }
.ah-menu-card::before { width: 48px; height: 5px; margin-bottom: 22px; border-radius: 99px; background: var(--tenant-primary, #012e46); content: ""; }
.ah-menu-card-enable::before { background: #26834a; }
.ah-menu-title { display: block; margin-bottom: 9px; color: #173d51; font-size: 25px; font-weight: 600; line-height: 1.2; }
.ah-menu-description { color: #657d88; font-size: 16px; line-height: 1.5; }
.ah-manage-content.inter-page { max-width: 1100px !important; margin: 32px auto 0 !important; padding: 30px; border: 1px solid #dce7eb; border-radius: 20px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.ah-manage-content > div:first-child { display: none; }
.ah-manage-content .panel { margin: 0 0 26px !important; border: 0; border-radius: 16px; background: #f2f6f8; box-shadow: none; }
.ah-manage-content .panel-body { padding: 22px; }
.ah-manage-content .panel .row { display: flex; align-items: flex-end; margin: 0 -8px; }
.ah-manage-content .panel [class*="col-"] { padding: 0 8px; }
.ah-manage-content label { display: block; margin-bottom: 8px; color: #294854; font-size: 15px; font-weight: 600; }
.ah-manage-content .form-control { min-height: 50px; padding: 10px 14px; border: 1px solid #cadbe2; border-radius: 11px; color: #173d51; background: #fff; box-shadow: none; font-size: 15px; }
.ah-manage-content .panel .col-md-2 { padding-top: 0 !important; }
.ah-manage-content .btn { min-height: 44px; padding: 10px 16px; border-radius: 10px; font-size: 15px; font-weight: 400; }
.ah-manage-content .btn-primary { min-height: 50px; border-color: var(--tenant-primary, #012e46); color: var(--tenant-text, #fff); background: var(--tenant-primary, #012e46); }
.ah-manage-content h4 { margin: 0 0 7px !important; color: #173d51; font-size: 24px; font-weight: 600; }
.ah-manage-content h4 + .text-muted { margin-bottom: 20px !important; color: #647d89; font-size: 15px; line-height: 1.5; }
.ah-manage-content form > div[style*="margin-bottom:12px"] { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 18px !important; }
.ah-manage-content form > div[style*="margin-bottom:12px"] .btn { margin: 0; border-color: #ccdbe1; background: #fff; }
.ah-manage-content .table-responsive { overflow: hidden; border: 1px solid #dce7eb; border-radius: 14px; }
.ah-manage-content table { margin: 0; background: #fff !important; }
.ah-manage-content table th { padding: 14px !important; border: 0 !important; color: #294854; background: #edf3f5; font-size: 14px; font-weight: 600; }
.ah-manage-content table td { padding: 14px !important; border-color: #e5edef !important; color: #34515d; font-size: 15px; vertical-align: middle !important; }
.ah-manage-content input[type="checkbox"] { width: 20px; height: 20px; margin: 0; accent-color: var(--tenant-primary, #012e46); }
.ah-manage-content .label { display: inline-flex; min-height: 27px; align-items: center; padding: 5px 10px; border-radius: 99px; font-size: 12px; font-weight: 500; }
.ah-manage-content form > div[style*="text-align:right"] { margin-top: 20px !important; }
.ah-manage-content form > div[style*="text-align:right"] .btn, .ah-manage-content #ah_float .btn { min-height: 50px; padding: 12px 22px; border: 0; color: #fff; font-size: 16px; font-weight: 400; }
.ah-manage-content #ah_float .btn { box-shadow: 0 8px 24px rgba(0,0,0,.22) !important; }
.ah-manage-content .alert { padding: 15px 18px; border: 0; border-radius: 12px; font-size: 15px; }
.pagos-realizados-table { min-width: 860px; }
.pagos-realizados-table th:nth-child(1) { width: 38%; }
.pagos-realizados-table th:nth-child(2) { width: 11%; }
.pagos-realizados-table th:nth-child(3) { width: 16%; }
.pagos-realizados-table th:nth-child(4) { width: 18%; }
.pagos-justificante-heading { text-align: right !important; }
.pagos-justificante { text-align: right; }
.pagos-justificante a { display: inline-flex; min-height: 39px; align-items: center; justify-content: center; padding: 9px 13px; color: #173d51; background: #fff; border: 1px solid #cddce3; border-radius: 10px; font-size: 11px; font-weight: 750; text-decoration: none; white-space: nowrap; }
.pagos-justificante a:hover { color: var(--tenant-primary, #012e46); border-color: var(--tenant-primary, #012e46); }

@media (max-width: 767px) {
  .tutorizados-page { padding-bottom: 55px; }
  .tutorizados-content { margin-top: -30px; padding: 0 14px; }
  .tutorizados-panel { padding: 16px; border-radius: 17px; }
  .tutorizados-table, .tutorizados-table tbody, .tutorizados-table tr, .tutorizados-table td { display: block; width: 100%; }
  .tutorizados-table thead { display: none; }
  .tutorizados-table tr { margin-bottom: 14px; padding: 14px; border: 1px solid #dfe8ec; border-radius: 14px; }
  .tutorizados-table tr:last-child { margin-bottom: 0; }
  .tutorizados-table td { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; padding: 7px 0; border: 0; }
  .tutorizados-table td::before { content: attr(data-label); color: #71858f; font-size: 11px; font-weight: 800; text-transform: uppercase; }
  .tutorizados-actions { display: grid !important; grid-template-columns: 1fr; min-width: 0; padding-top: 13px !important; }
  .tutorizados-actions form, .tutorizados-button { width: 100%; }
  .tutorizados-payment-page { padding-bottom: 55px; }
  .tutorizados-payment-content { margin-top: 20px; padding: 0 14px; }
  .tutorizados-payment-content .forum-post { padding: 17px; border-radius: 17px; }
  .tutorizados-payment-content h3 { padding: 15px; font-size: 13px; }
  .tutorizados-payment-form { overflow-x: auto; }
  .tutorizados-payment-form > table { min-width: 610px; }
  .tutorizados-payment-form > table th, .tutorizados-payment-form > table td { padding: 11px !important; font-size: 12px; }
  .tutorizados-confirm-page { padding-bottom: 55px; }
  .tutorizados-confirm-content { margin-top: 20px; padding: 0 14px; }
  .tutorizados-confirm-card { padding: 25px 18px; border-radius: 17px; }
  .tutorizados-confirm-copy p, .tutorizados-confirm-empty p { font-size: 14px; }
  .tutorizados-confirm-hero .cab { min-height: 145px; padding: 26px 20px; }
  .tutorizados-confirm-hero .cab > .col-md-8 { padding-left: 24px; }
  .tutorizados-confirm-content-legacy { margin-top: 20px; padding: 0 14px; }
  .tutorizados-confirm-card-legacy { padding: 25px 18px !important; border-radius: 17px !important; }
  .ah-page { padding-bottom: 55px; }
  .ah-menu-content, .ah-manage-content { margin-top: 20px; padding-right: 14px; padding-left: 14px; }
  .ah-menu-grid { grid-template-columns: 1fr; gap: 14px; }
  .ah-menu-card { min-height: 145px; padding: 23px; border-radius: 16px; }
  .ah-menu-title { font-size: 22px; }
  .ah-menu-description { font-size: 14px; }
  .ah-manage-content.inter-page { margin-top: 20px !important; padding: 17px; border-radius: 17px; }
  .ah-manage-content .panel .row { display: block; }
  .ah-manage-content .panel [class*="col-"] { width: 100%; margin-bottom: 15px; }
  .ah-manage-content .panel [class*="col-"]:last-child { margin-bottom: 0; }
  .ah-manage-content .table-responsive { overflow-x: auto; }
  .ah-manage-content table { min-width: 760px; }
  .ah-manage-content #ah_float { right: 14px !important; bottom: 14px !important; left: 14px; }
  .ah-manage-content #ah_float .btn { width: 100%; }
}

.alquiler-detail-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.alquiler-detail-page *, .alquiler-detail-page *::before, .alquiler-detail-page *::after { box-sizing: border-box; }
.alquiler-detail-content { position: relative; z-index: 3; max-width: 1050px; margin-top: -38px; }
.alquiler-detail-content::before, .alquiler-detail-content::after { display: none; content: none; }
.alquiler-access-card { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 22px; padding: 28px 32px; border: 1px solid #dfe9ee; border-radius: 19px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.alquiler-access-copy { min-width: 0; }
.alquiler-reference { display: inline-block; margin-bottom: 16px; padding: 6px 9px; border-radius: 7px; color: var(--alquiler-text, #fff); background: var(--alquiler-primary); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.alquiler-access-copy h2, .alquiler-section-heading h2 { margin: 0; color: #172b38; font-size: 22px; }
.alquiler-access-copy p, .alquiler-section-heading p { margin: 0; color: #71858f; font-size: 14px; }
.alquiler-door-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 45px; margin-top: 20px; padding: 10px 18px; border: 0; border-radius: 10px; color: var(--alquiler-text, #fff); background: var(--alquiler-primary); font-size: 13px; font-weight: 800; }
.alquiler-qr { flex: 0 0 155px; text-align: center; }
.alquiler-qr img { display: block; width: 145px; height: 145px; margin: 0 auto 6px; padding: 5px; border: 1px solid #dce6ea; border-radius: 12px; background: #fff; }
.alquiler-qr small { color: #71858f; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.alquiler-detail-grid { display: grid; grid-template-columns: 1fr; gap: 22px; }
.alquiler-info-card { padding: 30px; border: 1px solid #dfe9ee; border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(27,61,80,.07); }
.alquiler-section-heading { margin-bottom: 24px; }
.alquiler-info-card .alquiler-section-heading h2 { font-size: 27px; }
.alquiler-data-list { margin: 0; }
.alquiler-data-list > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 18px; padding: 14px 0; border-bottom: 1px solid #e8eef1; }
.alquiler-data-list > div:last-child { border-bottom: 0; }
.alquiler-data-list dt { color: #7a8e98; font-size: 15px; font-weight: 700; }
.alquiler-data-list dd { overflow-wrap: anywhere; margin: 0; color: #304955; font-size: 16px; font-weight: 700; text-align: right; }
.alquiler-data-extras dd ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; margin: 0; padding: 0; list-style: none; }
.alquiler-data-extras dd li { padding: 7px 10px; border-radius: 7px; color: var(--alquiler-primary); background: #eaf1f4; font-size: 14px; font-weight: 700; }
.alquiler-data-extras dd span { color: #71858f; font-size: 15px; font-weight: 500; }
.alquiler-extras, .alquiler-payment { margin-top: 25px; padding-top: 21px; border-top: 1px solid #dfe9ee; }
.alquiler-extras h3, .alquiler-payment h3 { margin: 0 0 14px; color: #304955; font-size: 17px; }
.alquiler-extras ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.alquiler-extras li { padding: 6px 9px; border-radius: 7px; color: var(--alquiler-primary); background: #eaf1f4; font-size: 12px; font-weight: 700; }
.alquiler-extras p { margin: 0; color: #71858f; font-size: 13px; }
.alquiler-payment > div { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 9px 0; color: #71858f; font-size: 13px; }
.alquiler-payment strong { color: #304955; font-size: 14px; }
#reinstatement:empty, #reinstatement-form:empty, #preloader:empty { display: none; }

@media (max-width: 767px) {
  .alquiler-detail-page { padding-bottom: 60px; }
  .alquiler-detail-content { margin-top: -30px; }
  .alquiler-access-card { align-items: flex-start; flex-direction: column-reverse; padding: 24px 20px; }
  .alquiler-qr { width: 100%; }
  .alquiler-detail-grid { grid-template-columns: 1fr; }
  .alquiler-info-card { padding: 24px 19px; }
  .alquiler-data-list > div { grid-template-columns: 1fr; gap: 3px; }
  .alquiler-data-list dd { text-align: left; }
  .alquiler-data-extras dd ul { justify-content: flex-start; }
  .alquiler-door-button { width: 100%; }
}

.historial-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.historial-page *, .historial-page *::before, .historial-page *::after { box-sizing: border-box; }
.historial-content { position: relative; z-index: 3; max-width: 1120px; margin-top: -38px; }
.historial-content::before, .historial-content::after { display: none; content: none; }
.historial-card { padding: 30px; border: 1px solid #dfe9ee; border-radius: 19px; background: #fff; box-shadow: 0 14px 38px rgba(27,61,80,.09); }
.historial-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.historial-heading h2 { margin: 0; color: #172b38; font-size: 22px; }
.historial-heading p { margin: 0; color: #71858f; font-size: 14px; }
.historial-count { flex: 0 0 auto; padding: 8px 11px; border-radius: 8px; color: #647985; background: #eef3f5; font-size: 12px; font-weight: 800; }
.historial-pagination-top { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-bottom: 15px; color: #71858f; font-size: 12px; }
.historial-pagination-top .num-page { display: inline-grid; place-items: center; min-width: 27px; height: 27px; padding: 0 7px; border: 1px solid #d8e3e8; border-radius: 7px; color: #536b77; background: #fff; }
.historial-pagination-top .num-page.active { color: var(--historial-text, #fff); border-color: var(--historial-primary); background: var(--historial-primary); }
.historial-table-wrap { overflow-x: auto; }
.historial-table { width: 100%; border-collapse: collapse; }
.historial-table th { padding: 12px 9px; border-bottom: 2px solid var(--historial-primary); color: #607681; font-size: 11px; text-align: left; text-transform: uppercase; letter-spacing: .04em; }
.historial-table td { padding: 15px 9px; border-bottom: 1px solid #e5ecef; color: #536b77; font-size: 13px; vertical-align: middle; }
.historial-table tbody tr:last-child td { border-bottom: 0; }
.historial-table td strong { color: #263d49; }
.historial-action { width: 1%; white-space: nowrap; }
.historial-action a { display: inline-block; min-width: 60px; padding: 8px 10px; border-radius: 8px; font-size: 12px; font-weight: 800; text-align: center; }
.historial-view { color: var(--historial-primary); border: 1px solid var(--historial-primary); }
.historial-view:hover, .historial-view:focus { color: var(--historial-text, #fff); background: var(--historial-primary); text-decoration: none; }
.historial-cancel { color: #a34343; border: 1px solid #e5caca; background: #fffafa; }
.historial-cancel:hover, .historial-cancel:focus { color: #fff; background: #a34343; text-decoration: none; }
.historial-empty { padding: 45px 15px; color: #71858f; text-align: center; }
.historial-empty .fa { margin-bottom: 9px; color: #a9bac2; font-size: 30px; }
.historial-empty p { margin: 0; font-size: 14px; }
.historial-rules { margin-top: 25px; padding: 20px 22px; border-left: 4px solid var(--historial-primary); border-radius: 0 11px 11px 0; color: #607681; background: #f2f6f8; }
.historial-rules h3 { margin: 0; color: #304955; font-size: 17px; }
.historial-rules ol { margin: 0; padding-left: 20px; }
.historial-rules li { margin: 7px 0; font-size: 13px; line-height: 1.6; }

@media (max-width: 767px) {
  .historial-page { padding-bottom: 60px; }
  .historial-content { margin-top: -30px; }
  .historial-card { padding: 23px 18px; border-radius: 16px; }
  .historial-heading { align-items: flex-start; flex-direction: column; }
  .historial-pagination-top { justify-content: flex-start; flex-wrap: wrap; }
  .historial-table thead { display: none; }
  .historial-table, .historial-table tbody, .historial-table tr, .historial-table td { display: block; width: 100%; }
  .historial-table tr { margin-bottom: 13px; padding: 9px 13px; border: 1px solid #e1eaee; border-radius: 11px; }
  .historial-table td { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; border-bottom: 1px solid #edf2f4; text-align: right; }
  .historial-table td::before { content: attr(data-label); color: #8999a1; font-size: 9px; font-weight: 800; text-transform: uppercase; }
  .historial-action { display: inline-flex !important; width: 50% !important; padding-top: 12px !important; border-bottom: 0 !important; }
  .historial-action::before { display: none; }
  .historial-action a { width: 100%; }
  .historial-action + .historial-action { float: right; margin-top: -43px; margin-left: 50%; }
}

.monedero-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.monedero-page *, .monedero-page *::before, .monedero-page *::after { box-sizing: border-box; }
.monedero-content { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 22px; max-width: 1050px; margin-top: -38px; }
.monedero-content::before, .monedero-content::after { display: none; content: none; }
.monedero-balance-card, .monedero-recharge-card, .monedero-history-card { border: 1px solid #dfe9ee; border-radius: 18px; background: #fff; box-shadow: 0 12px 32px rgba(27,61,80,.09); }
.monedero-balance-card { position: relative; display: flex; align-items: center; justify-content: space-between; overflow: hidden; min-height: 250px; padding: 34px; color: var(--monedero-text, #fff); background: var(--monedero-primary, #012e46); }
.monedero-balance-card, .monedero-recharge-card { height: 100%; }
.monedero-balance-card::after { content: ''; position: absolute; width: 190px; height: 190px; right: -105px; bottom: -120px; border: 1px solid #fff; border-radius: 50%; opacity: .2; }
.monedero-balance-copy { position: relative; z-index: 1; }
.monedero-balance-copy > span { display: block; margin-bottom: 8px; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
.monedero-balance-copy > strong { display: block; margin-bottom: 15px; color: var(--monedero-text, #fff); font-size: 46px; line-height: 1; }
.monedero-balance-copy > strong small { font-size: 24px; }
.monedero-balance-copy p { max-width: 285px; margin: 0; font-size: 12px; line-height: 1.55; opacity: .72; }
.monedero-balance-mark { position: relative; z-index: 1; display: grid; place-items: center; flex: 0 0 54px; height: 54px; margin-left: 18px; border: 1px solid currentColor; border-radius: 16px; font-size: 21px; opacity: .7; }
.monedero-recharge-card { padding: 32px; }
.monedero-section-heading { margin-bottom: 25px; }
.monedero-section-heading h2, .monedero-history-heading h2 { margin: 0; color: #172b38; font-size: 21px; }
.monedero-section-heading p, .monedero-history-heading p { margin: 0; color: #71858f; font-size: 12px; }
.monedero-recharge-form label { display: block; margin-bottom: 7px; color: #405762; font-size: 12px; font-weight: 700; }
.monedero-select-wrap { position: relative; }
.monedero-select-wrap > span { position: absolute; z-index: 2; left: 15px; top: 50%; color: var(--monedero-primary); font-size: 15px; font-weight: 800; transform: translateY(-50%); }
.monedero-select-wrap .form-control { width: 100%; height: 48px; padding: 10px 13px 10px 39px; border: 1px solid #d7e3e8; border-radius: 10px; box-shadow: none; }
.monedero-recharge-note { margin: 15px 0; padding: 12px; border-radius: 9px; color: #607681; background: #f2f6f8; font-size: 11px; }
.monedero-recharge-note .fa { margin-right: 5px; color: var(--monedero-primary); }
.monedero-recharge-button { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; min-height: 46px; border: 0; border-radius: 11px; color: var(--monedero-text, #fff); background: var(--monedero-primary); font-size: 13px; font-weight: 800; }
.monedero-history-card { grid-column: 1 / -1; padding: 30px; }
.monedero-history-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 23px; }
.monedero-history-heading > span { padding: 6px 9px; border-radius: 8px; color: #647985; background: #eef3f5; font-size: 10px; font-weight: 700; }
.monedero-table-wrap { overflow-x: auto; }
.monedero-table { width: 100%; border-collapse: collapse; }
.monedero-table th { padding: 12px; border-bottom: 2px solid var(--monedero-primary); color: #607681; font-size: 11px; text-align: left; text-transform: uppercase; letter-spacing: .05em; }
.monedero-table td { padding: 15px 12px; border-bottom: 1px solid #e5ecef; color: #536b77; font-size: 13px; }
.monedero-table tbody tr:last-child td { border-bottom: 0; }
.monedero-table td strong { color: #263d49; }
.monedero-status { display: inline-flex; align-items: center; gap: 5px; padding: 6px 9px; border-radius: 7px; font-size: 11px; font-weight: 800; }
.monedero-status.is-success { color: #257143; background: #e7f6ec; }
.monedero-status.is-error { color: #a34343; background: #f9e9e9; }
.monedero-empty { padding: 35px 15px; color: #71858f; text-align: center; }
.monedero-empty .fa { margin-bottom: 8px; color: #a9bac2; font-size: 28px; }
.monedero-empty p { margin: 0; font-size: 12px; }

@media (max-width: 767px) {
  .monedero-page { padding-bottom: 60px; }
  .monedero-content { grid-template-columns: 1fr; margin-top: -30px; }
  .monedero-balance-card { min-height: 210px; padding: 27px 23px; }
  .monedero-balance-copy > strong { font-size: 38px; }
  .monedero-balance-mark { display: none; }
  .monedero-recharge-card, .monedero-history-card { padding: 24px 19px; }
  .monedero-history-card { grid-column: auto; }
  .monedero-history-heading { align-items: flex-start; flex-direction: column; }
  .monedero-table thead { display: none; }
  .monedero-table, .monedero-table tbody, .monedero-table tr, .monedero-table td { display: block; width: 100%; }
  .monedero-table tr { margin-bottom: 13px; padding: 8px 13px; border: 1px solid #e1eaee; border-radius: 11px; }
  .monedero-table td { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; border-bottom: 1px solid #edf2f4; text-align: right; }
  .monedero-table td::before { content: attr(data-label); color: #8999a1; font-size: 11px; font-weight: 800; text-transform: uppercase; }
}

.bonos-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.bonos-page *, .bonos-page *::before, .bonos-page *::after { box-sizing: border-box; }
.bonos-hero { position: relative; overflow: hidden; padding: 26px 0 74px; color: var(--bonos-hero-text, #fff); background: var(--bonos-primary, #012e46); }
.bonos-hero::before, .bonos-hero::after { content: ''; position: absolute; border: 1px solid #fff; border-radius: 50%; opacity: .32; pointer-events: none; }
.bonos-hero::before { width: 360px; height: 360px; right: -130px; top: -210px; }
.bonos-hero::after { width: 210px; height: 210px; right: 80px; bottom: -150px; }
.bonos-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 25px; color: var(--bonos-hero-text, #fff); font-size: 13px; font-weight: 600; opacity: .78; }
.bonos-back:hover, .bonos-back:focus { color: var(--bonos-hero-text, #fff); opacity: 1; text-decoration: none; }
.bonos-back .fa { font-size: 20px; }
.bonos-hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.bonos-eyebrow { display: block; margin-bottom: 7px; color: var(--bonos-primary); font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.bonos-hero .bonos-eyebrow { color: var(--bonos-hero-text, #fff); }
.bonos-hero h1 { margin: 0 0 9px; color: var(--bonos-hero-text, #fff); font-size: 40px; line-height: 1.1; }
.bonos-hero p { margin: 0; font-size: 16px; opacity: .72; }
.bonos-hero-icon { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid currentColor; border-radius: 18px; font-size: 22px; opacity: .75; }
.bonos-content { position: relative; z-index: 2; margin-top: -38px; }
.bonos-summary { display: grid; grid-template-columns: repeat(2, 1fr); max-width: 590px; margin: 0 auto 25px; overflow: hidden; border: 1px solid #dfe9ee; border-radius: 16px; background: #fff; box-shadow: 0 12px 30px rgba(27,61,80,.1); }
.bonos-total { display: flex; align-items: center; gap: 13px; padding: 19px 22px; }
.bonos-total + .bonos-total { border-left: 1px solid #dfe9ee; }
.bonos-total-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; color: var(--bonos-hero-text, #fff); background: var(--bonos-primary); }
.bonos-total small, .bonos-total strong { display: block; }
.bonos-total small { color: #71858f; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.bonos-total strong { color: #172b38; font-size: 24px; }
.bonos-main-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; max-width: 1050px; margin: 0 auto 28px; }
.bonos-panel, .bonos-history { padding: 30px; border: 1px solid #dfe9ee; border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(27,61,80,.07); }
.bonos-panel-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 23px; }
.bonos-panel-icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 11px; color: var(--bonos-hero-text, #fff); background: var(--bonos-primary); }
.bonos-panel-heading h2, .bonos-history-heading h2 { margin: 0 0 3px; color: #172b38; font-size: 20px; }
.bonos-panel-heading p { margin: 0; color: #71858f; font-size: 12px; }
.bonos-balance-list { display: grid; gap: 10px; }
.bonos-balance-item { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid #e2eaee; border-radius: 11px; background: #fbfcfd; }
.bonos-sport-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; color: var(--bonos-primary); background: #eaf1f4; }
.bonos-sport-name { margin-right: auto; color: #354d59; font-size: 13px; font-weight: 700; }
.bonos-quantity { text-align: right; }
.bonos-quantity strong, .bonos-quantity small { display: block; }
.bonos-quantity strong { color: var(--bonos-primary); font-size: 21px; line-height: 1; }
.bonos-quantity small { color: #7a8e98; font-size: 9px; text-transform: uppercase; }
.bonos-buy-form label { display: block; margin-bottom: 7px; color: #405762; font-size: 12px; font-weight: 700; }
.bonos-select-wrap { position: relative; }
.bonos-select-wrap > .fa { position: absolute; z-index: 2; left: 14px; top: 50%; color: #8ca0aa; transform: translateY(-50%); }
.bonos-select-wrap .form-control { height: 48px; padding-left: 39px; border: 1px solid #d7e3e8; border-radius: 10px; box-shadow: none; }
.bonos-buy-note { margin: 16px 0; padding: 12px; border-radius: 9px; color: #607681; background: #f4f8fa; font-size: 11px; line-height: 1.45; }
.bonos-buy-note .fa { margin-right: 5px; color: var(--bonos-primary); }
.bonos-buy-button { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; min-height: 46px; border: 0; border-radius: 11px; color: var(--bonos-hero-text, #fff); background: var(--bonos-primary); font-size: 13px; font-weight: 800; }
.bonos-empty, .bonos-history-empty { padding: 30px 15px; color: #71858f; text-align: center; }
.bonos-empty .fa, .bonos-history-empty .fa { margin-bottom: 8px; color: #a9bac2; font-size: 28px; }
.bonos-empty p, .bonos-history-empty p { margin: 0; font-size: 12px; }
.bonos-history { max-width: 1050px; margin: 0 auto; }
.bonos-history-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.bonos-history-count { padding: 6px 9px; border-radius: 8px; color: #647985; background: #eef3f5; font-size: 10px; font-weight: 700; }
.bonos-table-wrap { overflow-x: auto; }
.bonos-table { width: 100%; border-collapse: collapse; }
.bonos-table th { padding: 12px 10px; border-bottom: 2px solid var(--bonos-primary); color: #607681; font-size: 11px; text-align: left; text-transform: uppercase; letter-spacing: .04em; }
.bonos-table td { padding: 15px 10px; border-bottom: 1px solid #e5ecef; color: #536b77; font-size: 13px; vertical-align: middle; }
.bonos-table tbody tr:last-child td { border-bottom: 0; }
.bonos-table td strong { color: #263d49; }
.bonos-status { display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; border-radius: 7px; font-size: 11px; font-weight: 800; }
.bonos-status.is-active { color: #257143; background: #e7f6ec; }
.bonos-status.is-cancelled { color: #7a858b; background: #edf0f1; }
.bonos-table-action { text-align: right; }
.bonos-table-action a { display: inline-block; padding: 8px 11px; border: 1px solid #d4e0e5; border-radius: 8px; color: #526b77; font-size: 12px; font-weight: 700; }
.bonos-table-action a:hover { color: #fff; background: var(--bonos-primary); text-decoration: none; }
.bonos-table-action span { color: #9aa9b0; font-size: 12px; }

@media (max-width: 767px) {
  .bonos-page { padding-bottom: 60px; }
  .bonos-hero { padding: 20px 0 64px; }
  .bonos-back { margin-bottom: 18px; }
  .bonos-hero h1 { font-size: 31px; }
  .bonos-hero p { font-size: 13px; }
  .bonos-hero-icon { display: none; }
  .bonos-content { margin-top: -30px; }
  .bonos-summary { grid-template-columns: 1fr; }
  .bonos-total + .bonos-total { border-top: 1px solid #dfe9ee; border-left: 0; }
  .bonos-main-grid { grid-template-columns: 1fr; }
  .bonos-panel, .bonos-history { padding: 23px 18px; border-radius: 16px; }
  .bonos-history-heading { align-items: flex-start; flex-direction: column; }
  .bonos-table thead { display: none; }
  .bonos-table, .bonos-table tbody, .bonos-table tr, .bonos-table td { display: block; width: 100%; }
  .bonos-table tr { margin-bottom: 13px; padding: 8px 13px; border: 1px solid #e1eaee; border-radius: 11px; }
  .bonos-table td { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; border-bottom: 1px solid #edf2f4; text-align: right; }
  .bonos-table td::before { content: attr(data-label); color: #8999a1; font-size: 11px; font-weight: 800; text-transform: uppercase; }
  .bonos-table-action { justify-content: flex-end !important; border-bottom: 0 !important; }
  .bonos-table-action::before { display: none; }
}

@media (max-width: 420px) {
  .evt-mis-hero-row { display: block; }
  .evt-wallet { display: inline-flex; margin-top: 18px; }
  .evt-wallet-icon { display: grid; }
  .evt-summary-item { display: block; text-align: center; }
  .evt-summary-icon { margin: 0 auto 7px; }
  .evt-summary-item + .evt-summary-item::before { top: 15px; bottom: 15px; }
  .evt-card-footer { padding: 14px 16px; }
  .evt-mis-body { padding: 18px 16px 15px; }
  .evt-empty-state { padding: 48px 20px; }
}

/* Confirmacion de bonos -------------------------------------------- */
.monedero-confirm-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.monedero-confirm-page *, .monedero-confirm-page *::before, .monedero-confirm-page *::after { box-sizing: border-box; }
.monedero-confirm-content { position: relative; z-index: 3; margin-top: -38px; }
.monedero-confirm-content::before, .monedero-confirm-content::after { display: none; content: none; }
.monedero-confirm-card { max-width: 590px; margin: 0 auto; padding: 36px 40px 28px; border: 1px solid #dfe9ee; border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgba(27,61,80,.11); }
.monedero-confirm-heading { margin-bottom: 27px; text-align: center; }
.monedero-confirm-heading h2 { margin: 0; color: #172b38; font-size: 23px; }
.monedero-confirm-heading p { margin: 0; color: #71858f; font-size: 12px; }
.monedero-confirm-amount { margin-bottom: 22px; padding: 25px; border: 1px solid #dce7eb; border-radius: 15px; text-align: center; background: #f8fafb; }
.monedero-confirm-amount small { display: block; margin-bottom: 5px; color: #71858f; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.monedero-confirm-amount strong { display: block; color: var(--monedero-confirm-primary, #012e46); font-size: 40px; line-height: 1.1; }
.monedero-confirm-amount strong span { font-size: 22px; }
.monedero-confirm-info { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 26px; padding: 14px; border-radius: 11px; color: #607681; background: #eef4f6; }
.monedero-confirm-info .fa { margin-top: 2px; color: var(--monedero-confirm-primary, #012e46); }
.monedero-confirm-info p { margin: 0; font-size: 11px; line-height: 1.55; }
.monedero-confirm-form { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding-top: 23px; border-top: 1px solid #dfe9ee; }
.monedero-confirm-cancel { padding: 11px 15px; color: #687d89; font-size: 13px; font-weight: 700; }
.monedero-confirm-cancel:hover, .monedero-confirm-cancel:focus { color: #172b38; text-decoration: none; }
.monedero-confirm-submit { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 11px 20px; border: 0; border-radius: 11px; color: var(--monedero-confirm-text, #fff); background: var(--monedero-confirm-primary, #012e46); font-size: 13px; font-weight: 800; }
.monedero-confirm-secure { margin-top: 18px; color: #8a9ba3; font-size: 10px; text-align: center; }
.monedero-confirm-secure .fa { margin-right: 4px; }

@media (max-width: 767px) {
  .monedero-confirm-page { padding-bottom: 60px; }
  .monedero-confirm-content { margin-top: -30px; }
  .monedero-confirm-card { padding: 29px 21px 24px; border-radius: 17px; }
  .monedero-confirm-form { align-items: stretch; flex-direction: column-reverse; }
  .monedero-confirm-cancel { text-align: center; }
  .monedero-confirm-submit { width: 100%; }
}

.bonos-confirm-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.bonos-confirm-page *, .bonos-confirm-page *::before, .bonos-confirm-page *::after { box-sizing: border-box; }
.bonos-confirm-hero { position: relative; overflow: hidden; padding: 26px 0 74px; color: var(--bonos-confirm-text, #fff); background: var(--bonos-confirm-primary, #012e46); }
.bonos-confirm-hero::before, .bonos-confirm-hero::after { content: ''; position: absolute; border: 1px solid #fff; border-radius: 50%; opacity: .32; pointer-events: none; }
.bonos-confirm-hero::before { width: 360px; height: 360px; right: -130px; top: -210px; }
.bonos-confirm-hero::after { width: 210px; height: 210px; right: 80px; bottom: -150px; }
.bonos-confirm-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 25px; color: var(--bonos-confirm-text, #fff); font-size: 13px; font-weight: 600; opacity: .78; }
.bonos-confirm-back:hover, .bonos-confirm-back:focus { color: var(--bonos-confirm-text, #fff); opacity: 1; text-decoration: none; }
.bonos-confirm-back .fa { font-size: 20px; }
.bonos-confirm-eyebrow { display: block; margin-bottom: 7px; }
.bonos-confirm-hero h1 { margin: 0 0 9px; color: var(--bonos-confirm-text, #fff); font-size: 40px; line-height: 1.1; }
.bonos-confirm-hero p { margin: 0; font-size: 16px; opacity: .72; }
.bonos-confirm-content { position: relative; z-index: 2; margin-top: -38px; }
.bonos-confirm-card { max-width: 590px; margin: 0 auto; padding: 36px 40px 28px; border: 1px solid #dfe9ee; border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgba(27,61,80,.11); }
.bonos-confirm-heading { margin-bottom: 27px; text-align: center; }
.bonos-confirm-heading h2 { margin: 0; color: #172b38; font-size: 23px; }
.bonos-confirm-heading p { margin: 0; color: #71858f; font-size: 12px; }
.bonos-confirm-amount { margin-bottom: 22px; padding: 25px; border: 1px solid #dce7eb; border-radius: 15px; text-align: center; background: #f8fafb; }
.bonos-confirm-amount small { display: block; margin-bottom: 5px; color: #71858f; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bonos-confirm-amount strong { display: block; color: var(--bonos-confirm-primary); font-size: 40px; line-height: 1.1; }
.bonos-confirm-amount strong span { font-size: 22px; }
.bonos-confirm-info { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 26px; padding: 14px; border-radius: 11px; color: #607681; background: #eef4f6; }
.bonos-confirm-info .fa { margin-top: 2px; color: var(--bonos-confirm-primary); }
.bonos-confirm-info p { margin: 0; font-size: 11px; line-height: 1.55; }
.bonos-confirm-form { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding-top: 23px; border-top: 1px solid #dfe9ee; }
.bonos-confirm-cancel { padding: 11px 15px; color: #687d89; font-size: 13px; font-weight: 700; }
.bonos-confirm-cancel:hover, .bonos-confirm-cancel:focus { color: #172b38; text-decoration: none; }
.bonos-confirm-submit { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 11px 20px; border: 0; border-radius: 11px; color: var(--bonos-confirm-text, #fff); background: var(--bonos-confirm-primary); font-size: 13px; font-weight: 800; }
.bonos-confirm-secure { margin-top: 18px; color: #8a9ba3; font-size: 10px; text-align: center; }
.bonos-confirm-secure .fa { margin-right: 4px; }

@media (max-width: 767px) {
  .bonos-confirm-page { padding-bottom: 60px; }
  .bonos-confirm-hero { padding: 20px 0 64px; }
  .bonos-confirm-back { margin-bottom: 18px; }
  .bonos-confirm-hero h1 { font-size: 31px; }
  .bonos-confirm-hero p { font-size: 13px; }
  .bonos-confirm-content { margin-top: -30px; }
  .bonos-confirm-card { padding: 29px 21px 24px; border-radius: 17px; }
  .bonos-confirm-form { align-items: stretch; flex-direction: column-reverse; }
  .bonos-confirm-cancel { text-align: center; }
  .bonos-confirm-submit { width: 100%; }
}

/* Perfil ------------------------------------------------------------ */
.perfil-page {
  --perfil-ink: #172b38;
  --perfil-muted: #687d89;
  --perfil-line: #dfe9ee;
  --perfil-bg: #f4f8fa;
  min-height: 620px;
  padding-bottom: 90px;
  color: var(--perfil-ink);
  background: var(--perfil-bg);
}
.perfil-page *, .perfil-page *::before, .perfil-page *::after { box-sizing: border-box; }
.perfil-hero {
  position: relative;
  overflow: hidden;
  padding: 26px 0 74px;
  color: var(--perfil-hero-text, #fff);
  background: var(--perfil-primary, #012e46);
}
.perfil-hero::before, .perfil-hero::after {
  content: '';
  position: absolute;
  border: 1px solid #fff;
  border-radius: 50%;
  opacity: .32;
  pointer-events: none;
}
.perfil-hero::before { width: 360px; height: 360px; right: -130px; top: -210px; }
.perfil-hero::after { width: 210px; height: 210px; right: 80px; bottom: -150px; }
.perfil-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 25px;
  color: var(--perfil-hero-text, #fff);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
  opacity: .78;
}
.perfil-back:hover, .perfil-back:focus { color: var(--perfil-hero-text, #fff); opacity: 1; text-decoration: none; }
.perfil-back .fa { font-size: 20px; }
.perfil-hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.perfil-eyebrow { display: block; margin-bottom: 7px; font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.perfil-hero h1 { margin: 0 0 9px; color: var(--perfil-hero-text, #fff); font-size: 40px; line-height: 1.1; letter-spacing: -.025em; }
.perfil-hero p { margin: 0; font-size: 16px; opacity: .72; }
.perfil-hero-icon { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid currentColor; border-radius: 18px; font-size: 23px; opacity: .75; }
.perfil-content { position: relative; z-index: 2; margin-top: -38px; }
.perfil-card { display: grid; grid-template-columns: 290px minmax(0, 1fr); overflow: hidden; max-width: 1050px; margin: 0 auto; border: 1px solid var(--perfil-line); border-radius: 22px; background: #fff; box-shadow: 0 18px 45px rgba(27, 61, 80, .11); }
.perfil-identity { padding: 36px 30px; text-align: center; background: #f9fbfc; border-right: 1px solid var(--perfil-line); }
.perfil-photo-wrap { width: 134px; height: 150px; margin: 0 auto 18px; padding: 5px; border: 1px solid var(--perfil-line); border-radius: 20px; background: #fff; box-shadow: 0 9px 24px rgba(25, 57, 75, .1); }
.perfil-photo { display: block; width: 100%; height: 100%; border-radius: 15px; object-fit: cover; }
.perfil-photo-empty { display: grid; place-items: center; color: var(--perfil-primary); background: #eaf1f4; font-size: 48px; }
.perfil-identity h2 { margin: 0 0 5px; color: var(--perfil-ink); font-size: 20px; line-height: 1.3; }
.perfil-identity-email { overflow-wrap: anywhere; margin: 0 0 20px; color: var(--perfil-muted); font-size: 13px; }
.perfil-photo-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 42px; padding: 9px 14px; border: 1px solid var(--perfil-primary); border-radius: 11px; color: var(--perfil-primary); font-size: 13px; font-weight: 700; }
.perfil-photo-button:hover, .perfil-photo-button:focus { color: #fff; background: var(--perfil-primary); text-decoration: none; }
.perfil-qr { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--perfil-line); }
.perfil-qr-primary { margin: 0 0 18px; padding: 0; border-top: 0; }
.perfil-qr-primary img { width: 134px; height: 134px; }
.perfil-photo-wrap-secondary { margin-top: 22px; }
.perfil-qr-label { display: block; margin-bottom: 11px; color: var(--perfil-ink); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.perfil-qr img { display: block; width: 112px; height: 112px; margin: 0 auto 10px; padding: 5px; background: #fff; border-radius: 10px; }
.perfil-qr small { display: block; color: var(--perfil-muted); font-size: 11px; line-height: 1.45; }
.perfil-details { padding: 38px 42px; }
.perfil-id-card { position: relative; overflow: hidden; margin-bottom: 36px; border: 1px solid #d7e3e8; border-radius: 17px; background: #fff; box-shadow: 0 10px 28px rgba(25, 57, 75, .09); }
.perfil-id-card-standalone { max-width: 676px; margin: 0 auto 24px; }
.perfil-id-card::after { content: ''; position: absolute; z-index: 0; width: 190px; height: 190px; right: -100px; bottom: -125px; border: 1px solid var(--perfil-primary); border-radius: 50%; opacity: .12; pointer-events: none; }
.perfil-id-topbar { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 45px; padding: 10px 18px; color: var(--perfil-hero-text, #fff); background: var(--perfil-primary); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.perfil-id-topbar span { display: inline-flex; align-items: center; gap: 7px; }
.perfil-id-topbar strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.perfil-id-content { position: relative; z-index: 1; display: grid; grid-template-columns: 112px minmax(0, 1fr) 92px; grid-template-areas: "qr data photo"; align-items: center; gap: 20px; padding: 23px 20px 20px; }
.perfil-id-photo-wrap { grid-area: photo; width: 92px; height: 116px; padding: 4px; border: 1px solid #d7e3e8; border-radius: 13px; background: #fff; }
.perfil-id-photo { display: block; width: 100%; height: 100%; border-radius: 9px; object-fit: cover; }
.perfil-id-photo-empty { display: grid; place-items: center; color: var(--perfil-primary); background: #eaf1f4; font-size: 34px; }
.perfil-id-caption { display: block; margin-bottom: 2px; color: #7b8e98; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.perfil-id-data { grid-area: data; }
.perfil-id-data h2 { margin: 0 0 13px; color: #172b38; font-size: 19px; line-height: 1.25; }
.perfil-id-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 15px; }
.perfil-id-field { display: flex; align-items: flex-start; gap: 7px; min-width: 0; }
.perfil-id-field-wide { grid-column: 1 / -1; }
.perfil-id-field > .fa { flex: 0 0 12px; margin-top: 2px; color: var(--perfil-primary); font-size: 11px; text-align: center; }
.perfil-id-field span { min-width: 0; }
.perfil-id-field small, .perfil-id-field strong { display: block; }
.perfil-id-field small { margin-bottom: 1px; color: #8999a1; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.perfil-id-field strong { overflow: hidden; color: #435a65; font-size: 10px; font-weight: 600; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.perfil-id-qr { grid-area: qr; align-self: start; text-align: center; }
.perfil-id-qr img { display: block; width: 108px; height: 108px; margin: 0 auto 5px; padding: 3px; border: 1px solid #e2eaee; border-radius: 9px; background: #fff; }
.perfil-id-qr small { color: #71858f; font-size: 8px; font-weight: 800; letter-spacing: .05em; }
.perfil-id-footer { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 15px; min-height: 34px; padding: 8px 18px; border-top: 1px solid #e4ecef; color: #70838d; background: #f8fafb; font-size: 9px; font-weight: 700; }
.perfil-id-footer span:first-child { color: var(--perfil-primary); }
.perfil-id-footer .fa { margin-right: 4px; }
.perfil-section-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 30px; }
.perfil-section-icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 12px; color: #fff; background: var(--perfil-primary); font-size: 16px; }
.perfil-section-heading h2 { margin: 0 0 3px; color: var(--perfil-ink); font-size: 22px; }
.perfil-section-heading p { margin: 0; color: var(--perfil-muted); font-size: 12px; }
.perfil-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.perfil-field-full { grid-column: 1 / -1; }
.perfil-field label { display: block; margin: 0 0 7px; color: #405762; font-size: 12px; font-weight: 700; }
.perfil-field label .fa { margin-left: 4px; color: #9aaab2; }
.perfil-field .form-control { width: 100%; height: 46px; padding: 10px 13px; border: 1px solid #d7e3e8; border-radius: 10px; color: var(--perfil-ink); background: #fff; box-shadow: none; font-size: 14px; }
.perfil-field .form-control:focus { border-color: var(--perfil-secondary); box-shadow: 0 0 0 3px rgba(0, 123, 255, .1); }
.perfil-field .form-control[disabled] { color: #70838c; background: #f2f5f6; cursor: not-allowed; }
.perfil-input-icon { position: relative; }
.perfil-input-icon > .fa { position: absolute; z-index: 1; left: 14px; top: 50%; color: #8ca0aa; transform: translateY(-50%); }
.perfil-input-icon .form-control { padding-left: 39px; }
.perfil-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--perfil-line); }
.perfil-save-note { margin-right: auto; color: var(--perfil-muted); font-size: 11px; }
.perfil-save-note .fa { margin-right: 4px; color: var(--perfil-primary); }
.perfil-save-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 11px 21px; border: 0; border-radius: 11px; color: var(--perfil-hero-text, #fff); background: var(--perfil-primary); font-size: 13px; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease; }
.perfil-save-button:hover, .perfil-save-button:focus { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(20, 52, 70, .18); }
.perfil-alert { width: 100%; margin-top: 18px; padding: 0; }

@media (max-width: 767px) {
  .perfil-page { padding-bottom: 60px; }
  .perfil-hero { padding: 20px 0 64px; }
  .perfil-back { margin-bottom: 18px; }
  .perfil-hero h1 { font-size: 31px; }
  .perfil-hero p { font-size: 13px; }
  .perfil-hero-icon { display: none; }
  .perfil-content { margin-top: -30px; }
  .perfil-card { grid-template-columns: 1fr; border-radius: 17px; }
  .perfil-identity { padding: 28px 22px; border-right: 0; border-bottom: 1px solid var(--perfil-line); }
  .perfil-photo-wrap { width: 118px; height: 132px; }
  .perfil-qr { max-width: 240px; margin-right: auto; margin-left: auto; }
  .perfil-details { padding: 28px 22px; }
  .perfil-id-card { margin-bottom: 30px; }
  .perfil-id-content { grid-template-columns: 82px minmax(0, 1fr); grid-template-areas: "qr data" "photo data"; align-items: start; gap: 15px; padding: 20px 16px; }
  .perfil-id-photo-wrap { width: 76px; height: 96px; }
  .perfil-id-data h2 { font-size: 17px; }
  .perfil-id-fields { grid-template-columns: 1fr; gap: 7px; }
  .perfil-id-field-wide { grid-column: auto; }
  .perfil-id-qr { display: block; align-self: start; padding: 0; border: 0; text-align: center; }
  .perfil-id-qr img { width: 82px; height: 82px; margin: 0 auto 4px; }
  .perfil-id-footer span:last-child { max-width: 55%; text-align: right; }
  .perfil-form-grid { grid-template-columns: 1fr; gap: 16px; }
  .perfil-field-full { grid-column: auto; }
  .perfil-form-actions { align-items: stretch; flex-direction: column; }
  .perfil-save-note { margin-right: 0; text-align: center; }
  .perfil-save-button { width: 100%; }
}

/* Cambio de foto ---------------------------------------------------- */
.foto-page { min-height: 620px; padding-bottom: 90px; color: #172b38; background: #f4f8fa; }
.foto-page *, .foto-page *::before, .foto-page *::after { box-sizing: border-box; }
.foto-hero { position: relative; overflow: hidden; padding: 26px 0 74px; color: var(--foto-hero-text, #fff); background: var(--foto-primary, #012e46); }
.foto-hero::before, .foto-hero::after { content: ''; position: absolute; border: 1px solid #fff; border-radius: 50%; opacity: .32; pointer-events: none; }
.foto-hero::before { width: 360px; height: 360px; right: -130px; top: -210px; }
.foto-hero::after { width: 210px; height: 210px; right: 80px; bottom: -150px; }
.foto-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 25px; color: var(--foto-hero-text, #fff); font-size: 13px; font-weight: 600; letter-spacing: .02em; opacity: .78; }
.foto-back:hover, .foto-back:focus { color: var(--foto-hero-text, #fff); opacity: 1; text-decoration: none; }
.foto-back .fa { font-size: 20px; }
.foto-hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.foto-eyebrow { display: block; margin-bottom: 7px; font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.foto-hero h1 { margin: 0 0 9px; color: var(--foto-hero-text, #fff); font-size: 40px; line-height: 1.1; letter-spacing: -.025em; }
.foto-hero p { margin: 0; font-size: 16px; opacity: .72; }
.foto-hero-icon { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid currentColor; border-radius: 18px; font-size: 22px; opacity: .75; }
.foto-content { position: relative; z-index: 2; margin-top: -38px; }
.foto-card { display: grid; grid-template-columns: 310px minmax(0, 1fr); overflow: hidden; max-width: 950px; margin: 0 auto; border: 1px solid #dfe9ee; border-radius: 22px; background: #fff; box-shadow: 0 18px 45px rgba(27, 61, 80, .11); }
.foto-preview-panel { padding: 38px 34px; text-align: center; background: #f9fbfc; border-right: 1px solid #dfe9ee; }
.foto-preview-label { display: block; margin-bottom: 15px; color: #405762; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.foto-preview-frame { width: 180px; height: 220px; margin: 0 auto 15px; padding: 6px; border: 1px solid #d7e3e8; border-radius: 21px; background: #fff; box-shadow: 0 10px 26px rgba(25, 57, 75, .1); }
.foto-preview-frame img, .foto-preview-empty { width: 100%; height: 100%; border-radius: 16px; object-fit: cover; }
.foto-preview-empty { display: grid; place-items: center; color: var(--foto-primary); background: #eaf1f4; font-size: 58px; }
.foto-preview-empty[hidden], .foto-preview-frame img[hidden] { display: none; }
.foto-preview-panel > small { display: block; color: #687d89; font-size: 11px; line-height: 1.5; }
.foto-upload-panel { padding: 42px; }
.foto-section-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 25px; }
.foto-section-icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 12px; color: var(--foto-hero-text, #fff); background: var(--foto-primary); font-size: 16px; }
.foto-section-heading h2 { margin: 0 0 3px; color: #172b38; font-size: 22px; }
.foto-section-heading p { margin: 0; color: #687d89; font-size: 12px; }
.foto-tips { display: grid; gap: 9px; margin-bottom: 26px; padding: 17px 19px; border-radius: 12px; background: #f4f8fa; }
.foto-tips div { display: flex; align-items: flex-start; gap: 9px; color: #536b77; font-size: 12px; line-height: 1.45; }
.foto-tips .fa { margin-top: 2px; color: var(--foto-primary); }
.foto-upload-form input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.foto-source-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.foto-source-option { display: flex; align-items: center; gap: 12px; min-height: 82px; margin: 0; padding: 15px; border: 1px dashed #b9cbd3; border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.foto-source-options button.foto-source-option { width: 100%; color: inherit; font: inherit; text-align: left; }
.foto-source-option:hover, .foto-source-option:focus-within { border-color: var(--foto-secondary); background: #fbfdfe; transform: translateY(-1px); }
.foto-source-option .foto-file-copy { margin-right: 0; }
.foto-file-status { margin: 11px 2px 0; color: #7a8e98; font-size: 11px; }
.foto-file-status.is-selected { color: #36724b; }
.foto-file-status.is-error { color: #b53b3b; font-weight: 700; }
.foto-camera-panel { margin-top: 18px; padding: 15px; border: 1px solid #d7e3e8; border-radius: 14px; background: #f4f8fa; }
.foto-camera-panel[hidden] { display: none; }
.foto-camera-screen { overflow: hidden; width: min(100%, 320px); aspect-ratio: 4 / 5; margin: 0 auto; border-radius: 14px; background: #16252c; }
.foto-camera-screen video { display: block; width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }
.foto-camera-panel > p { margin: 10px 0; color: #687d89; font-size: 11px; text-align: center; }
.foto-camera-actions { display: flex; justify-content: center; gap: 10px; }
.foto-camera-actions button { min-height: 39px; padding: 8px 14px; border-radius: 9px; font-size: 12px; font-weight: 700; }
.foto-camera-cancel { border: 1px solid #cbd9df; color: #536b77; background: #fff; }
.foto-camera-shot { border: 0; color: var(--foto-hero-text, #fff); background: var(--foto-primary); }
.foto-camera-shot:disabled { opacity: .5; cursor: not-allowed; }
.foto-file-picker { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 82px; margin: 0; padding: 15px; border: 1px dashed #b9cbd3; border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .18s ease, background .18s ease; }
.foto-file-picker:hover { border-color: var(--foto-secondary); background: #fbfdfe; }
.foto-file-icon { display: grid; place-items: center; flex: 0 0 48px; height: 48px; border-radius: 12px; color: var(--foto-primary); background: #eaf1f4; font-size: 20px; }
.foto-file-copy { min-width: 0; margin-right: auto; }
.foto-file-copy strong, .foto-file-copy small { display: block; }
.foto-file-copy strong { overflow: hidden; margin-bottom: 3px; color: #263d49; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.foto-file-copy small { color: #7a8e98; font-size: 11px; }
.foto-file-action { padding: 8px 11px; border-radius: 8px; color: var(--foto-primary); background: #eaf1f4; font-size: 11px; font-weight: 800; }
.foto-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 28px; padding-top: 23px; border-top: 1px solid #dfe9ee; }
.foto-cancel { padding: 11px 15px; color: #687d89; font-size: 13px; font-weight: 700; }
.foto-cancel:hover, .foto-cancel:focus { color: #172b38; text-decoration: none; }
.foto-submit { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 11px 21px; border: 0; border-radius: 11px; color: var(--foto-hero-text, #fff); background: var(--foto-primary); font-size: 13px; font-weight: 800; }
.foto-submit:hover, .foto-submit:focus { box-shadow: 0 8px 18px rgba(20, 52, 70, .18); transform: translateY(-1px); }
.foto-alert { width: 100%; margin-top: 18px; padding: 0; }

@media (max-width: 767px) {
  .foto-page { padding-bottom: 60px; }
  .foto-hero { padding: 20px 0 64px; }
  .foto-back { margin-bottom: 18px; }
  .foto-hero h1 { font-size: 31px; }
  .foto-hero p { font-size: 13px; }
  .foto-hero-icon { display: none; }
  .foto-content { margin-top: -30px; }
  .foto-card { grid-template-columns: 1fr; border-radius: 17px; }
  .foto-preview-panel { padding: 28px 22px; border-right: 0; border-bottom: 1px solid #dfe9ee; }
  .foto-preview-frame { width: 145px; height: 178px; }
  .foto-upload-panel { padding: 28px 22px; }
  .foto-source-options { grid-template-columns: 1fr; }
  .foto-file-action { display: none; }
  .foto-actions { align-items: stretch; flex-direction: column-reverse; }
  .foto-cancel { text-align: center; }
  .foto-submit { width: 100%; }
}

/* ---------------------------------------------------------------------------
   Carrusel de los bloques de la portada (eventos, teatro, espacios).
   Solo actua cuando el JS anade `is-slider`: si no, la rejilla de tres se
   queda exactamente como estaba.
   --------------------------------------------------------------------------- */
.public-events-slider { position: relative; }

.public-events-grid.is-slider {
  display: flex;
  gap: 22px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;              /* la barra sobra: se pasa con las flechas */
  -ms-overflow-style: none;
  padding-bottom: 4px;
}
.public-events-grid.is-slider::-webkit-scrollbar { display: none; }

.public-events-grid.is-slider .public-event-card {
  flex: 0 0 calc((100% - 44px) / 3);  /* tres a la vista, con los dos huecos */
  scroll-snap-align: start;
}

.public-events-nav {
  position: absolute;
  top: 105px;                          /* a la altura de la imagen de la tarjeta */
  width: 44px;
  height: 44px;
  border: 1px solid #dce7eb;
  border-radius: 50%;
  background: #fff;
  color: #173d51;
  font-size: 18px;
  line-height: 1;
  box-shadow: 0 6px 18px rgba(27, 61, 80, .16);
  cursor: pointer;
  transition: opacity .18s ease, transform .18s ease;
  z-index: 2;
}
.public-events-nav:hover { transform: scale(1.06); }
.public-events-nav:disabled { opacity: .35; cursor: default; transform: none; }
.public-events-nav--prev { left: -18px; }
.public-events-nav--next { right: -18px; }

.public-events-slider.sin-flechas .public-events-nav { display: none; }

@media (max-width: 767px) {
  .public-events-grid.is-slider { gap: 15px; }
  .public-events-grid.is-slider .public-event-card { flex: 0 0 100%; }
  .public-events-nav { top: 42px; width: 38px; height: 38px; }
  .public-events-nav--prev { left: 2px; }
  .public-events-nav--next { right: 2px; }
}

/* ---------------------------------------------------------------------------
   Cabecera en blanco (usuario identificado).
   El azul macizo de lado a lado pesaba mucho y competia con las fotos de la
   pagina. En blanco, el color de la delegacion sigue estando: pasa al texto,
   al subrayado del menu y al avatar, que es donde se lee como marca.
   Va al final del fichero para pisar las reglas de arriba sin tocarlas.
   --------------------------------------------------------------------------- */
.user-header {
  color: var(--tenant-primary, #012e46);
  background: #fff;
  border-bottom: 1px solid #e4ecf0;
  box-shadow: 0 4px 16px rgba(1, 46, 70, .07);
}

/* El logo ya no necesita su recuadro blanco: el fondo ya lo es. */
.user-header .public-login-logo .navbar-brand {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.user-header .navbar-nav > li > a { color: var(--tenant-primary, #012e46) !important; }
.user-header .navbar-nav > li > a:hover,
.user-header .navbar-nav > li > a:focus { color: var(--tenant-primary, #012e46) !important; }
.user-header .navbar-nav > li.active > a { font-weight: 600; }
/* El subrayado que aparece al pasar por encima: en blanco se ve mejor con el
   color primario que con el secundario, que es un turquesa muy claro. */
.user-header .navbar-nav > li > a::after { background: var(--tenant-primary, #012e46); }

.user-account-trigger {
  border-color: #dce7eb;
  color: var(--tenant-primary, #012e46);
  background: #f4f8fa;
}
.user-account-trigger:hover,
.user-account-trigger:focus { background: #e9f1f5; }

.user-account-avatar { color: #fff; background: var(--tenant-primary, #012e46); }

.user-menu-toggle { border-color: #dce7eb; }
.user-menu-toggle span { background: var(--tenant-primary, #012e46); }

/* ---------------------------------------------------------------------------
   Paneles de acceso (pantalla de seleccion y Gestiones).
   Reproduce plantilla_alquipistas_editable.psd: panel azul a la izquierda,
   franja verde en diagonal, antetitulo, titular, linea verde, descripcion y
   boton. Las medidas son las del PSD (lienzo 1448x1086) pasadas a porcentaje,
   asi que el panel se ve igual a cualquier tamano.
   --------------------------------------------------------------------------- */
.panel-acceso {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  padding-top: 75%;                    /* 1086/1448 = la proporcion del PSD */
  border-radius: 10px;
  background: var(--panel-azul, #041c39);
  box-shadow: 0 10px 28px rgba(4, 28, 57, .18);
  color: #fff;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
.panel-acceso:hover,
.panel-acceso:focus {
  color: #fff;
  text-decoration: none;
  box-shadow: 0 16px 38px rgba(4, 28, 57, .26);
  transform: translateY(-3px);
}

/* La foto ocupa la mitad derecha; el panel azul la tapa en diagonal. */
.panel-acceso-foto {
  position: absolute;
  /* Ocupa TODA la tarjeta y se recorta en diagonal. Tiene que ser todo el
     ancho para que sus porcentajes y los de la franja hablen del mismo sitio;
     con la foto a 62%, un 58% suyo caia en otro punto de la tarjeta. */
  top: 0; right: 0; bottom: 0; left: 0;
  background-position: 72% center;
  background-size: cover;
  /* Corte diagonal del PSD. La franja verde de abajo usa estos mismos
     porcentajes, por eso van siempre pegadas. */
  clip-path: polygon(74% 0, 100% 0, 100% 100%, 52% 100%);
}


/* La franja verde que cruza por delante del corte. */
.panel-acceso-franja {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  width: auto;
  background: var(--panel-verde, #a6ce27);
  /* Paralelogramo pegado al borde de la foto (mismos angulos). */
  clip-path: polygon(69% 0, 74% 0, 52% 100%, 47% 100%);
}

.panel-acceso-texto {
  position: absolute;
  top: 0; bottom: 0; left: 0;
  display: flex;
  width: 58%;
  flex-direction: column;
  justify-content: center;
  padding: 0 4% 0 9%;                  /* x=133/1448 del PSD */
  text-align: left;
}

.panel-acceso-ante {
  color: #fff;
  font-size: clamp(9px, 1.5vw, 13px);
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  opacity: .85;
}
.panel-acceso-titulo {
  margin-top: 2%;
  color: #fff;
  font-size: clamp(17px, 3.4vw, 33px);
  font-weight: 800;
  line-height: 1.08;
  text-transform: uppercase;
}
.panel-acceso-linea {
  width: 42px;
  height: 3px;
  margin: 4% 0;
  background: var(--panel-verde, #a6ce27);
}
.panel-acceso-desc {
  color: rgba(255, 255, 255, .88);
  font-size: clamp(9px, 1.25vw, 12px);
  font-weight: 400;
  line-height: 1.35;
  /* Como mucho dos lineas: si el texto es largo se corta con puntos suspensivos
     en vez de estirar la tarjeta y empujar al boton. */
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.panel-acceso-boton {
  display: inline-block;
  margin-top: 7%;
  padding: 3.2% 6%;
  border-radius: 4px;
  background: var(--panel-verde, #a6ce27);
  color: #04331a;
  font-size: clamp(9px, 1.4vw, 12px);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  align-self: flex-start;
  white-space: nowrap;
}
.panel-acceso:hover .panel-acceso-boton { background: #b7dd3a; }

/* Separacion entre cuadros. Va aqui y no se deja al azar: en local salian
   separados por como caian las cajas, pero en produccion quedaban pegados
   uno debajo de otro. Vale para las filas del escritorio y para el movil. */
.panel-acceso { margin-bottom: 22px; }

@media (max-width: 767px) {
  /* En movil el panel se estira y el texto necesita mas sitio. */
  .panel-acceso { padding-top: 56%; margin-bottom: 16px; }
  .panel-acceso-texto { width: 62%; padding-left: 7%; }
  .panel-acceso-desc { display: none; }
}

/* ---------------------------------------------------------------------------
   Aviso de proteccion de datos (RGPD). Bloqueante: tapa la pagina entera y no
   se puede cerrar sin aceptar.
   --------------------------------------------------------------------------- */
.rgpd-fondo {
  position: fixed;
  z-index: 99999;
  top: 0; right: 0; bottom: 0; left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(4, 28, 57, .72);
}
.rgpd-caja {
  display: flex;
  max-width: 640px;
  max-height: 88vh;
  flex-direction: column;
  padding: 26px 28px 22px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(1, 25, 38, .35);
}
.rgpd-titulo {
  margin: 0 0 14px;
  color: #041c39;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.25;
}
.rgpd-texto {
  overflow-y: auto;
  margin-bottom: 16px;
  padding-right: 6px;
  color: #33424d;
  font-size: 14px;
  line-height: 1.55;
}
.rgpd-check {
  display: flex;
  align-items: flex-start;
  margin: 0 0 16px;
  gap: 9px;
  color: #173d51;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
}
.rgpd-check input { margin-top: 3px; width: 17px; height: 17px; flex: 0 0 auto; }
.rgpd-pie { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rgpd-version { color: #6b818b; font-size: 12px; }
.rgpd-boton {
  padding: 10px 26px;
  border: 0;
  border-radius: 7px;
  background: var(--tenant-primary, #012e46);
  color: #fff;
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
}
.rgpd-boton:disabled { background: #b9c6cd; cursor: not-allowed; }

@media (max-width: 600px) {
  .rgpd-caja { padding: 20px 18px 18px; }
  .rgpd-titulo { font-size: 18px; }
  .rgpd-pie { flex-direction: column-reverse; align-items: stretch; }
  .rgpd-boton { width: 100%; }
}

/* Los dos botones del aviso: aceptar y no aceptar. */
.rgpd-botones { display: flex; gap: 10px; }
.rgpd-boton-no {
  border: 1px solid #c3ced5;
  background: #fff;
  color: #47606d;
  font-weight: 500;
}
.rgpd-boton-no:hover { background: #f2f6f8; }
.rgpd-nota {
  margin: 12px 0 0;
  color: #6b818b;
  font-size: 12px;
  line-height: 1.45;
}
@media (max-width: 600px) {
  .rgpd-botones { width: 100%; flex-direction: column-reverse; }
  .rgpd-botones .rgpd-boton { width: 100%; }
}

/* ---------------------------------------------------------------------
   Solicitud de devolución
   Mismo lenguaje que la solicitud de alta de abonado: los campos se
   estilan por su formulario, no por `.tenant-field` suelta, para no
   tocar pantallas que ya funcionan.
   --------------------------------------------------------------------- */
.devoluciones-page .tenant-container { width: 100%; }
.devoluciones-page .tenant-alert { margin-bottom: 20px; padding: 15px 17px; border: 1px solid; border-radius: 12px; font-size: 15px; line-height: 1.5; }
.devoluciones-page .tenant-alert-ok { border-color: #bfe4ce; color: #17623b; background: #eaf8f0; }
.devoluciones-page .tenant-alert-error { border-color: #efc5c8; color: #8f2f37; background: #fff0f1; }

.devoluciones-page .tenant-field { margin-bottom: 18px; min-width: 0; }
.devoluciones-page .tenant-field label { display: block; margin: 0 0 8px; color: #294d60; font-size: 15px; font-weight: 500; }
.devoluciones-page .tenant-field input:not([type=checkbox]),
.devoluciones-page .tenant-field select,
.devoluciones-page .tenant-field textarea { width: 100%; min-height: 50px; margin: 0; padding: 12px 14px; border: 1px solid #ccdce3; border-radius: 11px; color: #173d51; background: #fff; font-size: 16px; box-shadow: none; }
.devoluciones-page .tenant-field textarea { min-height: 110px; line-height: 1.5; resize: vertical; }
.devoluciones-page .tenant-field input:focus,
.devoluciones-page .tenant-field select:focus,
.devoluciones-page .tenant-field textarea:focus { border-color: var(--tenant-primary,#012e46); outline: 3px solid rgba(1,46,70,.14); }
.devoluciones-page .tenant-field small { display: block; margin-top: 7px; color: #728791; font-size: 13px; }
.devoluciones-page .tenant-note { margin: 0 0 18px; padding: 12px 15px; border-radius: 11px; color: #294d60; background: #f2f7f9; font-size: 14px; line-height: 1.5; }
.devoluciones-page .tenant-note a { color: #0b5f8a; text-decoration: underline; }

/* El texto de sede: se lee antes de autorizar, así que va con marco propio
   y con su propio desplazamiento si la delegación lo ha escrito largo. */
.devoluciones-sede { max-height: 260px; overflow-y: auto; margin: 6px 0 16px; padding: 18px 20px; border: 1px solid #dce7eb; border-radius: 13px; color: #33505f; background: #f7fafb; font-size: 14px; line-height: 1.6; }
.devoluciones-sede p { margin: 0 0 10px; }

.devoluciones-autoriza { display: flex; gap: 11px; align-items: flex-start; margin-bottom: 22px; padding: 14px 16px; border: 1px solid #ccdce3; border-radius: 12px; color: #294d60; background: #fff; font-size: 15px; line-height: 1.45; cursor: pointer; }
.devoluciones-autoriza input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; }

.devoluciones-page .tenant-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 6px; }
.devoluciones-page .tenant-action-button { display: inline-block; padding: 14px 26px; border: 0; border-radius: 11px; color: #fff; background: var(--tenant-primary,#012e46); font-size: 16px; font-weight: 600; text-decoration: none; cursor: pointer; }
.devoluciones-page .tenant-action-button:hover { opacity: .9; color: #fff; }
.devoluciones-page .tenant-cancel { color: #6a808c; font-size: 15px; text-decoration: underline; }

.devoluciones-resumen { margin: 0 0 18px; padding: 0 0 0 20px; color: #294d60; font-size: 15px; line-height: 1.9; }

@media(max-width:767px){
  .devoluciones-page .tenant-actions { flex-direction: column; align-items: stretch; }
  .devoluciones-page .tenant-action-button, .devoluciones-page .tenant-cancel { width: 100%; text-align: center; }
}

/* ---------------------------------------------------------------------------
   Cuadro liso: solo fondo azul, sin franja verde ni foto.
   Lo usa Gestiones, donde los titulos son largos ("Inscripcion a escuelas",
   "Quiero hacerme abonado") y con el diseno completo se montaban encima de la
   diagonal y de la foto. Sin ellas, el texto tiene toda la tarjeta.
   --------------------------------------------------------------------------- */
.panel-acceso-liso { padding-top: 72%; }
.panel-acceso-liso .panel-acceso-texto { width: 100%; padding: 0 8%; }
.panel-acceso-liso .panel-acceso-ante { font-size: clamp(8px, 1.1vw, 11px); }
.panel-acceso-liso .panel-acceso-titulo { font-size: clamp(15px, 1.7vw, 21px); }
.panel-acceso-liso .panel-acceso-linea { margin: 3% 0; }
.panel-acceso-liso .panel-acceso-desc { -webkit-line-clamp: 2; font-size: clamp(9px, .9vw, 12px); }
.panel-acceso-liso .panel-acceso-boton { margin-top: 5%; padding: 4% 7%; font-size: clamp(9px, 1vw, 11px); }

@media (max-width: 767px) {
  /* En movil la tarjeta es mas baja y no hace falta tanto alto. */
  .panel-acceso-liso { padding-top: 46%; }
  .panel-acceso-liso .panel-acceso-desc { display: -webkit-box; }
}

/* =====================================================================
   TORNEOS  ·  cuadro, calendario y clasificación
   ---------------------------------------------------------------------
   Va aquí y no en un fichero aparte porque eventos.css ya se carga en
   todas las páginas (layout.php), y el torneo cuelga de un evento.
   Sin degradados: color plano y sombra, como el resto de la aplicación.
   ===================================================================== */

/* ---- Listado de torneos ---- */
.trn-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 18px 0 30px; }
.trn-card { display: block; background: #fff; border: 1px solid #e3e8ee; border-radius: 12px; padding: 16px; text-decoration: none; color: inherit; box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: .18s ease; }
.trn-card:hover { text-decoration: none; color: inherit; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.10); }
.trn-card-top { margin-bottom: 8px; }
.trn-card-title { margin: 0 0 4px; font-size: 17px; font-weight: 800; color: var(--tenant-primary, #012e46); }
.trn-card-sub { margin: 0 0 6px; font-size: 13px; color: #4a5866; }
.trn-card-meta { margin: 0; font-size: 12px; color: #8a97a4; }

.trn-badge { display: inline-block; padding: 3px 9px; border-radius: 20px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .3px; color: #fff; background: #8a97a4; }
.trn-badge-borrador   { background: #8a97a4; }
.trn-badge-sorteado   { background: #1a7fb5; }
.trn-badge-en_juego   { background: #128a4a; }
.trn-badge-finalizado { background: #4a5866; }

/* ---- Pestañas ---- */
.trn-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 16px; border-bottom: 2px solid #e3e8ee; }
.trn-tab { border: 0; background: transparent; padding: 10px 16px; font-size: 13px; font-weight: 800; color: #6b7885; cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.trn-tab:hover { color: var(--tenant-primary, #012e46); }
.trn-tab.activa { color: var(--tenant-primary, #012e46); border-bottom-color: var(--tenant-primary, #012e46); }

.trn-h3 { margin: 22px 0 10px; font-size: 15px; font-weight: 800; color: var(--tenant-primary, #012e46); }
.trn-nota { margin: 10px 0 0; font-size: 12px; color: #8a97a4; }
.trn-vacio { text-align: center; color: #8a97a4; padding: 22px 0; }

/* ---- Clasificación ---- */
.trn-tabla-wrap { overflow-x: auto; border: 1px solid #e3e8ee; border-radius: 10px; background: #fff; }
.trn-tabla { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 560px; }
.trn-tabla thead th { background: var(--tenant-primary, #012e46); color: var(--tenant-text, #fff); padding: 9px 8px; text-align: center; font-weight: 700; font-size: 12px; white-space: nowrap; }
.trn-tabla tbody td { padding: 9px 8px; text-align: center; border-top: 1px solid #eef1f5; }
.trn-tabla tbody tr:nth-child(even) { background: #fafbfc; }
.trn-tabla .trn-nombre { text-align: left; font-weight: 700; }
.trn-tabla .trn-pos { font-weight: 800; color: #6b7885; }
.trn-tabla .trn-ptos { font-weight: 800; }
/* Los que pasan de grupo se marcan con una barra a la izquierda, no con
   un color de fondo: se distingue igual y no compite con las rayas. */
.trn-tabla tr.trn-clasifica td:first-child { box-shadow: inset 3px 0 0 #128a4a; }

/* ---- Calendario ---- */
.trn-partidos { border: 1px solid #e3e8ee; border-radius: 10px; background: #fff; overflow: hidden; }
.trn-partido { display: grid; grid-template-columns: 130px 1fr 90px 1fr; align-items: center; gap: 10px; padding: 11px 14px; border-top: 1px solid #eef1f5; font-size: 13px; }
.trn-partido:first-child { border-top: 0; }
.trn-partido-cuando { font-size: 11px; color: #6b7885; line-height: 1.35; }
.trn-partido-cuando span { display: block; }
.trn-partido-cuando .trn-sinfecha { color: #a6b0ba; font-style: italic; }
.trn-partido-cuando .trn-lugar { color: #8a97a4; }
.trn-partido-eq { font-weight: 600; }
.trn-partido-eq.es-ganador { font-weight: 800; color: #0f6b3c; }
.trn-partido-eq:nth-of-type(2) { text-align: right; }
.trn-partido-marc { text-align: center; color: #6b7885; }
.trn-partido-marc strong { font-size: 16px; color: #1c2b39; }
.trn-partido-marc small { display: block; font-size: 11px; color: #8a97a4; }
.trn-descansa { margin: 0; padding: 9px 14px; border-top: 1px solid #eef1f5; font-size: 12px; color: #8a97a4; background: #fafbfc; }

/* ---- Cuadro eliminatorio ---- */
.trn-cuadro { display: flex; gap: 22px; overflow-x: auto; padding: 6px 2px 14px; }
.trn-cuadro-col { flex: 0 0 220px; display: flex; flex-direction: column; }
/* El titulo de la ronda se queda arriba y solo las llaves se reparten:
   si no, el titulo baila de altura en cada columna. */
.trn-cuadro-llaves { flex: 1; display: flex; flex-direction: column; justify-content: space-around; gap: 14px; }
.trn-cuadro-ronda { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: #6b7885; text-align: center; padding-bottom: 4px; }
.trn-llave { background: #fff; border: 1px solid #e3e8ee; border-radius: 9px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.trn-llave-lado { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; font-size: 12.5px; }
.trn-llave-lado + .trn-llave-lado { border-top: 1px solid #eef1f5; }
.trn-llave-lado.es-ganador { background: #f1f8f4; font-weight: 800; color: #0f6b3c; }
.trn-llave-nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trn-llave-marc { flex: 0 0 auto; font-weight: 800; color: #1c2b39; }
.trn-llave-detalle { padding: 5px 10px; font-size: 11px; color: #8a97a4; background: #fafbfc; border-top: 1px solid #eef1f5; }
/* Hueco del cuadro: una sola linea y en gris, para que se vea de un vistazo
   que ahi no se jugo nada. */
.trn-llave.es-bye { border-style: dashed; background: #fafbfc; }
.trn-llave-pasa { flex: 0 0 auto; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #8a97a4; }

@media (max-width: 767px) {
  /* En móvil el partido no cabe en una línea: se apila y el marcador
     queda en medio, que es lo que se mira primero. */
  .trn-partido { grid-template-columns: 1fr 70px 1fr; }
  .trn-partido-cuando { grid-column: 1 / -1; }
  .trn-cuadro-col { flex-basis: 190px; }
}

/* =====================================================================
   PARTIDOS ABIERTOS
   ---------------------------------------------------------------------
   Comparte pagina con eventos (evt-flow-page) y por eso vive aqui.
   Sin degradados: color plano y sombra.
   ===================================================================== */

.prt-barra { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.prt-nota { margin: 16px 0 0; font-size: 12px; color: #8a97a4; }
.prt-vacio { margin: 8px 0; font-size: 13px; color: #8a97a4; }
.prt-h3 { margin: 24px 0 10px; font-size: 15px; font-weight: 800; color: var(--tenant-primary, #012e46); }

/* ---- Listado ---- */
.prt-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.prt-card { display: block; background: #fff; border: 1px solid #e3e8ee; border-radius: 12px; padding: 15px; text-decoration: none; color: inherit; box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: .18s ease; }
.prt-card:hover { text-decoration: none; color: inherit; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.10); }
.prt-card-dep { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: #8a97a4; }
.prt-card-cuando { margin-top: 3px; font-size: 15px; font-weight: 800; color: var(--tenant-primary, #012e46); }
.prt-card-titulo { margin-top: 4px; font-size: 13px; color: #4a5866; }
.prt-card-pie { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #eef1f5; font-size: 12px; }
.prt-plazas { font-weight: 800; color: #128a4a; }
.prt-plazas.es-ultimas { color: #c0392b; }
.prt-precio { color: #8a97a4; }

/* ---- Ficha ---- */
.prt-panel { background: #fff; border: 1px solid #e3e8ee; border-radius: 12px; overflow: hidden; margin-top: 18px; }
.prt-panel-fila { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 11px 15px; border-top: 1px solid #eef1f5; font-size: 13.5px; }
.prt-panel-fila:first-child { border-top: 0; }
.prt-panel-fila span { color: #6b7885; }
.prt-panel-fila strong { color: #1c2b39; text-align: right; }
.prt-panel-fila small { font-weight: 400; color: #8a97a4; }
.prt-panel-nota { padding: 11px 15px; border-top: 1px solid #eef1f5; background: #fafbfc; font-size: 13px; color: #4a5866; }

.prt-jugadores { background: #fff; border: 1px solid #e3e8ee; border-radius: 12px; overflow: hidden; }
.prt-jugador { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 15px; border-top: 1px solid #eef1f5; font-size: 13.5px; }
.prt-jugador:first-child { border-top: 0; }
.prt-jugador.es-libre { color: #a6b0ba; font-style: italic; background: #fafbfc; }
.prt-jug-nombre { font-weight: 600; }
.prt-jug-importe { font-weight: 800; color: #1c2b39; white-space: nowrap; }
.prt-jug-importe small { display: block; font-weight: 400; font-size: 10.5px; color: #8a97a4; text-align: right; }

.prt-etiqueta { display: inline-block; margin-left: 6px; padding: 2px 7px; border-radius: 20px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .3px; color: #fff; background: #6b7885; vertical-align: middle; }
.prt-etiqueta.socio { background: #128a4a; }

.prt-acciones { margin-top: 20px; }
.prt-aviso { background: #fff; border: 1px solid #e3e8ee; border-left: 4px solid var(--tenant-primary, #012e46); border-radius: 8px; padding: 12px 15px; margin-bottom: 12px; font-size: 13px; color: #4a5866; }
.prt-invita { margin-top: 18px; padding: 12px 15px; background: #fafbfc; border: 1px dashed #c8d2dc; border-radius: 8px; font-size: 13px; }
.prt-invita input { width: 100%; margin-top: 6px; padding: 8px 10px; border: 1px solid #e3e8ee; border-radius: 6px; font-size: 12px; color: #4a5866; background: #fff; }

/* ---- Formulario de alta ---- */
.prt-form-bloque { margin-bottom: 16px; }
.prt-form-bloque label { display: block; margin-bottom: 5px; font-size: 13px; font-weight: 700; color: var(--tenant-primary, #012e46); }
.prt-form-bloque small { display: block; margin-top: 4px; font-size: 11.5px; color: #8a97a4; }
.prt-input { width: 100%; padding: 10px 12px; border: 1px solid #d5dde5; border-radius: 8px; font-size: 14px; background: #fff; color: #1c2b39; }
.prt-input:focus { outline: 0; border-color: var(--tenant-primary, #012e46); }
.prt-check { display: flex; align-items: center; gap: 8px; font-weight: 400 !important; color: #4a5866 !important; }
.prt-horas { display: flex; flex-wrap: wrap; gap: 8px; }
.prt-hora { border: 1px solid #d5dde5; background: #fff; border-radius: 8px; padding: 9px 13px; font-size: 13px; font-weight: 700; color: #1c2b39; cursor: pointer; transition: .15s ease; }
.prt-hora:hover { border-color: var(--tenant-primary, #012e46); }
.prt-hora.elegida { background: var(--tenant-primary, #012e46); border-color: var(--tenant-primary, #012e46); color: var(--tenant-text, #fff); }

/* ---- Mis partidos ---- */
.prt-tabla-wrap { overflow-x: auto; border: 1px solid #e3e8ee; border-radius: 10px; background: #fff; }
.prt-tabla { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 620px; }
.prt-tabla thead th { background: var(--tenant-primary, #012e46); color: var(--tenant-text, #fff); padding: 9px 10px; text-align: left; font-size: 12px; font-weight: 700; }
.prt-tabla tbody td { padding: 10px; border-top: 1px solid #eef1f5; vertical-align: middle; }
.prt-tabla tbody tr:nth-child(even) { background: #fafbfc; }
.prt-tabla small { display: block; font-size: 11px; color: #8a97a4; }
.prt-devuelto { color: #8a97a4; font-style: italic; }
.prt-ver { font-weight: 700; color: var(--tenant-primary, #012e46); text-decoration: none; }

.prt-badge { display: inline-block; padding: 3px 9px; border-radius: 20px; font-size: 11px; font-weight: 800; color: #fff; background: #8a97a4; white-space: nowrap; }
.prt-badge-abierto   { background: #1a7fb5; }
.prt-badge-completo  { background: #128a4a; }
.prt-badge-cancelado { background: #b23b32; }
.prt-badge-jugado    { background: #4a5866; }

.evt-btn-danger { color: #fff; background: #b23b32; }

@media (max-width: 767px) {
  .prt-barra .evt-btn { flex: 1 1 auto; justify-content: center; }
}

/* ---- Botones de partidos ----
   No se reutiliza .evt-btn-primary porque su fondo es var(--evt-navy), una
   variable que solo existe dentro de .evt-mis-page: fuera de alli el fondo se
   queda transparente y, como el texto es blanco, el boton se vuelve invisible.
   Estos usan el color de la delegacion, que si esta definido en la pagina. */
.prt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #d5dde5; border-radius: 9px; padding: 11px 18px; font-size: 13px; font-weight: 800; text-decoration: none; background: #fff; color: var(--tenant-primary, #012e46); cursor: pointer; transition: .18s ease; }
.prt-btn:hover, .prt-btn:focus { text-decoration: none; color: var(--tenant-primary, #012e46); border-color: var(--tenant-primary, #012e46); transform: translateY(-1px); }
.prt-btn-primary { background: var(--tenant-primary, #012e46); border-color: var(--tenant-primary, #012e46); color: var(--tenant-text, #fff); }
.prt-btn-primary:hover, .prt-btn-primary:focus { color: var(--tenant-text, #fff); opacity: .92; }
.prt-btn-danger { background: #b23b32; border-color: #b23b32; color: #fff; }
.prt-btn-danger:hover, .prt-btn-danger:focus { color: #fff; opacity: .92; }

/* ---- Invitaciones a partidos privados ---- */
.prt-invitaciones { background: #fff; border: 1px solid #e3e8ee; border-left: 4px solid var(--tenant-primary, #012e46); border-radius: 12px; padding: 16px 18px; margin: 18px 0; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.prt-invit-titulo { margin: 0 0 12px; font-size: 16px; font-weight: 800; color: var(--tenant-primary, #012e46); }
.prt-invit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid #eef1f5; }
.prt-invit:first-of-type { border-top: 0; padding-top: 0; }
.prt-invit-datos { flex: 1 1 260px; font-size: 13.5px; color: #4a5866; line-height: 1.5; }
.prt-invit-datos em { color: #6b7885; }
.prt-invit-detalle { display: block; margin-top: 3px; font-size: 12px; color: #8a97a4; }
.prt-invit-botones { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.prt-invit-botones form { margin: 0; }

.prt-invita-form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.prt-invita-form .prt-input { flex: 1 1 200px; width: auto; }
.prt-invita-nota { display: block; margin-top: 8px; font-size: 11.5px; color: #8a97a4; }
.prt-invitados { margin-top: 12px; border-top: 1px solid #e3e8ee; padding-top: 8px; }
.prt-invitado { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; font-size: 13px; }
.prt-invitado small { color: #8a97a4; margin-left: 6px; }
.prt-invitado form { margin: 0; }
.prt-invit-quitar { border: 0; background: transparent; color: #b23b32; font-size: 18px; line-height: 1; cursor: pointer; padding: 0 4px; }
.prt-invit-quitar:hover { opacity: .7; }

/* ---- Hilo de mensajes del partido ---- */
.prt-hilo { background: #fff; border: 1px solid #e3e8ee; border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.prt-hilo-mensajes { max-height: 340px; overflow-y: auto; padding-right: 4px; }
.prt-hilo-vacio { margin: 8px 0; font-size: 13px; color: #8a97a4; }
.prt-msg { margin-bottom: 10px; padding: 9px 12px; border-radius: 10px; background: #f4f6f9; max-width: 82%; }
.prt-msg.es-mio { margin-left: auto; background: #e8f2f8; }
.prt-msg-cab { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 3px; font-size: 11px; color: #6b7885; }
.prt-msg-cab strong { color: var(--tenant-primary, #012e46); }
.prt-msg-texto { font-size: 13.5px; color: #1c2b39; word-wrap: break-word; overflow-wrap: anywhere; }
.prt-msg-texto.es-borrado { color: #a6b0ba; font-style: italic; }
.prt-msg-borrar { margin: 4px 0 0; }
.prt-msg-borrar button { border: 0; background: transparent; padding: 0; font-size: 11px; color: #8a97a4; cursor: pointer; text-decoration: underline; }
.prt-msg-borrar button:hover { color: #b23b32; }
.prt-hilo-form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eef1f5; }
.prt-hilo-form .prt-input { flex: 1 1 200px; width: auto; }
.prt-hilo-aviso { margin: 10px 0 0; font-size: 11.5px; color: #8a97a4; }
.prt-nuevos { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 20px; background: #b23b32; color: #fff; font-size: 11px; font-weight: 800; }

/* Aviso de mantenimiento programado (sale sobre el menú del socio) */
.aviso-mantenimiento { margin: 0; padding: 11px 18px; background: #fff4d6; border-bottom: 1px solid #efd9a1; color: #6b4e08; font-size: 15px; font-weight: 600; text-align: center; }
@media (max-width: 767px) { .aviso-mantenimiento { font-size: 14px; padding: 10px 14px; } }
