/* Biblioteca REIMS · mejoras compartidas de seguridad, accesibilidad y móvil */
:root{--reims-blue:#003057;--reims-red:#D11921;--reims-safe-bottom:env(safe-area-inset-bottom,0px)}
html,body{max-width:100%;overflow-x:hidden}

/* Navegación móvil: el menú de escritorio se conserva intacto. */
.reims-mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #cbd5e1;border-radius:.7rem;background:#fff;color:#003057;font-size:1.35rem;font-weight:800;line-height:1;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.reims-mobile-nav-toggle:hover,.reims-mobile-nav-toggle:focus-visible{border-color:#003057;outline:2px solid rgba(0,48,87,.22);outline-offset:2px}
.reims-mobile-nav{display:none;background:#fff;border-top:1px solid #e2e8f0;box-shadow:0 12px 24px rgba(15,23,42,.10);padding:.45rem .75rem .8rem;position:relative;z-index:80}
.reims-mobile-nav.is-open{display:block}
.reims-mobile-nav a{display:flex;min-height:44px;align-items:center;padding:.55rem .75rem;border-radius:.65rem;color:#334155;font-size:.88rem;font-weight:650}
.reims-mobile-nav a:hover,.reims-mobile-nav a:focus-visible{background:#f8fafc;color:#D11921;outline:none}
.reims-mobile-nav a[aria-current="page"]{background:#f1f5f9;color:#003057}

/* Chatbot adaptable y cómodo para tacto. */
#chatToggle{position:fixed!important;right:max(1rem,env(safe-area-inset-right,0px))!important;left:auto!important;bottom:max(1rem,var(--reims-safe-bottom))!important;touch-action:manipulation}
#chatPanel{position:fixed!important;right:1rem;bottom:6rem;width:min(95vw,430px);max-height:calc(100dvh - 7rem);display:none}
#chatPanel:not(.hidden){display:flex;flex-direction:column}
#chatMessages{min-height:0;overscroll-behavior:contain}
#chatForm{flex:0 0 auto}
#chatForm input{min-width:0}
#quickActions button,.chat-btn{touch-action:manipulation}
.chat-link-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}
.chat-muted{color:#64748b;font-size:.75rem;line-height:1.4}
.chat-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.75rem}
.chat-list{display:grid;gap:.5rem;margin-top:.65rem}
.chat-event{border:1px solid #e2e8f0;border-radius:.8rem;background:#fff;padding:.65rem}
.chat-event-title{font-weight:750;color:#0f172a}
.chat-event-meta{font-size:.75rem;color:#64748b;margin-top:.2rem}
.chat-input-field{width:100%;border:1px solid #cbd5e1;border-radius:.65rem;padding:.55rem .65rem;background:#fff;color:#0f172a}
.chat-input-field:focus{outline:2px solid rgba(0,48,87,.22);border-color:#003057}
.chat-reference{border:1px solid #e2e8f0;border-radius:.8rem;background:#fff;padding:.7rem;margin-top:.6rem;line-height:1.55}

/* Barra de herramientas accesible sin invadir contenido en móviles. */
#accessToolbar{bottom:max(1rem,var(--reims-safe-bottom));left:max(.65rem,env(safe-area-inset-left,0px));max-width:calc(100vw - 5.5rem);flex-wrap:wrap}

@media (min-width:1280px){
  .reims-mobile-nav-toggle,.reims-mobile-nav{display:none!important}
}
@media (max-width:1279px){
  header a[aria-label*="Biblioteca REIMS"] img{min-width:0!important;max-width:min(43vw,190px)!important;width:auto!important;height:auto!important}
}
@media (max-width:639px){
  header>div{padding-left:.65rem!important;padding-right:.65rem!important;gap:.45rem!important}
  header .relative>button#languageToggle{padding:.48rem .55rem!important;min-height:42px}
  #chatToggle{width:56px!important;height:56px!important;font-size:1.35rem!important}
  #chatPanel{left:.5rem!important;right:.5rem!important;top:.5rem!important;bottom:calc(4.65rem + var(--reims-safe-bottom))!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;border-radius:1rem!important}
  #chatMessages{height:auto!important;flex:1 1 auto!important;max-height:none!important;padding:.75rem!important}
  #chatPanel>div:first-child{padding:.75rem 1rem!important}
  #chatForm{padding:.7rem!important;gap:.45rem!important}
  #chatForm input,#chatPanel input,#chatPanel select{font-size:16px!important}
  #chatForm button{min-height:44px;padding:.55rem .8rem!important}
  #quickActions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.42rem!important}
  #quickActions button{min-height:62px;padding:.6rem!important}
  .chat-actions{grid-template-columns:1fr 1fr}
  .chat-btn{min-height:44px}
  #a11yPanel{left:.5rem!important;right:.5rem!important;width:auto!important;bottom:calc(4.5rem + var(--reims-safe-bottom))!important;max-height:70dvh;overflow:auto}
}
@media (max-width:360px){
  header a[aria-label*="Biblioteca REIMS"] img{max-width:145px!important}
  .chat-actions{grid-template-columns:1fr}
  #quickActions{grid-template-columns:1fr 1fr!important}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Evita desbordes de tarjetas de Servicios en teléfonos estrechos. */
#servicios .grid > button > div:last-child{min-width:0}
#servicios .grid > button h3,#servicios .grid > button p{overflow-wrap:anywhere;word-break:normal}

/* Contraste reforzado para textos sobre la portada fotográfica La Salle. */
.reims-institutional-cover{
  background-image:
    linear-gradient(90deg,rgba(0,18,34,.50) 0%,rgba(0,18,34,.42) 56%,rgba(0,18,34,.28) 100%),
    url('ulsa-portada.png')!important;
}

.reims-institutional-cover h1,
.reims-institutional-cover .account-title,
.reims-institutional-cover .agenda-title,
.reims-institutional-cover .network-title{
  color:#fff!important;
  text-shadow:0 2px 4px rgba(0,0,0,1),0 7px 24px rgba(0,0,0,.78)!important;
  -webkit-text-stroke:.2px rgba(0,0,0,.55);
}

.reims-institutional-cover > div > p,
.reims-institutional-cover .account-eyebrow,
.reims-institutional-cover .account-lead,
.reims-institutional-cover .agenda-kicker,
.reims-institutional-cover .agenda-lead,
.reims-institutional-cover .network-kicker,
.reims-institutional-cover .network-lead{
  color:#fff!important;
  text-shadow:0 1px 3px rgba(0,0,0,1),0 4px 15px rgba(0,0,0,.78)!important;
}

/* Fondo de contraste discreto: aumenta la legibilidad sin ocultar la fotografía. */
.reims-institutional-cover .agenda-hero-inner,
.reims-institutional-cover .account-hero-inner,
.reims-institutional-cover .network-hero-inner{
  width:fit-content;
  max-width:min(900px,100%);
  padding:1.35rem 1.55rem;
  border:1px solid rgba(255,255,255,.20);
  border-radius:1rem;
  background:linear-gradient(135deg,rgba(0,27,49,.74),rgba(0,18,34,.58));
  box-shadow:0 12px 34px rgba(0,0,0,.25);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}

/* En Inicio solo se realza el título; el buscador conserva su tarjeta blanca. */
#inicio.reims-institutional-cover h1{
  display:inline-block;
  max-width:100%;
  padding:.55rem 1rem .65rem;
  border:1px solid rgba(255,255,255,.20);
  border-radius:.85rem;
  background:linear-gradient(135deg,rgba(0,27,49,.78),rgba(0,18,34,.62));
  box-shadow:0 10px 28px rgba(0,0,0,.25);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}

@media (max-width:700px){
  .reims-institutional-cover{
    background-image:
      linear-gradient(90deg,rgba(0,18,34,.58) 0%,rgba(0,18,34,.46) 68%,rgba(0,18,34,.30) 100%),
      url('ulsa-portada.png')!important;
  }
  .reims-institutional-cover .agenda-hero-inner,
  .reims-institutional-cover .account-hero-inner,
  .reims-institutional-cover .network-hero-inner{
    padding:1.1rem 1rem;
    border-radius:.85rem;
  }
  #inicio.reims-institutional-cover h1{
    padding:.5rem .8rem .58rem;
  }
}

/* ============================================================
   FOOTER COMPACTO · Biblioteca REIMS
   Reduce la altura visual sin eliminar contenido ni separadores.
   ============================================================ */
.reims-footer .footer-main-wrap{
  padding-top:2.35rem!important;
  padding-bottom:.9rem!important;
}
.reims-footer .footer-main-wrap > .grid{
  gap:.75rem!important;
}
.reims-footer .footer-panel{
  padding:.62rem;
  border-color:rgba(255,255,255,.12);
}
.reims-footer .footer-brand-box{
  padding:.38rem .52rem;
}
.reims-footer .footer-heading{
  margin-bottom:.48rem;
  gap:.42rem;
  line-height:1.15rem;
}
.reims-footer .footer-info-row{
  gap:.42rem;
  padding:.27rem .34rem;
}
.reims-footer .footer-icon{
  width:1.38rem;
  height:1.38rem;
  flex-basis:1.38rem;
}
.reims-footer .footer-hour-card{
  gap:.45rem;
  padding:.34rem .4rem;
}
.reims-footer .footer-link-card{
  padding:.31rem .48rem;
}
.reims-footer .footer-link-card + .footer-link-card{
  margin-top:.38rem;
}
.reims-footer .footer-social{
  width:1.82rem;
  height:1.82rem;
}
.reims-footer .footer-legal-inner{
  padding-top:.31rem!important;
  padding-bottom:.31rem!important;
  gap:.28rem!important;
}

/* Mantiene respiración suficiente en móvil y conserva la separación visual. */
@media (max-width:767px){
  .reims-footer .footer-main-wrap{
    padding-top:2rem!important;
    padding-bottom:.8rem!important;
  }
  .reims-footer .footer-main-wrap > .grid{
    gap:.65rem!important;
  }
  .reims-footer .footer-panel{
    padding:.68rem;
  }
  .reims-footer .footer-info-row{
    padding:.32rem .36rem;
  }
  .reims-footer .footer-hour-card{
    padding:.38rem .42rem;
  }
  .reims-footer .footer-link-card{
    padding:.38rem .5rem;
  }
}



/* ============================================================
   IDENTIDAD VISUAL UNIFICADA · estilo del Panel de administrador
   Azul principal #003057 · azul secundario #00486B · rojo #D11921
   ============================================================ */
:root{
  --reims-blue:#003057;
  --reims-blue-2:#00486B;
  --reims-red:#D11921;
  --reims-ink:#0f172a;
  --reims-muted:#64748b;
}
.bg-lasalle-blue{background-color:#003057!important}
.text-lasalle-blue{color:#003057!important}
.border-lasalle-blue{border-color:#003057!important}
.bg-lasalle-red{background-color:#D11921!important}
.text-lasalle-red{color:#D11921!important}
.border-lasalle-red{border-color:#D11921!important}

/* Todas las portadas conservan la fotografía limpia y utilizan el mismo
   resaltador de texto del Panel de administrador. */
.reims-institutional-cover,
.admin-hero,
.manager-hero{
  background-color:#003057!important;
  /* Filtro oscuro ligero: conserva visible la fotografía y mejora el contraste. */
  background-image:linear-gradient(rgba(0,24,43,.24),rgba(0,24,43,.24)),url('ulsa-portada.png')!important;
  background-size:cover!important;
  background-position:center 50%!important;
  background-repeat:no-repeat!important;
}

.reims-institutional-cover .agenda-hero-inner,
.reims-institutional-cover .catalog-hero-inner,
.reims-institutional-cover .account-hero-inner,
.reims-institutional-cover .network-hero-inner,
.admin-hero .admin-hero-inner,
.manager-hero > .manager-shell{
  position:relative!important;
  z-index:1!important;
  width:fit-content!important;
  max-width:min(900px,calc(100% - 1.5rem))!important;
  padding:1.35rem 1.55rem!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-left:4px solid #D11921!important;
  border-radius:1rem!important;
  background:linear-gradient(135deg,rgba(0,27,49,.78),rgba(0,18,34,.62))!important;
  box-shadow:0 12px 34px rgba(0,0,0,.25)!important;
  -webkit-backdrop-filter:blur(3px)!important;
  backdrop-filter:blur(3px)!important;
}

/* Inicio tiene el buscador dentro de la portada; por eso el resaltador
   se aplica únicamente al título para no oscurecer la tarjeta de búsqueda. */
#inicio.reims-institutional-cover h1{
  display:inline-block!important;
  width:fit-content!important;
  max-width:100%!important;
  padding:.72rem 1.15rem .82rem!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-left:4px solid #D11921!important;
  border-radius:1rem!important;
  background:linear-gradient(135deg,rgba(0,27,49,.78),rgba(0,18,34,.62))!important;
  box-shadow:0 12px 34px rgba(0,0,0,.25)!important;
  -webkit-backdrop-filter:blur(3px)!important;
  backdrop-filter:blur(3px)!important;
}

.reims-institutional-cover .agenda-title,
.reims-institutional-cover .catalog-title,
.reims-institutional-cover .account-title,
.reims-institutional-cover .network-title,
.admin-title,
.manager-title,
#inicio.reims-institutional-cover h1{
  color:#fff!important;
  text-shadow:0 2px 3px rgba(0,0,0,.95),0 6px 20px rgba(0,0,0,.58)!important;
}

.reims-institutional-cover .agenda-title::after,
.reims-institutional-cover .catalog-title::after,
.reims-institutional-cover .account-title::after,
.reims-institutional-cover .network-title::after,
.admin-title::after,
.manager-title::after,
#inicio.reims-institutional-cover h1::after{
  content:""!important;
  display:block!important;
  width:68px!important;
  height:4px!important;
  margin-top:.7rem!important;
  border-radius:999px!important;
  background:#D11921!important;
  box-shadow:0 2px 10px rgba(0,0,0,.30)!important;
}

.reims-institutional-cover .agenda-kicker,
.reims-institutional-cover .catalog-kicker,
.reims-institutional-cover .account-eyebrow,
.reims-institutional-cover .network-kicker,
.admin-kicker,
.manager-kicker{
  color:#fff!important;
  text-shadow:0 2px 8px rgba(0,0,0,.75)!important;
}

.reims-institutional-cover .agenda-lead,
.reims-institutional-cover .catalog-lead,
.reims-institutional-cover .account-lead,
.reims-institutional-cover .network-lead,
.admin-lead,
.manager-lead{
  color:rgba(255,255,255,.98)!important;
  text-shadow:0 1px 3px rgba(0,0,0,.95),0 4px 14px rgba(0,0,0,.62)!important;
}

/* Gestor del sitio: el contenedor del hero se centra como el resto de páginas. */
.manager-hero > .manager-shell{margin-left:auto!important;margin-right:auto!important}
.manager-hero .manager-action:not(.primary){background:#fff!important;color:#003057!important;border-color:#fff!important}
.manager-hero .manager-action.primary{background:#D11921!important;color:#fff!important;border-color:#D11921!important}

/* ============================================================
   BUSCADOR GENERAL SUPERIOR · compacto junto a Idiomas
   ============================================================ */
.reims-top-search{position:relative;flex:0 0 auto}
.reims-top-search-toggle{
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.38rem;
  padding:0 .72rem;
  border:1px solid #003057;
  border-radius:.68rem;
  background:#003057;
  color:#fff;
  font-size:.76rem;
  line-height:1;
  font-weight:850;
  letter-spacing:.01em;
  box-shadow:0 5px 14px rgba(0,48,87,.16);
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
  white-space:nowrap;
}
.reims-top-search-toggle svg{width:15px;height:15px;flex:none}
.reims-top-search-toggle:hover,.reims-top-search-toggle:focus-visible{
  background:#00486B;
  border-color:#D11921;
  box-shadow:0 7px 18px rgba(0,48,87,.22);
  transform:translateY(-1px);
  outline:2px solid rgba(209,25,33,.18);
  outline-offset:2px;
}
.reims-top-search-popover{
  position:absolute;
  right:0;
  top:calc(100% + .55rem);
  z-index:120;
  width:min(340px,calc(100vw - 1rem));
  padding:.68rem;
  border:1px solid #dbe4ea;
  border-top:3px solid #D11921;
  border-radius:.85rem;
  background:#fff;
  box-shadow:0 18px 42px rgba(15,23,42,.18);
}
.reims-top-search-popover[hidden]{display:none!important}
.reims-top-search-form{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:.42rem;align-items:center}
.reims-top-search-field{position:relative;display:flex;align-items:center;min-width:0}
.reims-top-search-field>svg{position:absolute;left:.68rem;width:15px;height:15px;color:#003057;pointer-events:none}
.reims-top-search-field input{
  width:100%;
  min-width:0;
  height:40px;
  padding:.52rem .68rem .52rem 2rem;
  border:1px solid #cbd5e1;
  border-radius:.68rem;
  background:#fff;
  color:#0f172a;
  font-size:.8rem;
  font-weight:650;
  outline:none;
}
.reims-top-search-field input:focus{border-color:#003057;box-shadow:0 0 0 3px rgba(0,48,87,.10)}
.reims-top-search-submit{
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #D11921;border-radius:.68rem;background:#D11921;color:#fff;
  box-shadow:0 5px 14px rgba(209,25,33,.18);transition:.18s ease
}
.reims-top-search-submit svg{width:16px;height:16px}
.reims-top-search-submit:hover,.reims-top-search-submit:focus-visible{background:#b9141b;border-color:#b9141b;outline:2px solid rgba(209,25,33,.18);outline-offset:2px}
.reims-top-search-help{margin:.48rem .12rem 0;color:#64748b;font-size:.69rem;line-height:1.35}
.reims-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media(max-width:700px){
  .reims-institutional-cover,
  .admin-hero,
  .manager-hero{background-position:64% center!important}
  .reims-institutional-cover .agenda-hero-inner,
  .reims-institutional-cover .catalog-hero-inner,
  .reims-institutional-cover .account-hero-inner,
  .reims-institutional-cover .network-hero-inner,
  .admin-hero .admin-hero-inner,
  .manager-hero > .manager-shell{
    padding:1.05rem 1rem!important;
    border-radius:.85rem!important;
  }
  #inicio.reims-institutional-cover h1{padding:.58rem .82rem .68rem!important;border-radius:.85rem!important}
}

@media(max-width:639px){
  .reims-top-search-toggle{height:42px;padding:0 .58rem;font-size:.72rem;gap:.3rem}
  .reims-top-search-toggle svg{width:14px;height:14px}
  .reims-top-search-popover{position:fixed;right:.5rem;top:4.5rem;width:min(360px,calc(100vw - 1rem))}
}
@media(max-width:390px){
  header a[aria-label*="Biblioteca REIMS"] img{max-width:122px!important}
  .reims-top-search-toggle{padding:0 .48rem;font-size:.68rem}
  header .relative>button#languageToggle{padding:.42rem .46rem!important}
}
@media(max-width:350px){
  header a[aria-label*="Biblioteca REIMS"] img{max-width:108px!important}
  .reims-top-search-toggle{gap:.22rem;padding:0 .42rem}
}


/* ============================================================
   BARRA INFERIOR · restaurada al acomodo original del proyecto
   Conserva la franja legal/servicios del footer. El buscador general
   permanece exclusivamente en el encabezado junto a Idiomas.
   ============================================================ */
.reims-footer .reims-footer-tools{display:none!important}
.reims-footer .footer-legal-inner{
  width:min(100%,72rem);
  margin-left:auto!important;
  margin-right:auto!important;
}
@media(min-width:768px){
  .reims-footer .footer-legal-inner{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
  }
}
@media(max-width:767px){
  .reims-footer .footer-legal-inner{
    flex-direction:column!important;
    align-items:flex-start!important;
  }
}

/* ============================================================
   PALETA ADMINISTRADOR · APLICACION GLOBAL INTENSA
   Igualación visual de todas las páginas con administrador.html
   Azul #003057 · Azul secundario #00486B · Rojo #D11921
   ============================================================ */
:root{
  --reims-blue:#003057!important;
  --reims-blue-2:#00486B!important;
  --reims-red:#D11921!important;
  --account-blue:#003057;
  --account-blue-2:#00486B;
  --account-red:#D11921;
  --mgr-blue:#003057;
  --mgr-red:#D11921;
}

/* Portadas: fotografía visible con la misma profundidad cromática del panel. */
.reims-institutional-cover,
.admin-hero,
.manager-hero{
  background-color:#003057!important;
  background-image:linear-gradient(90deg,rgba(0,24,43,.34) 0%,rgba(0,24,43,.30) 58%,rgba(0,24,43,.25) 100%),url('ulsa-portada.png')!important;
}

/* Resaltadores de portada: exactamente la familia cromática de Administrador. */
.reims-institutional-cover .agenda-hero-inner,
.reims-institutional-cover .catalog-hero-inner,
.reims-institutional-cover .account-hero-inner,
.reims-institutional-cover .network-hero-inner,
.admin-hero .admin-hero-inner,
.manager-hero > .manager-shell{
  border-color:rgba(255,255,255,.22)!important;
  border-left-color:#D11921!important;
  background:linear-gradient(135deg,rgba(0,27,49,.84),rgba(0,18,34,.70))!important;
  box-shadow:0 14px 38px rgba(0,0,0,.30)!important;
}

/* Inicio conserva el buscador blanco, pero el título usa el mismo resaltador fuerte. */
#inicio.reims-institutional-cover h1{
  border-left-color:#D11921!important;
  background:linear-gradient(135deg,rgba(0,27,49,.84),rgba(0,18,34,.70))!important;
  box-shadow:0 14px 38px rgba(0,0,0,.30)!important;
}

/* Rojo institucional único en kickers, sin rojos genéricos más claros. */
.agenda-kicker span,
.catalog-kicker span,
.network-kicker span,
.reims-institutional-cover .agenda-kicker span,
.reims-institutional-cover .catalog-kicker span,
.reims-institutional-cover .network-kicker span{
  color:#D11921!important;
}

/* Encabezados internos con la misma fuerza del administrador. */
:is(
  .agenda-heading,
  .catalog-heading,
  .account-section-title,
  .network-heading,
  .gallery-toolbar h2,
  .gallery-empty h2,
  .manager-card h2,
  #servicios h2,
  #recursos h2,
  #agenda h2,
  main h2.text-slate-800,
  main h2.text-slate-900
){
  color:#003057!important;
  font-weight:850!important;
}

/* Línea roja breve bajo encabezados principales de contenido. */
:is(.agenda-heading,.catalog-heading,.account-section-title,.network-heading,.gallery-toolbar h2)::after{
  content:"";
  display:block;
  width:46px;
  height:3px;
  margin-top:.45rem;
  border-radius:999px;
  background:#D11921;
}

/* Catálogo avanzado: mismo degradado que los módulos destacados del administrador. */
.advanced-search-head{
  background:linear-gradient(135deg,#003057 0%,#00486B 100%)!important;
  border-bottom-color:#D11921!important;
}
.advanced-operator-label{
  background:#eef5f8!important;
  color:#003057!important;
  border-color:#cbdde6!important;
}
.advanced-result-note{
  border-left-color:#00486B!important;
  background:#eef5f8!important;
}

/* Mi Biblioteca y Galería: iconos y accesos con azul/rojo de alta saturación. */
.account-card-icon{
  background:#eef5f8!important;
  color:#003057!important;
}
.account-card-red .account-card-icon{
  background:#fff0f1!important;
  color:#D11921!important;
}
.account-card:hover{
  border-color:rgba(0,48,87,.38)!important;
  box-shadow:0 14px 30px rgba(0,48,87,.09)!important;
}
.account-card-red:hover{border-color:rgba(209,25,33,.55)!important}
.account-btn-admin{
  background:linear-gradient(135deg,#003057 0%,#00486B 100%)!important;
  border-color:#003057!important;
  color:#fff!important;
}

/* Red Lasallista: accesos sólidos como los botones del panel administrativo. */
.network-open{
  background:#003057!important;
  color:#fff!important;
  box-shadow:0 7px 18px rgba(0,48,87,.15)!important;
}
.network-open:hover{background:#00486B!important}
.network-open-secondary{
  background:#fff!important;
  color:#003057!important;
  border-color:#003057!important;
}
.network-badge{
  background:#eef5f8!important;
  color:#003057!important;
  border:1px solid rgba(0,48,87,.14)!important;
}

/* Galería: controles y fechas con el mismo contraste institucional. */
.gallery-clear{
  background:#003057!important;
  color:#fff!important;
}
.gallery-clear:hover{background:#00486B!important}
.gallery-card-date{color:#D11921!important}
.gallery-day-number{color:#003057!important}

/* Gestor del sitio: paneles y navegación coherentes con Administrador. */
.manager-nav a:hover,
.manager-nav a:focus-visible{
  background:#eef5f8!important;
  color:#003057!important;
}
.manager-card{
  border-color:#d8e1e8!important;
  box-shadow:0 8px 24px rgba(0,48,87,.055)!important;
}
.manager-card:hover{border-color:rgba(0,48,87,.28)!important}
.manager-note{
  border-left-color:#003057!important;
  background:#eef5f8!important;
}
.manager-btn.blue{background:#003057!important;color:#fff!important}
.manager-btn.blue:hover{background:#00486B!important}
.manager-btn.primary{background:#D11921!important;color:#fff!important}

/* Página principal: botones y tarjetas con acentos más definidos. */
#servicios .grid > button{
  border-color:rgba(0,48,87,.13)!important;
  box-shadow:0 9px 24px rgba(0,48,87,.065)!important;
}
#servicios .grid > button:hover{border-color:#D11921!important}
#servicios .grid > button:nth-child(even):hover{border-color:#003057!important}

/* Navegación superior: misma intensidad que el administrador. */
header a.bg-lasalle-blue,
header .bg-lasalle-blue{
  background:#003057!important;
}
header a.bg-lasalle-blue:hover,
header .bg-lasalle-blue:hover{
  background:#00486B!important;
}

/* Footer: fijar el degradado intenso en todas las páginas. */
.reims-footer{
  background:linear-gradient(135deg,#003057 0%,#003057 58%,#00486B 100%)!important;
}
.footer-accent{background:#D11921!important}
.footer-heading::before{background:#D11921!important}
.footer-social:hover{background:#D11921!important;border-color:#D11921!important}

/* Buscador superior: mantenerlo claramente integrado a la paleta. */
.reims-top-search-toggle{background:#003057!important;border-color:#003057!important;color:#fff!important}
.reims-top-search-toggle:hover,.reims-top-search-toggle:focus-visible{background:#00486B!important;border-color:#D11921!important}
.reims-top-search-submit{background:#D11921!important;border-color:#D11921!important}

@media(max-width:700px){
  .reims-institutional-cover,
  .admin-hero,
  .manager-hero{
    background-image:linear-gradient(90deg,rgba(0,24,43,.40) 0%,rgba(0,24,43,.34) 68%,rgba(0,24,43,.28) 100%),url('ulsa-portada.png')!important;
  }
}

/* ============================================================
   AJUSTE DE COMPOSICION · Inicio + navegacion superior
   - Une el titulo "Explora el conocimiento" con la busqueda.
   - Distribuye los subtitulos del menu en una segunda linea.
   ============================================================ */

/* Inicio: titulo y buscador forman una sola pieza visual. */
#inicio .reims-home-search-panel{
  width:min(100%, 940px);
  margin:0 auto;
  padding:1.35rem 1.45rem 1.5rem;
  border:1px solid rgba(255,255,255,.22);
  border-left:4px solid #D11921;
  border-radius:1.15rem;
  background:linear-gradient(135deg,rgba(0,27,49,.84),rgba(0,18,34,.68));
  box-shadow:0 16px 42px rgba(0,0,0,.29);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}

/* Anula el resaltador aislado del H1: ahora el resaltador pertenece al bloque completo. */
#inicio.reims-institutional-cover .reims-home-search-panel h1{
  display:block!important;
  width:auto!important;
  max-width:none!important;
  margin:0 0 1rem!important;
  padding:0 0 .82rem!important;
  border:0!important;
  border-bottom:3px solid #D11921!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  color:#fff!important;
  text-shadow:0 2px 4px rgba(0,0,0,.92),0 7px 22px rgba(0,0,0,.55)!important;
}

#inicio .reims-home-catalog-box{
  width:100%;
  max-width:790px;
  margin:0 auto;
  padding:1rem;
  border-radius:1rem;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(255,255,255,.88);
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}

/* Escritorio amplio: el menu queda en una segunda linea y ocupa el ancho disponible. */
@media (min-width:1280px){
  body > header > .max-w-7xl{
    flex-wrap:wrap!important;
    row-gap:.45rem!important;
    padding-bottom:0!important;
  }
  body > header > .max-w-7xl > a:first-child{
    order:1;
  }
  body > header > .max-w-7xl > div:last-child{
    order:2;
    margin-left:auto;
  }
  body > header > .max-w-7xl > nav{
    order:3;
    width:100%;
    margin:0!important;
    padding:.58rem .35rem .65rem;
    border-top:1px solid #dbe3ea;
    display:flex!important;
    justify-content:space-between;
    align-items:center;
    gap:.45rem;
  }
  body > header > .max-w-7xl > nav a{
    position:relative;
    flex:0 1 auto;
    padding:.28rem .45rem .38rem;
    color:#003057!important;
    font-weight:750!important;
    text-align:center;
    white-space:nowrap;
    border-radius:.45rem;
  }
  body > header > .max-w-7xl > nav a::after{
    content:"";
    position:absolute;
    left:50%;
    right:50%;
    bottom:0;
    height:2px;
    border-radius:99px;
    background:#D11921;
    transition:left .18s ease,right .18s ease;
  }
  body > header > .max-w-7xl > nav a:hover::after,
  body > header > .max-w-7xl > nav a:focus-visible::after{
    left:.45rem;
    right:.45rem;
  }
}

@media (max-width:767px){
  #inicio .reims-home-search-panel{
    padding:1rem .85rem 1.05rem;
    border-radius:.95rem;
  }
  #inicio.reims-institutional-cover .reims-home-search-panel h1{
    margin-bottom:.8rem!important;
    padding-bottom:.62rem!important;
    font-size:2rem!important;
    line-height:1.08!important;
  }
  #inicio .reims-home-catalog-box{
    padding:.78rem;
    border-radius:.85rem;
  }
  #inicio #catalogSearchForm{
    flex-direction:column;
  }
  #inicio #catalogSearchForm button{
    justify-content:center;
    width:100%;
  }
}

/* =========================================================
   REIMS v16 · Sin lineas rojas horizontales bajo titulos
   Se conservan exclusivamente los acentos rojos laterales.
   ========================================================= */

/* Portadas / heroes: elimina la linea decorativa inferior generada con ::after. */
.reims-institutional-cover .agenda-title::after,
.reims-institutional-cover .catalog-title::after,
.reims-institutional-cover .account-title::after,
.reims-institutional-cover .network-title::after,
.admin-title::after,
.manager-title::after,
#inicio.reims-institutional-cover h1::after,
#inicio.reims-institutional-cover .reims-home-search-panel h1::after {
  content:none!important;
  display:none!important;
  width:0!important;
  height:0!important;
  margin:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* Inicio: el titulo estaba usando un borde inferior rojo dentro del panel. */
#inicio.reims-institutional-cover .reims-home-search-panel h1 {
  border-bottom:0!important;
  padding-bottom:0!important;
}

/* Encabezados secundarios que heredaban una linea roja breve. */
:is(.agenda-heading,.catalog-heading,.account-section-title,.network-heading,.gallery-toolbar h2)::after {
  content:none!important;
  display:none!important;
}

/* Navegacion: elimina el subrayado rojo animado bajo cada opcion. */
body > header > .max-w-7xl > nav a::after,
body > header > .max-w-7xl > nav a:hover::after,
body > header > .max-w-7xl > nav a:focus-visible::after {
  content:none!important;
  display:none!important;
}

/* Mantiene visibles los acentos verticales rojos de las portadas. */
#inicio.reims-institutional-cover h1,
.reims-institutional-cover .agenda-hero-inner,
.reims-institutional-cover .catalog-hero-inner,
.reims-institutional-cover .account-hero-inner,
.reims-institutional-cover .network-hero-inner,
.admin-hero-inner,
.manager-hero-inner {
  border-left-color:#D11921!important;
}


/* =========================================================
   INTEGRACION KOHA REST API + OAI-PMH
   ========================================================= */
.koha-api-connection-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:.9rem 0 1rem;
  padding:.62rem .75rem;border:1px solid #d8e1e8;border-left:4px solid #003057;
  border-radius:.8rem;background:#f8fafc;color:#334155;font-size:.78rem
}
.koha-api-label{font-weight:850;color:#003057}
.koha-api-status{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .55rem;border-radius:999px;background:#eef2f7;color:#475569;font-weight:750}
.koha-api-status::before{content:"";width:.45rem;height:.45rem;border-radius:999px;background:#94a3b8}
.koha-api-status.is-online{background:#ecfdf5;color:#166534}.koha-api-status.is-online::before{background:#16a34a}
.koha-api-status.is-warning{background:#fff7ed;color:#9a3412}.koha-api-status.is-warning::before{background:#f97316}
.koha-api-results{margin:1.25rem 0 1.6rem;border:1px solid #d8e1e8;border-radius:1rem;background:#fff;box-shadow:0 10px 28px rgba(0,48,87,.07);overflow:hidden}
.koha-api-results[hidden]{display:none!important}
.koha-api-results-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;background:linear-gradient(135deg,#f8fafc,#eef5f8);border-bottom:1px solid #d8e1e8}
.koha-api-results-head h3{margin:.18rem 0 0;color:#003057;font-size:1.15rem;font-weight:850}
.koha-api-results-head p{margin:.35rem 0 0;color:#64748b;font-size:.78rem;line-height:1.5;max-width:720px}
.koha-api-results-head>a{flex:none;display:inline-flex;align-items:center;justify-content:center;padding:.55rem .72rem;border-radius:.65rem;background:#003057;color:#fff;font-size:.75rem;font-weight:800;text-decoration:none}
.koha-api-result-list{display:grid;gap:.65rem;padding:.8rem}
.koha-api-result-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem .9rem;border:1px solid #e2e8f0;border-radius:.85rem;background:#fff;transition:.18s ease}
.koha-api-result-card:hover{border-color:rgba(0,48,87,.35);box-shadow:0 8px 20px rgba(0,48,87,.07)}
.koha-api-result-main{min-width:0}.koha-api-result-id{display:inline-block;color:#D11921;font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.koha-api-result-card h3{margin:.2rem 0 0;color:#0f172a;font-size:.95rem;font-weight:850;line-height:1.25}
.koha-api-subtitle,.koha-api-meta,.koha-api-availability{margin:.28rem 0 0;color:#64748b;font-size:.75rem;line-height:1.4}
.koha-api-availability{color:#166534}.koha-api-detail-link{flex:none;padding:.48rem .62rem;border-radius:.6rem;border:1px solid #003057;color:#003057;font-size:.72rem;font-weight:800;text-decoration:none}.koha-api-detail-link:hover{background:#003057;color:#fff}
.koha-api-loading,.koha-api-empty{padding:1.2rem;text-align:center;color:#64748b;font-size:.82rem}.koha-api-empty strong{display:block;color:#003057;font-size:.9rem}.koha-api-empty p{margin:.35rem auto .75rem;max-width:650px}.koha-api-opac-button{padding:.55rem .75rem;border:0;border-radius:.65rem;background:#D11921;color:#fff;font-size:.75rem;font-weight:850}

.koha-admin-integration{margin-bottom:1.5rem;padding:1.15rem;border:1px solid #d8e1e8;border-left:4px solid #003057;border-radius:1rem;background:#fff;box-shadow:0 8px 24px rgba(0,48,87,.055)}
.koha-admin-integration-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.koha-admin-status-stack{display:grid;gap:.4rem;justify-items:end;flex:none}
.koha-admin-connection-status{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .58rem;border-radius:999px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:.69rem;font-weight:800;white-space:nowrap}
.koha-admin-connection-status::before{content:"";width:.48rem;height:.48rem;border-radius:999px;background:#f97316}.koha-admin-connection-status.is-online{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.koha-admin-connection-status.is-online::before{background:#16a34a}
.koha-admin-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-top:1rem}.koha-admin-links a{display:flex;flex-direction:column;gap:.2rem;padding:.75rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#f8fafc;text-decoration:none;color:#003057}.koha-admin-links a:hover{border-color:#003057;background:#eef5f8}.koha-admin-links strong{font-size:.78rem}.koha-admin-links span{font-size:.68rem;color:#64748b}
.koha-admin-security-note{display:flex;align-items:flex-start;gap:.55rem;margin-top:.85rem;padding:.68rem .75rem;border-radius:.72rem;background:#eef5f8;color:#334155;font-size:.73rem;line-height:1.45}.koha-admin-security-note code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#003057;font-weight:800}
@media(max-width:800px){.koha-api-results-head,.koha-api-result-card,.koha-admin-integration-head{flex-direction:column}.koha-api-results-head>a,.koha-api-detail-link{align-self:flex-start}.koha-admin-status-stack{justify-items:start}.koha-admin-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.koha-admin-links{grid-template-columns:1fr}.koha-api-result-card{align-items:flex-start}}

/* =========================================================
   REIMS v18 · Mi Biblioteca + Panel administrativo
   - Borde gris permanente en Servicios de mi cuenta.
   - Mejora de jerarquia visual del panel administrativo.
   - Conserva identidad, paleta y acentos rojos laterales.
   ========================================================= */

/* Mi Biblioteca: las tarjetas muestran siempre la linea gris que antes
   solo se percibia con claridad durante la interaccion. */
.account-grid .account-card{
  border:1px solid #cbd5e1!important;
  box-shadow:0 6px 18px rgba(15,23,42,.045)!important;
}
.account-grid .account-card:hover,
.account-grid .account-card:focus-visible{
  border-color:#94a3b8!important;
  box-shadow:0 13px 28px rgba(15,23,42,.09)!important;
  transform:translateY(-3px);
}
.account-grid .account-card-red:hover,
.account-grid .account-card-red:focus-visible{
  border-color:rgba(209,25,33,.58)!important;
}
.account-grid .account-card:focus-visible{
  outline:3px solid rgba(0,48,87,.16)!important;
  outline-offset:2px!important;
}

/* Panel administrativo: encabezados de seccion mas faciles de escanear.
   El unico acento rojo es lateral, consistente con el resto del proyecto. */
.admin-main .admin-heading-row{
  position:relative;
  align-items:flex-start!important;
  margin-top:.15rem;
  margin-bottom:1.2rem!important;
  padding:.18rem 0 .18rem 1rem;
  border-left:4px solid #D11921;
}
.admin-main .admin-heading-row .admin-heading{
  color:#003057!important;
  letter-spacing:-.015em;
}
.admin-main .admin-heading-row .admin-copy{
  max-width:850px;
}

/* Caja de seguridad: borde gris visible y azul lateral. */
.admin-main .admin-security{
  border:1px solid #cbd5e1!important;
  border-left:4px solid #003057!important;
  box-shadow:0 8px 22px rgba(0,48,87,.055)!important;
}
.admin-main .admin-security-icon{
  background:#eef5f8!important;
  color:#003057!important;
  box-shadow:inset 0 0 0 1px rgba(0,48,87,.08);
}

/* Operaciones frecuentes: botones mas definidos, sin cambiar estructura. */
.admin-main .admin-quick{
  gap:.8rem!important;
  margin-bottom:1.8rem!important;
}
.admin-main .admin-quick a{
  min-height:76px!important;
  border:1px solid #cbd5e1!important;
  background:#fff!important;
  box-shadow:0 7px 20px rgba(0,48,87,.045)!important;
}
.admin-main .admin-quick a span:first-child{
  width:2.25rem;
  height:2.25rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 2.25rem;
  border-radius:.65rem;
  background:#eef5f8;
  box-shadow:inset 0 0 0 1px rgba(0,48,87,.08);
}
.admin-main .admin-quick a:hover,
.admin-main .admin-quick a:focus-visible{
  border-color:#003057!important;
  color:#003057!important;
  box-shadow:0 12px 26px rgba(0,48,87,.10)!important;
}
.admin-main .admin-quick a:focus-visible{
  outline:3px solid rgba(209,25,33,.15)!important;
  outline-offset:2px!important;
}

/* Modulos: borde gris permanente, mejor separacion y acento lateral al interactuar. */
.admin-main .admin-grid{
  gap:1.05rem!important;
}
.admin-main .admin-card{
  position:relative;
  overflow:hidden;
  border:1px solid #cbd5e1!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(0,48,87,.05)!important;
}
.admin-main .admin-card:hover,
.admin-main .admin-card:focus-visible{
  border-color:#94a3b8!important;
  border-left:4px solid #D11921!important;
  padding-left:calc(1.15rem - 3px)!important;
  box-shadow:0 16px 32px rgba(0,48,87,.10)!important;
}
.admin-main .admin-card:focus-visible{
  outline:3px solid rgba(0,48,87,.15)!important;
  outline-offset:2px!important;
}
.admin-main .admin-card-icon{
  border:1px solid rgba(0,48,87,.08);
}
.admin-main .admin-card:nth-child(even) .admin-card-icon{
  border-color:rgba(209,25,33,.10);
}
.admin-main .admin-card h2{
  color:#003057!important;
  line-height:1.25;
}
.admin-main .admin-card ul{
  padding-top:.1rem;
}
.admin-main .admin-card-link{
  display:inline-flex;
  align-items:center;
  gap:.28rem;
  color:#003057!important;
}
.admin-main .admin-card:hover .admin-card-link,
.admin-main .admin-card:focus-visible .admin-card-link{
  color:#D11921!important;
}

/* Bloque tecnico Koha: mismo lenguaje del panel, con mejor contraste. */
.admin-main .koha-admin-integration{
  border:1px solid #cbd5e1!important;
  border-left:4px solid #003057!important;
  box-shadow:0 9px 26px rgba(0,48,87,.06)!important;
}
.admin-main .koha-admin-links a{
  border-color:#cbd5e1!important;
  background:#f8fafc!important;
  transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease;
}
.admin-main .koha-admin-links a:hover,
.admin-main .koha-admin-links a:focus-visible{
  transform:translateY(-2px);
  border-color:#003057!important;
  background:#eef5f8!important;
  box-shadow:0 8px 18px rgba(0,48,87,.08);
}

/* Mantiene los bloques azules principales como focos visuales del panel. */
.admin-main .admin-extra{
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 14px 34px rgba(0,48,87,.16)!important;
}
.admin-main .admin-tag{
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(255,255,255,.20)!important;
}

@media(max-width:700px){
  .admin-main .admin-heading-row{
    padding-left:.8rem;
  }
  .admin-main .admin-quick a{
    min-height:70px!important;
  }
  .admin-main .admin-card:hover,
  .admin-main .admin-card:focus-visible{
    padding-left:calc(1.15rem - 3px)!important;
  }
}


/* =========================================================
   REIMS v19 · Mi Biblioteca con jerarquía visual de Administrador
   Conserva funciones, enlaces y estructura funcional.
   ========================================================= */
.account-main .account-section{
  padding:3.25rem 0!important;
}

/* Encabezado de Servicios: misma lectura visual del Panel administrativo. */
.account-main .account-heading-row{
  position:relative;
  margin-bottom:1.2rem;
  padding:.18rem 0 .18rem 1rem;
  border-left:4px solid #D11921;
}
.account-main .account-heading-row .account-section-title{
  color:#003057!important;
  font-weight:850!important;
  letter-spacing:-.015em;
}
.account-main .account-heading-row .account-section-copy{
  max-width:850px!important;
  margin-top:.48rem!important;
}

/* Tarjetas de servicios: mismo peso, borde y sombra que los módulos admin. */
.account-main .account-grid{
  gap:1rem!important;
  margin-top:1.35rem!important;
}
.account-main .account-grid .account-card{
  min-height:235px!important;
  padding:1.15rem!important;
  border:1px solid #cbd5e1!important;
  border-radius:1rem!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(15,23,42,.045)!important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease!important;
}
.account-main .account-grid .account-card:hover,
.account-main .account-grid .account-card:focus-visible{
  transform:translateY(-3px)!important;
  border-color:rgba(0,48,87,.45)!important;
  box-shadow:0 16px 30px rgba(15,23,42,.09)!important;
}
.account-main .account-grid .account-card-red:hover,
.account-main .account-grid .account-card-red:focus-visible{
  border-color:rgba(209,25,33,.58)!important;
}
.account-main .account-grid .account-card-icon{
  width:2.75rem!important;
  height:2.75rem!important;
  flex:0 0 2.75rem!important;
  margin-bottom:.85rem!important;
  border-radius:.8rem!important;
  background:#eef5f8!important;
  color:#003057!important;
  box-shadow:inset 0 0 0 1px rgba(0,48,87,.08)!important;
  font-size:1.35rem!important;
}
.account-main .account-grid .account-card-red .account-card-icon{
  background:#fff0f1!important;
  color:#D11921!important;
  box-shadow:inset 0 0 0 1px rgba(209,25,33,.08)!important;
}
.account-main .account-grid .account-card h2{
  color:#0f172a!important;
  font-size:1.08rem!important;
  font-weight:850!important;
}
.account-main .account-grid .account-card p{
  margin:.45rem 0 .9rem!important;
  color:#64748b!important;
  font-size:.85rem!important;
  line-height:1.55!important;
}
.account-main .account-grid .account-card-link{
  margin-top:auto!important;
  color:#003057!important;
  font-size:.82rem!important;
  font-weight:850!important;
}
.account-main .account-grid .account-card:hover .account-card-link,
.account-main .account-grid .account-card:focus-visible .account-card-link{
  color:#D11921!important;
}

/* Aviso de seguridad: mismo patrón informativo del panel administrativo. */
.account-main .account-note{
  display:flex!important;
  align-items:flex-start!important;
  gap:.9rem!important;
  margin-top:1.5rem!important;
  padding:1rem 1.05rem!important;
  border:1px solid #cbd5e1!important;
  border-left:4px solid #003057!important;
  border-radius:.85rem!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(0,48,87,.055)!important;
}
.account-main .account-note-icon{
  width:2.2rem!important;
  height:2.2rem!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 2.2rem!important;
  border-radius:.65rem!important;
  background:#eef5f8!important;
  color:#003057!important;
  box-shadow:inset 0 0 0 1px rgba(0,48,87,.08)!important;
  font-size:1.05rem!important;
  line-height:1!important;
}
.account-main .account-note strong{
  color:#0f172a!important;
  font-size:.91rem!important;
  font-weight:850!important;
}
.account-main .account-note p{
  margin:.2rem 0 0!important;
  color:#475569!important;
  font-size:.83rem!important;
  line-height:1.55!important;
}

/* Ayuda: módulo definido, con acento lateral y botones equivalentes a accesos rápidos. */
.account-main .account-help{
  padding:0 0 4rem!important;
}
.account-main .account-help-box{
  padding:1.2rem!important;
  border:1px solid #cbd5e1!important;
  border-left:4px solid #D11921!important;
  border-radius:1rem!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(0,48,87,.055)!important;
}
.account-main .account-help-heading{
  min-width:min(100%,520px);
}
.account-main .account-help-heading .account-section-title{
  color:#003057!important;
  font-weight:850!important;
  padding:0!important;
  border:0!important;
}
.account-main .account-help-actions{
  gap:.65rem!important;
}
.account-main .account-help-link{
  min-height:44px!important;
  padding:.72rem .95rem!important;
  border:1px solid #cbd5e1!important;
  border-radius:.75rem!important;
  background:#fff!important;
  color:#003057!important;
  font-weight:800!important;
  box-shadow:0 5px 14px rgba(0,48,87,.035)!important;
  transition:.18s ease!important;
}
.account-main .account-help-link:hover,
.account-main .account-help-link:focus-visible{
  border-color:#003057!important;
  background:#eef5f8!important;
  color:#003057!important;
  transform:translateY(-1px)!important;
  box-shadow:0 8px 18px rgba(0,48,87,.08)!important;
}

/* Botones principales de Mi Biblioteca: sombras y respuesta como Administrador. */
.account-main .account-btn{
  box-shadow:0 10px 25px rgba(0,0,0,.14)!important;
}
.account-main .account-btn:hover,
.account-main .account-btn:focus-visible{
  transform:translateY(-2px)!important;
}

@media(max-width:700px){
  .account-main .account-section{padding:2.4rem 0!important}
  .account-main .account-heading-row{padding-left:.85rem}
  .account-main .account-grid .account-card{min-height:0!important}
  .account-main .account-note{padding:.9rem!important}
  .account-main .account-help-box{align-items:flex-start!important}
}


/* =========================================================
   REIMS v20 · Agenda/Eventos mejorada en la página Inicio
   Mantiene la identidad azul/rojo y la carga automática.
   ========================================================= */
.home-agenda-section{position:relative}
.home-agenda-shell{
  padding:1.15rem;
  border:1px solid #d8e1e8;
  border-radius:1.15rem;
  background:#fff;
  box-shadow:0 10px 30px rgba(0,48,87,.055);
}
.home-agenda-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.25rem;
  margin-bottom:1.25rem;
  padding:.2rem .2rem .95rem .85rem;
  border-left:4px solid #D11921;
}
.home-agenda-heading-group{display:flex;align-items:flex-start;gap:.9rem;min-width:0}
.home-agenda-heading-icon{
  width:2.75rem;height:2.75rem;flex:0 0 2.75rem;
  display:flex;align-items:center;justify-content:center;
  border-radius:.85rem;background:#eef5f8;color:#003057;font-size:1.25rem;
  border:1px solid #d8e1e8;
}
.home-agenda-kicker{margin-top:.05rem}
.home-agenda-header h2{color:#003057!important;font-weight:850!important;line-height:1.15}
.home-agenda-link{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  min-height:42px;padding:.58rem .82rem;border-radius:.72rem;
  border:1px solid #003057;background:#003057;color:#fff;
  font-size:.78rem;font-weight:850;white-space:nowrap;
  box-shadow:0 6px 18px rgba(0,48,87,.12);transition:.18s ease;
}
.home-agenda-link:hover,.home-agenda-link:focus-visible{
  background:#00486B;border-color:#00486B;transform:translateY(-1px);
  box-shadow:0 9px 22px rgba(0,48,87,.17);outline:none;
}
.home-agenda-grid{align-items:stretch}
.home-agenda-card{
  position:relative;min-width:0;height:100%;
  border:1px solid #cbd5e1!important;
  box-shadow:0 8px 22px rgba(15,23,42,.045);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
  overflow:hidden;
}
.home-agenda-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#003057;
}
.home-agenda-card-red::before{background:#D11921}
.home-agenda-card-blue::before{background:#003057}
.home-agenda-card:hover{
  transform:translateY(-2px);border-color:rgba(0,48,87,.32)!important;
  box-shadow:0 14px 30px rgba(0,48,87,.09);
}
.home-agenda-card-red:hover{border-color:rgba(209,25,33,.42)!important}
.home-agenda-date{flex:0 0 4rem}
.home-agenda-month{letter-spacing:.04em;box-shadow:0 4px 10px rgba(15,23,42,.07)}
.home-agenda-day{background:#fff;color:#003057;border-color:#d8e1e8!important;line-height:1.05}
.home-agenda-content{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.home-agenda-type{
  display:inline-flex;align-items:center;min-height:24px;padding:.22rem .48rem;
  border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;
  line-height:1.1;
}
.home-agenda-title{color:#0f172a!important;font-size:.96rem;line-height:1.35;font-weight:800!important}
.home-agenda-meta{line-height:1.45}

@media(max-width:767px){
  .home-agenda-section{padding-left:1rem!important;padding-right:1rem!important}
  .home-agenda-shell{padding:.9rem;border-radius:1rem}
  .home-agenda-header{align-items:flex-start;flex-direction:column;padding-left:.72rem;gap:.8rem}
  .home-agenda-heading-icon{width:2.5rem;height:2.5rem;flex-basis:2.5rem;font-size:1.1rem}
  .home-agenda-link{width:100%}
  .home-agenda-card{padding:1rem!important}
}


/* =========================================================
   REIMS v20 · Agenda/Eventos funcional y visualmente mejorada
   ========================================================= */
.agenda-page-pro{background:#f8fafc}
.agenda-calendar-section{background:linear-gradient(180deg,#f8fafc 0%,#f3f6f8 100%)}
.agenda-upcoming-section{background:#fff;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}
.agenda-bulletin-section{background:#f8fafc}
.agenda-section-heading-pro{display:flex;align-items:flex-start;gap:.9rem;padding-left:1rem;border-left:4px solid #D11921;margin-bottom:1.15rem}
.agenda-section-icon{width:2.7rem;height:2.7rem;flex:0 0 2.7rem;display:flex;align-items:center;justify-content:center;border-radius:.8rem;background:#fff0f1;color:#D11921;font-size:1.25rem;box-shadow:0 6px 18px rgba(15,23,42,.045);border:1px solid #f3d3d6}
.agenda-section-icon-blue{background:#eef5f8;color:#003057;border-color:#d7e5ec}
.agenda-section-kicker{font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.075em;color:#D11921;margin:0 0 .18rem}
.agenda-tools{display:grid;grid-template-columns:minmax(240px,1fr) minmax(170px,220px) auto auto;gap:.6rem;align-items:center;margin:1rem 0 .8rem;padding:.8rem;border:1px solid #cbd5e1;border-radius:1rem;background:#fff;box-shadow:0 8px 24px rgba(0,48,87,.055)}
.agenda-search-field{position:relative;display:flex;align-items:center}.agenda-search-field>span{position:absolute;left:.75rem;color:#003057;font-size:1.1rem;font-weight:800;pointer-events:none}.agenda-search-field input,.agenda-select-field select{width:100%;height:44px;border:1px solid #cbd5e1;border-radius:.72rem;background:#fff;color:#0f172a;font-size:.84rem;font-weight:650;outline:none}.agenda-search-field input{padding:.55rem .8rem .55rem 2.25rem}.agenda-select-field select{padding:.55rem .75rem}.agenda-search-field input:focus,.agenda-select-field select:focus{border-color:#003057;box-shadow:0 0 0 3px rgba(0,48,87,.10)}
.agenda-tool-button{height:44px;padding:0 1rem;border:1px solid #003057;border-radius:.72rem;background:#003057;color:#fff;font-size:.78rem;font-weight:850;transition:.18s ease}.agenda-tool-button:hover,.agenda-tool-button:focus-visible{background:#00486B;transform:translateY(-1px)}.agenda-tool-button-secondary{background:#fff;color:#003057}.agenda-tool-button-secondary:hover,.agenda-tool-button-secondary:focus-visible{background:#eef5f8}
.agenda-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:.85rem}.agenda-stat-card{display:flex;align-items:baseline;gap:.55rem;padding:.65rem .8rem;border:1px solid #d8e1e8;border-radius:.75rem;background:#fff}.agenda-stat-card strong{font-size:1.12rem;color:#003057}.agenda-stat-card span{font-size:.72rem;font-weight:750;color:#64748b}
.calendar-wrap-pro{max-width:none;margin-top:0;border-color:#cbd5e1;box-shadow:0 12px 30px rgba(0,48,87,.07)}
.calendar-toolbar-pro{background:linear-gradient(135deg,#003057 0%,#00486B 100%);border-bottom:0;padding:.8rem 1rem;color:#fff}.calendar-toolbar-pro .calendar-nav-button{width:2.35rem;height:2.35rem;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.10);color:#fff}.calendar-toolbar-pro .calendar-nav-button:hover{background:#D11921;border-color:#D11921}.calendar-toolbar-center{text-align:center}.calendar-toolbar-label{display:block;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:rgba(255,255,255,.72);margin-bottom:.08rem}.calendar-toolbar-pro .calendar-month{font-size:1.05rem;color:#fff}
.calendar-grid-pro .calendar-weekday{background:#eef3f6;color:#003057;border-color:#d8e1e8;padding:.58rem .35rem}.calendar-day-pro{position:relative;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease;outline:none;min-height:102px}.calendar-day-pro:hover,.calendar-day-pro:focus-visible{background:#f5f9fb;box-shadow:inset 0 0 0 2px rgba(0,48,87,.18)}.calendar-day-pro.is-selected{background:#eef5f8;box-shadow:inset 0 0 0 2px #003057}.calendar-day-pro.is-outside{opacity:.62}.calendar-day-top{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.calendar-event-count{min-width:1.3rem;height:1.3rem;padding:0 .28rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#003057;color:#fff;font-size:.58rem;font-weight:850}.calendar-day.is-today .calendar-event-count{background:#D11921}.calendar-event-list{display:grid;gap:.18rem;margin-top:.25rem}.calendar-event{width:100%;display:block;text-align:left;margin:0;padding:.24rem .32rem;border:1px solid #d5e4eb;border-left:3px solid #003057;border-radius:.38rem;background:#eef5f8;color:#003057;font-size:.59rem;line-height:1.25;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event:hover,.calendar-event:focus-visible{background:#003057;color:#fff;border-color:#003057;outline:none}.calendar-more{font-size:.55rem;font-weight:800;color:#64748b;padding-left:.2rem}
.agenda-selected-day{margin-top:.85rem;padding:1rem;border:1px solid #cbd5e1;border-left:4px solid #D11921;border-radius:1rem;background:#fff;box-shadow:0 8px 24px rgba(0,48,87,.05)}.agenda-selected-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.agenda-selected-head h3{font-size:1.05rem;font-weight:850;color:#003057;text-transform:capitalize}.agenda-count-badge{display:inline-flex;align-items:center;padding:.32rem .55rem;border-radius:999px;background:#eef5f8;border:1px solid #d7e5ec;color:#003057;font-size:.66rem;font-weight:850;white-space:nowrap}.agenda-selected-events{display:grid;gap:.55rem;margin-top:.75rem}.agenda-selected-event{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border:1px solid #d8e1e8;border-radius:.78rem;background:#f8fafc}.agenda-selected-content{min-width:0}.agenda-selected-content h4{font-size:.86rem;font-weight:850;color:#0f172a;margin:.28rem 0 .18rem}.agenda-selected-empty{display:flex;align-items:center;gap:.65rem;color:#64748b;font-size:.8rem;padding:.7rem}.agenda-selected-empty-icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#eef5f8;color:#003057;font-weight:900}
.agenda-upcoming-pro{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.agenda-event-card-pro{display:flex;flex-direction:column;min-height:245px;padding:1rem;border:1px solid #cbd5e1;box-shadow:0 8px 22px rgba(0,48,87,.05);transition:.18s ease}.agenda-event-card-pro:hover{border-color:rgba(0,48,87,.38);box-shadow:0 14px 30px rgba(0,48,87,.10);transform:translateY(-2px)}.agenda-event-card-head{display:flex;gap:.7rem;align-items:flex-start}.agenda-date-box{width:3.15rem;flex:0 0 3.15rem;overflow:hidden;border-radius:.72rem;background:#003057;color:#fff;text-align:center;box-shadow:0 5px 14px rgba(0,48,87,.16)}.agenda-date-day{display:block;padding:.34rem .2rem .18rem;font-size:1.18rem;font-weight:900;line-height:1}.agenda-date-month{display:block;padding:.22rem .2rem;background:#D11921;font-size:.57rem;font-weight:900;letter-spacing:.06em}.agenda-event-card-title{min-width:0}.agenda-event-card-title .agenda-event-title{margin-top:.36rem;color:#003057;line-height:1.25}.agenda-type-badge{display:inline-flex;align-items:center;padding:.26rem .48rem;border-radius:999px;background:#eef5f8;border:1px solid #d7e5ec;color:#003057;font-size:.61rem;font-weight:850}.agenda-event-card-meta{display:grid;gap:.34rem;margin-top:.85rem;padding:.65rem;border-radius:.7rem;background:#f8fafc;border:1px solid #edf1f4}.agenda-event-card-meta p{display:flex;align-items:center;gap:.45rem;color:#475569;font-size:.74rem}.agenda-meta-icon{width:1.15rem;color:#D11921;font-weight:900}.agenda-event-card-pro .agenda-event-desc{flex:1;margin-top:.7rem}.agenda-event-card-actions{display:flex;gap:.45rem;margin-top:.85rem}.agenda-action-primary,.agenda-action-secondary,.agenda-event-action{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.45rem .65rem;border-radius:.62rem;font-size:.68rem;font-weight:850;transition:.16s ease}.agenda-action-primary{background:#003057;color:#fff;border:1px solid #003057}.agenda-action-primary:hover,.agenda-action-primary:focus-visible{background:#00486B}.agenda-action-secondary,.agenda-event-action{background:#fff;color:#003057;border:1px solid #cbd5e1}.agenda-action-secondary:hover,.agenda-event-action:hover,.agenda-action-secondary:focus-visible,.agenda-event-action:focus-visible{border-color:#003057;background:#eef5f8}.agenda-empty-card{align-items:flex-start;justify-content:center}.agenda-empty-icon{font-size:1.5rem;margin-bottom:.5rem}
.bulletin-grid-pro{margin-top:1rem}.bulletin-card-pro{border:1px solid #cbd5e1!important;box-shadow:0 8px 22px rgba(0,48,87,.05)!important}.publisher-note-pro{display:flex;align-items:flex-start;gap:.7rem;border-left:4px solid #003057!important;background:#eef5f8!important}.publisher-note-pro p{margin:.2rem 0 0}.publisher-note-icon{width:2rem;height:2rem;flex:0 0 2rem;display:flex;align-items:center;justify-content:center;border-radius:.6rem;background:#003057;color:#fff;font-weight:900}
.agenda-event-dialog{width:min(620px,calc(100vw - 1.25rem));max-height:calc(100dvh - 2rem);padding:0;border:0;border-radius:1rem;background:transparent;overflow:visible}.agenda-event-dialog::backdrop{background:rgba(0,18,34,.66);backdrop-filter:blur(2px)}.agenda-dialog-card{position:relative;padding:1.25rem;border-radius:1rem;background:#fff;border-top:4px solid #D11921;box-shadow:0 24px 70px rgba(0,0,0,.30)}.agenda-dialog-close{position:absolute;right:.8rem;top:.7rem;width:2.15rem;height:2.15rem;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:1.25rem;line-height:1}.agenda-dialog-close:hover{background:#f1f5f9;color:#003057}.agenda-dialog-date{font-size:.7rem;text-transform:capitalize;font-weight:850;color:#D11921;padding-right:2.5rem}.agenda-dialog-title-row{margin-top:.45rem}.agenda-dialog-title-row h2{font-size:1.35rem;line-height:1.25;font-weight:900;color:#003057;margin-top:.48rem;padding-right:2rem}.agenda-dialog-meta{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1rem}.agenda-dialog-meta p{display:grid;grid-template-columns:auto 1fr;gap:.12rem .42rem;padding:.65rem;border:1px solid #e2e8f0;border-radius:.7rem;background:#f8fafc;color:#475569;font-size:.76rem}.agenda-dialog-meta p>span:first-child{grid-row:1/3;color:#D11921;font-weight:900}.agenda-dialog-meta strong{color:#003057}.agenda-dialog-description{margin-top:1rem;color:#475569;font-size:.84rem;line-height:1.65}.agenda-dialog-actions{display:flex;gap:.55rem;margin-top:1.15rem;padding-top:.85rem;border-top:1px solid #e2e8f0}
@media(max-width:900px){.agenda-tools{grid-template-columns:1fr 1fr}.agenda-search-field{grid-column:1/-1}.agenda-upcoming-pro{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.agenda-section{padding:2.5rem 0}.agenda-section-heading-pro{padding-left:.75rem}.agenda-tools{grid-template-columns:1fr 1fr;padding:.65rem}.agenda-select-field{grid-column:1/-1}.agenda-stats{grid-template-columns:1fr}.agenda-stat-card{justify-content:space-between}.calendar-day-pro{min-height:68px}.calendar-event-list{display:none}.calendar-event-count{font-size:.55rem}.calendar-toolbar-pro{padding:.65rem}.agenda-selected-head{flex-direction:column;gap:.45rem}.agenda-selected-event{align-items:flex-start;flex-direction:column}.agenda-event-action{width:100%}.agenda-upcoming-pro{grid-template-columns:1fr}.agenda-event-card-pro{min-height:0}.agenda-dialog-meta{grid-template-columns:1fr}.agenda-dialog-actions{flex-direction:column}.agenda-dialog-actions>*{width:100%}.agenda-event-dialog{max-height:calc(100dvh - 1rem)}}
@media(max-width:420px){.agenda-tools{grid-template-columns:1fr}.agenda-search-field,.agenda-select-field{grid-column:auto}.agenda-tool-button{width:100%}.calendar-weekday{font-size:.55rem!important}.calendar-day-pro{min-height:58px;padding:.25rem!important}.calendar-number{width:1.25rem!important;height:1.25rem!important}.calendar-event-count{min-width:1.15rem;height:1.15rem}.agenda-event-card-actions{flex-direction:column}.agenda-event-card-actions>*{width:100%}}

/* Integración Inicio → Agenda: tarjetas de eventos navegables. */
#homeAgendaEvents a.home-agenda-card{text-decoration:none;color:inherit}
#homeAgendaEvents a.home-agenda-card:focus-visible{outline:3px solid rgba(0,48,87,.20);outline-offset:3px}
