.privacy-lock{width:21px;height:21px;display:inline-block;vertical-align:middle;fill:none;stroke:#ad4b4b;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.gallery-row.is-private:hover,.gallery-row.is-private:focus-visible{border-color:#be6666!important;background:linear-gradient(100deg,#fff9,#ba656522)!important;box-shadow:0 0 12px #a44b4b22!important}
.gallery-row.is-private:hover .year{background:linear-gradient(#a56b6b,#6a3d3d)!important}
.gallery-card.is-private .card-open{background:linear-gradient(#e2dfdb,#b8b5b1)!important;color:#39434a!important;box-shadow:0 4px 10px #0002!important}
.gallery-card.is-private .card-open:hover{outline:1px solid #b85b5b}.is-unlocked .privacy-lock{stroke:#087da9}.is-unlocked .privacy-lock path{d:path('M8 10V7a4 4 0 0 1 7-2M12 14v3')}
.mobile-lock{display:none}.unlock-panel{grid-column:1/-1;padding:20px 24px;margin:0 0 18px;border:1px solid #fff;border-left:3px solid #ac5555;border-radius:8px;background:linear-gradient(120deg,#ffffffe6,#e8e4dedb);box-shadow:0 7px 18px #30241c22;animation:unlock-in .18s ease-out;font-family:inherit}
.unlock-title{display:flex;align-items:center;gap:10px}.unlock-close{margin-left:auto;border:0;background:none;font-size:26px;color:#67717a;cursor:pointer}.unlock-panel p{margin:8px 0;font-size:15px}.unlock-controls{display:flex;align-items:end;gap:12px}.unlock-controls label{display:flex;flex-direction:column;gap:6px;flex:1;font-size:13px}.unlock-controls input{width:100%;min-width:0;height:46px;border:1px solid #bcb7b2;border-radius:6px;padding:10px;font:inherit;font-size:16px;background:#fffb}.unlock-eye{height:46px;background:#eee;border:1px solid #ccc;border-radius:6px;padding:8px}.unlock-controls .blue-button{min-height:46px}.unlock-status{color:#9b3e3e}.gallery-relock{border:1px solid #c8b8b8;background:#fff8;color:#874545;border-radius:5px;padding:8px 12px;margin:8px 0;cursor:pointer}
@keyframes unlock-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.admin-page{background:#303232;padding:25px!important;min-width:0}.admin-main{max-width:1250px;margin:auto;min-height:calc(100vh - 50px);padding:30px!important;background:#eeece6 url('assets/paper-texture.jpg');font-family:'Titillium Web','Segoe UI',Arial,sans-serif}.admin-heading,.admin-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center}.admin-main h1{font-size:29px}.admin-main a{color:#087da9}.admin-main label{display:flex;flex-direction:column;gap:7px;font-size:14px}.admin-main input,.admin-main select{width:100%;font:inherit;font-size:16px;padding:10px;border:1px solid #bdbfbd;border-radius:5px;min-width:0;background:#fffc}.admin-main button{cursor:pointer;font:inherit}.admin-main button:disabled{opacity:.5}.admin-main [data-eye],.admin-main [data-generate],#admin-logout{padding:9px;border:1px solid #bbb;border-radius:5px;background:#fff9}.password-line{display:flex;gap:5px}.password-line input{flex:1;width:0}.admin-login{max-width:500px;margin:30px auto;display:grid;gap:18px}.admin-search{max-width:500px;margin:20px 0}.admin-gallery{display:grid;grid-template-columns:2fr 1fr 1.6fr auto;gap:20px;padding:20px;margin-bottom:14px;background:#fffa;border:1px solid white;border-radius:9px;box-shadow:0 5px 14px #0001;align-items:center}.admin-gallery h2{font-size:18px;margin:5px 0}.admin-gallery small{display:block;color:#62717a}.admin-gallery[hidden]{display:none}.admin-row-status{grid-column:1/-1;margin:0;color:#7c4141}.admin-owner{margin-top:28px}.admin-owner form{max-width:500px;display:grid;gap:14px;margin-top:20px}
@media(max-width:760px){.unlock-panel{padding:16px}.unlock-controls{display:grid;grid-template-columns:minmax(0,1fr) auto}.unlock-controls .blue-button{grid-column:1/-1;justify-content:center}.mobile-lock{display:block;position:absolute;right:12px;top:12px;padding:6px;background:#202020d9;border-radius:5px;z-index:3}.mobile-lock .privacy-lock{stroke:#f09191}.admin-page{padding:8px!important}.admin-main{padding:18px!important}.admin-heading{align-items:start;flex-direction:column;gap:6px}.admin-gallery{grid-template-columns:1fr}.admin-toolbar{flex-wrap:wrap}.admin-main h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){.unlock-panel{animation:none}}
.unlock-panel{box-sizing:border-box;width:100%;max-width:650px;margin-left:auto;justify-self:end}
.gallery-card.is-private .card-open{position:relative;margin-left:30px}.gallery-card.is-private .card-open .privacy-lock{position:absolute;left:-30px;top:50%;transform:translateY(-50%)}
@media(max-width:760px){.unlock-panel{max-width:none}}

.is-unlocked .mobile-lock .privacy-lock{stroke:#55c4e5}

/* v131: red locked-gallery button, same geometry as the regular CTA. */
.gallery-card.is-private .card-open{margin-left:0;background:linear-gradient(#ca5159,#791e2d)!important;color:#fff!important;border-color:#b74955;box-shadow:0 6px 14px #70233030!important}
.gallery-card.is-private .card-open .privacy-lock{position:static;transform:none;stroke:#fff;left:auto;top:auto}
.gallery-card.is-private .card-open:hover{background:linear-gradient(#db6168,#8c2938)!important;outline:1px solid #e28e95}
.gallery-card.is-private .card-open{width:137px;justify-content:flex-end}
.gallery-card.is-private .card-open>.privacy-lock{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
/* v131: compact unlock form, including touch screens. */
.unlock-panel{max-width:540px;padding:10px 14px;margin-bottom:12px;border-radius:7px}
.unlock-title{gap:8px;font-size:14px;line-height:22px}
.unlock-title .privacy-lock{width:18px;height:18px}
.unlock-close{font-size:23px;line-height:24px;padding:0 4px}
.unlock-panel>.unlock-title+p{display:none}
.unlock-controls{display:flex;align-items:end;gap:7px;margin-top:6px}
.unlock-controls label{font-size:12px;gap:3px;min-width:0}
.unlock-controls input{height:38px;padding:6px 8px;font-size:16px;box-sizing:border-box}
.unlock-eye{height:38px;padding:6px 8px;font-size:13px}
.unlock-controls .blue-button{height:38px;min-height:38px;padding:6px 12px;font-size:13px;white-space:nowrap;flex-shrink:0}
.unlock-panel .unlock-status:empty{display:none}
.unlock-panel .unlock-status{margin:6px 0 0;font-size:13px}
@media(max-width:760px){
 .unlock-panel{max-width:540px;padding:10px;margin-left:auto;margin-right:auto}
 .unlock-controls{display:flex;gap:5px}
 .unlock-controls input,.unlock-eye,.unlock-controls .blue-button{height:44px;min-height:44px}
 .unlock-controls .blue-button{padding:6px 8px;font-size:12px}
 .unlock-eye{padding:6px;font-size:12px}
 .unlock-close{min-width:36px;min-height:36px}
}

/* v132: lock replaces the word, arrow keeps the standard right-hand slot. */
.gallery-card.is-private .card-open{display:flex;justify-content:space-between;gap:18px}
.gallery-card.is-private .card-open .locked-label{flex:1;display:flex;justify-content:center;align-items:center;min-width:0}
.gallery-card.is-private .card-open .locked-label .privacy-lock{position:static;transform:none;margin:0;stroke:#fff;width:20px;height:20px}
.gallery-card.is-private .card-open>span:last-child{color:#fff;flex:0 0 auto}
.unlock-close{font-size:32px;line-height:36px;min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;color:#64717b}
.unlock-close:hover{color:#a53e49;background:#a53e4910;border-radius:5px}
.unlock-controls{margin-top:2px}
.unlock-controls input::placeholder{font-size:12px;letter-spacing:.7px;color:#68747b;opacity:1}

/* v134: raise only the close glyph; preserve the 40px hit target. */
.unlock-close{position:relative;font-size:0;line-height:0}
.unlock-close::before,.unlock-close::after{content:"";position:absolute;pointer-events:none;left:50%;top:calc(50% - 5px);width:18px;height:2px;border-radius:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.unlock-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
/* v135: unlock inside the active cover / list row. */
.gallery-card{position:relative}
.gallery-card .card-meta>.card-private-note{color:#a63d49;display:flex;align-items:center;gap:8px}
.card-private-note .privacy-lock{width:18px;height:18px;stroke:currentColor;flex:none}
.unlock-on-cover{position:absolute;z-index:5;box-sizing:border-box;margin:0!important;max-width:none!important;padding:14px!important;border:0;border-radius:7px;background:rgba(12,19,24,.60);color:#fff;box-shadow:none;display:flex;flex-direction:column;justify-content:center;overflow:auto;animation:none}
.unlock-on-cover .unlock-title{padding-right:32px;font-size:13px;line-height:20px;flex-shrink:0}
.unlock-on-cover .unlock-title .privacy-lock{stroke:#ec9099}
.unlock-on-cover .unlock-close{position:absolute;right:5px;top:4px;color:#fff;width:40px;height:40px}
.unlock-on-cover .unlock-close:hover{background:#ffffff1c;color:#fff}
.unlock-gallery-name{font-size:14px;line-height:18px;margin:4px 32px 8px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex-shrink:0}
.unlock-on-cover .unlock-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:0;flex-shrink:0}
.unlock-on-cover .unlock-controls label{grid-column:1/-1}
.unlock-on-cover .unlock-eye{justify-self:start;color:#fff;background:#ffffff18;border-color:#ffffff48;min-width:60px}
.unlock-on-cover .unlock-controls input{background:#fffffff2;color:#18232b}
.unlock-on-cover .unlock-status{color:#ffb7bd;line-height:16px;font-size:12px;flex-shrink:0}
.gallery-row-unlock{position:relative;margin:0 0 8px;min-height:72px}
.gallery-row-unlock>.gallery-row{visibility:hidden;margin-bottom:0!important;pointer-events:none}
.unlock-in-row{position:absolute;inset:0;max-width:none!important;width:100%;height:100%;margin:0!important;padding:8px 48px 8px 12px!important;display:grid;grid-template-columns:minmax(100px,1fr) minmax(250px,420px);gap:2px 12px;align-content:center;animation:none}
.unlock-in-row .unlock-title{min-width:0;font-size:13px}.unlock-in-row .unlock-title strong{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.unlock-in-row .unlock-close{position:absolute;right:4px;top:4px}
.unlock-in-row .unlock-controls{margin:0}.unlock-in-row .unlock-status{grid-column:1/-1;font-size:12px;line-height:14px;margin:0}
@media(max-width:760px),(max-width:1100px) and (pointer:coarse){
 .site .gallery-card .card-meta>.card-private-note{display:none!important}
 .site .gallery-card.has-unlock .card-content,.site .gallery-card.has-unlock .mobile-lock{visibility:hidden}
 .unlock-on-cover{padding:8px 10px!important;border-radius:12px}
 .unlock-on-cover .unlock-title{font-size:11px;line-height:16px}
 .unlock-on-cover .unlock-title .privacy-lock{width:15px;height:15px}
 .unlock-gallery-name{font-size:13px;line-height:16px;margin:2px 28px 6px 0;-webkit-line-clamp:1}
 .unlock-on-cover .unlock-controls{display:flex;gap:5px}.unlock-on-cover .unlock-controls label{flex:1;min-width:0}
 .unlock-on-cover .unlock-eye{min-width:0}.unlock-on-cover .unlock-controls .blue-button{padding:6px;font-size:11px}
 .unlock-on-cover .unlock-status{font-size:11px;line-height:13px;margin-top:3px}
 .gallery-row-unlock{min-height:110px}
 .unlock-in-row{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:6px 9px!important;gap:3px}
 .unlock-in-row .unlock-title{padding-right:35px;min-height:28px;font-size:12px}.unlock-in-row .unlock-title strong{-webkit-line-clamp:1}
 .unlock-in-row .unlock-controls{flex-shrink:0}.unlock-in-row .unlock-status{font-size:11px;line-height:13px}
}
.unlock-on-cover{grid-column:auto;grid-row:auto;justify-self:auto}
@media(max-width:760px),(max-width:1100px) and (pointer:coarse){
 .gallery-card.is-private .mobile-lock{display:flex;align-items:center;justify-content:center;width:36px;height:36px;box-sizing:border-box;padding:0;background:linear-gradient(#ca5159,#791e2d);border:1px solid #ffffff28;border-radius:6px;box-shadow:0 2px 6px #0003}
 .gallery-card.is-private .mobile-lock .privacy-lock{display:block;width:21px;height:21px;stroke:#fff;margin:0;transform:none}
}
