/* ==========================================================================
 * inline-styles.css – ausgelagerte Inline-Stile
 * Stand: 27.09.2026
 *
 * Die Content-Security-Policy dieser Webseite (style-src 'self', ohne
 * 'unsafe-inline') blockiert style-Attribute und <style>-Blöcke im HTML.
 * Die bisher dort notierten Angaben stehen deshalb hier.
 *
 * Laden NACH design-d.css.
 * ========================================================================== */

/* --------------------------------------------------------------------------
 * 1. Hilfsklassen (ersetzen style-Attribute)
 *    !important bildet den Vorrang eines style-Attributs nach, damit die
 *    Wirkung dieselbe bleibt wie beim früheren Inline-Stil.
 * -------------------------------------------------------------------------- */
.u-mt-0 { margin-top: 0 !important; }
.u-mt-050 { margin-top: 0.5rem !important; }
.u-mt-075 { margin-top: 0.75rem !important; }
.u-mt-100 { margin-top: 1rem !important; }
.u-mt-125 { margin-top: 1.25rem !important; }
.u-mt-150 { margin-top: 1.5rem !important; }
.u-mt-175 { margin-top: 1.75rem !important; }
.u-mt-200 { margin-top: 2rem !important; }
.u-mt-225 { margin-top: 2.25rem !important; }
.u-mb-0 { margin-bottom: 0 !important; }
.u-mb-075 { margin-bottom: 0.75rem !important; }
.u-m-0 { margin: 0 !important; }
.u-m-0-0-050 { margin: 0 0 0.5rem !important; }
.u-ml-125em { margin-left: 1.25em !important; }
.u-no-underline { text-decoration: none !important; }
.u-italic { font-style: italic !important; }
.u-fw-600 { font-weight: 600 !important; }
.u-muted { color: var(--text-muted) !important; }
.u-fs-10px { font-size: 10px !important; }
.u-fs-11px { font-size: 11px !important; }
.u-fs-12px { font-size: 12px !important; }
.u-fs-13px { font-size: 13px !important; }
.u-fs-14px { font-size: 14px !important; }
.u-fs-15px { font-size: 15px !important; }
.u-fs-0875rem { font-size: 0.875rem !important; }
.u-fs-090em { font-size: 0.9em !important; }
.u-fs-095em { font-size: 0.95em !important; }

/* --------------------------------------------------------------------------
 * 2. Von Wizards erzeugte Hinweiskästen (vorher Inline-Stile im JavaScript)
 * -------------------------------------------------------------------------- */
.tom-context-warning {
  border-left: 3px solid #CC0000;
  padding: 0.5rem 0.75rem;
  margin: 0.5rem 0;
  background: #FFF7F7;
}
:root[data-theme="dark"] .tom-context-warning {
  border-left-color: #FF8A8A;
  background: rgba(255, 138, 138, 0.10);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .tom-context-warning {
    border-left-color: #FF8A8A;
    background: rgba(255, 138, 138, 0.10);
  }
}

/* Neutrale Variante des Hinweiskastens im Forschungsdaten-Wizard
 * (vorher Inline-Stil in forschungsds.js) */
.dsfa-warning.dsfa-warning--neutral {
  background: var(--bg-subtle) !important;
  border-color: var(--border-strong) !important;
  color: var(--text) !important;
}

/* --------------------------------------------------------------------------
 * 3. Schrift- und Linienangaben der Themen-Diagramme
 *    (vorher <style>-Blöcke innerhalb der SVG-Grafiken). Der :where()-Präfix
 *    begrenzt die Regeln auf die jeweilige Grafik, ohne die Spezifität zu
 *    erhöhen; Farben und Konturen aus patches.css (.theme-diagram svg …)
 *    behalten damit wie bisher Vorrang.
 * -------------------------------------------------------------------------- */
/* anonymisierung.html */
:where(.dg-anonymisierung) .axis { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1; }
:where(.dg-anonymisierung) .pt { fill:var(--accent); stroke:var(--bg); stroke-width:2; }
:where(.dg-anonymisierung) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-anonymisierung) .nd.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-anonymisierung) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:12px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-anonymisierung) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:10.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-anonymisierung) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-anonymisierung) .ax { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text); font-weight:700; }
:where(.dg-anonymisierung) .axsub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:10.5px; fill:var(--text-muted); }

/* avv.html */
:where(.dg-avv) .role { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-avv) .role.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-avv) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:14px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-avv) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-avv) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-avv) .arr { fill:none; stroke:var(--accent); stroke-width:2; }
:where(.dg-avv) .arr-d { fill:none; stroke:var(--border-strong); stroke-width:1.5; stroke-dasharray:5,4; }
:where(.dg-avv) .lbl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text); font-weight:700; text-anchor:middle; }
:where(.dg-avv) .lbl-s { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }

/* beschaeftigtendatenschutz.html */
:where(.dg-beschaeftigtendatenschutz) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-beschaeftigtendatenschutz) .nd.h { fill:var(--accent-muted); stroke:var(--accent); stroke-width:2; }
:where(.dg-beschaeftigtendatenschutz) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:14px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-beschaeftigtendatenschutz) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-beschaeftigtendatenschutz) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-beschaeftigtendatenschutz) .lbl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--accent); font-weight:700; text-anchor:middle; letter-spacing:0.04em; text-transform:uppercase; }
:where(.dg-beschaeftigtendatenschutz) .ln { fill:none; stroke:var(--border-strong); stroke-width:1.2; stroke-dasharray:4,3; }

/* datenpannen.html */
:where(.dg-datenpannen) .ln { stroke:var(--accent); stroke-width:3; fill:none; }
:where(.dg-datenpannen) .ln2 { stroke:var(--border-strong); stroke-width:2; fill:none; stroke-dasharray:4,4; }
:where(.dg-datenpannen) .pt { fill:var(--accent); stroke:var(--bg); stroke-width:3; }
:where(.dg-datenpannen) .pt2 { fill:var(--bg-elevated); stroke:var(--accent); stroke-width:2; }
:where(.dg-datenpannen) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-datenpannen) .nd.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-datenpannen) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-datenpannen) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-datenpannen) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-datenpannen) .h { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11.5px; fill:var(--accent); text-anchor:middle; font-weight:700; }

/* datenvernichtung.html */
:where(.dg-datenvernichtung) .ax { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; }
:where(.dg-datenvernichtung) .h { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:12px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-datenvernichtung) .stf { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:13px; fill:var(--text); text-anchor:middle; font-weight:600; }
:where(.dg-datenvernichtung) .row { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:12px; fill:var(--text); }
:where(.dg-datenvernichtung) .cell { fill:var(--bg-subtle); stroke:var(--border); }
:where(.dg-datenvernichtung) .cell.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-datenvernichtung) .cap { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); }

/* drittlandstransfer.html */
:where(.dg-drittlandstransfer) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-drittlandstransfer) .nd.q { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-drittlandstransfer) .nd.ok { fill:var(--bg-subtle); stroke:var(--accent); }
:where(.dg-drittlandstransfer) .nd.bad { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-dasharray:4,4; }
:where(.dg-drittlandstransfer) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-drittlandstransfer) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-drittlandstransfer) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-drittlandstransfer) .ln { fill:none; stroke:var(--accent); stroke-width:1.5; }
:where(.dg-drittlandstransfer) .lbl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text); font-weight:700; text-anchor:middle; }
:where(.dg-drittlandstransfer) .sym { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:18px; font-weight:700; text-anchor:middle; }
:where(.dg-drittlandstransfer) .sym-ok { fill:#16a34a; }
:where(.dg-drittlandstransfer) .sym-bad { fill:#dc2626; }

/* dsfa.html */
:where(.dg-dsfa) .step { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-dsfa) .step.active { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-dsfa) .num { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:24px; fill:var(--accent); font-weight:700; text-anchor:middle; }
:where(.dg-dsfa) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-dsfa) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-dsfa) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-dsfa) .arr { fill:none; stroke:var(--accent); stroke-width:2; marker-end:url(#dsfa-arrow); }

/* einwilligung.html */
:where(.dg-einwilligung) .q { fill:var(--accent-muted); stroke:var(--accent); stroke-width:2; }
:where(.dg-einwilligung) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-einwilligung) .qttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:18px; fill:var(--text); font-weight:700; text-anchor:middle; }
:where(.dg-einwilligung) .qart { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11.5px; fill:var(--accent); text-anchor:middle; font-weight:700; }
:where(.dg-einwilligung) .qsub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-einwilligung) .ctr { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:12px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-einwilligung) .ctra { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-einwilligung) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:14px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-einwilligung) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); text-anchor:middle; }

/* elabftw.html */
:where(.dg-elabftw) .lyr { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-elabftw) .lyr.eu { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-elabftw) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13.5px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-elabftw) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-elabftw) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-elabftw) .lbl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); font-weight:600; }

/* exportkontrolle.html */
:where(.dg-exportkontrolle) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-exportkontrolle) .nd.q { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-exportkontrolle) .nd.ok { fill:var(--bg-subtle); stroke:var(--accent); }
:where(.dg-exportkontrolle) .nd.bad { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-dasharray:4,4; }
:where(.dg-exportkontrolle) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-exportkontrolle) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-exportkontrolle) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-exportkontrolle) .ln { fill:none; stroke:var(--accent); stroke-width:1.5; }
:where(.dg-exportkontrolle) .lbl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text); font-weight:700; text-anchor:middle; }
:where(.dg-exportkontrolle) .sym { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:18px; font-weight:700; text-anchor:middle; }
:where(.dg-exportkontrolle) .sym-ok { fill:#16a34a; }
:where(.dg-exportkontrolle) .sym-warn { fill:#d97706; }
:where(.dg-exportkontrolle) .sym-bad { fill:#dc2626; }

/* forschungszweck.html */
:where(.dg-forschungszweck) .step { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-forschungszweck) .step.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-forschungszweck) .num { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:24px; fill:var(--accent); font-weight:700; }
:where(.dg-forschungszweck) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13.5px; fill:var(--text); font-weight:600; }
:where(.dg-forschungszweck) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); }
:where(.dg-forschungszweck) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); }
:where(.dg-forschungszweck) .arrow { fill:none; stroke:var(--accent); stroke-width:2; }

/* fotos.html */
:where(.dg-fotos) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-fotos) .nd.q { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-fotos) .nd.ok { fill:var(--bg-subtle); stroke:var(--accent); }
:where(.dg-fotos) .nd.bad { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-dasharray:4,4; }
:where(.dg-fotos) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-fotos) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-fotos) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-fotos) .ln { fill:none; stroke:var(--accent); stroke-width:1.5; }
:where(.dg-fotos) .lbl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text); font-weight:700; text-anchor:middle; }
:where(.dg-fotos) .sym { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:18px; font-weight:700; text-anchor:middle; }
:where(.dg-fotos) .sym-ok { fill:#16a34a; }
:where(.dg-fotos) .sym-bad { fill:#dc2626; }

/* gemeinsame-verantwortlichkeit.html */
:where(.dg-gemeinsame-verantwortlichkeit) .role { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-gemeinsame-verantwortlichkeit) .role.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-gemeinsame-verantwortlichkeit) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:14px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-gemeinsame-verantwortlichkeit) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-gemeinsame-verantwortlichkeit) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-gemeinsame-verantwortlichkeit) .ln { fill:none; stroke:var(--accent); stroke-width:1.5; marker-end:url(#rl-arrow); }
:where(.dg-gemeinsame-verantwortlichkeit) .ln2 { fill:none; stroke:var(--accent); stroke-width:1.5; marker-end:url(#rl-arrow); marker-start:url(#rl-arrow); }
:where(.dg-gemeinsame-verantwortlichkeit) .lbl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text); font-weight:700; text-anchor:middle; }

/* hochschuldatenschutz.html */
:where(.dg-hochschuldatenschutz) .layer { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-hochschuldatenschutz) .layer.eu { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-hochschuldatenschutz) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:14px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-hochschuldatenschutz) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-hochschuldatenschutz) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-hochschuldatenschutz) .lvl { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); font-weight:600; }

/* ki-governance.html */
:where(.dg-ki-governance) .lvl { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-ki-governance) .lvl.top { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-ki-governance) .label { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:14px; fill:var(--text); font-weight:600; }
:where(.dg-ki-governance) .sublabel { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); }
:where(.dg-ki-governance) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--text-subtle); }

/* ki-transkription.html */
:where(.dg-ki-transkription) .hd { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-ki-transkription) .row { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; }
:where(.dg-ki-transkription) .cell { fill:var(--bg-subtle); stroke:var(--border); stroke-width:1; }
:where(.dg-ki-transkription) .edge-ok { fill:#22c55e; stroke:none; }
:where(.dg-ki-transkription) .edge-warn { fill:#f59e0b; stroke:none; }
:where(.dg-ki-transkription) .edge-bad { fill:#ef4444; stroke:none; }
:where(.dg-ki-transkription) .sym { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; font-weight:700; text-anchor:end; }
:where(.dg-ki-transkription) .sym-ok { fill:#16a34a; }
:where(.dg-ki-transkription) .sym-warn { fill:#d97706; }
:where(.dg-ki-transkription) .sym-bad { fill:#dc2626; }
:where(.dg-ki-transkription) .ct { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text); text-anchor:middle; }
:where(.dg-ki-transkription) .ct-s { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:10.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-ki-transkription) .leg { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); }

/* mailinglisten.html */
:where(.dg-mailinglisten) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-mailinglisten) .nd.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-mailinglisten) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13.5px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-mailinglisten) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-mailinglisten) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-mailinglisten) .grp { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--accent); text-anchor:middle; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; }

/* ms365.html */
:where(.dg-ms365) .root { fill:var(--accent-muted); stroke:var(--accent); stroke-width:2; }
:where(.dg-ms365) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-ms365) .nd.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-ms365) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13.5px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-ms365) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-ms365) .role { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); text-anchor:middle; }
:where(.dg-ms365) .ln { fill:none; stroke:var(--border-strong); stroke-width:1.2; }

/* schatten-ki.html */
:where(.dg-schatten-ki) .ax { stroke:var(--text-subtle); stroke-width:1.5; fill:none; }
:where(.dg-schatten-ki) .gd { stroke:var(--border); stroke-width:1; fill:none; }
:where(.dg-schatten-ki) .lbx { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-schatten-ki) .lby { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); }
:where(.dg-schatten-ki) .axl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-schatten-ki) .axl-y { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; }
:where(.dg-schatten-ki) .pt { fill:var(--accent); stroke:var(--bg); stroke-width:2; }
:where(.dg-schatten-ki) .pt2 { fill:var(--bg-elevated); stroke:var(--accent); stroke-width:2; }
:where(.dg-schatten-ki) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; }
:where(.dg-schatten-ki) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); }
:where(.dg-schatten-ki) .zone { stroke:none; opacity:0.18; }

/* software-lizenzen.html */
:where(.dg-software-lizenzen) .ph { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-software-lizenzen) .ph.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-software-lizenzen) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-software-lizenzen) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-software-lizenzen) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:11px; fill:var(--accent); font-weight:700; text-anchor:middle; }
:where(.dg-software-lizenzen) .ctr { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-software-lizenzen) .ctra { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-software-lizenzen) .arc { fill:none; stroke:var(--accent); stroke-width:2; stroke-dasharray:4,3; }

/* toms.html */
:where(.dg-toms) .grp { fill:var(--bg-elevated); stroke:var(--border); stroke-width:1.5; }
:where(.dg-toms) .nd { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-toms) .nd.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-toms) .gh { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13px; fill:var(--text); font-weight:600; text-anchor:middle; letter-spacing:0.04em; text-transform:uppercase; }
:where(.dg-toms) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:13.5px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-toms) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-toms) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); text-anchor:middle; }

/* videoueberwachung.html */
:where(.dg-videoueberwachung) .stp { fill:var(--bg-subtle); stroke:var(--border-strong); stroke-width:1.5; }
:where(.dg-videoueberwachung) .stp.s { fill:var(--accent-muted); stroke:var(--accent); }
:where(.dg-videoueberwachung) .out { fill:var(--bg-subtle); stroke:var(--accent); stroke-width:2; }
:where(.dg-videoueberwachung) .num { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:22px; fill:var(--accent); font-weight:700; text-anchor:middle; }
:where(.dg-videoueberwachung) .ttl { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:14px; fill:var(--text); font-weight:600; text-anchor:middle; }
:where(.dg-videoueberwachung) .sub { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:11.5px; fill:var(--text-muted); text-anchor:middle; }
:where(.dg-videoueberwachung) .art { font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Consolas,monospace; font-size:10.5px; fill:var(--text-subtle); }
:where(.dg-videoueberwachung) .ar { fill:none; stroke:var(--accent); stroke-width:2; }
:where(.dg-videoueberwachung) .sym { font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; font-size:18px; font-weight:700; text-anchor:middle; }
:where(.dg-videoueberwachung) .sym-ok { fill:#16a34a; }
