.site-brand-logo { box-sizing: border-box; background: #fff; padding: 3px; border-radius: 6px; }
.pwa-install[hidden] { display: none !important; }
.pwa-install { position: fixed; inset-inline-end: max(14px, env(safe-area-inset-left), env(safe-area-inset-right)); bottom: calc(18px + max(env(safe-area-inset-bottom), var(--bottom-navigation-height, 0px))); z-index: 35; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 15px; border: 1px solid #ffffff50; border-radius: 8px; color: #fff; background: rgb(var(--brand-600)); box-shadow: 0 4px 16px #0f172a24; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.pwa-install:focus-visible, .pwa-install-help button:focus-visible { outline: 3px solid #93c5fd; outline-offset: 3px; }
.pwa-install-help { width: min(380px, calc(100% - 32px)); border: 0; border-radius: 8px; padding: 24px; background: #fff; color: #0f172a; font: inherit; line-height: 1.9; }
.pwa-install-help::backdrop { background: #0f172a80; }
.pwa-install-help h2 { font-size: 18px; font-weight: 700; margin: 0 0 10px; }
.pwa-install-help p { margin: 0 0 20px; }
.pwa-install-help button { background: rgb(var(--brand-600)); color: white; border: 0; border-radius: 8px; padding: 8px 24px; min-height: 44px; font: inherit; cursor: pointer; }
.dark .pwa-install-help { background: #151c2b; color: #f1f5f9; }
@media print { .pwa-install, .pwa-install-help { display: none !important; } }
.device-push-prompt[hidden] { display: none !important; }
.device-push-prompt:not([hidden]) ~ .pwa-install { display: none !important; }
.device-push-prompt { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); background: #0f172aa6; backdrop-filter: blur(3px); color: #172b4d; font: inherit; }
.device-push-card { box-sizing: border-box; width: min(500px, 100%); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; padding: 22px; border: 1px solid #dbeafe; border-radius: 18px; background: #fff; box-shadow: 0 24px 70px #0f172a4d; }
.device-push-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; color: #fff; background: rgb(var(--brand-600)); box-shadow: 0 8px 20px rgb(var(--brand-600) / .24); }
.device-push-icon svg { width: 23px; height: 23px; }
.device-push-copy { min-width: 0; }
.device-push-copy h2 { margin: 1px 0 7px; color: #0f172a; font-size: 18px; font-weight: 800; line-height: 1.5; }
.device-push-copy p { margin: 0; color: #475569; font-size: 13px; line-height: 1.8; }
.device-push-help { margin-top: 10px !important; padding: 10px 12px; border-radius: 10px; color: #9f1239 !important; background: #fff1f2; }
.device-push-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.device-push-prompt button { border: 0; border-radius: 9px; padding: 9px 16px; min-height: 44px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
#device-push-allow { color: #fff; background: rgb(var(--brand-600)); }
#device-push-later { color: #475569; background: #f1f5f9; }
.device-push-prompt button:focus-visible { outline: 2px solid #2563eb; outline-offset: 3px; }
.device-push-prompt[data-permission="denied"] .device-push-icon { background: #e11d48; box-shadow: 0 8px 20px #e11d4838; }
.dark .device-push-card { background: #151c2b; border-color: #334155; color: #f1f5f9; }
.dark .device-push-copy h2 { color: #f8fafc; }
.dark .device-push-copy p { color: #cbd5e1; }
.dark .device-push-help { color: #fecdd3 !important; background: #88133755; }
.device-push-prompt:not(.device-push-prompt--modal) { inset: auto; inset-inline-start: max(14px, env(safe-area-inset-left), env(safe-area-inset-right)); bottom: calc(18px + max(env(safe-area-inset-bottom), var(--bottom-navigation-height, 0px))); width: min(520px, calc(100% - 190px)); display: block; padding: 0; background: transparent; backdrop-filter: none; z-index: 36; }
.device-push-prompt:not(.device-push-prompt--modal) .device-push-card { width: 100%; grid-template-columns: minmax(0, 1fr) auto; padding: 12px 14px; border-radius: 8px; box-shadow: 0 4px 18px #0f172a1c; }
.device-push-prompt:not(.device-push-prompt--modal) .device-push-icon { display: none; }
.device-push-prompt:not(.device-push-prompt--modal) .device-push-copy h2 { font-size: 14px; margin-top: 0; }
.device-push-prompt:not(.device-push-prompt--modal) .device-push-actions { grid-column: 2; grid-row: 1; align-self: center; margin: 0; flex-wrap: nowrap; }
@media (max-width: 639px) {
  .device-push-card { grid-template-columns: 1fr; padding: 18px; }
  .device-push-icon { width: 44px; height: 44px; }
  .device-push-actions { grid-column: 1; }
  .device-push-actions button { flex: 1; }
  .device-push-prompt:not(.device-push-prompt--modal) { inset-inline: 12px; bottom: calc(18px + max(env(safe-area-inset-bottom), var(--bottom-navigation-height, 0px))); width: auto; }
  .device-push-prompt:not(.device-push-prompt--modal) .device-push-card { grid-template-columns: 1fr; }
  .device-push-prompt:not(.device-push-prompt--modal) .device-push-actions { grid-column: 1; grid-row: auto; }
}
@media print { .device-push-prompt { display: none !important; } }
