/* =========================================================
   GeraBoi Empty State — v3.11
   Estados vazios, sem resultados e skeleton mobile-first
   ========================================================= */
.gb-empty-state {
  width: 100%;
  margin: 1rem auto;
  padding: 2rem 1.25rem;
  border: 1px solid rgba(20, 50, 54, .10);
  border-radius: 22px;
  background: #fff;
  text-align: center;
  box-shadow: 0 10px 28px rgba(20, 50, 54, .05);
}

.gb-empty-state__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 1rem;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(20, 50, 54, .07);
  color: var(--cor-esmeralda-escuro, #143236);
}

.gb-empty-state__icon svg {
  width: 28px;
  height: 28px;
}

.gb-empty-state__title {
  margin: 0;
  color: var(--cor-esmeralda-escuro, #143236);
  font-size: 1.075rem;
  font-weight: 750;
  line-height: 1.25;
}

.gb-empty-state__text {
  max-width: 34rem;
  margin: .55rem auto 0;
  color: #6f7b7b;
  font-size: .95rem;
  line-height: 1.5;
}

.gb-empty-state__actions {
  margin-top: 1.15rem;
  display: flex;
  justify-content: center;
  gap: .65rem;
  flex-wrap: wrap;
}

.gb-empty-state__actions .btn {
  min-height: 46px;
  border-radius: 14px;
  font-weight: 700;
}

.gb-empty-state--filtered .gb-empty-state__icon {
  background: rgba(189, 105, 66, .10);
  color: var(--cor-terracota, #bd6942);
}

/* DataTables: keep the empty technical cell clean when enhanced by JS. */
td.dataTables_empty.gb-empty-enhanced {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

td.dataTables_empty.gb-empty-enhanced .gb-empty-state {
  margin: .75rem 0;
}

/* Lightweight skeletons */
.gb-skeleton-card {
  padding: 1rem;
  border: 1px solid rgba(20, 50, 54, .08);
  border-radius: 20px;
  background: #fff;
}

.gb-skeleton-line {
  height: 13px;
  margin-bottom: .7rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #ecefed 25%, #f6f7f6 37%, #ecefed 63%);
  background-size: 400% 100%;
  animation: gb-skeleton-shimmer 1.35s ease infinite;
}

.gb-skeleton-line:last-child { margin-bottom: 0; }
.gb-skeleton-line--title { width: 58%; height: 18px; }
.gb-skeleton-line--short { width: 38%; }
.gb-skeleton-line--medium { width: 72%; }

@keyframes gb-skeleton-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: 0 0; }
}

@media (max-width: 575.98px) {
  .gb-empty-state {
    padding: 1.65rem 1rem;
    border-radius: 20px;
  }
  .gb-empty-state__actions {
    flex-direction: column;
  }
  .gb-empty-state__actions .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gb-skeleton-line {
    animation: none;
    background: #ecefed;
  }
}
