/**
 * Rechtstexte (Datenschutz / Impressum / Admin): Lesefluss, Print, keine Theme-Hardcodes.
 * Farben nur über bestehende Tokens (--ink, --muted, --line, --bg-elev, --pad, --focus).
 */

.legal-page {
  overflow: auto;
  padding: var(--pad, 1.25rem);
  max-width: 46rem;
  margin: 0 auto;
  color: var(--ink, var(--text-color, inherit));
}

.legal-main {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.legal-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
}

/* Toolbar ist <nav> — kein Listenstil; Fokus über :focus-visible / accessibility.css. */
.legal-toolbar a {
  color: var(--ink, inherit);
  text-decoration-thickness: 0.08em;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.legal-page h1 {
  margin: 0;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  color: var(--ink, inherit);
}

.legal-page h2 {
  margin: 1.4rem 0 0.45rem;
  font-size: 1.12rem;
  color: var(--ink, inherit);
}

.legal-page article,
.legal-page p,
.legal-page li {
  color: var(--ink, inherit);
  line-height: 1.55;
}

/*
 * Sekundärtext bleibt lesbar: --muted ist in Light/Dark AA-geprüft (docs/contrast.md).
 * Fallback auf --ink, falls ein Custom-Theme --muted zu schwach setzt.
 */
.legal-page .muted,
.legal-lang-note {
  color: var(--muted, var(--ink, inherit));
}

.legal-page a {
  color: var(--ink, inherit);
  text-decoration-thickness: 0.08em;
}

.legal-page a:focus-visible,
.legal-toolbar button:focus-visible,
.legal-main:focus-visible,
.privacy-admin-form :focus-visible {
  outline: 2px solid var(--focus, currentColor);
  outline-offset: 2px;
}

/* Erhöhter Kontrast: Rechtstexte und Hinweise ohne Theme-Hardcodes. */
@media (prefers-contrast: more) {
  .legal-page .muted,
  .legal-lang-note {
    color: var(--ink, inherit);
  }

  .legal-page a {
    text-decoration-thickness: 0.12em;
  }
}

.legal-versions {
  padding-left: 1.2rem;
}

.legal-nav {
  margin-top: 1.5rem;
}

.privacy-admin-form {
  display: grid;
  gap: 0.85rem;
}

.privacy-admin-form fieldset {
  border: 1px solid var(--line, currentColor);
  border-radius: 12px;
  padding: 0.75rem 1rem 1rem;
  margin: 0;
}

.privacy-admin-form legend {
  color: var(--ink, inherit);
  font-weight: 650;
  padding: 0 0.35rem;
}

/*
  Form-Chrome: innere Fieldsets in collapsible Abschnitten ohne Doppelrahmen
  (Rahmen kommt von .admin-form-section).
*/
.privacy-admin-form .privacy-admin-fieldset-plain {
  border: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.privacy-admin-form fieldset.admin-form-section {
  /* Basis-Abschnitt: Chrome von admin-form-section, kein extra Fieldset-Rahmen. */
  border: none;
  padding: inherit;
}

.privacy-admin-form .admin-form-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}

/* Druck / „Als PDF sichern“: nur die sichtbare Rechtsseite, kein App-Chrome. */
@media print {
  html,
  body,
  .app {
    overflow: visible !important;
    height: auto !important;
    background: #fff !important;
    color: #111 !important;
  }

  .skip-link,
  .app-footer,
  .consent-dialog,
  .no-print,
  #admin-chrome,
  .view[hidden] {
    display: none !important;
  }

  #view-privacy:not([hidden]),
  #view-impressum:not([hidden]),
  #view-admin-privacy:not([hidden]) {
    display: block !important;
    overflow: visible !important;
    position: static !important;
    max-width: none;
    padding: 0;
    color: #111;
  }

  a[href]::after {
    content: none;
  }
}
