/* Einwilligungsbanner (DSGVO / § 25 TDDDG).
   Eigene Klassennamen (nwc-*) und eigene Farben mit Rueckfall, damit dieselbe
   Datei auf der Website (tokens.css) und im Partnerportal (partner.css) passt. */
.nwc-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9000; padding: 18px 24px;
  background: var(--surface, #111935); color: var(--text, var(--ink, #EEF1FF));
  border-top: 1px solid var(--border, var(--line, rgba(154,163,199,.16)));
  box-shadow: 0 -20px 60px rgba(0,0,0,.45); backdrop-filter: blur(16px);
  font-family: inherit;
}
.nwc-in { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.nwc-in .nwc-txt { flex: 1; min-width: 280px; }
.nwc-in h4 { margin: 0 0 6px; font-size: 16px; font-weight: 600; }
.nwc-in p { margin: 0; color: var(--muted, #9AA3C7); font-size: 13.5px; line-height: 1.5; max-width: 72ch; }
.nwc-acts { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.nwc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 18px; border-radius: 10px; border: 1px solid transparent;
  font-weight: 600; font-size: 14px; cursor: pointer; font-family: inherit;
  background: transparent; color: inherit;
}
.nwc-btn.ghost { border-color: var(--border, var(--line, rgba(154,163,199,.3))); }
.nwc-btn.primary { background: var(--accent, var(--blue, #2E3CF2)); color: #fff; }
.nwc-link {
  background: none; border: 0; color: var(--muted, #9AA3C7); font-size: 13.5px;
  cursor: pointer; text-decoration: underline; padding: 8px 4px; font-family: inherit;
}
.nwc-link:hover { color: var(--text, var(--ink, #fff)); }
.nwc-a { color: var(--green, var(--accent, #17C08B)); text-decoration: underline; }

.nwc-ov {
  position: fixed; inset: 0; z-index: 9100; background: rgba(6,9,24,.72);
  backdrop-filter: blur(4px); display: grid; place-items: center; padding: 20px; overflow-y: auto;
}
.nwc-modal {
  width: 100%; max-width: 600px; margin: auto; border-radius: 16px; padding: 28px;
  background: var(--surface, #111935); color: var(--text, var(--ink, #EEF1FF));
  border: 1px solid var(--border, var(--line, rgba(154,163,199,.16)));
}
.nwc-modal h3 { margin: 0 0 4px; font-size: 20px; }
.nwc-sub { color: var(--muted, #9AA3C7); font-size: 14px; margin: 0 0 22px; }
.nwc-tog { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
  padding: 16px 0; border-bottom: 1px solid var(--border, rgba(154,163,199,.1)); }
.nwc-tog:last-of-type { border-bottom: 0; }
.nwc-tn { font-weight: 600; font-size: 14.5px; margin: 0 0 4px; }
.nwc-td { color: var(--muted, #9AA3C7); font-size: 12.5px; margin: 0; line-height: 1.45; max-width: 46ch; }
.nwc-sw { position: relative; width: 44px; height: 25px; flex: none; border-radius: 999px; border: 0;
  cursor: pointer; background: rgba(154,163,199,.22); transition: background .18s ease; }
.nwc-sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 19px; height: 19px;
  border-radius: 50%; background: var(--text, #EEF1FF); transition: transform .18s ease; }
.nwc-sw.on { background: var(--accent, var(--blue, #2E3CF2)); }
.nwc-sw.on::after { transform: translateX(19px); }
.nwc-sw:disabled { cursor: not-allowed; background: rgba(23,192,139,.4); }
.nwc-sw:disabled::after { transform: translateX(19px); }
.nwc-note { font-size: 12px; color: var(--muted, #9AA3C7); margin: 18px 0 0; line-height: 1.5;
  padding-left: 12px; border-left: 2px solid rgba(233,169,60,.4); }
.nwc-foot { display: flex; gap: 10px; margin-top: 22px; flex-wrap: wrap; }
.nwc-foot .nwc-btn.primary { flex: 1; min-width: 150px; }

@media (max-width: 760px) {
  .nwc-bar { padding: 16px; }
  .nwc-acts { width: 100%; }
  .nwc-acts .nwc-btn { flex: 1; }
}
