/* Push notification opt-in card (app/push.php). Bottom-right on desktop so
   it never covers the cookie banner (bottom-left); a bottom sheet on phones. */
.cc-push {
  position: fixed; right: 16px; bottom: 16px; z-index: 1150;
  width: min(380px, calc(100vw - 32px));
  background: var(--white); color: var(--ink);
  border: 1px solid var(--line); border-top: 3px solid var(--primary); border-radius: var(--radius-lg);
  box-shadow: 0 18px 44px rgba(13, 13, 28, 0.22);
  padding: 18px 18px 16px; font-size: 0.88rem; line-height: 1.5;
  opacity: 0; transform: translateY(12px); transition: opacity 0.25s ease, transform 0.25s ease;
}
.cc-push.is-visible { opacity: 1; transform: translateY(0); }
.cc-push[hidden] { display: none; }
.cc-push p { margin: 0; }
.cc-push-close {
  position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border-radius: 50%;
  font-size: 1.3rem; line-height: 1; color: var(--slate);
}
.cc-push-close:hover { background: var(--panel); color: var(--ink); }
.cc-push-title { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1rem; padding-right: 32px; }
.cc-push-bell {
  width: 32px; height: 32px; flex: 0 0 auto; border-radius: 10px;
  background: var(--primary-light); color: var(--primary); display: inline-flex; align-items: center; justify-content: center;
}
.cc-push-bell svg { width: 18px; height: 18px; }
.cc-push-text { color: var(--slate); margin-top: 8px !important; }
.cc-push-topics { display: grid; gap: 4px; margin: 12px 0 2px; }
.cc-push-topic { display: flex; align-items: center; gap: 8px; min-height: 32px; font-weight: 600; cursor: pointer; }
.cc-push-topic input { width: 18px; height: 18px; accent-color: var(--primary); }
.cc-push-status { min-height: 1.2em; font-size: 0.8rem; color: var(--primary-ink); margin-top: 6px !important; }
.cc-push-status.is-error { color: #B91C1C; }
.cc-push-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.cc-push-btn { flex: 1 1 auto; min-height: 44px; border-radius: 10px; font-weight: 700; font-size: 0.86rem; font-family: var(--body); padding: 0 14px; }
.cc-push-later { background: var(--panel); color: var(--ink); border: 1px solid var(--line); }
.cc-push-later:hover { border-color: var(--line-strong); }
.cc-push-allow { background: var(--primary); color: var(--white); }
.cc-push-allow:hover { background: var(--primary-hover); }
.cc-push-allow:disabled { opacity: 0.7; cursor: progress; }
.cc-push-off { background: transparent; color: #B91C1C; border: 1px solid #FECACA; flex-basis: 100%; }
.cc-push-off[hidden] { display: none; }
@media (max-width: 640px) {
  .cc-push { left: 0; right: 0; bottom: 0; width: 100%; border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
}
