.shared-gallery-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.shared-gallery-list article{padding:2rem;border:1px solid #e4ddd5}.shared-gallery-list span,.gallery-welcome>span{color:#a55d3a;text-transform:uppercase;letter-spacing:2px;font-size:.75rem}.shared-gallery-list h3{margin:.5rem 0;font-family:Georgia,serif;font-size:1.6rem}.gallery-access{display:grid;gap:1rem;max-width:520px;margin:auto;padding:3rem;border:1px solid #ddd;text-align:center}.gallery-access label{display:grid;gap:.5rem;text-align:left}.gallery-access input{padding:1rem;border:1px solid #aaa}.gallery-access .border-btn{justify-self:center}.gallery-access small{color:#777}.gallery-lock{color:#a55d3a;font-size:1.5rem}.gallery-error{padding:1rem;background:#fff0ee;color:#8b2e25}.gallery-welcome{max-width:850px;margin:auto;text-align:center}.gallery-welcome>div{display:flex;justify-content:center;gap:1rem;margin:2rem 0}.gallery-welcome strong{padding:.8rem 1rem;background:#f2eee8}@media(max-width:800px){.shared-gallery-list{grid-template-columns:1fr}.gallery-access{padding:1.5rem}.gallery-welcome>div{align-items:center;flex-direction:column}}
.private-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-top:2.5rem}.private-photo-grid a{position:relative;overflow:hidden;background:#171717;color:#fff}.private-photo-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s}.private-photo-grid a:hover img{transform:scale(1.03)}.private-photo-grid span{position:absolute;right:0;bottom:0;left:0;padding:1rem;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff}
.private-photo-grid article{border:1px solid #ddd}.private-photo-grid article>a{display:block}.photo-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem}.photo-actions label{margin:0}.photo-actions>a{background:none;color:#a55d3a}.selection-bar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem;padding:1rem;background:rgba(255,255,255,.96);box-shadow:0 -5px 20px rgba(0,0,0,.12)}.selection-bar .border-btn{padding:12px 20px}.gallery-success{max-width:850px;margin:1rem auto;padding:1rem;background:#e9f7ee;color:#225c37}@media(max-width:700px){.selection-bar{align-items:stretch;flex-direction:column}.selection-bar .border-btn{text-align:center}}
