/* sm-doc-lightbox — botones de documentos oficiales + modal/lightbox.
   Compartido entre el formulario de inscripción y la página de inscritos.
   (Extraído de registration.css; clases .sm-reg-docbtn/.sm-reg-lightbox
   mantenidas para heredar el isolation CSS existente.) */

/* ── Botones PDF (tag rojo + nombre del documento) ─────────────────────── */

.sm-reg-docbtns {
  display:   flex;
  flex-wrap: wrap;
  gap:       8px;
}

.sm-reg-docbtn {
  display:        inline-flex;
  align-items:    center;
  gap:            8px;
  padding:        6px 12px 6px 6px;
  background:     #fff;
  border:         1px solid var(--sm-border, #e2e8f0);
  border-radius:  8px;
  font:           inherit;
  font-size:      12px;
  font-weight:    500;
  color:          var(--sm-text, #18181b);
  cursor:         pointer;
  transition:     border-color .15s ease, background .15s ease;
  line-height:    1.4;
}
.sm-reg-docbtn:hover {
  border-color: var(--sm-red, #dc2626);
  background:   #fef2f2;
}
.sm-reg-docbtn:focus-visible {
  outline:        2px solid var(--sm-brand-500, #1a2d42);
  outline-offset: 2px;
}
.sm-reg-docbtn__tag {
  display:        inline-flex;
  align-items:    center;
  padding:        2px 6px;
  background:     var(--sm-red, #dc2626);
  color:          #fff;
  border-radius:  4px;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.04em;
  line-height:    1.4;
}
.sm-reg-docbtn__name {
  font-weight: 500;
}


/* ── Lightbox para preview de documentos ────────────────────────────────── */

.sm-reg-lightbox {
  position: fixed;
  inset:    0;
  z-index:  9999;
  display:  flex;
  align-items: center;
  justify-content: center;
  padding:  16px;
  animation: sm-reg-lb-fadein .18s ease-out;
}
@keyframes sm-reg-lb-fadein {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.sm-reg-lightbox__overlay {
  position: absolute;
  inset:    0;
  background: rgba(15, 23, 42, 0.72);
  cursor: pointer;
}
.sm-reg-lightbox__dialog {
  position:      relative;
  z-index:       1;
  width:         100%;
  max-width:     480px;
  background:    #fff;
  border-radius: 12px;
  box-shadow:    0 20px 50px -12px rgba(0, 0, 0, 0.32);
  overflow:      hidden;
  animation:     sm-reg-lb-pop .18s ease-out;
  display:       flex;
  flex-direction: column;
}
/* Variante "viewer" — modal grande para embeber el PDF dentro. */
.sm-reg-lightbox__dialog--viewer {
  max-width:  min(1100px, 92vw);
  height:     90vh;
  max-height: 90vh;
}
@keyframes sm-reg-lb-pop {
  from { transform: translateY(8px) scale(0.98); }
  to   { transform: translateY(0) scale(1); }
}
.sm-reg-lightbox__header {
  display:     flex;
  align-items: center;
  gap:         10px;
  padding:     12px 16px;
  border-bottom: 1px solid var(--sm-border, #e2e8f0);
  flex-shrink: 0;
}
.sm-reg-lightbox__title {
  flex:        1;
  min-width:   0;
  font-size:   14px;
  font-weight: 600;
  color:       var(--sm-text, #18181b);
  white-space: nowrap;
  overflow:    hidden;
  text-overflow: ellipsis;
}
.sm-reg-lightbox__open-new {
  display:     inline-flex;
  align-items: center;
  justify-content: center;
  width:       30px;
  height:      30px;
  border-radius: 6px;
  color:       var(--sm-text-muted, #71717a);
  text-decoration: none;
  transition:  background .15s ease, color .15s ease;
}
.sm-reg-lightbox__open-new:hover {
  background: var(--sm-bg-soft, #f8fafc);
  color:      var(--sm-text, #18181b);
}
.sm-reg-lightbox__close {
  width:        30px;
  height:       30px;
  background:   transparent;
  border:       0;
  border-radius: 6px;
  font-size:    22px;
  line-height:  1;
  color:        var(--sm-text-muted, #71717a);
  cursor:       pointer;
  font-family:  inherit;
}
.sm-reg-lightbox__close:hover {
  background: var(--sm-bg-soft, #f8fafc);
  color:      var(--sm-text, #18181b);
}

/* Viewer = iframe que renderiza el PDF nativo del navegador. */
.sm-reg-lightbox__viewer {
  flex:       1;
  position:   relative;
  background: #525659;
  overflow:   hidden;
}
.sm-reg-lightbox__viewer iframe {
  position: relative;
  z-index:  1;
  width:    100%;
  height:   100%;
  border:   0;
  display:  block;
}
.sm-reg-lightbox__viewer-fallback {
  position: absolute;
  inset:    0;
  display:  flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap:      10px;
  padding:  24px;
  color:    rgba(255, 255, 255, 0.78);
  text-align: center;
  z-index:  0;
}
.sm-reg-lightbox__viewer-fallback .sm-reg-lightbox__file-icon {
  font-size:   56px;
  line-height: 1;
  color:       #fff;
}
.sm-reg-lightbox__viewer-fallback p {
  margin:    0;
  font-size: 14px;
}
.sm-reg-lightbox__viewer-fallback-hint {
  font-size: 12px !important;
  color:     rgba(255, 255, 255, 0.55) !important;
  max-width: 320px;
}

/* Estado vacío / gated — sin PDF aún o instrucciones no publicadas. Fondo
   claro (no el gris del visor) porque no hay iframe debajo. */
.sm-reg-lightbox__viewer--empty {
  background: var(--sm-bg-soft, #f8fafc);
}
.sm-reg-lightbox__empty {
  position: absolute;
  inset:    0;
  display:  flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap:      14px;
  padding:  32px 28px;
  text-align: center;
}
.sm-reg-lightbox__empty .sm-reg-lightbox__file-icon {
  font-size:   52px;
  line-height: 1;
  opacity:     0.85;
}
.sm-reg-lightbox__empty-msg {
  margin:     0;
  font-size:  15px;
  font-weight: 500;
  color:      var(--sm-text, #18181b);
  max-width:  360px;
  line-height: 1.5;
}

.sm-reg-lightbox__footer {
  display:         flex;
  justify-content: flex-end;
  gap:             8px;
  padding:         12px 16px;
  border-top:      1px solid var(--sm-border, #e2e8f0);
  background:      var(--sm-bg-soft, #f8fafc);
  flex-shrink:     0;
}
.sm-reg-lightbox__footer .sm-btn,
.sm-reg-lightbox__footer a.sm-btn {
  text-decoration: none;
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
}
.sm-reg-lightbox__footer a.sm-btn--primary {
  background:      var(--sm-brand-500, #1a2d42) !important;
  color:           #fff !important;
  border:          1px solid var(--sm-brand-500, #1a2d42);
  padding:         8px 16px;
  border-radius:   6px;
  font-weight:     600;
  font-size:       13px;
  transition:      opacity .15s ease;
}
.sm-reg-lightbox__footer a.sm-btn--primary:hover {
  opacity: 0.92;
  color:   #fff !important;
}

/* ── HTML content variant (legal text modal) ──────────────────────────── */

.sm-reg-lightbox__dialog--html {
  max-width:  min(680px, 92vw);
  height:     auto;
  max-height: 85vh;
}
.sm-reg-lightbox__dialog--html .sm-reg-lightbox__header {
  border-bottom: 1px solid var(--sm-border, #e2e8f0);
}
.sm-reg-lightbox__dialog--html .sm-reg-lightbox__footer {
  border-top: 1px solid var(--sm-border, #e2e8f0);
}
.sm-reg-lightbox__dialog--html .sm-reg-lightbox__footer .sm-btn {
  background:    var(--sm-primary, #1d4ed8);
  color:         #fff;
  border-color:  var(--sm-primary, #1d4ed8);
}
.sm-reg-lightbox__dialog--html .sm-reg-lightbox__footer .sm-btn:hover {
  opacity: 0.9;
}
.sm-reg-lightbox__viewer--html {
  background: #ffffff;
  overflow-y: auto;
  flex:       1;
}
.sm-reg-lightbox__html {
  padding:     28px 32px;
  font-size:   14px;
  line-height: 1.7;
  color:       var(--sm-text, #18181b);
}
.sm-reg-lightbox__html h1,
.sm-reg-lightbox__html h2,
.sm-reg-lightbox__html h3,
.sm-reg-lightbox__html h4 {
  margin:      1.4em 0 0.5em;
  font-weight: 600;
  line-height: 1.3;
  color:       var(--sm-text, #18181b);
}
.sm-reg-lightbox__html h1 { font-size: 1.3em; }
.sm-reg-lightbox__html h2 { font-size: 1.15em; }
.sm-reg-lightbox__html h3 { font-size: 1.05em; }
.sm-reg-lightbox__html p  { margin: 0 0 1em; }
.sm-reg-lightbox__html ul,
.sm-reg-lightbox__html ol { margin: 0 0 1em; padding-left: 1.6em; }
.sm-reg-lightbox__html li { margin-bottom: 0.35em; }
.sm-reg-lightbox__html a  {
  color:              var(--sm-primary, #1d4ed8);
  text-decoration:    underline;
  text-underline-offset: 2px;
}
.sm-reg-lightbox__html strong { font-weight: 700; }
/* Defensive: hide images/media that don't belong in legal text */
.sm-reg-lightbox__html img,
.sm-reg-lightbox__html video,
.sm-reg-lightbox__html iframe,
.sm-reg-lightbox__html object,
.sm-reg-lightbox__html embed { display: none !important; }
/* Tables from pasted Word content */
.sm-reg-lightbox__html table {
  width:           100%;
  border-collapse: collapse;
  margin:          0 0 1em;
  font-size:       inherit;
}
.sm-reg-lightbox__html td,
.sm-reg-lightbox__html th {
  padding:    6px 8px;
  border:     1px solid var(--sm-border, #e2e8f0);
  text-align: left;
}
.sm-reg-lightbox__doc-tag {
  font-size:   18px;
  line-height: 1;
  color:       var(--sm-primary, #1d4ed8);
}

@media (max-width: 600px) {
  .sm-reg-lightbox__dialog--viewer {
    max-width:  100vw;
    height:     100vh;
    max-height: 100vh;
    border-radius: 0;
  }
  .sm-reg-lightbox__dialog--html {
    max-width:     100vw;
    max-height:    100vh;
    border-radius: 0;
  }
  .sm-reg-lightbox__html {
    padding: 18px 16px;
  }
}
