/* IGD Lightbox – full viewport immersive layout like LightGallery */

.igd-lb-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 15, 15, 0.95);
  opacity: 0;
  transition: opacity 0.25s ease-in-out;
  overflow: hidden;

  &.igd-open {
    opacity: 1;
  }
}

.igd-lb-shell {
  position: relative;
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

/* Header Bar */
.igd-lb-header {
  width: 100%;
  height: 48px;
  background: rgba(0, 0, 0, 0.9);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
  z-index: 15;
  box-sizing: border-box;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  margin-bottom: auto;
}

.igd-lb-fileinfo {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #fff;
  font-weight: 500;
  max-width: 60%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  .item-name {
    display: flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    font-size: 14px;

    img {
      width: 18px;
      height: 18px;
      object-fit: contain;
    }

    span {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
  }

}

.igd-lb-controls {
  display: flex;
  align-items: center;
  gap: 6px;

  .igd-lb-btn {
    background: transparent;
    border: none;
    color: #fff;
    font-size: 15px;
    padding: 5px 8px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s;

    &:hover {
      background: rgba(255, 255, 255, 0.2);
    }
  }
}

/* Adjust stage to start below header */
.igd-lb-stage {
  position: absolute;
  top: 48px;
  left: 0;
  right: 0;
  bottom: 77px; /* space for thumbnails */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;

  img,
  video,
  iframe {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
    z-index: 2;
  }

  iframe {
    width: 100%;
    height: 100%;
    border: none;
  }

}

/* Controls */
.igd-lb-controls {
  display: flex;
  gap: 8px;
  z-index: 20;

  .igd-lb-btn {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    border: none;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s ease-in-out;

    &:hover {
      background: rgba(255, 255, 255, 0.2);
    }
  }

  .lg-download {
    margin-left: 6px;
  }
}

/* Caption */
.igd-lb-caption {
  position: absolute;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  color: #eee;
  font-size: 15px;
  text-align: center;
  line-height: 1.4;
  padding: 8px 14px;
  background: rgba(0, 0, 0, 0.45);
  border-radius: 8px;
  max-width: 90%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Navigation Arrows */
.igd-lb-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08) !important;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  z-index: 15;
  transition: background 0.2s ease;
  padding: 0 !important;

  &:hover {
    background: rgba(255, 255, 255, 0.25);
  }

  &.left {
    left: 20px;
  }

  &.right {
    right: 20px;
  }
}

/* Thumbnail bar */
.igd-lb-thumbbar {
  position: absolute;
  bottom: 0;
  width: 100%;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 8px 10px;
  background: rgba(0, 0, 0, 0.85);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  box-sizing: border-box;
  z-index: 12;
  justify-content: center;

  .igd-lb-thumb {
    width: 80px;
    height: 60px;
    object-fit: cover;
    border-radius: 4px;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.25s, transform 0.25s;

    &:hover {
      opacity: 1;
      transform: scale(1.05);
    }

    &.active {
      outline: 2px solid #fff;
      opacity: 1;
    }
  }
}

/* Zoom behavior */
.igd-lb-zoom {
  cursor: zoom-in;

  &:active {
    cursor: grabbing;
  }
}

/* Loader Overlay */
.igd-lb-loader {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 10, 10, 0.6);
  opacity: 1;
  transition: opacity 0.3s ease;

  &.hide {
    opacity: 0;
    pointer-events: none;
  }

  .igd-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid rgba(255, 255, 255, 0.2);
    border-top-color: #fff;
    border-radius: 50%;
    animation: igd-spin 1s linear infinite;
  }
}

@keyframes igd-spin {
  to {
    transform: rotate(360deg);
  }
}


/* Responsive */
@media (max-width: 768px) {
  .igd-lb-thumbbar {
    .igd-lb-thumb {
      width: 60px;
      height: 40px;
    }
  }

  .igd-lb-controls {
    top: 10px;
    right: 10px;

    .igd-lb-btn {
      padding: 6px 8px;
      font-size: 13px;
    }
  }

  .igd-lb-caption {
    bottom: 52px;
    font-size: 13px;
  }
}
