/* Notification settings and the installed-app prompt. */
.push-device-card{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--panel) 92%,#7c5cff 8%)}
.push-device-row{display:flex;align-items:center;gap:12px}
.push-device-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#2f80ff,#7b4dff)}
.push-device-icon svg{width:20px;height:20px}
.push-device-text{flex:1;min-width:0;display:grid;gap:2px}
.push-device-text strong{font-size:15px}
#notificationPreferences #pushStatus{margin:0;font-size:13px;line-height:1.4;color:var(--muted)}
.push-help{margin:0;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45;background:color-mix(in srgb,#f2a93b 14%,transparent);color:var(--text)}
#pushTest{justify-self:start}
.push-topics-title{margin:18px 0 6px;font-size:14px}
.push-topics{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.push-topic{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:12px;margin:0!important;padding:12px 14px;font-size:14px}
.push-topic+.push-topic{border-top:1px solid var(--line)}
.push-topics-note{margin:10px 0 0}
/* iOS-style switch built on a real checkbox. */
.push-switch{position:relative;flex:none;display:inline-flex;width:50px;height:30px;margin:0!important}
.push-switch input{position:absolute;inset:0;width:100%!important;height:100%!important;margin:0!important;opacity:0;cursor:pointer;z-index:1}
.push-switch input+span{position:absolute;inset:0;border-radius:99px;background:color-mix(in srgb,var(--muted) 35%,transparent);transition:background .2s ease}
.push-switch input+span::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:transform .25s cubic-bezier(.3,1.3,.5,1)}
.push-switch input:checked+span{background:linear-gradient(135deg,#2f80ff,#7b4dff)}
.push-switch input:checked+span::after{transform:translateX(20px)}
.push-switch input:focus-visible+span{outline:2px solid #7b4dff;outline-offset:2px}
.push-switch input:disabled+span{opacity:.45}
/* Prompt shown once in the installed app. */
.push-offer{position:fixed;z-index:1600;left:12px;right:12px;bottom:calc(100px + env(safe-area-inset-bottom,0px));display:flex;gap:12px;align-items:flex-start;max-width:460px;margin:0 auto;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);box-shadow:0 14px 40px rgba(0,0,0,.25);animation:box-pop-in .3s cubic-bezier(.22,1,.36,1) both}
.push-offer-body{display:grid;gap:6px;min-width:0}
.push-offer-body strong{font-size:15px}
.push-offer-body p{margin:0;font-size:13px;line-height:1.45;color:var(--muted)}
.push-offer-actions{display:flex;gap:8px;margin-top:4px}
.push-offer-status:empty{display:none}
@media (min-width:1100px){.push-offer{bottom:24px;left:auto;right:24px}}
@media (prefers-reduced-motion:reduce){.push-offer{animation:none}.push-switch input+span,.push-switch input+span::after{transition:none}}
.push-offer{padding-right:44px}
.push-offer-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.push-offer-close svg{width:18px;height:18px}
.push-offer.is-working .push-offer-status::before{content:"";display:inline-block;width:12px;height:12px;margin-right:7px;vertical-align:-1px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:posting-spin .8s linear infinite}
.push-offer.is-done .push-offer-status{color:#14a37f;font-weight:600}
