/* Shared push-notification open modal (all themes) */
.bd-push-modal{
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(16px, env(safe-area-inset-top)) 18px max(16px, env(safe-area-inset-bottom));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
  --bd-push-accent: var(--bd-accent, #3d6df0);
  --bd-push-accent-soft: color-mix(in srgb, var(--bd-push-accent) 18%, transparent);
  --bd-push-glow: color-mix(in srgb, var(--bd-push-accent) 28%, transparent);
}
.bd-push-modal.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.bd-push-modal__backdrop{
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, #0a0c10 55%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
html:not([data-bs-theme="dark"]) .bd-push-modal__backdrop{
  background: color-mix(in srgb, #1a1d24 40%, transparent);
}
.bd-push-modal__dialog{
  position: relative;
  width: min(420px, 100%);
  max-height: min(78vh, 560px);
  overflow: auto;
  padding: 22px 22px 18px;
  border-radius: var(--bd-radius-3, 18px);
  background:
    radial-gradient(120% 80% at 0% 0%, var(--bd-push-glow), transparent 55%),
    var(--bd-surface, #14181f);
  color: var(--bd-text, #eef2f7);
  border: 1px solid color-mix(in srgb, var(--bd-push-accent) 28%, var(--bd-border, rgba(255,255,255,.12)));
  box-shadow: 0 24px 64px rgba(0,0,0,.38);
  transform: translateY(10px) scale(.98);
  transition: transform .22s ease, border-color .2s ease;
}
.bd-push-modal.is-open .bd-push-modal__dialog{
  transform: translateY(0) scale(1);
}
.bd-push-modal__visual{
  width: 52px;
  height: 52px;
  margin: 0 0 12px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: var(--bd-push-accent);
  background: var(--bd-push-accent-soft);
  border: 1px solid color-mix(in srgb, var(--bd-push-accent) 30%, transparent);
}
.bd-push-modal__visual svg{
  width: 34px;
  height: 34px;
  display: block;
}
.bd-push-modal__eyebrow{
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--bd-push-accent);
}
.bd-push-modal__title{
  margin: 0 0 10px;
  font-family: var(--bd-font-display, inherit);
  font-size: 1.25rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--bd-text-strong, var(--bd-text, #fff));
}
.bd-push-modal__body{
  margin: 0;
  font-size: .95rem;
  line-height: 1.5;
  color: var(--bd-muted, #a8b4c4);
  white-space: pre-wrap;
  word-break: break-word;
}
.bd-push-modal__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: stretch;
  margin-top: 20px;
}
.bd-push-modal__btn{
  appearance: none;
  border: 0;
  cursor: pointer;
  min-height: 42px;
  padding: 0 16px;
  border-radius: var(--bd-radius-2, 12px);
  font: inherit;
  font-weight: 650;
  font-size: .92rem;
  flex: 1 1 auto;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .12s ease;
}
.bd-push-modal__btn:active{ transform: translateY(1px); }
.bd-push-modal__btn--primary{
  background: var(--bd-push-accent);
  color: var(--bd-accent-contrast, #fff);
}
.bd-push-modal__btn--primary:hover{
  filter: brightness(1.06);
}

/* --- Spirit variants --- */
.bd-push-modal--birthday{
  --bd-push-accent: #d4a017;
  --bd-push-accent-soft: color-mix(in srgb, #d4a017 20%, transparent);
  --bd-push-glow: color-mix(in srgb, #e8b84a 26%, transparent);
}
.bd-push-modal--motivation,
.bd-push-modal--monthly_success{
  --bd-push-accent: #2f9e7a;
  --bd-push-accent-soft: color-mix(in srgb, #2f9e7a 18%, transparent);
  --bd-push-glow: color-mix(in srgb, #3db892 24%, transparent);
}
.bd-push-modal--missed_you{
  --bd-push-accent: #c47a5a;
  --bd-push-accent-soft: color-mix(in srgb, #c47a5a 18%, transparent);
  --bd-push-glow: color-mix(in srgb, #d29174 22%, transparent);
}
.bd-push-modal--package{
  --bd-push-accent: #c9892e;
  --bd-push-accent-soft: color-mix(in srgb, #c9892e 18%, transparent);
  --bd-push-glow: color-mix(in srgb, #d9a04a 22%, transparent);
}
.bd-push-modal--debt{
  --bd-push-accent: #c45c4a;
  --bd-push-accent-soft: color-mix(in srgb, #c45c4a 16%, transparent);
  --bd-push-glow: color-mix(in srgb, #d06b58 18%, transparent);
}
.bd-push-modal--reminders{
  --bd-push-accent: #3d7ea6;
  --bd-push-accent-soft: color-mix(in srgb, #3d7ea6 18%, transparent);
  --bd-push-glow: color-mix(in srgb, #4a90b8 22%, transparent);
}
.bd-push-modal--ops{
  --bd-push-accent: var(--bd-muted, #8aa0b8);
  --bd-push-accent-soft: color-mix(in srgb, var(--bd-muted, #8aa0b8) 16%, transparent);
  --bd-push-glow: transparent;
}
.bd-push-modal--broadcast,
.bd-push-modal--default{
  --bd-push-accent: var(--bd-accent, #3d6df0);
}

html:not([data-bs-theme="dark"]) .bd-push-modal--birthday{
  --bd-push-accent: #b8860b;
}
html:not([data-bs-theme="dark"]) .bd-push-modal--motivation,
html:not([data-bs-theme="dark"]) .bd-push-modal--monthly_success{
  --bd-push-accent: #217a5c;
}
html:not([data-bs-theme="dark"]) .bd-push-modal--missed_you{
  --bd-push-accent: #a86548;
}
html:not([data-bs-theme="dark"]) .bd-push-modal--debt{
  --bd-push-accent: #b04a3a;
}

@keyframes bd-push-spark {
  0%, 100% { opacity: .35; transform: scale(.9); }
  50% { opacity: 1; transform: scale(1.15); }
}
.bd-push-modal--birthday .bd-push-modal__spark{
  transform-origin: center;
  animation: bd-push-spark 1.8s ease-in-out infinite;
}
.bd-push-modal--birthday .bd-push-modal__spark--2{ animation-delay: .35s; }
.bd-push-modal--birthday .bd-push-modal__spark--3{ animation-delay: .7s; }

@media (prefers-reduced-motion: reduce){
  .bd-push-modal,
  .bd-push-modal__dialog,
  .bd-push-modal--birthday .bd-push-modal__spark{
    transition: none !important;
    animation: none !important;
  }
}
