/* ---------- Advertising consent panel (src/marketing/pixel.ts) ----------
   Hidden until our script reveals it, anchored to the bottom of the viewport so it never covers
   the page content, and stacked under one column on a phone. The two choices share one button
   style on purpose: accepting advertising must be no easier than refusing it. */
.consent[hidden] { display: none; }
.consent { position: fixed; inset: auto 0 0; z-index: 130; padding: 12px; display: flex; justify-content: center; }
.consent-card {
  display: flex; align-items: flex-start; gap: 20px; width: min(100%, 940px);
  padding: 16px 20px; border-radius: var(--r-lg); background: var(--surface);
  box-shadow: var(--shadow-float); font-size: 14px; line-height: 1.55; color: var(--fg-muted);
}
.consent-body { min-width: 0; }
.consent-title { font-size: 15px; font-weight: 750; color: var(--fg); margin-bottom: 4px; }
.consent-card p { margin: 0; }
.consent-card code { font-family: var(--font-mono); font-size: 0.92em; }
.consent-note { margin-top: 8px; color: var(--fg); font-weight: 600; }
.consent-note[hidden] { display: none; }
.consent-error { color: var(--danger-ink); }
.consent-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-left: auto; flex: none; }
.consent-actions .btn { min-width: 108px; }
@media (max-width: 720px) {
  .consent { padding: 8px; }
  .consent-card { flex-direction: column; gap: 14px; max-height: 70vh; overflow-y: auto; }
  .consent-actions { margin-left: 0; width: 100%; }
  .consent-actions .btn { flex: 1 1 140px; }
}

/* "Cookie preferences" sits with the legal links; shown only once the script that opens it runs. */
.consent-open {
  display: inline-flex; align-items: center; min-height: var(--touch); padding: 0;
  border: 0; background: none; font: inherit; color: var(--fg-subtle); cursor: pointer; text-align: left;
}
.consent-open:hover { color: var(--fg); text-decoration: underline; }
.consent-open[hidden] { display: none; }
