.upload-section{margin-bottom:16px}
.upload-dropzone{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;border:2px dashed var(--primary-light);border-radius:var(--radius-md);background:var(--card-bg);cursor:pointer;text-align:center}
.upload-dropzone.dragover{border-color:var(--primary);background:var(--primary-light)}
.upload-dropzone__icon{font-size:2rem}
.upload-preview-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:8px}
.upload-preview-item{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--primary-light);border-radius:var(--radius-sm);font-size:1.2rem;cursor:pointer}
.photo-masonry{display:grid;gap:8px}
.photo-masonry.cols-2{grid-template-columns:repeat(2,1fr)}
.photo-masonry.cols-3{grid-template-columns:repeat(3,1fr)}
.photo-card{background:var(--card-bg);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;position:relative}
.photo-card__thumb{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:2.5rem;background:var(--primary-light)}
.photo-card__info{padding:8px}
.photo-card__info strong{display:block;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-card__info .muted{font-size:.65rem}
.photo-card__fav{position:absolute;top:6px;right:6px;font-size:.9rem}
