.gallery-page { min-height: 100vh; }
.gallery-main { padding-top: clamp(3rem, 8vw, 6.5rem); padding-bottom: 5rem; min-height: 65vh; }
.gallery-main h1 { margin: .35rem 0 .8rem; font-size: clamp(2.8rem, 7vw, 5.2rem); line-height: 1.03; letter-spacing: -.045em; }
.gallery-main h1 span { color: var(--gold, #d7ad55); }
.gallery-intro { max-width: 42rem; color: #b8b8b8; font-size: 1.08rem; line-height: 1.7; }
.gallery-status { min-height: 1.5rem; margin: 2rem 0 1rem; color: #c4c4c4; }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 1rem; }
.gallery-card { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: #151619; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; }
.gallery-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gallery-card figcaption { position: absolute; inset: auto 0 0; padding: 2.5rem 1rem .85rem; color: white; background: linear-gradient(transparent, rgba(0,0,0,.78)); font-size: .9rem; }
.gallery-card button { position: absolute; top: .7rem; right: .7rem; border: 0; border-radius: 6px; padding: .55rem .75rem; color: #fff; background: #a83232; cursor: pointer; }
.gallery-back { margin-top: 2rem; }
.admin-main { min-height: 70vh; }
.admin-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.upload-form { display: grid; gap: 1rem; max-width: 36rem; margin: 1.5rem 0 2rem; padding: 1.25rem; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; }
.upload-form label { font-weight: 600; }
.upload-form input { max-width: 100%; color: #ddd; }
[hidden] { display: none !important; }
@media (max-width: 600px) { .gallery-main { padding-top: 3rem; } }
.gallery-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:inherit}
.gallery-open img{display:block;width:100%;height:230px;object-fit:cover;transition:transform .22s ease,filter .22s ease}
.gallery-open:hover img,.gallery-open:focus-visible img{transform:scale(1.035);filter:brightness(1.08)}
.gallery-open:focus-visible{outline:3px solid #f3c51a;outline-offset:4px;border-radius:12px}
.photo-lightbox{position:fixed;inset:0;max-width:min(94vw,1200px);max-height:94vh;padding:22px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#101114;color:#fff;box-shadow:0 24px 90px #000a;overflow:visible}
.photo-lightbox::backdrop{background:rgba(0,0,0,.88);backdrop-filter:blur(5px)}
.photo-lightbox figure{margin:0;display:grid;gap:12px;justify-items:center}
.photo-lightbox img{display:block;max-width:calc(94vw - 44px);max-height:calc(90vh - 88px);width:auto;height:auto;object-fit:contain;border-radius:8px}
.photo-lightbox figcaption{color:#f3c51a;text-align:center;font-weight:700}
.lightbox-close{position:absolute;z-index:1;top:-13px;right:-13px;width:42px;height:42px;border:1px solid #555;border-radius:50%;background:#f3c51a;color:#111;font-size:30px;line-height:1;cursor:pointer}
@media(max-width:600px){.gallery-open img{height:200px}.photo-lightbox{padding:12px}.photo-lightbox img{max-width:calc(94vw - 24px);max-height:82vh}}
.gallery-card button.gallery-open{position:relative;inset:auto;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:inherit;cursor:zoom-in;text-align:inherit}
