.resident-photo-dialog{width:min(900px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:24px;border:1px solid #d9e4e8;border-radius:20px;overflow:auto;background:#fff;color:var(--ink,#183e39);box-shadow:0 20px 80px #163b4740}
.resident-photo-dialog::backdrop{background:#152d3bcc}
.resident-photo-dialog header,.resident-photo-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:16px}
.resident-photo-dialog h2{font-size:1.25rem;margin:0}
.resident-photo-dialog button{min-height:44px}.resident-photo-dialog header button{min-width:44px;font-size:1.5rem;border:1px solid #dce5e9;border-radius:50%;background:#fff;color:inherit;cursor:pointer}
.resident-photo-dialog p{line-height:1.55}.resident-photo-note{font-size:.8rem;color:var(--muted,#536b67)}
.resident-photo-disclaimer{margin:8px 0 0}.resident-photo-disclaimer::before{content:'ⓘ';margin-right:6px}
.resident-photo-stage{margin:20px 0}
.resident-photo-loading{position:relative;isolation:isolate;display:grid;place-items:center;width:100%;aspect-ratio:var(--photo-aspect,1.8);min-height:250px;max-height:55dvh;overflow:hidden;border:1px solid #dde7e8;border-radius:16px;background:#eef3f2}
.resident-photo-loading[hidden],.resident-photo-result[hidden]{display:none}
.resident-photo-art{position:absolute;inset:0;overflow:hidden;z-index:-1;background:linear-gradient(135deg,#eff4f2,#edf1f7 55%,#f6f0e9)}
.resident-photo-glow{position:absolute;inset:-35%;filter:blur(32px);opacity:.85;background:radial-gradient(ellipse at 25% 30%,#a9d1c6 0,transparent 45%),radial-gradient(ellipse at 80% 65%,#b7c9e2 0,transparent 45%),radial-gradient(ellipse at 25% 90%,#e9d1b7 0,transparent 40%)}
.resident-photo-sheen{position:absolute;inset:0;opacity:0;background:linear-gradient(110deg,transparent 20%,#ffffff80 47%,transparent 75%)}
.resident-photo-loading-content{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:360px;padding:36px 24px;text-align:center;color:#254b4a}
.resident-photo-loading-content strong{font-size:clamp(1.05rem,2.5vw,1.35rem);font-weight:600;letter-spacing:-.02em}
.resident-photo-loading .resident-photo-note{margin:0;color:#4e686c}
.resident-photo-sparkle{position:relative;display:block;font-size:2.4rem;line-height:1;margin-bottom:6px;color:#477c76}
.resident-photo-sparkle::before,.resident-photo-sparkle::after{content:'✦';position:absolute;font-size:.65rem;right:-12px;top:-6px;opacity:.7}
.resident-photo-sparkle::after{font-size:.45rem;right:auto;left:-10px;top:auto;bottom:0}
.resident-photo-elapsed{position:absolute;bottom:16px;font-size:.75rem;color:#516b6d;font-variant-numeric:tabular-nums;white-space:nowrap}
.resident-photo-loading[data-running=true] .resident-photo-glow{animation:resident-photo-drift 9s ease-in-out infinite alternate}
.resident-photo-loading[data-running=true] .resident-photo-sheen{opacity:.7;animation:resident-photo-shimmer 5s ease-in-out infinite}
.resident-photo-loading[data-running=true] .resident-photo-sparkle{animation:resident-photo-breathe 2.8s ease-in-out infinite}
@keyframes resident-photo-drift{from{transform:translate(-5%,-4%) rotate(-8deg) scale(1)}to{transform:translate(6%,5%) rotate(12deg) scale(1.12)}}
@keyframes resident-photo-shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes resident-photo-breathe{0%,100%{opacity:.6;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
@keyframes resident-photo-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.resident-photo-result{margin:0;min-width:0;animation:resident-photo-reveal .45s ease-out}
.resident-photo-result img{display:block;width:100%;max-height:58dvh;object-fit:contain;background:#f5f7f7;border:1px solid #dde7e8;border-radius:16px}
.resident-photo-result figcaption{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;font-size:.85rem;color:var(--muted,#536b67)}
.resident-photo-dialog a{color:#21675c}.resident-photo-result a{font-weight:600;padding-block:8px}
.resident-photo-dialog footer p{flex:1;margin:0;font-size:.85rem}.resident-photo-dialog .is-error{color:#a23535}
.resident-photo-dialog footer{margin-top:20px}.resident-photo-dialog footer .primary{width:auto;flex:none;margin:0;padding-inline:20px}
.resident-photo-launch{min-height:44px;white-space:nowrap}
.resident-sanitary-stage .prep-viewbar{justify-content:space-between;gap:12px;flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){.resident-photo-loading[data-running=true] .resident-photo-glow,.resident-photo-loading[data-running=true] .resident-photo-sheen,.resident-photo-loading[data-running=true] .resident-photo-sparkle,.resident-photo-result{animation:none}.resident-photo-loading[data-running=true] .resident-photo-sheen{opacity:0}}
@media(max-width:700px){.resident-photo-dialog{padding:16px}.resident-photo-dialog footer{align-items:stretch;flex-direction:column}.resident-photo-dialog footer button{width:100%}.resident-photo-loading{min-height:240px;max-height:45dvh}.resident-photo-result img{max-height:50dvh}}
@media(max-width:600px){.home-viewer-tools .home-hotspot-toggle{grid-column:1;font-size:.7rem;gap:6px;padding-inline:6px}.home-viewer-tools #home-ai-photo{grid-column:2;font-size:.8rem;padding-inline:8px}}
