.f-header { display: flex; align-items: baseline; gap: 12px; }
.f-count { color: var(--g-text-dim, #8b8b99); font-size: 13px; }

.f-toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 12px 0 14px;
  flex-wrap: wrap;
}
.f-toolbar .f-spacer { flex: 1; }

.f-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}

.f-tile {
  position: relative;
  background: #15151d;
  border: 1px solid #2a2a36;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: border-color 120ms ease, transform 120ms ease;
}
.f-tile:hover { border-color: #3d6ea5; }
.f-tile.f-selected {
  border-color: #ffd700;
  box-shadow: 0 0 0 2px rgba(255, 215, 0, 0.2);
}

.f-tile-media {
  aspect-ratio: 9 / 16;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #444;
  font-size: 12px;
}
.f-tile-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.f-tile-check {
  position: absolute;
  top: 8px;
  left: 8px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(0,0,0,0.55);
  border: 2px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  pointer-events: none;
}
.f-tile.f-selected .f-tile-check {
  background: #ffd700;
  border-color: #ffd700;
  color: #111;
}

.f-tile-body {
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: #e4e4ea;
}
.f-tile-title {
  font-weight: 600;
  font-size: 13px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.f-tile-meta {
  font-size: 11px;
  color: #8b8b99;
}
.f-tile-error {
  font-size: 11px;
  color: #ff8c94;
  background: rgba(255, 60, 80, 0.08);
  border-left: 2px solid #ff8c94;
  padding: 4px 6px;
  border-radius: 3px;
  word-break: break-word;
  max-height: 4.6em;
  overflow: hidden;
}
.f-tile-actions {
  display: flex;
  gap: 6px;
  margin-top: 4px;
}
.f-tile-actions button {
  flex: 1;
  font-size: 11px;
  padding: 4px 6px;
  border-radius: 4px;
  background: #1f1f2a;
  border: 1px solid #2a2a36;
  color: #e4e4ea;
  cursor: pointer;
}
.f-tile-actions button:hover { border-color: #3d6ea5; }
.f-tile-actions .f-btn-danger { color: #ff8c94; border-color: rgba(255, 140, 148, 0.3); }
.f-tile-actions .f-btn-danger:hover { border-color: #ff8c94; }
