.nb-consent-banner {
  position: fixed;
  z-index: 10020;
  left: 50%;
  bottom: 22px;
  width: min(1120px, calc(100% - 32px));
  padding: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  background: linear-gradient(118deg, #121d4d, #153b76);
  box-shadow: 0 22px 70px rgba(19,18,45,.32);
  transform: translateX(-50%);
}
.nb-consent-copy h2, .nb-consent-dialog h2 { margin: 0 0 8px; color: inherit; font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.2; }
.nb-consent-copy p { max-width: 730px; margin: 0; color: #e0eaf4; font-size: .96rem; line-height: 1.55; }
.nb-consent-copy a, .nb-consent-dialog a { color: inherit; font-weight: 750; text-underline-offset: 3px; }
.nb-consent-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.nb-consent-button, .nb-consent-manage {
  min-height: 44px;
  padding: 10px 16px;
  color: #102261;
  border: 1px solid #bcc9e5;
  border-radius: 10px;
  background: #fff;
  font: inherit;
  font-weight: 780;
  cursor: pointer;
}
.nb-consent-button.is-primary { color: #fff; border-color: #58bff0; background: #176ba7; }
.nb-consent-button:hover, .nb-consent-manage:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(19,18,45,.15); }
.nb-consent-button:focus-visible, .nb-consent-manage:focus-visible, .nb-consent-toggle input:focus-visible { outline: 3px solid #5bc4f1; outline-offset: 3px; }
.nb-consent-backdrop { position: fixed; z-index: 10030; inset: 0; padding: 24px; display: grid; place-items: center; background: rgba(12,20,55,.66); }
.nb-consent-backdrop[hidden] { display: none; }
.nb-consent-dialog { width: min(680px, 100%); max-height: min(760px, calc(100vh - 40px)); overflow: auto; padding: 30px; color: #171d3d; border-radius: 20px; background: #fff; box-shadow: 0 26px 90px rgba(0,0,0,.32); }
.nb-consent-dialog > p { color: #565e72; }
.nb-consent-category { margin: 18px 0 0; padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid #d9dfeb; border-radius: 14px; background: #f7f9fc; }
.nb-consent-category h3, .nb-consent-toggle strong { margin: 0 0 5px; color: #171d3d; font-size: 1.05rem; }
.nb-consent-category p, .nb-consent-toggle small { display: block; margin: 0; color: #5c6478; font-size: .9rem; line-height: 1.45; }
.nb-consent-required { flex: 0 0 auto; color: #176b56; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.nb-consent-toggle { cursor: pointer; }
.nb-consent-toggle input { width: 24px; height: 24px; flex: 0 0 auto; accent-color: #176ba7; }
.nb-consent-privacy { margin: 18px 0; }
.nb-consent-manage { min-height: auto; padding: 0; color: inherit; border: 0; border-radius: 0; background: transparent; font-size: inherit; text-decoration: underline; text-underline-offset: 3px; box-shadow: none; }
.consent-dialog-open { overflow: hidden; }
@media (max-width: 760px) {
  .nb-consent-banner { bottom: 10px; width: calc(100% - 20px); padding: 20px; grid-template-columns: 1fr; gap: 18px; border-radius: 14px; }
  .nb-consent-actions { display: grid; grid-template-columns: 1fr; }
  .nb-consent-button { width: 100%; }
  .nb-consent-backdrop { padding: 10px; align-items: end; }
  .nb-consent-dialog { max-height: calc(100vh - 20px); padding: 22px 18px; border-radius: 16px; }
  .nb-consent-category { align-items: flex-start; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .nb-consent-button, .nb-consent-manage { transition: none; }
}
