/* HBS-Planer – Prototyp
   Stil „ruhig & hell“ (E19): weiße Flächen, feine Linien, Schwarz für Schrift,
   Böll-Grün #C8D530 nur als Akzent. Grün nie als Textfarbe auf Weiß. */
:root {
  --accent: #c8d530;
  --accent-soft: #f4f7dd;
  --accent-line: #dfe79a;
  --ink: #1d1d1f;
  --ink-2: #48484d;
  --muted: #68686e;
  --line: #e7e7e4;
  --line-2: #d6d6d2;
  --bg: #fafaf8;
  --paper: #fff;
  --hover: #f3f3f0;
  --red: #b3261e;
  --red-soft: #fbeeec;
  --amber: #8a5a00;
  --amber-soft: #fdf4e1;
  --blue: #2b5797;
  --blue-soft: #eaf0f8;
  /* privat (E90): eigener Ton, sonst nirgends verwendet */
  --privat: #6a4c9c;
  --privat-soft: #f5f1fb;
  --privat-line: #c9b8e3;
  --radius: 8px;
  --font: "Fira Sans", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  /* ältere Namen, von Papierfassung und Druck genutzt */
  --hbs-green: var(--accent);
  --hbs-green-soft: var(--accent-soft);
  --ink-3: var(--muted);
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--font); font-size: calc(15px * var(--fs)); line-height: 1.5; color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
a:hover { text-decoration-color: var(--ink); }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
.muted { color: var(--muted); }
.small { font-size: calc(13px * var(--fs)); }
.right { text-align: right; }
.overdue { color: var(--red); }
.empty { color: var(--muted); padding: 6px 0; font-size: calc(14px * var(--fs)); }
.grow { flex: 1; min-width: 0; }
.spacer { flex: 1; }
.ico { flex-shrink: 0; vertical-align: -3px; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

/* ---------- Gerüst ---------- */
.app { display: grid; grid-template-columns: 232px minmax(0, 1fr); min-height: 100vh; }
.sidebar { background: var(--paper); border-right: 1px solid var(--line); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.brand { padding: 22px 20px 14px; }
/* Marke im Menü (E155): nur das Porträt aus dem Schullogo (die Schriftkästen beginnen bei 37 % der Breite, gemessen
   am Bild 1593 × 991: Porträt bis Spalte 554, Lücke bis 594), daneben der Name des Werkzeugs und der Schulname */
.brand-marke { display: flex; align-items: center; gap: 12px; }
.brand-portraet { width: 54px; height: 93px; overflow: hidden; flex: none; }
.brand-portraet img { width: 150px; max-width: none; display: block; }
.brand-text strong { display: block; font-size: calc(20px * var(--fs)); font-weight: 600; color: var(--ink); line-height: 1.1; }
.brand-text span { display: block; font-size: calc(12px * var(--fs)); color: var(--muted); line-height: 1.3; margin-top: 3px; }
.gremium-switch { padding: 0 14px 10px; }
.gremium-switch select { width: 100%; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); font-size: calc(14px * var(--fs)); }
.gremium-name { padding: 0 20px 10px; font-size: calc(13px * var(--fs)); color: var(--muted); }
.nav { list-style: none; margin: 6px 0 0; padding: 0 10px; flex: 1; overflow-y: auto; }
.nav a { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 6px; text-decoration: none; color: var(--ink-2); font-size: calc(15px * var(--fs)); position: relative; }
.nav a:hover { background: var(--hover); color: var(--ink); }
.nav a.active { background: var(--accent-soft); color: var(--ink); font-weight: 600; }
.nav a.active::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 2px; background: var(--accent); }
.count { margin-left: auto; font-size: calc(12px * var(--fs)); color: var(--muted); font-weight: 500; }
/* unten Platz lassen: die Linkvorschau des Browsers erscheint unten links über dem Namensfeld (Hinweis des Nutzers 22.10.2026) */
.sidebar-foot { border-top: 1px solid var(--line); padding: 10px 10px 34px; }
.foot-link { display: block; padding: 7px 12px; border-radius: 6px; text-decoration: none; color: var(--muted); font-size: calc(14px * var(--fs)); }
.foot-link:hover, .foot-link.active { background: var(--hover); color: var(--ink); }
.userbox { display: flex; gap: 10px; align-items: center; padding: 8px 6px 2px; }
.userbox .who { font-weight: 600; font-size: calc(14px * var(--fs)); }
.userbox .role { color: var(--muted); font-size: calc(12px * var(--fs)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--accent-soft); border: 1px solid var(--accent-line); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: calc(11px * var(--fs)); flex-shrink: 0; }

.main { min-width: 0; }
.topbar { display: flex; align-items: center; gap: 14px; padding: 0 32px; height: 42px; border-bottom: 1px solid var(--line); font-size: calc(13px * var(--fs)); color: var(--muted); background: var(--bg); }
.menu-btn { display: none; border: 1px solid var(--line-2); background: var(--paper); border-radius: 6px; padding: 2px 10px; cursor: pointer; }
.content { padding: 28px 32px 48px; max-width: 1180px; }

/* ---------- Seitenkopf ---------- */
.crumb { font-size: calc(13px * var(--fs)); margin-bottom: 4px; }
.crumb a { color: var(--muted); text-decoration: none; }
.crumb a::before { content: ""; display: inline-block; width: 13px; height: 13px; margin-right: 3px; vertical-align: -2px; background: currentColor; -webkit-mask: var(--sym-zurueck) center / contain no-repeat; mask: var(--sym-zurueck) center / contain no-repeat; }
.crumb a:hover { color: var(--ink); }
.page-head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.page-head > div:first-child { flex: 1; min-width: 240px; }
.page-title { margin: 0; font-size: calc(26px * var(--fs)); font-weight: 600; letter-spacing: -.01em; line-height: 1.25; }
.page-sub { color: var(--muted); font-size: calc(14px * var(--fs)); margin-top: 4px; }
.page-head .actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.lead-text { color: var(--ink-2); max-width: 760px; margin: -6px 0 18px; }
.lead-small { margin: 0 0 12px; color: var(--ink-2); }
.hint { color: var(--muted); font-size: calc(13.5px * var(--fs)); margin: 4px 0 18px; }

/* ---------- Flächen ---------- */
.card { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 18px 20px; margin-bottom: 16px; }
.card h2 { margin: 0 0 10px; font-size: calc(15px * var(--fs)); font-weight: 600; display: flex; align-items: baseline; gap: 8px; }
.card.flush { padding: 0; }
.card.flush > h2 { padding: 16px 20px 4px; margin: 0; }
.card.flush > .card-sub { padding: 0 20px; margin: 0 0 4px; }
.card.flush .list > li { padding-left: 20px; padding-right: 20px; }
.head-link { margin-left: auto; font-size: calc(13px * var(--fs)); font-weight: 400; color: var(--muted); }
details.fold > summary { cursor: pointer; font-weight: 600; font-size: calc(15px * var(--fs)); list-style: none; display: flex; align-items: center; gap: 8px; }
details.fold > summary::-webkit-details-marker { display: none; }
details.fold > summary::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 2px; vertical-align: -1px; background: var(--muted); -webkit-mask: var(--sym-auf) center / contain no-repeat; mask: var(--sym-auf) center / contain no-repeat; transition: transform .15s; }
details.fold[open] > summary::before { transform: rotate(90deg); }
details.fold[open] > summary { margin-bottom: 10px; }
h3.sub { font-size: calc(13px * var(--fs)); font-weight: 600; color: var(--muted); margin: 18px 0 6px; }

.grid { display: grid; gap: 16px; }
.grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.cols-main { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; }

/* ---------- Knöpfe, Etiketten ---------- */
.btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line-2); background: var(--paper); color: var(--ink); padding: 6px 13px; border-radius: 7px; cursor: pointer; font-weight: 500; font-size: calc(14px * var(--fs)); text-decoration: none; white-space: nowrap; line-height: 1.4; }
.btn:hover { background: var(--hover); }
.btn.primary { background: var(--ink); border-color: var(--ink); color: #fff; }
.btn.primary:hover { background: #000; }
.btn.small { padding: 3px 10px; font-size: calc(13px * var(--fs)); }
.btn.danger { color: var(--red); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.icon-btn { border: none; background: none; width: 30px; height: 30px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; color: var(--muted); cursor: pointer; flex-shrink: 0; font-size: calc(14px * var(--fs)); }
.icon-btn:hover { background: var(--hover); color: var(--ink); }
.icon-btn-spacer { width: 30px; flex-shrink: 0; }
.link-btn { border: none; background: none; padding: 0; color: var(--muted); cursor: pointer; font-size: calc(13px * var(--fs)); text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
.link-btn:hover { color: var(--ink); text-decoration-color: var(--ink); }
.tag { display: inline-block; font-size: calc(12px * var(--fs)); font-weight: 500; color: var(--muted); background: var(--hover); border-radius: 10px; padding: 0 8px; line-height: 20px; white-space: nowrap; vertical-align: 1px; }
.tag.accent { background: var(--accent-soft); color: var(--ink); }
/* ältere Etiketten (Aufgabenliste u. a.) im selben ruhigen Stil */
.chip { display: inline-block; font-size: calc(12px * var(--fs)); color: var(--muted); background: var(--hover); border-radius: 10px; padding: 0 8px; line-height: 20px; white-space: nowrap; }
.chip.green, .chip.soft { background: var(--accent-soft); color: var(--ink); }
.chip.red { color: var(--red); background: var(--red-soft); }
.chip.amber { color: var(--amber); background: var(--amber-soft); }
.chip.blue { color: var(--blue); background: var(--blue-soft); }
.chip.dark { color: var(--ink); background: var(--hover); }

/* Aufklappmenü „⋯“ */
details.more { position: relative; display: inline-block; }
details.more > summary { list-style: none; width: 32px; height: 32px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--muted); font-size: calc(18px * var(--fs)); line-height: 1; border: 1px solid transparent; }
details.more > summary::-webkit-details-marker { display: none; }
.page-head details.more > summary { border-color: var(--line-2); background: var(--paper); }
details.more > summary:hover, details.more[open] > summary { background: var(--hover); color: var(--ink); }
.more-pop { position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.10); padding: 6px; min-width: 230px; }
.more-pop button { display: block; width: 100%; text-align: left; border: none; background: none; padding: 8px 10px; border-radius: 6px; cursor: pointer; font-size: calc(14px * var(--fs)); color: var(--ink); }
.more-pop button:hover { background: var(--hover); }

/* Filter, Suche, Reiter */
.filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; align-items: center; }
.seg { display: inline-flex; flex-wrap: wrap; max-width: 100%; background: #efefec; border-radius: 8px; padding: 2px; }
.seg button { border: none; background: none; padding: 4px 12px; border-radius: 6px; cursor: pointer; font-size: calc(13.5px * var(--fs)); color: var(--ink-2); }
.seg button.on { background: var(--paper); color: var(--ink); font-weight: 600; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.search { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--paper); padding: 0 10px; color: var(--muted); }
.search input { border: none; outline: none; padding: 6px 0; min-width: 190px; background: transparent; color: var(--ink); font-size: calc(14px * var(--fs)); }
.search:focus-within { border-color: var(--ink-2); }
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin: -4px 0 14px; flex-wrap: wrap; }
.tabs button, .tabs a { border: none; background: none; padding: 8px 12px; font-size: calc(14px * var(--fs)); cursor: pointer; color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -1px; text-decoration: none; }
.tabs button:hover, .tabs a:hover { color: var(--ink); }
.tabs .on { color: var(--ink); font-weight: 600; border-bottom-color: var(--accent); }
.page-tabs { margin: -6px 0 18px; }
/* Termine in zwei Bereichen (E166, E168): Aktuell · Planung */
.term-bereiche { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 28px; border-bottom: 1px solid var(--line); margin: -6px 0 14px; }
.term-bereiche .tabs { border-bottom: none; margin: 0; align-items: flex-end; }
.tb-lbl { align-self: center; font-size: calc(11px * var(--fs)); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
.tb-plan { background: var(--amber-soft); border-radius: 8px 8px 0 0; padding: 0 6px 0 10px; }
.tb-bearb { align-self: center; margin-left: 10px; }
.tabs .tb-bearb { border: 1px solid var(--line); background: var(--paper); color: var(--ink); border-radius: 8px; padding: 4px 10px; margin-bottom: 5px; }
.tabs .tb-bearb.primary { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.tb-plan-knopf { align-self: center; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; margin-bottom: 6px; border-radius: 8px; background: var(--amber-soft); color: var(--amber); font-weight: 600; font-size: calc(13px * var(--fs)); text-decoration: none; border: 1px solid transparent; }
.tb-plan-knopf:hover { border-color: var(--amber); }
.tb-plan .tb-lbl { color: var(--amber); }
.tb-plan .on { border-bottom-color: var(--amber); }
.planung-band { display: flex; gap: 10px; align-items: flex-start; background: var(--amber-soft); border-left: 4px solid var(--amber); border-radius: 8px; padding: 10px 14px; margin: 0 0 14px; font-size: calc(13.5px * var(--fs)); }
.planung-band .ico { color: var(--amber); flex: none; margin-top: 2px; }
.tabs .tab-zahl { font-size: calc(12px * var(--fs)); color: var(--muted); font-weight: 400; margin-left: 2px; }

/* Listen und Tabellen */
.list { list-style: none; margin: 0; padding: 0; }
.list > li { padding: 11px 0; border-bottom: 1px solid var(--line); display: flex; gap: 12px; align-items: flex-start; }
.list > li:last-child { border-bottom: none; }
.list .title { font-weight: 500; overflow-wrap: anywhere; }
.list a.title { text-decoration: none; }
.list a.title:hover { text-decoration: underline; }
.date-col { min-width: 108px; font-size: calc(14px * var(--fs)); color: var(--ink-2); text-decoration: none; }
a.date-col:hover { color: var(--ink); text-decoration: underline; }
table.tbl { width: 100%; border-collapse: collapse; font-size: calc(14px * var(--fs)); }
.tbl th { text-align: left; font-size: calc(12.5px * var(--fs)); font-weight: 500; color: var(--muted); border-bottom: 1px solid var(--line); padding: 10px 12px; }
.tbl td { border-bottom: 1px solid var(--line); padding: 9px 12px; vertical-align: middle; }
.tbl tr:last-child td { border-bottom: none; }
.tbl select { border: 1px solid var(--line-2); border-radius: 6px; padding: 3px 6px; background: var(--paper); font-size: calc(13px * var(--fs)); }
.tbl-wrap { overflow-x: auto; }
.tbl tr.grp th { background: none; color: var(--ink); font-size: calc(13px * var(--fs)); font-weight: 600; padding-top: 16px; }
.tbl tr.grp-red th { color: var(--red); }
.matrix td, .matrix th { text-align: center; }
.matrix td:first-child, .matrix th:first-child { text-align: left; }
.yes { color: var(--ink); }
.no { color: var(--muted); }
input[type=checkbox] { width: 17px; height: 17px; accent-color: var(--ink); margin: 2px 0 0; flex-shrink: 0; }

/* ---------- Startseite ---------- */
.reminder { background: var(--paper); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 10px; padding: 12px 18px; margin-bottom: 16px; }
.reminder-head { display: flex; justify-content: space-between; align-items: baseline; font-weight: 600; font-size: calc(14px * var(--fs)); }
.reminder ul { list-style: none; margin: 6px 0 0; padding: 0; }
.reminder li { padding: 4px 0; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.reminder .when { min-width: 86px; font-size: calc(13px * var(--fs)); color: var(--muted); }
.big-link { font-size: calc(18px * var(--fs)); font-weight: 600; text-decoration: none; display: inline-block; margin-bottom: 2px; }
.big-link:hover { text-decoration: underline; }
.next-tops { list-style: none; margin: 12px 0 6px; padding: 0; }
.next-tops li { padding: 3px 0; }
.next-tops .lbl, .agenda-teile .lbl { display: inline-block; min-width: 54px; color: var(--muted); font-size: calc(13px * var(--fs)); }
.task-line { display: flex; gap: 10px; align-items: center; padding: 4px 0; flex-wrap: wrap; }

/* ---------- Sitzungen ---------- */
.rot-line { color: var(--muted); font-size: calc(14px * var(--fs)); margin: -4px 0 16px; }
.rot-line strong { color: var(--ink); font-weight: 600; }
.sitz-row { align-items: center !important; }
.status { font-size: calc(13px * var(--fs)); color: var(--muted); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--line-2); }
.status.st-geplant::before { background: var(--blue); }
.status.st-entwurf::before { background: var(--amber); }
.status.st-freigabe::before { background: var(--red); }
.status.st-freigabe { color: var(--red); }
.status.st-freigegeben::before { background: var(--accent); }

.stepper { display: flex; gap: 0; flex-wrap: wrap; font-size: calc(13px * var(--fs)); color: var(--muted); margin: -4px 0 6px; }
.stepper span { display: inline-flex; align-items: center; }
.stepper span + span::before { content: ""; width: 24px; height: 1px; background: var(--line-2); margin: 0 10px; }
.stepper .done { color: var(--ink-2); }
.stepper .done::after { content: " ✓"; white-space: pre; color: var(--muted); }
.stepper .now { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 3px; text-underline-offset: 5px; }


.teil { margin-bottom: 28px; }
.teil-head { display: flex; align-items: center; gap: 10px; margin: 6px 0 10px; font-size: calc(13px * var(--fs)); font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-2); }
.teil-head span { width: 22px; height: 22px; border-radius: 6px; background: var(--hover); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; font-size: calc(12px * var(--fs)); letter-spacing: 0; }
.teil-bericht .teil-head span { background: var(--accent-soft); }
.grp-head { font-size: calc(12.5px * var(--fs)); font-weight: 500; color: var(--muted); margin: 14px 0 6px; }

.top { background: var(--paper); border: 1px solid var(--line); border-radius: 8px; margin-bottom: 8px; scroll-margin-top: 16px; }
/* Punkte eines Teils bzw. einer Berichtsgruppe als ein Block mit Trennlinien */
.stack { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; overflow: visible; }
.stack > .top { border: none; border-bottom: 1px solid var(--line); border-radius: 0; margin: 0; background: transparent; }
.stack > .top:last-child { border-bottom: none; }
.stack > .top.flash { border-radius: 8px; }
.top-head { display: flex; gap: 10px; align-items: center; padding: 9px 10px 9px 8px; }
.top-toggle { border: none; background: none; cursor: pointer; padding: 2px; display: inline-flex; color: var(--muted); transition: transform .15s; border-radius: 4px; }
.top-toggle:hover { color: var(--ink); background: var(--hover); }
.top.collapsed .top-toggle { transform: rotate(-90deg); }
.top-toggle-spacer { width: 20px; flex-shrink: 0; }
.top-nr { font-size: calc(12.5px * var(--fs)); font-weight: 600; color: var(--ink-2); background: var(--hover); border-radius: 5px; padding: 1px 7px; white-space: nowrap; flex-shrink: 0; }
.top-nr.t-bericht { background: var(--accent-soft); min-width: 44px; text-align: center; }
.t-wrap { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.t { font-weight: 500; font-size: calc(15px * var(--fs)); }
.top-bericht .t { font-weight: 400; }
.t-meta { font-size: calc(12.5px * var(--fs)); color: var(--muted); }
.t-meta a { color: var(--muted); }
.top-tools { display: inline-flex; gap: 4px; align-items: center; flex-shrink: 0; }
.mv { border: 1px solid var(--line-2); background: var(--paper); border-radius: 6px; width: 28px; height: 28px; font-size: calc(14px * var(--fs)); cursor: pointer; color: var(--ink-2); padding: 0; }
.mv:hover:not(:disabled) { background: var(--accent-soft); border-color: var(--accent-line); color: var(--ink); }
.mv:disabled { opacity: .3; cursor: default; }
.top-body { padding: 0 14px 12px 38px; }
.top-body textarea { width: 100%; min-height: 76px; border: 1px solid var(--line-2); border-radius: 7px; padding: 8px 10px; resize: vertical; }
.top-body textarea:focus { outline: none; border-color: var(--ink-2); }
.top-body .desc { white-space: pre-wrap; }
.top.flash { animation: flash 1.6s ease-out; }
@keyframes flash { 0% { box-shadow: 0 0 0 3px var(--accent); } 100% { box-shadow: 0 0 0 0 transparent; } }
.antrag { color: var(--ink-2); font-size: calc(14px * var(--fs)); border-left: 2px solid var(--line-2); padding: 1px 0 1px 10px; margin-bottom: 8px; }
.beschluss { border-left: 3px solid var(--accent); background: #fafbef; padding: 6px 10px; margin: 8px 0; border-radius: 0 6px 6px 0; display: flex; gap: 8px; align-items: flex-start; }
.beschluss::before { content: "Beschluss"; font-size: calc(11.5px * var(--fs)); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding-top: 2px; white-space: nowrap; }
.beschluss span { flex: 1; }
.inline-add { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.inline-add input[type=text] { flex: 1; min-width: 180px; padding: 5px 9px; border: 1px solid var(--line-2); border-radius: 7px; }
.inline-add select, .inline-add input[type=date] { padding: 5px 8px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--paper); }
.add-top { margin-top: 6px; }
.add-top input[type=text] { border-style: dashed; }
/* Meilensteine beim Anlegen eines Projekts (optional) */
/* Eingaben erst bei Bedarf (E23) */
.add-links { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 6px; }
.add-link { border: none; background: none; padding: 2px 0; color: var(--muted); cursor: pointer; font-size: calc(13px * var(--fs)); }
.add-link:hover, .add-link:focus-visible { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.add-top-link { margin: 8px 0 0 4px; }
.inline-add.reveal { background: var(--bg); border-radius: 8px; padding: 6px; margin-top: 6px; align-items: center; }
.top-body textarea.auto { min-height: 0; resize: none; overflow: hidden; line-height: 1.5; }
.top-bericht textarea.auto { padding: 6px 10px; }
/* Berichte: Zusatz-Links erst, wenn man im Bericht arbeitet oder mit der Maus darüber ist */
.top-bericht .add-links { display: none; }
.top-bericht:hover .add-links, .top-bericht:focus-within .add-links { display: flex; }
@media (hover: none) { .top-bericht .add-links { display: flex; } }
.top-bericht .top-head { padding-top: 6px; padding-bottom: 6px; }
.top-bericht .top-body { padding-bottom: 8px; }
.top-body.over { background: var(--accent-soft); border-radius: 0 0 8px 8px; }
details.teil-fold > summary { cursor: pointer; list-style: none; }
details.teil-fold > summary::-webkit-details-marker { display: none; }
details.teil-fold > summary em { font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: calc(13px * var(--fs)); }
details.teil-fold > summary::after { content: "anzeigen"; margin-left: auto; font-size: calc(12.5px * var(--fs)); font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--muted); text-decoration: underline; text-decoration-color: var(--line-2); }
details.teil-fold[open] > summary::after { content: "ausblenden"; }
.att { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 18px; }
.att label { display: flex; gap: 8px; align-items: center; font-size: calc(14px * var(--fs)); }
.att select { padding: 2px 4px; border: 1px solid var(--line-2); border-radius: 6px; font-size: calc(13px * var(--fs)); background: var(--paper); }

/* Themen */
.list.themen > li { align-items: flex-start; }
.list.themen li.done .title { color: var(--muted); }
.rang { width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--line-2); color: var(--ink-2); display: inline-flex; align-items: center; justify-content: center; font-size: calc(12px * var(--fs)); font-weight: 600; flex-shrink: 0; margin-top: 1px; }
.list.themen li.vorschlag .rang { background: var(--accent); border-color: var(--accent); color: var(--ink); }
.themen-panel .row-actions { display: inline-flex; gap: 4px; flex-shrink: 0; }
label.radio, label.check { display: flex; gap: 8px; align-items: center; font-weight: 400; margin: 4px 0; cursor: pointer; font-size: calc(14px * var(--fs)); }
label.radio input { width: 16px; height: 16px; accent-color: var(--ink); }
/* Kalender abonnieren im Fenster „Exportieren“ (E181) */
.abo-block { margin-top: 14px; }
.abo-zeile { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 8px 0; border-top: 1px solid var(--line); font-size: calc(14px * var(--fs)); }
.abo-zeile > span:first-child { flex: 1 1 200px; }
.abo-url { flex: 1 1 100%; font-size: calc(12.5px * var(--fs)); color: var(--ink-2); }
.abo-knoepfe { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.abo-demo { margin: 12px 0 0; }
.checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0 16px; max-height: 190px; overflow-y: auto; border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; }
.themen-pick { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; max-height: 250px; overflow-y: auto; }
.pick-row { display: flex; gap: 8px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.pick-row:last-child { border-bottom: none; }
.pick-row > label { flex: 1; min-width: 180px; font-weight: 400; margin: 0; }
.pick-row select { width: auto; padding: 3px 6px; font-size: calc(13px * var(--fs)); }
.rot-hint { background: var(--accent-soft); border-radius: 8px; padding: 10px 12px; margin: 4px 0 12px; font-size: calc(14px * var(--fs)); }
.rot-list { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rot-list li { border: 1px solid var(--line-2); border-radius: 16px; padding: 3px 12px; display: inline-flex; gap: 6px; align-items: center; background: var(--paper); font-size: calc(14px * var(--fs)); }
.rot-list li .k { font-weight: 600; }
.rot-list li.prot { border-color: var(--accent); background: var(--accent-soft); }
.rot-list li.mod { border-color: var(--ink-2); }

/* Projekte */
.proj-list { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; }
.proj-row { display: flex; gap: 16px; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--line); text-decoration: none; }
.proj-row:last-child { border-bottom: none; }
.proj-row:hover { background: #fcfcfa; }
.proj-row:hover .title { text-decoration: underline; }
.proj-row .title { font-weight: 500; font-size: calc(15.5px * var(--fs)); }
.chronik { list-style: none; margin: 0; padding: 0 0 0 16px; border-left: 2px solid var(--line); }
.chronik > li { position: relative; padding: 0 0 18px 10px; }
.chronik > li::before { content: ""; position: absolute; left: -22px; top: 6px; width: 10px; height: 10px; border-radius: 50%; background: var(--paper); border: 2px solid var(--accent); }
.chronik-head { margin-bottom: 6px; }
.chronik-head a { font-weight: 600; text-decoration: none; }
.chronik-item { padding: 6px 0 6px; border-bottom: 1px dashed var(--line); }
.chronik-item:last-child { border-bottom: none; }
.ms-list li.done .title { text-decoration: line-through; color: var(--muted); }

/* Termine */
.list.termine > li { align-items: center; }
.list.termine li.starred { background: linear-gradient(90deg, #fbfcf0, transparent 60%); }
.datebox { width: 42px; flex-shrink: 0; text-align: center; line-height: 1.1; }
.datebox .d { display: block; font-size: calc(18px * var(--fs)); font-weight: 600; }
.datebox .w { display: block; font-size: calc(11px * var(--fs)); text-transform: uppercase; color: var(--muted); }
.star { border: none; background: none; cursor: pointer; padding: 5px; display: inline-flex; align-items: center; gap: 4px; color: var(--line-2); border-radius: 6px; font-size: calc(13px * var(--fs)); }
.star svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.star:hover { color: var(--ink-2); }
.star.on { color: var(--ink-2); }
.star.on svg { fill: var(--accent); stroke: #9aa51c; }

/* Anhänge */
.files { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.file { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 4px 0; }
.ftype { font-size: calc(10px * var(--fs)); font-weight: 700; letter-spacing: .04em; color: var(--muted); border: 1px solid var(--line-2); border-radius: 4px; padding: 1px 4px; min-width: 36px; text-align: center; flex-shrink: 0; }
.ftype.pdf { color: var(--red); }
.file-name, .file-link { border: none; background: none; padding: 0; cursor: pointer; text-align: left; color: var(--ink); text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; font: inherit; }
.file-name { flex: 1; min-width: 150px; overflow-wrap: anywhere; font-size: calc(14px * var(--fs)); }
.file-name:hover, .file-link:hover { text-decoration-color: var(--ink); }
.dropzone { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); cursor: pointer; font-size: calc(13px * var(--fs)); padding: 4px 8px; border: 1px dashed var(--line-2); border-radius: 7px; align-self: flex-start; margin-top: 4px; }
.dropzone:hover, .dropzone.over { color: var(--ink); border-color: var(--ink-2); background: var(--hover); }
.dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pr-flag { display: inline-flex; gap: 5px; align-items: center; font-size: calc(12px * var(--fs)); color: var(--muted); cursor: pointer; white-space: nowrap; }
.pr-flag input { width: 14px; height: 14px; margin: 0; }
.pr-flag.on { color: var(--ink); font-weight: 500; }

/* Formulare und Fenster */
.modal-bg { position: fixed; inset: 0; background: rgba(20,20,20,.32); display: flex; align-items: flex-start; justify-content: center; padding: 56px 16px; z-index: 50; overflow-y: auto; }
.modal { background: var(--paper); border-radius: 12px; width: 100%; max-width: 580px; box-shadow: 0 20px 50px rgba(0,0,0,.18); }
.modal.wide, .modal:has(table.vorlage) { max-width: 720px; }
.modal header { padding: 18px 22px 8px; font-weight: 600; font-size: calc(18px * var(--fs)); display: flex; align-items: center; }
.modal header button { margin-left: auto; border: none; background: none; font-size: calc(22px * var(--fs)); cursor: pointer; line-height: 1; color: var(--muted); }
.modal .body { padding: 8px 22px 12px; }
.modal footer { padding: 12px 22px 18px; display: flex; gap: 8px; justify-content: flex-end; }
.field { margin-bottom: 14px; }
.field > label { display: block; font-size: calc(13px * var(--fs)); font-weight: 600; margin-bottom: 5px; color: var(--ink-2); }
.field input:not([type=checkbox]):not([type=radio]):not([type=file]), .field select, .field textarea { width: 100%; padding: 7px 10px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--paper); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--ink-2); }
.field textarea { min-height: 84px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.settings { display: flex; gap: 28px; flex-wrap: wrap; }
.settings label { display: flex; flex-direction: column; gap: 5px; font-size: calc(13px * var(--fs)); font-weight: 600; color: var(--ink-2); }
.settings select, .settings input { padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; font-weight: 400; background: var(--paper); }
table.vorlage { width: 100%; border-collapse: collapse; }
.vorlage th { text-align: left; font-size: calc(12px * var(--fs)); color: var(--muted); padding: 4px; font-weight: 500; }
.vorlage td { padding: 3px 4px 3px 0; }
.vorlage input, .vorlage select { width: 100%; padding: 5px 7px; border: 1px solid var(--line-2); border-radius: 6px; background: var(--paper); }
.opt-h { font-size: calc(15px * var(--fs)); margin: 4px 0 6px; display: flex; gap: 8px; align-items: center; }
.feed-url { display: flex; gap: 8px; align-items: center; background: var(--hover); padding: 8px 10px; border-radius: 8px; flex-wrap: wrap; }
.feed-url code { flex: 1; font-size: calc(13px * var(--fs)); overflow-wrap: anywhere; color: var(--muted); }
.toast { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); background: var(--ink); color: #fff; padding: 9px 16px; border-radius: 8px; z-index: 60; font-size: calc(14px * var(--fs)); box-shadow: 0 6px 20px rgba(0,0,0,.18); }

/* ---------- Gantt (E26) ---------- */
.gantt-card h2 { flex-wrap: wrap; }
.gantt-tools { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.gantt { min-width: 720px; font-size: calc(13px * var(--fs)); }
.g-head { display: grid; grid-template-columns: 250px 1fr; border-bottom: 1px solid var(--line-2); }
.g-scale { position: relative; height: 38px; }
.g-month { position: absolute; top: 0; height: 22px; padding: 3px 6px; color: var(--ink-2); font-weight: 500; border-left: 1px solid var(--line); white-space: nowrap; overflow: hidden; }
.g-week { position: absolute; top: 22px; font-size: calc(11px * var(--fs)); color: var(--muted); padding-left: 3px; border-left: 1px dotted var(--line-2); height: 16px; }
.g-body { display: grid; grid-template-columns: 250px 1fr; }
.g-lbl { display: flex; align-items: center; gap: 6px; padding-right: 10px; border-bottom: 1px solid var(--line); min-width: 0; }
.g-lbl a, .g-lbl span, .g-lbl-btn { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-lbl a { text-decoration: none; font-weight: 500; }
.g-lbl a:hover { text-decoration: underline; }
.g-lbl-btn { border: none; background: none; padding: 0; cursor: pointer; text-align: left; color: var(--ink); font: inherit; }
.g-lbl-btn:hover { text-decoration: underline; }
.g-sub { color: var(--muted); font-size: calc(12px * var(--fs)); margin-left: auto; flex-shrink: 0; }
.g-lbl.gl-vorgang, .g-lbl.gl-meilenstein, .g-lbl.gl-termin { padding-left: 20px; }
.g-lbl.gl-meilenstein span:first-child, .g-lbl.gl-termin span:first-child { color: var(--ink-2); }
.g-toggle { border: none; background: none; width: 18px; padding: 0; cursor: pointer; color: var(--muted); flex-shrink: 0; }
.g-track { position: relative; background: repeating-linear-gradient(0deg, transparent 0 33px, var(--line) 33px 34px); }
.g-today { position: absolute; top: -38px; bottom: 0; width: 1px; background: var(--red); z-index: 3; pointer-events: none; }
.g-deps { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.g-deps path { fill: none; stroke: var(--muted); stroke-width: 1.2; }
.g-deps path.konflikt { stroke: var(--red); stroke-dasharray: 3 2; }
.g-arrow { position: absolute; width: 0; height: 0; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 6px solid var(--muted); transform: translate(-6px, -4px); pointer-events: none; }
.g-arrow.konflikt { border-left-color: var(--red); }
.g-bar { position: absolute; height: 18px; border-radius: 5px; background: var(--accent-line); overflow: hidden; z-index: 2; }
.g-bar .g-fill { position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent); }
/* Farbe = Stand (E81), wie die Etiketten der Projektliste; Rot bleibt Konflikten vorbehalten */
.g-bar.gs-planung, .lg-bar.gs-planung { background: #d9e3f1; }
.g-bar.gs-planung .g-fill { background: #6c8dbd; }
.g-bar.gs-laufend, .lg-bar.gs-laufend { background: var(--accent-line); }
.g-bar.gs-laufend .g-fill { background: var(--accent); }
.g-bar.gs-pausiert, .lg-bar.gs-pausiert { background: #f2e2bf; }
.g-bar.gs-pausiert .g-fill { background: #c49a4c; }
.g-bar.gs-abgeschlossen, .lg-bar.gs-abgeschlossen { background: #e6e6e1; }
.g-bar.gs-abgeschlossen .g-fill { background: #cfcfca; }
.g-bar.open { border-top-right-radius: 0; border-bottom-right-radius: 0; -webkit-mask-image: linear-gradient(90deg, #000 80%, transparent); mask-image: linear-gradient(90deg, #000 80%, transparent); }
.g-bar.konflikt { box-shadow: 0 0 0 1.5px var(--red); }
.g-bar[data-drag] { cursor: grab; touch-action: none; }
.g-bar.zieht { cursor: grabbing; opacity: .85; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.g-handle { position: absolute; right: 0; top: 0; bottom: 0; width: 8px; cursor: ew-resize; background: rgba(0,0,0,.08); }
.g-ms { position: absolute; width: 12px; height: 12px; background: var(--ink); transform: translate(-50%, -50%) rotate(45deg); z-index: 2; }
.g-ms.small { width: 8px; height: 8px; }
.g-ms.done { background: var(--paper); border: 1.5px solid var(--ink-2); }
.g-legend { display: flex; gap: 18px; flex-wrap: wrap; font-size: calc(12px * var(--fs)); color: var(--muted); margin-top: 10px; }
.g-legend i { display: inline-block; vertical-align: middle; margin-right: 4px; }
.lg-bar { width: 22px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, var(--accent) 50%, var(--accent-line) 50%); }
.lg-bar.gs-planung { background: linear-gradient(90deg, #6c8dbd 50%, #d9e3f1 50%); }
.lg-bar.gs-laufend { background: linear-gradient(90deg, var(--accent) 50%, var(--accent-line) 50%); }
.lg-bar.gs-pausiert { background: linear-gradient(90deg, #c49a4c 50%, #f2e2bf 50%); }
.lg-bar.gs-abgeschlossen { background: linear-gradient(90deg, #cfcfca 50%, #e6e6e1 50%); }
.lg-ms { width: 8px; height: 8px; background: var(--ink); transform: rotate(45deg); }
.today-mark { color: var(--red); }
.lg-dep { width: 18px; height: 0; border-top: 1.5px solid var(--muted); }

.g-ferien { position: absolute; top: 0; bottom: 0; background: repeating-linear-gradient(135deg, rgba(0,0,0,.035) 0 6px, transparent 6px 12px); pointer-events: auto; z-index: 0; }
.g-termin { position: absolute; height: 8px; min-width: 8px; border-radius: 4px; background: var(--blue); opacity: .75; transform: translate(-4px, -50%); z-index: 2; }
.lg-termin { width: 8px; height: 8px; border-radius: 4px; background: var(--blue); opacity: .75; }
.lg-ferien { width: 16px; height: 10px; background: repeating-linear-gradient(135deg, rgba(0,0,0,.12) 0 3px, transparent 3px 6px); }
.datebox.ferien .d, .datebox.ferien .w { color: var(--muted); }

/* Jahresplanung (E31) */
.jp-list > li { align-items: center; }
.jp-list li.jp-verworfen .title, .jp-list li.jp-verworfen .date-col { color: var(--muted); text-decoration: line-through; }
.jp-list li.jp-konflikt { box-shadow: inset 3px 0 0 var(--red); }
.jp-list li.jp-uebernommen { background: linear-gradient(90deg, #fbfcf0, transparent 50%); }
.jp-hints { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 3px; }
.jp-hint { font-size: calc(12px * var(--fs)); border-radius: 10px; padding: 0 8px; line-height: 20px; }
.jp-hint.konflikt { background: var(--red-soft); color: var(--red); }
.jp-hint.pruefen { background: var(--amber-soft); color: var(--amber); }
.jp-hint.info { background: var(--hover); color: var(--muted); }
.row-actions { display: inline-flex; gap: 2px; flex-shrink: 0; }

/* Themenformular: einbringende Person */
.einbringer { font-size: calc(14px * var(--fs)); color: var(--ink-2); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.einbringer select { width: auto !important; }

/* ---------- Anmeldung (E27) ---------- */
.login { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 16px; background: var(--bg); position: relative; overflow: hidden; }
.login::before { content: ""; position: absolute; right: -60px; top: -40px; width: 260px; height: 380px; background: var(--accent); opacity: .5; transform: skewY(31deg); transform-origin: left top; pointer-events: none; }
.login-card { position: relative; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 40px rgba(0,0,0,.06); padding: 36px 36px 28px; width: 100%; max-width: 520px; }
.login-logo { width: 190px; display: block; margin-bottom: 22px; }
.login-name { margin: 0; font-size: calc(28px * var(--fs)); font-weight: 600; letter-spacing: -.01em; }
.login-claim { margin: 4px 0 22px; color: var(--muted); }
/* Anmeldung im Serverbetrieb (E123) */
.login-form { display: grid; gap: 12px; text-align: left; }
.login-form .field { margin: 0; }
.login-form .field input { width: 100%; }
.login-meldung { background: var(--hover); border-left: 4px solid var(--blue); border-radius: 6px; padding: 10px 12px; text-align: left; font-size: calc(14px * var(--fs)); }
button.foot-link { width: 100%; text-align: left; border: 0; background: none; cursor: pointer; font: inherit; font-size: calc(13px * var(--fs)); }
.login-sso { width: 100%; justify-content: center; padding: 10px; font-size: calc(15px * var(--fs)); }
.login-note { margin: 8px 0 0; text-align: center; }
.login-demo { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.login-demo-head { font-size: calc(13px * var(--fs)); font-weight: 600; color: var(--ink-2); margin-bottom: 10px; }
.login-last { display: flex; gap: 10px; align-items: center; width: 100%; text-align: left; border: 1px solid var(--accent-line); background: var(--accent-soft); border-radius: 10px; padding: 8px 12px; cursor: pointer; margin-bottom: 10px; }
.login-last:hover { border-color: var(--accent); }
.kz-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.kz { border: 1px solid var(--line); background: var(--paper); border-radius: 9px; padding: 8px 4px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 1px; min-width: 0; }
.kz strong { font-size: calc(15px * var(--fs)); }
.kz span { font-size: calc(11px * var(--fs)); color: var(--muted); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kz:hover, .kz:focus-visible { border-color: var(--ink-2); background: var(--hover); }
.login-more { margin-top: 12px; font-size: calc(13px * var(--fs)); color: var(--muted); }
.login-foot { position: relative; margin-top: 18px; font-size: calc(12.5px * var(--fs)); color: var(--muted); text-align: center; }

.print-only { display: none; }

/* ---------- Freigegebenes Protokoll: Papierfassung ---------- */
.doc-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.doc-bar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.desk { background: #ecece8; margin: 0 -32px -48px; padding: 36px 32px 56px; min-height: 70vh; border-top: 1px solid var(--line); overflow: clip; } /* Wasserzeichen ragt sonst über das Fenster (E98) */
.sheet {
  position: relative; max-width: 794px; margin: 0 auto; background: #fff; color: #111;
  padding: 64px 72px 56px; box-shadow: 0 1px 3px rgba(0,0,0,.2), 0 10px 30px rgba(0,0,0,.12);
  font-size: calc(14.5px * var(--fs)); line-height: 1.5;
}
/* angedeuteter Papierstapel */
.sheet::before, .sheet::after { content: ""; position: absolute; left: 6px; right: 6px; height: 100%; top: 0; background: #fff; z-index: -1; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
.sheet::before { transform: translate(5px, 6px) rotate(.4deg); }
.sheet::after { transform: translate(-4px, 10px) rotate(-.5deg); }
.desk .sheet { z-index: 0; }
.watermark { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; font-size: calc(130px * var(--fs)); font-weight: 800; color: rgba(0,0,0,.05); transform: rotate(-35deg); letter-spacing: .08em; overflow: hidden; }
.sheet-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; border-bottom: 2px solid #111; padding-bottom: 18px; margin-bottom: 18px; }
.sheet-head img { width: 190px; flex-shrink: 0; }
.sheet-kicker { font-size: calc(12px * var(--fs)); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); }
.sheet-title { display: inline-block; background: #111; color: #fff; font-size: calc(22px * var(--fs)); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding: 4px 12px; margin: 8px 0 8px; }
.sheet-when { font-size: calc(15px * var(--fs)); }
.sheet-draft { background: var(--red-soft); color: var(--red); font-weight: 700; padding: 6px 10px; margin-bottom: 14px; font-size: calc(13px * var(--fs)); }
.sheet-facts { width: 100%; border-collapse: collapse; margin-bottom: 8px; }
.sheet-facts th { text-align: left; width: 150px; color: var(--ink-3); font-weight: 600; font-size: calc(13px * var(--fs)); vertical-align: top; }
.sheet-facts th, .sheet-facts td { padding: 6px 0; border-bottom: 1px solid #e3e3e3; }
.sheet h2 { font-size: calc(13px * var(--fs)); text-transform: uppercase; letter-spacing: .06em; margin: 24px 0 6px; display: flex; gap: 8px; align-items: center; }
.sheet h2::before { content: ""; width: 7px; height: 14px; background: var(--hbs-green); }
.sheet-agenda ol { margin: 0; padding-left: 22px; }
.sheet-top { margin-top: 26px; break-inside: avoid-page; }
.sheet-top h3 { font-size: calc(17px * var(--fs)); margin: 0 0 2px; display: flex; gap: 10px; align-items: baseline; }
.sheet-top h3 .nr { background: #111; color: #fff; font-size: calc(13px * var(--fs)); padding: 2px 8px; flex-shrink: 0; }
.sheet-meta { font-size: calc(12.5px * var(--fs)); color: var(--ink-3); margin-bottom: 6px; }
.sheet-top p { margin: 6px 0; }
.sheet-beschluss { background: var(--hbs-green-soft); border-left: 4px solid var(--hbs-green); padding: 7px 12px; margin: 8px 0; }
.sheet-tasks { width: 100%; border-collapse: collapse; font-size: calc(13.5px * var(--fs)); margin: 8px 0; }
.sheet-tasks th { text-align: left; font-size: calc(11px * var(--fs)); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); border-bottom: 1px solid #111; padding: 3px 6px 3px 0; }
.sheet-tasks td { border-bottom: 1px solid #e3e3e3; padding: 4px 6px 4px 0; }
.sheet-files { font-size: calc(13px * var(--fs)); font-style: italic; color: var(--ink-2); margin-top: 6px; }
.file-link { border: none; background: none; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
.sheet-foot { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; margin-top: 44px; flex-wrap: wrap; }
.sign { display: flex; gap: 28px; flex-wrap: wrap; }
.sign > div { display: flex; flex-direction: column; min-width: 180px; font-size: calc(13px * var(--fs)); }
.sign-line { display: block; border-bottom: 1px solid #111; height: 34px; margin-bottom: 4px; }
.sign small { color: var(--ink-3); }
.sheet-pagefoot { margin-top: 36px; padding-top: 8px; border-top: 2px solid var(--hbs-green); font-size: calc(11.5px * var(--fs)); color: var(--ink-3); }

/* Papierfassung: Teile */
.agenda-teile { list-style: none; padding: 0; margin: 0; }
.agenda-teile > li { margin: 6px 0; }
.agenda-teile ul { list-style: none; margin: 2px 0 0; padding: 0 0 0 16px; }
.sheet-teil > h2 { margin-top: 30px; }
.sheet-grp { font-weight: 600; font-size: calc(12px * var(--fs)); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); margin: 14px 0 4px; border-bottom: 1px solid #e3e3e3; padding-bottom: 2px; }
.sheet-bericht { margin: 6px 0 10px; break-inside: avoid-page; }
.sheet-bericht .bh { font-size: calc(15px * var(--fs)); }
.sheet-bericht p { margin: 2px 0; }
.kein { color: var(--ink-3); font-style: italic; margin: 2px 0; }
.sheet-top.s-verschiedenes h3 .nr { background: #666; }


/* ---------- Schmale Bildschirme ---------- */
@media (max-width: 900px) {
  .app { grid-template-columns: minmax(0, 1fr); }
  .sidebar { position: fixed; left: 0; top: 0; bottom: 0; width: 250px; z-index: 40; transform: translateX(-100%); transition: transform .2s; }
  .app.nav-open .sidebar { transform: none; box-shadow: 0 0 30px rgba(0,0,0,.2); }
  .menu-btn { display: inline-block; }
  .topbar { padding: 0 16px; }
  .content { padding: 18px 16px 40px; }
  .grid.cols-2, .grid.cols-main { grid-template-columns: minmax(0, 1fr); }
  .top-head { flex-wrap: wrap; }
  .top-body { padding-left: 14px; }
  .inline-add input[type=text] { min-width: 0; flex-basis: 100%; }
  .field-row { grid-template-columns: 1fr; }
  .search, .search input { min-width: 0; width: 100%; }
  .page-title { font-size: calc(22px * var(--fs)); }
  .date-col { min-width: 84px; }
  .jp-list > li { flex-wrap: wrap; }
  .jp-list .date-col { flex-basis: 100%; }
  .login-card { padding: 26px 18px 20px; }
  .kz-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .login::before { display: none; }
  .desk { margin: 0 -16px -18px; padding: 16px 8px 32px; }
  .sheet { padding: 28px 20px; font-size: calc(14px * var(--fs)); }
  .sheet::before, .sheet::after { display: none; }
  .sheet-head { flex-direction: column-reverse; }
  .sheet-head img { width: 150px; }
  .watermark { font-size: calc(64px * var(--fs)); }
}

/* ---------- Druck: immer die Papierfassung ---------- */
@page { size: A4; margin: 16mm 16mm 18mm; }
@media print {
  body { background: #fff; }
  .sidebar, .topbar, .no-print, .screen-only, .toast, .modal-bg { display: none !important; }
  .print-only { display: block; }
  .app { display: block; }
  .content { padding: 0; max-width: none; }
  .desk { background: none; margin: 0; padding: 0; min-height: 0; }
  .sheet { box-shadow: none; padding: 0; max-width: none; font-size: 10.5pt; }
  .sheet::before, .sheet::after { display: none; }
  .sheet-title, .sheet-top h3 .nr, .sheet-beschluss, .sheet-draft, .sheet h2::before, .sheet-pagefoot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .watermark { position: fixed; color: rgba(0,0,0,.06); }
}

/* Einstufung: besonders wichtig / ausgeblendet (E32) */
.tag.sl-wichtig { background: var(--red-soft); color: var(--red); }
.list li.sicht-wichtig .title { font-weight: 600; }
.list li.sicht-wichtig { box-shadow: inset 3px 0 0 var(--red); }
.list li.sicht-aus { opacity: .6; }
.btn.aus-btn.on { background: var(--hover); }
.more-note { margin: 4px 10px 6px; font-size: calc(12px * var(--fs)); color: var(--muted); max-width: 260px; line-height: 1.4; }
.list .more { flex-shrink: 0; }

/* Kalender der Jahresplanung (E35) */
.cal-nav { display: flex; align-items: center; gap: 10px; margin: 4px 0 10px; flex-wrap: wrap; }
.cal-nav strong { min-width: 150px; text-align: center; font-size: calc(16px * var(--fs)); }
.cal-wrap { overflow-x: auto; max-width: 100%; }
.cal { display: grid; grid-template-columns: 44px repeat(5, minmax(110px, 1fr)) repeat(2, minmax(46px, .32fr)); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); min-width: 720px; }
.cal-wd { font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--muted); padding: 6px 8px; border-bottom: 1px solid var(--line); }
.cal-tag { min-height: 96px; padding: 4px 5px 6px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cal > :nth-child(8n) { border-right: none; }
/* Kalenderwoche vorn (Wunsch des Nutzers, E160) */
.rot-ohne { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 6px; }
.ns-ohne-nachholen { margin: -4px 0 10px; }
.rot-loeschen { display: flex; margin-top: 6px; }
.cal-kw { padding: 6px 4px; font-size: calc(11px * var(--fs)); font-weight: 600; color: var(--muted); text-align: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--hover); }
.cal-tag.cal-fremd { background: #fcfcfb; }
.cal-tag.cal-fremd .cal-nr { color: var(--muted); font-weight: 400; }
.cal-tag.cal-we { background: #fbfbf9; }
.cal-tag.cal-frei { background: repeating-linear-gradient(135deg, rgba(0,0,0,.035) 0 6px, transparent 6px 12px); }
.cal-tag.over, .di-cell.over { outline: 2px dashed var(--blue); outline-offset: -2px; background: var(--blue-soft); }
.cal-kopf { display: flex; align-items: center; gap: 4px; min-height: 20px; }
.cal-nr { font-size: calc(12px * var(--fs)); font-weight: 600; }
.cal-frei-lbl { font-size: calc(11px * var(--fs)); color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; }
.cal-add, .di-add { margin-left: auto; border: none; background: none; color: var(--muted); cursor: pointer; font-size: calc(15px * var(--fs)); line-height: 1; padding: 0 4px; border-radius: 4px; opacity: 0; }
.cal-tag:hover .cal-add, .di-cell:hover .di-add, .cal-add:focus, .di-add:focus { opacity: 1; }
.cal-add:hover, .di-add:hover { background: var(--hover); color: var(--ink); }
@media (hover: none) { .cal-add, .di-add { opacity: 1; } }
.cal-chip { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; width: 100%; text-align: left; font: inherit; font-size: calc(13px * var(--fs)); line-height: 1.3; padding: 3px 6px; border-radius: 4px; border: 1px solid var(--line); background: var(--paper); color: var(--ink);
  white-space: normal; overflow: hidden; overflow-wrap: anywhere; cursor: pointer; }
button.cal-chip { cursor: grab; }
.cal-chip.st-offen { border-style: dashed; }
.cal-chip.st-uebernommen { background: var(--accent-soft); border-color: var(--accent-line); }
.cal-chip.is-wichtig { font-weight: 600; box-shadow: inset 3px 0 0 var(--red); }
.cal-chip.is-konflikt { border-color: var(--red); color: var(--red); }
.cal-chip.is-aus { color: var(--muted); }
.cal-zeit { color: var(--muted); font-variant-numeric: tabular-nums; }
.cal-bis { color: var(--muted); }
.zieht { opacity: .4; }

/* Dienstagsplan (E33) */
.di-legende { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.di-legende .di-chip { cursor: default; width: auto; }
.di-plan { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.di-row { display: grid; grid-template-columns: 150px repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.di-row > div { padding: 6px 8px; min-width: 0; }
.di-row > div + div { border-left: 1px solid var(--line); }
.di-head { position: sticky; top: 0; z-index: 3; background: var(--paper); font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--muted); border-radius: var(--radius) var(--radius) 0 0; }
.di-monat { padding: 12px 8px 4px; font-weight: 600; font-size: calc(13px * var(--fs)); border-bottom: 1px solid var(--line); background: var(--bg); }
/* vergangen: getönt statt durchscheinend, damit die Schrift lesbar bleibt (E97) */
.di-row.di-vorbei { background: var(--hover); }
.di-row.di-vorbei .di-date { color: var(--muted); }
.di-row.di-frei { background: repeating-linear-gradient(135deg, rgba(0,0,0,.03) 0 6px, transparent 6px 12px); }
.di-date { font-size: calc(13px * var(--fs)); }
.di-frei-lbl { font-size: calc(12px * var(--fs)); color: var(--muted); margin-top: 2px; }
.di-notiz { font-size: calc(11.5px * var(--fs)); color: var(--muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.di-cell { position: relative; display: flex; flex-direction: column; gap: 3px; min-height: 40px; }
.di-cell.di-doppelt { box-shadow: inset 0 0 0 2px var(--red-soft); }
.di-slot-lbl { display: none; font-size: calc(11px * var(--fs)); color: var(--muted); }
.di-warn { font-size: calc(11px * var(--fs)); color: var(--red); }
.di-add { position: absolute; right: 4px; top: 4px; }
.di-chip { display: block; width: 100%; text-align: left; font: inherit; font-size: calc(12.5px * var(--fs)); line-height: 1.35; padding: 3px 7px; border-radius: 6px; border: 1px solid transparent; background: var(--hover); color: var(--ink); overflow-wrap: anywhere; }
button.di-chip { cursor: grab; }
button.di-chip:hover { border-color: var(--line); }
.di-chip.st-offen { border: 1px dashed var(--line); }
.di-chip.is-wichtig { font-weight: 600; }
.di-team { background: var(--accent-soft); }
.di-geko { background: var(--red-soft); color: var(--red); }
.di-fako { background: var(--amber-soft); color: var(--amber); }
.di-konf { background: var(--blue-soft); color: var(--blue); }
.di-se { background: #f1eef7; color: #5b4a86; }
.di-sl { background: var(--paper); border-color: var(--ink); }
.di-mc { display: block; font-size: calc(10.5px * var(--fs)); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); }
.di-t { display: block; }
.di-z { display: inline-block; font-size: calc(11px * var(--fs)); color: var(--muted); margin-right: 6px; }

@media (max-width: 720px) {
  .di-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .di-row > .di-date { grid-column: 1 / -1; border-bottom: 1px dashed var(--line); }
  .di-row > div + div { border-left: none; }
  .di-row > .di-cell + .di-cell { border-left: 1px solid var(--line); }
  .di-head > div:first-child { display: none; }
  .di-head > div:nth-child(2) { border-left: none; }
  .di-chip { font-size: calc(12px * var(--fs)); padding: 3px 5px; }
}
@media print {
  .di-add, .cal-add, .di-legende { display: none; }
  .di-row { break-inside: avoid; }
}

/* Zeitplan der Sitzung (E36) – nur zur Planung, nicht im Protokoll */
.zeitplan { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: calc(13.5px * var(--fs)); padding: 9px 14px; margin: 0 0 14px;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.zeitplan.zu-viel { border-color: var(--red); background: var(--red-soft); }
.zeitplan .zp-note { margin-left: auto; }
.min-in { width: 54px; padding: 2px 5px; font: inherit; font-size: calc(13px * var(--fs)); text-align: right; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); }
.min-in:focus { outline: 2px solid var(--blue); outline-offset: 0; }
.t-zeit { display: inline-flex; align-items: center; gap: 5px; font-size: calc(12.5px * var(--fs)); color: var(--muted); white-space: nowrap; margin-right: 4px; }
.t-uhr { font-variant-numeric: tabular-nums; }
.field-min input { max-width: 120px; }
@media (max-width: 720px) {
  .zeitplan .zp-note { margin-left: 0; }
  .top-tools .t-zeit .t-uhr { display: none; }
}
@media print { .zeitplan, .t-zeit { display: none; } }

/* Genehmigung und Änderungswünsche (E38) */
.gen-box { border-left: 3px solid var(--accent-line); padding: 4px 0 4px 12px; margin: 2px 0 10px; font-size: calc(14px * var(--fs)); }
.gen-wuensche { margin: 6px 0 2px; padding-left: 18px; }
.gen-wuensche li { margin: 2px 0; }
.wuensche .list li.w-erledigt { color: var(--muted); }
.wuensche .list li.w-erledigt > .grow > div:first-child { text-decoration: line-through; }

/* Sitzung, ruhigeres Layout (E39): Kopf mit Symbolen, ohne Übersicht links */
.meeting-main { max-width: 880px; }
.s-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; font-size: calc(14px * var(--fs)); color: var(--ink-2); margin-top: 6px; }
.s-meta-i { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.s-meta-i .ico { color: var(--muted); }
.s-stand { font-size: calc(13px * var(--fs)); color: var(--muted); margin-top: 6px; }
.btn .ico { vertical-align: -3px; margin-right: 2px; }
.teil-head .teil-min { font-style: normal; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: calc(12.5px * var(--fs)); color: var(--muted); margin-left: 4px; }
.teil-head .b-namen { font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: calc(12.5px * var(--fs)); margin-left: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.add-top-link { display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; }
.add-link { display: inline-flex; align-items: center; gap: 5px; }
.add-link .ico { color: var(--muted); }
.t-meta { display: flex; flex-wrap: wrap; gap: 2px 12px; }
.t-meta > span { display: inline-flex; align-items: center; gap: 4px; }
.t-meta .ico { opacity: .8; }
.t-zeit .ico { color: var(--muted); }
.mv { display: inline-flex; align-items: center; justify-content: center; }
.beschluss::before { content: none; }
.beschluss > .ico { color: var(--ink-2); margin-top: 3px; flex-shrink: 0; }
details.card.fold > summary .ico, .themen-panel > summary .ico { vertical-align: -3px; margin-right: 4px; color: var(--muted); }
.panel-tools { display: flex; justify-content: flex-end; margin: 4px 0 8px; }

/* Zeitplan als Balken */
.zeitplan { gap: 12px; flex-wrap: nowrap; padding: 10px 14px; }
.zeitplan > .ico { color: var(--muted); flex-shrink: 0; }
.zeitplan .zb { flex: 1; min-width: 80px; overflow: visible; }
.zb-bg { fill: var(--hover); }
.zb-a { fill: #dfe79a; }
.zb-b { fill: var(--accent); }
.zb-c { fill: #b9c1c9; }
.zb-grenze { stroke: var(--red); stroke-width: 2; }
.zeitplan.zu-viel .zb-b { fill: #d9b44a; }
.zb-txt { white-space: nowrap; font-variant-numeric: tabular-nums; }
.zb-rest { white-space: nowrap; font-size: calc(13px * var(--fs)); }

/* Berichte als kompakte Zeilen */
.b-list { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 2px 0; }
.b-grp { font-size: calc(11.5px * var(--fs)); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); padding: 10px 14px 2px; }
.b-row { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 5px 10px 5px 14px; scroll-margin-top: 16px; }
.b-row + .b-row { border-top: 1px solid var(--line); }
.b-wer { display: flex; align-items: baseline; gap: 8px; padding-top: 5px; min-width: 0; }
.b-kz { font-size: calc(12.5px * var(--fs)); font-weight: 600; background: var(--accent-soft); border-radius: 5px; padding: 1px 6px; min-width: 42px; text-align: center; flex-shrink: 0; }
.b-ber { font-size: calc(14px * var(--fs)); color: var(--ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.b-text { min-width: 0; padding-top: 4px; }
.b-text .desc { white-space: pre-wrap; padding-top: 1px; }
.b-leer { color: var(--muted); display: inline-block; padding-top: 1px; }
.b-in { width: 100%; border: 1px solid transparent; border-radius: 6px; padding: 3px 8px; margin: -3px 0 -3px -8px; resize: none; overflow: hidden; line-height: 1.5; font: inherit; background: transparent; }
.b-in:hover { border-color: var(--line); }
.b-in:focus { outline: none; border-color: var(--ink-2); background: var(--paper); }
.b-proj { font-size: calc(12.5px * var(--fs)); color: var(--muted); display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.b-row .beschluss { margin: 4px 0; }
.b-row .more { opacity: .5; }
.b-row:hover .more, .b-row .more[open] { opacity: 1; }
.teil-fold .b-list { margin-top: 8px; }
@media (max-width: 720px) {
  .b-row { grid-template-columns: minmax(0, 1fr) auto; }
  .b-wer { grid-column: 1 / -1; padding-top: 2px; }
  .b-text { grid-column: 1; padding-top: 0; }
  .zeitplan { flex-wrap: wrap; }
  .zeitplan .zb { flex-basis: 100%; order: 3; }
  .s-meta { gap: 4px 12px; font-size: calc(13.5px * var(--fs)); }
}
@media print { .s-meta, .zeitplan { display: none; } }

/* Anwesenheit oben: ein Haken je Person (E41) */
.anw { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 12px; }
.anw-kopf { display: inline-flex; align-items: center; gap: 6px; font-size: calc(13.5px * var(--fs)); font-weight: 500; margin-right: 6px; }
.anw-kopf .ico { color: var(--muted); }
.anw-p { display: inline-flex; align-items: center; gap: 5px; font-size: calc(13px * var(--fs)); padding: 3px 9px 3px 6px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); cursor: pointer; color: var(--muted); user-select: none; }
.anw-p input { margin: 0; accent-color: #6f7a12; }
.anw-p.on { background: var(--accent-soft); border-color: var(--accent-line); color: var(--ink); }
.t .chip { font-weight: 400; margin-left: 6px; vertical-align: 1px; }

/* Themen-Seite, entschlackt (E42) */
.list.themen > li.th-row { align-items: center; padding-top: 9px; padding-bottom: 9px; }
.th-row .grow { min-width: 0; }
.th-desc { font-size: calc(13px * var(--fs)); color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.th-meta { display: flex; align-items: center; gap: 10px; font-size: calc(12.5px * var(--fs)); color: var(--muted); flex-shrink: 0; white-space: nowrap; }
.th-meta > span, .th-meta > a { display: inline-flex; align-items: center; gap: 3px; color: var(--muted); }
.dr { width: 8px; height: 8px; border-radius: 50%; background: #c9c9c4; flex-shrink: 0; }
.ns-list .th-meta { min-width: 0; overflow: hidden; }
.ns-list .th-meta > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.dr-hoch { background: var(--red); }
.dr-mittel { background: #d9a53a; }
.th-edit { opacity: .45; }
.th-row:hover .th-edit, .th-edit:focus { opacity: 1; }
.card.flush h2 .h-extra { float: right; font-size: calc(12.5px * var(--fs)); font-weight: 400; color: var(--muted); }
details.fold-list > summary { list-style: none; cursor: pointer; }
details.fold-list > summary h2 { padding: 16px 20px; margin: 0; }
details.fold-list[open] > summary h2 { padding-bottom: 4px; }
details.fold-list > summary::-webkit-details-marker { display: none; }
details.fold-list > summary h2::after { content: ""; display: inline-block; width: 12px; height: 12px; margin-left: 6px; background: var(--muted); -webkit-mask: var(--sym-auf) center / contain no-repeat; mask: var(--sym-auf) center / contain no-repeat; transition: transform .15s; }
details.fold-list[open] > summary h2::after { transform: rotate(90deg); }
@media (max-width: 720px) {
  .list.themen > li.th-row { flex-wrap: wrap; }
  .th-row .th-meta { order: 3; flex-basis: 100%; padding-left: 36px; }
  .card.flush h2 .h-extra { float: none; display: block; }
}

/* Übersicht (E43): zwei Wochen, nächste Sitzung, „Für dich zu tun“ */
.wochenleiste { padding: 12px 14px; }
.wl-grid { display: grid; grid-template-columns: repeat(10, minmax(52px, 1fr)); gap: 4px; overflow-x: auto; }
.wl-tag { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 2px 7px; border: 1px solid transparent; border-radius: 8px; background: none; cursor: pointer; font: inherit; color: var(--ink); min-height: 72px; }
.wl-tag:hover { background: var(--hover); }
.wl-tag.wl-woche { margin-left: 10px; }
.wl-tag.on { border-color: var(--ink-2); background: var(--paper); }
.wl-tag.frei { background: repeating-linear-gradient(135deg, rgba(0,0,0,.04) 0 5px, transparent 5px 10px); color: var(--muted); }
.wl-wd { font-size: calc(11.5px * var(--fs)); color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.wl-d { font-size: calc(17px * var(--fs)); font-weight: 600; line-height: 1.2; }
.wl-tag.heute .wl-d { background: var(--accent); border-radius: 12px; padding: 0 7px; }
.wl-mk { display: flex; gap: 3px; align-items: center; min-height: 16px; }
.mk { display: inline-flex; align-items: center; justify-content: center; }
.mk-s { width: 16px; height: 16px; border-radius: 4px; background: var(--ink); color: #fff; }
.mk-s .ico { stroke: #fff; }
.mk-f { color: var(--blue); }
.mk-star .ico { fill: var(--accent); stroke: #8a9410; }
.mk-w { width: 8px; height: 8px; border-radius: 50%; background: var(--red); }
.wl-mehr { font-size: calc(11px * var(--fs)); color: var(--muted); }
.wl-detail { border-top: 1px solid var(--line); margin-top: 10px; padding-top: 10px; font-size: calc(14px * var(--fs)); position: relative; }
.wl-detail ul { list-style: none; margin: 6px 0 0; padding: 0; }
.wl-detail li { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
.wl-detail li .ico { color: var(--muted); }
.wl-zeit { color: var(--muted); font-variant-numeric: tabular-nums; min-width: 38px; font-size: calc(13px * var(--fs)); }
.wl-alle { position: absolute; right: 0; top: 10px; }
.next-card .nk-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.nk-datum { font-size: calc(19px * var(--fs)); font-weight: 600; color: var(--ink); text-decoration: none; }
.nk-datum:hover { text-decoration: underline; }
.nk-rollen { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.rolle { display: inline-flex; align-items: center; gap: 5px; font-size: calc(12.5px * var(--fs)); background: var(--accent-soft); border-radius: 12px; padding: 2px 10px 2px 8px; white-space: nowrap; }
.next-card .zeitplan { margin: 0 0 10px; padding: 7px 10px; }
.nk-tops { list-style: none; margin: 0; padding: 0; }
.nk-tops li { display: flex; align-items: baseline; gap: 10px; padding: 6px 0; border-top: 1px solid var(--line); }
.nk-tops li:first-child { border-top: none; }
.nk-tops .lbl { font-size: calc(12px * var(--fs)); color: var(--muted); min-width: 44px; }
.nk-t { flex: 1; min-width: 0; }
.nk-min { font-size: calc(12.5px * var(--fs)); color: var(--muted); font-variant-numeric: tabular-nums; }
.nk-tops li.mine .nk-t { font-weight: 600; }
.du { font-size: calc(11.5px * var(--fs)); font-weight: 500; background: var(--accent-soft); border-radius: 8px; padding: 0 6px; margin-left: 4px; }
.nk-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 14px; flex-wrap: wrap; }
.zutun .list > li { align-items: center; }
.td-ic { color: var(--muted); display: inline-flex; width: 16px; justify-content: center; }
.zutun li.td-ueber .title { color: var(--red); }
@media (max-width: 720px) {
  .wl-grid { grid-template-columns: repeat(10, 54px); }
  .wl-alle { position: static; display: block; margin-top: 6px; }
  .nk-rollen { align-items: flex-start; }
}

/* Einstellungen: Regeltermin (E44) */
fieldset.regeltermin { border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px 10px; display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0; }
fieldset.regeltermin legend { font-size: calc(13px * var(--fs)); color: var(--muted); padding: 0 4px; }
fieldset.regeltermin label { display: flex; flex-direction: column; gap: 3px; font-size: calc(13px * var(--fs)); }

/* Jahresvorhaben (E45) */
.jv-card h2 .ico { vertical-align: -3px; margin-right: 4px; color: var(--muted); }
.jv-card h2 .head-link { float: right; }
.jv-vork + .jv-vork { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 8px; }
.jv-kopf { font-size: calc(14px * var(--fs)); margin-bottom: 4px; }
.jv-list { list-style: none; margin: 0; padding: 0; }
.jv-list li { display: flex; align-items: center; gap: 10px; padding: 4px 0; font-size: calc(14px * var(--fs)); }
.jv-list li.done { color: var(--muted); text-decoration: line-through; }
.jv-list li.jv-ueber .jv-dat { color: var(--red); font-weight: 600; }
.jv-dat { min-width: 84px; font-variant-numeric: tabular-nums; color: var(--ink-2); font-size: calc(13px * var(--fs)); white-space: nowrap; }
.jv-sl { display: inline-flex; align-items: center; gap: 4px; font-size: calc(12px * var(--fs)); color: var(--muted); white-space: nowrap; }
.jv-mehr { margin-top: 8px; font-size: calc(13.5px * var(--fs)); }
.jv-mehr > summary { cursor: pointer; color: var(--muted); }
.jv-edit { border: 1px solid var(--line); border-radius: 8px; padding: 6px 12px 2px; margin: 0 0 12px; }
.jv-edit legend { font-size: calc(13px * var(--fs)); color: var(--muted); padding: 0 4px; }
textarea.mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: calc(13px * var(--fs)); }
.mk-j { color: #6f7a12; }

/* Neue SL-Sitzung als Seite (E47) */
.ns-form { padding-bottom: 76px; }
.ns-grid { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 16px; align-items: start; }
.ns-kopf h2, .ns-themen h2 { display: flex; align-items: center; gap: 6px; font-size: calc(15px * var(--fs)); margin: 4px 0 10px; }
.ns-kopf h2:not(:first-child) { margin-top: 18px; }
.ns-kopf h2 .ico, .ns-themen h2 .ico { color: var(--muted); }
.ns-kopf .field label .ico { vertical-align: -2px; color: var(--muted); }
.ns-rot { margin: -2px 0 0; }
.ns-fest { list-style: none; margin: 0; padding: 0; font-size: calc(14px * var(--fs)); }
.ns-fest li { display: flex; gap: 8px; padding: 4px 0; }
.ns-fest .lbl { color: var(--muted); min-width: 44px; font-size: calc(12.5px * var(--fs)); }
.ns-fest .muted { margin-left: auto; }
.ns-sub { font-size: calc(12px * var(--fs)); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin: 14px 0 4px; }
.ns-sub .small { text-transform: none; letter-spacing: 0; font-weight: 400; }
.ns-list { list-style: none; margin: 0; padding: 0; }
.ns-list li { display: flex; align-items: center; gap: 12px; padding: 10px 10px; border: 1px solid var(--line); border-radius: 8px; margin-bottom: 6px; background: var(--paper); }
.ns-list li.vor { border-color: var(--accent-line); background: #fbfcef; }
.ns-list li input[type=checkbox] { width: 18px; height: 18px; accent-color: #6f7a12; flex-shrink: 0; }
.ns-list li label { display: flex; flex-direction: column; gap: 2px; min-width: 0; cursor: pointer; }
.ns-list .th-desc { display: block; }
.ns-list .th-meta { gap: 10px; }
.ns-list select { flex-shrink: 0; }
.ns-leiste { position: fixed; bottom: 0; left: var(--sidebar-w, 232px); right: 0; z-index: 20; display: flex; align-items: center; gap: 12px; padding: 12px 24px;
  background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -4px 16px rgba(0,0,0,.05); }
.ns-summe { display: flex; align-items: center; gap: 10px; margin-right: auto; font-size: calc(14px * var(--fs)); flex-wrap: wrap; }
.ns-summe .ico { color: var(--muted); }
.ns-bar { width: 180px; height: 8px; border-radius: 4px; background: var(--hover); overflow: hidden; display: inline-block; }
.ns-bar > span { display: block; height: 100%; background: var(--accent); }
.ns-bar.zu-viel > span { background: var(--red); }
@media (max-width: 900px) {
  .ns-grid { grid-template-columns: minmax(0, 1fr); }
  .ns-leiste { left: 0; padding: 10px 16px; }
  .ns-bar { width: 90px; }
}
@media (max-width: 560px) {
  .ns-list li { flex-wrap: wrap; }
  .ns-list li select { margin-left: 30px; }
}

/* Rückgängig (E48) und Projektseite */
.toast-undo { display: flex; align-items: center; gap: 14px; padding: 8px 8px 8px 16px; }
.toast-undo button { border: none; background: var(--accent); color: var(--ink); font: inherit; font-weight: 600; padding: 5px 12px; border-radius: 6px; cursor: pointer; }
.toast-undo button:hover { filter: brightness(.95); }
.ms-card h2 .ico { vertical-align: -3px; margin-right: 4px; color: var(--muted); }
.ms-edit { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; border: none; background: none; padding: 0; text-align: left; font: inherit; color: inherit; cursor: pointer; min-width: 0; }
.ms-edit:hover .title { text-decoration: underline; text-underline-offset: 3px; }
.ms-list .star { opacity: .35; }
.ms-list li:hover .star, .ms-list .star.on { opacity: 1; }
.ms-list > li { padding-top: 7px; padding-bottom: 7px; align-items: center; }
.ms-edit { width: 100%; gap: 0; }
.ms-edit .title { font-weight: 500; overflow-wrap: break-word; hyphens: auto; line-height: 1.35; max-width: 100%; }
.ms-edit .small { white-space: nowrap; }

/* Projekt für mich ausblenden (E49) */
.proj-row.p-aus { opacity: .6; }
.modal-extra { display: flex; gap: 8px; flex-wrap: wrap; }
.proj-row { align-items: center; }
/* Titel im Zeitplan zweizeilig statt „…“ (E182), voller Titel im Tooltip; „⋯“ mit den Aktionen am Ende der Zeile */
.g-lbl .g-titel { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; overflow-wrap: anywhere; hyphens: auto; min-width: 0; }
.p-menu { margin-left: auto; flex-shrink: 0; position: relative; z-index: 2; }
/* geöffnetes Menü über den folgenden Zeilen (deren Menüs und der Link, der die Listenzeile abdeckt) */
.p-menu:has(details[open]), .g-lbl:has(details[open]) { z-index: 40; position: relative; }
.p-menu details.more { display: block; }
.p-menu details.more > summary { color: var(--muted); }
.g-lbl .p-menu details.more > summary { width: 26px; height: 26px; }
.p-menu details.more:not([open]) > summary { opacity: .55; }
.g-lbl:hover .p-menu details.more > summary, .proj-row:hover .p-menu details.more > summary, .p-menu details.more > summary:focus-visible { opacity: 1; }
@media (hover: none) { .p-menu details.more:not([open]) > summary { opacity: .85; } }

/* Thema anmelden als Seite, Projekt-Auswahl mit Suche (E50) */
.tf-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.tf-h { display: flex; align-items: center; gap: 6px; font-size: calc(15px * var(--fs)); margin: 4px 0 10px; }
.tf-h:not(:first-child) { margin-top: 20px; }
.tf-h .ico { color: var(--muted); }
.tf-karten { display: flex; flex-wrap: wrap; gap: 8px; }
.tf-karte { position: relative; cursor: pointer; }
.tf-karte input { position: absolute; opacity: 0; pointer-events: none; }
.tf-karte span { display: block; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: calc(14px * var(--fs)); background: var(--paper); }
.tf-karte input:checked + span { border-color: var(--accent-line); background: var(--accent-soft); font-weight: 500; }
.tf-karte input:focus-visible + span { outline: 2px solid var(--blue); }
.tf-spacer { flex: 1; }
.pw { position: relative; }
.pw-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.pw-chips:empty { display: none; }
.pw-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 4px 3px 10px; border-radius: 14px; background: var(--accent-soft); border: 1px solid var(--accent-line); font-size: calc(13.5px * var(--fs)); }
.pw-chip-neu { background: var(--paper); border-style: dashed; }
.pw-weg { border: none; background: none; cursor: pointer; font-size: calc(16px * var(--fs)); line-height: 1; color: var(--muted); padding: 0 4px; border-radius: 50%; }
.pw-weg:hover { color: var(--ink); background: var(--hover); }
.pw-suche { width: 100%; }
.pw-treffer { position: absolute; left: 0; right: 0; top: 100%; z-index: 40; list-style: none; margin: 4px 0 0; padding: 4px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.10); max-height: 300px; overflow-y: auto; }
.pw-treffer button { display: flex; align-items: center; gap: 6px; width: 100%; text-align: left; border: none; background: none; padding: 7px 10px; border-radius: 6px; font: inherit; font-size: calc(14px * var(--fs)); cursor: pointer; color: var(--ink); }
.pw-treffer button:hover { background: var(--hover); }
.pw-treffer button .ico { color: var(--muted); }
.pw-neu-li { border-top: 1px solid var(--line); margin-top: 4px; padding: 6px 4px 2px; }
.pw-neu-kopf { display: flex; align-items: center; gap: 6px; padding: 0 6px 6px; font-size: calc(13px * var(--fs)); color: var(--muted); }
.pw-neu-arten { display: flex; flex-wrap: wrap; gap: 6px; }
.pw-treffer .pw-neu-arten button { width: auto; border: 1px solid var(--line); font-weight: 500; padding: 5px 10px; }

/* Neue SL-Sitzung: freie Punkte oben, Vorschläge darunter (E51) */
.ns-grid { grid-template-columns: minmax(0, 1fr) minmax(250px, 290px); }
.ns-haupt { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ns-frei h2 { display: flex; align-items: center; gap: 6px; font-size: calc(15px * var(--fs)); margin: 4px 0 10px; }
.ns-frei h2 .ico { color: var(--muted); }
.ns-zeile { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; gap: 8px; align-items: center; margin-bottom: 6px; }
.ns-zeile input[name=frei_titel] { font-size: calc(15px * var(--fs)); }
.ns-min { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: calc(12.5px * var(--fs)); }
.ns-th { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ns-titel { font: inherit; font-weight: 500; border: 1px solid transparent; border-radius: 6px; padding: 2px 6px; margin-left: -7px; background: transparent; width: 100%; }
.ns-titel:hover { border-color: var(--line); background: var(--paper); }
.ns-titel:focus { outline: none; border-color: var(--ink-2); background: var(--paper); }
.ns-besch { width: 100%; font: inherit; font-size: calc(13.5px * var(--fs)); border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; }
.ns-list .th-meta .link-btn { display: inline-flex; align-items: center; gap: 3px; }
@media (max-width: 900px) { .ns-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) {
  .ns-zeile { grid-template-columns: minmax(0, 1fr) auto; }
  .ns-zeile input[name=frei_titel] { grid-column: 1 / -1; }
}
.ns-list li:not(.bearbeiten) .ns-edit { display: none; }
.ns-list li.bearbeiten .ns-static { display: none; }
.ns-list li.bearbeiten { align-items: flex-start; }
.ns-edit { display: flex; flex-direction: column; gap: 6px; }
.ns-titel { border-color: var(--line); background: var(--paper); margin-left: 0; }
.ns-stift { flex-shrink: 0; color: var(--muted); }
.ns-stift:hover, .ns-stift.on { color: var(--ink); background: var(--hover); }
.t-stift { color: var(--muted); }
.t-stift:hover { color: var(--ink); }
.ns-zeile select, .ns-list li > select { width: auto; min-width: 0; }
.ns-zeile input[name=frei_titel] { min-width: 0; width: 100%; }

/* Freie Punkte als Karten (E52) */
.ns-zeile { display: block; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; background: var(--paper); }
.ns-z1 { display: flex; gap: 8px; align-items: center; }
.ns-z-titel { flex: 1; min-width: 0; font-size: calc(15px * var(--fs)); font-weight: 500; }
.ns-z2 { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin-top: 6px; }
.ns-z2 select { width: auto; }
.ns-z-links { display: inline-flex; flex-wrap: wrap; gap: 4px 12px; margin-left: auto; }
.ns-z-links .link-btn { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); cursor: pointer; }
.ns-z-links .link-btn:hover, .ns-z-links .link-btn.on { color: var(--ink); }
.ns-f { width: 100%; margin-top: 8px; font: inherit; font-size: calc(14px * var(--fs)); border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; }
@media (max-width: 560px) { .ns-z-links { margin-left: 0; } }

/* Verlauf: Rückgängig / Wiederholen in der Kopfleiste (E55) */
.vl-btn { color: var(--ink); }
.vl-btn:disabled { color: var(--muted); opacity: .4; cursor: default; background: none; }

/* Kalender zum Auswählen eines Datums (E56) */
/* Selektor so stark wie .field input:not(…), sonst setzt dessen background das Symbol zurück */
input[type=date], .inline-add input[type=date], .field input[type=date]:not([type=checkbox]):not([type=radio]):not([type=file]) {
  cursor: pointer; padding-right: 32px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2376767c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v15H4zM4 9h16M8 3v4M16 3v4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
}
input[type=date]::-webkit-calendar-picker-indicator { display: none; }
.dp { position: fixed; z-index: 90; width: 304px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.14); padding: 10px; font-size: calc(13.5px * var(--fs)); }
.dp.dp-unten { left: 8px; right: 8px; bottom: 8px; width: auto; }
.dp-kopf { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.dp-kopf strong { font-size: calc(14.5px * var(--fs)); font-weight: 600; }
.dp-kopf .icon-btn { font-size: calc(20px * var(--fs)); color: var(--ink); }
.dp-gitter { display: grid; grid-template-columns: 26px repeat(7, 1fr); gap: 2px; text-align: center; }
.dp-wt { font-size: calc(11.5px * var(--fs)); color: var(--muted); padding: 2px 0 4px; }
.dp-kw { font-size: calc(10.5px * var(--fs)); color: var(--muted); align-self: center; }
.dp-tag { position: relative; height: 34px; border: none; border-radius: 6px; background: none; font: inherit; color: var(--ink); cursor: pointer; padding: 0; }
.dp-tag:hover { background: var(--hover); }
.dp-tag.we { color: var(--muted); }
.dp-tag.aussen { color: var(--muted); opacity: .5; }
.dp-tag.ferien, .dp-l { background: repeating-linear-gradient(135deg, rgba(0,0,0,.07) 0 3px, transparent 3px 6px); }
.dp-tag.heute { box-shadow: inset 0 0 0 1.5px var(--ink-2); font-weight: 600; }
.dp-tag.gewaehlt { background: var(--ink); color: #fff; font-weight: 600; }
.dp-tag:disabled { opacity: .3; cursor: default; background: none; }
.dp-p { position: absolute; left: 50%; bottom: 3px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--line-2); }
.dp-p.stark { background: var(--accent); }
.dp-fuss { display: flex; align-items: center; gap: 12px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.dp-legende { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; font-size: calc(11.5px * var(--fs)); color: var(--muted); }
.dp-legende .dp-l { display: inline-block; width: 14px; height: 10px; border-radius: 2px; }
.dp-legende .dp-p { position: static; margin: 0 0 0 6px; }
@media print { .dp { display: none; } }

/* Sicherung (E57) */
.sich-knoepfe { display: flex; flex-wrap: wrap; gap: 8px; }
.sich-knoepfe .btn { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.sich-liste { margin: 0 0 8px; padding-left: 20px; }
.sich-liste li { margin: 3px 0; }

/* Bewegliche Ferientage (E58) */
.bf-zeile { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: calc(14px * var(--fs)); margin: 0 0 12px; }
.bf-zeile .ico { color: var(--muted); }

/* Versionsnummer und Versionshistorie (E59) */
.vers-btn { font-size: calc(12.5px * var(--fs)); color: var(--muted); white-space: nowrap; }
.vers-btn:hover { color: var(--ink); }
.vers-liste { list-style: none; margin: 0; padding: 0; }
.vers-liste > li { padding: 10px 0; border-top: 1px solid var(--line); }
.vers-liste > li:first-child { border-top: none; padding-top: 0; }
.vers-kopf { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; }
.vers-liste > li.aktuell .vers-kopf strong::after { content: "aktuell"; margin-left: 8px; font-size: calc(11.5px * var(--fs)); font-weight: 500; padding: 1px 7px; border-radius: 10px; background: var(--accent-soft); border: 1px solid var(--accent-line); }
.vers-liste ul { margin: 0; padding-left: 18px; font-size: calc(14px * var(--fs)); }
.vers-liste ul li { margin: 2px 0; }
.vers-kurz { display: none; }
.datebox.laeuft .d { font-size: calc(12.5px * var(--fs)); padding-top: 3px; }

/* Aufgaben (E66) */
.t-erledigt { text-decoration: line-through; color: var(--muted); }
.t-besch { color: var(--ink-2); margin: 1px 0 2px; white-space: pre-line; }
.flt-sel { width: auto; padding: 5px 8px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--paper); font-size: calc(13.5px * var(--fs)); max-width: 220px; }
.zutun-mehr > summary { cursor: pointer; padding: 8px 16px; font-size: calc(13.5px * var(--fs)); color: var(--muted); }
.zutun-mehr > summary:hover { color: var(--ink); }

/* Jahresplanung in den Kalender übernehmen (E68) */
.jp-uebernahme { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 14px; margin-bottom: 14px; border-left: 3px solid var(--accent); }
.jp-uebernahme span { flex: 1; min-width: 180px; }

/* Termine: Kalender und Überschneidungen (E69) */
.tag.t-konflikt { background: var(--red-soft); color: var(--red); border-color: transparent; }
.tag.t-frist { background: var(--red-soft); color: var(--red); }
.ns-hinweis { margin: 0 0 10px; color: var(--muted); }
.ns-hinweis svg { vertical-align: -2px; margin-right: 4px; }
.cal-chip.c-sitzung { border-color: var(--ink); font-weight: 600; text-decoration: none; }
.cal-chip.c-meilenstein, .cal-chip.c-frist { border-style: dotted; color: var(--ink-2); text-decoration: none; }
a.cal-chip { display: -webkit-box; }
.cal-tag.cal-heute .cal-nr { background: var(--ink); color: #fff; border-radius: 9px; padding: 0 6px; }

/* Jahresplanung: Monate einklappbar (P3.4) */
.jp-monat > summary { list-style: none; cursor: pointer; }
.jp-monat > summary::-webkit-details-marker { display: none; }
.jp-monat > summary h2::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 2px; background: var(--muted); -webkit-mask: var(--sym-auf) center / contain no-repeat; mask: var(--sym-auf) center / contain no-repeat; transition: transform .15s; }
.jp-monat[open] > summary h2::before { transform: rotate(90deg); }
.jp-monat > summary h2 { padding: 14px 20px; margin: 0; }
.jp-monat[open] > summary h2 { padding-bottom: 4px; }

/* Projektzeile: Titel-Link deckt die Zeile ab, Knöpfe liegen darüber (P4.5) */
.proj-row { position: relative; }
.proj-row .proj-link { color: inherit; text-decoration: none; }
.proj-row .proj-link::after { content: ""; position: absolute; inset: 0; }
.proj-row .p-menu, .proj-row .muted a { position: relative; z-index: 1; }
@media (max-width: 560px) {
  .proj-row { flex-wrap: wrap; gap: 6px 12px; padding: 12px 14px; }
  .proj-row .grow { flex: 1 1 calc(100% - 50px); }
  .proj-row .right { flex-basis: 100%; text-align: left; padding-left: 42px; }
}

/* Druck: nur Inhalt, keine Bedienelemente; Kalender und Zeitpläne passen auf A4 (P4.5) */
@media print {
  .filters, .page-tabs, .tabs, .page-head .actions, details.more, .icon-btn, .star, .row-actions, .add-links, .add-link,
  .cal-nav button, .jp-uebernahme, .bf-zeile button, .search, .seg, .flt-sel, .aus-btn { display: none !important; }
  .cal, .gantt-wrap .gantt, .gantt { min-width: 0 !important; }
  .cal-wrap, .gantt-wrap { overflow: visible !important; }
  .card { break-inside: avoid-page; box-shadow: none; }
  a { color: inherit; text-decoration: none; }
}

/* Hilfe hinter „?“ (E75) */
.hilfe-btn { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; padding: 0; margin-left: 4px;
  border: 1px solid var(--line-2); border-radius: 50%; background: var(--paper); color: var(--muted); font: 600 11.5px/1 var(--font);
  cursor: pointer; vertical-align: middle; flex-shrink: 0; }
.hilfe-btn:hover, .hilfe-btn[aria-expanded="true"] { color: var(--ink); border-color: var(--ink-2); }
.page-title .hilfe-btn { width: 20px; height: 20px; font-size: calc(12.5px * var(--fs)); margin-left: 8px; vertical-align: 4px; }
.hilfe-pop { position: fixed; z-index: 95; width: 340px; max-width: calc(100vw - 16px); background: var(--paper); border: 1px solid var(--line);
  border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.14); padding: 10px 14px 12px; font-size: calc(13.5px * var(--fs)); line-height: 1.5; color: var(--ink); }
.hilfe-pop.hilfe-unten { left: 8px; right: 8px; bottom: 8px; width: auto; }
.hilfe-kopf { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.hilfe-pop { max-height: calc(100vh - 16px); overflow-y: auto; }
.hilfe-pop.hilfe-lang { width: 460px; }
.hilfe-text p { margin: 0 0 8px; }
.hilfe-text ul { margin: 0 0 8px; padding-left: 18px; }
.hilfe-text li { margin-bottom: 4px; }
.hilfe-text > :last-child { margin-bottom: 0; }
/* Hilfe und häufige Fragen (E130) */
.faq-kopf .search { max-width: 460px; }
.faq-kopf p { margin: 8px 0 0; }
.faq-gruppe h2 { margin-bottom: 4px; }
details.faq { border-top: 1px solid var(--line); }
details.faq:first-of-type { border-top: 0; }
details.faq > summary { cursor: pointer; padding: 10px 0; font-weight: 600; list-style: none; display: flex; align-items: center; gap: 6px; }
details.faq > summary::-webkit-details-marker { display: none; }
details.faq > summary::before { content: ""; flex: none; width: 12px; height: 12px; background: var(--muted); -webkit-mask: var(--sym-auf) center / contain no-repeat; mask: var(--sym-auf) center / contain no-repeat; transition: transform .15s; }
details.faq[open] > summary::before { transform: rotate(90deg); }
details.faq > summary:hover { color: var(--blue); }
details.faq .hilfe-text { padding: 0 0 12px 18px; max-width: 72ch; }
.faq-h { font-size: calc(14.5px * var(--fs)); margin: 14px 0 4px; }
.faq-h:first-child { margin-top: 0; }
/* Meine Einstellungen (E136) */
.userbox-link { min-width: 0; color: inherit; text-decoration: none; border-radius: 6px; }
.userbox-link:hover .who { text-decoration: underline; }
.einst-knoepfe { display: flex; flex-wrap: wrap; gap: 8px; }
.einst-knoepfe .btn { display: inline-flex; align-items: center; gap: 6px; }

/* Thema für eine bestimmte Sitzung (E135) */
.th-fuer { color: var(--ink); font-weight: 500; }

/* Arten der Arbeitsbereiche (E134) */
.pj-arten .tf-karte { flex: 1 1 180px; }
.pj-arten .tf-karte span { height: 100%; }
.pj-arten strong { display: flex; align-items: center; gap: 6px; }
.pj-arten small { display: block; margin-top: 2px; font-size: calc(12.5px * var(--fs)); }
.pj-art-feld .pj-zeit { display: none; }
/* Alltagstest 22.10.2026: je Art nur die passenden Felder */
.pj-art-ablauf .pj-ende, .pj-art-ablauf .pj-rhythmus, .pj-art-ablauf .pj-ms.pj-leer, .pj-art-projekt .pj-jv.pj-leer { display: none; }
.pt-details > summary { cursor: pointer; list-style: none; font-size: calc(13px * var(--fs)); font-weight: 600; padding: 4px 0; }
.pt-details > summary::-webkit-details-marker { display: none; }
.pt-details[open] .pt-aendern { display: none; }
.pt-details .pt-aendern { margin-left: 6px; font-weight: 400; }
.jv-treffer { margin: -4px 0 8px; }
.jv-genau > summary { cursor: pointer; font-size: calc(13px * var(--fs)); color: var(--muted); margin: 0 0 8px; }
.jv-zweck { margin: -4px 0 10px; }
.jv-quelle { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin: 0 0 8px; }
.b-links { display: inline-flex; gap: 2px; align-self: flex-start; }
.b-links label.icon-btn { cursor: pointer; }
.pdf-leiste { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 16px; border-bottom: 1px solid var(--line); background: var(--accent-soft); }
.sitz-row .pdf-wahl { width: 16px; height: 16px; margin: 0 4px 0 0; flex: none; }
.pdf-alle { font-size: calc(13px * var(--fs)); font-weight: 400; }
.wo-check { display: inline-flex; gap: 4px; align-items: center; margin-top: 4px; font-size: calc(12.5px * var(--fs)); color: var(--muted); font-weight: 400; }
.ms-dat { display: flex; flex-direction: column; }
.dp-kw-btn { border: none; background: none; cursor: pointer; color: var(--blue); text-decoration: underline; font: inherit; padding: 0; }
.dp-kw-btn.gewaehlt { background: var(--accent-soft); border-radius: 4px; text-decoration: none; color: var(--ink); }
.list li.wo-zeile { display: grid; grid-template-columns: 200px minmax(0, 1fr) auto; gap: 4px 12px; align-items: start; }
.wo-kopf { display: flex; flex-direction: column; }
.wo-ferien { background: var(--hover); }
.wo-ferien .wo-kopf strong { font-weight: 500; color: var(--muted); }
.wo-jetzt { box-shadow: inset 3px 0 0 var(--accent); }
.wo-eintraege { display: flex; flex-wrap: wrap; gap: 4px 6px; min-width: 0; }
.wo-e { font-size: calc(12.5px * var(--fs)); background: var(--paper); border: 1px solid var(--line); border-radius: 6px; padding: 1px 6px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wo-e.wo-sitzung { border-color: var(--accent); }
.wo-e.wo-frist, .wo-e.wo-meilenstein { border-style: dashed; }
.sph-zahlen { margin: 0 0 10px; padding-left: 18px; }
.sph-d summary { cursor: pointer; margin: 6px 0; }
.sph-liste { margin: 0 0 6px; padding-left: 18px; max-height: 220px; overflow: auto; font-size: calc(13px * var(--fs)); }
.jpj-woche { display: grid; grid-template-columns: 64px repeat(5, minmax(0, 1fr)) minmax(0, .45fr); border-bottom: 1px solid var(--line); }
.jpj-kopfzeile { position: sticky; top: 0; z-index: 2; background: var(--paper); border-radius: 10px 10px 0 0; }
.jpj-kopfzeile > div { font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--muted); padding: 6px 8px; }
.jpj-monat { padding: 10px 10px 4px; font-weight: 600; font-size: calc(13px * var(--fs)); border-bottom: 1px solid var(--line); background: var(--hover); }
.jpj-kw { padding: 4px 8px; font-size: calc(11px * var(--fs)); color: var(--muted); display: flex; flex-direction: column; border-right: 1px solid var(--line); }
.jpj-kw strong { color: var(--ink-2); font-weight: 600; }
.jpj-jetzt { box-shadow: inset 3px 0 0 var(--accent); }
.jpj-tag { min-height: 34px; padding: 3px 4px 4px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.jpj-tag:last-child { border-right: none; }
.jpj-we { background: var(--hover); }
.jpj-nr { font-size: calc(11px * var(--fs)); color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jpj-frei { font-style: italic; }
.jpj-chip { flex: none; }
.jpj-tag.over { outline: 2px dashed var(--blue); outline-offset: -2px; background: var(--blue-soft); }
.jpj-ferienwoche { min-height: 0; background: repeating-linear-gradient(135deg, rgba(0,0,0,.035) 0 6px, transparent 6px 12px); }
.jpj-ferien { grid-column: 2 / -1; padding: 4px 8px; font-size: calc(12px * var(--fs)); color: var(--muted); font-style: italic; }
.jpj-hinweis { display: none; }
@media (max-width: 900px) { .jpj { display: none; } .jpj-hinweis { display: block; padding: 14px 16px; } }
/* Organigramm als Plakat wie das PDF (E162, E164): feste Breite, nur für den PC; bleibt auch im dunklen Schema hell wie ein Blatt */
.og-nur-pc { display: none; }
.og-rahmen { overflow-x: auto; padding-bottom: 6px; }
.og-plakat { position: relative; min-width: 1060px; background: #fff; color: #1d1d1f; border: 1px solid var(--line); border-radius: 12px; padding: 18px 20px 20px; }
.og-pfeile { position: absolute; left: 0; top: 0; pointer-events: none; overflow: visible; }
.og-pfeile line { stroke: #b4b4ba; stroke-width: 1.2; }
.og-pfeile marker path { fill: #b4b4ba; }
.og-titelbalken { position: relative; background: #1d1d1f; color: #fff; border-radius: 10px; text-align: center; font-weight: 600; font-size: 16px; letter-spacing: .01em; padding: 9px; margin-bottom: 30px; }
.og-stand { text-align: right; font-size: 11px; color: #6e6e74; margin-top: 12px; }
.og-raster { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); column-gap: 18px; row-gap: 30px; align-items: start;
  grid-template-areas: "ostr zweig erwsl sl pr personal rechts" "ostr zweig af1 af2 af3 personal rechts" "ostr sonder sonder sonder sonder personal rechts"; }
.og-p-ostr { grid-area: ostr; } .og-p-zweig { grid-area: zweig; } .og-p-erwsl { grid-area: erwsl; } .og-p-sl { grid-area: sl; } .og-p-pr { grid-area: pr; }
.og-p-af1 { grid-area: af1; } .og-p-af2 { grid-area: af2; } .og-p-af3 { grid-area: af3; } .og-p-sonder { grid-area: sonder; }
.og-p-personal { grid-area: personal; } .og-p-rechts { grid-area: rechts; }
.og-platz { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.og-p-erwsl { gap: 26px; }
.og-gruppe { display: flex; flex-direction: column; gap: 5px; }
.og-kaestchen { display: flex; flex-direction: column; gap: 5px; }
.og-kopfpille, .og-kopf-e { position: relative; background: var(--og-kopf); border-radius: 8px; padding: 6px 8px; text-align: center; font-size: 12px; font-weight: 600; line-height: 1.25; }
.og-e { position: relative; background: var(--og); border: 1px solid var(--og-rand); border-radius: 7px; padding: 4px 6px; text-align: center; font-size: 11.5px; line-height: 1.3; }
.og-kopf-e { font-size: 11.5px; } .og-kopf-e .og-funktion { color: #1d1d1f; font-weight: 600; } .og-kopf-e .og-person { font-weight: 400; }
.og-st-fach .og-kaestchen .og-e { background: #fff; border-color: #e3e3e6; }
.og-block { position: relative; background: var(--og); border: 1px solid var(--og-rand); border-top: 4px solid var(--og-kopf); border-radius: 8px; padding: 8px 8px 10px; text-align: center; font-size: 11.5px; line-height: 1.35; }
.og-btitel { margin-bottom: 6px; font-weight: 600; font-size: 12px; }
.og-btitel, .og-kopfpille, .og-e { overflow-wrap: break-word; hyphens: auto; }
.og-babsatz { background: none; border: none; padding: 0; margin-top: 8px; }
.og-babsatz:first-of-type { margin-top: 0; }
.og-funktion { color: #5c5c62; font-size: 11px; overflow-wrap: break-word; hyphens: auto; }
.og-person { display: block; margin: 0 auto; font: inherit; color: #111; background: none; border: none; padding: 0 3px; border-radius: 3px; cursor: pointer; overflow-wrap: break-word; }
button.og-person:hover { background: rgba(0,0,0,.08); }
.og-markiert .og-person:not(.og-an) { color: #666; }
.og-person.og-an { background: var(--blue); color: #fff; }
.og-pzeile { display: flex; align-items: center; justify-content: center; gap: 1px; }
.og-bearb .og-person { cursor: grab; outline: 1px dashed rgba(0,0,0,.3); margin: 1px 0; width: fit-content; }
.og-bearb .og-person:hover { background: rgba(0,0,0,.06); }
.og-pweg { border: none; background: none; color: #6e6e74; width: 18px; height: 18px; padding: 0; border-radius: 4px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.og-pweg:hover { background: var(--red-soft); color: var(--red); }
.og-bearb .og-e, .og-bearb .og-kopfpille, .og-bearb .og-btitel { padding-right: 22px; }
.og-edit { position: absolute; top: 1px; right: 1px; width: 22px; height: 22px; }
.og-block > .og-edit { top: 2px; right: 2px; }
[data-og-ziel].over { outline: 2px dashed var(--blue); outline-offset: 1px; background: var(--blue-soft); }
.og-neu { font-size: 12px; margin: 2px 0; }
.og-p-sonder .og-kopfpille { width: calc((100% - 54px) / 4); }
.og-p-sonder .og-kaestchen { display: block; column-count: 4; column-gap: 10px; margin-top: 18px; }
.og-p-sonder .og-kaestchen .og-e { break-inside: avoid; margin-bottom: 5px; }
.og-weg { margin-top: 6px; color: var(--red); }
.og-f-gruen { --og: #f1f9ec; --og-kopf: #bfe6aa; --og-rand: #dcefd0; }
.og-f-tuerkis { --og: #ecf9fb; --og-kopf: #a5e4ec; --og-rand: #cdeef3; }
.og-f-gelb { --og: #fffae3; --og-kopf: #fbe27c; --og-rand: #f6ebb8; }
.og-f-weiss { --og: #ffffff; --og-kopf: #e9e9ec; --og-rand: #e3e3e6; }
.og-f-rosa { --og: #fdf1fb; --og-kopf: #efbfe6; --og-rand: #f5dcef; }
.og-f-blaugrau { --og: #f0f1fa; --og-kopf: #d9dbe6; --og-rand: #dcdff0; }
.og-f-oliv { --og: #f8f8e4; --og-kopf: #dcdd86; --og-rand: #ebebc3; }
.og-f-beige { --og: #fdfbf1; --og-kopf: #ece2b8; --og-rand: #f0ead0; }
.og-f-rot { --og: #fdf1f1; --og-kopf: #f4b3b3; --og-rand: #f6d6d6; }
.jp-fortschritt { height: 6px; background: var(--hover); border-radius: 3px; margin: -8px 0 14px; overflow: hidden; }
.jp-fortschritt i { display: block; height: 100%; background: var(--accent); }
.jp-serie > summary { display: flex; gap: 10px; align-items: center; padding: 10px 16px; cursor: pointer; border-top: 1px solid var(--line); }
.jp-serie > summary .grow { flex: 1; }
.jp-serien h2 { padding: 12px 16px 6px; margin: 0; }
.doc-hinweis { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin: 0 0 10px; padding: 8px 12px; border-radius: 8px; background: var(--accent-soft); font-size: calc(14px * var(--fs)); }
.tf-wann .tf-ab { display: none; margin-top: 6px; }
.tf-wann.tf-wann-ab .tf-ab { display: block; }
.tf-mehr > summary { cursor: pointer; font-size: calc(13px * var(--fs)); color: var(--muted); margin: 4px 0 8px; }
.jv-datum { white-space: nowrap; }
.jv-tage-l { display: inline-flex; gap: 4px; align-items: center; }
.art-gruppe { display: flex; align-items: center; gap: 6px; }
.pw-chip.pw-vorschlag { border-style: dashed; }
.pw-vorschlag .pw-marke, .ns-vorschlag .pw-marke { font-size: calc(11.5px * var(--fs)); color: var(--muted); }
.ns-vorschlag { display: inline-flex; align-items: center; gap: 4px; border: 1px dashed var(--line-2); border-radius: 12px; padding: 0 2px 0 8px; }
/* Folgesitzung (E133) */
.s-folge, .nk-folge { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: calc(13px * var(--fs)); margin-top: 6px; }
.nk-folge { margin: 10px 0 0; }
.s-folge .ico, .nk-folge .ico { flex: none; }
/* Mehrere oder alle verantwortlich (E132) */
.vw-wahl { display: contents; }
.vw-mehr { display: flex; flex-wrap: wrap; gap: 4px 6px; flex-basis: 100%; width: 100%; margin-top: 6px; }
.vw-mehr[hidden] { display: none; }
/* Rückmeldungen (E131) */
.rm-knopf { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; margin-bottom: 8px; }
.rm-arten { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.rm-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.rm-liste li { align-items: flex-start; }
.rm-eigene h2 .head-link { display: inline-flex; align-items: center; gap: 5px; }
.chip.rm-neu { background: var(--blue); color: #fff; }

/* Projekt bearbeiten: Jahresablauf als Zeilen (E76) */
.jv-anlass { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px 6px; margin: 0 0 12px; }
/* Schrittzeile (E182): oben Schritt, zuständig, SL-Art; darunter „4 Wochen vor [Termin]“ und das Datum beim nächsten Mal */
.jv-zeile { display: grid; grid-template-columns: 172px 96px minmax(0, 1fr) 240px 132px 32px; grid-template-areas: "s s s w l x" "t r a a d ." "g g g g g g"; gap: 4px 6px; align-items: center;
  margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px dashed var(--line); }
.jv-zeile .jv-tage-l { grid-area: t; } .jv-zeile .jv-richt { grid-area: r; } .jv-zeile .jv-bezug-wahl { grid-area: a; } .jv-zeile .jv-schritt { grid-area: s; } .jv-zeile .jv-sl { grid-area: l; }
.jv-zeile .jv-wer { grid-area: w; width: auto; max-width: 100%; } .jv-zeile .jv-datum { grid-area: d; padding-left: 2px; } .jv-zeile .icon-btn { grid-area: x; }
.jv-zeile .jv-tage-l select { width: 106px; }
.jv-zeile .jv-datum { white-space: nowrap; }
/* zweite Bedingung eines Schritts (E183): „spätestens 2 Wochen vor [Termin]“, sonst nur ein kleiner Link */
.jv-zeile .jv-grenze-zeile { grid-area: g; }
.jv-grenze { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 6px 8px; border-radius: 7px; background: var(--hover); }
.jv-zeile .jv-grenze select { width: auto; }
.jv-zeile .jv-grenze .jv-tage { width: 62px; }
.jv-zeile .jv-grenze .jv-gbezug { flex: 1 1 160px; min-width: 0; }
.jv-grenze-neu { font-size: calc(12.5px * var(--fs)); }
@media (max-width: 900px) {
  .jv-zeile { grid-template-columns: 178px 100px minmax(0, 1fr) 32px; grid-template-areas: "s s s x" "t r a a" "w w l l" "d d d d" "g g g g"; }
  .jv-zeile .jv-wer, .jv-zeile .jv-sl { justify-self: start; width: auto; }
}
.jv-h { font-size: calc(14px * var(--fs)); font-weight: 600; margin: 16px 0 8px; }
.jv-h:first-of-type { margin-top: 4px; }
.jv-quelle .jv-weg { margin-left: auto; }
.jv-zeile input:not([type=checkbox]), .jv-zeile select { width: 100%; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; background-color: var(--paper); font: inherit; font-size: calc(14px * var(--fs)); }
.jv-zeile .jv-sl { font-size: calc(13px * var(--fs)); white-space: nowrap; }
@media (max-width: 560px) {
  /* zwei Reihen: Tage · vorher/danach · entfernen, darunter Schritt · SL */
  .jv-zeile { grid-template-columns: 104px auto minmax(0, 1fr) auto; grid-template-areas: "t r . x" "s s s l"; padding-bottom: 6px; border-bottom: 1px dashed var(--line); }
  .jv-zeile .jv-tage-l { grid-area: t; }
  .jv-zeile select { grid-area: r; width: auto; }
  .jv-zeile .jv-schritt { grid-area: s; }
  .jv-zeile .jv-sl { grid-area: l; }
  .jv-zeile .icon-btn { grid-area: x; }
}
.jv-tage-l { display: flex; align-items: center; gap: 4px; font-size: calc(13px * var(--fs)); color: var(--muted); }
.jv-tage-l .jv-tage { width: 62px; color: var(--ink); }
/* Projekt bearbeiten: Karten untereinander, damit der Jahresablauf Platz hat (E76) */
.pj-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 900px; }
.pj-grid .field-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
@media (max-width: 560px) { .pj-grid .field-row { grid-template-columns: minmax(0, 1fr); gap: 0; } }

/* Meilensteine als Zeilen auf der Bearbeiten-Seite (E77) */
.ms-zeile { display: grid; grid-template-columns: minmax(0, 1fr) 160px auto auto auto; gap: 6px; align-items: center; margin-bottom: 6px; }
.ms-zeile select { padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; background-color: var(--paper); font: inherit; font-size: calc(14px * var(--fs)); }
.ms-zeile input:not([type=checkbox]) { width: 100%; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; background-color: var(--paper); font: inherit; font-size: calc(14px * var(--fs)); }
.ms-zeile .ms-erl { font-size: calc(13px * var(--fs)); white-space: nowrap; }
@media (max-width: 560px) {
  .ms-zeile { grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "t t x" "d e ."; }
  .ms-zeile .ms-titel { grid-area: t; }
  .ms-zeile input[type=date] { grid-area: d; }
  .ms-zeile .ms-erl { grid-area: e; }
  .ms-zeile .icon-btn { grid-area: x; }
}
.ms-zeile input[type=date] { padding-right: 32px; }

/* Übersicht anpassen (E78) */
.sa-liste { list-style: none; margin: 0 0 12px; padding: 0; }
.sa-liste li { display: flex; align-items: center; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--line); }
.sa-liste li .check { flex: 1; margin: 0; }
.sa-pfeile { display: inline-flex; }
.sa-liste li:first-child [data-action=saHoch], .sa-liste li:last-child [data-action=saRunter] { visibility: hidden; }

/* Funktionen je Gremium ausgeschaltet (E79): reine Anzeigen ausblenden */
.ohne-zeitplan .zeitplan, .ohne-zeitplan .t-zeit, .ohne-zeitplan .ns-min, .ohne-zeitplan .th-meta .ns-static, .ohne-zeitplan .ns-summe,
.ohne-zeitplan .tf-minuten, .ohne-zeitplan .hilfe-btn[data-k="zeitplan"] { display: none !important; }

/* Kurznotizen (E82) */
.notizen h2 .muted { font-weight: 400; margin-left: 4px; }
.notiz-neu { display: flex; gap: 6px; margin: 0 0 6px; }
.notiz-neu input { flex: 1; min-width: 0; padding: 7px 10px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--paper); font: inherit; font-size: calc(14px * var(--fs)); }
.notizen .n-text { white-space: pre-wrap; overflow-wrap: anywhere; }

/* ===== Handy und schmale Fenster – bleibt am Ende der Datei, damit keine spätere Regel sie
   überschreibt (so geschehen bei .ns-grid; gefunden mit der Layoutprüfung am 19.10.2026) ===== */
@media (max-width: 900px) {
  .ns-grid, .tf-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  /* Zeilen mit festen Teilen (Status, Knöpfe, Auswahl): diese rutschen in eine zweite Zeile,
     statt dem Titel den Platz zu nehmen */
  .sitz-row { flex-wrap: wrap; }
  .sitz-row > .grow { flex: 1 1 170px; }
  .sitz-row > .status { margin-left: 106px; }
  .ns-list li { flex-wrap: wrap; }
  .ns-list li > .ns-th { flex: 1 1 180px; }
  .ns-list li > select { margin-left: 30px; }
  .list > li:has(> .row-actions) { flex-wrap: wrap; }
  .list > li > .row-actions { flex-basis: 100%; justify-content: flex-end; }
  .top-head { flex-wrap: wrap; }
  .top-head > .t-wrap { flex: 1 1 190px; }
  .top-head > .top-tools { margin-left: auto; }
  .ns-leiste { flex-wrap: wrap; row-gap: 6px; }
  .ns-leiste > .ns-summe { flex-basis: 100%; }
}
/* Überschriften mit Zähler: reicht der Platz nicht, rutscht der Zähler unter den Text statt als Spalte daneben */
.card h2, .card h3, summary, .teil-head { flex-wrap: wrap; }
/* lange Wörter an Silbengrenzen trennen (lang="de"), nicht mitten im Wort */
.list .title, .list .title a, .list a.title { hyphens: auto; }
/* überlange Wörter in Listenzeilen umbrechen statt über den Rand ragen (z. B. „(Versetzungsgefährdung)“) */
.list > li > .grow { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 560px) {
  /* Termine: „heute / in 7 Tagen“ sagt das Datum links schon – Platz für den Titel */
  .t-rel { display: none; }
  .list > li:has(> .datebox) { gap: 8px; }
}
/* Dienstagsplan: Silbentrennung statt Bruch mitten im Wort, wo der Browser trennen kann */
.di-chip { overflow-wrap: break-word; hyphens: auto; }
/* Projektname am Ende der Themenzeile mit „…“ statt hart abgeschnitten */
.ns-list .th-meta > span:last-child { display: block; min-width: 0; white-space: nowrap; }

/* Symbole statt Textzeichen (E85): gleiche Linien wie icon(), für CSS-Inhalte als Maske */
:root { --sym-auf: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 6l6 6-6 6'/></svg>"); --sym-zurueck: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 6l-6 6 6 6'/></svg>"); }
.g-chev { display: inline-flex; transform: rotate(-90deg); transition: transform .15s; }
.g-chev.offen { transform: none; }
.wdh { display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
.wdh .ico, .g-sub .ico { vertical-align: -2px; margin-right: 2px; }
.modal header [data-close] .ico, .pw-weg .ico { display: block; }
.modal header [data-close] { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-right: -8px; border-radius: 7px; }
.modal header [data-close]:hover { background: var(--hover); color: var(--ink); }

/* Für die nächsten Sitzungen (E86) */
.naechste h2 { display: flex; align-items: center; gap: 6px; font-size: calc(15px * var(--fs)); }
.naechste-neu { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.naechste-neu input[name=titel] { flex: 1 1 240px; min-width: 0; }
.naechste-neu select, .naechste-neu input[type=date] { width: auto; }
.naechste-neu input, .naechste-neu select { padding: 7px 10px; border: 1px solid var(--line-2); border-radius: 7px; background-color: var(--paper); font: inherit; font-size: calc(14px * var(--fs)); color: var(--ink); }
.naechste-neu input[name=ab] { display: none; }
.naechste-neu:has(select[name=ziel] option[value=ab]:checked) input[name=ab] { display: block; }
.sheet-naechste { margin: 4px 0 0; padding-left: 18px; }

/* Privat und Freigabe (E87) */
.pv-schloss { display: inline-flex; color: var(--muted); margin-left: 5px; vertical-align: -2px; }
.pv-personen { display: none; margin-top: 8px; gap: 6px; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.pv-feld:has(select[name=pv_art] option[value=auswahl]:checked) .pv-personen { display: grid; }
.pv-p { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: calc(14px * var(--fs)); }
.pv-p select { width: auto; }
/* privater Jahresablauf meldet keine Themen an – Haken „SL“ ausblenden */
.tf-form:has(.pv-feld select[name=pv_art] option[value=alle]:not(:checked)) .jv-sl, .tf-form:has(.pv-fix) .jv-sl { display: none; }
@media (max-width: 560px) {
  /* Dienstagsplan am Handy: Zeitfenster untereinander, Uhrzeit vorn, Einträge in voller Breite */
  .di-head { display: none; }
  .di-row { grid-template-columns: minmax(0, 1fr); }
  .di-row > .di-cell, .di-row > .di-cell + .di-cell { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 8px; row-gap: 3px;
    align-items: start; min-height: 30px; border-left: none; border-top: 1px solid var(--line); padding-right: 32px; }
  .di-row > .di-date + .di-cell { border-top: none; }
  .di-cell > .di-slot-lbl { display: block; grid-column: 1; grid-row: 1; padding-top: 4px; font-size: calc(12px * var(--fs)); }
  .di-cell > :not(.di-slot-lbl):not(.di-add) { grid-column: 2; }
  .di-chip { font-size: calc(13px * var(--fs)); padding: 4px 8px; }
}

/* Private Einträge deutlich erkennbar (E90): Etikett, getönte Zeile, gestrichelter Balken, eigene Gruppe */
.pv-tag { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: var(--privat-soft);
  border: 1px solid var(--privat-line); color: var(--privat); font-size: calc(11.5px * var(--fs)); font-weight: 500; line-height: 1.5; white-space: nowrap; vertical-align: 1px; }
.pv-schloss { color: var(--privat); }
.pv-zeile { background: var(--privat-soft); }
.proj-row.pv-zeile:hover { background: #efe9f8; }
.card:not(.flush) .list > li.pv-zeile { box-shadow: -20px 0 0 var(--privat-soft), 20px 0 0 var(--privat-soft); }
.g-bar.pv-bar { outline: 1.5px dashed var(--privat); outline-offset: 1px; }
.mk-pv, .mk-j.mk-pv { color: var(--privat); }
.cal-chip.is-privat { background: var(--privat-soft); border-color: var(--privat-line); color: var(--privat); }
h2.pv-gruppe, .pv-gruppe { display: flex; align-items: center; gap: 6px; margin: 0; padding: 12px 20px 6px; font-size: calc(12px * var(--fs)); font-weight: 600; text-transform: uppercase;
  letter-spacing: .04em; color: var(--privat); border-bottom: 1px solid var(--line); }
.pv-gruppe.pv-gemeinsam { color: var(--muted); }
.pv-karte > h2 { color: var(--privat); display: flex; align-items: center; gap: 6px; }
@media (max-width: 560px) {
  /* langes Etikett („Privat · mit Hns, SndD“) darf in schmalen Titelspalten umbrechen */
  .pv-tag { white-space: normal; max-width: 100%; }
}

/* Übersicht (E91): zwei Spalten ohne Lücken, „⋯“ je Karte, kompakte leere Karten */
.start-spalten { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.start-spalten.eins { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.start-spalte { display: flex; flex-direction: column; min-width: 0; }
.start-karte { position: relative; min-width: 0; }
.start-menu { position: absolute; top: 10px; right: 10px; z-index: 2; }
.start-menu details.more > summary { width: 28px; height: 28px; }
.start-karte > .card h2 { padding-right: 30px; }
.k-sitzung > .card > :first-child, .k-wochen .wl-detail { padding-right: 34px; }
.k-wochen > .start-menu { top: auto; bottom: 24px; }
.k-wochen .wl-alle { right: 34px; }
.start-leer { padding-top: 14px; padding-bottom: 12px; }
.start-leer h2 { margin-bottom: 2px; }
.start-leer .empty { padding: 0; }
.start-plus { margin: -4px 0 16px; }
@media (max-width: 900px) {
  .start-spalten, .start-spalten.eins { display: flex; flex-direction: column; gap: 0; }
  .start-spalte { display: contents; }
}

/* Forum je Projekt (E92) */
.forum { display: flex; flex-direction: column; gap: 12px; }
.fb-faden { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; background: var(--paper); }
.fb-antwort { margin: 8px 0 0 34px; padding-top: 8px; border-top: 1px dashed var(--line); }
.fb-kopf { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fb-kopf details.more { margin-left: auto; }
.fb-av { width: 26px; height: 26px; font-size: calc(10.5px * var(--fs)); }
.fb-text { white-space: pre-wrap; overflow-wrap: anywhere; margin: 4px 0 2px 34px; font-size: calc(14.5px * var(--fs)); }
.fb-antw { margin-left: 34px; }
.fb .inline-add { margin: 6px 0 0 34px; }
.fb .inline-add textarea { flex: 1; min-width: 0; font: inherit; font-size: calc(14px * var(--fs)); padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; }
.fb-neu-tag { display: inline-block; font-size: calc(11.5px * var(--fs)); font-weight: 600; color: var(--blue); }
.fb-ist-neu > .fb-kopf strong { color: var(--blue); }
.fb-form { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.fb-form textarea { width: 100%; font: inherit; font-size: calc(14.5px * var(--fs)); padding: 8px 10px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--paper); }
.fb-fuss { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }

/* Projektteam (E93): Teamliste immer sichtbar; eingeschränkte Projekte ohne Haken „SL“ */
.pt-feld .pt-team { display: grid; }
.pt-team-kopf { margin-top: 10px; }
.tf-form:has(select[name=pt_sicht] option[value=gremium]:not(:checked)) .jv-sl { display: none; }
/* lange Teamzeile im Projektkopf darf umbrechen (E93) */
.s-meta-i.s-meta-lang { white-space: normal; align-items: flex-start; min-width: 0; }
.s-meta-i.s-meta-lang .ico { flex-shrink: 0; margin-top: 3px; }

/* Rechtetabellen am Handy: je Recht ein Block, Rollen als Liste darunter */
@media (max-width: 560px) {
  .tbl.matrix, .tbl.matrix tbody, .tbl.matrix tr, .tbl.matrix td { display: block; }
  .tbl.matrix thead { display: none; }
  .tbl.matrix tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
  .tbl.matrix tr:last-child { border-bottom: none; }
  .tbl.matrix td { border: none; padding: 1px 0; text-align: left; }
  .tbl.matrix td:first-child { font-weight: 600; padding-bottom: 4px; }
  .tbl.matrix td[data-rolle] { display: flex; justify-content: space-between; gap: 12px; padding-left: 12px; }
  .tbl.matrix td[data-rolle]::before { content: attr(data-rolle); color: var(--muted); font-weight: 400; }
}

/* Neu für dich (E94): Karte oben auf der Übersicht, blaue Zähler im Menü */
.neu-karte { border-color: color-mix(in srgb, var(--blue) 35%, var(--line)); }
.neu-karte h2 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.neu-karte h2 .head-link { margin-left: auto; }
.neu-karte .td-ic { color: var(--blue); }
.neu-karte .link-btn.title { padding: 0; font: inherit; font-weight: 500; text-align: left; color: inherit; text-decoration: none; }
.neu-zahl, .nav-neu { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 9px; background: var(--blue); color: #fff;
  font-size: calc(11.5px * var(--fs)); font-weight: 600; line-height: 18px; text-align: center; }
.nav-neu { margin-left: auto; }
.nav-neu + .count { margin-left: 8px; }
.menu-btn.mit-neu { position: relative; }
.menu-btn.mit-neu::after { content: ""; position: absolute; top: -3px; right: -3px; width: 9px; height: 9px; border-radius: 50%; background: var(--blue); border: 2px solid var(--paper); }

/* Suche über alles (E96) */
.suche-bg { position: fixed; inset: 0; z-index: 60; background: rgba(20, 24, 28, .28); display: flex; justify-content: center; align-items: flex-start; padding: 9vh 16px 16px; }
.suche { width: min(640px, 100%); max-height: 78vh; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 40px rgba(0, 0, 0, .18); overflow: hidden; }
.suche-feld { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 16px; border-bottom: 1px solid var(--line); color: var(--muted); }
.suche-feld input { flex: 1; min-width: 0; border: none; outline: none; font: inherit; font-size: calc(16px * var(--fs)); color: var(--ink); background: none; padding: 6px 0; }
.suche-feld input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; display: none; }
.suche-erg { overflow-y: auto; padding: 4px 0 8px; }
.suche-erg:empty { display: none; }
.suche-erg .empty { padding: 14px 16px; }
.suche-gkopf { padding: 10px 16px 4px; font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.suche-gkopf span { font-weight: 400; }
.suche-treffer { display: flex; gap: 10px; align-items: flex-start; padding: 7px 16px; text-decoration: none; color: var(--ink); }
.suche-treffer .td-ic { color: var(--muted); margin-top: 2px; flex-shrink: 0; }
.suche-treffer.on, .suche-treffer:hover { background: var(--hover); }
.suche-treffer.on { box-shadow: inset 3px 0 0 var(--blue); }
.suche-treffer .grow { min-width: 0; }
.st-titel, .st-sub, .st-aus { display: block; overflow-wrap: anywhere; }
.st-titel { font-weight: 500; }
.st-sub { font-size: calc(12.5px * var(--fs)); color: var(--muted); }
.st-aus { font-size: calc(13px * var(--fs)); color: var(--ink-2); margin-top: 2px; }
.suche mark { background: color-mix(in srgb, var(--blue) 18%, transparent); color: inherit; border-radius: 2px; }
.st-mehr { padding: 2px 16px 6px 42px; font-size: calc(12.5px * var(--fs)); color: var(--muted); }
@media (max-width: 560px) {
  .suche-bg { padding: 8px; }
  .suche { max-height: calc(100vh - 16px); }
}

/* ---------- Darstellung je Gerät (E136): Farbschema, Akzent, Hintergrund, Schriftgröße, Dichte ----------
   Gesetzt als Attribute an <html> (darstellungAnwenden). Nur geprüfte Kombinationen: Text bleibt bei 4,5 : 1 (E97), Violett
   bleibt „persönlich“ (E90), Rot „überfällig“. Das Blatt (Tagesordnung, Protokoll) bleibt in jedem Schema papierweiß. */
:root { --fs: 1; }
/* Das Blatt bleibt in Papiergröße – vergrößern dort über den Browser (Strg +) */
.sheet { --fs: 1; }
html[data-groesse="groesser"] { --fs: 1.1; }
html[data-groesse="gross"] { --fs: 1.2; }
html[data-groesse="groesser"] .title .tag, html[data-groesse="gross"] .title .tag { white-space: normal; }
html[data-dichte="kompakt"] .card { padding: 12px 14px; margin-bottom: 10px; }
html[data-dichte="kompakt"] .list > li { padding: 7px 0; }
html[data-dichte="kompakt"] .content { padding-top: 18px; }
html[data-dichte="kompakt"] .page-head { margin-bottom: 10px; }

/* Akzent (Linien, Flächen, Markierungen – nie Text) */
html[data-akzent="blau"] { --accent: #5b8fd6; --accent-soft: #eaf1fb; --accent-line: #c4d8f2; }
html[data-akzent="petrol"] { --accent: #2a9d8f; --accent-soft: #e3f4f1; --accent-line: #a9ddd5; }
html[data-akzent="terra"] { --accent: #d98a4e; --accent-soft: #fbefe5; --accent-line: #efc7a6; }
html[data-akzent="grau"] { --accent: #8f8f8a; --accent-soft: #f0f0ec; --accent-line: #d3d3cf; }

/* Hintergrund */
html[data-grund="weiss"] { --bg: #ffffff; --paper: #ffffff; --hover: #f4f4f4; --line: #e2e2e2; }
html[data-grund="kuehl"] { --bg: #f5f7fa; --paper: #ffffff; --hover: #edf1f5; --line: #e1e6ec; }
html[data-grund="sand"] { --bg: #f7f3ea; --paper: #fffdf8; --hover: #efe9dc; --line: #e6dfcf; }

/* Hoher Kontrast: dunklere Schrift und Linien, deutlicher Fokus */
html[data-schema="kontrast"] { --ink: #000; --ink-2: #1f1f22; --muted: #3f3f44; --line: #8a8a85; --line-2: #5f5f5a; --accent-line: #6f7a12; }
html[data-schema="kontrast"] :focus-visible { outline-width: 3px !important; }
html[data-schema="kontrast"] .card { border-width: 1.5px; }

/* Dunkel */
html[data-schema="dunkel"] {
  color-scheme: dark;
  --ink: #ececee; --ink-2: #cfcfd3; --muted: #a9a9ae; --line: #38383d; --line-2: #4b4b51;
  --bg: #18181b; --paper: #222226; --hover: #2c2c31;
  --red: #ff8e84; --red-soft: #3b2120; --amber: #f0c36a; --amber-soft: #3a2f16; --blue: #8fb6f5; --blue-soft: #1d283a;
  --privat: #c6aef0; --privat-soft: #2c2440; --privat-line: #5e4c86;
  --accent-soft: color-mix(in srgb, var(--accent) 18%, #222226); --accent-line: color-mix(in srgb, var(--accent) 45%, #222226);
}
html[data-schema="dunkel"][data-grund] { --bg: #18181b; --paper: #222226; --hover: #2c2c31; --line: #38383d; }
html[data-schema="dunkel"] body { background: var(--bg); color: var(--ink); }
/* helle Schrift auf dunkler Fläche: in Dunkel umgekehrt */
html[data-schema="dunkel"] .btn.primary, html[data-schema="dunkel"] .mk-s, html[data-schema="dunkel"] .dp-tag.gewaehlt,
html[data-schema="dunkel"] .cal-tag.cal-heute .cal-nr, html[data-schema="dunkel"] .sf-chip.on { color: #111; }
html[data-schema="dunkel"] .mk-s .ico { stroke: #111; }
html[data-schema="dunkel"] .btn.primary:hover { background: #fff; }
html[data-schema="dunkel"] .chip.rm-neu, html[data-schema="dunkel"] .neu-zahl, html[data-schema="dunkel"] .nav-neu { color: #111; }
html[data-schema="dunkel"] .sf-chip.on span { color: #333; }
/* Schrift auf Akzentfläche bleibt dunkel; Platzhalter heller als das Browser-Grau */
html[data-schema="dunkel"] .list.themen li.vorschlag .rang, html[data-schema="dunkel"] .wl-tag.heute .wl-d, html[data-schema="dunkel"] .toast-undo button { color: #111; }
html[data-schema="dunkel"] ::placeholder { color: #afafb5; opacity: 1; }
/* feste helle Tönungen */
html[data-schema="dunkel"] .seg { background: #2c2c31; }
html[data-schema="dunkel"] .beschluss { background: var(--accent-soft); }
html[data-schema="dunkel"] .proj-row:hover, html[data-schema="dunkel"] .cal-tag.cal-fremd, html[data-schema="dunkel"] .cal-tag.cal-we { background: #26262a; }
html[data-schema="dunkel"] .list.termine li.starred, html[data-schema="dunkel"] .jp-list li.jp-uebernommen { background: linear-gradient(90deg, var(--accent-soft), transparent 60%); }
html[data-schema="dunkel"] .ns-list li.vor { background: var(--accent-soft); }
html[data-schema="dunkel"] .proj-row.pv-zeile:hover { background: #352c4a; }
html[data-schema="dunkel"] .di-se { background: #2c2440; color: #d6c6f5; }
html[data-schema="dunkel"] .dr { background: #6e6e74; }
html[data-schema="dunkel"] .mk-j { color: var(--accent); }
html[data-schema="dunkel"] .anw-p input, html[data-schema="dunkel"] .ns-list li input[type=checkbox] { accent-color: var(--accent); }
html[data-schema="dunkel"] .g-bar.gs-planung, html[data-schema="dunkel"] .lg-bar.gs-planung { background: #2a3a55; }
html[data-schema="dunkel"] .g-bar.gs-pausiert, html[data-schema="dunkel"] .lg-bar.gs-pausiert { background: #4a3d22; }
html[data-schema="dunkel"] .g-bar.gs-abgeschlossen, html[data-schema="dunkel"] .lg-bar.gs-abgeschlossen { background: #34343a; }
html[data-schema="dunkel"] .g-bar.gs-abgeschlossen .g-fill { background: #55555c; }
html[data-schema="dunkel"] .zb-c { fill: #55555c; }
/* Das Blatt bleibt Papier: helle Werte nur innerhalb */
html[data-schema="dunkel"] .desk { background: #2a2a2e; }
html[data-schema="dunkel"] .sheet { --ink: #1d1d1f; --ink-2: #48484d; --muted: #68686e; --ink-3: #68686e; --line: #e7e7e4; --line-2: #d6d6d2;
  --paper: #fff; --bg: #fafaf8; --hover: #f3f3f0; --red: #b3261e; --red-soft: #fbeeec; --blue: #2b5797; --blue-soft: #eaf0f8;
  --accent-soft: #f4f7dd; --accent-line: #dfe79a; color-scheme: light; }
html[data-schema="dunkel"] .sheet .beschluss { background: #fafbef; }

/* Schullogo nur auf hellem Grund (CLAUDE.md) – im dunklen Schema auf weißer Fläche */
.logo-dunkel, html[data-schema="dunkel"] .logo-hell { display: none !important; }
html[data-schema="dunkel"] .logo-dunkel { display: block !important; }
/* Auswahl in Meine Einstellungen */
.einst .settings + .field { margin-top: 14px; }
.einst-farben { display: flex; flex-wrap: wrap; gap: 8px; }
.einst-farbe { position: relative; cursor: pointer; }
.einst-farbe input { position: absolute; opacity: 0; }
.einst-farbe span { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px 6px 8px; border: 1px solid var(--line-2); border-radius: 18px; background: var(--paper); font-size: calc(13.5px * var(--fs)); }
.einst-farbe i { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); }
.einst-farbe input:checked + span { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); font-weight: 500; }
.einst-farbe input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }
@media print { html { --fs: 1 !important; } }

/* Touch (E97): html.beruehrung auf iPad und Handy. Safari zoomt beim Antippen in Felder unter 16 px;
   Tippflächen mindestens 24 px (WCAG 2.5.8), Bedienelemente ohne Darüberfahren sichtbar. */
.beruehrung input:not([type=checkbox]):not([type=radio]), .beruehrung select, .beruehrung textarea { font-size: calc(16px * var(--fs)); }
.beruehrung input[type=checkbox], .beruehrung input[type=radio] { width: 24px; height: 24px; }
.beruehrung .hilfe-btn, .beruehrung .page-title .hilfe-btn { width: 26px; height: 26px; font-size: calc(13.5px * var(--fs)); }
.beruehrung .top-toggle { padding: 6px; }
.beruehrung .link-btn, .beruehrung .head-link { display: inline-block; padding-top: 4px; padding-bottom: 4px; }
.beruehrung .add-link { min-height: 28px; }
.beruehrung summary { min-height: 28px; }
.beruehrung .b-row .more, .beruehrung .ms-list .star { opacity: 1; }
.beruehrung .cal-add, .beruehrung .di-add { opacity: 1; min-width: 24px; min-height: 24px; }
.beruehrung .th-edit, .beruehrung .p-menu details.more > summary { opacity: .85; }

/* Druck (E97): Bedienelemente weglassen; Übersicht über die volle Breite, Karten nicht zerteilen */
@media print {
  .content .btn, .content .icon-btn, .content .hilfe-btn, .content details.more, .content .add-link, .content .add-links,
  .content .filters, .content .seg, .content label.search, .content .head-link, .neu-karte, .start-plus, .start-menu, .nk-actions,
  .k-notizen form, .wl-alle { display: none !important; }
  .start-spalten, .start-spalten.eins { display: block; }
  .start-spalte { display: contents; }
  .start-karte { break-inside: avoid; }
  .list li, .proj-row, .top { break-inside: avoid; }
  /* lange Listen (Monate, Sitzungen) dürfen umbrechen; Überschrift bleibt beim ersten Eintrag */
  details.card, .card.flush, .card:has(> .list > li:nth-child(8)) { break-inside: auto; }
  .card > summary, .card > h2 { break-after: avoid; }
}

/* Arbeitsphasen dauerhafter Projekte (E99): feine Linie für „läuft dauerhaft“, Phasen als kurze Balken */
.g-dauer { position: absolute; height: 0; border-top: 2px dotted #c9c9c3; z-index: 1; transform: translateY(-1px); }
.g-dauer.gs-planung { border-top-color: #9fb4d6; }
.g-dauer.gs-laufend { border-top-color: #b7c25a; }
.g-dauer.gs-pausiert { border-top-color: #d6b97c; }
.g-dauer.pv-bar { border-top-color: var(--privat); }
.g-anlass { z-index: 3; opacity: 1; }
.lg-dauer { display: inline-block; width: 22px; border-top: 2px dotted #b7c25a; vertical-align: middle; }

/* Arbeitsphasen in der Wochenleiste (E99): Band unten im Tag, im Tagesdetail als kurzer Balken */
.wl-tag { position: relative; }
.wl-ph { position: absolute; left: 3px; right: 3px; bottom: 2px; height: 4px; border-radius: 2px; background: var(--accent-line); }
.wl-tag.on .wl-ph, .wl-tag:hover .wl-ph { left: 2px; right: 2px; }
.wl-ph-mk { width: 14px; height: 6px; border-radius: 3px; background: var(--accent-line); margin: 0 1px; }
.wl-ph-mk { flex-shrink: 0; }
@media (max-width: 560px) {
  .wl-detail li.wl-ph-zeile { flex-wrap: wrap; row-gap: 0; }
  .wl-ph-zeile .wl-zeit { display: none; }
  .wl-ph-zeile > .muted { flex-basis: 100%; padding-left: 24px; }
}

/* SL-Auswahl in Schritt- und Meilensteinzeile (E100): am Handy eine eigene Zeile */
@media (max-width: 560px) {
  .jv-zeile { grid-template-columns: auto auto minmax(0, 1fr) auto; grid-template-areas: "t r . x" "s s s s" "l w w w" "d d d d"; }
  .jv-zeile .jv-sl { justify-self: start; width: auto; }
  .jv-zeile .jv-wer { grid-area: w; width: auto; justify-self: start; }
  .jv-zeile .jv-richt { grid-area: r; }
  .jv-zeile { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 32px; grid-template-areas: "s s s x" "t t r r" "a a a a" "w w w w" "l l d d" "g g g g"; }
  .jv-zeile .jv-tage-l { display: flex; } .jv-zeile .jv-tage-l .jv-tage { width: 56px; flex: none; } .jv-zeile .jv-tage-l select { width: auto; flex: 1; min-width: 0; }
  .jv-zeile .jv-richt { width: 100%; }
  .jv-zeile .jv-bezug-wahl { grid-area: a; width: 100%; }
  .ms-zeile { grid-template-areas: "t t x" "d e ." "l l l"; }
  .ms-zeile .jv-sl { grid-area: l; justify-self: start; }
}

/* Vertretung (E101) */
.b-vt { font-weight: 400; color: var(--muted); font-size: calc(12px * var(--fs)); white-space: nowrap; }
.zutun-vt { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 16px 0 4px; color: var(--ink-2); }
.vt-liste { margin: 0 0 12px; }
.u-akt { white-space: nowrap; }
.u-akt details.more { display: inline-block; }

/* Suche: Filter nach Art und Zeitraum, Sprung zur Stelle (E102) */
.suche-filter:empty { display: none; }
.suche-filter { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--line); }
.sf-arten { display: flex; gap: 6px; overflow-x: auto; flex: 1; min-width: 0; scrollbar-width: thin; }
.sf-chip { flex-shrink: 0; border: 1px solid var(--line-2); background: var(--paper); border-radius: 999px; padding: 3px 10px; font: inherit; font-size: calc(13px * var(--fs)); cursor: pointer; color: var(--ink-2); }
.sf-chip span { color: var(--muted); margin-left: 2px; }
.sf-chip.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.sf-chip.on span { color: #ddd; }
.sf-sj { flex-shrink: 0; font: inherit; font-size: calc(13px * var(--fs)); padding: 3px 6px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--paper); }
button.st-mehr { display: block; margin-left: 42px; padding: 2px 0 6px; font-size: calc(12.5px * var(--fs)); }
@keyframes sprung { from { box-shadow: 0 0 0 3px var(--blue); background-color: var(--blue-soft); } to { box-shadow: 0 0 0 3px transparent; } }
.sprung { animation: sprung 2.4s ease-out; border-radius: 6px; }
@media (max-width: 560px) {
  .suche-filter { flex-wrap: wrap; }
  .sf-arten { flex-basis: 100%; }
}

/* Eigene Projekte (E105): Seitenspalte mit Meilensteinen, Dateien, Notizen; „+ Hinzufügen“ im Kopf */
.proj-seite { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.proj-seite > .card { margin: 0; }
details.add-menu > summary.btn { width: auto; height: auto; padding: 7px 14px; display: inline-flex; align-items: center; gap: 6px; list-style: none; border: 1px solid var(--line-2); background: var(--paper); color: var(--ink); border-radius: 8px; font-size: calc(14px * var(--fs)); font-weight: 500; }
details.add-menu > summary.btn::-webkit-details-marker { display: none; }
.n-proj { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); margin-top: 2px; }
.pd-sitz { margin-top: 10px; }
.pd-sitz > summary { cursor: pointer; font-size: calc(13px * var(--fs)); color: var(--ink-2); font-weight: 500; }

/* Langnotiz (E106): Werkzeugleiste, Schreibfläche, Druck */
a.n-text { color: inherit; text-decoration: none; display: block; }
a.n-text:hover { text-decoration: underline; text-underline-offset: 3px; }
.n-lang { color: var(--muted); vertical-align: -1px; }
.nz-leiste { display: flex; flex-wrap: wrap; gap: 2px; padding-bottom: 8px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
.nz-fmt.on { background: var(--hover); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-2); }
.nz-editor { min-height: 320px; outline: none; padding: 4px 2px; }
.nz-editor:empty::before { content: attr(data-leer); color: var(--muted); }
.nz-editor:focus-visible { outline: none; }
.nz-blatt:focus-within { border-color: var(--ink-2); }
.nz-text { font-size: calc(15.5px * var(--fs)); line-height: 1.6; overflow-wrap: anywhere; }
.nz-text p { margin: 0 0 .6em; }
.nz-text h3 { font-size: calc(18px * var(--fs)); margin: 1em 0 .4em; }
.nz-text ul, .nz-text ol { margin: 0 0 .6em; padding-left: 1.4em; }
.nz-titel { font-size: calc(17px * var(--fs)); font-weight: 600; }
.nz-druckkopf h1 { font-size: calc(20px * var(--fs)); margin: 0 0 4px; }
.nz-druckkopf p { color: #555; margin: 0 0 14px; font-size: calc(12px * var(--fs)); }
@media print {
  .nz-blatt { border: none; box-shadow: none; padding: 0; }
  .content > .page-head { display: none; }
}
.beruehrung .n-proj { padding: 3px 0; }

/* ---------- Werkzeuge in der Seitenleiste, Version unten (E108) ---------- */
.seiten-werkzeuge { display: flex; align-items: center; gap: 2px; padding: 0 10px 10px; }
.seiten-werkzeuge .more-pop { left: 0; right: auto; }
.brand { padding-top: 8px; }
.brand-version { text-align: right; line-height: 1; margin: 0 -8px 2px 0; }
.brand-version .vers-btn { font-size: calc(11px * var(--fs)); }
.vers-proto { margin: 0 0 12px; padding: 8px 12px; border-radius: 8px; background: var(--accent-soft); border: 1px solid var(--accent-line); font-size: calc(13.5px * var(--fs)); }
@media (min-width: 901px) { .topbar { display: none; } }
@media (max-width: 900px) { .sidebar .seiten-werkzeuge { display: none; } .topbar { gap: 6px; } }

/* ---------- Notizen für Bericht und Tagesordnung (E110) ---------- */
.pn { margin: 8px 0 4px; padding: 8px 10px; border: 1px dashed var(--line-2); border-radius: 8px; background: var(--paper); }
.pn-frei { border-style: solid; border-color: var(--accent-line); background: var(--accent-soft); }
.pn-kopf { font-size: calc(12.5px * var(--fs)); font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.pn-kopf svg { vertical-align: -2px; margin-right: 4px; }
.pn-kopf .muted { font-weight: 400; }
.pn-list { list-style: none; margin: 0 0 4px; padding: 0; }
.pn-list li { display: flex; align-items: flex-start; gap: 8px; padding: 4px 0; font-size: calc(14px * var(--fs)); }
.pn-list li + li { border-top: 1px solid var(--line); }
.pn-list li input[type=checkbox] { margin-top: 3px; }
.pn-list li.done .n-text { text-decoration: line-through; color: var(--muted); }
.pn-list .btn.small { flex-shrink: 0; }
.pn-lang { white-space: pre-line; margin-top: 2px; }
.pn-neu { margin: 4px 0 0; }
.pn-add { margin-top: 4px; }
.pn-tag { display: inline-block; font-size: calc(11.5px * var(--fs)); padding: 0 6px; border-radius: 9px; border: 1px solid var(--accent-line); background: var(--accent-soft); color: var(--ink); vertical-align: 1px; }
.pn-karte .pn-punkt + .pn-punkt { margin-top: 12px; }
.pn-wo { font-size: calc(13px * var(--fs)); font-weight: 600; }
.pn-karte .pn { margin-top: 4px; }
.th-notizen { margin-top: 16px; }
.nz-frei { align-self: end; }
.nz-check { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; padding: 8px 0; }
.nz-erl { margin: 4px 0 0; }
.sheet-top .pn, .sheet-top .pn-add { margin-top: 10px; }
.th-notiz { position: relative; color: var(--muted); }
.th-notiz.hat { color: var(--ink); }
.th-nz { font-size: calc(11px * var(--fs)); font-weight: 600; margin-left: 1px; }

/* PDF in der Sitzungsliste als Schrift statt Symbol (E112) */
.pdf-btn { width: auto; padding: 0 6px; }
.pdf-marke { font-size: calc(11px * var(--fs)); font-weight: 700; letter-spacing: .04em; line-height: 1; padding: 3px 5px; border: 1.5px solid currentColor; border-radius: 4px; }

/* Leeres Gremium (E113) */
.gremium-leer { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 16px; padding: 10px 14px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); font-size: calc(14px * var(--fs)); }
.gremium-leer > svg { color: var(--muted); flex-shrink: 0; }
.gl-wechsel { color: var(--muted); }
.gl-wechsel .link-btn { font-size: calc(14px * var(--fs)); }
.h-grem { font-weight: 400; color: var(--muted); }

/* Tagesordnung in Vorbereitung (E114) */
.status.st-vorbereitung::before { background: transparent; border: 1.5px dashed var(--muted); box-sizing: border-box; }
.s-vorb { color: var(--muted); }

/* Projekte am TOP (E115) */
.t-proj { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0 2px; color: var(--muted); }
.t-proj-chip { display: inline-flex; align-items: center; gap: 2px; padding: 1px 2px 1px 9px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--paper); font-size: calc(13px * var(--fs)); }
.t-proj-chip a { color: var(--ink); }
.t-proj-chip .icon-btn { width: 22px; height: 22px; }
.ns-f-proj { margin-top: 6px; }

/* Beteiligte und verdeckte Themen (E116) */
.tf-beteiligt { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.tf-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border: 1px solid var(--line-2); border-radius: 14px; font-size: calc(13.5px * var(--fs)); cursor: pointer; background: var(--paper); }
.tf-chip:has(input:checked) { border-color: var(--ink); background: var(--hover); }
.tf-verdeckt { margin-top: 4px; }
.th-verdeckt { border-style: dashed; }

/* Recht „Sitzungen anlegen“ (E117) */
.u-recht { display: flex; align-items: flex-start; gap: 5px; margin-top: 4px; font-size: calc(12.5px * var(--fs)); line-height: 1.3; color: var(--muted); }
.tbl td.u-name { white-space: nowrap; }

/* Wochenübersicht am Handy (E148): Kopf über den Einträgen */
@media (max-width: 560px) {
  .list li.wo-zeile { grid-template-columns: minmax(0, 1fr) auto; }
  .list li.wo-zeile .wo-eintraege { grid-column: 1 / -1; grid-row: 2; }
}

/* Organigramm (E164): am Handy nur ein Hinweis über dem waagrecht verschiebbaren Plakat; Druck auf A3 quer, ohne Seitenkopf */
@media (max-width: 900px) { .og-nur-pc { display: block; color: var(--muted); font-size: calc(13px * var(--fs)); } }
@page og { size: A3 landscape; margin: 8mm; }
@media print {
  .og-rahmen { overflow: visible; page: og; }
  .og-plakat { border: none; }
  body:has(.og-plakat) .page-head, .og-nur-pc { display: none; }
  .og-plakat * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ---------- Anleitung (E172): Seite #/anleitung, Text aus anleitung.js, Klassen nur mit Präfix anl- ---------- */
.anl { max-width: 900px; line-height: 1.6; font-size: calc(15.5px * var(--fs)); }
.anl p, .anl li { max-width: 74ch; }
.anl li { margin: 3px 0; }
.anl h2 { font-size: calc(23px * var(--fs)); margin: 48px 0 12px; padding-top: 12px; border-top: 4px solid var(--accent); }
.anl h3 { font-size: calc(18px * var(--fs)); margin: 30px 0 8px; }
.anl a { color: var(--blue); }
.anl-kasten { background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: var(--radius); padding: 12px 16px; margin: 16px 0; }
.anl-kasten.anl-tipp { border-left-color: var(--blue); }
.anl-kasten > :first-child { margin-top: 0; } .anl-kasten > :last-child { margin-bottom: 0; }
.anl-titel { display: block; margin-bottom: 2px; }
.anl figure { margin: 18px 0 26px; }
.anl figure img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.anl figcaption { font-size: calc(13.5px * var(--fs)); color: var(--muted); margin-top: 6px; }
.anl-k { display: inline-block; padding: 0 6px; border: 1px solid var(--line-2); border-bottom-width: 2px; border-radius: 5px; background: var(--paper); font-size: calc(13.5px * var(--fs)); line-height: 1.5; white-space: nowrap; }
.anl-knopf { font-weight: 600; }
.anl-toc { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 22px; margin: 22px 0; }
.anl-toc h2 { border: 0; margin: 0 0 8px; padding: 0; font-size: calc(18px * var(--fs)); }
.anl-toc ol { margin: 0; padding-left: 22px; columns: 2; column-gap: 36px; }
.anl-toc ol ol { columns: 1; padding-left: 18px; font-size: calc(14px * var(--fs)); }
.anl-toc li { break-inside: avoid; margin: 2px 0; }
.anl-toc > ol > li { margin-top: 6px; }
.anl-tab { border-collapse: collapse; width: 100%; margin: 12px 0 20px; font-size: calc(14.5px * var(--fs)); background: var(--paper); }
.anl-tab th, .anl-tab td { border: 1px solid var(--line); padding: 6px 10px; text-align: left; vertical-align: top; }
.anl-tab th { background: var(--hover); }
.anl .sprung { border-radius: 4px; }
.anl [data-top] { scroll-margin-top: 16px; }
@media (max-width: 1023px) { .anl [data-top] { scroll-margin-top: 64px; } }
@media (max-width: 640px) {
  .anl-toc ol { columns: 1; }
  .anl-tab { display: block; overflow-x: auto; }
}
@media print {
  .anl { max-width: none; font-size: 10.5pt; }
  .anl h2 { break-before: page; margin-top: 0; }
  .anl-toc { break-after: page; font-size: 9.5pt; }
  .anl-toc h2 { break-before: auto; }
  .anl h3 { break-after: avoid; }
  .anl figure { break-inside: avoid; }
  .anl figure img { max-height: 200mm; width: auto; max-width: 100%; }
  .anl-oben { display: none; }
  .anl a { color: inherit; text-decoration: none; }
}
