/* Consent-Oberflaeche. Liest ausschliesslich Skin-Variablen, damit sie in
   allen sechs Stilen mitgeht und in keinem falsch aussieht. */

#cc-banner, #cc-panel, #cc-fab { font-family: var(--f-body); }

#cc-banner[hidden], #cc-panel[hidden], #cc-fab[hidden] { display: none; }

/* ---------- Banner ---------- */
#cc-banner {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9500;
  background: var(--bg-deep);
  border-top: 3px solid var(--border-hi);
  padding: calc(var(--u) * 5) 0;
  transform: translateY(100%);
  transition: transform .3s steps(4);
}
#cc-banner[data-visible='true'] { transform: translateY(0); }

.cc-in { width: min(100% - calc(var(--u) * 8), var(--maxw)); margin-inline: auto; }
.cc-h { font-family: var(--f-display); font-size: .78rem; text-transform: uppercase;
  color: var(--accent); margin: 0 0 calc(var(--u) * 3); letter-spacing: .04em; }
.cc-t { font-size: .95rem; line-height: 1.6; margin: 0 0 calc(var(--u) * 4); max-width: 68ch; }
.cc-t a { color: var(--accent-2); }

/* Gleiche Groesse, gleiches Gewicht, gleiche Farbe fuer Ja und Nein.
   Ein hervorgehobenes "Alles akzeptieren" waere ein Dark Pattern und
   macht die Einwilligung angreifbar. */
.cc-btns { display: flex; gap: calc(var(--u) * 3); flex-wrap: wrap; }
.cc-btns .btn { font-size: .68rem; }

/* ---------- Einstellungen ---------- */
#cc-panel {
  position: fixed; inset: 0; z-index: 9600;
  background: #000000cc;
  display: flex; align-items: center; justify-content: center;
  padding: calc(var(--u) * 4);
  opacity: 0; transition: opacity .3s;
}
#cc-panel[data-visible='true'] { opacity: 1; }

.cc-box {
  background: var(--surface-2);
  border: 3px solid var(--border-hi);
  box-shadow: calc(var(--u) * 1.5) calc(var(--u) * 1.5) 0 var(--shadow);
  padding: calc(var(--u) * 6);
  max-width: 42rem; width: 100%;
  max-height: 86vh; overflow-y: auto;
}

.cc-row {
  display: flex; gap: calc(var(--u) * 4); align-items: flex-start;
  padding: calc(var(--u) * 4) 0;
  border-bottom: 2px solid var(--border);
}
.cc-row:last-of-type { border-bottom: 0; }
.cc-row__body { flex: 1; min-width: 0; }
.cc-row__t { font-family: var(--f-display); font-size: .62rem; text-transform: uppercase;
  color: var(--fg); margin: 0 0 calc(var(--u) * 2); letter-spacing: .04em; }
.cc-row__d { font-size: .88rem; color: var(--fg-dim); margin: 0; line-height: 1.55; }
.cc-row__d code { font-family: var(--f-term); font-size: 1.05em; color: var(--accent-3); }

/* Schalter im Pixel-Stil, aber ein echtes Checkbox-Element darunter. */
.cc-sw { position: relative; flex: none; width: calc(var(--u) * 13); height: calc(var(--u) * 7); }
.cc-sw input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.cc-sw span {
  position: absolute; inset: 0; pointer-events: none;
  border: 3px solid var(--border); background: var(--bg-deep);
}
.cc-sw span::after {
  content: ''; position: absolute; top: 2px; left: 2px;
  width: calc(var(--u) * 5); height: calc(var(--u) * 5 - 4px);
  background: var(--fg-dim);
  transition: transform .12s steps(3), background-color .12s steps(2);
}
.cc-sw input:checked + span { border-color: var(--border-hi); }
.cc-sw input:checked + span::after { transform: translateX(calc(var(--u) * 6)); background: var(--accent-3); }
.cc-sw input:disabled + span { opacity: .55; }
.cc-sw input:disabled { cursor: not-allowed; }
.cc-sw input:focus-visible + span { outline: 3px solid var(--border-hi); outline-offset: 2px; }

/* ---------- Wiederoeffner ---------- */
#cc-fab {
  position: fixed; left: calc(var(--u) * 4); bottom: calc(var(--u) * 4);
  z-index: 9400;
  width: calc(var(--u) * 11); height: calc(var(--u) * 11);
  background: var(--surface-2); color: var(--fg);
  border: 3px solid var(--border);
  cursor: pointer; font-size: 1.15rem; line-height: 1;
  opacity: 0; transition: opacity .3s, border-color .12s;
}
#cc-fab[data-visible='true'] { opacity: .75; }
#cc-fab:hover { opacity: 1; border-color: var(--border-hi); }

@media (max-width: 560px) {
  .cc-btns .btn { flex: 1 1 100%; text-align: center; }
  .cc-box { padding: calc(var(--u) * 4); }
}
