/* 0.7.8: client-only selectors. Token permissions, gallery downloads and server business logic unchanged. */
.client-access-shell{background:#f8f7f2;min-height:calc(100dvh - 75px);padding:clamp(22px,5vw,70px) 16px;display:grid;place-items:center}
.client-access-shell .auth-card{width:min(100%,540px);max-width:540px;border-radius:14px;border-color:#d6e1d6;box-shadow:0 16px 50px #26342d12;padding:clamp(22px,5vw,48px)}
.client-access-shell .auth-card h1{font-family:Georgia,serif;font-size:clamp(33px,7vw,53px);font-weight:400;color:#26342d}
.client-access-shell .auth-card .btn-primary{background:#30483e;border-color:#30483e;min-height:48px}
.client-access-shell :is(input,button):focus-visible{outline:3px solid #719782;outline-offset:3px}
.client-access-shell .auth-card .eyebrow{color:#596c62}
.client-portal-shell,.client-gallery-main,.client-standalone-page{width:100%;max-width:100%}
.client-portal-shell :is(h1,h2,h3,p),.client-gallery-main :is(h1,h2,h3,p),.client-standalone-page :is(h1,h2,h3,p){overflow-wrap:anywhere}
.client-gallery-main :is(.photo-grid,.gallery-folders,.gallery-toolbar,.gallery-summary){max-width:100%;min-width:0}
.client-gallery-main :is(button,a):focus-visible,.client-portal-shell :is(button,a):focus-visible{outline:3px solid #638b73;outline-offset:3px}
.client-gallery-main .photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.client-gallery-main .photo-card{min-width:0}
.client-gallery-main .photo-card img{max-width:100%}
.client-gallery-main .photo-download{min-width:44px;min-height:44px}
.client-header{gap:10px}
.client-header nav{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1000px){.client-gallery-main .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
 .client-gallery-main .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .client-gallery-main{padding-left:12px;padding-right:12px}
 .client-portal-shell{padding:35px 16px 70px}
 .client-header{padding:12px 16px}
 .client-header .wordmark{font-size:16px;min-width:0}
 .client-header nav a{font-size:12px}
 .client-standalone-page{padding-inline:15px}
}
@media(max-width:360px){
 .client-gallery-main .photo-grid{gap:7px}
 .client-header nav{gap:8px}
 .client-header nav a{font-size:11px}
 .client-access-shell .auth-card{padding:22px 18px}
}
