.consent-banner {
  position: fixed;
  z-index: 20;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  left: max(1rem, env(safe-area-inset-left));
  max-width: 42rem;
  max-height: calc(100dvh - 2rem);
  margin: 0 auto;
  padding: 1.25rem;
  overflow-y: auto;
  border: 1px solid oklch(0.8 0.03 275 / 0.45);
  border-radius: 0.8rem;
  background: oklch(0.14 0.04 279 / 0.98);
  color: oklch(0.97 0.005 275);
  box-shadow: 0 1rem 3rem oklch(0 0 0 / 0.38);
}
.consent-banner h2 { margin: 0; font-size: 1.05rem; }
.consent-banner p { margin: 0.65rem 0 0; color: oklch(0.84 0.02 275); line-height: 1.5; font-size: 0.88rem; }
.consent-banner a { color: oklch(0.82 0.13 260); }
.consent-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1rem; }
.consent-actions button,
.consent-manage {
  min-width: 9.5rem;
  min-height: 2.75rem;
  padding: 0.6rem 0.85rem;
  border: 1px solid oklch(0.8 0.03 275 / 0.55);
  border-radius: 0.45rem;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.consent-actions .consent-accept { border-color: oklch(0.62 0.2 27); background: oklch(0.58 0.22 27); }
.consent-manage {
  position: fixed;
  z-index: 19;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  min-width: auto;
  background: oklch(0.14 0.04 279 / 0.9);
  font-size: 0.78rem;
}
.consent-banner button:focus-visible,
.consent-manage:focus-visible { outline: 3px solid oklch(0.82 0.13 260); outline-offset: 3px; }
@media (max-width: 34rem) {
  .consent-banner { padding: 1rem; }
  .consent-actions button { flex: 1 1 100%; }
}
