/* Zeitdock Designsystem – Tokens (Standard hell, umschaltbar auf dunkel). Eigenständig, ruhig, professionell. */
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('../fonts/inter-var.woff2') format('woff2');
}
:root {
  --zd-color-bg: #f7f8fa; --zd-color-surface: #ffffff; --zd-color-surface-alt: #eef1f5;
  --zd-color-text: #1a1f29; --zd-color-headline: #0f172a;
  --zd-color-muted: #5b6577; --zd-color-primary: #1f6feb; --zd-color-primary-hover: #1657bf;
  --zd-color-primary-to: #4c6ef5; --zd-color-primary-ink: #ffffff;
  --zd-color-accent: #0b7285; --zd-color-border: #e3e7ee; --zd-color-danger: #c0362c;
  --zd-color-success: #1a7f52; --zd-color-warning: #a8720a;
  --zd-color-icon-bg: #eaf1fe; --zd-color-glow: rgba(31,111,235,.16);
  --zd-color-cta-from: #0f172a; --zd-color-cta-to: #1e3a6e;
  --zd-radius-sm: 6px; --zd-radius-md: 10px; --zd-radius-lg: 16px; --zd-radius-xl: 20px;
  --zd-space-1: 4px; --zd-space-2: 8px; --zd-space-3: 12px; --zd-space-4: 16px;
  --zd-space-5: 24px; --zd-space-6: 32px; --zd-space-8: 48px;
  --zd-shadow-1: 0 1px 2px rgba(16,24,40,.06); --zd-shadow-2: 0 12px 32px rgba(16,24,40,.14);
  --zd-font: 'Inter',system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --zd-maxw: 1760px;
  color-scheme: light;
}
/* Standard ist IMMER hell, unabhängig vom Betriebssystem – dunkel nur nach explizitem Klick. */
[data-theme="dark"] {
  --zd-color-bg:#0d1117; --zd-color-surface:#161b22; --zd-color-surface-alt:#11161d;
  --zd-color-text:#e6edf3; --zd-color-headline:#f4f7fb;
  --zd-color-muted:#9aa4b2; --zd-color-primary:#4c8dff; --zd-color-primary-hover:#6ea2ff;
  --zd-color-primary-to:#7d9bff; --zd-color-border:#2a313c;
  --zd-color-icon-bg: rgba(76,141,255,.14); --zd-color-glow: rgba(76,141,255,.18);
  --zd-color-cta-from:#0d1117; --zd-color-cta-to:#173059;
  --zd-shadow-1: 0 1px 2px rgba(0,0,0,.3); --zd-shadow-2: 0 16px 40px rgba(0,0,0,.5);
  color-scheme: dark;
}
* { box-sizing: border-box; }
/* Das hidden-Attribut muss gegen Klassen mit eigenem display gewinnen,
   sonst bleiben ausgeblendete Knöpfe und Karten sichtbar. */
[hidden] { display: none !important; }
body { margin:0; font-family:var(--zd-font); background:var(--zd-color-bg); color:var(--zd-color-text);
  line-height:1.55; -webkit-font-smoothing:antialiased; transition:background .35s ease,color .35s ease; }
h1,h2,h3,h4,h5,h6 { color:var(--zd-color-headline); letter-spacing:-.02em; }
a { color:var(--zd-color-primary); text-decoration:none; }
a:hover { text-decoration:underline; }
.zd-container { max-width:var(--zd-maxw); margin:0 auto; padding:0 clamp(24px, 4vw, 64px); }
.zd-header { border-bottom:1px solid var(--zd-color-border); background:var(--zd-color-surface);
  position:sticky; top:0; z-index:20; transition:background .35s ease,border-color .35s ease; }
.zd-nav { display:flex; gap:var(--zd-space-5); align-items:center; height:68px; }
.zd-nav a { color:var(--zd-color-text); font-weight:500; font-size:.95rem; }
.zd-nav a.is-active { font-weight:700; color:var(--zd-color-primary); }
.zd-nav-links { display:contents; }
.zd-nav-toggle { display:none; background:transparent; border:0; font-size:22px; line-height:1;
  cursor:pointer; color:var(--zd-color-text); padding:4px 6px; }
.zd-brand { display:flex; align-items:center; margin-right:auto; }
.zd-logo { height:26px; width:auto; display:block; }
.zd-logo--dark { display:none; }
[data-theme="dark"] .zd-logo--light { display:none; }
[data-theme="dark"] .zd-logo--dark { display:block; }
.zd-btn { display:inline-block; background:var(--zd-color-primary); color:var(--zd-color-primary-ink);
  padding:10px 18px; border-radius:var(--zd-radius-md); font-weight:600; border:0; cursor:pointer; font-family:inherit; }
.zd-btn:hover { text-decoration:none; filter:brightness(.96); }
.zd-btn--ghost { background:transparent; color:var(--zd-color-text); border:1px solid var(--zd-color-border); }
.zd-btn--gradient { background:linear-gradient(135deg,var(--zd-color-primary),var(--zd-color-primary-to));
  box-shadow:var(--zd-shadow-2); }
.zd-theme-toggle { padding:8px 12px; font-size:.9rem; white-space:nowrap; }
.zd-hero { position:relative; overflow:hidden; padding:64px 0 48px; }
.zd-hero h1 { font-size:2.8rem; line-height:1.1; letter-spacing:-.03em; margin:0 0 var(--zd-space-4); }
.zd-eyebrow { font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--zd-color-primary); margin:0 0 var(--zd-space-3); }
.zd-lead { font-size:1.15rem; line-height:1.6; color:var(--zd-color-muted); max-width:46ch; }
.zd-glow { position:absolute; top:-160px; right:-160px; width:560px; height:560px; border-radius:50%;
  background:radial-gradient(circle,var(--zd-color-glow),transparent 70%); pointer-events:none; }
.zd-card { background:var(--zd-color-surface); border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-lg); box-shadow:var(--zd-shadow-1); padding:var(--zd-space-5);
  transition:transform .25s ease,box-shadow .25s ease; }
.zd-card--interactive:hover { transform:translateY(-3px); box-shadow:var(--zd-shadow-2); }
.zd-grid { display:grid; gap:var(--zd-space-5); grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.zd-icon-box { width:44px; height:44px; border-radius:var(--zd-radius-md); background:var(--zd-color-icon-bg);
  display:flex; align-items:center; justify-content:center; color:var(--zd-color-primary); margin-bottom:var(--zd-space-4); }
.zd-icon-box svg { display:block; }
.zd-trust-bar { padding:20px 0; border-bottom:1px solid var(--zd-color-border); }
.zd-trust-bar .zd-container { display:flex; flex-wrap:wrap; gap:var(--zd-space-6); justify-content:space-between; align-items:center; }
.zd-trust-bar p { margin:0; font-size:.9rem; color:var(--zd-color-muted); font-weight:500; }
.zd-trust-bar strong { font-size:.95rem; font-weight:600; color:var(--zd-color-text); }
.zd-split { display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center; }
.zd-split--hero { grid-template-columns:1.05fr 0.95fr; }
.zd-split--reverse { grid-template-columns:0.9fr 1.1fr; }
.zd-section { padding:64px 0; }
.zd-section--alt { background:var(--zd-color-surface-alt); border-radius:var(--zd-radius-xl);
  padding-left:clamp(24px,4vw,56px); padding-right:clamp(24px,4vw,56px); }
.zd-cta-banner { background:linear-gradient(135deg,var(--zd-color-cta-from),var(--zd-color-cta-to));
  border-radius:var(--zd-radius-xl); padding:56px 40px; text-align:center; color:#fff; }
.zd-cta-banner h2 { color:#fff; margin:0 0 var(--zd-space-3); }
.zd-cta-banner p { color:rgba(255,255,255,.85); margin:0 0 var(--zd-space-5); }
.zd-cta-banner .zd-btn { background:#fff; color:var(--zd-color-primary); font-weight:700; }
.zd-badge { display:inline-block; background:var(--zd-color-primary); color:#fff; font-size:12px;
  font-weight:700; padding:4px 12px; border-radius:999px; }
.zd-pill-toggle { display:inline-flex; align-items:center; gap:10px; background:var(--zd-color-surface);
  border:1px solid var(--zd-color-border); border-radius:999px; padding:6px; }
.zd-pill-toggle button { border:0; border-radius:999px; padding:9px 20px; font-weight:600; font-size:14px;
  cursor:pointer; font-family:inherit; background:transparent; color:var(--zd-color-text); }
.zd-pill-toggle button.is-active { background:var(--zd-color-primary); color:var(--zd-color-primary-ink); }
.zd-plan-card { background:var(--zd-color-surface); border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-lg); box-shadow:var(--zd-shadow-1); padding:32px; display:flex;
  flex-direction:column; position:relative; }
.zd-plan-card--highlight { background:linear-gradient(160deg,var(--zd-color-cta-from),var(--zd-color-cta-to));
  border-color:transparent; box-shadow:var(--zd-shadow-2); color:#fff; }
.zd-plan-card--highlight h3, .zd-plan-card--highlight .zd-plan-price { color:#fff; }
.zd-plan-card--highlight .zd-plan-muted { color:rgba(255,255,255,.75); }
.zd-plan-card--highlight .zd-btn { background:#fff; color:var(--zd-color-primary); font-weight:700; }
.zd-plan-badge { position:absolute; top:-12px; left:28px; background:var(--zd-color-primary); color:#fff;
  font-size:12px; font-weight:700; padding:4px 12px; border-radius:999px; }
.zd-plan-price { font-size:2.4rem; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.zd-plan-muted { color:var(--zd-color-muted); }
.zd-solution-tag { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:var(--zd-color-primary); margin-bottom:8px; }

/* Lösungs-Karten (Icon-geführt, im Raster statt gestapelt) */
.zd-solution-card { background:var(--zd-color-surface); border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-xl); box-shadow:var(--zd-shadow-1); padding:clamp(28px,2.5vw,40px);
  display:flex; flex-direction:column; gap:20px; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.zd-solution-card:hover { transform:translateY(-4px); box-shadow:var(--zd-shadow-2); border-color:var(--zd-color-primary); }
.zd-solution-card__head { display:flex; align-items:center; gap:16px; }
.zd-solution-card__icon { width:52px; height:52px; flex:none; border-radius:14px; background:var(--zd-color-icon-bg);
  display:flex; align-items:center; justify-content:center; color:var(--zd-color-primary); }
.zd-solutions-grid { display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(420px,1fr)); }
@media (max-width:520px){ .zd-solutions-grid { grid-template-columns:1fr; } }

/* Karten-Kategorie-Chips + „Mehr erfahren" */
.zd-chip { font-size:13px; font-weight:600; color:var(--zd-color-text); background:var(--zd-color-surface);
  border:1px solid var(--zd-color-border); border-radius:999px; padding:7px 15px; }
.zd-chip--active { background:var(--zd-color-primary); color:#fff; border-color:var(--zd-color-primary); }
.zd-card__more { margin-top:auto; font-size:.85rem; font-weight:600; color:var(--zd-color-primary); }

/* Beitragskarte mit Titelbild (Ratgeber) */
.zd-article-card { display:flex; flex-direction:column; overflow:hidden; padding:0; }
.zd-article-card__media { aspect-ratio:16/9; background:var(--zd-color-surface-alt); }
.zd-article-card__media img { width:100%; height:100%; object-fit:cover; display:block; }
.zd-article-card__body { padding:24px; display:flex; flex-direction:column; gap:10px; flex:1; }
/* Dashboard-Übersicht: Team-Liste breiter als die Antragsspalte, ab Tablet einspaltig. */
.zd-dash-split { display:grid; grid-template-columns:1.3fr 1fr; gap:20px; align-items:start; }
@media (max-width:900px) { .zd-dash-split { grid-template-columns:1fr; } }
.zd-field { display:block; margin-bottom:var(--zd-space-4); }
.zd-field label { display:block; font-weight:600; margin-bottom:var(--zd-space-1); }
.zd-input { width:100%; padding:11px 12px; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); background:var(--zd-color-surface); color:var(--zd-color-text); font-size:1rem; font-family:inherit; }
.zd-input:focus { outline:3px solid color-mix(in srgb,var(--zd-color-primary) 35%,transparent); border-color:var(--zd-color-primary); }
.zd-file-picker { display:flex; align-items:center; gap:12px; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); padding:6px; background:var(--zd-color-surface); }
.zd-file-picker__btn { background:var(--zd-color-primary); color:#fff; font-weight:600; font-size:.85rem;
  padding:9px 16px; border-radius:var(--zd-radius-sm); cursor:pointer; white-space:nowrap; font-family:inherit; }
.zd-file-picker__btn:hover { filter:brightness(.96); }
.zd-file-picker__name { color:var(--zd-color-muted); font-size:.9rem; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.zd-file-picker__input { position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.zd-alert { padding:12px 14px; border-radius:var(--zd-radius-md); margin-bottom:var(--zd-space-4);
  border:1px solid var(--zd-color-border); }
.zd-alert--error { background:color-mix(in srgb,var(--zd-color-danger) 8%,transparent); border-color:var(--zd-color-danger); }
.zd-footer { border-top:1px solid var(--zd-color-border); color:var(--zd-color-muted); padding:var(--zd-space-6) 0; margin-top:var(--zd-space-8); }
.zd-footer .zd-container { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:var(--zd-space-4); }
.legal-text h2 { font-size:1.15rem; margin:var(--zd-space-6) 0 var(--zd-space-2); }
.legal-text h2:first-of-type { margin-top:var(--zd-space-4); }
.zd-table { width:100%; border-collapse:collapse; font-size:.92rem; }
.zd-table th, .zd-table td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--zd-color-border); vertical-align:top; }
.zd-table th { color:var(--zd-color-muted); font-weight:600; }
.zd-mock { border-radius:var(--zd-radius-lg); overflow:hidden; box-shadow:var(--zd-shadow-2); border:1px solid var(--zd-color-border); background:var(--zd-color-surface); }
.zd-mock__bar { display:flex; gap:6px; padding:12px 14px; border-bottom:1px solid var(--zd-color-border); background:var(--zd-color-surface-alt); }
.zd-mock__bar span { width:9px; height:9px; border-radius:50%; background:var(--zd-color-border); }
.zd-mock__body { padding:20px; display:flex; flex-direction:column; gap:12px; }
.zd-mock__row { display:flex; align-items:center; gap:10px; }
.zd-mock__row--head { margin-bottom:4px; }
.zd-mock__dot { width:8px; height:8px; border-radius:50%; background:var(--zd-color-success); flex-shrink:0; }
.zd-mock__pill { display:block; height:10px; border-radius:999px; background:var(--zd-color-border); }
.zd-mock__pill--accent { width:36%; background:var(--zd-color-primary); opacity:.5; height:12px; }
.zd-mock__pill--sm { width:16%; margin-left:auto; }
.zd-mock__chart { display:flex; align-items:flex-end; gap:8px; height:110px; }
.zd-mock__chart span { flex:1; background:linear-gradient(180deg,var(--zd-color-primary),var(--zd-color-primary-to)); border-radius:6px 6px 0 0; opacity:.85; }
.zd-fade { opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.zd-fade.zd-in { opacity:1; transform:translateY(0); }
:focus-visible { outline:3px solid color-mix(in srgb,var(--zd-color-primary) 45%,transparent); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { * { animation:none !important; transition:none !important; } .zd-fade { opacity:1 !important; transform:none !important; } }
@media (max-width:900px){
  .zd-hero h1{font-size:2.2rem;} .zd-split{grid-template-columns:1fr;}
  .zd-nav { flex-wrap:wrap; height:auto; min-height:68px; padding:14px 0; }
  .zd-nav-toggle { display:inline-flex; order:1; margin-left:auto; }
  .zd-nav-links { display:none; order:5; width:100%; flex-direction:column; gap:2px;
    padding-top:12px; margin-top:8px; border-top:1px solid var(--zd-color-border); }
  .zd-nav-links.is-open { display:flex; }
  .zd-nav-links a { padding:10px 2px; }
}
@media (max-width:640px){ .zd-hero h1{font-size:1.9rem;} .zd-nav{gap:var(--zd-space-3);} }

/* tools.zeitdock.de: Eingabe links, Ergebnis rechts und beim Scrollen mitlaufend.
   Auf schmalen Geräten wird daraus eine Spalte – dann muss das Ergebnis nach oben,
   sonst steht es unter dem Formular und damit außerhalb des Bildschirms, während
   getippt wird. */
.zd-tool-split { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.zd-tool-result { position:sticky; top:24px; background:var(--zd-color-surface-alt); }
.zd-tool-result__label { margin:0 0 var(--zd-space-2); font-size:.85rem; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; color:var(--zd-color-muted); }
.zd-tool-result__value { display:block; font-size:2.4rem; line-height:1.25;
  letter-spacing:-.02em; color:var(--zd-color-headline); }
.zd-tool-result__value--link { font-size:1.15rem; overflow-wrap:anywhere; }
.zd-tool-result__detail { margin:var(--zd-space-3) 0 0; font-size:.92rem; line-height:1.55;
  color:var(--zd-color-muted); }
@media (max-width:860px){
  .zd-tool-split { grid-template-columns:1fr; gap:20px; }
  .zd-tool-result { position:static; order:-1; }
  .zd-tool-result__value { font-size:2rem; }
}

/* --- Selbstchecks (Punktwert, Balken, Empfehlungen) --------------------------- */
.zd-check-stufe { display:inline-block; font-size:.8rem; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; padding:4px 12px; border-radius:999px;
  background:var(--zd-color-icon-bg); color:var(--zd-color-primary); }
.zd-check-stufe[data-stufe="mittel"] { background:color-mix(in srgb,var(--zd-color-warning) 18%,transparent);
  color:var(--zd-color-warning); }
.zd-check-stufe[data-stufe="hoch"] { background:color-mix(in srgb,var(--zd-color-danger) 18%,transparent);
  color:var(--zd-color-danger); }
.zd-check-stufe[data-stufe="niedrig"] { background:color-mix(in srgb,var(--zd-color-success) 18%,transparent);
  color:var(--zd-color-success); }
.zd-check-balken { margin:var(--zd-space-4) 0 0; height:10px; border-radius:999px;
  background:var(--zd-color-border); overflow:hidden; }
.zd-check-balken span { display:block; height:100%; width:0; border-radius:999px;
  background:var(--zd-color-primary); transition:width .25s ease; }
.zd-check-balken span[data-stufe="mittel"] { background:var(--zd-color-warning); }
.zd-check-balken span[data-stufe="hoch"] { background:var(--zd-color-danger); }
.zd-check-balken span[data-stufe="niedrig"] { background:var(--zd-color-success); }
.zd-check-liste { margin:0; padding-left:20px; display:flex; flex-direction:column; gap:8px;
  color:var(--zd-color-muted); font-size:.93rem; line-height:1.5; }

/* --- Teamplaner (Eingabe links, Ergebnis rechts) ------------------------------ */
.zd-planer { display:grid; grid-template-columns:minmax(320px,0.8fr) 1.2fr; gap:32px;
  align-items:start; }
.zd-planer-ergebnis { position:sticky; top:24px; max-height:calc(100vh - 48px);
  display:flex; flex-direction:column; }
.zd-planer-status { font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:4px 12px; border-radius:999px;
  background:color-mix(in srgb,var(--zd-color-success) 18%,transparent); color:var(--zd-color-success); }
.zd-planer-status[data-stufe="hinweis"] { background:color-mix(in srgb,var(--zd-color-warning) 18%,transparent);
  color:var(--zd-color-warning); }
.zd-planer-status[data-stufe="fehler"] { background:color-mix(in srgb,var(--zd-color-danger) 18%,transparent);
  color:var(--zd-color-danger); }
.zd-planer-kopf h3 { margin:0 0 4px; font-size:1.15rem; }
.zd-planer-kopf p { margin:0 0 var(--zd-space-4); color:var(--zd-color-muted); font-size:.9rem; }
.zd-planer-zahlen { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:var(--zd-space-4); }
.zd-planer-zahl { flex:1 1 120px; padding:12px 14px; border-radius:var(--zd-radius-md);
  background:var(--zd-color-surface-alt); border:1px solid var(--zd-color-border); }
.zd-planer-zahl strong { display:block; font-size:1.5rem; line-height:1.1;
  color:var(--zd-color-headline); }
.zd-planer-zahl span { font-size:.8rem; color:var(--zd-color-muted); }
.zd-planer-warnung { margin:0 0 8px; padding:10px 14px; border-radius:var(--zd-radius-md);
  font-size:.88rem; line-height:1.45; border:1px solid var(--zd-color-border);
  background:var(--zd-color-surface-alt); color:var(--zd-color-text); }
.zd-planer-warnung[data-stufe="fehler"] { border-color:var(--zd-color-danger);
  background:color-mix(in srgb,var(--zd-color-danger) 10%,transparent); }
.zd-planer-warnung[data-stufe="hinweis"] { border-color:var(--zd-color-warning);
  background:color-mix(in srgb,var(--zd-color-warning) 10%,transparent); }
/* Lange Pläne sollen in der Karte scrollen, nicht die ganze Seite dehnen. */
.zd-planer-tabelle { overflow:auto; max-height:52vh; margin-top:var(--zd-space-3);
  border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-md); }
.zd-planer-tabelle table { margin:0; font-size:.86rem; }
.zd-planer-tabelle thead th { position:sticky; top:0; z-index:1;
  background:var(--zd-color-surface-alt); }
.zd-planer-export { display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--zd-space-4); }
@media (max-width:960px){
  .zd-planer { grid-template-columns:1fr; gap:20px; }
  .zd-planer-ergebnis { position:static; max-height:none; }
}
/* Beim Drucken zählt nur der Plan – Navigation, Eingaben und Knöpfe stören dort. */
@media print {
  .zd-header, .zd-footer, .zd-hero, .zd-cta-banner, .zd-planer-export,
  .zd-planer > .zd-card:first-child, .zd-section { display:none !important; }
  .zd-planer-ergebnis { position:static; max-height:none; border:0; box-shadow:none; padding:0; }
  .zd-planer-tabelle { overflow:visible; max-height:none; }
}

/* =============================================================================
   tools.zeitdock.de – eigenes Gerüst.
   Die Werkzeuge sind ohne Konto nutzbar, deshalb keine Anmelde-Navigation.
   ========================================================================== */
.zd-tools-header .zd-container { padding-top:0; padding-bottom:0; }
.zd-tools-nav { display:flex; align-items:center; gap:var(--zd-space-4); min-height:68px;
  padding:10px 0; }
.zd-tools-nav .zd-brand { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.zd-tools-marke { font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--zd-color-primary); background:var(--zd-color-icon-bg);
  padding:3px 8px; border-radius:var(--zd-radius-sm); }
/* Neun Kategorien passen nicht immer in eine Reihe. Umbrechen statt abschneiden –
   ein waagerechter Scrollbalken in der Kopfzeile findet ohnehin niemand. */
.zd-tools-links { display:flex; gap:8px var(--zd-space-3); flex:1 1 auto; min-width:0;
  flex-wrap:wrap; }
.zd-tools-links a { color:var(--zd-color-muted); font-weight:500; font-size:.88rem;
  white-space:nowrap; }
.zd-tools-links a:hover { color:var(--zd-color-text); }
.zd-tools-aktionen { display:flex; align-items:center; gap:10px; flex:0 0 auto; margin-left:auto; }

/* Vollbreiter Farbverlauf statt eines Kreises, der am Container hart abgeschnitten
   wurde – genau das sah nach einem Darstellungsfehler aus. */
.zd-tools-hero { position:relative; padding:72px 0 56px; margin-bottom:8px;
  background:
    radial-gradient(900px 420px at 78% -20%, var(--zd-color-glow), transparent 70%),
    linear-gradient(180deg, var(--zd-color-surface-alt), transparent 85%);
  border-bottom:1px solid var(--zd-color-border); }
.zd-tools-hero h1 { font-size:clamp(1.9rem, 4vw, 2.8rem); line-height:1.12; letter-spacing:-.03em;
  margin:0 0 var(--zd-space-4); max-width:20ch; }
.zd-tools-hero .zd-lead { max-width:56ch; }
.zd-tools-hero--seite { padding:48px 0 40px; }
.zd-tools-hero--seite h1 { font-size:clamp(1.7rem, 3.2vw, 2.3rem); max-width:24ch; }
.zd-tools-hero--seite .zd-eyebrow a { color:var(--zd-color-primary); }
.zd-tools-hero--seite .zd-eyebrow span { opacity:.5; margin:0 4px; }
.zd-tools-merkmale { list-style:none; margin:var(--zd-space-5) 0 0; padding:0;
  display:flex; flex-wrap:wrap; gap:10px 22px; }
.zd-tools-merkmale li { font-size:.9rem; color:var(--zd-color-muted); display:flex;
  align-items:center; gap:8px; }
.zd-tools-merkmale li::before { content:"✓"; color:var(--zd-color-success); font-weight:700; }

.zd-tools-sprungmarken { display:flex; flex-wrap:wrap; gap:8px; padding:28px 0 8px; }
.zd-tools-sprungmarken .zd-chip { display:inline-flex; align-items:center; gap:7px;
  text-decoration:none; transition:border-color .2s ease, color .2s ease; }
.zd-tools-sprungmarken .zd-chip:hover { border-color:var(--zd-color-primary);
  color:var(--zd-color-primary); }
.zd-tools-sprungmarken .zd-chip span { font-size:11px; font-weight:700;
  color:var(--zd-color-muted); background:var(--zd-color-surface-alt);
  border-radius:999px; padding:1px 7px; }

.zd-tools-gruppe { padding:40px 0 8px; scroll-margin-top:84px; }
.zd-tools-gruppe h2 { margin:0 0 var(--zd-space-4); font-size:1.35rem; letter-spacing:-.01em; }

/* auto-FILL, nicht auto-fit: sonst dehnt eine einzelne Karte sich über die volle Breite
   und jede Kategorie bekommt eine andere Kartenbreite – das wirkte zusammengewürfelt. */
.zd-tools-raster { display:grid; gap:16px;
  grid-template-columns:repeat(auto-fill, minmax(272px, 1fr)); }
.zd-tools-karte { position:relative; display:flex; flex-direction:column; gap:8px;
  padding:20px 22px 22px; min-height:100%;
  background:var(--zd-color-surface); border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-lg); text-decoration:none; color:inherit;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.zd-tools-karte:hover { transform:translateY(-2px); border-color:var(--zd-color-primary);
  box-shadow:var(--zd-shadow-2); }
.zd-tools-karte h3 { margin:0; font-size:1.02rem; line-height:1.3; letter-spacing:-.01em; }
.zd-tools-karte p { margin:0; font-size:.9rem; line-height:1.5; color:var(--zd-color-muted); }
.zd-tools-karte__art { font-size:11px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--zd-color-primary); }
.zd-tools-karte__art[data-art="check"] { color:var(--zd-color-warning); }
.zd-tools-karte__art[data-art="planner"] { color:var(--zd-color-success); }
.zd-tools-karte__pfeil { position:absolute; top:20px; right:20px; font-size:1rem;
  color:var(--zd-color-primary); opacity:0; transform:translateX(-4px);
  transition:opacity .2s ease, transform .2s ease; }
.zd-tools-karte:hover .zd-tools-karte__pfeil { opacity:1; transform:translateX(0); }

.zd-tools-footer { margin-top:0; }
.zd-tools-footer .zd-container { display:flex; flex-wrap:wrap; gap:20px 40px;
  align-items:flex-start; justify-content:space-between; }
.zd-tools-footer p { margin:8px 0 0; font-size:.86rem; line-height:1.55;
  color:var(--zd-color-muted); max-width:52ch; }
.zd-tools-footer__recht { white-space:nowrap; }

@media (max-width:860px){
  /* Marke, Umschalter und Aktionen passen nicht mehr nebeneinander – umbrechen lassen
     und die Kategorien hinter den Menüknopf legen. */
  .zd-tools-nav { flex-wrap:wrap; padding:12px 0; gap:12px; }
  .zd-tools-nav .zd-brand { margin-right:auto; }
  .zd-tools-nav .zd-nav-toggle { display:inline-flex; order:2; }
  .zd-tools-aktionen { order:3; margin-left:0; }
  .zd-tools-links { display:none; order:4; width:100%; flex-direction:column; gap:2px;
    overflow:visible; padding-top:10px; border-top:1px solid var(--zd-color-border); }
  .zd-tools-links.is-open { display:flex; }
  .zd-tools-links a { padding:10px 2px; font-size:.95rem; }
}
@media (max-width:420px){
  /* Auf schmalen Geräten hat der Umschalter genug an dem Symbol. */
  .zd-theme-toggle { font-size:0; padding:9px 12px; }
  .zd-theme-toggle::first-letter { font-size:1rem; }
}
@media print { .zd-tools-header, .zd-tools-footer, .zd-tools-hero { display:none !important; } }

/* --- Werkzeugsuche auf der Übersicht ----------------------------------------- */
.zd-tools-suche { padding:28px 0 4px; }
.zd-tools-suche label { display:block; font-weight:600; font-size:.92rem;
  margin-bottom:var(--zd-space-2); }
.zd-tools-suche__feld { display:flex; gap:10px; align-items:center; max-width:640px; }
.zd-tools-suche__feld .zd-input { flex:1 1 auto; }
.zd-tools-suche__meldung { margin:10px 0 0; font-size:.86rem; color:var(--zd-color-muted); }
.zd-tools-suche__leer { margin:24px 0 0; padding:20px 22px; border-radius:var(--zd-radius-lg);
  background:var(--zd-color-surface-alt); border:1px solid var(--zd-color-border);
  color:var(--zd-color-muted); font-size:.95rem; max-width:640px; }

/* --- Organigramm-Generator ---------------------------------------------------- */
.zd-org { display:grid; grid-template-columns:minmax(320px,0.75fr) 1.25fr; gap:24px;
  align-items:start; }
.zd-org-editor h2 { margin:0 0 var(--zd-space-4); font-size:1.1rem; }
.zd-org-paar { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.zd-org-knoepfe { display:flex; gap:10px; margin-bottom:var(--zd-space-5); }
.zd-org-listenkopf { display:flex; justify-content:space-between; align-items:center;
  gap:12px; padding-top:var(--zd-space-4); border-top:1px solid var(--zd-color-border); }
.zd-org-listenkopf h3 { margin:0; font-size:.95rem; }
.zd-org-listenkopf h3 span { font-weight:400; color:var(--zd-color-muted); }
.zd-org-listenkopf div { display:flex; gap:8px; }
.zd-org-listenkopf .zd-btn { padding:7px 12px; font-size:.85rem; }
.zd-org-liste { display:flex; flex-direction:column; gap:6px; margin-top:var(--zd-space-3);
  max-height:340px; overflow:auto; }
.zd-org-zeile { display:flex; align-items:stretch; gap:6px; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); background:var(--zd-color-surface); }
.zd-org-zeile[data-aktiv="ja"] { border-color:var(--zd-color-primary);
  background:var(--zd-color-icon-bg); }
.zd-org-zeile__text { flex:1 1 auto; display:flex; flex-direction:column; gap:2px;
  text-align:left; padding:9px 12px; background:transparent; border:0; cursor:pointer;
  font-family:inherit; color:inherit; }
.zd-org-zeile__text strong { font-size:.92rem; }
.zd-org-zeile__text span { font-size:.8rem; color:var(--zd-color-muted); }
.zd-org-zeile__weg { flex:0 0 auto; width:38px; background:transparent; border:0;
  border-left:1px solid var(--zd-color-border); color:var(--zd-color-muted);
  font-size:1.15rem; cursor:pointer; border-radius:0 var(--zd-radius-md) var(--zd-radius-md) 0; }
.zd-org-zeile__weg:hover { color:var(--zd-color-danger);
  background:color-mix(in srgb,var(--zd-color-danger) 10%,transparent); }
.zd-org-hinweis { margin:var(--zd-space-4) 0 0; font-size:.85rem; color:var(--zd-color-muted); }
.zd-org-vorschau { position:sticky; top:24px; }
.zd-org-vorschaukopf { display:flex; flex-wrap:wrap; justify-content:space-between;
  align-items:center; gap:12px; margin-bottom:var(--zd-space-4); }
.zd-org-export { display:flex; flex-wrap:wrap; gap:8px; }
.zd-org-export .zd-btn { padding:7px 12px; font-size:.85rem; }
/* Das SVG hat eine feste Größe – die Fläche scrollt, statt die Seite zu dehnen. */
.zd-org-flaeche { overflow:auto; max-height:66vh; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); background:#ffffff; }
.zd-org-flaeche svg { display:block; }
@media (max-width:1000px){
  .zd-org { grid-template-columns:1fr; }
  .zd-org-vorschau { position:static; }
}
@media print {
  .zd-org-editor, .zd-org-export, .zd-org-vorschaukopf { display:none !important; }
  .zd-org { grid-template-columns:1fr; }
  .zd-org-vorschau { border:0; box-shadow:none; padding:0; }
  .zd-org-flaeche { overflow:visible; max-height:none; border:0; }
}

/* --- PDF-Editor und -Creator -------------------------------------------------- */
.zd-pdf-start { text-align:center; padding:48px 32px; }
.zd-pdf-start h2 { margin:0 0 var(--zd-space-3); font-size:1.2rem; }
.zd-pdf-start > p { margin:0 auto var(--zd-space-5); max-width:56ch;
  color:var(--zd-color-muted); }
.zd-pdf-start[data-ueber="ja"] { border-color:var(--zd-color-primary);
  background:var(--zd-color-icon-bg); }
.zd-pdf-neuform { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:16px; text-align:left; max-width:760px; margin:0 auto var(--zd-space-5); }
.zd-pdf-status { margin:var(--zd-space-4) 0 0; font-size:.88rem; color:var(--zd-color-muted); }
.zd-pdf-leiste { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between;
  align-items:center; padding:14px 16px; margin-bottom:16px;
  background:var(--zd-color-surface); border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-lg); position:sticky; top:80px; z-index:5; }
.zd-pdf-werkzeuge, .zd-pdf-aktionen { display:flex; flex-wrap:wrap; gap:8px; }
.zd-pdf-werkzeuge .zd-btn, .zd-pdf-aktionen .zd-btn { padding:8px 14px; font-size:.87rem; }
.zd-pdf-raum { display:grid; grid-template-columns:1fr 280px; gap:20px; align-items:start; }
.zd-pdf-buehne { min-width:0; }
.zd-pdf-navigation { display:flex; align-items:center; gap:8px; margin-bottom:12px;
  font-size:.88rem; color:var(--zd-color-muted); flex-wrap:wrap; }
.zd-pdf-navigation .zd-btn { padding:6px 12px; }
.zd-pdf-trenner { width:1px; height:20px; background:var(--zd-color-border); }
.zd-pdf-dateiname { margin-left:auto; font-weight:600; color:var(--zd-color-text); }
/* Der Behälter scrollt, nicht die ganze Seite. In der fortlaufenden Ansicht stehen
   alle Seiten untereinander darin. */
.zd-pdf-seiten { overflow:auto; max-height:74vh; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); background:#f1f3f6; padding:12px;
  display:flex; flex-direction:column; align-items:center; gap:16px; }
.zd-pdf-seiten[data-ansicht="einzel"] { padding:0; gap:0; }
.zd-pdf-seite { position:relative; flex:0 0 auto; background:#fff;
  box-shadow:0 1px 4px rgba(16,24,40,.14); scroll-margin-top:12px; }
.zd-pdf-seiten[data-ansicht="einzel"] .zd-pdf-seite { box-shadow:none; }
.zd-pdf-seite canvas { display:block; }
/* Bis eine Seite gezeichnet ist, hat die Leinwand keine Höhe – ohne Mindestmaß
   fielen alle noch nicht gezeichneten Seiten zusammen und der Beobachter
   meldete sie alle gleichzeitig als sichtbar. */
.zd-pdf-seite:not([data-gezeichnet="ja"]) { min-height:420px; min-width:300px; }
.zd-pdf-seitenmarke { position:absolute; top:-9px; left:-9px; z-index:2;
  font-size:11px; font-weight:700; color:#fff; background:var(--zd-color-primary);
  border-radius:999px; padding:2px 9px; }
.zd-pdf-seiten[data-ansicht="einzel"] .zd-pdf-seitenmarke { display:none; }
.zd-pdf-ebene { position:absolute; inset:0; }
.zd-pdf-element { position:absolute; cursor:move; touch-action:none;
  /* Statt preventDefault beim Zeigerdruck – das wuerde click und dblclick
     mitnehmen und die Textbearbeitung unerreichbar machen. */
  user-select:none; -webkit-user-select:none; }
.zd-pdf-element[data-aktiv="ja"] { outline:2px solid var(--zd-color-primary);
  outline-offset:2px; }
.zd-pdf-element img, .zd-pdf-flaeche { width:100%; height:100%; display:block; }
.zd-pdf-text { width:100%; height:100%; outline:none; overflow:hidden;
  line-height:1.2; white-space:pre-wrap; overflow-wrap:anywhere;
  /* Ohne Schreibmodus darf der Text keine Klicks abfangen – sonst käme das
     Ziehen des Elements nicht durch. */
  pointer-events:none; }
.zd-pdf-text[data-bearbeitet="ja"] { pointer-events:auto; cursor:text;
  user-select:text; -webkit-user-select:text;
  background:color-mix(in srgb,var(--zd-color-primary) 8%,transparent); }
/* Beschriftung in einer Form sitzt mittig, wie in jedem Zeichenprogramm. */
.zd-pdf-text--in-form { position:absolute; inset:0; display:flex;
  flex-direction:column; justify-content:center; padding:4px; }
.zd-pdf-linie { position:absolute; top:50%; left:0; right:0; transform:translateY(-50%); }
.zd-pdf-spitze { position:absolute; right:-2px; top:50%; transform:translateY(-50%);
  width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent;
  border-left:12px solid currentColor; }
.zd-pdf-griff { position:absolute; width:11px; height:11px; background:#fff;
  border:2px solid var(--zd-color-primary); border-radius:3px; opacity:0; }
.zd-pdf-element[data-aktiv="ja"] .zd-pdf-griff { opacity:1; }
.zd-pdf-griff[data-ecke="nw"] { left:-6px; top:-6px; cursor:nwse-resize; }
.zd-pdf-griff[data-ecke="ne"] { right:-6px; top:-6px; cursor:nesw-resize; }
.zd-pdf-griff[data-ecke="sw"] { left:-6px; bottom:-6px; cursor:nesw-resize; }
.zd-pdf-griff[data-ecke="se"] { right:-6px; bottom:-6px; cursor:nwse-resize; }
.zd-pdf-dreher { position:absolute; left:50%; top:-26px; width:13px; height:13px;
  margin-left:-6px; border-radius:50%; background:var(--zd-color-primary);
  cursor:grab; opacity:0; }
.zd-pdf-element[data-aktiv="ja"] .zd-pdf-dreher { opacity:1; }
.zd-pdf-regler { }
.zd-pdf-regler h3 { margin:0 0 var(--zd-space-4); font-size:.95rem; }
.zd-pdf-regler input[type="color"] { height:40px; padding:4px; }
.zd-pdf-tipp { margin:var(--zd-space-3) 0 0; font-size:.82rem; line-height:1.5;
  color:var(--zd-color-muted); }
.zd-pdf-dialog { border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-lg);
  padding:24px; background:var(--zd-color-surface); color:var(--zd-color-text);
  max-width:600px; }
.zd-pdf-dialog::backdrop { background:rgba(15,23,42,.5); }
.zd-pdf-dialog h3 { margin:0 0 var(--zd-space-2); }
.zd-pdf-dialog p { margin:0 0 var(--zd-space-4); color:var(--zd-color-muted);
  font-size:.9rem; }
.zd-pdf-dialog canvas { width:100%; height:200px; border:1px dashed var(--zd-color-border);
  border-radius:var(--zd-radius-md); background:#fff; touch-action:none; cursor:crosshair; }
.zd-pdf-dialogknoepfe { display:flex; gap:10px; justify-content:flex-end;
  margin-top:var(--zd-space-4); }

/* Unterschrift: zwei Wege im selben Dialog. */
.zd-pdf-dialog--breit { max-width:640px; width:calc(100vw - 32px); }
.zd-pdf-reiter { display:flex; gap:4px; border-bottom:1px solid var(--zd-color-border);
  margin-bottom:var(--zd-space-4); }
.zd-pdf-reiter-knopf { background:transparent; border:0; border-bottom:2px solid transparent;
  padding:10px 14px; font:inherit; font-weight:600; font-size:.92rem; cursor:pointer;
  color:var(--zd-color-muted); margin-bottom:-1px; }
.zd-pdf-reiter-knopf[aria-selected="true"] { color:var(--zd-color-primary);
  border-bottom-color:var(--zd-color-primary); }
.zd-pdf-unterschriftfeld { display:block; }
.zd-pdf-zugzurueck { margin-top:var(--zd-space-2); font-size:.85rem; padding:6px 12px; }
.zd-pdf-schriftwahl { display:flex; flex-wrap:wrap; gap:8px; margin:var(--zd-space-3) 0; }
.zd-pdf-schriftknopf { background:var(--zd-color-surface); cursor:pointer;
  border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-md);
  padding:8px 16px; font-size:1.35rem; line-height:1.4; color:var(--zd-color-text); }
.zd-pdf-schriftknopf[aria-pressed="true"] { border-color:var(--zd-color-primary);
  box-shadow:0 0 0 1px var(--zd-color-primary) inset; }
.zd-pdf-unterschriftfarben { display:flex; align-items:center; gap:10px;
  margin-top:var(--zd-space-3); font-size:.9rem; color:var(--zd-color-muted); }
.zd-pdf-farbknopf { width:26px; height:26px; border-radius:50%; cursor:pointer;
  background:var(--farbe); border:2px solid var(--zd-color-border); }
.zd-pdf-farbknopf[aria-pressed="true"] { border-color:var(--zd-color-primary);
  box-shadow:0 0 0 2px var(--zd-color-glow); }
@media (max-width:1000px){
  .zd-pdf-raum { grid-template-columns:1fr; }
  .zd-pdf-leiste { position:static; }
}

/* --- Sprachmemo-Cutter -------------------------------------------------------- */
.zd-rec { display:flex; flex-direction:column; gap:20px; }
.zd-rec-kopf { display:flex; flex-wrap:wrap; justify-content:space-between;
  align-items:center; gap:16px; }
.zd-rec-knoepfe { display:flex; flex-wrap:wrap; gap:10px; }
.zd-rec-dauer { font-size:1.6rem; font-weight:600; font-variant-numeric:tabular-nums;
  color:var(--zd-color-headline); }
.zd-rec-status { margin:var(--zd-space-4) 0 0; font-size:.9rem; color:var(--zd-color-muted); }
.zd-rec-status[data-stufe="fehler"] { color:var(--zd-color-danger); }
.zd-rec-hinweis { margin:0 0 var(--zd-space-4); font-size:.9rem; color:var(--zd-color-muted); }
.zd-rec-spur { position:relative; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); background:var(--zd-color-surface-alt);
  overflow:hidden; }
.zd-rec-spur canvas { display:block; width:100%; }
.zd-rec-schiene { position:absolute; inset:0; cursor:crosshair; }
.zd-rec-bereich { position:absolute; top:0; bottom:0;
  background:color-mix(in srgb,var(--zd-color-danger) 26%,transparent);
  border-left:1px solid var(--zd-color-danger); border-right:1px solid var(--zd-color-danger); }
.zd-rec-marke { position:absolute; top:0; bottom:0; width:2px;
  background:var(--zd-color-primary); }
.zd-rec-zahlen { display:flex; flex-wrap:wrap; gap:12px; margin:var(--zd-space-4) 0; }
.zd-rec-zahlen div { flex:1 1 130px; padding:12px 14px; border-radius:var(--zd-radius-md);
  background:var(--zd-color-surface-alt); border:1px solid var(--zd-color-border); }
.zd-rec-zahlen strong { display:block; font-size:1.3rem; font-variant-numeric:tabular-nums;
  color:var(--zd-color-headline); }
.zd-rec-zahlen span { font-size:.8rem; color:var(--zd-color-muted); }
.zd-rec-aktionen { display:flex; flex-wrap:wrap; gap:8px; }
.zd-rec-aktionen .zd-btn { padding:8px 14px; font-size:.87rem; }
.zd-rec-liste { list-style:none; margin:var(--zd-space-4) 0 0; padding:0;
  display:flex; flex-direction:column; gap:6px; }
.zd-rec-liste li { display:flex; justify-content:space-between; align-items:center;
  gap:12px; padding:8px 12px; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); font-size:.88rem;
  font-variant-numeric:tabular-nums; }
.zd-rec-liste .zd-btn { padding:5px 12px; font-size:.8rem; }

/* --- ShareSecret -------------------------------------------------------------- */
.zd-ss h2 { margin:0 0 var(--zd-space-4); font-size:1.15rem; }
.zd-ss-paar { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.zd-ss-hinweis { margin:0 0 var(--zd-space-4); font-size:.88rem; line-height:1.6;
  color:var(--zd-color-muted); }
.zd-ss-hinweis code { background:var(--zd-color-surface-alt); padding:1px 6px;
  border-radius:4px; font-size:.9em; }
.zd-ss-knoepfe { display:flex; flex-wrap:wrap; gap:10px; }
.zd-ss-status { margin:var(--zd-space-4) 0 0; font-size:.9rem; color:var(--zd-color-muted); }
.zd-ss-status[data-stufe="fehler"] { color:var(--zd-color-danger); }
#ssLink, #ssKlartext { font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.85rem; }
@media (max-width:560px){ .zd-ss-paar { grid-template-columns:1fr; } }

/* --- Schnellchat -------------------------------------------------------------- */
.zd-versteckt { position:absolute; width:1px; height:1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap; }
.zd-qc h2 { margin:0 0 var(--zd-space-4); font-size:1.15rem; }
.zd-qc-start { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.zd-qc-paar { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.zd-qc-warnung { margin:20px 0 0; padding:16px 18px; border-radius:var(--zd-radius-lg);
  background:color-mix(in srgb,var(--zd-color-warning) 10%,transparent);
  border:1px solid var(--zd-color-warning); font-size:.9rem; line-height:1.6; }
.zd-qc-raum { display:grid; grid-template-columns:1fr 300px; gap:20px; align-items:start; }
.zd-qc-verlaufkarte { display:flex; flex-direction:column; min-height:60vh; }
.zd-qc-kopf { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px;
  padding-bottom:var(--zd-space-4); border-bottom:1px solid var(--zd-color-border); }
.zd-qc-kopf h2 { margin:0 0 4px; }
.zd-qc-kopf p { margin:0; font-size:.86rem; color:var(--zd-color-muted); }
.zd-qc-kopf code { background:var(--zd-color-surface-alt); padding:2px 8px;
  border-radius:4px; font-weight:600; letter-spacing:.04em; }
.zd-qc-kopfknoepfe { display:flex; flex-wrap:wrap; gap:8px; }
.zd-qc-kopfknoepfe .zd-btn { padding:7px 12px; font-size:.83rem; }
.zd-qc-verlauf { flex:1 1 auto; overflow-y:auto; max-height:52vh; padding:16px 0;
  display:flex; flex-direction:column; gap:10px; }
.zd-qc-nachricht { position:relative; padding:10px 34px 10px 14px; max-width:78%;
  border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-lg);
  background:var(--zd-color-surface-alt); }
.zd-qc-nachricht[data-eigen="ja"] { margin-left:auto;
  background:var(--zd-color-icon-bg); border-color:var(--zd-color-primary); }
.zd-qc-nachricht header { display:flex; gap:10px; align-items:baseline;
  margin-bottom:4px; font-size:.78rem; color:var(--zd-color-muted); }
.zd-qc-nachricht header strong { color:var(--zd-color-text); font-size:.85rem; }
.zd-qc-nachricht p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere;
  font-size:.93rem; line-height:1.5; }
.zd-qc-geloescht { font-style:italic; color:var(--zd-color-muted); }
.zd-qc-datei { margin-top:8px; display:flex; flex-direction:column; gap:6px; }
.zd-qc-datei img { max-width:100%; max-height:260px; border-radius:var(--zd-radius-md);
  display:block; }
.zd-qc-datei a { font-size:.85rem; }
.zd-qc-loeschen { position:absolute; top:6px; right:6px; width:24px; height:24px;
  border:0; background:transparent; color:var(--zd-color-muted); cursor:pointer;
  border-radius:6px; font-size:1rem; line-height:1; opacity:0; }
.zd-qc-nachricht:hover .zd-qc-loeschen, .zd-qc-loeschen:focus-visible { opacity:1; }
.zd-qc-loeschen:hover { color:var(--zd-color-danger);
  background:color-mix(in srgb,var(--zd-color-danger) 12%,transparent); }
.zd-qc-eingabe { display:flex; gap:10px; align-items:flex-end;
  padding-top:var(--zd-space-4); border-top:1px solid var(--zd-color-border); }
.zd-qc-eingabe textarea { flex:1 1 auto; resize:none; }
.zd-qc-helfer h3 { margin:0 0 var(--zd-space-4); font-size:.95rem; }
.zd-qc-status { margin:var(--zd-space-4) 0 0; font-size:.9rem; color:var(--zd-color-muted); }
.zd-qc-status[data-stufe="fehler"] { color:var(--zd-color-danger); }
@media (max-width:1000px){
  .zd-qc-start, .zd-qc-raum, .zd-qc-paar { grid-template-columns:1fr; }
  .zd-qc-nachricht { max-width:92%; }
}

/* --- Jira/YouTrack-Migration -------------------------------------------------- */
.zd-mig { display:flex; flex-direction:column; gap:20px; }
.zd-mig-seiten { display:grid; grid-template-columns:1fr 1fr; gap:20px;
  margin-bottom:var(--zd-space-4); }
.zd-mig-seite { border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-lg);
  padding:18px 20px; margin:0; }
.zd-mig-seite legend { padding:0 8px; font-weight:600; font-size:.9rem;
  color:var(--zd-color-primary); }
.zd-mig-knoepfe { display:flex; flex-wrap:wrap; gap:10px; margin-top:var(--zd-space-4); }
.zd-mig-status { margin:var(--zd-space-4) 0 0; font-size:.9rem; color:var(--zd-color-muted); }
.zd-mig-status[data-stufe="fehler"] { color:var(--zd-color-danger); }
.zd-mig-tabelle { overflow:auto; max-height:50vh; margin-top:var(--zd-space-3);
  border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-md); }
.zd-mig-tabelle table { margin:0; font-size:.87rem; }
.zd-mig-tabelle thead th { position:sticky; top:0; background:var(--zd-color-surface-alt); }
.zd-mig-hinweis { margin:0; padding:16px 18px; border-radius:var(--zd-radius-lg);
  background:var(--zd-color-surface-alt); border:1px solid var(--zd-color-border);
  font-size:.88rem; line-height:1.6; color:var(--zd-color-muted); }
.zd-mig-hinweis code { background:var(--zd-color-surface); padding:1px 6px;
  border-radius:4px; }
@media (max-width:860px){ .zd-mig-seiten { grid-template-columns:1fr; } }

/* --- PDF: Ansichtswahl und Seitenverwaltung ---------------------------------- */
.zd-pdf-ansichtwahl { display:inline-flex; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-md); overflow:hidden; }
.zd-pdf-ansichtwahl button { border:0; background:transparent; cursor:pointer;
  font-family:inherit; font-size:.85rem; font-weight:600; padding:8px 14px;
  color:var(--zd-color-muted); }
.zd-pdf-ansichtwahl button[data-aktiv="true"] { background:var(--zd-color-primary);
  color:#fff; }
.zd-pdf-spalte { display:flex; flex-direction:column; gap:16px; position:sticky; top:150px; }
.zd-pdf-seitenverwaltung h3 { margin:0 0 var(--zd-space-2); font-size:.95rem; }
.zd-pdf-seitenliste { display:flex; flex-direction:column; gap:4px;
  max-height:38vh; overflow:auto; margin-top:var(--zd-space-3); }
.zd-pdf-seitenzeile { display:flex; align-items:center; gap:4px;
  border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-md);
  padding:3px 4px 3px 0; }
.zd-pdf-seitenzeile[data-aktiv="ja"] { border-color:var(--zd-color-primary);
  background:var(--zd-color-icon-bg); }
.zd-pdf-seitenzeile__zu { flex:1 1 auto; text-align:left; padding:6px 10px;
  background:transparent; border:0; cursor:pointer; font-family:inherit;
  font-size:.85rem; color:inherit; }
.zd-pdf-seitenzeile div { display:flex; gap:2px; }
.zd-pdf-seitenzeile div button { width:26px; height:26px; border:0; cursor:pointer;
  background:transparent; border-radius:5px; color:var(--zd-color-muted);
  font-size:.9rem; line-height:1; font-family:inherit; }
.zd-pdf-seitenzeile div button:hover:not(:disabled) { background:var(--zd-color-surface-alt);
  color:var(--zd-color-text); }
.zd-pdf-seitenzeile div button:disabled { opacity:.3; cursor:not-allowed; }
.zd-pdf-seitenzeile div button:last-child:hover:not(:disabled) { color:var(--zd-color-danger);
  background:color-mix(in srgb,var(--zd-color-danger) 12%,transparent); }
@media (max-width:1000px){ .zd-pdf-spalte { position:static; } }
@media print { .zd-pdf-spalte, .zd-pdf-ansichtwahl { display:none !important; } }

/* --- PDF: Schrift- und Ebenenregler ------------------------------------------ */
.zd-pdf-reglerlabel { display:block; font-weight:600; margin-bottom:var(--zd-space-1);
  font-size:.9rem; }
.zd-pdf-schaltreihe { display:flex; gap:4px; align-items:center; flex-wrap:wrap; }
.zd-pdf-schaltreihe button { min-width:34px; height:34px; padding:0 8px; border:1px solid
  var(--zd-color-border); background:var(--zd-color-surface); border-radius:var(--zd-radius-sm);
  cursor:pointer; font-family:inherit; font-size:.95rem; color:var(--zd-color-text);
  line-height:1; }
.zd-pdf-schaltreihe button:hover { border-color:var(--zd-color-primary); }
.zd-pdf-schaltreihe button[data-aktiv="true"] { background:var(--zd-color-primary);
  border-color:var(--zd-color-primary); color:#fff; }
.zd-pdf-trennstrich { width:1px; height:22px; background:var(--zd-color-border);
  margin:0 4px; }
.zd-pdf-element[data-bearbeitet="ja"] { cursor:text; }
.zd-pdf-element[data-bearbeitet="ja"] .zd-pdf-griff,
.zd-pdf-element[data-bearbeitet="ja"] .zd-pdf-dreher { display:none; }

/* --- PDF: Bilder zu Seiten ---------------------------------------------------- */
.zd-pdf-wege { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:20px; text-align:left; max-width:860px; margin:0 auto; }
.zd-pdf-weg { display:flex; flex-direction:column; gap:var(--zd-space-3);
  align-items:flex-start; border:1px solid var(--zd-color-border);
  border-radius:var(--zd-radius-lg); padding:20px; background:var(--zd-color-surface); }
.zd-pdf-weg h3 { margin:0; font-size:1rem; }
.zd-pdf-weg > p { margin:0; font-size:.9rem; color:var(--zd-color-muted); }
.zd-pdf-weg .zd-field, .zd-pdf-weg .zd-pdf-neuform { width:100%; margin:0; }
/* Die Ablagefläche für Bilder ist gestrichelt – das lädt zum Hineinziehen ein. */
.zd-pdf-ablage { border-style:dashed; border-width:2px; }
.zd-pdf-ablage[data-ueber="ja"], .zd-pdf-seiten[data-ueber="ja"] {
  border-color:var(--zd-color-primary); background:var(--zd-color-icon-bg); }
.zd-pdf-meldezeile { display:flex; flex-wrap:wrap; align-items:center; gap:12px;
  margin:-4px 0 12px; }
.zd-pdf-meldezeile .zd-pdf-status { margin:0; }
.zd-pdf-fortschritt { display:flex; align-items:center; gap:10px;
  font-size:.85rem; color:var(--zd-color-muted); }
.zd-pdf-fortschritt progress { width:200px; height:8px; }
.zd-pdf-bildmodus { margin-top:var(--zd-space-4); }
.zd-pdf-bildmodus label { font-size:.85rem; }
.zd-pdf-mehrbilder { margin-top:var(--zd-space-2); position:relative;
  width:100%; text-align:center; font-size:.85rem; }
.zd-pdf-seitenzeile__zu { display:flex; align-items:center; gap:8px; }
.zd-pdf-minibild { width:30px; height:38px; flex:0 0 auto; object-fit:cover;
  border:1px solid var(--zd-color-border); border-radius:3px; background:#fff; }

/* ------------------------------------------------------------------ Word-Editor */
.zd-word { margin:var(--zd-space-5) 0; }
.zd-word-leiste { display:flex; flex-wrap:wrap; gap:var(--zd-space-3); align-items:center;
  padding:var(--zd-space-3); background:var(--zd-color-surface);
  border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-md);
  position:sticky; top:76px; z-index:5; }
.zd-word-gruppe { display:flex; gap:4px; align-items:center; }
.zd-word-gruppe button { min-width:38px; padding:7px 10px; font:inherit; font-size:.9rem;
  cursor:pointer; background:var(--zd-color-surface); color:var(--zd-color-text);
  border:1px solid var(--zd-color-border); border-radius:var(--zd-radius-sm); }
.zd-word-gruppe button:hover { background:var(--zd-color-surface-alt); }
.zd-word-gruppe button[data-aktiv="ja"] { background:var(--zd-color-primary);
  color:var(--zd-color-primary-ink); border-color:var(--zd-color-primary); }
.zd-word-aktionen { display:flex; gap:var(--zd-space-3); align-items:center; margin-left:auto; }
.zd-word-dateiname { font-size:.85rem; color:var(--zd-color-muted); }
.zd-word-status { margin:var(--zd-space-3) 0 0; font-size:.9rem; color:var(--zd-color-muted); }
.zd-word-status[data-art="gut"] { color:var(--zd-color-success); }
.zd-word-status[data-art="warnung"] { color:var(--zd-color-warning); }
.zd-word-status[data-art="fehler"] { color:var(--zd-color-danger); }
.zd-word-ablage { margin-top:var(--zd-space-3); padding:var(--zd-space-5);
  background:var(--zd-color-surface-alt); border-radius:var(--zd-radius-lg);
  border:2px dashed transparent; }
.zd-word-ablage[data-ueber="ja"] { border-color:var(--zd-color-primary);
  background:color-mix(in srgb,var(--zd-color-primary) 6%,var(--zd-color-surface-alt)); }
/* Das Blatt hat die Proportion von A4 mit 2,5 cm Rand - so sieht man beim Schreiben,
   wie viel auf eine Seite passt. */
.zd-word-blatt { max-width:794px; min-height:900px; margin:0 auto; padding:96px;
  background:#fff; color:#111827; box-shadow:var(--zd-shadow-2);
  border-radius:2px; outline:none; font-family:Calibri,Carlito,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.5; }
.zd-word-blatt:focus-visible { box-shadow:var(--zd-shadow-2),0 0 0 3px var(--zd-color-glow); }
.zd-word-blatt h1 { font-size:2em; margin:.6em 0 .3em; color:#111827; }
.zd-word-blatt h2 { font-size:1.5em; margin:.6em 0 .3em; color:#111827; }
.zd-word-blatt h3 { font-size:1.2em; margin:.6em 0 .3em; color:#111827; }
.zd-word-blatt p { margin:0 0 .6em; }
.zd-word-blatt ul, .zd-word-blatt ol { margin:0 0 .6em; padding-left:1.6em; }
.zd-word-fuss { display:flex; flex-wrap:wrap; gap:var(--zd-space-4);
  justify-content:space-between; margin:var(--zd-space-3) 0 0;
  font-size:.85rem; color:var(--zd-color-muted); }
.zd-word-grenzen { margin-top:var(--zd-space-5); }
.zd-word-grenzen h3 { margin:0 0 var(--zd-space-3); font-size:1.05rem; }
.zd-word-grenzen p { margin:0 0 var(--zd-space-3); color:var(--zd-color-muted);
  font-size:.92rem; line-height:1.6; }
.zd-word-grenzen p:last-child { margin-bottom:0; }
@media (max-width:900px){
  .zd-word-leiste { position:static; }
  .zd-word-ablage { padding:var(--zd-space-3); }
  .zd-word-blatt { padding:32px; min-height:600px; }
  .zd-word-aktionen { margin-left:0; width:100%; }
}
.zd-qc-hinweis { margin:6px 0 0; font-size:.82rem; line-height:1.5;
  color:var(--zd-color-muted); }
.zd-qc-hinweis code { background:var(--zd-color-surface-alt); padding:1px 5px;
  border-radius:var(--zd-radius-sm); font-size:.95em; }
