* { box-sizing:border-box; }
body { margin:0; font-family:var(--font); background:var(--bg); color:var(--text); }
header { background:var(--hero); color:#fff; box-shadow:0 2px 14px color-mix(in srgb, var(--primary) 40%, transparent); display:flex; gap:1rem; align-items:center; padding:.6rem 5%; flex-wrap:wrap; }
header h1 { font-size:1.1rem; margin:0; flex:1; }
header a, header button { color:#fff; background:rgba(255, 255, 255, .14); border:1px solid rgba(255, 255, 255, .4); padding:.35rem .8rem; cursor:pointer; text-decoration:none; font:inherit; }
main { flex:1; min-width:0; background:var(--surface); border:1px solid var(--line); padding:1.25rem; }
label { display:block; font-weight:bold; margin:.9rem 0 .25rem; }
input, select, textarea { width:100%; padding:.45rem; font:inherit; border:1px solid var(--line); background:var(--input-bg); color:var(--text); }
textarea { resize:vertical; }
button { font:inherit; cursor:pointer; color:var(--text); }
button.primary { background:var(--primary); color:#fff; border:0; padding:.6rem 1.4rem; margin-top:1rem; }
button.small { padding:.2rem .5rem; border:1px solid var(--line); background:var(--btn-bg); }
button.danger { color:var(--err-text); }
.row { display:flex; gap:.4rem; align-items:center; margin:.25rem 0; }
.row input:first-child { flex:1; } .row input.wide { flex:2; }
.card { border:1px solid var(--line); padding:.75rem; margin:.75rem 0; background:var(--card-bg); }
.hint { color:var(--muted); font-size:.85rem; margin:.25rem 0; }
#msg { position:fixed; bottom:1rem; right:1rem; padding:.7rem 1rem; color:#fff; display:none; max-width:80vw; }
#msg.ok { background:var(--green); display:block; } #msg.err { background:var(--red); display:block; }
.login { max-width:340px; margin:4rem auto; background:var(--surface); border:1px solid var(--line); padding:1.5rem; }
.pw { position:relative; }
.pw input { padding-right:2.5rem; }
.pw .eye { position:absolute; right:0; top:0; bottom:0; width:2.4rem; border:0; background:none; font-size:1.1rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:.75rem; margin-top:1rem; }
.thumb { margin:0; } .thumb img { width:100%; height:130px; object-fit:contain; background:var(--surface); border:1px solid var(--line); }
.thumb .kindbox { display:flex; align-items:center; justify-content:center; width:100%; height:130px; font-size:2.4rem; background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.thumb code { display:block; overflow-wrap:anywhere; font-size:.8rem; margin-top:.3rem; }
.split { display:flex; gap:1rem; align-items:flex-start; }
.split aside { width:260px; flex:none; position:sticky; top:.5rem; }
.split aside .add { margin:0 0 .6rem; width:100%; }
.split aside input { margin-bottom:.5rem; }
.pagelist { max-height:70vh; overflow:auto; border:1px solid var(--line); }
.pagelist .item { display:block; width:100%; text-align:left; background:var(--surface); border:0; border-bottom:1px solid var(--line); padding:.5rem .6rem; }
.pagelist .item:hover { background:var(--hover); }
.pagelist .item.on { background:var(--blue); color:#fff; }
.pagelist .item small { display:block; opacity:.7; font-size:.75rem; }
.pagelist .hint { padding:.5rem; }
.editor { flex:1; min-width:0; }
.editor textarea { margin-top:.4rem; font-family:ui-monospace, Consolas, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", monospace; font-size:.92rem; }
.editor details { margin-top:.5rem; }
@media (max-width:700px) { .split { flex-direction:column; } .split aside { width:100%; position:static; } .editor { width:100%; } }
.meta { display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; margin:.6rem 0; }
.meta label { display:inline-flex; align-items:center; gap:.5rem; margin:0; }
.meta label.plain { font-weight:normal; }
.meta input { width:auto; }
.grouprow input { flex:1; } .iconpick { display:inline-flex; align-items:center; gap:.3rem; }
.iconpick select { width:auto; max-width:11rem; } .iconprev { display:inline-flex; width:1.6rem; height:1.6rem; align-items:center; justify-content:center; color:var(--heading); }
.iconprev svg { width:1.3rem; height:1.3rem; }
.meta select { width:auto; }
.rolestable { border-collapse:collapse; width:100%; margin:.5rem 0; }
.rolestable th, .rolestable td { border:1px solid var(--line); padding:.45rem .7rem; text-align:left; vertical-align:top; }
.rolestable th { background:var(--surface-2); }
.check { display:flex; align-items:center; gap:.5rem; margin:.7rem 0 .1rem; font-weight:normal; } .check input { width:auto; }
.ldapresult { margin-top:.8rem; } .ldapresult .ok { color:var(--ok-text); } .ldapresult .bad { color:var(--err-text); }
.card h4 { margin:1.2rem 0 .2rem; }
@media (max-width:700px) { header { padding:.6rem 1rem; } }

/* Markdown-Editor */
.mdeditor { margin-top:.4rem; border:1px solid var(--line); }
.mdtools { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem; padding:.35rem; background:var(--surface-2); border-bottom:1px solid var(--line); }
.mdtools button { min-width:2rem; padding:.2rem .5rem; border:1px solid var(--line); background:var(--btn-bg); }
.mdtools button:hover:not(:disabled) { background:var(--hover); }
.mdtools button:disabled, .mdtools select:disabled { opacity:.45; cursor:default; }
.mdtools button.b { font-weight:bold; } .mdtools button.i { font-style:italic; }
.mdtools button.previewbtn.on { background:var(--blue); border-color:var(--blue); color:#fff; }
.mdtools select { width:auto; padding:.2rem; }
.mdtools .sep { width:1px; align-self:stretch; background:var(--line); margin:0 .2rem; }
.mdtools .spacer { flex:1; }
.mdeditor textarea { display:block; margin:0; border:0; }
.mdeditor textarea[hidden] { display:none; }
.mdpreview { padding:1rem 1.25rem; line-height:1.5; min-height:10rem; max-height:70vh; overflow:auto; }
.mdpreview[hidden] { display:none; }
.mdpreview h1, .mdpreview h2, .mdpreview h3, .mdpreview h4 { color:var(--heading); }
.mdpreview h1 { margin-top:0; font-size:1.5rem; } .mdpreview h2 { font-size:1.2rem; }
.mdpreview img { max-width:100%; height:auto; }
.mdpreview table { border-collapse:collapse; margin:1rem 0; } .mdpreview th, .mdpreview td { border:1px solid var(--line); padding:.4rem .7rem; text-align:left; }
.mdpreview th { background:var(--surface-2); }
.mdpreview code { background:var(--surface-2); padding:.1rem .3rem; } .mdpreview pre { background:var(--surface-2); padding:.8rem; overflow:auto; } .mdpreview pre code { background:none; padding:0; }
.mdpreview blockquote { margin:1rem 0; padding:.2rem 1rem; border-left:4px solid var(--blue); background:var(--quote-bg); }
.mdpreview a { color:var(--link); }
.mdpreview .cal, .mdpreview .tf-embed { padding:.7rem 1rem; border:1px dashed var(--line); color:var(--muted); }
.meta input[type=text] { width:24rem; max-width:100%; }
.tagsuggest { display:flex; flex-wrap:wrap; gap:.3rem; margin:.2rem 0 .4rem; }
.meta label input[type=text] { font-weight:normal; }

/* ---------- Modernes Design (wie im Portal) ---------- */
header h1 { font-weight:750; letter-spacing:-.01em; }
header a, header button { border-radius:999px; transition:background .15s; }
header a:hover, header button:hover { background:rgba(255, 255, 255, .28); }
main { border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:1.5rem; }
input, select, textarea { border-radius:8px; padding:.5rem .65rem; transition:border-color .12s, box-shadow .12s; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--ring); }
button.primary { border-radius:10px; font-weight:600; box-shadow:0 2px 6px color-mix(in srgb, var(--primary) 35%, transparent); transition:background .15s, transform .12s; }
button.primary:hover { background:var(--primary-hover); transform:translateY(-1px); }
button.small { border-radius:8px; transition:background .12s; }
button.small:hover { background:var(--hover); }
.card { border-radius:12px; }
.pagelist { border-radius:10px; }
.pagelist .item.on { background:var(--primary); }
.mdeditor { border-radius:10px; overflow:hidden; }
.mdtools button.previewbtn.on { background:var(--primary); border-color:var(--primary); }
.login { border-radius:var(--radius-lg); box-shadow:var(--shadow); }
#msg { border-radius:10px; box-shadow:var(--shadow-hover); }
.thumb img { border-radius:8px; }
.pbresult { margin-top:1rem; } .ok-line { color:var(--ok-text); } .bad-line { color:var(--err-text); }

/* Kalender-Verwaltung */
.calcard { padding:0; }
.calcard summary { display:flex; align-items:center; gap:.6rem; padding:.7rem .9rem; cursor:pointer; list-style:none; }
.calcard summary::-webkit-details-marker { display:none; }
.calcard summary::before { content:"▸"; color:var(--muted); transition:transform .12s; }
.calcard[open] summary::before { transform:rotate(90deg); }
.calcard[open] summary { border-bottom:1px solid var(--line); }
.caldot { width:.9rem; height:.9rem; border-radius:50%; flex:none; }
.calmeta { color:var(--muted); font-size:.85rem; }
.calwarn { color:var(--err-text); font-size:.8rem; margin-left:auto; }
.calbody { padding:.2rem .9rem .9rem; }
.calgrid { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:0 1rem; align-items:end; }
.calgrid .colorpick { width:4rem; height:2.3rem; padding:0; }
.calcreds { border:1px solid var(--line); border-radius:8px; margin:.8rem 0 0; padding:0 .8rem .8rem; }
.calcreds legend { padding:0 .4rem; font-weight:bold; font-size:.9rem; }
.calfoot { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin-top:1rem; padding-top:.8rem; border-top:1px solid var(--line); }
.calfoot .spacer { flex:1; }
.calactions { margin-top:1rem; }

/* Wissensdatenbank-Editor */
.wstep { padding:.7rem; }
.wstepcols { display:grid; grid-template-columns:11rem minmax(0, 1fr); gap:.8rem; align-items:start; margin-top:.5rem; } .wsteptext { min-width:0; }
.wstepimg img { display:block; width:100%; max-height:12rem; object-fit:contain; background:var(--surface-3); border:1px solid var(--line); border-radius:8px; margin-bottom:.4rem; } .wstepimg .row { flex-wrap:wrap; }
.wstepadd { width:100%; min-height:7rem; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3rem; padding:.6rem; font:inherit; font-size:.88rem; color:var(--muted-2); background:none; border:2px dashed var(--line); border-radius:10px; cursor:pointer; } .wstepadd span { font-size:1.6rem; } .wstepadd:hover { border-color:var(--blue); color:var(--text); }
@media (max-width:700px) { .wstepcols { grid-template-columns:1fr; } }
.wnum { flex:none; width:1.9rem; height:1.9rem; border-radius:50%; background:var(--primary); color:#fff; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
.wstep .row input:not(:first-child) { flex:1; }
.wstep .row button:disabled { opacity:.4; cursor:default; }

/* Bilder: Ordnerliste */
.imgfolders .item { display:flex; justify-content:space-between; align-items:baseline; gap:.5rem; }
.imgfolders .item small { display:inline; }
.split aside select { margin-bottom:.5rem; }

/* Seitenleiste */
.adminlayout { display:flex; gap:1.25rem; align-items:flex-start; width:calc(100% - 2rem); max-width:none; margin:1rem auto 2rem; }
nav.side { flex:none; width:13.5rem; position:sticky; top:.75rem; display:flex; flex-direction:column; gap:.15rem; padding:.6rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); max-height:calc(100vh - 1.5rem); overflow:auto; }
nav.side h2 { margin:.8rem .5rem .2rem; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
nav.side h2:first-child { margin-top:.2rem; }
nav.side button { text-align:left; border:0; background:none; color:var(--text); padding:.45rem .7rem; border-radius:8px; cursor:pointer; font:inherit; transition:background .12s; }
nav.side button:hover { background:var(--hover); }
nav.side button.on { background:var(--primary); color:#fff; font-weight:600; }
@media (max-width:800px) {
  .adminlayout { flex-direction:column; align-items:stretch; width:auto; margin:.5rem; }
  nav.side { position:static; width:auto; flex-direction:row; flex-wrap:wrap; max-height:none; gap:.25rem; }
  nav.side h2 { flex-basis:100%; margin:.4rem .3rem 0; }
}

.adminlayout.nosidebar nav.side { display:none; }
header .sidetoggle { font-size:1.1rem; padding:.2rem .7rem; }
.grid { grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); }
.thumb .row { flex-wrap:wrap; }
.thumb .row button { white-space:nowrap; }
.iconbtn { display:inline-flex; align-items:center; justify-content:center; padding:.3rem .5rem; }
.iconbtn svg { width:1.15rem; height:1.15rem; }
.thumb .row { flex-wrap:nowrap; }

/* Speiseplan-Editor */
.mlitem { margin:.5rem 0; padding-bottom:.4rem; border-bottom:1px dashed var(--line); } .mlitem:last-child { border-bottom:0; }
.mlall { margin:.2rem 0 0 .2rem; font-size:.85rem; color:var(--muted-2); } .mlall summary { cursor:pointer; }
.mlallbox { display:grid; grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr)); gap:.3rem .8rem; margin:.4rem 0; }
.mlall label { display:inline-flex; align-items:center; gap:.35rem; margin:0; font-weight:normal; } .mlall input { width:auto; }
.mlcopy { margin:.5rem 0 .2rem; padding:.6rem .8rem; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); }
.mlcopy .check { margin:0; } .mlcopygrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(11rem, 1fr)); gap:.3rem .8rem; margin:.3rem 0 .6rem; }
.mlsteps { margin:.2rem 0 .6rem 1.2rem; padding:0; color:var(--muted-2); line-height:1.6; }
.mlsave { position:sticky; bottom:0; z-index:5; gap:.6rem; padding:.7rem 0; margin-top:1rem; background:var(--bg, var(--surface)); border-top:1px solid var(--line); }
.mlsave button { font-size:1.05rem; padding:.6rem 1.3rem; }
#app .editor .card summary, .ml-bar button { cursor:pointer; }
.ml-bar button.small, .mlitem button.small { font-size:1rem; padding:.45rem 1rem; }
.mlitem input, .mlitem select { font-size:1rem; padding:.45rem .6rem; }
.ml-bar { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; margin:.6rem 0; } .ml-title { min-width:12rem; }
.mlitem .row input:not([style]) { flex:1; min-width:10rem; }

/* Buchungsbericht: nur auf dem Papier sichtbar */
.report { display:none; }
@media print {
  body.printing-report { background:#fff; color:#000; }
  body.printing-report #app, body.printing-report #msg, body.printing-report > footer, body.printing-report > :not(.report) { display:none !important; }   /* auch die Fußzeile: sie läge sonst allein auf einer eigenen ersten Seite */
  body.printing-report .report { display:block; color:#000; font:11pt/1.4 var(--font, Arial, sans-serif); }
  .report-sec { break-after:page; } .report-sec:last-child { break-after:auto; }
  .report h1 { font-size:16pt; margin:0 0 .2rem; color:#000; border-bottom:2px solid #000; padding-bottom:.3rem; }
  .report p { margin:.3rem 0; color:#222; }
  .report table { width:100%; border-collapse:collapse; margin:.6rem 0; }
  .report th, .report td { border:1px solid #666; padding:.25rem .5rem; text-align:left; vertical-align:top; }
  .report th { background:#e8e8e8; } .report tr { break-inside:avoid; }
  .report-foot { font-size:9pt; color:#555; margin-top:1rem; }
  @page { size:A4 landscape; margin:12mm; }
  /* Hilfe: Hochformat mit größerer Schrift (benannte Seite) */
  .report.helpdoc-wrap, .report-sec.helpdoc { page:help; font-size:12pt; line-height:1.55; }
  @page help { size:A4 portrait; margin:20mm 18mm; }
  .helpdoc h1 { font-size:20pt; margin:0 0 .8rem; padding-bottom:.4rem; border-bottom:3px solid #0b62a8; }
  .helpdoc h3 { font-size:13pt; margin:1.2rem 0 .3rem; color:#0b62a8; break-after:avoid; }
  .helpdoc p, .helpdoc li { color:#000; orphans:3; widows:3; } .helpdoc ul, .helpdoc ol { margin:.3rem 0 .6rem 1.3rem; padding:0; } .helpdoc li { margin:.25rem 0; break-inside:avoid; }
  .helpdoc .note { border:1px solid #888; border-left:6px solid #0b62a8; padding:.4rem .7rem; margin:.7rem 0; break-inside:avoid; } .helpdoc .note.warn { border-left-color:#bb0000; }
  .helpdoc pre { border:1px solid #999; background:#f3f3f3; padding:.4rem .6rem; margin:.5rem 0; font:10.5pt/1.4 monospace; white-space:pre-wrap; break-inside:avoid; }
  .helpdoc .report-foot { margin-top:1.5rem; border-top:1px solid #aaa; padding-top:.4rem; }
}
.card .mlday { display:flex; align-items:center; gap:.6rem; margin:.1rem 0 .5rem; font-size:1.1rem; }
.card.mltoday { border:6px solid var(--primary); background:color-mix(in srgb, var(--primary) 8%, var(--surface)); box-shadow:0 2px 10px color-mix(in srgb, var(--primary) 30%, transparent); }
.card.mltoday .mlday { font-size:1.3rem; }
.mlbadge { background:var(--primary); color:#fff; font-size:.8rem; font-weight:700; letter-spacing:.06em; padding:.15rem .7rem; border-radius:999px; }

/* Umfragen-Auswertung, Onboarding */
.pbar { height:.5rem; background:var(--surface-3); border-radius:99px; overflow:hidden; margin:.1rem 0 .4rem; } .pbar i { display:block; height:100%; background:var(--blue); border-radius:99px; }
.onbitem { display:flex; align-items:center; gap:.6rem; padding:.3rem 0; border-bottom:1px solid var(--line); } .onbitem input { width:auto; } .onbitem.done span { text-decoration:line-through; color:var(--muted); }
.report h2 { font-size:12pt; margin:.8rem 0 .2rem; color:#000; }
button.small.on { background:var(--primary); color:#fff; border-color:var(--primary); }

/* Hilfefenster */
header .helptoggle { padding:.25rem .8rem; }
.adminlayout.helpopen main { min-width:0; }
.helppanel { flex:none; width:22rem; position:sticky; top:.75rem; max-height:calc(100vh - 1.5rem); overflow:auto; background:var(--surface); border:1px solid var(--line); border-top:4px solid var(--blue); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:.8rem 1rem 1rem; }
.helphead { display:flex; justify-content:space-between; align-items:center; margin-bottom:.5rem; }
.helppanel h3 { margin:.8rem 0 .4rem; color:var(--heading); } .helppanel h4 { margin:.9rem 0 .2rem; } .helppanel p, .helppanel li { font-size:.92rem; } .helppanel ul { padding-left:1.1rem; margin:.3rem 0; }
.helpcode { display:flex; align-items:center; gap:.5rem; margin:.25rem 0; } .helpcode code { flex:1; background:var(--surface-2); padding:.25rem .5rem; border-radius:6px; overflow-wrap:anywhere; }
.helplist { display:flex; flex-direction:column; gap:.2rem; margin-top:.5rem; } .helplist button { text-align:left; border:0; background:none; color:var(--link); padding:.3rem .4rem; border-radius:6px; cursor:pointer; font:inherit; } .helplist button:hover { background:var(--hover); } .helplist button.on { font-weight:700; }
@media (max-width:1100px) { .helppanel { position:fixed; right:.5rem; top:.5rem; bottom:.5rem; width:min(24rem, calc(100vw - 1rem)); max-height:none; z-index:50; } }
@media print { .helppanel, header .helptoggle { display:none; } }

/* Menü: ausgeblendete Einträge */
.menuoff input, .menuoff .iconpick { opacity:.5; } .card.menuoff { border-style:dashed; }
.iconbtn.off { color:var(--muted); border-style:dashed; }

/* Aktivitäten-Protokoll */
table.audit { width:100%; table-layout:auto; } table.audit th:nth-child(1), table.audit td:nth-child(1) { white-space:nowrap; } table.audit th:nth-child(4), table.audit td:nth-child(4) { width:45%; } table.audit td { vertical-align:top; font-size:.88rem; } table.audit tr.fail td { background:rgba(187,0,0,.08); } table.audit small { color:var(--muted, #667); }

/* Design-Vorschau */
.dpv-row { display:flex; gap:1rem; flex-wrap:wrap; margin:0 0 1rem; } .dpv { flex:1 1 260px; min-width:240px; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--bg); color:var(--text); font-family:var(--font); }
.dpv-label { margin:0; padding:.2rem .7rem; font-size:.8rem; background:var(--surface-2); color:var(--muted); }
.dpv-top { display:flex; align-items:center; gap:.6rem; padding:.7rem 1rem; background:var(--hero); color:#fff; } .dpv-logo { height:32px; width:auto; max-width:140px; object-fit:contain; } .dpv-logo-big { height:44px; width:auto; max-width:220px; object-fit:contain; background:var(--hero); border-radius:8px; padding:4px; }
.dpv-body { padding:.8rem; } .dpv-card { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:.7rem .9rem; box-shadow:var(--shadow); } .dpv-card h4 { margin:0 0 .3rem; color:var(--heading); } .dpv-card p { margin:0 0 .6rem; color:var(--text); } .dpv-card a { color:var(--link); } .dpv-card small { color:var(--muted); }
.dpv-acts { display:flex; align-items:center; gap:.6rem; } .dpv-btn { background:var(--primary); color:#fff; border-radius:999px; padding:.3rem .9rem; font-weight:600; } .dpv-chip { background:var(--chip-bg); color:var(--heading); border-radius:999px; padding:.2rem .7rem; font-size:.85rem; } .dpv-accent { display:inline-block; width:2rem; height:.3rem; border-radius:2px; background:var(--accent); }
.dpv-icon-big { width:64px; height:64px; object-fit:contain; border-radius:14px; border:1px solid var(--line); background:var(--surface-2); flex:none; }

/* Seitenleiste (modern): Symbole, Suche, einklappbare Gruppen */
nav.side { width:15.5rem; padding:.7rem; gap:.35rem; border-radius:16px; }
nav.side .navsearch { position:relative; display:flex; align-items:center; } nav.side .navsearch .navicon { position:absolute; left:.7rem; width:1rem; height:1rem; color:var(--muted); pointer-events:none; }
nav.side .navsearch input { margin:0; width:100%; padding:.5rem .8rem .5rem 2.2rem; border-radius:999px; background:var(--surface-2); border:1px solid transparent; font:inherit; }
nav.side .navsearch input:focus { background:var(--surface); border-color:var(--blue); outline:none; box-shadow:0 0 0 3px var(--ring); }
nav.side .navlist { display:flex; flex-direction:column; gap:.1rem; }
nav.side .ghead { display:flex; align-items:center; gap:.4rem; width:100%; margin:.6rem 0 .1rem; padding:.3rem .5rem; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); border-radius:8px; }
nav.side .ghead:first-child { margin-top:.2rem; } nav.side .ghead span:first-child { flex:1; } nav.side .ghead:hover { background:var(--hover); color:var(--text); }
nav.side .ghead .gcount { flex:none; font-size:.7rem; font-weight:600; letter-spacing:0; background:var(--surface-2); color:var(--muted); border-radius:999px; padding:0 .45rem; }
nav.side .ghead .navicon { flex:none; width:.9rem; height:.9rem; transition:transform .15s; transform:rotate(-90deg); } nav.side .ghead.open .navicon { transform:none; }
nav.side .navitems { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.1rem; } nav.side .navitems[hidden] { display:none; }
nav.side .navitem { position:relative; display:flex; align-items:center; gap:.65rem; width:100%; padding:.45rem .7rem; border-radius:10px; color:var(--text); }
nav.side .navitem .navicon, nav.side .navitem .icon { flex:none; width:1.1rem; height:1.1rem; color:var(--muted); transition:color .12s; }
nav.side .navitem:hover { background:var(--hover); } nav.side .navitem:hover .navicon { color:var(--primary); }
nav.side .navitem.on { background:var(--hover); color:var(--heading); font-weight:650; box-shadow:inset 3px 0 0 var(--primary); } nav.side .navitem.on .navicon { color:var(--primary); }
nav.side button:focus-visible { outline:2px solid var(--blue); outline-offset:1px; }
.pagehead { display:flex; align-items:center; gap:.8rem; margin:0 0 1.1rem; padding-bottom:.9rem; border-bottom:1px solid var(--line); }
.pagehead-ico { flex:none; display:inline-flex; align-items:center; justify-content:center; width:2.6rem; height:2.6rem; border-radius:12px; background:var(--hover); color:var(--primary); } .pagehead-ico .navicon { width:1.4rem; height:1.4rem; }
.pagehead small { display:block; color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; } .pagehead h2 { margin:0; font-size:1.35rem; color:var(--heading); }
@media (max-width:800px) {
  nav.side { width:auto; flex-direction:column; flex-wrap:nowrap; }
  nav.side .navitems { display:grid; grid-template-columns:repeat(auto-fill, minmax(9.5rem, 1fr)); gap:.25rem; } nav.side .navitems[hidden] { display:none; }
  nav.side .ghead { margin-top:.4rem; }
}

/* Reiter „Allgemein“: Abschnitte, Schalter, Übersicht */
.pills { display:inline-flex; gap:.2rem; padding:.25rem; margin:0 0 1rem; background:var(--surface-2); border-radius:999px; flex-wrap:wrap; }
.pill { border:0; background:none; color:var(--muted-2); padding:.4rem 1.1rem; border-radius:999px; font:inherit; cursor:pointer; } .pill:hover { color:var(--text); }
.pill.on { background:var(--surface); color:var(--heading); font-weight:650; box-shadow:var(--shadow); }
.gcard { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1rem 1.2rem 1.1rem; margin:0 0 1rem; box-shadow:var(--shadow); }
.gcard h3 { margin:0 0 .15rem; font-size:1.05rem; color:var(--heading); } .gcard > .hint:first-of-type { margin-bottom:.7rem; }
.fgrid { display:grid; grid-template-columns:repeat(auto-fit, minmax(17rem, 1fr)); gap:.2rem 1.2rem; } .fcell label { display:block; margin:.5rem 0 .25rem; } .fcell input { width:100%; }
.dim { opacity:.5; }
.switchrow { display:flex; align-items:flex-start; gap:.8rem; margin:.8rem 0 .4rem; font-weight:normal; cursor:pointer; } .switchrow span { display:flex; flex-direction:column; } .switchrow small { color:var(--muted); }
input.switch { appearance:none; -webkit-appearance:none; flex:none; width:2.6rem !important; height:1.5rem; margin:.1rem 0 0; padding:0; border-radius:999px; background:var(--line); border:0; position:relative; cursor:pointer; transition:background .15s; }
input.switch::after { content:""; position:absolute; top:.15rem; left:.15rem; width:1.2rem; height:1.2rem; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .15s; }
input.switch:checked { background:var(--primary); } input.switch:checked::after { transform:translateX(1.1rem); } input.switch:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(10rem, 1fr)); gap:.7rem; margin-top:.5rem; }
.stat { display:flex; flex-direction:column; align-items:flex-start; gap:.1rem; padding:.7rem .9rem; border:1px solid var(--line); border-radius:12px; background:var(--card-bg); color:var(--text); font:inherit; text-align:left; cursor:pointer; } .stat:hover { background:var(--hover); }
.stat strong { font-size:1.6rem; line-height:1.1; color:var(--heading); } .stat span { color:var(--muted-2); font-size:.85rem; }
.gtiles { display:grid; grid-template-columns:repeat(auto-fill, minmax(15rem, 1fr)); gap:.7rem; margin-top:.5rem; }
.gtile { display:flex; align-items:center; gap:.8rem; padding:.65rem .8rem; border:1px solid var(--line); border-radius:12px; background:var(--card-bg); color:var(--text); font:inherit; text-align:left; cursor:pointer; } .gtile:hover { background:var(--hover); border-color:var(--blue); }
.gtile span:last-child { display:flex; flex-direction:column; } .gtile small { color:var(--muted); }
.savebar { position:sticky; bottom:0; display:flex; align-items:center; gap:1rem; padding:.7rem 0; margin-top:.5rem; background:linear-gradient(to top, var(--surface) 70%, transparent); }
.gcard > button.small { margin-top:.9rem; }

/* Reiter „Zugang“: Status-Marken, Rollenkarten */
.chip { display:inline-block; padding:.1rem .65rem; border-radius:999px; font-size:.78rem; font-weight:650; background:var(--surface-2); color:var(--muted-2); }
.chip.ok { background:rgba(46,125,50,.16); color:var(--ok-text); } .chip.warn { background:rgba(242,145,0,.2); color:#9a5b00; } @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .chip.warn { color:#ffcf7a; } } :root[data-theme="dark"] .chip.warn { color:#ffcf7a; }
.stat.static { cursor:default; } .stat.static:hover { background:var(--card-bg); } .stat small { color:var(--muted); font-size:.8rem; } .stat > span:first-child { font-weight:650; color:var(--text); font-size:.95rem; }
.rolecards { display:grid; grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr)); gap:.8rem; margin:.4rem 0 .8rem; }
.rolecard { border:1px solid var(--line); border-radius:12px; background:var(--card-bg); padding:.7rem .9rem; } .rolecard h4 { margin:0 0 .2rem; color:var(--heading); } .rolecard p { margin:0 0 .5rem; } .rolecard small { color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-size:.72rem; }
.rolecard ul { margin:.2rem 0 0; padding-left:1.1rem; } .rolecard li { margin:.1rem 0; }
.warncard { border-color:var(--accent); background:var(--card-bg); } .warncard p { margin:0 0 .5rem; }

/* Reiter „Aktivitäten“: Zeitstrahl */
.filterbar { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; margin:.2rem 0 .8rem; } .filterbar select, .filterbar input { margin:0; width:auto; } .filterbar input[type=search] { flex:1 1 14rem; min-width:10rem; }
.pills.small { display:flex; background:none; padding:0; margin:0 0 .6rem; gap:.35rem; } .pills.small .pill { background:var(--surface-2); padding:.25rem .8rem; font-size:.85rem; } .pills.small .pill.on { background:var(--primary); color:#fff; box-shadow:none; }
.stat.alarm strong { color:var(--err-text); } .chip.bad { background:rgba(187,0,0,.14); color:var(--err-text); }
.tl { margin-top:.4rem; } .tl-day { margin:1.2rem 0 .4rem; padding-bottom:.25rem; border-bottom:1px solid var(--line); font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.tl-row { display:grid; grid-template-columns:3.2rem 2rem 1fr; gap:.7rem; align-items:flex-start; padding:.55rem .5rem; border-radius:10px; } .tl-row:hover { background:var(--hover); }
.tl-time { color:var(--muted); font-variant-numeric:tabular-nums; padding-top:.3rem; font-size:.9rem; }
.tl-ico { display:inline-flex; align-items:center; justify-content:center; width:2rem; height:2rem; border-radius:50%; background:var(--surface-2); color:var(--muted-2); } .tl-ico .navicon, .tl-ico .icon { width:1rem; height:1rem; }
.tl-ico.ok { background:rgba(46,125,50,.16); color:var(--ok-text); } .tl-ico.warn { background:rgba(242,145,0,.2); color:#9a5b00; } .tl-ico.bad { background:rgba(187,0,0,.14); color:var(--err-text); } @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tl-ico.warn { color:#ffcf7a; } } :root[data-theme="dark"] .tl-ico.warn { color:#ffcf7a; }
.tl-head { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; } .tl-who { color:var(--text); } .tl-who small { color:var(--muted); }
.tl-detail { margin-top:.25rem; padding:.35rem .6rem; background:var(--surface-2); border-radius:8px; font-size:.88rem; color:var(--muted-2); word-break:break-word; } .tl-row.fail .tl-detail { background:rgba(187,0,0,.08); }
@media (max-width:600px) { .tl-row { grid-template-columns:2rem 1fr; } .tl-time { grid-column:2; padding:0; } .tl-ico { grid-row:1 / span 2; } }

/* ======================================================================
   Einheitliches Aussehen aller Bereiche (steht zuletzt und überschreibt ältere Regeln)
   Bausteine: Karten, Listen mit Editor, Formularfelder, Knöpfe, Tabellen, Aufklapper, Schalter
   ====================================================================== */
main { padding:1.6rem 1.9rem 1.2rem; border-radius:18px; }
main h3 { font-size:1.08rem; color:var(--heading); margin:1.7rem 0 .4rem; } main h4 { color:var(--heading); font-size:.98rem; }
main > div > h3:first-child { margin-top:.4rem; }
main p { line-height:1.5; }
.hint { line-height:1.45; }
code { background:var(--surface-2); padding:.05rem .35rem; border-radius:6px; font-size:.88em; }

/* Formularfelder */
label { font-size:.9rem; font-weight:650; color:var(--text); margin:1rem 0 .3rem; }
input, select, textarea { border-radius:10px; padding:.55rem .8rem; border:1px solid var(--line); background:var(--input-bg); }
input:hover, select:hover, textarea:hover { border-color:var(--blue); }
input::placeholder, textarea::placeholder { color:var(--muted); opacity:.8; }
input[type=checkbox], input[type=radio] { accent-color:var(--primary); width:1.05rem; height:1.05rem; padding:0; }
input[type=color] { padding:2px; cursor:pointer; }
select { cursor:pointer; }
.check input[type=checkbox] { appearance:none; -webkit-appearance:none; flex:none; width:2.6rem !important; height:1.5rem; margin:0; padding:0; border:0; border-radius:999px; background:var(--line); position:relative; cursor:pointer; transition:background .15s; }
.check input[type=checkbox]::after { content:""; position:absolute; top:.15rem; left:.15rem; width:1.2rem; height:1.2rem; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .15s; }
.check input[type=checkbox]:checked { background:var(--primary); } .check input[type=checkbox]:checked::after { transform:translateX(1.1rem); }
.check { gap:.7rem; margin:.9rem 0 .2rem; }

/* Knöpfe */
button.primary { border-radius:999px; padding:.6rem 1.6rem; margin-top:1rem; font-weight:650; background:var(--primary); border:0; box-shadow:0 2px 8px rgba(0, 0, 0, .18); }
button.primary:disabled { opacity:.5; transform:none; cursor:default; }
button.small { border-radius:999px; padding:.3rem .9rem; border:1px solid var(--line); background:var(--surface-2); color:var(--text); transition:background .12s, border-color .12s; }
button.small:hover { background:var(--hover); border-color:var(--blue); }
button.small.on { background:var(--primary); color:#fff; border-color:var(--primary); }
button.small.danger, button.danger { color:var(--err-text); border-color:rgba(187, 0, 0, .35); background:transparent; } button.small.danger:hover, button.danger:hover { background:rgba(187, 0, 0, .09); border-color:var(--err-text); }
button.iconbtn { padding:.3rem .55rem; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.savebar .primary { margin-top:0; }

/* Karten */
.card { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1rem 1.2rem; margin:.9rem 0; box-shadow:var(--shadow); }
.card > h3:first-child, .card > h4:first-child { margin-top:.1rem; }
.card h4 { margin:1.1rem 0 .25rem; }
.card.menuoff { border-style:dashed; }

/* Liste links, Editor rechts (Seiten, Blog, Wissen, Termine, Brett, Umfragen, Dokumente …) */
.split { gap:1.5rem; }
.split aside { width:17.5rem; }
.pagelist { border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:var(--shadow); padding:.35rem; max-height:68vh; }
.pagelist .item { border:0; border-radius:10px; margin:.1rem 0; padding:.55rem .8rem; background:none; color:var(--text); transition:background .12s; }
.pagelist .item:hover { background:var(--hover); }
.pagelist .item.on { background:var(--hover); color:var(--heading); font-weight:650; box-shadow:inset 3px 0 0 var(--primary); }
.pagelist .item small { opacity:.75; }
.split aside .add { margin:0 0 .7rem; width:100%; border-radius:999px; }
.split aside input, .split aside select { margin-bottom:.6rem; }
.editor textarea { border-radius:10px; }

/* Aufklapper */
.editor details, main > div > details { border:1px solid var(--line); border-radius:12px; background:var(--surface); padding:.4rem 1rem; margin:.7rem 0; }
.editor details > summary, main > div > details > summary { cursor:pointer; font-weight:650; color:var(--heading); padding:.35rem 0; }
.editor details[open] > summary, main > div > details[open] > summary { margin-bottom:.4rem; border-bottom:1px solid var(--line); }

/* Tabellen */
.rolestable { border-collapse:separate; border-spacing:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; margin:.7rem 0; background:var(--surface); }
.rolestable th, .rolestable td { border:0; border-bottom:1px solid var(--line); padding:.55rem .85rem; } .rolestable tr:last-child td { border-bottom:0; }
.rolestable th { background:var(--surface-2); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); }
.rolestable tbody tr:hover td { background:var(--hover); }

/* Bilder, Kalender, Meldungen */
.grid { gap:1rem; }
.thumb { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:.6rem; box-shadow:var(--shadow); }
.thumb img { border-radius:10px; background:var(--surface-2); }
.calcard, details.card { padding:0; } .calcard summary { padding:.8rem 1.1rem; }
.mdeditor { border-radius:12px; } .mdtools { padding:.45rem; } .mdtools button { border-radius:8px; }
.ldapresult, .pbresult { margin-top:1rem; } .ok-line, .ldapresult .ok { color:var(--ok-text); } .bad-line, .ldapresult .bad { color:var(--err-text); }
.wstep, .mlitem { border-radius:12px; }
#msg { border-radius:12px; padding:.75rem 1.2rem; font-weight:600; }
@media (max-width:700px) { main { padding:1.1rem 1rem; } .split aside { width:100%; } }

/* Leerzustände: Hinweis statt Inhalt (z. B. „Legen Sie links … die erste … an“) */
.editor > p.hint:only-child, .pagelist > p.hint:only-child { border:2px dashed var(--line); border-radius:14px; padding:2rem 1.4rem; text-align:center; color:var(--muted); margin:0; }
.pagelist > p.hint:only-child { border:0; padding:1rem .8rem; }

/* Einleitung jeder Ansicht und Meldungen */
main > div > p.hint:first-child { background:var(--surface-2); border-radius:12px; padding:.7rem 1rem; color:var(--muted-2); font-size:.9rem; margin:0 0 1rem; }
p.bad-line, p.ok-line { border-radius:10px; padding:.6rem .9rem; margin:.7rem 0; font-weight:600; }
p.bad-line { background:rgba(187, 0, 0, .09); border-left:4px solid var(--err-text); } p.ok-line { background:rgba(46, 125, 50, .12); border-left:4px solid var(--ok-text); }
.pbresult { margin-top:1rem; }

/* Treffer der Suche in der Seitenleiste */
nav.side .navhits-head { display:flex; align-items:center; gap:.4rem; margin:.7rem 0 .15rem; padding:.3rem .5rem; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); } nav.side .navhits-head span:first-child { flex:1; }
nav.side .navhits-head .gcount { font-size:.7rem; font-weight:600; letter-spacing:0; background:var(--surface-2); border-radius:999px; padding:0 .45rem; }
nav.side .navhits { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.1rem; }
nav.side .navhit { display:flex; align-items:flex-start; gap:.6rem; width:100%; padding:.4rem .7rem; border-radius:10px; color:var(--text); } nav.side .navhit:hover { background:var(--hover); }
nav.side .navhit .navicon, nav.side .navhit .icon { flex:none; width:1rem; height:1rem; margin-top:.2rem; color:var(--muted); }
nav.side .navhit span { display:flex; flex-direction:column; min-width:0; } nav.side .navhit strong { font-weight:600; font-size:.9rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } nav.side .navhit small { color:var(--muted); font-size:.75rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
nav.side .navitems.pinned { margin:.3rem 0 .1rem; padding-bottom:.35rem; border-bottom:1px solid var(--line); }

/* Hilfe: neue Bausteine */
.helppanel h5 { margin:1rem 0 .15rem; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.helpsteps { padding-left:1.4rem; margin:.4rem 0; } .helpsteps li { margin:.3rem 0; padding-left:.2rem; } .helpsteps li::marker { color:var(--primary); font-weight:700; }
.helpnote { margin:.7rem 0; padding:.6rem .8rem; border-radius:10px; border-left:4px solid var(--blue); background:var(--surface-2); font-size:.9rem; }
.helpnote.warn { border-left-color:var(--accent); background:rgba(242, 145, 0, .12); } .helpnote strong { color:var(--heading); }
.helpsee { margin:.8rem 0 .2rem; padding-top:.6rem; border-top:1px solid var(--line); } .helpsee small { display:block; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-size:.7rem; margin-bottom:.3rem; }
.helpsee div, .helpgo, .helpquick { display:flex; flex-wrap:wrap; gap:.35rem; } .helpgo { margin:.6rem 0; } .helpquick { margin:.4rem 0 .2rem; }
.helpcode code { white-space:pre-wrap; }

.adminlogo { height:34px; width:auto; max-width:160px; object-fit:contain; flex:none; }

/* Ehrenamt: Übersicht und Angebote */
.btnlink { display:inline-block; text-decoration:none; padding:.3rem .9rem; border-radius:999px; border:1px solid var(--line); background:var(--surface-2); color:var(--link); } .btnlink:hover { background:var(--hover); border-color:var(--blue); }
.vdate { flex:none; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; width:3rem; height:3.2rem; border-radius:12px; background:var(--hover); color:var(--heading); line-height:1.1; }
.vdate strong { font-size:1.2rem; } .vdate small { font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); }
.vrow { display:grid; grid-template-columns:3rem 1fr 9rem auto; gap:.9rem; align-items:center; padding:.55rem .2rem; border-top:1px solid var(--line); } .vrow:first-of-type { border-top:0; }
.vmain { display:flex; flex-direction:column; min-width:0; } .vmain strong { overflow:hidden; text-overflow:ellipsis; } .vmain small { color:var(--muted); } .vmain .vwhy { color:#9a5b00; font-weight:600; } @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .vmain .vwhy { color:#ffcf7a; } } :root[data-theme="dark"] .vmain .vwhy { color:#ffcf7a; }
.vbar { display:flex; flex-direction:column; gap:.1rem; min-width:7rem; } .vbar small { color:var(--muted); font-size:.75rem; text-align:right; } .vbar .pbar { margin:0; } .vbar .pbar i.full { background:var(--ok-text); }
.vitem { border:1px solid var(--line); border-radius:14px; background:var(--surface); margin:.6rem 0; box-shadow:var(--shadow); }
.vitem > summary { display:grid; grid-template-columns:3rem 1fr auto 9rem auto; gap:.9rem; align-items:center; padding:.7rem 1rem; cursor:pointer; list-style:none; } .vitem > summary::-webkit-details-marker { display:none; }
.vitem[open] > summary { border-bottom:1px solid var(--line); } .vitem > summary:hover { background:var(--hover); border-radius:14px 14px 0 0; }
.vitem.cancelled .vmain strong, .vitem.done .vmain strong { color:var(--muted-2); } .vitem.cancelled .vdate, .vitem.done .vdate { opacity:.6; }
.vbody { padding:.4rem 1.2rem 1.2rem; } .vactions { margin-top:1rem; flex-wrap:wrap; } .vadd { flex-wrap:wrap; margin-top:.6rem; } .vadd input { flex:1 1 10rem; width:auto; }
@media (max-width:700px) { .vrow { grid-template-columns:3rem 1fr; } .vrow .vbar, .vrow button { grid-column:2; } .vitem > summary { grid-template-columns:3rem 1fr; } .vitem > summary > :nth-child(n+3) { grid-column:2; justify-self:start; } }

/* Notfall */
.emgrow input { min-width:0; } .emgsc textarea { width:100%; box-sizing:border-box; margin-top:.4rem; } .emgsc { margin:0 0 .6rem; }

/* Telefonliste: eigene Einträge */
.pbdept { margin:1rem 0 .3rem; color:var(--heading); font-size:.95rem; } .pbdept small { color:var(--muted); font-weight:400; }
.pbentry { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)) auto; gap:.4rem .5rem; align-items:end; padding:.55rem .7rem; margin:0 0 .4rem; background:var(--surface-3); border:1px solid var(--line); border-radius:10px; }
.pbf { display:flex; flex-direction:column; gap:.1rem; min-width:0; } .pbf span { font-size:.72rem; color:var(--muted); } .pbf input { width:100%; box-sizing:border-box; min-width:0; }
.pbf-nachname { grid-column:1; grid-row:1; } .pbf-vorname { grid-column:2; grid-row:1; } .pbf-abteilung { grid-column:3; grid-row:1; }
.pbf-telefon { grid-column:1; grid-row:2; } .pbf-intern { grid-column:2; grid-row:2; } .pbf-email { grid-column:3; grid-row:2; }
.pbentry .iconbtn { grid-column:4; grid-row:1 / 3; align-self:center; }
@media (max-width:700px) { .pbentry { grid-template-columns:1fr 1fr; } .pbf { grid-column:auto !important; grid-row:auto !important; } .pbentry .iconbtn { grid-column:auto; grid-row:auto; justify-self:end; } }
.gcard .row .add { width:auto; white-space:nowrap; flex:none; }
.pbnew { color:var(--primary); } .pbfresh { border-color:var(--blue); background:var(--hover); }

/* Dokumentenablage: Verwaltung im Admin-Bereich */
.docsmgr { margin:.5rem 0 1rem; } .docscrumbs { flex-wrap:wrap; gap:.4rem; margin:.4rem 0 .6rem; } .docscrumbs button.on { background:var(--primary); border-color:var(--primary); color:#fff; }
.docsfolders { flex-direction:column; align-items:stretch; gap:.4rem; margin:.2rem 0 .8rem; }
.docsfolders .chipbtn { display:flex; align-items:center; gap:.5rem; width:100%; text-align:left; border-radius:10px; padding:.5rem .9rem; overflow-wrap:anywhere; }
.chipbtn { font:inherit; padding:.3rem .9rem; border:1px solid var(--line); border-radius:999px; background:var(--surface-2); color:var(--text); cursor:pointer; } .chipbtn:hover { background:var(--hover); border-color:var(--blue); } .chipbtn small { color:var(--muted); }
.docstable td { vertical-align:top; } .docsacts { white-space:nowrap; } .docsedit td { background:var(--surface-3); }
.docsup { margin-top:.5rem; }

/* Markdown-Hilfe: Schreibweise links, Wirkung rechts */
details.mdhelp { background:var(--surface-2); }
.mdhelp h4 { margin:.9rem 0 .4rem; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.mdhelp .mdh-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr)); gap:.4rem .8rem; }
.mdhelp .mdh-grid > div { display:flex; flex-direction:column; align-items:flex-start; gap:.15rem; padding:.45rem .6rem; background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.mdhelp code { background:var(--surface-2); border:1px solid var(--line); border-radius:6px; padding:.1rem .4rem; font-size:.82rem; overflow-wrap:anywhere; }
.mdhelp .mdh-grid span { font-size:.85rem; color:var(--muted-2); }
.mdhelp p.hint { margin:.5rem 0; }

.helpprint { display:flex; flex-wrap:wrap; gap:.4rem; margin:.2rem 0 .6rem; }

/* Übersicht im Reiter Allgemein */
.ovtasks { display:flex; flex-direction:column; gap:.5rem; }
.ovtask { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; padding:.55rem .8rem; border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:10px; background:var(--card-bg); }
.ovtask.warn { border-left-color:var(--accent); } .ovtask.bad { border-left-color:#c62828; } .ovtask span { flex:1; min-width:12rem; }
.ovcols { display:grid; grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr)); gap:1.2rem; } .ovcols h4 { margin:.2rem 0 .4rem; }
.ovlist { list-style:none; margin:0; padding:0; } .ovlist li { padding:.3rem 0; border-bottom:1px solid var(--line); } .ovlist li:last-child { border-bottom:0; } .ovlist small { color:var(--muted); }
.ovquick { display:grid; grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr)); gap:.6rem; margin:.4rem 0 .8rem; }
.ovchips { display:flex; flex-wrap:wrap; gap:.4rem; } .ovchips .chip { cursor:pointer; border:0; font:inherit; font-size:.82rem; }
.ovchart { margin:.8rem 0 1rem; } .ovchart figcaption { font-weight:650; margin-bottom:.4rem; }
.ovbars { display:flex; align-items:flex-end; gap:.35rem; height:8rem; padding-bottom:1px; border-bottom:2px solid var(--line); background:repeating-linear-gradient(to top, transparent 0, transparent calc(25% - 1px), var(--line) calc(25% - 1px), var(--line) 25%); }
.ovbar { flex:1; min-width:0; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; position:relative; border-radius:4px; outline-offset:2px; }
.ovbar i { display:block; width:100%; max-width:2.2rem; min-height:2px; background:var(--primary); border-radius:4px 4px 0 0; transition:filter .12s; }
.ovbar:hover i, .ovbar:focus-visible i { filter:brightness(1.25); } .ovbar.today i { background:var(--accent); }
.ovbar small { position:absolute; top:-1.1rem; font-size:.72rem; color:var(--muted-2); } .ovaxis { display:flex; justify-content:space-between; font-size:.78rem; color:var(--muted); margin-top:.25rem; }
.subrow { margin-left:1.6rem; } .subarrow { flex:none; color:var(--muted); font-weight:700; }
.mover { width:auto; max-width:9rem; font-size:.85rem; padding:.25rem .3rem; }
.linkrow, .subrow { flex-wrap:wrap; }
.linkrow input, .subrow input { min-width:11rem; } .linkrow input:first-child, .subrow input:not(.wide) { flex:1 1 11rem; } .linkrow input.wide, .subrow input.wide { flex:2 1 16rem; }

/* Editor: Live-Ansicht, Vollbild, Statuszeile */
.mdtools select { max-width:9rem; } .mdtools button.previewbtn { white-space:nowrap; }
.mdbody { display:block; }
.mdeditor.live .mdbody { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.mdeditor.live .mdpreview { border-left:1px solid var(--line); padding:.6rem .9rem; max-height:32rem; overflow:auto; }
.mdeditor.live textarea { min-height:20rem; }
@media (max-width:900px) { .mdeditor.live .mdbody { grid-template-columns:1fr; } .mdeditor.live .mdpreview { border-left:0; border-top:1px solid var(--line); } }
.mdmeta { padding:.25rem .6rem; font-size:.8rem; color:var(--muted); background:var(--surface-2); border-top:1px solid var(--line); }
.mdeditor.full { position:fixed; inset:0; z-index:200; margin:0; display:flex; flex-direction:column; background:var(--surface); border-radius:0; }
.mdeditor.full .mdbody { flex:1; min-height:0; display:grid; grid-template-columns:1fr; }
.mdeditor.full.live .mdbody { grid-template-columns:1fr 1fr; }
.mdeditor.full textarea, .mdeditor.full .mdpreview { height:100%; max-height:none; overflow:auto; resize:none; }
body.mdfull-open { overflow:hidden; }

/* Bildergalerie im Blog-Editor */
.galedit { display:grid; grid-template-columns:repeat(auto-fill, minmax(9rem, 1fr)); gap:.6rem; margin:.4rem 0; }
.galitem { border:1px solid var(--line); border-radius:10px; padding:.4rem; background:var(--surface-2); }
.galitem img { display:block; width:100%; height:6.5rem; object-fit:cover; border-radius:6px; margin-bottom:.3rem; } .galitem input { width:100%; font-size:.85rem; } .galitem .row { flex-wrap:wrap; }
.galitem .row button:disabled { opacity:.4; cursor:default; }

/* Bild aus der Ablage wählen */
.ipk-back { position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(10, 30, 50, .55); }
.ipk { display:flex; flex-direction:column; width:100%; max-width:60rem; max-height:90vh; background:var(--surface); border-radius:14px; box-shadow:0 20px 50px rgba(0, 0, 0, .35); overflow:hidden; }
.ipk-head { display:flex; justify-content:space-between; align-items:center; padding:.8rem 1rem; border-bottom:1px solid var(--line); } .ipk-head strong { font-size:1.1rem; }
.ipk-bar { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; padding:.6rem 1rem; border-bottom:1px solid var(--line); } .ipk-bar select, .ipk-bar input { width:auto; flex:1 1 12rem; }
.ipk-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(8rem, 1fr)); gap:.6rem; padding:1rem; overflow:auto; min-height:12rem; }
.ipk-item { position:relative; display:flex; flex-direction:column; gap:.25rem; padding:.35rem; border:2px solid var(--line); border-radius:10px; background:var(--surface-2); color:var(--text); cursor:pointer; text-align:left; }
.ipk-item:hover, .ipk-item:focus-visible { border-color:var(--blue); } .ipk-item.on { border-color:var(--primary); background:color-mix(in srgb, var(--primary) 12%, var(--surface)); }
.ipk-item .kindbox { display:flex; align-items:center; justify-content:center; height:6rem; font-size:2.2rem; border-radius:6px; background:var(--surface); }
.ipk-item img { display:block; width:100%; height:6rem; object-fit:cover; border-radius:6px; } .ipk-item small { font-size:.72rem; color:var(--muted-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ipk-check { position:absolute; top:.5rem; right:.5rem; width:1.5rem; height:1.5rem; border-radius:50%; background:var(--primary); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; }
.ipk-foot { display:flex; gap:.6rem; padding:.7rem 1rem; border-top:1px solid var(--line); }

/* Bilderablage: Großansicht */
.thumbzoom { display:block; width:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.thumbzoom:hover img, .thumbzoom:focus-visible img { box-shadow:0 0 0 3px var(--blue); }
.iv-back { position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(10, 30, 50, .65); }
.iv-box { display:flex; flex-direction:column; gap:.6rem; max-width:96vw; max-height:94vh; padding:.8rem 1rem 1rem; background:var(--surface); border-radius:14px; box-shadow:0 20px 50px rgba(0, 0, 0, .4); }
.iv-head { display:flex; align-items:center; gap:.8rem; } .iv-head strong { flex:1; overflow-wrap:anywhere; }
.iv-stage { display:flex; align-items:center; justify-content:center; gap:.5rem; min-height:0; }
.iv-img { display:block; width:auto; height:auto; max-width:min(1000px, calc(96vw - 8rem)); max-height:calc(94vh - 9rem); object-fit:contain; border-radius:8px; background:repeating-conic-gradient(var(--surface-3) 0 25%, var(--surface-2) 0 50%) 50% / 16px 16px; }
.iv-nav { flex:none; width:2.6rem; height:2.6rem; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--text); font-size:1.6rem; line-height:1; cursor:pointer; } .iv-nav:hover { background:var(--hover); } .iv-nav[hidden] { display:none; }
.iv-foot { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; } .iv-foot .hint { flex:1; min-width:10rem; margin:0; }
@media (max-width:600px) { .iv-img { max-width:calc(96vw - 6rem); } .iv-nav { width:2.2rem; height:2.2rem; } }

/* Dokument aus der Ablage wählen (QM) */
.qdp-crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; padding:.5rem 1rem 0; color:var(--muted-2); }
.qdp-crumbs button.on { font-weight:700; }
.qdp-list { display:flex; flex-direction:column; gap:.35rem; padding:1rem; overflow:auto; min-height:14rem; }
.qdp-row { display:flex; align-items:center; gap:.7rem; text-align:left; padding:.55rem .8rem; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); color:var(--text); font:inherit; cursor:pointer; }
.qdp-row:hover, .qdp-row:focus-visible { border-color:var(--blue); }
.qdp-row small { display:block; color:var(--muted-2); font-size:.78rem; overflow-wrap:anywhere; }
.qdp-ico { font-size:1.3rem; }
.ipk-bar .hint { margin:0; flex:1 1 12rem; }
.ipk.qdp { max-width:min(80rem, 96vw); height:90vh; max-height:90vh; }
.qdp .qdp-list { flex:1; min-height:0; }
.qdp .qdp-row { padding:.7rem 1rem; }
.row.qmdoc input { flex:1 1 0; min-width:7rem; width:auto; } .row.qmdoc input:nth-child(2) { flex:2 1 0; }
.row.qmlink select { flex:1 1 0; min-width:7rem; } .row.qmlink select:first-child { flex:0 0 8rem; } .row.qmlink input { flex:1 1 0; min-width:7rem; }
.pagelist + select, aside > select { width:100%; margin:.4rem 0; }

/* Formulargenerator (QM) */
.fb { display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr); gap:1.2rem; align-items:start; margin-top:.6rem; }
.fb-title { margin:.2rem 0 .4rem; }
.fb-palette { display:flex; flex-wrap:wrap; gap:.3rem; }
.fb-palette button span { display:inline-block; min-width:1.1em; text-align:center; font-weight:700; color:var(--primary); }
.fb-list { display:flex; flex-direction:column; gap:.35rem; margin-top:.6rem; }
.fb-card { border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.fb-card.open { border-color:var(--blue); box-shadow:0 0 0 2px var(--ring); }
.fb-card.over { border-color:var(--primary); background:var(--hover); }
.fb-card.k-h { border-left:4px solid var(--accent); } .fb-card.k-info { border-left:4px solid var(--blue); }
.fb-head { display:flex; align-items:center; gap:.35rem; padding:.35rem .45rem; }
.fb-head .fb-label { flex:1 1 8rem; min-width:6rem; }
.fb-handle { cursor:grab; color:var(--muted); font-size:1.2rem; padding:0 .15rem; user-select:none; }
.fb-kind { display:inline-flex; flex-direction:column; align-items:center; min-width:3.6rem; font-weight:700; color:var(--primary); line-height:1.1; }
.fb-kind small { font-size:.62rem; font-weight:400; color:var(--muted-2); text-align:center; }
.fb-chip { font-size:.75rem; font-weight:700; padding:0 .4rem; border-radius:99px; background:var(--chip-bg); color:var(--link); }
.fb-body { padding:.4rem .7rem .7rem; border-top:1px dashed var(--line); display:flex; flex-direction:column; gap:.4rem; }
.fb-preview { position:sticky; top:1rem; }
.fb-sheet { border:1px solid var(--line); border-radius:12px; background:var(--surface); padding:.8rem 0 .2rem; box-shadow:var(--shadow); }
.fb-sheet h3 { margin:0 1.4rem; } .fb-sheet small { margin:0 1.4rem; color:var(--muted); }
.fb-sheet .qm-form { max-height:none; overflow:visible; padding-top:.8rem; }
@media (max-width: 1100px) { .fb { grid-template-columns:1fr; } .fb-preview { position:static; } }
.fb-head { flex-wrap:wrap; } .fb-head .fb-label { flex:1 1 9rem; } .fb-acts { display:flex; align-items:center; gap:.3rem; margin-left:auto; flex:none; }
.fb { grid-template-columns:minmax(0, 1.3fr) minmax(0, 1fr); }

/* Formulareingang */
.qmi-bar select, .qmi-bar input { flex:0 1 14rem; width:auto; }
.qmi-list { display:flex; flex-direction:column; gap:.4rem; margin-top:.5rem; }
.qmi-card { border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.qmi-card.open { border-color:var(--blue); } .qmi-card.done .qmi-head strong { color:var(--muted-2); font-weight:600; }
.qmi-head { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .7rem; width:100%; text-align:left; background:none; border:0; padding:.55rem .8rem; font:inherit; color:var(--text); cursor:pointer; }
.qmi-pre { flex:1 1 12rem; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qmi-badge { font-size:.7rem; font-weight:700; padding:.05rem .5rem; border-radius:99px; background:var(--accent); color:#1b1b1b; } .qmi-badge.done { background:var(--chip-bg); color:var(--link); }
.qmi-ans { margin:0; padding:.2rem .8rem .5rem; display:grid; grid-template-columns:minmax(8rem, 14rem) 1fr; gap:.3rem .9rem; border-top:1px dashed var(--line); }
.qmi-ans dt { font-weight:650; color:var(--muted-2); } .qmi-ans dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.qmi-card textarea { width:calc(100% - 1.6rem); margin:0 .8rem .4rem; } .qmi-card .row { padding:0 .8rem .7rem; }
.row.qmlink { flex-wrap:wrap; } .row.qmlink select:first-child { flex:0 0 8rem; } .row.qmlink input, .row.qmlink select:nth-child(2) { flex:1 1 9rem; min-width:7rem; }
.qmt-list { display:flex; flex-direction:column; gap:.4rem; margin:.4rem 0; } .qmtile .row { flex-wrap:wrap; } .qmtile .row input { flex:1 1 9rem; min-width:7rem; } .qmtile input.qmt-ico { flex:0 0 3.6rem; min-width:0; text-align:center; font-size:1.2rem; }

/* Bereiche sortieren (QM) */
.ab { display:grid; grid-template-columns:repeat(auto-fill, minmax(22rem, 1fr)); gap:.8rem; align-items:start; margin:.6rem 0; }
.ab-col { border:1px solid var(--line); border-radius:12px; background:var(--surface); padding:.6rem; display:flex; flex-direction:column; gap:.4rem; }
.ab-col.free { background:var(--surface-3); border-style:dashed; }
.ab-head { display:flex; align-items:center; gap:.3rem; } .ab-head input { flex:1 1 6rem; min-width:0; } .ab-head input.ab-icon { flex:0 0 3.2rem; text-align:center; font-size:1.1rem; }
.ab-body { display:flex; flex-direction:column; gap:.3rem; min-height:3rem; padding:.3rem; border-radius:8px; border:2px dashed transparent; } .ab-body.over { border-color:var(--primary); background:var(--hover); }
.ab-item { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem .4rem; padding:.3rem .45rem; border:1px solid var(--line); border-radius:8px; background:var(--card-bg); } .ab-item.over { border-color:var(--primary); background:var(--hover); }
.ab-handle { cursor:grab; color:var(--muted); font-size:1.1rem; user-select:none; }
.ab-kind { font-size:.65rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); min-width:3.2rem; } .ab-item.k-process .ab-kind { color:var(--accent); }
.ab-title { flex:1 1 6rem; min-width:0; overflow-wrap:anywhere; font-weight:600; }
.ab-move { flex:0 1 8rem; width:auto; max-width:9rem; font-size:.8rem; }
.ab-ctl { flex:1 1 100%; display:flex; align-items:center; gap:.3rem; margin-left:1.5rem; } .ab-ctl .ab-move { flex:1 1 auto; max-width:none; }
.ab-title { flex:1 1 8rem; }
.qmcolor { padding-left:.2rem; } .qmcolor select { flex:0 1 15rem; width:auto; }
.qmc-sw { flex:none; width:1.4rem; height:1.4rem; border-radius:50%; border:1px solid var(--line); background:var(--c, transparent); }
.col-blue { --c:#0b62a8; } .col-green { --c:#2e7d32; } .col-orange { --c:#c25e00; } .col-red { --c:#bb0000; } .col-purple { --c:#6a3fa0; } .col-teal { --c:#00796b; } .col-pink { --c:#ad1457; } .col-gray { --c:#546e7a; }
.qmstamp { margin:.6rem 0; } .qmstamp p { margin:.15rem 0; }

/* QM-Admin: einklappbare Abschnitte, Umschalter, Übersicht */
.qm-sec { border:1px solid var(--line); border-radius:12px; background:var(--surface); margin:.6rem 0; }
.qm-sec > summary { cursor:pointer; padding:.6rem .9rem; font-weight:700; color:var(--heading); list-style:none; display:flex; align-items:center; gap:.5rem; user-select:none; }
.qm-sec > summary::-webkit-details-marker { display:none; }
.qm-sec > summary::before { content:"▸"; color:var(--primary); transition:transform .12s; } .qm-sec[open] > summary::before { transform:rotate(90deg); }
.qm-sec > summary:hover { background:var(--hover); border-radius:12px; }
.qm-sec-body { padding:.2rem .9rem .8rem; } .qm-sec .qm-sec { background:var(--surface-3); }
.qm-open { white-space:nowrap; font-size:.9rem; }
.qm-seg { display:inline-flex; gap:0; margin-bottom:.6rem; border:1px solid var(--line); border-radius:99px; overflow:hidden; }
.qm-seg button { border:0; background:var(--btn-bg); color:var(--text); padding:.4rem 1.1rem; font:inherit; cursor:pointer; } .qm-seg button.on { background:var(--primary); color:#fff; font-weight:700; }
.qmo-stats { display:grid; grid-template-columns:repeat(auto-fill, minmax(9.5rem, 1fr)); gap:.6rem; margin:.6rem 0 1rem; }
.qmo-stat { display:flex; flex-direction:column; align-items:flex-start; gap:.1rem; padding:.7rem .9rem; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; text-align:left; cursor:pointer; }
.qmo-stat:hover, .qmo-stat:focus-visible { border-color:var(--blue); background:var(--hover); } .qmo-stat strong { font-size:1.7rem; color:var(--primary); line-height:1.1; } .qmo-stat small { color:var(--muted); }
.qmo-todo, .qmo-steps { list-style:none; padding:0; margin:.3rem 0; display:flex; flex-direction:column; gap:.4rem; }
.qmo-todo li, .qmo-steps li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.55rem .8rem; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.qmo-todo li { border-left:4px solid var(--accent); } .qmo-steps p { margin:.1rem 0 0; }
.qmo-terms { display:grid; grid-template-columns:max-content 1fr; gap:.3rem 1rem; } .qmo-terms dt { font-weight:700; color:var(--heading); } .qmo-terms dd { margin:0; }
.qmhist { justify-content:space-between; flex-wrap:wrap; padding:.3rem 0; border-bottom:1px dashed var(--line); } .qmhist small { color:var(--muted-2); }
.qmstamp details { margin-top:.5rem; } .qmstamp summary { cursor:pointer; font-weight:700; color:var(--link); }
.qmsnap { padding:1rem; overflow:auto; flex:1; } .qmsnap ol { padding-left:1.2rem; }
.qmfacts { grid-template-columns:repeat(auto-fill, minmax(16rem, 1fr)); display:grid; gap:.6rem; } .qmfacts textarea { width:100%; }

/* QM-Steuerung: Maßnahmen, Audits, Kennzahlen */
.qc-bar select, .qc-bar input[type=search] { flex:0 1 14rem; width:auto; }
.qc-list { display:flex; flex-direction:column; gap:.4rem; margin:.5rem 0; }
.qc-card { border:1px solid var(--line); border-radius:10px; background:var(--surface); } .qc-card.open { border-color:var(--blue); } .qc-card.late { border-left:4px solid var(--red); }
.qc-head { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .7rem; width:100%; text-align:left; background:none; border:0; padding:.55rem .8rem; font:inherit; color:var(--text); cursor:pointer; } .qc-head small { color:var(--muted-2); } .qc-src { color:var(--muted); }
.qc-body { padding:0 .8rem .8rem; display:flex; flex-direction:column; gap:.4rem; }
.qc-status { font-size:.78rem; font-weight:700; padding:.05rem .55rem; border-radius:99px; background:var(--chip-bg); color:var(--link); white-space:nowrap; } .qc-status.s-verified { background:color-mix(in srgb, var(--green) 14%, var(--surface)); color:var(--green); }
.qc-bad { color:var(--err-text); font-weight:700; font-size:.82rem; }
.qc-q { border:1px solid var(--line); border-radius:10px; padding:.4rem .5rem; margin:.3rem 0; background:var(--surface); } .qc-q .row textarea { flex:1; min-height:2.6rem; } .qc-q select { flex:0 1 13rem; width:auto; }
.qc-q.r-major { border-left:4px solid var(--red); } .qc-q.r-minor { border-left:4px solid var(--accent); } .qc-q.r-obs { border-left:4px solid var(--blue); } .qc-q.r-ok { border-left:4px solid var(--green); }
.qc-nr { font-weight:700; color:var(--muted-2); min-width:1.5rem; } .qc-note input { flex:1; }
.qc-kpis td, .qc-kpis th { padding:.45rem .7rem; } .qc-kpis tr.on { background:var(--hover); }
.linklike { background:none; border:0; padding:0; font:inherit; color:var(--link); text-decoration:underline; cursor:pointer; text-align:left; }
.qc-kstate { font-weight:700; white-space:nowrap; } .qc-kstate.k-ok { color:var(--ok-text); } .qc-kstate.k-warn { color:#a85200; } .qc-kstate.k-bad { color:var(--err-text); } .qc-kstate.k-none { color:var(--muted); font-weight:400; }
.editor .row > button.small, .qc-bar > button { white-space:nowrap; flex:none; }

/* Fristen, Qualifikationen, Meldestelle (Admin) */
.qc-hist { margin:.2rem 0; padding-left:1.1rem; } .qc-hist li { margin:.15rem 0; }
.qp-scroll { overflow:auto; border:1px solid var(--line); border-radius:10px; max-height:32rem; } .qp-table { border-collapse:collapse; width:100%; font-size:.85rem; }
.qp-table th, .qp-table td { padding:.35rem .5rem; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; } .qp-table thead th { position:sticky; top:0; background:var(--surface-2); max-width:10rem; overflow:hidden; text-overflow:ellipsis; }
.qp-table tbody th { background:var(--surface); position:sticky; left:0; } .qp-table th small { display:block; font-weight:400; color:var(--muted); }
.qp-cell { font:inherit; font-size:.82rem; border:1px solid var(--line); border-radius:8px; padding:.1rem .5rem; background:var(--surface); cursor:pointer; white-space:nowrap; }
.qp-cell.k-ok { color:var(--ok-text); } .qp-cell.k-warn { color:#a85200; border-color:#a85200; } .qp-cell.k-bad { color:var(--err-text); border-color:var(--err-text); font-weight:700; } .qp-none { color:var(--muted); }
.qp-people { display:grid; grid-template-columns:repeat(auto-fill, minmax(13rem, 1fr)); gap:.1rem .8rem; margin:.3rem 0; }
.ms-note { padding:.7rem .9rem; border:1px solid var(--line); border-left:5px solid var(--accent); border-radius:10px; background:var(--surface-3); margin:.6rem 0; font-size:.9rem; }
.ms-late { color:var(--err-text); font-weight:700; } .ms-facts { display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; font-size:.88rem; } .ms-text { white-space:pre-wrap; overflow-wrap:anywhere; padding:.6rem .8rem; border:1px solid var(--line); border-radius:8px; background:var(--surface-3); }
.ms-thread { display:flex; flex-direction:column; gap:.4rem; } .ms-msg { padding:.5rem .7rem; border-radius:10px; border:1px solid var(--line); max-width:90%; white-space:pre-wrap; overflow-wrap:anywhere; } .ms-msg small { display:block; color:var(--muted); margin-bottom:.1rem; }
.ms-msg.stelle { align-self:flex-end; background:var(--chip-bg); } .ms-msg.melder { align-self:flex-start; background:var(--surface-3); }
.qc-bar { flex-wrap:wrap; }
.qc-vrow { display:grid; grid-template-columns:9rem 9rem minmax(0, 1fr) auto; gap:.4rem; align-items:center; margin:.25rem 0; } .qc-vrow input { width:100%; min-width:0; box-sizing:border-box; }
.qc-vhead { font-size:.78rem; font-weight:700; color:var(--muted-2); text-transform:uppercase; letter-spacing:.04em; margin-bottom:0; }
@media (max-width: 700px) { .qc-vrow { grid-template-columns:1fr 1fr auto; } .qc-vrow input:nth-child(3) { grid-column:1 / -1; grid-row:2; } .qc-vhead span:nth-child(3) { display:none; } }
header .theme-btn { display:inline-flex; align-items:center; justify-content:center; width:2.4rem; height:2.4rem; padding:0; border:2px solid #fff; }
header .theme-btn svg { width:1.3rem; height:1.3rem; }

/* QM-Prozess-Editor: Art des Schritts als Symbolknöpfe */
.qm-types { display:flex; flex-wrap:wrap; gap:.4rem; align-items:end; }
.qm-types button { display:inline-flex; align-items:center; gap:.4rem; }
.qm-types button.on { background:var(--primary); border-color:var(--primary); color:#fff; }
.qm-ty { display:inline-block; width:1rem; height:.7rem; border:2px solid currentColor; box-sizing:border-box; }
.qm-ty-start, .qm-ty-end { border-radius:999px; }
.qm-ty-task { border-radius:3px; }
.qm-ty-decision { width:.8rem; height:.8rem; transform:rotate(45deg) scale(.85); }

/* QM, Startseite gestalten: Abschnitte mit Kacheln */
.hv-modes { display:grid; grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr)); gap:.6rem; margin:.4rem 0 1rem; }
.hv-mode { display:flex; flex-direction:column; gap:.25rem; text-align:left; padding:.8rem 1rem; border:2px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; cursor:pointer; }
.hv-mode span { color:var(--muted-2); font-size:.9rem; } .hv-mode:hover { background:var(--hover); }
.hv-mode.on { border-color:var(--primary); background:var(--hover); box-shadow:0 0 0 3px var(--ring); }
.hv-sec { border:1px solid var(--line); border-radius:12px; padding:.6rem .8rem .8rem; margin:.6rem 0; background:var(--surface-3); }
.hv-sech { display:flex; gap:.4rem; align-items:center; margin-bottom:.5rem; } .hv-sech input { flex:1; font-weight:700; }
.hv-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(13rem, 1fr)); gap:.5rem; align-items:stretch; }
.hv-grid.over { outline:2px dashed var(--blue); outline-offset:3px; border-radius:8px; }
.hv-tile { display:flex; align-items:center; gap:.5rem; padding:.5rem .6rem; border:1px solid var(--line); border-left:5px solid var(--c, var(--blue)); border-radius:10px; background:var(--surface); cursor:pointer; min-height:3.2rem; }
.hv-tile:hover, .hv-tile:focus-visible { background:var(--hover); outline:none; } .hv-tile.open { box-shadow:0 0 0 3px var(--ring); border-color:var(--primary); }
.hv-tile.over { outline:2px dashed var(--blue); } .hv-tile.bad { border-color:var(--red); border-left-color:var(--red); }
.hv-tile.filled { background:var(--c, var(--blue)); color:#fff; } .hv-tile.filled small { color:#fff; opacity:.85; }
.hv-ico { flex:none; font-size:1.4rem; width:1.8rem; text-align:center; } .hv-tt { flex:1; min-width:0; display:flex; flex-direction:column; } .hv-tt strong, .hv-tt small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .hv-tt small { color:var(--muted); }
.hv-ctl { flex:none; display:none; } .hv-tile:hover .hv-ctl, .hv-tile:focus-within .hv-ctl, .hv-tile.open .hv-ctl { display:flex; } .hv-ctl button { padding:.1rem .3rem; }
.hv-add { align-self:stretch; border:2px dashed var(--line); border-radius:10px; background:transparent; color:var(--link); padding:.5rem; font:inherit; font-weight:600; cursor:pointer; min-height:3.2rem; }
.hv-add:hover { background:var(--hover); border-color:var(--blue); }
.hv-edit { margin-top:.6rem; }
.hv-pages { display:flex; flex-wrap:wrap; gap:.4rem; margin:.5rem 0 1rem; }
.hv-pagetab { border:1px solid var(--line); border-radius:99px; background:var(--btn-bg); color:var(--text); padding:.35rem 1rem; font:inherit; cursor:pointer; }
.hv-pagetab:hover { background:var(--hover); } .hv-pagetab.on { background:var(--primary); border-color:var(--primary); color:#fff; font-weight:600; }
.hv-pagetab.add { border-style:dashed; background:transparent; color:var(--link); }
.hv-sec[class*="col-"] { padding-top:0; overflow:hidden; border:2px solid var(--c); background:color-mix(in srgb, var(--c) 13%, var(--surface-3)); }
.hv-sec[class*="col-"] > .hv-sech { margin:0 -.8rem .7rem; padding:.55rem .8rem; background:var(--c); }
.hv-sec[class*="col-"] > .hv-sech input:first-child { border-color:transparent; }
.hv-seccolor { max-width:13rem; }
.hv-tile:not([class*="col-"]) { --c:var(--blue); }

/* Menü-Editor: „Verschieben nach …“ als Symbol; die echte Auswahl liegt unsichtbar darüber (Klick, Tastatur und Screenreader bedienen sie) */
.moveicon { position:relative; display:inline-flex; }
.moveicon select.mover { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; margin:0; }
.moveicon:focus-within .iconbtn { outline:2px solid var(--blue); outline-offset:1px; }

/* Emoji-Auswahl im Editor */
.emojibtn { font-size:1.05rem; line-height:1; }
.emojipop { position:fixed; z-index:1000; width:min(21rem, calc(100vw - 1rem)); padding:.5rem; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); box-shadow:var(--shadow-hover, 0 8px 24px rgba(0,0,0,.18)); }
.emojitabs { display:flex; flex-wrap:wrap; gap:.25rem; margin-bottom:.4rem; }
.emojitabs button { font-size:.8rem; padding:.2rem .55rem; border-radius:999px; }
.emojitabs button[aria-pressed="true"] { background:var(--accent, #0b62a8); color:#fff; border-color:transparent; }
.emojigrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(2.4rem, 1fr)); gap:.15rem; max-height:15rem; overflow:auto; }
.emojicell { font-size:1.55rem; line-height:1; padding:.35rem 0; border:1px solid transparent; border-radius:8px; background:transparent; cursor:pointer; font-family:"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif; }
.emojicell:hover, .emojicell:focus-visible { background:var(--bg); border-color:var(--line); }
