/* Filtro para vista interna classroom*/
.view-mycourses #sp-top-bar{
    display: none;
}

.view-mycourses #sp-header{
    display: none;
}

.view-mycourses #sp-main-body {
    padding: 0px 0 100px 0;
}

.view-lesson #sp-top-bar{
    display: none;
}

.view-lesson #sp-header{
    display: none;
}

.view-lesson #sp-main-body{
    padding: 0px 0 100px 0;
}


.psRoutesSection {
  width: 100%;
  min-height: 190px;
  background: #ffffff;
  padding: 28px 42px;
  box-sizing: border-box;
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
  color: #111827;
  position: relative;
  overflow: hidden;
}

/* Fondo blanco con detalle muy sutil tipo consola */
.psRoutesSection::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 10% 0%, rgba(0, 112, 255, 0.08), transparent 28%),
    radial-gradient(circle at 80% 10%, rgba(0, 112, 255, 0.045), transparent 30%);
  pointer-events: none;
}

.psRoutesHeader {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 20px;
}

.psRoutesHeader h2 {
  margin: 0;
  font-size: 23px;
  line-height: 1;
  font-weight: 800;
  color: #07111f;
  letter-spacing: -0.03em;
}

.psRoutesLink {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #4b5563;
  font-size: 13px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: color 0.2s ease;
}

.psRoutesLink span {
  font-size: 18px;
  line-height: 1;
  text-decoration: none;
  transition: transform 0.2s ease;
}

.psRoutesLink:hover {
  color: #006fdd;
}

.psRoutesLink:hover span {
  transform: translateX(3px);
}

.psRoutesContent {
  position: relative;
  z-index: 2;
}

.psRouteCard {
  width: 380px;
  height: 88px;
  border-radius: 11px;
  background: #1c2129;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  cursor: pointer;
  box-shadow:
    0 12px 26px rgba(15, 23, 42, 0.10),
    0 1px 0 rgba(255, 255, 255, 0.45) inset;
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    background 0.22s ease;
}

.psRouteCard:hover {
  transform: translateY(-4px);
  background: #202733;
  box-shadow:
    0 20px 44px rgba(15, 23, 42, 0.18),
    0 0 0 1px rgba(0, 112, 255, 0.16);
}

.psRouteImageArea {
  width: 106px;
  height: 100%;
  background: linear-gradient(135deg, #292d38, #242833);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.psRouteImage {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  overflow: hidden;
  background:
    radial-gradient(circle at 40% 25%, #0b6cff 0%, #043b8f 42%, #020817 100%);
  box-shadow:
    0 8px 20px rgba(0, 0, 0, 0.32),
    0 0 22px rgba(0, 112, 255, 0.22);
  transition: transform 0.22s ease;
}

.psRouteImage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* En caso de que no cargue imagen, se mantiene el círculo azul */
.psRouteImage img[src=""] {
  display: none;
}

.psRouteCard:hover .psRouteImage {
  transform: scale(1.07);
}

.psRouteInfo {
  flex: 1;
  padding: 19px 16px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.psRouteInfo h3 {
  margin: 0 0 11px 0;
  color: #ffffff;
  font-size: 14px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.psRouteMeta {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #b5c6d9;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

.psRouteDivider {
  width: 1px;
  height: 12px;
  background: rgba(181, 198, 217, 0.24);
}

/* Tablet */
@media (max-width: 768px) {
  .psRoutesSection {
    padding: 26px 24px;
  }

  .psRouteCard {
    width: 100%;
    max-width: 380px;
  }
}

/* Celular */
@media (max-width: 480px) {
  .psRoutesSection {
    padding: 24px 18px;
    min-height: 175px;
  }

  .psRoutesHeader {
    margin-bottom: 18px;
  }

  .psRoutesHeader h2 {
    font-size: 22px;
  }

  .psRouteCard {
    width: 100%;
    height: 86px;
  }

  .psRouteImageArea {
    width: 96px;
  }

  .psRouteInfo {
    padding: 17px 14px;
  }

  .psRouteMeta {
    font-size: 11.5px;
    gap: 7px;
  }
}

























.logo-image {
    height: 50px !important;
}





































/* =========================================================
   WHITE STAR TOP ACTIONS - JOOMLA / HELIX
========================================================= */

/* Contenedor específico del módulo */
#sp-header #sp-menu .sp-module:has(.wsTopActions) {
  margin-left: 24px !important;
  margin-right: 40px !important;
  padding: 0 !important;
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  background: transparent !important;
  overflow: visible !important;
}

/* Evita que Helix corte los dropdowns */
#sp-header,
#sp-header .container,
#sp-header .container-inner,
#sp-header #sp-menu,
#sp-header #sp-menu .sp-column,
#sp-header #sp-menu .sp-module,
#sp-header #sp-menu .sp-module-content,
.sp-megamenu-wrapper {
  overflow: visible !important;
}

/* Toolbar principal */
.wsTopActions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 14px !important;
  position: relative !important;
  z-index: 999999 !important;
  width: auto !important;
  height: 48px !important;
}

.wsTopActions,
.wsTopActions * {
  box-sizing: border-box;
}

.wsTopActions__item {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
}

/* Botones */
.wsTopActions__btn {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  border: none !important;
  outline: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background-color: transparent !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: background 0.25s ease, transform 0.25s ease;
  overflow: visible !important;
}

.wsTopActions__btn:hover {
  background-color: rgba(0, 112, 243, 0.10) !important;
  transform: translateY(-1px);
}

/* =========================================================
   ICONO MI CURSO - CSS PURO
========================================================= */

.wsTopActions__course {
  position: relative !important;
  background-image: linear-gradient(#111827, #111827) !important;
  background-size: 2px 22px !important;
  background-repeat: no-repeat !important;
  background-position: calc(50% - 6px) center !important;
}

.wsTopActions__course::before {
  content: "" !important;
  width: 22px !important;
  height: 26px !important;
  border: 2px solid #111827 !important;
  border-radius: 5px 8px 8px 5px !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  background: transparent !important;
  box-sizing: border-box !important;
  display: block !important;
}

.wsTopActions__course::after {
  content: "" !important;
  width: 10px !important;
  height: 2px !important;
  background: #111827 !important;
  border-radius: 10px !important;
  position: absolute !important;
  left: 50% !important;
  top: 47% !important;
  transform: translate(-25%, -50%) !important;
  box-shadow: 0 6px 0 #111827 !important;
  display: block !important;
}

/* =========================================================
   ICONO ASISTENCIA - CSS PURO
========================================================= */

.wsTopActions__attendance {
  position: relative !important;
  overflow: visible !important;
  background-image:
    radial-gradient(circle, #111827 0 4px, transparent 4.5px),
    linear-gradient(#111827, #111827) !important;
  background-size:
    9px 9px,
    14px 2px !important;
  background-position:
    center 11px,
    center 25px !important;
  background-repeat: no-repeat !important;
}

.wsTopActions__attendance::before {
  content: "" !important;
  width: 25px !important;
  height: 25px !important;
  border: 2px solid #111827 !important;
  border-radius: 50% !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  background: transparent !important;
  box-sizing: border-box !important;
  display: block !important;
}

.wsTopActions__attendance::after {
  content: "✓" !important;
  position: absolute !important;
  right: 3px !important;
  bottom: 3px !important;
  width: 16px !important;
  height: 16px !important;
  background: #0070f3 !important;
  color: #ffffff !important;
  border-radius: 50% !important;
  font-size: 11px !important;
  line-height: 16px !important;
  text-align: center !important;
  font-weight: 800 !important;
  z-index: 5 !important;
  display: block !important;
}

/* =========================================================
   PERFIL
========================================================= */

.wsTopActions__profile {
  border: 2px solid #0070f3 !important;
  background: rgba(0, 112, 243, 0.08) !important;
  overflow: hidden !important;
}

.wsTopActions__profile img {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  display: block !important;
  background: #edf5ff !important;
}

/* =========================================================
   DROPDOWNS
========================================================= */

.wsTopActions__dropdown {
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: 0 !important;
  width: 270px !important;
  background: #ffffff !important;
  border-radius: 0 0 22px 22px !important;
  padding: 12px 0 !important;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.18) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(10px) !important;
  transition:
    opacity 0.22s ease,
    transform 0.22s ease,
    visibility 0.22s ease !important;
  z-index: 9999999 !important;
}

/* Estado abierto por JavaScript */
.wsTopActions__item.is-open .wsTopActions__dropdown {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

/* En escritorio también puede abrir con hover directo */
@media (hover: hover) and (pointer: fine) {
  .wsTopActions__item:hover .wsTopActions__dropdown {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }
}

/* Links del menú */
.wsTopActions__dropdown a {
  display: block !important;
  padding: 13px 22px !important;
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    padding-left 0.2s ease !important;
}

.wsTopActions__dropdown a:hover {
  background: #f3f7ff !important;
  color: #006ee6 !important;
  padding-left: 28px !important;
}

/* Dropdown de perfil */
.wsTopActions__profileDropdown {
  width: 300px !important;
}

.wsTopActions__profileHeader {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  padding: 18px 20px 16px !important;
  border-bottom: 1px solid #eef1f5 !important;
  margin-bottom: 6px !important;
}

.wsTopActions__avatar {
  width: 52px !important;
  height: 52px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #f2f5fb !important;
  border: 1px solid #dbe3ef !important;
  flex: 0 0 auto !important;
}

.wsTopActions__avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.wsTopActions__user {
  min-width: 0 !important;
}

.wsTopActions__user strong {
  display: block !important;
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  max-width: 190px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.wsTopActions__user span {
  display: block !important;
  margin-top: 4px !important;
  color: #6b7280 !important;
  font-size: 12px !important;
  font-style: normal !important;
  max-width: 190px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 768px) {
  #sp-header #sp-menu .sp-module:has(.wsTopActions) {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }

  .wsTopActions {
    gap: 8px !important;
  }

  .wsTopActions__btn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }

  .wsTopActions__course::before {
    width: 20px !important;
    height: 24px !important;
  }

  .wsTopActions__attendance::before {
    width: 23px !important;
    height: 23px !important;
  }

  .wsTopActions__dropdown {
    position: fixed !important;
    top: 72px !important;
    right: 12px !important;
    left: 12px !important;
    width: auto !important;
    border-radius: 0 0 22px 22px !important;
  }

  .wsTopActions__profileDropdown {
    width: auto !important;
  }
}