* { box-sizing:border-box; }
body { margin:0; font-family:var(--font); color:var(--text); background:var(--bg); line-height:1.5; }
a { color:var(--link); }
button, input, select, textarea { font-family:inherit; }

/* ---------- Kopfzeile ---------- */
.top { position:sticky; top:var(--inc-h, 0px); z-index:50; background:var(--hero); color:#fff; display:flex; align-items:center; gap:1rem; padding:.7rem 5%; box-shadow:0 2px 14px rgba(10, 50, 100, .25); }
.brand { flex:1; min-width:0; }
.title { font-size:1.5rem; font-weight:750; letter-spacing:-.01em; color:#fff; text-decoration:none; }
.claim { margin:.1rem 0 0; color:rgba(255, 255, 255, .85); font-size:.92rem; }
.claim a { color:#fff; }
.menu-btn { color:#fff; display:block; font-size:1.3rem; line-height:1; background:rgba(255, 255, 255, .14); border:1px solid rgba(255, 255, 255, .35); border-radius:10px; padding:.45rem .7rem; cursor:pointer; transition:background .15s; }
.menu-btn:hover { background:rgba(255, 255, 255, .26); }
#search { padding:.55rem 1rem; border:1px solid transparent; border-radius:999px; width:210px; font:inherit; background:rgba(255, 255, 255, .18); color:#fff; transition:background .15s, box-shadow .15s; }
#search::placeholder { color:rgba(255, 255, 255, .8); }
#search:focus { outline:none; background:var(--surface); color:var(--text); box-shadow:0 0 0 3px rgba(255, 255, 255, .35); }
#search:focus::placeholder { color:var(--muted); }
.logout { color:var(--primary); background:#fff; border:0; border-radius:999px; padding:.5rem 1.1rem; cursor:pointer; font:inherit; font-weight:600; transition:transform .12s, box-shadow .12s; }
.logout:hover { box-shadow:0 3px 10px rgba(0, 0, 0, .2); transform:translateY(-1px); }
.theme-btn { flex:none; display:inline-flex; align-items:center; justify-content:center; width:2.7rem; height:2.7rem; padding:0; border:2px solid #fff; border-radius:999px; background:rgba(255, 255, 255, .18); color:#fff; cursor:pointer; transition:background .12s; }
.theme-btn:hover { background:rgba(255, 255, 255, .34); }
.theme-btn svg { width:1.4rem; height:1.4rem; }
.whoami { color:rgba(255, 255, 255, .92); font-size:.9rem; }

/* ---------- Aufbau ---------- */
.layout { display:flex; align-items:flex-start; width:90%; margin:0 auto; }
.nav { width:290px; flex:none; padding:1.25rem 1.25rem 1.25rem 0; }
.content { flex:1; min-width:0; background:var(--surface); margin:1.25rem 0; padding:2rem 2.25rem; min-height:60vh; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); line-height:1.6; }
footer { text-align:center; padding:1.2rem; font-size:.85rem; color:var(--muted); }
body.nav-collapsed .nav { display:none; }

/* ---------- Menü ---------- */
.nav h2 { font-size:.95rem; margin:.9rem 0 .35rem; color:var(--on-nav); background:var(--nav-bg); border-radius:10px; padding:0; box-shadow:var(--shadow); }
.nav h2:first-child { margin-top:0; }
.nav h2 button { display:flex; justify-content:space-between; align-items:center; width:100%; background:none; border:0; color:inherit; font:inherit; font-weight:650; text-align:left; padding:.6rem .85rem; cursor:pointer; border-radius:10px; }
.nav h2 button:hover { background:rgba(255, 255, 255, .1); }
.nav h2 button::after { content:"▾"; opacity:.8; }
.nav h2 button[aria-expanded="false"]::after { content:"▸"; }
.nav h2 button .gt { display:inline-flex; align-items:center; gap:.6rem; }
.nav ul { list-style:none; margin:0 0 .3rem; padding:.3rem; background:var(--surface); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); }
.nav ul[hidden] { display:none; }
.nav li a { display:block; padding:.45rem .7rem; text-decoration:none; color:var(--text); border-radius:7px; transition:background .12s, color .12s; }
.nav li a:hover { background:var(--hover); color:var(--link); }
.nav svg.icon { width:1.15rem; height:1.15rem; flex:none; }
.nav svg.icon.lock, .tile svg.icon.lock { width:.85rem; height:.85rem; margin-left:.4rem; vertical-align:-1px; opacity:.55; }

/* ---------- Inhalt ---------- */
.content h1 { margin:0 0 1.1rem; font-size:1.85rem; font-weight:750; letter-spacing:-.015em; color:var(--heading); line-height:1.2; }
.content h1::after { content:""; display:block; width:52px; height:4px; border-radius:4px; background:var(--accent); margin-top:.6rem; }
.content h2 { font-size:1.3rem; color:var(--heading); margin:1.6rem 0 .6rem; }
.content h3, .content h4 { color:var(--heading); }
.content img, .content video { max-width:100%; height:auto; border-radius:10px; }
.content table { border-collapse:collapse; width:100%; margin:1rem 0; border:1px solid var(--line); }
.content th, .content td { border:0; border-bottom:1px solid var(--line); padding:.65rem .9rem; text-align:left; vertical-align:top; }
.content th { background:var(--surface-2); color:var(--heading); }
.content td:first-child { white-space:nowrap; }
.content code { background:var(--surface-2); padding:.1rem .35rem; border-radius:6px; }
.content pre { background:var(--surface-2); padding:.9rem 1rem; overflow:auto; border-radius:10px; }
.content pre code { background:none; padding:0; }
.content blockquote { margin:1rem 0; padding:.4rem 1.1rem; border-left:4px solid var(--blue); background:var(--quote-bg); border-radius:0 10px 10px 0; }
.content hr { border:0; border-top:1px solid var(--line); }

/* ---------- Startseite ---------- */
.content.home { padding:0; overflow:hidden; }
.hero { position:relative; overflow:hidden; background:var(--hero); color:#fff; padding:2.4rem 2.25rem 2.6rem; }
.hero::before, .hero::after { content:""; position:absolute; border-radius:50%; background:rgba(255, 255, 255, .08); }
.hero::before { width:280px; height:280px; right:-70px; top:-90px; }
.hero::after { width:150px; height:150px; right:150px; bottom:-80px; background:rgba(255, 255, 255, .06); border:3px solid rgba(242, 145, 0, .55); background:transparent; }
.hero > * { position:relative; z-index:1; }
.content .hero h1 { color:#fff; margin:0 0 .5rem; font-size:2rem; max-width:34ch; line-height:1.15; }
.content .hero h1::after { display:none; }
.hero p { margin:0; font-size:1.08rem; opacity:.92; max-width:60ch; }
.greet { display:inline-block; background:rgba(255, 255, 255, .18); padding:.25rem .85rem; border-radius:999px; font-size:.9rem; margin-bottom:.9rem; }
.homebody { padding:1.6rem 2.25rem 2.25rem; }
.homebody h2:first-child { margin-top:0; }
.tiles { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:1rem; margin:.8rem 0 1.8rem; }
.tile { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1.1rem 1.2rem 1rem; box-shadow:var(--shadow); transition:transform .15s, box-shadow .15s; }
.tile:hover { transform:translateY(-2px); box-shadow:var(--shadow-hover); }
.content .tile h3 { display:flex; align-items:center; gap:.65rem; margin:0 0 .6rem; font-size:1.05rem; }
.tile .ico { display:grid; place-items:center; width:2.3rem; height:2.3rem; border-radius:10px; background:var(--surface-2); color:var(--primary); flex:none; }
.tile .ico svg { width:1.3rem; height:1.3rem; }
.tile ul { list-style:none; margin:0; padding:0; }
.tile li a { display:block; padding:.28rem 0; color:var(--link); text-decoration:none; }
.tile li a:hover { text-decoration:underline; }
.tile .more { margin-top:.3rem; background:none; border:0; padding:.2rem 0; color:var(--muted); cursor:pointer; font:inherit; font-size:.88rem; }
.tile .more:hover { color:var(--link); }
.news { margin:0 0 1.8rem; padding:1.1rem 1.3rem; border-radius:14px; background:var(--quote-bg); border:1px solid var(--line); }
.content .news h2 { margin:0 0 .6rem; font-size:1.15rem; }
.news ul { list-style:none; margin:0; padding:0; }
.news li { display:flex; gap:.9rem; align-items:baseline; padding:.35rem 0; border-top:1px solid var(--line); }
.news li:first-child { border-top:0; }
.news time { color:var(--muted); font-size:.88rem; white-space:nowrap; }
.news a { font-weight:600; text-decoration:none; }
.news a:hover { text-decoration:underline; }
.news .all { display:inline-block; margin-top:.5rem; font-size:.92rem; }

/* ---------- Blog und eigenständige Seiten ---------- */
.blog { width:90%; margin:1.25rem auto; min-height:50vh; line-height:1.6; }
.blog h1 { margin:0 0 1rem; font-size:1.85rem; font-weight:750; letter-spacing:-.015em; color:var(--heading); }
.page { width:90%; margin:1.25rem auto; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2rem 2.25rem; box-shadow:var(--shadow); min-height:50vh; line-height:1.6; }
.page h1 { margin-top:0; color:var(--heading); }
.post { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.5rem 1.75rem; margin:0 0 1.1rem; box-shadow:var(--shadow); transition:box-shadow .15s, transform .15s; }
.post:hover { box-shadow:var(--shadow-hover); transform:translateY(-1px); }
.post h2 { margin:0 0 .2rem; font-size:1.4rem; color:var(--heading); }
.post time { color:var(--muted); font-size:.9rem; display:block; margin-bottom:.6rem; }
.blog img, .page img, .blog video, .page video { max-width:100%; height:auto; border-radius:10px; }
.blog table { border-collapse:collapse; } .blog th, .blog td { border:1px solid var(--line); padding:.4rem .6rem; }
.loginbox { max-width:380px; margin:2rem auto; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.6rem 1.8rem; box-shadow:var(--shadow); }
.loginbox h1 { font-size:1.5rem; }
.loginbox label { display:block; font-weight:600; margin:.7rem 0 .25rem; }
.loginbox input { width:100%; padding:.6rem .8rem; font:inherit; border:1px solid var(--line); border-radius:10px; background:var(--input-bg); color:var(--text); }
.loginbox input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--ring); }
.loginbox .go { margin-top:1rem; background:var(--primary); color:#fff; border:0; border-radius:10px; padding:.65rem 1.5rem; font:inherit; font-weight:600; cursor:pointer; transition:background .15s; }
.loginbox .go:hover { background:var(--primary-hover); }
.err { color:var(--err-text); min-height:1.3em; }

/* Tags */
.tagbar { display:flex; flex-wrap:wrap; gap:.4rem; margin:.4rem 0 1.2rem; }
.tags { display:flex; flex-wrap:wrap; gap:.3rem; margin:0 0 .7rem; }
.tag { font:inherit; font-size:.85rem; padding:.15rem .75rem; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--link); cursor:pointer; transition:background .12s; }
.tag small { margin-left:.4rem; color:var(--muted); }
.tag:hover { background:var(--hover); }
.tag.on { background:var(--primary); border-color:var(--primary); color:#fff; }
.tag.on small { color:#fff; opacity:.85; }

/* Blog-Archiv: Beiträge links, Menü nach Jahr und Monat am Rand (auf schmalen Bildschirmen darüber) */
.blog-cols { display:grid; grid-template-columns:minmax(0, 1fr) 15rem; gap:1.5rem; align-items:start; }
.archive { position:sticky; top:1rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1rem 1.1rem; box-shadow:var(--shadow); }
.archive h2 { margin:0 0 .5rem; font-size:1.05rem; color:var(--heading); }
.arch-item { display:flex; justify-content:space-between; gap:.5rem; width:100%; font:inherit; font-size:.92rem; text-align:left; padding:.25rem .5rem; border:0; border-radius:8px; background:none; color:var(--link); cursor:pointer; }
.arch-item:hover { background:var(--hover); }
.arch-item.on { background:var(--primary); color:#fff; }
.arch-item small, .arch-year summary small { color:var(--muted); }
.arch-item.on small { color:#fff; opacity:.85; }
.arch-year { margin-top:.35rem; }
.arch-year summary { display:flex; justify-content:space-between; gap:.5rem; cursor:pointer; font-weight:650; padding:.25rem .5rem; border-radius:8px; }
.arch-year summary:hover { background:var(--hover); }
.arch-months { display:flex; flex-direction:column; padding-left:.6rem; }
@media (max-width:800px) { .blog-cols { grid-template-columns:minmax(0, 1fr); } .archive { position:static; order:-1; } }

/* ---------- Kalender ---------- */
.cal { margin:1rem 0; }
.cal-bar { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; margin-bottom:.7rem; }
.cal-bar button { font:inherit; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--text); padding:.35rem .8rem; cursor:pointer; transition:background .12s; }
.cal-bar button:hover { background:var(--hover); }
.cal-bar button.on { background:var(--primary); color:#fff; border-color:var(--primary); }
.cal-bar .cal-nav { font-size:1.2rem; padding:.1rem .75rem; }
.cal-title { min-width:9rem; text-align:center; font-size:1.1rem; color:var(--heading); }
.cal-spacer { flex:1; }
.cal-legend { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:.5rem; font-size:.9rem; }
.cal-legend i { display:inline-block; width:.8rem; height:.8rem; border-radius:50%; margin-right:.35rem; vertical-align:-1px; }
.cal-grid { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); border-radius:12px; overflow:hidden; }
.cal-dow { background:var(--surface-2); color:var(--heading); font-weight:650; text-align:center; padding:.45rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.cal-cell { min-height:6.2rem; padding:.25rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; }
.cal-cell.other { background:var(--surface-3); color:var(--muted); }
.cal-cell.today .cal-num { background:var(--accent); color:#1b1200; font-weight:700; border-radius:50%; }
.cal-num { display:inline-block; min-width:1.6rem; padding:.05rem 0; text-align:center; font-size:.85rem; }
.cal-chip { display:block; width:100%; text-align:left; margin-top:2px; padding:2px 6px; font:inherit; font-size:.78rem; border:0; border-left:3px solid var(--blue); border-radius:5px; background:var(--chip-bg); color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer; transition:filter .12s; }
.cal-chip:hover { filter:brightness(.95); }
.cal-chip small { color:var(--muted-2); }
.cal-more { display:block; margin-top:2px; padding:0 4px; font:inherit; font-size:.75rem; color:var(--link); background:none; border:0; cursor:pointer; text-decoration:underline; }
.cal-list section { margin-bottom:.8rem; }
.cal-list h4 { margin:.9rem 0 .3rem; }
.cal-event { display:block; width:100%; text-align:left; font:inherit; border:0; border-left:4px solid var(--blue); border-radius:8px; background:var(--event-bg); color:var(--text); padding:.5rem .8rem; margin:.3rem 0; cursor:pointer; transition:background .12s; }
.cal-event:hover { background:var(--event-hover); }
.cal-when { margin-left:.7rem; color:var(--muted-2); }
.cal-error { color:var(--err-text); } .cal-empty { color:var(--muted); }
.ov-backdrop { position:fixed; inset:0; background:rgba(10, 30, 50, .55); backdrop-filter:blur(2px); display:flex; align-items:center; justify-content:center; padding:1rem; z-index:1000; }
.ov-modal { position:relative; background:var(--surface); color:var(--text); max-width:480px; width:100%; max-height:85vh; overflow:auto; padding:1.5rem 1.7rem 1.6rem; border-radius:var(--radius-lg); border-top:5px solid var(--primary); box-shadow:0 18px 50px rgba(0, 0, 0, .4); }
.ov-modal h3 { margin:0 2rem .9rem 0; color:var(--heading); font-size:1.25rem; overflow-wrap:anywhere; }
.ov-close { position:absolute; top:.5rem; right:.7rem; font-size:1.7rem; line-height:1; background:none; border:0; cursor:pointer; color:var(--muted-2); padding:.1rem .45rem; border-radius:8px; }
.ov-close:hover { color:var(--text); background:var(--hover); }
.cal-facts { margin:0; display:grid; grid-template-columns:auto 1fr; gap:.5rem 1rem; }
.cal-facts dt { font-weight:650; color:var(--muted-2); } .cal-facts dd { margin:0; overflow-wrap:anywhere; }
.cal-dayrows { min-width:min(100%, 320px); }

/* ---------- Ticket-Formular und Anmeldung ---------- */
.tf { max-width:720px; }
.tf h1, .tf h2 { margin-top:0; color:var(--heading); }
.tf-tabs { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.tf-tabs button { font:inherit; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--text); padding:.45rem 1.1rem; cursor:pointer; transition:background .12s; }
.tf-tabs button:hover { background:var(--hover); }
.tf-tabs button.on { background:var(--primary); border-color:var(--primary); color:#fff; }
.tf-field { margin-bottom:1rem; }
.tf label { display:block; font-weight:600; margin-bottom:.3rem; }
.tf input:not([type=file]):not([type=hidden]), .tf select, .tf textarea { width:100%; padding:.6rem .8rem; font:inherit; border:1px solid var(--line); background:var(--input-bg); color:var(--text); border-radius:10px; transition:border-color .12s, box-shadow .12s; }
.tf input:focus, .tf select:focus, .tf textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--ring); }
.tf .invalid { border-color:var(--err-text) !important; }
.tf fieldset { border:1px solid var(--line); border-radius:10px; padding:.8rem 1rem; margin:1.1rem 0; }
.tf fieldset input[type=file] { display:block; margin:.35rem 0; }
.tf .hp { position:absolute; left:-9999px; }
.tf-send { background:var(--primary); color:#fff; border:0; border-radius:10px; padding:.75rem 1.8rem; font:inherit; font-weight:600; cursor:pointer; box-shadow:0 2px 6px rgba(11, 98, 168, .3); transition:background .15s, transform .12s; }
.tf-send:hover:not(:disabled) { background:var(--primary-hover); transform:translateY(-1px); }
.tf-send:disabled { opacity:.6; cursor:wait; }
.tf-msg { min-height:1.4em; margin:.4rem 0; }
.tf-err { color:var(--err-text); } .tf-ok { color:var(--ok-text); font-weight:700; }
.tf-embed { margin:1rem 0; }
.loginform { max-width:360px; }
.loginform input { margin-bottom:.4rem; }
svg.bigicon { width:1.5rem; height:1.5rem; margin-right:.5rem; vertical-align:-3px; }

/* ---------- Schmale Bildschirme ---------- */
@media (max-width:800px) {
  .top { position:static; flex-wrap:wrap; gap:.6rem .8rem; padding:.7rem 1rem; }
  .brand { flex:1 1 auto; }
  .title { font-size:1.25rem; }
  #search { order:5; flex:1 1 100%; width:100%; }
  .hero::before, .hero::after { display:none; }
  .layout { display:block; width:auto; }
  .nav { display:none; width:auto; padding:1rem 1rem 0; }
  .nav.open, body.nav-collapsed .nav.open { display:block; }
  .content, .page { margin:.75rem; padding:1.25rem; }
  .content.home { padding:0; }
  .hero { padding:1.6rem 1.25rem 1.8rem; }
  .content .hero h1 { font-size:1.6rem; }
  .homebody { padding:1.2rem 1.25rem 1.6rem; }
  .blog { width:auto; margin:.75rem; }
  .whoami { display:none; }
  .claim { display:none; }
}
@media (max-width:700px) { .cal-cell { min-height:4rem; } .cal-chip small { display:none; } }

/* ---------- Telefonliste ---------- */
.pb-bar { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin:0 0 1rem; }
.pb-search { flex:1 1 280px; max-width:520px; padding:.7rem 1rem; border:1px solid var(--line); border-radius:999px; font:inherit; background:var(--input-bg); color:var(--text); }
.pb-search:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--ring); }
.pb-count { color:var(--muted); font-size:.92rem; }
.pb-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:12px; }
.content .pb-table { width:100%; margin:0; border:0; border-collapse:collapse; font-size:.95rem; }
.pb-table th { padding:0; background:var(--surface-2); border-bottom:1px solid var(--line); text-align:left; vertical-align:bottom; }
.pb-sort { display:block; width:100%; text-align:left; padding:.65rem .75rem; border:0; background:none; color:var(--heading); font:inherit; font-weight:650; cursor:pointer; }
.pb-sort:hover { background:var(--hover); }
.pb-table th[aria-sort="ascending"] .pb-sort::after { content:"\a0▲"; font-size:.7em; }
.pb-table th[aria-sort="descending"] .pb-sort::after { content:"\a0▼"; font-size:.7em; }
.content .pb-table td { padding:.55rem .75rem; border:0; border-bottom:1px solid var(--line); white-space:normal; overflow-wrap:anywhere; vertical-align:top; }
.pb-table tbody tr:last-child td { border-bottom:0; }
.pb-table tbody tr:hover td { background:var(--hover); }
.pb-table td a { color:var(--link); text-decoration:none; }
.pb-table td a:hover { text-decoration:underline; }
.pb-table td:nth-child(3), .pb-table td:nth-child(4) { white-space:nowrap; }
.pb-empty { text-align:center; color:var(--muted); padding:1.5rem !important; }
.pb-note { color:var(--muted); font-size:.85rem; margin:.6rem 0 0; }
.pb-err { color:var(--err-text); }
@media (max-width:700px) {
  .pb-scroll { border:0; overflow:visible; }
  .pb-table thead { display:none; }
  .pb-table, .pb-table tbody, .pb-table tr, .pb-table td { display:block; width:100%; }
  .pb-table tr { border:1px solid var(--line); border-radius:12px; margin:0 0 .7rem; padding:.4rem .2rem; background:var(--surface); }
  .content .pb-table td { display:flex; gap:.8rem; padding:.3rem .8rem; border:0; white-space:normal; }
  .pb-table td:empty { display:none; }
  .pb-table td::before { content:attr(data-label); flex:0 0 7.5rem; color:var(--muted); font-size:.85rem; }
}
.login-hint { margin:0 0 .9rem; color:var(--text); }
.login-intro { margin:0 0 .5rem; color:var(--muted-2); }
.ov-modal .loginform { max-width:none; }

/* App installieren (Fußzeile) */
footer .linkbtn { margin-left:1rem; background:none; border:0; padding:0; color:var(--link); font:inherit; cursor:pointer; text-decoration:underline; }
footer .linkbtn[hidden] { display:none; }
.offline { margin-top:3rem; text-align:center; }
.tf-send.retry { display:inline-block; text-decoration:none; }
.top .logo { width:44px; height:44px; flex:none; }
@media (max-width:800px) { .top .logo { width:36px; height:36px; } }

/* Eingebettete externe Seiten */
.embed { margin:1rem 0; }
.embed-frame { display:block; width:100%; height:calc(100vh - 280px); min-height:480px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.embed-note { margin:.5rem 0 0; font-size:.88rem; color:var(--muted); }
.embed-placeholder { padding:.7rem 1rem; border:1px dashed var(--line); color:var(--muted); border-radius:10px; overflow-wrap:anywhere; }

/* Wissensdatenbank */
.wk-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:.8rem; }
.wk-card { display:flex; flex-direction:column; gap:.3rem; text-align:left; font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:12px; padding:.8rem 1rem; cursor:pointer; transition:background .12s, box-shadow .12s; }
.wk-card:hover { background:var(--hover); box-shadow:var(--shadow); }
.wk-card strong { color:var(--heading); }
.wk-sum { color:var(--muted-2); font-size:.92rem; }
.wk-card small, .wk-meta { color:var(--muted); font-size:.85rem; }
.wk-back { font:inherit; background:none; border:0; color:var(--link); cursor:pointer; padding:0; margin-bottom:.6rem; }
.wk-back:hover { text-decoration:underline; }
.wk-tag { margin-left:.5rem; padding:.05rem .6rem; border:1px solid var(--line); border-radius:999px; }
.wk-h { margin-top:1.6rem; }
.wk-steps { list-style:none; margin:1rem 0; padding:0; counter-reset:none; }
.wk-steps > li { display:flex; gap:1rem; align-items:flex-start; margin:0 0 1rem; padding:1rem; background:var(--surface); border:1px solid var(--line); border-radius:12px; }
.wk-num { flex:none; width:2.2rem; height:2.2rem; border-radius:50%; background:var(--primary); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; }
.wk-step { flex:1; min-width:0; }
.wk-step > :first-child { margin-top:0; } .wk-step > :last-child { margin-bottom:0; }
.wk-step h3 { margin:.3rem 0 .5rem; color:var(--heading); }
.wk-step img, .wk img { max-width:100%; height:auto; border-radius:8px; }
@media print { .wk-back, .pb-bar, .tagbar { display:none; } .wk-steps > li { break-inside:avoid; } }

/* Terminbuchung */
.bk-desc { white-space:pre-line; }
.bk-legend, .bk-hint { color:var(--muted); font-size:.9rem; }
.bk-cal { min-width:0; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1rem; box-shadow:var(--shadow); }
.bk-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; }
.bk-bar strong { color:var(--heading); font-size:1.1rem; }
.bk-nav { font:inherit; font-size:1.2rem; padding:.1rem .8rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--text); cursor:pointer; }
.bk-nav:hover:not(:disabled) { background:var(--hover); } .bk-nav:disabled { opacity:.35; cursor:default; }
.bk-grid { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:.3rem; }
.bk-dow { text-align:center; font-weight:650; color:var(--muted-2); font-size:.85rem; padding:.2rem 0; }
.bk-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:3.4rem; font:inherit; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); padding:.2rem; }
.bk-cell small { font-size:.68rem; }
.bk-cell.empty { border:0; background:none; }
.bk-cell.off { background:none; border-color:transparent; color:var(--muted); opacity:.5; }
.bk-cell.free { border-color:var(--blue); cursor:pointer; transition:background .12s; } .bk-cell.free small { color:var(--link); }
.bk-cell.free:hover, .bk-cell.on { background:var(--primary); color:#fff; } .bk-cell.on small, .bk-cell.free:hover small { color:#fff; }
.bk-cell.full { background:var(--surface-3); color:var(--muted); text-decoration:line-through; cursor:not-allowed; }
.bk-cell.full small { text-decoration:none; }
.bk-pick { margin-top:1rem; } .bk-pick h3 { margin:0 0 .5rem; color:var(--heading); }
.bk-slots { display:flex; flex-wrap:wrap; gap:.4rem; }
.bk-slot { display:inline-flex; flex-direction:column; align-items:center; min-width:4rem; font:inherit; font-size:.92rem; padding:.3rem .7rem; border:1px solid var(--blue); border-radius:8px; background:var(--surface); color:var(--link); cursor:pointer; transition:background .12s; }
button.bk-slot:hover { background:var(--primary); color:#fff; }
.bk-slot.taken { border-color:var(--line); background:var(--surface-3); color:var(--muted); cursor:not-allowed; text-decoration:line-through; }
.bk-slot.taken small { font-size:.7rem; text-decoration:none; }
.bk-form .tf-row { margin:.7rem 0; } .bk-form label { display:block; font-weight:600; margin-bottom:.2rem; }
.bk-form input:not([type=checkbox]), .bk-form select, .bk-form textarea { width:100%; padding:.5rem .65rem; font:inherit; border:1px solid var(--line); border-radius:8px; background:var(--input-bg); color:var(--text); }
.bk-form .tf-check label { display:flex; gap:.5rem; align-items:center; font-weight:normal; }
footer .build { margin-left:1rem; color:var(--muted-2); font-size:.8rem; }
footer .build:empty { display:none; }

/* Schwarzes Brett */
.bb-add { margin-left:auto; padding:.55rem 1.2rem; }
.bb-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:1rem; margin-top:.5rem; }
.bb-note { background:var(--note-bg, #fff6bf); color:#2b2a1d; border-radius:4px 4px 10px 4px; padding:.9rem 1rem; box-shadow:0 3px 8px rgba(0, 0, 0, .18); border-top:6px solid rgba(0, 0, 0, .12); }
.bb-note.pinned { background:var(--note-pinned, #ffe39a); }
.bb-note h3 { margin:.2rem 0 .4rem; font-size:1.05rem; color:#2b2a1d; }
.bb-cat { font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#6b5a14; display:flex; justify-content:space-between; }
.bb-pin { font-weight:600; text-transform:none; letter-spacing:0; }
.bb-body { white-space:pre-wrap; overflow-wrap:anywhere; margin:.3rem 0 .6rem; }
.bb-meta { font-size:.82rem; color:#5a5638; margin:0; } .bb-meta a { color:#0a4d91; }
.bb-code { font:700 1.6rem ui-monospace, Consolas, monospace; letter-spacing:.08em; text-align:center; padding:.6rem; background:var(--surface-3); border:1px dashed var(--line); border-radius:8px; user-select:all; }
.bb-form .tf-row { margin:.7rem 0; } .bb-form label { display:block; font-weight:600; margin-bottom:.2rem; }
.bb-form input:not([type=checkbox]), .bb-form select, .bb-form textarea { width:100%; padding:.5rem .65rem; font:inherit; border:1px solid var(--line); border-radius:8px; background:var(--input-bg); color:var(--text); }
.bb-form .hp { position:absolute; left:-9999px; }
.bb-thumb { display:block; width:100%; padding:0; margin:.2rem 0 .5rem; border:0; border-radius:6px; overflow:hidden; background:rgba(0, 0, 0, .06); cursor:zoom-in; }
.bb-thumb img { display:block; width:100%; height:140px; object-fit:cover; transition:transform .15s; }
.bb-thumb:hover img { transform:scale(1.04); }
.bb-prev { margin:.4rem 0; display:flex; align-items:center; gap:.8rem; }
.bb-previmg { max-height:90px; max-width:160px; border-radius:6px; border:1px solid var(--line); }
/* Bild-Fenster: passt sich dem Bild an und wird so groß wie der Bildschirm es erlaubt (kleine Bilder werden nicht aufgeblasen) */
.ov-modal.ov-image { width:auto; max-width:96vw; max-height:94vh; padding:1.2rem 1.4rem 1.4rem; }
.bb-big { display:block; max-width:calc(96vw - 2.8rem - 2px); max-height:calc(94vh - 6.5rem); width:auto; height:auto; margin:0 auto; border-radius:8px; }

/* Speiseplan */
.ml-info { color:var(--muted-2); margin:.2rem 0; } .ml-note { background:var(--surface-3); border-left:4px solid var(--blue); border-radius:6px; padding:.5rem .8rem; }
.ml-bar { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; margin:.8rem 0; }
.ml-bar button { font:inherit; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--text); padding:.35rem .8rem; cursor:pointer; transition:background .12s; }
.ml-bar button:hover { background:var(--hover); } .ml-bar button.on { background:var(--primary); color:#fff; border-color:var(--primary); }
.ml-bar .ml-nav { font-size:1.2rem; padding:.1rem .75rem; } .ml-title { min-width:12rem; text-align:center; color:var(--heading); font-size:1.1rem; }
.ml-week { display:grid; grid-template-columns:repeat(var(--cols, 5), minmax(0, 1fr)); gap:.6rem; }
.ml-col { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.6rem .7rem; min-width:0; }
.ml-col.today { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.ml-col h3 { margin:0 0 .4rem; font-size:1rem; color:var(--heading); cursor:pointer; display:flex; justify-content:space-between; align-items:baseline; } .ml-col h3 small { color:var(--muted); font-weight:normal; }
.ml-cat h4 { margin:.5rem 0 .15rem; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.ml-cat ul { list-style:none; margin:0; padding:0; } .ml-item { margin:.15rem 0; overflow-wrap:break-word; hyphens:auto; display:flex; align-items:baseline; gap:.6rem; }
.ml-text { flex:1 1 auto; min-width:0; }
.ml-price { margin-left:auto; font-weight:600; white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums; } .ml-all { margin-left:.2rem; color:var(--muted-2); cursor:help; }
.ml-diet { margin-left:.4rem; font-size:.7rem; padding:.05rem .4rem; border-radius:999px; background:#2e8b3d; color:#fff; } .ml-diet.vegan { background:#1b6b2b; }
.ml-closed { color:var(--err-text); font-weight:600; } .ml-none { color:var(--muted); font-size:.9rem; }
.ml-dayview { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.9rem 1.1rem; }
.ml-dayview .ml-cat h4 { font-size:.8rem; } .ml-dayview .ml-item { font-size:1.08rem; margin:.3rem 0; }
.ml-listview { display:flex; flex-direction:column; gap:.6rem; }
.ml-day { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.6rem 1rem .7rem; }
.ml-day.today { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.ml-day h3 { margin:0 0 .3rem; font-size:1.05rem; color:var(--heading); cursor:pointer; }
.ml-row { display:grid; grid-template-columns:9rem minmax(0, 1fr); gap:.2rem 1rem; align-items:baseline; padding:.25rem 0; border-top:1px solid var(--line); }
.ml-row h4 { margin:0; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.ml-row ul { list-style:none; margin:0; padding:0; } .ml-row .ml-item { margin:.1rem 0; }
@media (max-width:600px) { .ml-row { grid-template-columns:1fr; } }
.ml-legend { color:var(--muted); font-size:.82rem; margin-top:1rem; }
@media (max-width:900px) { .ml-week { grid-template-columns:1fr; } .ml-title { min-width:0; } }
.ml-printhead, .ml-printfoot { display:none; }
@media print {
  .ml-hide-print { display:none !important; }
  /* nur der Speiseplan: helle Farben, keine Kästen und Schatten um den Seitenrahmen */
  body.ml-printing { --bg:#fff; --surface:#fff; --surface-3:#fff; --text:#000; --heading:#000; --muted:#444; --muted-2:#222; --line:#999; background:#fff; color:#000; }
  body.ml-printing .layout { display:block; }
  body.ml-printing main { margin:0; padding:0; border:0; box-shadow:none; background:#fff; max-width:none; }
  body.ml-printing .tf-embed { margin:0; }
  body.ml-printing .ml-bar, body.ml-printing .tagbar, body.ml-printing .ml-screenhead, body.ml-printing .ml-info, body.ml-printing .ml-note { display:none; }
  body.ml-printing .ml-printhead { display:block; margin-bottom:.6rem; border-bottom:2px solid #000; padding-bottom:.4rem; }
  body.ml-printing .ml-printhead h1 { margin:0; font-size:1.6rem; color:#000; } body.ml-printing .ml-printhead h1::after { display:none; }
  body.ml-printing .ml-printhead p { margin:.15rem 0; }
  body.ml-printing .ml-printfoot { display:block; color:#444; font-size:.75rem; margin-top:.8rem; }
  body.ml-printing .ml-week { grid-template-columns:repeat(var(--cols, 5), minmax(0, 1fr)); gap:.4rem; }
  body.ml-printing .ml-day { border:1px solid #666; border-radius:0; box-shadow:none; background:#fff; break-inside:avoid; margin:0; padding:.3rem .6rem; }
  body.ml-printing .ml-day.today { border:1px solid #666; box-shadow:none; }
  body.ml-printing .ml-listview { gap:.35rem; }
  body.ml-printing .ml-col, body.ml-printing .ml-dayview { border:1px solid #666; border-radius:0; box-shadow:none; background:#fff; break-inside:avoid; }
  body.ml-printing .ml-col.today { border:1px solid #666; box-shadow:none; }
  body.ml-printing .ml-dayview { max-width:none; }
  body.ml-printing .ml-item { font-size:11pt; } body.ml-printing .ml-dayview .ml-item { font-size:14pt; }
  body.ml-printing .ml-closed { color:#000; }
  body.ml-printing .ml-diet { background:none; color:#000; border:1px solid #000; }
  body.ml-printing .ml-legend { font-size:9pt; color:#222; }
}
.ml-pending { color:var(--text); background:var(--surface-3); border-left:3px solid var(--accent); border-radius:6px; padding:.4rem .6rem; font-size:.92rem; }

/* Störungsmeldungen */
.inc { border-left:5px solid var(--blue); background:var(--surface); border-radius:8px; padding:.55rem .9rem; margin:.4rem 0; }
.inc-sev { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-right:.6rem; }
.inc-info { border-left-color:var(--blue); } .inc-warn { border-left-color:var(--accent); background:rgba(255, 179, 0, .12); } .inc-critical { border-left-color:#d32f2f; background:rgba(211, 47, 47, .13); }
.inc.done { opacity:.7; border-left-color:#2e8b3d; background:var(--surface); }
.inc-head { display:flex; align-items:baseline; flex-wrap:wrap; } .inc-text { margin:.3rem 0; white-space:pre-line; } .inc small { color:var(--muted); } .inc-short { color:var(--text); }
.inc-banner { margin:0 0 1rem; } .inc-banner .inc { margin:.25rem 0; } .inc-all { font-size:.88rem; }
.inc-ok { color:var(--ok-text, #2e8b3d); font-weight:600; } .inc-h { margin-top:1.5rem; }
/* Umfragen */
.po { background:var(--surface-3); border:1px solid var(--blue); border-left:6px solid var(--blue); border-radius:12px; padding:1rem 1.3rem 1.1rem; margin:0 0 1.3rem; box-shadow:var(--shadow); }
.po h3 { margin:0 0 .4rem; color:var(--heading); font-size:1.25rem; } .po-desc { white-space:pre-line; margin:.2rem 0 .6rem; }
.po-opts { display:flex; flex-direction:column; gap:.4rem; margin:.5rem 0; }
.po-opt { display:grid; grid-template-columns:auto 1fr auto; gap:.2rem .6rem; align-items:center; padding:.35rem .5rem; border:1px solid var(--line); background:var(--surface); border-radius:8px; cursor:pointer; position:relative; }
.po-opt input { margin:0; } .po-opt:not(:has(input)) { grid-template-columns:1fr auto; }
.po-opt.mine { border-color:var(--blue); background:var(--hover); }
.po-bar { grid-column:1 / -1; height:.4rem; background:var(--surface-3); border-radius:99px; overflow:hidden; } .po-bar i { display:block; height:100%; background:var(--blue); border-radius:99px; }
.po-count { color:var(--muted-2); font-size:.88rem; } .po-meta { color:var(--muted); font-size:.82rem; margin:.5rem 0 0; } .po-closed { color:var(--muted-2); font-style:italic; }
/* Wochenansicht: schmale Spalten. Gericht über die ganze Breite, Allergene, Etikett und Preis in einer Zeile darunter, damit Wörter nicht mitten im Wort brechen */
.ml-week .ml-item { flex-wrap:wrap; gap:.1rem .5rem; margin:.3rem 0 .5rem; }
.ml-week .ml-text { flex:1 1 100%; }
.ml-all, .ml-diet, .ml-price { white-space:nowrap; }
.ml-week .ml-price { margin-left:auto; }

/* Störungsleiste ganz oben auf jeder Seite, zentriert */
.inc-top { position:sticky; top:0; z-index:60; text-align:center; padding:.55rem 5%; font-size:.95rem; line-height:1.4; background:var(--blue); color:#fff; }
.inc-top[hidden] { display:none; }
.inc-top-info { background:#1a6fb5; color:#fff; } .inc-top-warn { background:#ffb300; color:#1b1200; } .inc-top-critical { background:#c62828; color:#fff; }
.inc-top .inc-line { margin:.1rem 0; } .inc-top .inc-sev { margin-right:.5rem; padding:.05rem .45rem; border-radius:99px; background:rgba(0, 0, 0, .22); color:inherit; } .inc-top-warn .inc-sev { background:rgba(0, 0, 0, .15); }
.inc-top small { opacity:.85; } .inc-top .inc-all { color:inherit; font-weight:600; margin-top:.15rem; display:inline-block; }
@media print { .inc-top { display:none; } }

/* Ehrenamt */
.vol { max-width:none; } .vol h2 { margin:1.6rem 0 .6rem; font-size:1.15rem; color:var(--heading); }
.vol-card { display:flex; gap:1rem; align-items:flex-start; background:var(--surface); border:1px solid var(--muted); border-left:6px solid var(--green); border-radius:12px; padding:1rem 1.2rem; margin:0 0 1.1rem; box-shadow:var(--shadow); }
.vol-card.is-full { border-left-color:var(--muted); } .vol-card.is-mine { background:var(--hover); }
.vol-body { flex:1; min-width:0; }
.vol-date { flex:none; width:3.6rem; text-align:center; border-radius:10px; overflow:hidden; border:1px solid var(--muted); background:var(--surface); line-height:1.1; }
.vol-date span { display:block; background:var(--nav-bg); color:var(--on-nav); font-size:.8rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:.2rem 0; order:-1; }
.vol-date { display:flex; flex-direction:column; } .vol-date b { font-size:1.6rem; color:var(--heading); padding:.3rem 0 .35rem; }
.vol-card h3 { margin:0 0 .35rem; font-size:1.2rem; color:var(--heading); display:flex; gap:.5rem .6rem; align-items:center; flex-wrap:wrap; }
.vol-facts { display:flex; flex-wrap:wrap; gap:.35rem .5rem; margin:.2rem 0 .5rem; padding:0; } .vol-facts span { background:var(--chip-bg); color:var(--text); border-radius:99px; padding:.15rem .7rem; font-size:.9rem; } .vol-facts i { font-style:normal; margin-right:.35rem; }
.vol-places { margin:.6rem 0 .2rem; color:var(--muted-2); font-size:.9rem; } .vol-places span { display:block; margin-top:.25rem; }
.vol-bar { height:.55rem; border-radius:99px; background:var(--line); overflow:hidden; } .vol-bar i { display:block; height:100%; background:var(--green); border-radius:99px; }
.vol-card.is-full .vol-bar i { background:var(--muted); }
.vol-meta, .vol-muted { color:var(--muted-2); font-size:.9rem; margin:.15rem 0; } .vol-desc { white-space:pre-line; margin:.5rem 0; }
.vol-chip { font-size:.78rem; font-weight:600; border:1px solid var(--muted); border-radius:99px; padding:.1rem .65rem; color:var(--muted-2); background:var(--surface-3); }
.vol-chip.ok { color:var(--ok-text); border-color:var(--ok-text); }
@media (max-width:520px) { .vol-card { flex-direction:column; gap:.6rem; } }
.vol-actions { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin-top:.7rem; } .vol-actions input { flex:1 1 14rem; min-width:0; }
.vol-btn { border:1px solid var(--muted); background:var(--surface); color:inherit; border-radius:8px; padding:.4rem .8rem; cursor:pointer; font:inherit; } .vol-btn.danger { color:var(--err-text); }
.vol-form { background:var(--surface); border:1px solid var(--muted); border-radius:12px; padding:.9rem 1.1rem; margin:1rem 0; display:flex; flex-direction:column; gap:.6rem; }
.vol-field { display:flex; flex-direction:column; gap:.2rem; flex:1; font-size:.9rem; } .vol-field input, .vol-field select, .vol-field textarea { font:inherit; padding:.4rem .5rem; }
.vol-row { display:flex; gap:.6rem; flex-wrap:wrap; } .vol-row > * { flex:1 1 10rem; }
.vol-list { margin:.3rem 0; padding-left:1.2rem; }

/* Dokumentenablage */
.dx { max-width:none; } .dx-lead { color:var(--muted); margin:.2rem 0 1rem; } .dx-muted { color:var(--muted); font-size:.92rem; }
.dx-folders { display:flex; flex-direction:column; gap:.5rem; margin:.4rem 0 1.2rem; }
.dx-libs { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:.8rem; margin:.4rem 0 1.2rem; }
.dx-lib, .dx-folder { display:flex; flex-direction:column; gap:.25rem; text-align:left; font:inherit; color:inherit; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.9rem 1.1rem; cursor:pointer; box-shadow:var(--shadow); }
.dx-lib:hover, .dx-folder:hover { border-color:var(--blue); box-shadow:var(--shadow-hover); } .dx-lib strong { color:var(--heading); font-size:1.1rem; } .dx-lib span { color:var(--muted); font-size:.9rem; } .dx-lib small, .dx-folder small { color:var(--muted); }
.dx-lib.locked { opacity:.8; } .dx-folder { flex-direction:row; align-items:center; gap:.6rem; padding:.65rem .9rem; flex-wrap:wrap; } .dx-folder strong { flex:1; color:var(--heading); overflow-wrap:anywhere; } .dx-fico { font-size:1.3rem; }
.dx-back { border:0; background:none; color:var(--link); font:inherit; cursor:pointer; padding:0; margin:0 0 .6rem; } .dx-back:hover { text-decoration:underline; }
.dx-crumbs { display:flex; flex-wrap:wrap; gap:.3rem; align-items:center; margin:.2rem 0 .8rem; color:var(--muted); } .dx-crumbs button { border:0; background:none; font:inherit; color:var(--link); cursor:pointer; padding:.1rem .2rem; } .dx-crumbs button:hover { text-decoration:underline; } .dx-crumbs button:last-child { color:var(--heading); font-weight:600; }
.dx .pb-bar select { padding:.55rem .7rem; font:inherit; border:1px solid var(--line); border-radius:8px; background:var(--input-bg); color:var(--text); }
.dx-file { display:flex; gap:.9rem; align-items:flex-start; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.7rem 1rem; margin:0 0 .6rem; }
.dx-ext { flex:0 0 auto; min-width:3rem; text-align:center; font:700 .72rem ui-monospace, Consolas, monospace; letter-spacing:.04em; padding:.5rem .3rem; border-radius:8px; background:var(--surface-2); color:var(--muted-2); }
.dx-ext-pdf { background:#fde8e8; color:#a31515; } .dx-ext-doc, .dx-ext-docx, .dx-ext-dot, .dx-ext-dotx, .dx-ext-odt, .dx-ext-ott, .dx-ext-rtf { background:#e3effc; color:#0b4f94; }
.dx-ext-xls, .dx-ext-xlsx, .dx-ext-xltx, .dx-ext-ods, .dx-ext-ots, .dx-ext-csv { background:#e4f4e6; color:#1f6b27; } .dx-ext-ppt, .dx-ext-pptx, .dx-ext-odp { background:#fdeedb; color:#9a5300; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .dx-ext-pdf { background:#4a1d1d; color:#ffb3b3; } :root:not([data-theme="light"]) .dx-ext-doc, :root:not([data-theme="light"]) .dx-ext-docx, :root:not([data-theme="light"]) .dx-ext-dot, :root:not([data-theme="light"]) .dx-ext-dotx, :root:not([data-theme="light"]) .dx-ext-odt, :root:not([data-theme="light"]) .dx-ext-ott, :root:not([data-theme="light"]) .dx-ext-rtf { background:#173352; color:#a9d2ff; } :root:not([data-theme="light"]) .dx-ext-xls, :root:not([data-theme="light"]) .dx-ext-xlsx, :root:not([data-theme="light"]) .dx-ext-xltx, :root:not([data-theme="light"]) .dx-ext-ods, :root:not([data-theme="light"]) .dx-ext-ots, :root:not([data-theme="light"]) .dx-ext-csv { background:#1b3d20; color:#a9e6b0; } :root:not([data-theme="light"]) .dx-ext-ppt, :root:not([data-theme="light"]) .dx-ext-pptx, :root:not([data-theme="light"]) .dx-ext-odp { background:#4a3010; color:#ffd199; } }
:root[data-theme="dark"] .dx-ext-pdf { background:#4a1d1d; color:#ffb3b3; } :root[data-theme="dark"] .dx-ext-doc, :root[data-theme="dark"] .dx-ext-docx, :root[data-theme="dark"] .dx-ext-dot, :root[data-theme="dark"] .dx-ext-dotx, :root[data-theme="dark"] .dx-ext-odt, :root[data-theme="dark"] .dx-ext-ott, :root[data-theme="dark"] .dx-ext-rtf { background:#173352; color:#a9d2ff; } :root[data-theme="dark"] .dx-ext-xls, :root[data-theme="dark"] .dx-ext-xlsx, :root[data-theme="dark"] .dx-ext-xltx, :root[data-theme="dark"] .dx-ext-ods, :root[data-theme="dark"] .dx-ext-ots, :root[data-theme="dark"] .dx-ext-csv { background:#1b3d20; color:#a9e6b0; } :root[data-theme="dark"] .dx-ext-ppt, :root[data-theme="dark"] .dx-ext-pptx, :root[data-theme="dark"] .dx-ext-odp { background:#4a3010; color:#ffd199; }
.dx-info { flex:1; min-width:0; } .dx-title { font-weight:600; color:var(--heading); overflow-wrap:anywhere; } .dx-desc { margin:.2rem 0; white-space:pre-line; } .dx-meta { margin:.1rem 0; font-size:.82rem; color:var(--muted); overflow-wrap:anywhere; }
.dx-new { margin-left:.5rem; font-size:.72rem; font-weight:700; padding:.05rem .5rem; border-radius:99px; background:var(--accent); color:#1b1200; }
.dx-acts, .dx-actions { display:flex; gap:.4rem; flex-wrap:wrap; align-items:center; } .dx-acts { flex:0 0 auto; margin:0 0 .6rem; } .dx-file .dx-acts { margin:0; }
.dx-btn { border:1px solid var(--line); background:var(--btn-bg); color:inherit; border-radius:8px; padding:.35rem .8rem; cursor:pointer; font:inherit; font-size:.9rem; text-decoration:none; white-space:nowrap; } .dx-btn:hover { border-color:var(--blue); } .dx-btn.danger { color:var(--err-text); }
.dx-form { display:flex; flex-direction:column; gap:.7rem; min-width:min(28rem, 80vw); } .dx-form label { display:flex; flex-direction:column; gap:.2rem; font-weight:600; font-size:.92rem; } .dx-form input:not([type=file]), .dx-form select, .dx-form textarea { font:inherit; font-weight:400; padding:.45rem .6rem; border:1px solid var(--line); border-radius:8px; background:var(--input-bg); color:var(--text); }
.dx-form .pb-err { white-space:pre-line; margin:0; } .dx-note { margin:.2rem 0; min-height:0; } .dx-note.ok { color:var(--ok-text); }
@media (max-width:600px) { .dx-file { flex-wrap:wrap; } .dx-file .dx-acts { width:100%; } }
@media print { .dx-acts, .dx-back, .pb-bar { display:none; } }

/* Willkommen im Team (Onboarding) */
.ob { max-width:52rem; } .ob h2 { color:var(--heading); margin:1.6rem 0 .5rem; } .ob-welcome { white-space:pre-line; background:var(--surface-3); border-left:4px solid var(--accent); border-radius:8px; padding:.7rem 1rem; }
.ob-meta { color:var(--muted); font-size:.86rem; margin:.15rem 0; } .ob-count { font-weight:600; margin:.4rem 0; } .ob-done { background:var(--surface-3); border:1px solid var(--ok-text); border-radius:10px; padding:.7rem 1rem; font-weight:600; color:var(--ok-text); }
.ob-bar { height:10px; border-radius:99px; background:var(--surface-2); overflow:hidden; margin:.4rem 0 .8rem; } .ob-bar i { display:block; height:100%; background:var(--green); border-radius:99px; transition:width .3s; }
.ob-phase { margin:1.3rem 0 .5rem; color:var(--heading); font-size:1.05rem; } .ob-phase small { color:var(--muted); font-weight:400; }
.ob-step { display:flex; gap:.8rem; align-items:flex-start; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.7rem 1rem; margin:0 0 .55rem; }
.ob-step.done { opacity:.8; background:var(--surface-3); } .ob-step.late { border-color:var(--err-text); }
.ob-state { flex:0 0 auto; width:1.7rem; height:1.7rem; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; border:2px solid var(--line); color:var(--muted); }
.ob-step.done .ob-state { background:var(--green); border-color:var(--green); color:#fff; } .ob-step.late .ob-state { border-color:var(--err-text); color:var(--err-text); }
.ob-main { flex:1; min-width:0; } .ob-text { margin:.25rem 0; white-space:pre-line; } .ob-acts { display:flex; gap:.4rem; flex-wrap:wrap; align-items:center; flex:0 0 auto; }
.ob-chip { display:inline-block; margin-left:.45rem; font-size:.72rem; padding:.05rem .55rem; border-radius:99px; border:1px solid var(--line); background:var(--surface-2); color:var(--muted-2); }
.ob-chip.late { background:var(--err-text); border-color:var(--err-text); color:#fff; } .ob-chip.today { background:var(--accent); border-color:var(--accent); color:#1b1200; }
.ob-person { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.6rem 1rem; margin:0 0 .8rem; } .ob-person summary { cursor:pointer; padding:.2rem 0; }
.ob-quiz fieldset { border:1px solid var(--line); border-radius:8px; padding:.5rem .8rem; margin:0; } .ob-quiz legend { font-weight:600; } .ob-opt { display:flex !important; flex-direction:row !important; gap:.5rem; align-items:center; font-weight:400 !important; padding:.15rem 0; } .ob .ok, .ob-quiz .ok { color:var(--ok-text); font-weight:600; }
.ob-home { display:block; text-decoration:none; color:inherit; background:var(--surface); border:1px solid var(--blue); border-left:6px solid var(--accent); border-radius:12px; padding:.8rem 1.1rem; margin:0 0 1.2rem; box-shadow:var(--shadow); } .ob-home:hover { box-shadow:var(--shadow-hover); }
.ob-home strong { display:block; color:var(--heading); font-size:1.1rem; } .ob-home small { color:var(--muted); }
@media (max-width:600px) { .ob-step { flex-wrap:wrap; } .ob-acts { width:100%; padding-left:2.5rem; } }

/* Globale Suche */
.search-form { display:flex; gap:.5rem; margin:0 0 1.2rem; max-width:40rem; } .search-form input { flex:1; padding:.6rem 1rem; border:1px solid var(--line); border-radius:999px; font:inherit; background:var(--surface); color:var(--text); }
.search-results h2 { margin:1.4rem 0 .5rem; font-size:1.1rem; color:var(--heading); } .search-results h2 small { color:var(--muted); font-weight:400; }
.search-list { list-style:none; margin:0; padding:0; display:grid; gap:.6rem; } .search-list li { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.6rem 1rem; }
.search-list strong a { color:var(--heading); text-decoration:none; font-size:1.02rem; } .search-list strong a:hover { text-decoration:underline; } .search-list .meta { margin-left:.6rem; color:var(--muted); } .search-list p { margin:.25rem 0 0; color:var(--text); }
.search-results mark { background:#ffe58a; color:#000; border-radius:3px; padding:0 .1em; }
.search-allp { margin:.2rem 0 .6rem; } .search-all { font-weight:600; }
.offline-logo { display:block; height:48px; width:auto; max-width:240px; object-fit:contain; margin:0 0 1rem; background:var(--hero); border-radius:12px; padding:.5rem .8rem; box-sizing:content-box; }

/* ---------- Notfall ---------- */
.emg { max-width:none; }
.emg h2 { margin:1.4rem 0 .5rem; color:var(--heading); }
.emg-intro { font-size:1.05rem; background:var(--quote-bg); border-left:4px solid var(--red); border-radius:8px; padding:.7rem 1rem; margin:0 0 1rem; }
.emg-hint { color:var(--muted-2); margin:.2rem 0 .6rem; }
.emg-here { font-size:1.08rem; margin:.2rem 0 .8rem; } .emg-here a { margin-left:.5rem; font-size:.9rem; }
.emg-nums { list-style:none; margin:0 0 1rem; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr)); gap:.6rem; }
.emg-call { display:flex; flex-direction:column; gap:.1rem; background:var(--red); color:#fff; text-decoration:none; border-radius:12px; padding:.7rem 1rem; min-height:3.2rem; justify-content:center; }
.emg-call.local { background:#b85c00; }   /* Nummern, die der Standort selbst ergänzt hat: orange; die allgemeinen Notrufnummern bleiben rot */
.emg-call strong { font-size:1.6rem; line-height:1.1; } .emg-call span { font-size:.95rem; } .emg-call:hover, .emg-call:focus-visible { filter:brightness(1.12); outline:3px solid var(--ring); }
.emg-nums small { display:block; color:var(--muted-2); margin:.15rem .2rem 0; }
.emg-sites { list-style:none; margin:.6rem 0 0; padding:0; display:grid; gap:.5rem; }
.emg-sites li { display:flex; align-items:stretch; background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.emg-sites a { flex:1; display:flex; flex-direction:column; padding:.7rem 1rem; color:var(--heading); text-decoration:none; font-size:1.05rem; } .emg-sites a:hover { background:var(--hover); }
.emg-sites small { color:var(--muted); font-size:.88rem; } .emg-sites .hint { padding:.7rem 1rem; color:var(--muted-2); }
.emg-star { border:0; border-left:1px solid var(--line); background:transparent; color:var(--accent); font-size:1.5rem; padding:0 1rem; cursor:pointer; } .emg-star:hover { background:var(--hover); }
.emg > input[type=search] { width:100%; box-sizing:border-box; margin:.4rem 0; padding:.6rem .8rem; font-size:1rem; }
.emg-sc { background:var(--surface); border:1px solid var(--line); border-radius:12px; margin:0 0 .5rem; }
.emg-sc summary { cursor:pointer; padding:.75rem 1rem; font-size:1.1rem; font-weight:600; color:var(--heading); } .emg-sc[open] summary { border-bottom:1px solid var(--line); }
.emg-steps { padding:.3rem 1rem .6rem; font-size:1.05rem; }
.emg-assembly { font-size:1.1rem; font-weight:600; margin:0; }
.emg-people { list-style:none; margin:0; padding:0; display:grid; gap:.4rem; }
.emg-people li { display:flex; flex-wrap:wrap; gap:.2rem .8rem; align-items:baseline; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:.5rem .9rem; } .emg-people span { color:var(--muted-2); }
.emg-places { display:grid; grid-template-columns:minmax(8rem, max-content) 1fr; gap:.3rem 1rem; margin:0; } .emg-places dt { font-weight:600; } .emg-places dd { margin:0; }
.emg-plans { display:grid; grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr)); gap:.8rem; } .emg-plan { margin:0; } .emg-plan img { width:100%; border:1px solid var(--line); border-radius:8px; background:#fff; } .emg-plan figcaption { margin-top:.25rem; }
.emg-chain { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.2rem 1rem; }
.emg-review { margin:1rem 0 0; font-size:.9rem; color:var(--muted-2); } .emg-review.soon { color:#9a5b00; } .emg-review.late { color:var(--err-text); font-weight:600; }
.emg-offline { background:#fff3cd; color:#5c4400; border:1px solid #e6c15a; border-radius:8px; padding:.6rem 1rem; font-weight:600; }
.emg-print { margin-top:1.4rem; }
@media print {
  header.top, #nav, footer, #incBar, .noprint { display:none !important; }
  /* Farbig drucken: helle Farben auch bei dunklem Systemdesign, und der Browser soll Hintergründe mitdrucken (sonst bleiben die roten Knöpfe weiß) */
  body:has(.emg), body:has(.emg) .emg { --bg:#fff; --surface:#fff; --surface-3:#f7fafd; --text:#1b2a3a; --heading:#0a3e6e; --muted:#5b6f84; --muted-2:#3f5368; --line:#c3d2e2; --quote-bg:#eef6fd; --red:#bb0000; --accent:#f29100; --err-text:#bb0000;
    background:#fff; color:#1b2a3a; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body:has(.emg) .emg * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body:has(.emg) .layout { display:block; }
  body:has(.emg) main { margin:0; padding:0; border:0; box-shadow:none; background:#fff; max-width:none; }
  .emg { max-width:none; font-size:10.5pt; } .emg h1 { font-size:18pt; } .emg h2 { font-size:12pt; margin:.7rem 0 .25rem; break-after:avoid; }
  .emg-call { background:#bb0000; color:#fff; } .emg-call.local { background:#b85c00; } .emg-nums { grid-template-columns:repeat(3, 1fr); }
  .emg-sc, .emg-people li, .emg-plan { break-inside:avoid; } .emg-sc > .emg-steps { display:block; } .emg-sc summary { border:0; }
}

.post-dateline { color:var(--muted); font-size:.9rem; margin-bottom:.6rem; } .post-dateline time { display:inline; margin:0; }
.post-meta { color:var(--muted-2); }
.post-hl { outline:2px solid var(--blue); outline-offset:6px; border-radius:6px; }
.po-sharelabel { font-size:.85rem; color:var(--muted-2); margin-right:.2rem; }
.po-sharebar { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin:.7rem 0 0; }
.po-share { font:inherit; font-size:.85rem; padding:.25rem .8rem; border:1px solid var(--line); border-radius:999px; background:var(--btn-bg); color:var(--link); text-decoration:none; cursor:pointer; } .po-share:hover { background:var(--hover); border-color:var(--blue); }
.po-note { color:var(--ok-text); }

/* Speiseplan: Tageskacheln mit farbigem Kopf, jeder Bereich (Kategorie) mit eigener Farbe */
.ml { --ml-c0:#1a7fd0; --ml-c1:#d97706; --ml-c2:#2e8b3d; --ml-c3:#8a4fbf; --ml-c4:#c2410c; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ml { --ml-c0:#4aa3f0; --ml-c1:#ffb340; --ml-c2:#5cc06b; --ml-c3:#b98af0; --ml-c4:#ff8a5c; } }
:root[data-theme="dark"] .ml { --ml-c0:#4aa3f0; --ml-c1:#ffb340; --ml-c2:#5cc06b; --ml-c3:#b98af0; --ml-c4:#ff8a5c; }
.ml-col, .ml-day, .ml-dayview { border:1px solid var(--blue); border-radius:14px; box-shadow:var(--shadow); overflow:hidden; background:var(--surface); }
.ml-col { padding:0 .7rem .7rem; } .ml-day { padding:0 1rem .8rem; } .ml-dayview { padding:0 1.1rem 1rem; }
.ml-col h3, .ml-day h3, .ml-dayview h3 { margin:0 -1.1rem .6rem; padding:.55rem 1rem; background:var(--primary); color:#fff; font-size:1.05rem; border-radius:0; }
.ml-col h3 { margin:0 -.7rem .6rem; padding:.55rem .7rem; } .ml-day h3 { margin:0 -1rem .6rem; } .ml-col h3 small { color:rgba(255,255,255,.8); }
.ml-col.today, .ml-day.today, .ml-dayview.today { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent), var(--shadow); }
.ml-col.today h3, .ml-day.today h3, .ml-dayview.today h3 { background:var(--accent); color:#1b2a3a; } .ml-col.today h3 small { color:#3f2a00; }
.ml-cat, .ml-row { border-left:5px solid var(--cat, var(--blue)); background:var(--surface-3); background:color-mix(in srgb, var(--cat, var(--blue)) 9%, var(--surface)); border-radius:8px; padding:.4rem .7rem .45rem; margin:.5rem 0; }
.ml-cat h4, .ml-row h4 { margin:0 0 .15rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--cat, var(--muted)); }
.ml-dayview .ml-cat h4 { font-size:.85rem; }
.ml-row { grid-template-columns:9rem minmax(0, 1fr); border-top:0; } .ml-row h4 { margin:0; }
@media (max-width:600px) { .ml-row { grid-template-columns:1fr; } }
@media print {
  body.ml-printing .ml-col h3, body.ml-printing .ml-day h3, body.ml-printing .ml-dayview h3 { background:none; color:#000; margin:0 0 .3rem; padding:0; }
  body.ml-printing .ml-col, body.ml-printing .ml-day, body.ml-printing .ml-dayview { padding:.3rem .6rem; overflow:visible; }
  body.ml-printing .ml-col.today h3, body.ml-printing .ml-day.today h3, body.ml-printing .ml-dayview.today h3 { background:none; color:#000; }
  body.ml-printing .ml-cat, body.ml-printing .ml-row { border-left:0; background:none; padding:.1rem 0; margin:.2rem 0; border-radius:0; }
  body.ml-printing .ml-row { border-top:1px solid #999; padding:.25rem 0; margin:0; }
  body.ml-printing .ml-cat h4, body.ml-printing .ml-row h4 { color:#444; }
  body.ml-printing .ml-col.today, body.ml-printing .ml-day.today, body.ml-printing .ml-dayview.today { border:1px solid #666; box-shadow:none; }
}
/* Speiseplan über die ganze Breite: die Bereiche des Tages stehen nebeneinander (auf schmalen Bildschirmen untereinander) */
.ml-dayview { display:grid; grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr)); gap:.2rem .8rem; align-items:start; }
.ml-dayview > h3, .ml-dayview > p { grid-column:1 / -1; }
.ml-dayview .ml-item { font-size:1.15rem; margin:.45rem 0; } .ml-dayview .ml-cat { margin:.3rem 0 .6rem; padding:.6rem .9rem .7rem; } .ml-dayview .ml-cat h4 { font-size:.9rem; margin-bottom:.3rem; }
.ml-legend { margin-top:1.2rem; }
@media print { body.ml-printing .ml-dayview { display:block; } }

/* Telefonliste: Abteilungen */
.pb-select { padding:.65rem .9rem; font:inherit; border:1px solid var(--line); border-radius:999px; background:var(--input-bg); color:var(--text); }
.pb-select:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--ring); }
.content .pb-table tr.pb-dept td { background:var(--primary); color:#fff; font-weight:700; padding:.5rem .75rem; border:0; }
.pb-dept small { font-weight:400; opacity:.85; }
@media (max-width:700px) { .pb-table tr.pb-dept { border:0; background:none; padding:0; margin:.6rem 0 .3rem; } .pb-table tr.pb-dept td::before { display:none; } .content .pb-table tr.pb-dept td { border-radius:10px; } }
.content .pb-table td:nth-child(1), .content .pb-table td:nth-child(6) { overflow-wrap:break-word; hyphens:auto; }
.pb-spacer { flex:1; } .pb-btn { font:inherit; padding:.55rem 1.1rem; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--link); cursor:pointer; } .pb-btn:hover { background:var(--hover); border-color:var(--blue); }
.pb-printhead { display:none; }
@media print {
  .pb-hide-print { display:none !important; }
  body.pb-printing { --bg:#fff; --surface:#fff; --surface-2:#eee; --surface-3:#fff; --text:#000; --heading:#000; --muted:#444; --line:#999; --link:#000; --hover:#fff; background:#fff; color:#000; }
  body.pb-printing .layout { display:block; }
  body.pb-printing main { margin:0; padding:0; border:0; box-shadow:none; background:#fff; max-width:none; }
  body.pb-printing .pb-bar, body.pb-printing .pb-screenhead, body.pb-printing .pb-note { display:none; }
  body.pb-printing .pb-printhead { display:block; margin:0 0 .5rem; border-bottom:2px solid #000; padding-bottom:.3rem; } body.pb-printing .pb-printhead h1 { margin:0; font-size:18pt; color:#000; } body.pb-printing .pb-printhead h1::after { display:none; } body.pb-printing .pb-printhead p { margin:.1rem 0; font-size:9pt; }
  body.pb-printing .pb-scroll { border:0; overflow:visible; }
  body.pb-printing .pb-table { display:table; width:100%; font-size:9.5pt; } body.pb-printing .pb-table thead { display:table-header-group; } body.pb-printing .pb-table tbody { display:table-row-group; } body.pb-printing .pb-table tr { display:table-row; border:0; padding:0; margin:0; background:none; break-inside:avoid; } body.pb-printing .pb-table th, body.pb-printing .pb-table td { display:table-cell; width:auto; }
  body.pb-printing .pb-table td::before { display:none; } body.pb-printing .pb-table td:empty { display:table-cell; }
  body.pb-printing .pb-sort { padding:.25rem .4rem; font-size:9pt; } body.pb-printing .pb-sort::after { display:none; }
  body.pb-printing .content .pb-table td, body.pb-printing .pb-table td { padding:.2rem .4rem; border-bottom:1px solid #bbb; } body.pb-printing .pb-table td a { color:#000; text-decoration:none; }
  body.pb-printing .content .pb-table tr.pb-dept td { background:#ddd; color:#000; border-radius:0; font-size:10pt; break-after:avoid; }
}
.pb-grouped th:nth-child(6), .pb-grouped td:nth-child(6) { display:none; }
@media print { body.pb-printing .pb-grouped th:nth-child(6), body.pb-printing .pb-grouped td:nth-child(6) { display:none !important; } }

/* Schwarzes Brett: ruhigeres Raster, gleich hohe Zettel mit Fußzeile, Farbe je Kategorie, lange Texte eingeklappt */
.bb { --bb-c0:#1a7fd0; --bb-c1:#d97706; --bb-c2:#2e8b3d; --bb-c3:#8a4fbf; --bb-c4:#c2410c; --bb-c5:#0f766e; --bb-c6:#be185d; --bb-c7:#475569; }
.bb .pb-bar { margin-bottom:.6rem; } .bb .tagbar { margin:.2rem 0 1.4rem; }
.bb-list { grid-template-columns:repeat(auto-fill, minmax(18rem, 1fr)); gap:1.3rem; align-items:stretch; }
.bb-note { display:flex; flex-direction:column; border-top:7px solid var(--cat, var(--blue)); border-radius:3px 3px 12px 12px; padding:.8rem 1.1rem 0; box-shadow:0 2px 3px rgba(0, 0, 0, .12), 0 8px 18px rgba(0, 0, 0, .12); transition:box-shadow .15s, transform .15s; }
.bb-note:hover { transform:translateY(-2px); box-shadow:0 3px 5px rgba(0, 0, 0, .14), 0 12px 24px rgba(0, 0, 0, .16); }
.bb-note.pinned { box-shadow:0 0 0 3px var(--cat, var(--blue)), 0 8px 18px rgba(0, 0, 0, .15); }
.bb-head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; flex-wrap:wrap; }
.bb-cat { display:inline-block; padding:.12rem .65rem; border-radius:999px; font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#2b2a1d; background:color-mix(in srgb, var(--cat, var(--blue)) 28%, #fff); border:1px solid color-mix(in srgb, var(--cat, var(--blue)) 55%, #fff); }
.bb-pin { font-size:.75rem; font-weight:700; color:#6b4a00; }
.bb-note h3 { margin:.55rem 0 .35rem; font-size:1.15rem; line-height:1.25; }
.bb-body { margin:.2rem 0 .5rem; line-height:1.45; }
.bb-body.clamp { display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; }
.bb-more { align-self:flex-start; margin:0 0 .5rem; padding:0; border:0; background:none; color:#0a4d91; font:inherit; font-size:.85rem; text-decoration:underline; cursor:pointer; }
.bb-foot { margin-top:auto; border-top:1px dashed rgba(0, 0, 0, .28); padding:.55rem 0 .7rem; }
.bb-meta { font-size:.9rem; color:#3e3b25; margin:0 0 .15rem; } .bb-meta strong { color:#2b2a1d; }
.bb-dates { margin:0; font-size:.78rem; color:#6a6544; }
.bb-print { margin:.4rem 0 0; padding:0; border:0; background:none; color:#0a4d91; font:inherit; font-size:.82rem; text-decoration:underline; cursor:pointer; }
.bb-sheet { display:none; }
@media print {
  .bb-hide-print { display:none !important; }
  body.bb-printing { --bg:#fff; --surface:#fff; --text:#000; --heading:#000; background:#fff; color:#000; }
  body.bb-printing .layout { display:block; }
  body.bb-printing main { margin:0; padding:0; border:0; box-shadow:none; background:#fff; max-width:none; }
  body.bb-printing .bb > :not(.bb-sheet) { display:none !important; }
  body.bb-printing .bb-sheet { display:block; color:#000; }
  .bb-sheet-cat { margin:0 0 .4rem; font-size:12pt; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#444; }
  .bb-sheet h1 { margin:0 0 1rem; font-size:28pt; line-height:1.15; color:#000; border-bottom:3px solid #000; padding-bottom:.5rem; } .bb-sheet h1::after { display:none; }
  .bb-sheet img { display:block; max-width:100%; max-height:11cm; margin:0 0 1rem; border:1px solid #999; }
  .bb-sheet-body { font-size:15pt; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; margin:0 0 1.4rem; }
  .bb-sheet-meta { font-size:14pt; margin:0 0 .3rem; padding-top:.7rem; border-top:1px solid #999; }
  .bb-sheet-dates { font-size:10pt; color:#444; margin:0; }
}
.tf-again { margin-top:.4rem; padding:0; border:0; background:none; color:var(--link); font:inherit; font-size:.85rem; text-decoration:underline; cursor:pointer; }

/* Schwarzes Brett, Darstellung „Korkwand“ (bb-d-cork): Zettel hängen leicht schief und überlappen sich, mit Pinnnadel; beim Darüberfahren richtet sich der Zettel auf und kommt nach vorn */
.bb-list.bb-d-cork { gap:0; padding:2.4rem 1.8rem 2rem; background-color:#c9a26b; border:12px solid #7a4e2a; border-radius:8px;
  background-image:radial-gradient(rgba(90, 55, 20, .30) 1px, transparent 1.6px), radial-gradient(rgba(255, 238, 205, .28) 1px, transparent 1.6px), radial-gradient(rgba(70, 40, 15, .20) 2px, transparent 2.8px);
  background-size:9px 9px, 13px 13px, 23px 23px; background-position:0 0, 4px 6px, 10px 3px;
  box-shadow:inset 0 0 26px rgba(60, 30, 5, .55), 0 6px 16px rgba(0, 0, 0, .28); }
.bb-list.bb-d-cork > p { grid-column:1 / -1; margin:0; color:#3b2610; font-weight:600; text-align:center; }
.bb-d-cork .bb-note { position:relative; margin:-.55rem; rotate:var(--rot, 0deg); translate:0 var(--dy, 0); transform:none; z-index:1;
  transition:rotate .18s, scale .18s, translate .18s, box-shadow .18s; }
.bb-d-cork .bb-note::before { content:""; position:absolute; top:-.6rem; left:50%; width:1.15rem; height:1.15rem; margin-left:-.58rem; border-radius:50%; z-index:2; pointer-events:none;
  background:radial-gradient(circle at 35% 30%, #fff 0 8%, var(--pin, #d62f1f) 9% 62%, rgba(0, 0, 0, .45) 100%); box-shadow:0 3px 4px rgba(0, 0, 0, .45); }
.bb-d-cork .bb-note:nth-child(7n+1) { --rot:-1.8deg; } .bb-d-cork .bb-note:nth-child(7n+2) { --rot:1.4deg; } .bb-d-cork .bb-note:nth-child(7n+3) { --rot:-.8deg; } .bb-d-cork .bb-note:nth-child(7n+4) { --rot:2.2deg; }
.bb-d-cork .bb-note:nth-child(7n+5) { --rot:-2.4deg; } .bb-d-cork .bb-note:nth-child(7n+6) { --rot:.9deg; } .bb-d-cork .bb-note:nth-child(7n) { --rot:-1.2deg; }
.bb-d-cork .bb-note:nth-child(5n+1) { --dy:.3rem; } .bb-d-cork .bb-note:nth-child(5n+2) { --dy:-.45rem; } .bb-d-cork .bb-note:nth-child(5n+3) { --dy:.6rem; } .bb-d-cork .bb-note:nth-child(5n+4) { --dy:-.2rem; } .bb-d-cork .bb-note:nth-child(5n) { --dy:.1rem; }
.bb-d-cork .bb-note:nth-child(4n+1) { --pin:#d62f1f; } .bb-d-cork .bb-note:nth-child(4n+2) { --pin:#1f6fd6; } .bb-d-cork .bb-note:nth-child(4n+3) { --pin:#2e9a45; } .bb-d-cork .bb-note:nth-child(4n) { --pin:#e0a800; }
.bb-d-cork .bb-note:hover, .bb-d-cork .bb-note:focus-within { rotate:0deg; scale:1.035; z-index:10; transform:none; box-shadow:0 4px 7px rgba(0, 0, 0, .25), 0 16px 30px rgba(0, 0, 0, .35); }
.bb-d-cork .bb-note.pinned { z-index:3; }
.bb-note.bb-flash { rotate:0deg; scale:1.05; z-index:11; box-shadow:0 0 0 4px #fff, 0 0 0 8px var(--blue), 0 16px 30px rgba(0, 0, 0, .35); }
.bb-note .po-sharebar { margin:.35rem 0 .5rem; }
.bb > .po-sharebar { margin:1rem 0 .4rem; }
@media (max-width:700px) { .bb-list.bb-d-cork { padding:1.8rem .9rem 1.4rem; border-width:8px; } .bb-d-cork .bb-note { margin:.2rem .1rem .9rem; } }
@media (prefers-reduced-motion:reduce) { .bb-d-cork .bb-note { transition:none; } }

/* Darstellung „Liste“: ein Zettel pro Zeile, ruhig und gut lesbar */
.bb-list.bb-d-list { grid-template-columns:1fr; gap:1rem; max-width:48rem; }

/* Weitere Darstellungen des Schwarzen Bretts (Einstellung „Darstellung“ je Brett) */
/* Tafel */
.bb-list.bb-d-chalk { padding:1.8rem 1.5rem; gap:1.4rem; background:radial-gradient(ellipse at 30% 20%, rgba(255, 255, 255, .10), transparent 55%), radial-gradient(ellipse at 80% 90%, rgba(255, 255, 255, .07), transparent 50%), #2f4b3e; border:12px solid #8a5a2b; border-radius:8px; box-shadow:inset 0 0 28px rgba(0, 0, 0, .55), 0 6px 16px rgba(0, 0, 0, .28); }
.bb-d-chalk > p { grid-column:1 / -1; margin:0; color:#eeeadb; text-align:center; font-weight:600; }
.bb-d-chalk .bb-note { background:rgba(255, 255, 255, .04); color:#f3f1e6; border:2px dashed rgba(243, 241, 230, .55); border-top:7px solid var(--cat, #eeeadb); border-radius:6px; box-shadow:none; }
.bb-d-chalk .bb-note:hover { box-shadow:0 0 0 2px rgba(243, 241, 230, .35); transform:none; }
.bb-d-chalk .bb-note h3 { color:#fffdf0; font-family:"Segoe Print", "Bradley Hand", "Comic Neue", "Comic Sans MS", cursive; font-weight:400; letter-spacing:.01em; }
.bb-d-chalk .bb-cat { background:transparent; color:#f3f1e6; border:1px solid rgba(243, 241, 230, .6); }
.bb-d-chalk .bb-body, .bb-d-chalk .bb-meta, .bb-d-chalk .bb-meta strong { color:#f3f1e6; } .bb-d-chalk .bb-dates { color:#cfd8c9; } .bb-d-chalk .bb-pin { color:#ffe08a; }
.bb-d-chalk .bb-foot { border-top-color:rgba(243, 241, 230, .4); } .bb-d-chalk .bb-more, .bb-d-chalk .bb-print, .bb-d-chalk .bb-meta a { color:#a9d4ff; }
.bb-d-chalk .po-sharebar { color:#f3f1e6; } .bb-d-chalk .po-share { background:transparent; color:#f3f1e6; border-color:rgba(243, 241, 230, .55); }
/* Klebestreifen */
.bb-list.bb-d-tape { gap:1.8rem 1.4rem; padding:1.8rem 1.2rem 1rem; background:#f6f1e7; border:1px solid #e0d6c3; border-radius:8px; }
.bb-d-tape > p { grid-column:1 / -1; margin:0; text-align:center; color:#5a4b30; }
.bb-d-tape .bb-note { position:relative; rotate:var(--rot, 0deg); box-shadow:0 2px 3px rgba(0, 0, 0, .12), 0 8px 16px rgba(0, 0, 0, .12); }
.bb-d-tape .bb-note::before { content:""; position:absolute; top:-.85rem; left:50%; width:5.2rem; height:1.5rem; margin-left:-2.6rem; rotate:-3deg; background:rgba(255, 233, 160, .78); box-shadow:0 1px 2px rgba(0, 0, 0, .18); z-index:2; pointer-events:none;
  -webkit-mask:linear-gradient(90deg, transparent 0, #000 .15rem calc(100% - .15rem), transparent 100%); mask:linear-gradient(90deg, transparent 0, #000 .15rem calc(100% - .15rem), transparent 100%); }
.bb-d-tape .bb-note:nth-child(3n+1) { --rot:-.9deg; } .bb-d-tape .bb-note:nth-child(3n+2) { --rot:.7deg; } .bb-d-tape .bb-note:nth-child(3n) { --rot:-.3deg; }
.bb-d-tape .bb-note:nth-child(4n+1)::before { background:rgba(173, 216, 255, .78); } .bb-d-tape .bb-note:nth-child(4n+2)::before { background:rgba(255, 190, 200, .78); } .bb-d-tape .bb-note:nth-child(4n+3)::before { background:rgba(190, 235, 190, .78); }
.bb-d-tape .bb-note:hover { rotate:0deg; transform:none; }
/* Karteikarten */
.bb-list.bb-d-index { gap:2rem 1.6rem; padding:.6rem .6rem 1.2rem; }
.bb-d-index .bb-note { background:#fff; border-top:0; border-radius:4px; padding-top:0; overflow:hidden; box-shadow:3px 3px 0 #fff, 4px 4px 0 rgba(0, 0, 0, .16), 7px 7px 0 #fff, 8px 8px 0 rgba(0, 0, 0, .12); }
.bb-d-index .bb-head { margin:0 -1.1rem; padding:.45rem 1.1rem; background:var(--cat, var(--blue)); } .bb-d-index .bb-cat { background:rgba(255, 255, 255, .88); } .bb-d-index .bb-pin { color:#fff; }
.bb-d-index .bb-note h3 { border-bottom:2px solid #d84a4a; padding-bottom:.25rem; }
.bb-d-index .bb-body { line-height:1.55rem; background-image:repeating-linear-gradient(transparent 0, transparent calc(1.55rem - 1px), rgba(40, 110, 200, .28) calc(1.55rem - 1px), rgba(40, 110, 200, .28) 1.55rem); }
.bb-d-index .bb-note:hover { transform:translate(-1px, -2px); }
/* Magnettafel */
.bb-list.bb-d-magnet { gap:1.8rem 1.4rem; padding:2rem 1.5rem 1.4rem; background:linear-gradient(135deg, #fbfcfd, #eef2f6); border:10px solid #aeb7c0; border-radius:8px; box-shadow:inset 0 0 14px rgba(0, 0, 0, .12), 0 6px 14px rgba(0, 0, 0, .2); }
.bb-d-magnet > p { grid-column:1 / -1; margin:0; text-align:center; color:#40505e; }
.bb-d-magnet .bb-note { position:relative; border-radius:4px; }
.bb-d-magnet .bb-note::before { content:""; position:absolute; top:-.8rem; left:50%; width:1.7rem; height:1.7rem; margin-left:-.85rem; border-radius:50%; z-index:2; pointer-events:none;
  background:radial-gradient(circle at 35% 30%, #fff 0 10%, var(--mag, #d62f1f) 11% 65%, rgba(0, 0, 0, .5) 100%); box-shadow:0 4px 5px rgba(0, 0, 0, .35); }
.bb-d-magnet .bb-note:nth-child(4n+1) { --mag:#d62f1f; } .bb-d-magnet .bb-note:nth-child(4n+2) { --mag:#1f6fd6; } .bb-d-magnet .bb-note:nth-child(4n+3) { --mag:#2e9a45; } .bb-d-magnet .bb-note:nth-child(4n) { --mag:#444; }
/* Spalten */
.bb-list.bb-d-columns { grid-template-columns:repeat(auto-fit, minmax(17rem, 1fr)); gap:1rem; align-items:start; }
.bb-col { background:rgba(128, 128, 128, .12); border-radius:10px; padding:.8rem .8rem .2rem; }
.bb-col-h { display:flex; justify-content:space-between; align-items:center; margin:0 0 .8rem; padding-bottom:.4rem; font-size:1.05rem; border-bottom:4px solid var(--cat, var(--blue)); }
.bb-col-h small { font-weight:400; opacity:.7; } .bb-d-columns .bb-note { margin:0 0 .9rem; }
/* Großschrift */
.bb-list.bb-d-large { grid-template-columns:1fr; gap:1.6rem; max-width:62rem; }
.bb-d-large .bb-note { background:#fff; color:#000; border:3px solid #111; border-top:14px solid var(--cat, #111); border-radius:6px; padding:1rem 1.4rem 0; font-size:1.2rem; box-shadow:none; }
.bb-d-large .bb-note:hover { transform:none; box-shadow:0 0 0 3px var(--cat, #111); }
.bb-d-large .bb-note h3 { font-size:1.8rem; line-height:1.2; color:#000; } .bb-d-large .bb-cat { font-size:.95rem; color:#000; }
.bb-d-large .bb-body { line-height:1.6; color:#000; } .bb-d-large .bb-body.clamp { display:block; overflow:visible; } .bb-d-large .bb-more { display:none; }
.bb-d-large .bb-meta, .bb-d-large .bb-meta strong { font-size:1.1rem; color:#000; } .bb-d-large .bb-dates { font-size:.95rem; color:#222; } .bb-d-large .bb-print { font-size:1rem; }
@media (max-width:700px) { .bb-list.bb-d-chalk, .bb-list.bb-d-magnet { padding:1.4rem .8rem 1rem; border-width:8px; } }
@media (prefers-reduced-motion:reduce) { .bb-d-index .bb-note:hover { transform:none; } }

/* Terminbuchung: Schritte, Kalender und Uhrzeiten nebeneinander, große Knöpfe */
.bk-steps { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:.6rem 0 1rem; counter-reset:bk; }
.bk-steps li { counter-increment:bk; display:flex; align-items:center; gap:.5rem; padding:.35rem .9rem .35rem .45rem; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:var(--surface); font-size:.92rem; }
.bk-steps li::before { content:counter(bk); display:inline-flex; align-items:center; justify-content:center; width:1.5rem; height:1.5rem; border-radius:50%; background:var(--surface-3); font-weight:700; font-size:.85rem; }
.bk-steps li.now { color:var(--text); border-color:var(--primary); font-weight:650; } .bk-steps li.now::before { background:var(--primary); color:#fff; }
.bk-steps li.done::before { content:"✔"; background:#2e8b3d; color:#fff; }
.bk-legend { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1.2rem; margin:.2rem 0 .8rem; }
.bk-key { display:inline-flex; align-items:center; gap:.35rem; font-size:.85rem; } .bk-key i { display:inline-block; width:.9rem; height:.9rem; border-radius:4px; margin-left:.6rem; border:1px solid var(--blue); }
.bk-key .k-free { background:color-mix(in srgb, var(--primary) 14%, var(--surface)); } .bk-key .k-full { background:var(--surface-3); border-color:var(--line); } .bk-key .k-today { border:2px solid var(--accent); background:none; }
.bk-layout { display:grid; grid-template-columns:minmax(0, 32rem) minmax(0, 1fr); gap:1.4rem; align-items:start; }
@media (max-width:820px) { .bk-layout { grid-template-columns:1fr; } }
.bk-cell { min-height:3.6rem; font-size:1.05rem; } .bk-cell small { font-size:.72rem; font-weight:600; }
.bk-cell.free { background:color-mix(in srgb, var(--primary) 9%, var(--surface)); border-width:2px; }
.bk-cell.today { outline:3px solid var(--accent); outline-offset:1px; } .bk-cell.today > span { font-weight:800; }
.bk-pick { margin-top:0; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1rem 1.2rem; box-shadow:var(--shadow); }
.bk-pick h3 { font-size:1.25rem; } .bk-sub { margin:.1rem 0 .8rem; color:var(--muted); font-size:.92rem; }
.bk-part { margin:.9rem 0 .4rem; font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted-2); }
.bk-empty { display:flex; align-items:center; min-height:8rem; border-style:dashed; box-shadow:none; background:none; }
.bk-slots { gap:.6rem; } .bk-slot { min-width:6rem; font-size:1.1rem; font-weight:600; padding:.65rem 1rem; border-width:2px; border-radius:10px; justify-content:center; }
.bk-when { display:flex; flex-direction:column; gap:.1rem; padding:.7rem 1rem; margin:0 0 .6rem; border-left:5px solid var(--primary); background:var(--surface-3); border-radius:8px; } .bk-when strong { font-size:1.15rem; } .bk-when span { font-size:1.4rem; font-weight:700; color:var(--heading); }
.bk-done { margin:0; font-size:3rem; line-height:1; color:#2e8b3d; text-align:center; }
.bk-form .tf-send { font-size:1.05rem; padding:.7rem 1.4rem; }

/* Wissensdatenbank: Schritt mit Bild links neben dem Text */
.wk-cols { display:grid; grid-template-columns:minmax(10rem, 400px) minmax(0, 1fr); gap:1rem; align-items:start; }
.wk-pic { display:block; max-width:400px; cursor:zoom-in; } .wk-pic img { display:block; width:100%; max-width:400px; height:auto; border-radius:8px; border:1px solid var(--line); background:var(--surface-3); }
.wk-text > :first-child { margin-top:0; } .wk-text > :last-child { margin-bottom:0; }
@media (max-width:640px) { .wk-cols { grid-template-columns:1fr; } }
.wk-big { display:block; width:auto; height:auto; max-width:min(1000px, calc(96vw - 2.8rem - 2px)); max-height:calc(94vh - 6.5rem); margin:0 auto; border-radius:8px; }
.inc-area { display:inline-block; margin-right:.5rem; padding:.05rem .55rem; border:1px solid currentColor; border-radius:99px; font-size:.75rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase; }

/* Untermenüs im Menü und in den Kacheln der Startseite */
.nav li.hassub > .navrow { display:flex; align-items:center; } .nav li.hassub > .navrow > a, .nav li.hassub > .navrow > .navfolder { flex:1; min-width:0; }
.nav .navfolder { text-align:left; font:inherit; font-weight:600; color:var(--text); background:none; border:0; padding:.45rem .7rem; border-radius:7px; cursor:pointer; } .nav .navfolder:hover { background:var(--hover); color:var(--link); }
.nav .navtoggle { flex:none; width:2rem; height:2rem; font:inherit; color:var(--muted-2); background:none; border:0; border-radius:7px; cursor:pointer; } .nav .navtoggle:hover { background:var(--hover); color:var(--link); }
.nav ul.navsub { margin:0 0 .2rem .9rem; padding:0 0 0 .5rem; background:none; border:0; border-left:2px solid var(--line); border-radius:0; box-shadow:none; }
.nav ul.navsub li a { padding:.35rem .6rem; font-size:.93em; }
.tile ul.tilesub { margin:.1rem 0 .3rem; padding-left:1.1rem; list-style:disc; font-size:.95em; }

/* Bildergalerie unter Blog-Beiträgen */
.gal { margin:1.2rem 0 .4rem; } .gal-title { margin:0 0 .5rem; font-size:1rem; color:var(--muted-2); }
.gal-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(7.5rem, 1fr)); gap:.5rem; }
.gal-thumb { padding:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--surface-3); cursor:zoom-in; aspect-ratio:1; }
.gal-thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .15s; } .gal-thumb:hover img, .gal-thumb:focus-visible img { transform:scale(1.06); }
.gal-view { text-align:center; } .gal-stage { display:flex; align-items:center; justify-content:center; gap:.5rem; }
.gal-big { display:block; width:auto; height:auto; max-width:min(1000px, calc(96vw - 8rem)); max-height:calc(94vh - 9rem); border-radius:8px; }
.gal-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; } .gal-nav:hover { background:var(--hover); } .gal-nav[hidden] { display:none; }
.gal-cap { margin:.6rem 0 0; font-weight:600; } .gal-cap:empty { display:none; } .gal-count { color:var(--muted); }
@media (max-width:600px) { .gal-big { max-width:calc(96vw - 6rem); } .gal-nav { width:2.2rem; height:2.2rem; } }
