.resident-pwa-dialog{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;border:1px solid #dce6f2;border-radius:24px;padding:28px;background:#fffefb;color:#2f3a4b;box-shadow:0 18px 70px #2f3a4b25;font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.resident-pwa-dialog::backdrop{background:#26354a55}
.resident-pwa-dialog *{box-sizing:border-box}
.resident-pwa-dialog img{display:block;width:64px;height:64px;border-radius:16px;margin-bottom:20px}
.resident-pwa-dialog h2{font-size:22px;line-height:1.4;margin:0 0 12px;font-weight:650}
.resident-pwa-dialog p{margin:0 0 16px;color:#596a81;white-space:pre-line;overflow-wrap:anywhere}
.resident-pwa-dialog .resident-pwa-note{font-size:13px;color:#647184;background:#fffefb;border-radius:12px;padding:12px}
.resident-pwa-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}
.resident-pwa-dialog button,.resident-pwa-update button{font:inherit;border:1px solid #dce6f2;border-radius:12px;padding:10px 18px;min-height:44px;background:#fffefb;color:#2f3a4b;cursor:pointer;touch-action:manipulation}
.resident-pwa-dialog button[data-primary]{background:#5876a2;color:#fff;border-color:#5876a2}
.resident-pwa-dialog button:disabled{opacity:.55;cursor:wait}
.resident-pwa-dialog button:focus-visible,.resident-pwa-update button:focus-visible{outline:3px solid #5876a2;outline-offset:3px}
.resident-pwa-dialog button:active,.resident-pwa-update button:active{filter:brightness(.93)}
.resident-pwa-update{box-sizing:border-box;position:fixed;z-index:2147482000;left:16px;right:16px;top:calc(12px + env(safe-area-inset-top,0px));margin:auto;width:max-content;max-width:calc(100% - 32px);display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:16px;background:#fffefb;color:#2f3a4b;border:1px solid #dce6f2;box-shadow:0 6px 28px #2f3a4b20;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.resident-pwa-update[hidden]{display:none}
.resident-pwa-update button{padding:7px 12px}
@media(max-width:360px){.resident-pwa-dialog{padding:22px}.resident-pwa-update{flex-wrap:wrap;justify-content:flex-end}.resident-pwa-update span{flex:1 0 100%}}
@media(prefers-reduced-motion:no-preference){.resident-pwa-dialog[open]{animation:resident-pwa-appear .16s ease-out}@keyframes resident-pwa-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
/* Installation adoption: scoped illustration, honest benefits and numbered browser steps. */
.resident-pwa-benefits{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 18px}
.resident-pwa-benefits li{font-size:12px;padding:6px 10px;background:#f0f4f9;border-radius:9px;color:#596a81}
.resident-pwa-steps{list-style:none;display:flex;flex-direction:column;gap:14px;padding:0;margin:18px 0}
.resident-pwa-steps li{display:flex;gap:12px;align-items:flex-start}
.resident-pwa-steps li>span{display:grid;place-items:center;flex:0 0 26px;min-height:26px;border-radius:8px;background:#edf3fa;color:#4f70a0;font-size:13px;font-weight:650}
.resident-pwa-steps li p{font-size:14px;margin:0;line-height:1.8}
.resident-pwa-dialog[data-onboarding=true]>.resident-pwa-actions{justify-content:stretch;flex-direction:column}
.resident-pwa-dialog[data-onboarding=true]>.resident-pwa-actions button{width:100%}
.resident-pwa-dialog[data-onboarding=true]>.resident-pwa-actions button:not([data-primary]){border-color:transparent;background:transparent;color:#596a81}
.resident-pwa-dialog[data-onboarding=true]>img{width:52px;height:52px;border-radius:14px;margin-bottom:16px}

.resident-pwa-dialog[data-onboarding=true]>h2:focus{outline:none}

.resident-pwa-real-preview,.resident-pwa-real-photo{position:relative;display:block;width:100%;padding:0!important;overflow:hidden;background:#f5f8fd!important;border:1px solid #dce6f2!important;border-radius:16px!important;margin:16px 0;text-align:left}
.resident-pwa-real-preview img{display:block;width:100%;height:156px;object-fit:contain;border-radius:0;margin:0}
.resident-pwa-real-preview>span{display:block;padding:10px 12px;font-size:12px;color:#596a81}
.resident-pwa-real-photo img{display:block;width:100%;height:auto;margin:0;border-radius:0}
.resident-pwa-dialog h3{font-size:15px;line-height:1.5;margin:14px 0;color:#2f3a4b}
.resident-pwa-capture-source{font-size:11px!important;color:#647184!important;margin:10px 0!important}
.resident-pwa-device-tabs,.resident-pwa-photo-nav{display:flex;gap:8px;flex-wrap:wrap}
.resident-pwa-device-tabs button{font-size:12px;flex:1;padding:8px}
.resident-pwa-device-tabs button[aria-pressed=true]{border-color:#5876a2;background:#edf3fa;color:#3d5f91}
.resident-pwa-photo-nav{justify-content:space-between}
.resident-pwa-highlight{position:absolute;box-sizing:border-box;pointer-events:none;border:3px solid #5576a5;border-radius:7px}
.resident-pwa-photo-dialog{position:fixed;inset:0;margin:auto;box-sizing:border-box;max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:12px;background:#fffefb;border:1px solid #dce6f2;border-radius:18px;overflow:auto;color:#2f3a4b}
.resident-pwa-photo-dialog::backdrop{background:#26354a99}
.resident-pwa-photo-dialog img{display:block;max-width:100%;max-height:calc(100dvh - 100px);width:auto;object-fit:contain}
.resident-pwa-photo-dialog button{display:block;margin:12px auto 0;border:0;padding:10px 24px;min-height:44px;border-radius:10px;background:#5876a2;color:white;font:inherit}
