/* 모든 북마크 아이콘을 동일한 정사각형으로 표시 */
.link-row {
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
}

.favicon,
.custom-favicon,
.favicon-site,
.favicon-fallback {
  box-sizing: border-box !important;
  width: 28px !important;
  min-width: 28px !important;
  max-width: 28px !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
}

/* 직접 지정 아이콘: 지정 색상이 정사각형 전체를 채움 */
.custom-favicon {
  display: grid !important;
  place-items: center !important;
  background: var(--icon-color, var(--accent)) !important;
  color: #fff !important;
  line-height: 1 !important;
  font-size: 8px !important;
  font-weight: 850 !important;
  letter-spacing: -.03em !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

/* 원래 웹 아이콘: 테마색 바탕/띠 없이 favicon 전체를 그대로 표시 */
.favicon-site {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  background: transparent !important;
  color: transparent !important;
}

.favicon-site img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.favicon-site img[hidden] {
  display: none !important;
}

/* favicon 자체가 없는 사이트에만 정사각형 대체 아이콘 표시 */
.favicon-fallback {
  display: grid !important;
  place-items: center !important;
  background: var(--accent-soft) !important;
  color: var(--accent-strong) !important;
  font-size: 10px !important;
  font-weight: 850 !important;
}

.favicon-fallback[hidden] {
  display: none !important;
}

/* 링크 추가/수정 화면의 아이콘 미리보기도 정사각형 */
.choice-preview,
.custom-preview,
.site-preview {
  box-sizing: border-box !important;
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  border-radius: 7px !important;
}

.custom-preview {
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  font-size: 8px !important;
}

@media (max-width: 760px) {
  .link-row {
    grid-template-columns: 28px minmax(0, 1fr) auto !important;
  }

  .favicon,
  .custom-favicon,
  .favicon-site,
  .favicon-fallback {
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
  }
}
