.consent-settings {
  border: 1px solid var(--rule-strong);
  border-radius: 3px;
  padding: 1rem 1.1rem;
  margin: 1.25rem 0;
}
.consent-settings p:last-child { margin-bottom: 0; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1rem 0; }
.consent-actions .btn { min-width: 8.5rem; text-align: center; }
.consent-state { color: var(--muted); }

.consent-banner {
  --paper: #ffffff;
  --ink: #15181b;
  --accent: #1c4a78;
  --rule-strong: #c8cac9;
  color: var(--ink);
  font: 400 16.5px/1.64 -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  max-height: 45vh;
  overflow-y: auto;
  position: fixed;
  z-index: 10;
  inset: auto 0 0;
  padding: 1rem 0;
  border-top: 1px solid var(--rule-strong);
  background: var(--paper);
  box-shadow: 0 -0.25rem 1rem rgb(0 0 0 / 12%);
}
.consent-banner .consent-layout {
  display: flex;
  align-items: center;
  gap: 1rem 2rem;
}
.consent-banner p { flex: 1 1 25rem; margin: 0; }
.consent-banner .consent-actions { flex: 1 1 18rem; margin: 0; }
.consent-banner .btn {
  flex: 1 1 8.5rem;
  display: inline-block; padding: 0.55rem 1rem; border-radius: 3px;
  background: transparent; color: var(--accent); border: 1px solid var(--rule-strong);
  font: inherit; font-size: 0.94rem; font-weight: 500; line-height: 1.6; cursor: pointer;
}
.consent-banner .wrap { max-width: 76rem; margin: 0 auto; padding: 0 1.5rem; }
.consent-banner a { color: var(--accent); }
.consent-banner :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (prefers-color-scheme: dark) {
  .consent-banner { --paper: #111315; --ink: #e3e4e3; --accent: #8fb6de; --rule-strong: #3f4347; }
}
@media (max-width: 640px) {
  .consent-banner .consent-layout { align-items: stretch; flex-direction: column; }
  .consent-banner p, .consent-banner .consent-actions { flex-basis: auto; }
}
@media print { .consent-banner { display: none; } }
