/* Skeleton Loader Styles */

/* Base skeleton animation */
@keyframes skeleton-loading {
  0% {
    background-position: -468px 0;
  }
  100% {
    background-position: 468px 0;
  }
}

/* Skeleton wrapper */
.skeleton-wrapper {
  position: relative;
}
.is-skeletonized{
  min-height: 30rem;
}

.skeleton-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  background-size: cover;
  background-attachment: fixed;
  z-index: 1000;
  overflow: hidden;
}

.skeleton-container {
  width: 100%;
  height: 100%;
}

.skeletonize-loose-height > .skeleton-overlay,
.skeletonize-loose-height > .skeleton-overlay > .skeleton-container{
  height: auto !important;
}

/* Base skeleton elements */
.skeleton-page{
  background-color: var(--public-bg);
  background-image: var(--public-bg-gradient);
  padding: 25px;
  height: 100%;
  min-height: 100vh;
}
.skeleton-panel{
  background: var(--panel-bg);
}
.skeleton-line,
.skeleton-rect,
.skeleton-circle {
  background: #dce4eb;
  background-image: linear-gradient(
    90deg,
    #dce4eb 0px,
    #f0f4f8 40px,
    #dce4eb 80px
  );
  background-size: 468px 100%;
  animation: skeleton-loading 1.8s infinite ease-in-out;
}
/* Skeleton line (text) */
.skeleton-line {
  height: 16px;
  margin-bottom: 10px;
  border-radius: 4px;
}
.skeleton-break{
  height: 16px;
  margin-bottom: 10px;
}
.skeleton-line.skeleton-title,
.skeleton-break.skeleton-title {
  height: 2.82rem;
  width: 70%;
  margin-bottom: 15px;
}
.skeleton-line.thick{
  height: 2.82rem;
  margin-bottom: 15px;
}
.skeleton-line.skeleton-title:only-child,
.skeleton-line.thick:only-child {
    margin-bottom: 0;
}
.skeleton-line.skeleton-short {
  width: 50%;
}

/* Skeleton rectangle */
.skeleton-rect {
  border-radius: 4px;
  margin-bottom: 10px;
}

.skeleton-rect.skeleton-image {
  width: 100%;
  height: 200px;
}

/* Skeleton circle */
.skeleton-circle {
  border-radius: 50%;
}

.skeleton-circle.skeleton-avatar {
  width: 40px;
  height: 40px;
}
.skeleton-circle.skeleton-avatar-small{
  width: 24px;
  height: 24px;
}
.skeleton-circle.skeleton-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  max-width: 300px;
  margin: 0 auto;
  margin-bottom: 10px;
}

/* Card template styles */
.skeleton-card {
  padding: 0;
}

.skeleton-card .skeleton-content {
  padding: 15px;
}

.skeleton-tile{
  background: white;
  border: 1px solid var(--line-color);
  border-radius: 4px;
  padding: 1rem;
  margin-bottom: 1rem;
}

/* List template styles */
.skeleton-list {
  padding: 0;
}

.skeleton-list-item {
  display: flex;
  align-items: center;
  padding: 15px;
  border-bottom: 1px solid #f0f0f0;
}

.skeleton-list-item.full-width {
  padding-left: 0;
  padding-right: 0;
}
.skeleton-list-item.line-style{
  border-bottom: none;
  margin-bottom: 10px;
  padding: 0;
}

.skeleton-list-item .skeleton-avatar,
.skeleton-list-item .skeleton-avatar-small {
  flex-shrink: 0;
  margin-right: 15px;
}

.skeleton-list-content {
  flex-grow: 1;
}

.skeleton-list-item .skeleton-line {
  margin-bottom: 8px;
}

.skeleton-list-item .skeleton-line:last-child,
.skeleton-list-item.line-style:last-child {
  margin-bottom: 0;
}

/* Profile template styles */
.skeleton-profile {
  text-align: center;
  padding: 20px;
}

.skeleton-profile .skeleton-profile-avatar {
  width: 100px;
  height: 100px;
  margin: 0 auto 20px;
}

.skeleton-profile .skeleton-line {
  margin: 0 auto 10px;
  max-width: 300px;
}

/* Table template styles */
.skeleton-table {
  width: 100%;
}

.skeleton-table-row {
  display: flex;
  gap: 15px;
  padding: 15px 0;
  border-bottom: 1px solid #f0f0f0;
}

.skeleton-table-header {
  border-bottom: 2px solid #e0e0e0;
}

.skeleton-table-row .skeleton-line {
  flex: 1;
  margin-bottom: 0;
}
.skeleton-table-row.skeleton-table-header .skeleton-line{
  height: 2.82rem;
}

/* Auto-generated skeleton spacing */
.skeleton-auto {
  margin-bottom: 10px;
}
/* This removes the default table loading background */
.table-loading {
  background-image: none !important;
}
.small-table-right-col .skeleton-overlay{
  background-color: var(--public-bg);
  background-image: var(--public-bg-gradient);
  padding: 0 0.75rem;
}
.small-table-right-col .panel_s .skeleton-overlay{
  background: #fff;
  padding: 0;
}
.table-loading .dt-table-display.skeleton-wrapper .skeleton-overlay{
  margin-top: -5rem;
}
.table-loading .dt-table-display.skeleton-wrapper.is-skeletonized{
  margin-bottom: -2rem;
}
/* Responsive adjustments */
@media (max-width: 768px) {
  .skeleton-card .skeleton-image {
    height: 150px;
  }
  
  .skeleton-profile .skeleton-profile-avatar {
    width: 80px;
    height: 80px;
  }
}

/** INVERTED **/
.skeleton-invert .skeleton-list-item{
  background: #dce4eb;
}
.skeleton-invert .skeleton-line,
.skeleton-invert .skeleton-rect,
.skeleton-invert .skeleton-circle{
  background: #fff;
  background-image: linear-gradient(
    90deg,
    #fff 0px,
    #f0f4f8 40px,
    #fff 80px
  );
  background-size: 468px 100%;
}