/* Layout */
body {
  padding-top: 60px;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.main-content {
  flex: 1;
  padding-top: 20px;
  padding-bottom: 40px;
}

/* Masonry grid */
#columns {
  column-count: 4;
  column-gap: 12px;
}

.pin {
  break-inside: avoid;
  margin-bottom: 12px;
  cursor: pointer;
}

.pin img {
  width: 100%;
  border-radius: 6px;
  display: block;
  transition: opacity 0.2s;
}

.pin img:hover {
  opacity: 0.9;
}

/* Responsive grid */
@media (max-width: 1200px) {
  #columns { column-count: 3; }
}

@media (max-width: 768px) {
  #columns { column-count: 2; }
}

@media (max-width: 480px) {
  #columns { column-count: 1; }
}

/* Footer */
.footer {
  margin-top: auto;
}

/* Item show page */
.card-img-top {
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Signin */
.signin-box {
  margin-bottom: 20px;
}

/* Pagination */
.pagination {
  flex-wrap: wrap;
}
