/* =========================================================
   PROFILE PAGE GRID — match homepage fileGrid style
   ========================================================= */
.grid {
  display: block;
  overflow: hidden;
}

.grid__item {
  display: block;
  float: none;
  vertical-align: top;
  width: 32%;
  margin-bottom: 16px;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/* ── Card — follow homepage: border-0 rounded-0 ── */
.grid__item.card {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}

.grid__item .card-img-top {
  display: block;
  height: auto;
  border-radius: 0;
}

/* ── Card body — match homepage card-body ── */
.grid__item .card-body {
  padding: .75rem .5rem .5rem;
}

/* User row */
.grid__item .shared_by_avatar img {
  width: 24px;
  height: 24px;
  object-fit: cover;
}
.grid__item .shared_by_cname {
  font-size: 12px;
  font-weight: 500;
  color: var(--den2);
  text-transform: lowercase;
}

/* Title — match homepage fs-6 text-muted */
.grid__item .card-title {
  font-size: 14px !important;
  color: var(--den2) !important;
  margin-bottom: 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Source */
.grid__item .card-body .text-muted.small {
  font-size: 11px;
}

/* ── Card footer — match homepage: border-0 bg-light ── */
.grid__item .card-footer {
  background: var(--xamnhat, #fafafa);
  border: 0;
  border-radius: 0;
  padding: .5rem;
}

/* Badge — match homepage subtle pattern */
.grid__item .card-footer .badge.filetype {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .03em;
  padding: 3px 7px;
  border-radius: 0;
}

/* Expire alert */
.grid__item .expiretime {
  margin-top: 0 !important;
  border-radius: 0;
  font-size: 12px;
  padding: .5rem .75rem !important;
}

/* ── Sizing ── */
.grid__col-sizer,
.grid__gutter-sizer { box-sizing: border-box; }
.grid__col-sizer { width: 32%; }
.grid__gutter-sizer { width: 2%; }

/* Loading state */
.grid.are-images-unloaded { opacity: 0; transition: opacity 0.3s ease; }
.grid.are-images-unloaded .grid__item { opacity: 0; }

/* Infinite scroll loader */
.page-load-status {
  display: none;
  padding: 24px 0;
  text-align: center;
  font-size: 12px;
  color: var(--xamdam, #bdbdbd);
}
.loader-ellips__dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 3px;
  background-color: var(--xamdam, #bdbdbd);
  animation: ellips-bounce 0.8s infinite ease-in-out both;
}
@keyframes ellips-bounce {
  0%, 80%, 100% { transform: scale(0); }
  40% { transform: scale(1); }
}

/* ── Responsive columns ── */
@media screen and (max-width: 1440px) {
  .grid__item, .grid__col-sizer { width: 32%; }
  .grid__gutter-sizer { width: 2%; }
}
@media screen and (min-width: 1441px) and (max-width: 1920px) {
  .grid__item, .grid__col-sizer { width: 23.5%; }
  .grid__gutter-sizer { width: 2%; }
}
@media screen and (min-width: 1921px) and (max-width: 2506px) {
  .grid__item, .grid__col-sizer { width: 19%; }
  .grid__gutter-sizer { width: 1.25%; }
}
@media screen and (min-width: 2507px) {
  .grid__item, .grid__col-sizer { width: 16%; }
  .grid__gutter-sizer { width: 0.8%; }
}
@media screen and (max-width: 991px) {
  .grid__item, .grid__col-sizer { width: 48%; }
  .grid__gutter-sizer { width: 4%; }
}
@media screen and (max-width: 600px) {
  .grid__item, .grid__col-sizer { width: 100%; }
  .grid__gutter-sizer { width: 0; }
}
