/* Galerie */
.album-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.album-card { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: inherit; }
.album-cover {
  position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; background: var(--surface-2);
  display: grid; place-items: center; color: var(--muted);
}
.album-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.album-card:hover .album-cover img { transform: scale(1.03); }
.album-cover > .icon { width: 40px; height: 40px; }
.album-shared { position: absolute; top: 8px; right: 8px; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--primary); display: grid; place-items: center; }
.album-shared .icon { width: 16px; height: 16px; }
.album-info { display: flex; flex-direction: column; gap: 2px; padding: 0 2px; }
.album-info strong { font-family: var(--font-round); font-size: 1.05rem; }

.album-head { margin-bottom: 18px; }
.album-desc { white-space: pre-line; max-width: 65ch; }
.album-sub { margin: 22px 0 10px; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 4px; }
@media (min-width: 700px) { .photo-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px; } }
.pg-item { aspect-ratio: 1; border: 0; padding: 0; background: var(--surface-2); cursor: zoom-in; overflow: hidden; border-radius: 4px; }
.pg-item img { width: 100%; height: 100%; object-fit: cover; }
.pg-item:focus-visible { outline-offset: -3px; }

.video-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.video-tile {
  position: relative; aspect-ratio: 16 / 9; border: 0; padding: 0; border-radius: 10px; overflow: hidden; cursor: pointer;
  background: linear-gradient(135deg, #1d4e4b, #2c6c67); color: #fff; text-align: left;
}
.video-tile video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.video-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.video-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -60%); width: 46px; height: 46px; border-radius: 50%;
  background: rgba(0,0,0,.45); display: grid; place-items: center; font-size: 1.1rem; padding-left: 3px; }
.video-title { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 10px 8px; font-weight: 650; font-size: .9rem;
  background: linear-gradient(transparent, rgba(0,0,0,.65)); }

.upload-panel { position: fixed; left: 16px; right: 16px; bottom: calc(var(--tabbar-h) + 88px + env(safe-area-inset-bottom)); z-index: 40; max-width: 420px; margin: 0 auto; box-shadow: var(--shadow); }
.upload-panel .progress { margin-top: 8px; }
@media (min-width: 900px) { .upload-panel { left: auto; right: 32px; bottom: 100px; width: 360px; } }
.share-box .input { font-size: .9rem; }

/* Öffentliche Album-Seite */
.public-wrap { max-width: 1120px; margin: 0 auto; padding: 32px 16px 64px; }
.public-head { margin-bottom: 26px; }
.public-site { color: var(--accent); font-weight: 700; margin-bottom: 6px; }
.public-head h1 { font-size: clamp(1.8rem, 5vw, 2.6rem); color: var(--primary); }
.public-sub { margin: 26px 0 12px; }
