/* ===================================================
   💀 Skeleton Loaders
   =================================================== */

.skeleton {
  background: linear-gradient(
    90deg,
    var(--bg-secondary) 0%,
    var(--bg-tertiary) 50%,
    var(--bg-secondary) 100%
  );
  background-size: 200% 100%;
  animation: skeleton-loading 1.5s ease-in-out infinite;
  border-radius: var(--radius-sm);
}

@keyframes skeleton-loading {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.skeleton-text {
  height: 1rem;
  margin-bottom: 0.5rem;
  width: 100%;
}

.skeleton-text-sm {
  height: 0.75rem;
  width: 60%;
}

.skeleton-text-lg {
  height: 1.5rem;
  width: 80%;
}

.skeleton-title {
  height: 1.75rem;
  width: 50%;
  margin-bottom: 1rem;
}

.skeleton-avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
}

.skeleton-card {
  height: 180px;
  border-radius: var(--radius-md);
  margin-bottom: 1rem;
}

.skeleton-table-row {
  height: 48px;
  margin-bottom: 0.5rem;
  border-radius: var(--radius-sm);
}

.skeleton-badge {
  height: 1.5rem;
  width: 4rem;
  border-radius: var(--radius-full);
}

/* === Skeleton para grid de disciplinas === */
.skeleton-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.25rem;
}

.skeleton-disciplina {
  height: 160px;
  border-radius: var(--radius-lg);
}
