/* ── Favorites page ── */

.fav-main {
  padding: 40px;
}

/* ── 50/50 workspace ── */
.fav-workspace {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--ink);
  min-height: calc(100vh - 160px);
}

.fav-col {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.fav-colors-col {
  border-right: 1px solid var(--ink);
}

.fav-col-header {
  display: flex;
  align-items: center;
  padding: 0 20px;
  height: 48px;
  border-bottom: 1px solid var(--ink);
  flex-shrink: 0;
}

.fav-col-body {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
  padding: 20px;
}

.fav-col-body::-webkit-scrollbar { width: 3px; }
.fav-col-body::-webkit-scrollbar-thumb { background: var(--ink); }

.fav-empty {
  padding: 40px 0;
  text-align: center;
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  color: var(--ink);
  line-height: 2;
}

.fav-empty a {
  color: var(--ink);
}

.fav-save-icon-inline {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid var(--ink);
  vertical-align: middle;
  position: relative;
  top: -1px;
}

.section-label {
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  text-transform: uppercase;
  color: var(--ink);
}

/* ── Color cards grid ── */
.fav-colors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 20px;
}

.fav-color-card {
  border: 1px solid var(--ink);
  display: flex;
  flex-direction: column;
}

.fav-color-swatch {
  aspect-ratio: 4 / 3;
  cursor: pointer;
  transition: opacity 0.12s ease;
}

.fav-color-swatch:hover {
  opacity: 0.85;
}

.fav-color-info {
  padding: 12px 14px;
  border-top: 1px solid var(--ink);
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.fav-color-name {
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  color: var(--ink);
  text-transform: uppercase;
}

.fav-color-source {
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  color: var(--ink);
  margin-bottom: 10px;
}

/* Color values */
.fav-color-values {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
}

.fav-val-row {
  display: flex;
  gap: 6px;
  cursor: pointer;
}

.fav-val-row:hover {
  text-decoration: underline;
}

.fav-val-label {
  color: var(--ink);
  text-transform: uppercase;
}

.fav-val-value {
  color: var(--ink);
}

/* Save btn in color card */
.fav-color-footer {
  display: flex;
  justify-content: flex-end;
  padding: 0 14px 12px;
}

/* ── Palette rows ── */
.fav-palettes-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.fav-palette-item {
  border: 1px solid var(--ink);
}

/* Palette swatch strip */
.fav-palette-strip {
  display: flex;
  height: 60px;
  cursor: pointer;
  transition: opacity 0.12s ease;
}

.fav-palette-strip:hover {
  opacity: 0.9;
}

.fav-palette-swatch {
  flex: 1;
  height: 100%;
}

/* Expanded detail (hidden by default) */
.fav-palette-detail {
  display: none;
  border-top: 1px solid var(--ink);
}

.fav-palette-item.expanded .fav-palette-detail {
  display: block;
}

/* Detail: color columns */
.fav-palette-colors {
  display: flex;
}

.fav-palette-color-col {
  flex: 1;
  border-right: 1px solid var(--ink);
  padding: 10px;
}

.fav-palette-color-col:last-child {
  border-right: none;
}

.fav-pc-name {
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  color: var(--ink);
  text-transform: uppercase;
  margin-bottom: 2px;
}

.fav-pc-source {
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  color: var(--ink);
  margin-bottom: 10px;
}

.fav-pc-values {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  color: var(--ink);
}

.fav-pc-val {
  cursor: pointer;
}

.fav-pc-val:hover {
  text-decoration: underline;
}

/* Download button in palette detail */
.fav-palette-actions {
  display: flex;
  justify-content: flex-end;
  padding: 10px;
  border-top: 1px solid var(--ink);
}

.action-btn {
  font-family: var(--font);
  font-size: var(--fs);
  letter-spacing: var(--ls);
  text-transform: uppercase;
  color: var(--ink);
  background: none;
  border: 1px solid var(--ink);
  padding: 6px 14px;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease;
  height: 30px;
  display: inline-flex;
  align-items: center;
}

.action-btn:hover {
  background: var(--ink);
  color: var(--cream);
}

/* ── Mobile ── */
@media (max-width: 900px) {
  .fav-main {
    padding: 20px;
  }

  .fav-workspace {
    grid-template-columns: 1fr;
  }

  .fav-colors-col {
    border-right: none;
    border-bottom: 1px solid var(--ink);
  }

  .fav-colors-grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  }

  .fav-palette-colors {
    flex-direction: column;
  }

  .fav-palette-color-col {
    border-right: none;
    border-bottom: 1px solid var(--ink);
  }

  .fav-palette-color-col:last-child {
    border-bottom: none;
  }
}
