
/* ═══════════════ Cookie Consent Banner – DSGVO/TDDDG 2026 ═══════════════ */
.cookie-banner{
  position: fixed;
  left: 1rem; right: 1rem; bottom: 1rem;
  max-width: 30rem;
  margin-left: auto; margin-right: auto;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 10px 40px rgba(2,8,23,.12);
  font-size: 0.875rem;
  line-height: 1.5;
  z-index: 9999;
  color: #334155;
  max-height: 90vh;
  overflow-y: auto;
}
.cb-hidden{ display:none !important; }
.cb-heading{ font-weight:700; font-size:1rem; margin:0 0 0.5rem; color:#0f172a; }
.cb-info{ margin:0 0 0.5rem; }
.cb-link-row{ margin:0 0 1rem; }
.cb-ds-link{ color:#07AFC7; font-size:0.8rem; text-decoration:underline; }
.cb-ds-link:hover{ color:#0891a2; }

/* Buttons */
.cb-actions{ display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:1rem; }
.cb-btn{
  flex:1 1 auto;
  padding:0.625rem 1rem;
  border-radius:0.625rem;
  font-weight:600;
  font-size:0.875rem;
  cursor:pointer;
  border:none;
  transition:all 0.2s ease;
  text-align:center;
  min-width:0;
}
.cb-btn-accept{
  background:#07AFC7;
  color:#fff;
  box-shadow:0 2px 8px rgba(7,175,199,0.25);
}
.cb-btn-accept:hover{ background:#0891a2; }
.cb-btn-reject{
  background:#f1f5f9;
  color:#0f172a;
  border:1px solid #e2e8f0;
}
.cb-btn-reject:hover{ background:#e2e8f0; }
.cb-btn-settings{
  background:transparent;
  color:#64748b;
  border:1px solid #e2e8f0;
}
.cb-btn-settings:hover{ color:#0f172a; border-color:#cbd5e1; }
.cb-btn-save{
  background:#0f172a;
  color:#fff;
}
.cb-btn-save:hover{ background:#1e293b; }

/* Category rows */
.cb-category{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0.75rem 0;
  border-bottom:1px solid #f1f5f9;
}
.cb-category:last-of-type{ border-bottom:none; }
.cb-cat-info{ flex:1; min-width:0; }
.cb-cat-label{ display:block; font-weight:600; font-size:0.875rem; color:#0f172a; }
.cb-cat-desc{ display:block; font-size:0.75rem; color:#64748b; margin-top:0.125rem; }
.cb-badge{
  font-size:0.7rem;
  font-weight:600;
  color:#059669;
  background:#ecfdf5;
  padding:0.25rem 0.625rem;
  border-radius:999px;
  white-space:nowrap;
  flex-shrink:0;
}

/* Toggle switch */
.cb-toggle{
  position:relative;
  display:inline-block;
  width:2.75rem;
  height:1.5rem;
  flex-shrink:0;
  cursor:pointer;
}
.cb-toggle input{
  opacity:0;
  width:0;
  height:0;
  position:absolute;
}
.cb-slider{
  position:absolute;
  inset:0;
  background:#cbd5e1;
  border-radius:999px;
  transition:background 0.25s ease;
}
.cb-slider::before{
  content:'';
  position:absolute;
  left:2px;
  top:2px;
  width:1.25rem;
  height:1.25rem;
  background:#fff;
  border-radius:50%;
  transition:transform 0.25s ease;
  box-shadow:0 1px 3px rgba(0,0,0,0.15);
}
.cb-toggle input:checked + .cb-slider{ background:#07AFC7; }
.cb-toggle input:checked + .cb-slider::before{ transform:translateX(1.25rem); }
.cb-toggle input:focus-visible + .cb-slider{ outline:2px solid #07AFC7; outline-offset:2px; }

mark{ background: #FFFB91; padding: .1rem .25rem; border-radius: .25rem; }
