/* Rows follow filename order left-to-right, then down. No cropping. */
.justified-gallery { display:flex; flex-direction:column; width:100%; }
.justified-row { display:flex; align-items:flex-start; width:100%; }
.justified-row figure { flex:none; min-width:0; margin:0; }
.justified-row .image-button { display:block; width:100%; padding:0; border:0; }
.justified-row .photo { display:block; width:100%; height:auto; object-fit:contain; }
.justified-row figcaption { padding:8px 2px 6px; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.justified-row .expand-label { right:10px; bottom:10px; }
.justified-row .image-button:focus-visible { outline:2px solid #34342f; outline-offset:2px; }
@media (max-width:640px) {
  .justified-row .expand-label { width:28px; height:28px; right:6px; bottom:6px; }
  .justified-row figcaption { font-size:12px; }
}

/* Album covers only: owner-approved square crop. Album photos remain uncropped. */
.album-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; align-items:start; }
.album-card { display:block; min-width:0; }
.album-cover { position:relative; width:100%; aspect-ratio:1 / 1; border-radius:20px; overflow:hidden; background:var(--wash,#eceee7); }
.album-cover > .photo { width:100%; height:100%; object-fit:cover; object-position:center; }
.album-cover > .empty-frame { width:100%; height:100%; min-height:0; padding:16px; }
.album-info { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px; padding:15px 2px 0; }
.album-info > .index { display:none; }
.album-info > div { min-width:0; }
.album-info > svg { width:18px; height:18px; margin-top:3px; }
.album-info h3 { font-size:16px; line-height:1.6; min-height:3.2em; margin:0; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.album-info p { font-size:11px; line-height:1.7; margin:6px 0 0; overflow-wrap:anywhere; }
.album-card:focus-visible { outline:2px solid #34342f; outline-offset:5px; border-radius:20px; }
@media (max-width:1000px) {
  .album-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
}
@media (max-width:640px) {
  .album-grid { gap:24px 12px; }
  .album-cover { border-radius:14px; }
  .album-info { padding-top:12px; gap:6px; }
  .album-info h3 { font-size:14px; }
  .album-info p { font-size:10px; }
  .album-info > svg { width:15px; height:15px; }
}
@media (max-width:360px) {
  .album-grid { grid-template-columns:minmax(0,1fr); }
}

/* The admin uses the same covers and photo rows, with its own editing controls. */
.admin-album-grid .admin-album { min-width:0; border:0; background:transparent; }
.admin-album-grid .admin-album-info { padding:15px 2px 0; }
.admin-album-info h3 { font-size:16px; line-height:1.6; min-height:3.2em; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; }
.admin-album-info p { line-height:1.7; overflow-wrap:anywhere; }
.admin-album-info .album-date { min-height:3.4em; }
.admin-album-info .text-link { margin-top:12px; }
.photo-manager-title { align-items:flex-start; flex-wrap:wrap; gap:15px; }
.photo-manager-title .field { min-width:0; max-width:100%; }
.admin-photo-gallery .managed-details { padding:6px 0 10px; }
.admin-photo-gallery .photo-actions { display:flex; flex-wrap:wrap; align-items:center; gap:4px; }
.admin-photo-gallery .photo-actions .icon-button { width:38px; height:38px; }
.admin-photo-gallery .photo-actions > span { min-width:40px; }
.admin-photo-gallery .managed-filename,.admin-photo-gallery .managed-caption { font-size:11px; line-height:1.6; padding:0 4px; margin:4px 0 8px; overflow-wrap:anywhere; }
.admin-photo-gallery .cover-button { white-space:normal; overflow-wrap:anywhere; }
.admin-photo-gallery figure[draggable="true"] { cursor:grab; }
@media (max-width:640px) {
  .admin-album-info h3 { font-size:14px; }
  .photo-manager-title .field { width:100%; }
}

/* Album deletion is available beside album metadata on small and large screens. */
.album-fields{border:0;padding:0;margin:0;min-width:0}
.album-delete-panel{border-top:1px solid #ddd;padding-top:24px;margin-top:8px}
.album-delete-panel p{font-size:14px;line-height:1.7;color:#77635d}
.album-delete-panel .button{min-height:48px}
.album-fields:disabled{opacity:.6}
@media(max-width:600px){.album-delete-panel .button{width:100%}}
