/* ===================================================================
   Leiterbereich – ruhig, klar, fürs Handy gemacht.
   Farben kommen aus «Name, Logo & Kontakt» (theme_css), Schriften liegen lokal.
   =================================================================== */
@font-face{font-family:"Fraunces";src:url("/assets/fonts/fraunces-latin-full-normal.woff2") format("woff2-variations");font-weight:100 900;font-display:swap}
@font-face{font-family:"Nunito";src:url("/assets/fonts/nunito-latin-wght-normal.woff2") format("woff2-variations");font-weight:200 1000;font-display:swap}
@font-face{font-family:"Nunito";src:url("/assets/fonts/nunito-latin-wght-italic.woff2") format("woff2-variations");font-weight:200 1000;font-style:italic;font-display:swap}
@font-face{font-family:"Caveat";src:url("/assets/fonts/caveat-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}

/* Abstand unten (Gestenleiste), nach Chromes Edge-to-Edge-Anleitung: Die Leiste ist fest um den grössten Abstand höher (--sab) und wird über «bottom» mit dem aktuellen Abstand verschoben. So bleibt sie über der Android-Navigation, ohne beim Scrollen neu berechnet zu werden. */
:root{--sab:env(safe-area-max-inset-bottom, env(safe-area-inset-bottom, 0px))}

body.leiter{
  --brand:#1B3A24;--brand-2:#2C5537;--brand-soft:#E7EFE6;--tint:#E7EFE6;--sun:#E8A33D;--sun-soft:#FBEFD9;--sun-ink:#2A1C05;--sun-text:#B87518;
  --serif:"Fraunces",Georgia,serif;--font:"Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --bg:#F5F3EE;--card:#FFFFFF;--line:#E6E1D6;--line-2:#D6CFC0;--text:#1F2722;--muted:#5E6862;--faint:#8A928C;
  --ok:#1D6B37;--ok-soft:#E3F2E7;--warn:#8A5A00;--warn-soft:#FBEFD9;--err:#B3261E;--err-soft:#FCE9E7;
  --card-2:#FCFBF8;--field:#FFFEFB;--brand-ink:var(--brand);--r:14px;--r-sm:10px;--side:252px;--top:58px;--tab:62px;--shadow:0 1px 2px rgba(31,39,34,.05),0 4px 16px rgba(31,39,34,.05);
  margin:0;font:16px/1.55 var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand-ink);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
h1,h2,h3{font-family:var(--serif);font-variation-settings:"SOFT" 100;font-weight:620;color:var(--brand-ink);line-height:1.2;letter-spacing:-.01em}
h1{font-size:clamp(1.55rem,4.2vw,2.15rem);margin:.1em 0 .35em}
h2{font-size:1.22rem;margin:0 0 .7em}
h3{font-size:1.05rem;margin:1.2em 0 .4em}
p{margin:0 0 .9em}
small,.small{font-size:.88rem}
.muted{color:var(--muted)}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:.5rem .8rem;border-radius:8px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.inline{display:inline}
[hidden]{display:none!important}

/* ---------- Gerüst ---------- */
.shell{min-height:100vh}
.side{position:fixed;inset:0 auto 0 0;width:var(--side);background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:40;overflow-y:auto;overscroll-behavior:contain}
.side-head{display:flex;align-items:center;gap:8px;padding:16px 14px 10px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-weight:800;line-height:1.15;min-width:0;flex:1}
.brand img{width:40px;height:40px;object-fit:contain;flex:none}
.brand span{min-width:0}
.brand small{display:block;font-weight:600;color:var(--muted);font-size:.8rem}
.side nav{display:flex;flex-direction:column;gap:1px;padding:6px 10px 18px;flex:1}
.side nav a,.side nav button{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--text);text-decoration:none;font:650 .97rem var(--font);background:none;border:0;width:100%;text-align:left;cursor:pointer}
.side nav a:hover,.side nav button:hover{background:var(--bg)}
.side nav a .ic,.side nav button .ic{color:var(--muted)}
.side nav a[aria-current]{background:var(--brand-soft);color:var(--brand-ink);font-weight:800}
.side nav a[aria-current] .ic{color:var(--brand-ink)}
.side nav .ext{width:15px;height:15px;margin-left:auto;color:var(--faint)}
.side .search-link{border:1px solid var(--line);margin-bottom:8px;color:var(--muted)}
.nav-h{margin:16px 11px 4px;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.nav-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:1px}
.nav-foot form{margin:0}
.count{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--sun);color:var(--sun-ink);font-size:.78rem;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
.content{margin-left:var(--side);padding:28px max(clamp(18px,3.5vw,44px),calc((100vw - var(--side) - 1360px) / 2)) 60px}
@media (min-width:1800px){body.leiter{font-size:17px}}
.topbar,.tabbar,.scrim,.side .side-close{display:none}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;border:0;background:none;color:var(--text);cursor:pointer;flex:none}
.tb-btn:hover{background:var(--bg)}
.tb-btn .ic{width:23px;height:23px}

@media (max-width:999px){
  .topbar{display:flex;align-items:center;gap:4px;position:sticky;top:0;z-index:30;height:calc(var(--top) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 6px 0 14px;background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .tb-brand{display:flex;align-items:center;gap:10px;flex:1;min-width:0;text-decoration:none;color:var(--text);font-weight:800}
  .tb-brand img{width:32px;height:32px;object-fit:contain}
  .tb-brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .side{transform:translateX(-102%);transition:transform .22s ease;width:min(86vw,320px);box-shadow:0 0 40px rgba(0,0,0,.18);padding-bottom:var(--sab)}
  body.drawer-open .side{transform:none}
  .side .side-close{display:inline-flex}
  .scrim{display:block;position:fixed;inset:0;background:rgba(20,26,22,.38);z-index:35;opacity:0;pointer-events:none;transition:opacity .2s}
  body.drawer-open .scrim{opacity:1;pointer-events:auto}
  body.drawer-open{overflow:hidden}
  .content{margin-left:0;padding:18px 16px calc(var(--tab) + 32px + var(--sab))}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) - var(--sab));z-index:30;height:calc(var(--tab) + var(--sab));padding-bottom:var(--sab);background:color-mix(in srgb,var(--card) 97%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
  .tabbar a,.tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;font:700 .72rem var(--font);background:none;border:0;cursor:pointer}
  .tabbar .ic{width:23px;height:23px}
  .tabbar a[aria-current]{color:var(--brand-ink)}
  .tabbar a[aria-current] .ic{stroke-width:2.3}
  .tabbar .dot{position:absolute;top:9px;left:calc(50% + 8px);width:9px;height:9px;border-radius:50%;background:var(--sun);border:2px solid var(--card)}
  /* Handy: keine Unschärfe hinter fixen Leisten – sonst ruckelt das Scrollen, und Chrome lässt die untere Leiste beim Ein-/Ausblenden der Adressleiste hängen */
  .topbar,.tabbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--card)}
}
@media (prefers-reduced-motion:reduce){.side,.scrim{transition:none}}

/* ---------- Seitenkopf ---------- */
.back{display:inline-flex;align-items:center;gap:4px;font-weight:700;text-decoration:none;color:var(--muted);margin-bottom:6px;font-size:.95rem}
.back::before{content:"";width:8px;height:8px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-right:3px}
.back:hover{color:var(--brand-ink)}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 16px;flex-wrap:wrap;margin-bottom:18px}
.pagehead h1{margin:0}
.pagehead p{margin:.25rem 0 0}
.pagehead > .actions,.pagehead > .btn,.pagehead > a.btn{flex:none}
.hello{display:block;font-weight:800;color:var(--sun-text);font-size:.98rem;margin-bottom:2px}
.lead{font-size:1.05rem;color:var(--muted)}

/* ---------- Flächen ---------- */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px clamp(16px,2.6vw,24px);margin-bottom:16px}
.panel > h2:first-child{margin-top:0}
.panel.flat{background:transparent;border-style:dashed}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:16px;align-items:start}
.grid2 > .panel{margin-bottom:0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}
.card{display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;color:inherit;text-decoration:none;position:relative}
a.card:hover,.card:has(> a.cover:hover){border-color:var(--brand);box-shadow:var(--shadow)}
.card .ic.lead-ic{width:26px;height:26px;color:var(--brand-ink);margin-bottom:6px}
.card strong{font-size:1.02rem}
.card img.cover-img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;width:100%;margin-bottom:8px}
.card .card-foot{margin-top:auto;padding-top:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.help-tip{display:flex;gap:10px;align-items:flex-start;background:var(--brand-soft);color:var(--brand-ink);border-radius:var(--r-sm);padding:11px 14px;font-size:.95rem;margin:0 0 16px}
.help-tip::before{content:"i";flex:none;width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;font:900 .78rem/20px var(--font);text-align:center;margin-top:1px}
.empty-note{color:var(--muted);text-align:center;padding:22px 10px}
.stat{font-family:var(--serif);font-size:1.9rem;color:var(--brand-ink);line-height:1;font-weight:650}
details.more{margin-top:.5rem}
details.more summary,details.panel > summary{cursor:pointer;font-weight:800;color:var(--muted)}
.facts{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 18px;margin:0}
.facts dt{font-weight:700;color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}
@media (max-width:560px){.facts{grid-template-columns:1fr;gap:0}.facts dd{margin-bottom:8px}}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:.5rem 1.15rem;border-radius:999px;border:1.5px solid var(--brand);background:var(--brand);color:#fff;font:800 .95rem/1.2 var(--font);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.btn:hover{background:var(--brand-2);border-color:var(--brand-2);color:#fff;text-decoration:none}
.btn .ic{width:18px;height:18px}
.btn.ghost{background:var(--card);color:var(--brand-ink);border-color:var(--line-2)}
.btn.ghost:hover{border-color:var(--brand);background:var(--card);color:var(--brand-ink)}
.btn.sun{background:var(--sun);border-color:var(--sun);color:var(--sun-ink)}
.btn.sun:hover{filter:brightness(.96);color:var(--sun-ink)}
.btn.danger{background:var(--card);color:var(--err);border-color:#EFC4BF}
.btn.danger:hover{background:var(--err);border-color:var(--err);color:#fff}
.btn.small{min-height:34px;padding:.3rem .85rem;font-size:.88rem}
.btn.block{width:100%}
.btn.icon-only{width:42px;padding:0}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-bottom:14px}
.toolbar .tabs{margin:0}
.reglist{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.reglist li + li{border-top:1px solid var(--line)}
.reglist a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;color:var(--text);text-decoration:none}
.reglist a:hover{background:var(--bg)}
.rl-main{display:grid;gap:1px;min-width:0}
.rl-main b{font-size:1.02rem}
.rl-side{display:flex;align-items:center;gap:8px;flex:none;color:var(--faint)}
.actions form{margin:0}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--brand-ink);text-decoration:underline;cursor:pointer}

/* ---------- Hinweise / Badges ---------- */
.flash{padding:11px 14px;border-radius:var(--r-sm);background:var(--card);border:1px solid var(--line);margin:0 0 14px;font-weight:650}
.flash.ok,.flash.success{background:var(--ok-soft);border-color:#BFE0C8;color:var(--ok)}
.flash.error{background:var(--err-soft);border-color:#F2C1BC;color:var(--err)}
.badge{display:inline-flex;align-items:center;padding:.12rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800;background:var(--brand-soft);color:var(--brand-ink);white-space:nowrap;vertical-align:middle}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.bad{background:var(--err-soft);color:var(--err)}
.badge.live{background:#FDE4E2;color:#B3261E}
.badge.live::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:5px}

/* ---------- Tabellen (auf dem Handy als Karten) ---------- */
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{padding:10px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{color:var(--muted);font-weight:800;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}
tr:last-child td{border-bottom:0}
td.actions{white-space:nowrap;display:table-cell}
td.actions > *{display:inline-flex;vertical-align:middle;margin:2px 6px 2px 0}
td.actions > form{display:inline-block}
@media (max-width:720px){
  .table-wrap.cardify{overflow:visible}
  .cardify table,.cardify tbody,.cardify tr,.cardify td{display:block;width:100%}
  .cardify tr:first-child:has(th),.cardify thead{display:none}
  .cardify tr{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:10px;background:var(--card)}
  .cardify td{border:0;padding:4px 0;display:flex;gap:10px;justify-content:space-between;align-items:baseline;overflow-wrap:anywhere}   /* lange Dateinamen und Pfade umbrechen, sonst wird die ganze Seite samt unterer Leiste breiter */
  .cardify td[data-label]::before{content:attr(data-label);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);flex:none}
  .cardify td:first-child{font-weight:800;font-size:1.02rem}
  .cardify td:first-child::before{display:none}
  .cardify td:empty{display:none}
  .cardify td[colspan]{justify-content:center}
  .cardify td.actions{justify-content:flex-start;flex-wrap:wrap;padding-top:8px}
  .panel.table-wrap.cardify{background:transparent;border:0;padding:0}
}

/* ---------- Formulare ---------- */
.form{display:grid;gap:14px}
.form > *{min-width:0}   /* breite Inhalte (z. B. Formular-Baukasten) sollen die Spalte nicht über den Bildschirm hinaus ziehen */
@media (max-width:640px){   /* Handy: lange Knopftexte, Titel und Dateipfade umbrechen statt die Seite seitlich zu verbreitern */
  .btn{white-space:normal;max-width:100%;text-align:center}
  h1,h2,h3,code{overflow-wrap:anywhere}
}
.form > .panel{margin-bottom:0}
.field{display:grid;gap:5px;align-content:start;min-width:0}
.field label,.field > .label{font-weight:750;font-size:.95rem}
.req{color:var(--err)}
.help{color:var(--muted);font-size:.86rem;line-height:1.4}
.error{color:var(--err);font-weight:700;font-size:.88rem}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=datetime-local],input[type=time],input[type=password],input[type=number],input[type=url],input[type=search],select,textarea{
  width:100%;min-height:44px;font:500 1rem/1.4 var(--font);color:var(--text);background:var(--field);border:1.5px solid var(--line-2);border-radius:var(--r-sm);padding:.55rem .75rem;transition:border-color .15s,box-shadow .15s}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 14%,transparent)}
input[aria-invalid],textarea[aria-invalid]{border-color:var(--err)}
input[type=file]{font:inherit;max-width:100%;padding:8px;border:1.5px dashed var(--line-2);border-radius:var(--r-sm);background:var(--field);width:100%}
input[type=color]{width:54px;height:40px;border:1px solid var(--line-2);border-radius:8px;padding:2px;background:#fff}
input[type=checkbox],input[type=radio]{width:19px;height:19px;accent-color:var(--brand);flex:none;margin:2px 0 0}
.field.check label{font-weight:600;display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:640px){.two{grid-template-columns:1fr}}
fieldset{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;margin:0;display:grid;gap:10px;min-width:0}
legend{font-weight:800;color:var(--brand-ink);padding:0 6px}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px}
.checks label{display:flex;gap:8px;align-items:flex-start;padding:5px 0;font-weight:600;cursor:pointer}
.savebar,.stickybar{position:sticky;bottom:0;z-index:5;display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(6px);padding:12px 0;border-top:1px solid var(--line)}
@media (max-width:999px){.savebar,.stickybar{bottom:calc(env(safe-area-inset-bottom,0px) + var(--tab))}.savebar .btn,.stickybar .btn{flex:1;min-width:0;white-space:normal;text-align:center}}
.imgpick{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.imgpick img{width:150px;height:104px;object-fit:cover;border-radius:10px}
.avatar-prev{width:96px;height:96px;border-radius:50%;object-fit:cover}

/* Formular-Baukasten (Texte & Seiten) */
.docform h3.sub{margin:1.4rem 0 .5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:1.05rem}
.docform h3.sub:first-child{border-top:0;margin-top:0;padding-top:0}
.docform .panel > .field + .field,.docform .panel > .field + fieldset,.docform .panel > fieldset + .field{margin-top:12px}
.docform .rowitem .field + .field,.docform fieldset .field + .field{margin-top:10px}
.docform .rows{display:flex;flex-direction:column;gap:10px;margin:.5rem 0}
.rowitem{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--card-2)}
.rowitem .rowitem{background:var(--card)}
.rowhead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.rowhead strong{overflow-wrap:anywhere}
.rowhead .actions{gap:5px}
.rowhead .btn.small{min-height:32px;padding:.2rem .7rem}
.listfield > label{font-weight:800}
fieldset.grp{border-style:dashed}
.filefield .cur{margin:4px 0}.filefield .prev{max-width:200px;max-height:140px;border-radius:8px;border:1px solid var(--line)}
.colorfield .actions{gap:12px}
.hint{font-style:italic}
.rowitem.block{background:var(--card);border-radius:var(--r);padding:12px 16px}
.rowitem.block .rowhead strong{font-size:1.02rem}
.blocktoggle{background:none;border:0;padding:4px 0;font:inherit;color:inherit;cursor:pointer;display:flex;gap:9px;align-items:center;text-align:left;flex:1;min-width:0}
.blocktoggle .ic{color:var(--brand-ink)}
.blocktoggle .chev{transition:transform .15s;color:var(--muted);margin-left:2px}
.rowitem.block.collapsed .blockbody{display:none}
.rowitem.block.collapsed .chev{transform:rotate(-90deg)}
.rowitem.block.collapsed .rowhead{margin-bottom:0}
.addblocks{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1.5px dashed var(--line-2);border-radius:var(--r);padding:12px 14px;margin:12px 0}
.addblocks .btn .ic{width:17px;height:17px}

/* Fotos */
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.thumbs figure{margin:0;display:flex;flex-direction:column;gap:5px}
.thumbs img{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%}
.thumbs.big{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:12px}
.thumbs.big img{aspect-ratio:4/3}
.thumbs.big input{min-height:38px;padding:.35rem .6rem;font-size:.92rem}

/* ---------- Übersicht ---------- */
.finder{padding:14px}
.finder input[type=search]{font-size:1.05rem;min-height:50px;border-radius:999px;padding-left:46px;background:var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6862' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") 16px center/20px no-repeat}
.finder-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:6px}
.finder-list a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--text);background:var(--bg);font-weight:700;line-height:1.25;min-height:48px}
.finder-list a:hover,.finder-list a:focus{background:var(--brand-soft);outline:none}
.finder-list .ic{color:var(--brand-ink)}
.finder-list .t{flex:1}
.finder-list .r{font-size:.7rem;color:var(--faint);font-weight:800;white-space:nowrap}
@media (max-width:560px){.finder-list .r{display:none}}
.todo{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.todo li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;background:var(--bg)}
.todo li.alert{background:var(--sun-soft)}
.todo .t{font-weight:750}
.todo .when{color:var(--muted);font-size:.88rem}
.todo .actions{flex:none;justify-content:flex-end}
@media (max-width:520px){.todo li{flex-direction:column;align-items:stretch}.todo .actions .btn{flex:1}}
.roles ul{margin:.5rem 0 0;padding-left:1.1rem}.roles li{margin:.15rem 0}

/* ---------- Lager ---------- */
.bigtabs,.tabs{display:flex;gap:6px;margin:0 0 16px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.bigtabs::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}
.bigtabs a,.tabs a{flex:none;background:var(--card);border:1px solid var(--line);padding:.45rem .95rem;font-weight:750;text-decoration:none;color:var(--text);border-radius:999px;white-space:nowrap}
.bigtabs a[aria-current],.tabs a[aria-current]{background:var(--brand);border-color:var(--brand);color:#fff}
.cockpit .panel.is-live,.card.is-live{border-color:#D93025;box-shadow:0 0 0 2px #D93025}
.seg{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;flex-wrap:nowrap;max-width:100%}
.seg form{display:inline}
.seg-btn,.seg-on{display:inline-block;border:0;background:none;font:750 .92rem var(--font);padding:.45rem .75rem;border-radius:999px;cursor:pointer;color:var(--muted);min-height:38px;white-space:nowrap}
.seg-btn:hover{background:var(--card);color:var(--brand-ink)}
.seg-on{background:var(--brand);color:#fff;cursor:default}
.status-line{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1.05rem;color:var(--brand-ink);margin:0 0 8px}
.status-line .ic{width:22px;height:22px}
.status-line.live{color:#B3261E}

/* Protokoll */
.rows .row{display:grid;grid-template-columns:1fr 2fr auto;gap:8px;margin-bottom:8px;align-items:start}
@media (max-width:640px){.rows .row{grid-template-columns:1fr;padding:10px;border:1px solid var(--line);border-radius:10px}}
.plist table{font-size:.88rem}.plist td.flag{background:var(--sun-soft);font-weight:700}

/* Anmelden */
.guest-main{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.login{width:min(100%,400px);text-align:left}
.login .login-logo{width:64px;height:64px;object-fit:contain;margin:0 auto 8px}
.login h1{text-align:center}
.login .btn{width:100%}

/* Flyer (A4) – immer gleiches Layout */
@font-face{font-family:"Fraunces";src:url("/assets/fonts/fraunces-latin-full-normal.woff2") format("woff2-variations");font-weight:100 900;font-display:swap}
@font-face{font-family:"Nunito";src:url("/assets/fonts/nunito-latin-wght-normal.woff2") format("woff2-variations");font-weight:200 1000;font-display:swap}
@font-face{font-family:"Caveat";src:url("/assets/fonts/caveat-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
.flyer-tools{margin-bottom:1rem}
.flyer{width:210mm;height:297mm;overflow:hidden;background:#FBF8F2;margin:0 auto;display:flex;flex-direction:column;box-shadow:0 4px 24px rgba(0,0,0,.15);color:#1E2621;font-family:"Nunito",system-ui,sans-serif}
.flyer .f-top{display:flex;align-items:center;gap:5mm;padding:10mm 14mm 0}
.flyer .f-logo{height:20mm;width:auto}
.flyer .f-top strong{display:block;font-family:var(--serif);font-size:17pt;color:var(--brand-ink);line-height:1.1}
.flyer .f-top span{font-size:11pt;color:#59635C;font-weight:700}
.flyer .f-title{padding:7mm 14mm 5mm}
.flyer .f-hand{font-family:"Caveat",cursive;font-weight:600;font-size:24pt;color:var(--sun-text);display:inline-block;transform:rotate(-2deg)}
.flyer .f-hand.small{font-size:19pt}
.flyer h1{font-family:var(--serif);font-variation-settings:"SOFT" 100;font-weight:700;color:var(--brand-ink);font-size:38pt;line-height:1.02;margin:0;letter-spacing:-.01em}
.flyer .f-photo{height:78mm;margin:0 14mm;border-radius:6mm;background:var(--tint) center/cover;transform:rotate(-.6deg);box-shadow:0 2mm 6mm rgba(27,58,36,.18)}
.flyer .f-body{padding:7mm 14mm 0;flex:1;display:flex;flex-direction:column;gap:5mm}
.flyer .f-when{display:grid;grid-template-columns:1fr 1fr;gap:4mm}
.flyer .f-when div{background:var(--brand);color:#fff;border-radius:4mm;padding:4mm 5mm}
.flyer .f-when div+div{background:var(--sun);color:var(--sun-ink)}
.flyer .f-when b{display:block;font-size:14pt;line-height:1.2}
.flyer .f-when span{font-size:11pt;opacity:.9}
.flyer .f-sum{font-size:12.5pt;line-height:1.45}.flyer .f-sum p{margin:0 0 2mm}
.flyer .f-details{display:grid;grid-template-columns:30mm 1fr;gap:1.5mm 4mm;font-size:11.5pt;margin:0}
.flyer .f-details dt{font-weight:900;color:var(--brand-ink)}.flyer .f-details dd{margin:0}
.flyer .f-team{margin-top:auto;padding-bottom:4mm}
.flyer .f-people{display:flex;gap:5mm;flex-wrap:wrap;margin-top:1mm}
.flyer .f-person{display:flex;flex-direction:column;align-items:center;text-align:center;width:24mm}
.flyer .f-person img,.flyer .f-ini{width:19mm;height:19mm;border-radius:50%;object-fit:cover;border:1mm solid #fff;box-shadow:0 1mm 3mm rgba(0,0,0,.15);background:var(--tint);display:flex;align-items:center;justify-content:center;font:700 16pt var(--serif);color:var(--brand-ink)}
.flyer .f-person b{font-size:11pt;margin-top:1.5mm;line-height:1.1}
.flyer .f-person small{font-size:8.5pt;color:#59635C;line-height:1.25}
.flyer .f-foot{background:var(--brand);color:#EAF1E8;padding:5mm 14mm;font-size:10.5pt;display:flex;justify-content:space-between;font-weight:700}
/* Flyer aus Vorlage */
.fsheet-wrap{width:100%;max-width:210mm;margin:0 auto}
.fsheet{position:relative;width:210mm;height:297mm;background:#fff center/100% 100% no-repeat;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.15);font-family:"Nunito",system-ui,sans-serif;color:#1B3A24}
.ff{position:absolute;display:flex;align-items:center;justify-content:center;line-height:1.15;box-sizing:border-box}
.ff .t{display:block;width:100%;white-space:pre-line}
.ff-img{background:center/cover no-repeat}
.ff-sans{font-family:"Nunito",system-ui,sans-serif}.ff-serif{font-family:"Fraunces",Georgia,serif}.ff-hand{font-family:"Caveat",cursive}
.ff-photo{background:#ddd center/cover no-repeat}
.fsheet.editing .ff{outline:1px dashed rgba(27,58,36,.45);cursor:move;touch-action:none;user-select:none}
.fsheet.editing .ff.sel{outline:2px solid var(--sun,#E8A33D);background-color:rgba(232,163,61,.12)}
.fsheet.editing .ff-photo{background-color:rgba(120,120,120,.25)}
.fsheet.editing .rh{position:absolute;right:-1px;bottom:-1px;width:14px;height:14px;background:var(--sun,#E8A33D);cursor:nwse-resize;border-radius:3px 0 0 0}
.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.2rem;align-items:start}
@media(max-width:1100px){.editor-grid{grid-template-columns:minmax(0,1fr)}.editor-grid > div:first-child{overflow-x:auto}}   /* schmal: nur das A4-Blatt scrollt seitwärts, nicht die ganze Seite */
.fieldlist{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.fieldlist li{padding:5px 8px;border-radius:8px}.fieldlist li.on{background:var(--tint,#EAF1E8)}
.fieldlist label{display:flex;gap:8px;align-items:center;cursor:pointer}
.tpl-card{display:flex;flex-direction:column;gap:.3rem;text-decoration:none;color:inherit}
.tpl-card img{width:100%;aspect-ratio:210/297;object-fit:cover;border-radius:8px;border:1px solid var(--line,#ddd)}
.variant{display:flex;align-items:center;gap:12px;margin:.4rem 0}.variant img{height:64px;border-radius:6px;border:1px solid var(--line,#ddd)}
.flyer-opts{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:.8rem}
.flyer-opts .field{margin:0}
@media print{.fsheet{box-shadow:none;margin:0;transform:none!important}.fsheet-wrap{height:auto!important;max-width:none}}
/* Flyer als Bild (Instagram/WhatsApp) */
.share{margin-top:2rem}
.social-wrap{display:flex;justify-content:center;padding:1rem;background:#ECE8DD;border-radius:14px;overflow:auto}
.social{position:relative;width:540px;flex-shrink:0;background:var(--brand);color:#fff;font-family:"Nunito",system-ui,sans-serif;overflow:hidden;display:flex;flex-direction:column}
.social.square{height:540px}.social.story{height:960px}
.social .s-photo{background:center/cover;height:40%;flex-shrink:0}
.social.story .s-photo{height:42%}
.social .s-body{flex:1;padding:18px 28px 16px;display:flex;flex-direction:column;min-height:0}
.social .s-top{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px;opacity:.95}
.social .s-top img{height:34px;width:34px;object-fit:contain;background:#fff;border-radius:8px;padding:2px}
.social .s-hand{font-family:"Caveat",cursive;font-weight:600;font-size:26px;color:var(--sun);margin-top:10px;line-height:1}
.social h3{font-family:var(--serif);font-weight:700;font-size:28px;line-height:1.08;margin:2px 0 8px;color:#fff}
.social.story h3{font-size:46px}
.social .s-when{font-weight:900;font-size:17px;margin:0;line-height:1.3}
.social .s-where{font-size:15px;margin:4px 0 0;opacity:.9}
.social.story .s-when{font-size:26px}.social.story .s-where{font-size:21px}
.social .s-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;padding-top:8px}.social .s-faces{display:flex}
.social .s-faces img,.social .s-faces span{width:40px;height:40px;border-radius:50%;border:3px solid var(--brand);margin-right:-8px;object-fit:cover;background:var(--sun);color:var(--sun-ink);display:flex;align-items:center;justify-content:center;font-weight:900}
.social .s-foot{font-weight:800;font-size:14px;color:var(--sun)}

.share{margin-top:28px}
.social-wrap{display:flex;justify-content:center;padding:16px;background:#ECE8DD;border-radius:var(--r);overflow:auto}
.flyer-tools{margin-bottom:16px}
.flyer-scale{overflow:auto}
@media (max-width:860px){.flyer{zoom:.44}}

/* ---------- Drucken ---------- */
@page{margin:12mm}
@page flyer{size:A4;margin:0}
@page liste{size:A4 landscape;margin:10mm}
.flyer{page:flyer}
.plist{page:liste}
@media print{
  body.leiter{background:#fff;font-size:11pt}
  .side,.topbar,.tabbar,.scrim,.flyer-tools,.no-print,.savebar,.stickybar,.flash{display:none!important}
  .demo-bar,.test-bar{display:none!important}body.leiter.is-test{padding-top:0!important}
  .content{margin:0!important;padding:0!important;max-width:none!important}
  .flyer{box-shadow:none;margin:0;zoom:1}
  .panel{border:0;padding:0;margin-bottom:10px}
  .plist table{font-size:9pt}.plist th,.plist td{border:1px solid #bbb;padding:3px 5px}
  .cardify table{display:table!important}.cardify tr{display:table-row!important}.cardify td{display:table-cell!important}
}

/* ---------- Dunkelmodus (Gerät oder Schalter im Menü) ---------- */
html[data-theme="dark"] body.leiter{--brand:var(--brand-dm,#2F5A3B);--brand-2:var(--brand-dm2,#3C6B4A);--brand-ink:var(--brand-light,#A9CBA9);--brand-soft:#22312A;--tint:#22312A;--sun-soft:#3A2E1A;--sun-text:var(--sun-light,#EDB868);--bg:#111613;--card:#1A211D;--card-2:#161D19;--field:#141A16;--line:#2B3530;--line-2:#3A4640;--text:#E5EBE6;--muted:#A6B1A9;--faint:#7D887F;--ok:#9AD6A8;--ok-soft:#1E3324;--warn:#F0C77A;--warn-soft:#3A2E1A;--err:#F4A097;--err-soft:#3A1D1B;--shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25);color-scheme:dark}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) body.leiter{--brand:var(--brand-dm,#2F5A3B);--brand-2:var(--brand-dm2,#3C6B4A);--brand-ink:var(--brand-light,#A9CBA9);--brand-soft:#22312A;--tint:#22312A;--sun-soft:#3A2E1A;--sun-text:var(--sun-light,#EDB868);--bg:#111613;--card:#1A211D;--card-2:#161D19;--field:#141A16;--line:#2B3530;--line-2:#3A4640;--text:#E5EBE6;--muted:#A6B1A9;--faint:#7D887F;--ok:#9AD6A8;--ok-soft:#1E3324;--warn:#F0C77A;--warn-soft:#3A2E1A;--err:#F4A097;--err-soft:#3A1D1B;--shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25);color-scheme:dark}}
html[data-theme="dark"] .logo-auto{filter:brightness(0) invert(.93)}
html[data-theme="dark"] .logo-badge{filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .logo-auto{filter:brightness(0) invert(.93)}html:not([data-theme="light"]) .logo-badge{filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}}
html[data-theme="dark"] .badge.live{background:#3A1D1B;color:#F4A097}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .badge.live{background:#3A1D1B;color:#F4A097}}
html[data-theme="dark"] .flash.ok,html[data-theme="dark"] .flash.success{border-color:#2E4A35}
html[data-theme="dark"] .flash.error{border-color:#5A2A27}
/* Flyer und Teilen-Bild bleiben immer hell und in der echten Hauptfarbe */
.flyer,.social{--brand:var(--brand-base,#1B3A24);--brand-ink:var(--brand-base,#1B3A24);--tint:#E7EFE6;color-scheme:light}
.theme-row .sun{display:none}
html[data-theme="dark"] .theme-row .sun{display:block}html[data-theme="dark"] .theme-row .moon{display:none}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .theme-row .sun{display:block}html:not([data-theme="light"]) .theme-row .moon{display:none}}
.logo-dark{display:none}
html[data-theme="dark"] .logo-dark{display:block}html[data-theme="dark"] .logo-light{display:none}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .logo-dark{display:block}html:not([data-theme="light"]) .logo-light{display:none}}
@media print{body.leiter{color-scheme:light}}

/* ===================================================================
   Navigation & Start (v13): jeder Menüpunkt sagt in 2–4 Wörtern, was man dort macht.
   =================================================================== */
.side nav a,.side nav button{padding:7px 11px;align-items:center}
.side nav .nl{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.side nav .nt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side nav .nl small{font-size:.78rem;font-weight:600;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.side nav a[aria-current] .nl small{color:var(--brand-ink);opacity:.75}
.side nav .ic{width:21px;height:21px}
.side nav .nav-home{margin-bottom:2px}
.nav-h{display:flex;align-items:center;gap:8px}
.nav-group{display:flex;flex-direction:column;gap:1px}
.nav-group > summary{list-style:none;cursor:pointer;border-radius:8px;padding:4px 0}
.nav-group > summary::-webkit-details-marker{display:none}
.nav-group > summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-3px 2px 0 auto;transition:transform .15s}
.nav-group:not([open]) > summary::after{transform:rotate(-45deg);margin-top:0}
.nav-group > summary:hover{color:var(--muted)}
.nav-h .dot{width:8px;height:8px;border-radius:50%;background:var(--sun)}
.nav-foot a,.nav-foot button{font-size:.93rem!important}
.side .count{flex:none}
.tabbar .ic{width:23px;height:23px}

/* Start: Kopf-Bereich */
.dash-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px;align-items:start;margin-bottom:26px}
.dash-top > .panel{margin:0}
.h-ic{display:flex;align-items:center;gap:9px}
.h-ic .ic{width:22px;height:22px;color:var(--brand-ink)}
.h-ic .count{margin-left:4px;font-family:var(--font)}
.empty-ok{display:flex;align-items:center;gap:10px;background:var(--ok-soft);color:var(--ok);border-radius:12px;padding:14px;font-weight:800;margin:0}
.empty-ok .ic{width:22px;height:22px;stroke-width:2.4}

.agenda{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.agenda li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--bg)}
.ag-main{flex:1;min-width:0}
.ag-main .t{font-weight:800;line-height:1.25}
.ag-main .when{color:var(--muted);font-size:.88rem}
.agenda .actions{flex:none;gap:6px}
.datechip{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;padding:5px 0;border-radius:10px;background:var(--card);border:1px solid var(--line);line-height:1.05}
.datechip b{font:650 1.35rem/1.05 var(--serif);color:var(--brand-ink)}
.datechip small{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.state{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:800;margin-top:3px}
.state::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.state.ok{color:var(--ok)}.state.warn{color:var(--warn)}
.more-links{margin:12px 2px 0;font-size:.92rem;font-weight:700}
@media (max-width:520px){
  .agenda li{flex-wrap:wrap;row-gap:8px}
  .ag-main{flex-basis:calc(100% - 64px)}
  .agenda li > .btn,.agenda li > .actions{margin-left:64px}
  .agenda li > .actions{flex:1 1 0;min-width:0;flex-wrap:wrap}   /* mehrere Knöpfe (Abmelden, Bearbeiten, Flyer) dürfen umbrechen */
}

/* Suche (Hilfe-Seite) */
.where{margin-bottom:24px}
.where-head{display:flex;align-items:center;justify-content:space-between;gap:10px 18px;flex-wrap:wrap;margin-bottom:8px}
.where-head h2{margin:0;font-size:1.4rem}
.where .finder{padding:0;flex:1;max-width:420px;min-width:min(100%,260px)}
.where .finder input[type=search]{min-height:46px;font-size:1rem}
.finder-results{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin:8px 0 16px}
.finder-results .finder-list{margin:0}
.finder-results [data-finder-empty]{margin:6px 4px}
.tile-sec{margin-top:18px}
.tile-sec h3{margin:0 0 9px;font-size:1.02rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.tile-sec h3 .muted{font-family:var(--font);font-weight:600;letter-spacing:0}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,232px),1fr));gap:10px}
.tile{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;min-height:74px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);color:var(--text);text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.tile:hover{border-color:var(--brand);box-shadow:var(--shadow);text-decoration:none}
.tile:active{transform:scale(.99)}
.tile-ic{grid-row:1 / 3;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink)}
.tile-ic .ic{width:23px;height:23px}
.tile-t{font-weight:800;font-size:1.02rem;line-height:1.2;display:flex;align-items:center;gap:6px;align-self:end}
.tile-t .ext{width:14px;height:14px;color:var(--faint)}
.tile-h{color:var(--muted);font-size:.86rem;line-height:1.25;align-self:start;margin-top:2px}
.tile .count{position:absolute;top:10px;right:10px}
@media (max-width:560px){
  .tiles{grid-template-columns:1fr 1fr;gap:8px}
  .tile{grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:2px;padding:12px;min-height:0}
  .tile-ic{grid-row:auto;width:38px;height:38px;margin-bottom:6px}
  .tile-t{font-size:.98rem}
  .where .finder{max-width:none}
}
.help-line{display:flex;align-items:center;gap:8px;margin-top:8px}
.help-line .ic{color:var(--faint)}

/* Runde: «Kommst du?» als zwei grosse Knöpfe */
.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice label{display:flex;align-items:center;gap:12px;padding:14px 16px;border:2px solid var(--line-2);border-radius:var(--r);background:var(--field);cursor:pointer;font-weight:800;font-size:1.02rem}
.choice label small{display:block;font-weight:600;color:var(--muted);font-size:.85rem}
.choice input{margin:0}
.choice label:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.choice label.no:has(input:checked){border-color:var(--warn);background:var(--warn-soft)}
@media (max-width:520px){.choice{grid-template-columns:1fr}}
.reason-field{display:none}
form:has(input[name=excused][value="1"]:checked) .reason-field{display:grid}

/* Hilfe-Seite */
.helpmap{display:grid;gap:14px}
.helpmap dl{margin:0;display:grid;gap:2px}
.helpmap .hm-row{display:grid;grid-template-columns:minmax(170px,230px) 1fr;gap:4px 18px;padding:10px 0;border-top:1px solid var(--line)}
.helpmap .hm-row:first-child{border-top:0}
.helpmap dt a{display:inline-flex;align-items:center;gap:9px;font-weight:800;text-decoration:none}
.helpmap dt .ic{color:var(--brand-ink)}
.helpmap dd{margin:0;color:var(--muted)}
@media (max-width:620px){.helpmap .hm-row{grid-template-columns:1fr}}
.faq summary{font-weight:800;cursor:pointer;padding:10px 0}
.faq details{border-top:1px solid var(--line)}
.faq details:first-of-type{border-top:0}
.faq details p{margin:0 0 12px;color:var(--muted)}

/* ---------- v14: Geburtstage, App-Hinweis, Fotos, Abwesenheiten, Kalender ---------- */
.bday{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin:-4px 0 16px}
.bday.today{background:var(--sun-soft);border-color:transparent}
.bday .ic{width:26px;height:26px;color:var(--sun-text);flex:none}
.bday p{margin:0}
.install-tip{display:flex;align-items:flex-start;gap:12px}
.install-tip > div{flex:1}
.install-tip p{margin:.2rem 0 0}
.install-tip .tile-ic{flex:none}
.checks label.away{color:var(--muted)}
.checks label span{display:flex;flex-direction:column;line-height:1.25}
.checks label.away small{color:var(--warn);font-weight:700;font-size:.8rem}
.copyrow{display:flex;gap:8px}
.copyrow input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}
.publish-bar{border-color:var(--brand);border-style:dashed}
.publish-bar select{width:auto;max-width:100%;flex:1;min-width:200px}
.thumbs .ph{position:relative;display:block}
.badge.on-site{position:absolute;left:6px;top:6px;background:var(--brand);color:#fff}
.thumbs .pick{display:flex;gap:7px;align-items:center;font-weight:700;font-size:.9rem;cursor:pointer}
.thumbs figcaption{color:var(--muted)}
.upload-box{border-style:dashed;border-width:2px}

/* ---------- v15: Zugriffe ---------- */
.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;margin-bottom:16px}
.ways .panel{margin:0}
.ways p{margin:.3rem 0 0}
.matrix-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px;-webkit-overflow-scrolling:touch}
.matrix{border-collapse:separate;border-spacing:0;font-size:.92rem;width:auto;min-width:100%}
.matrix th,.matrix td{padding:6px 6px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle;white-space:nowrap}
.matrix th.sticky{position:sticky;left:0;z-index:1;background:var(--card);text-align:left;min-width:150px;max-width:210px;white-space:normal;font-weight:800;color:var(--text);text-transform:none;letter-spacing:0;font-size:.95rem}
.matrix th.sticky small{display:block;font-weight:600}
.matrix tr.grp th{border-bottom:0;padding-bottom:0;color:var(--brand-ink);font-size:.72rem}
.matrix tr.grp th[colspan]{border-bottom:2px solid var(--brand-soft)}
.matrix th.rot{height:118px;vertical-align:bottom;padding:4px 2px}
.matrix th.rot span{writing-mode:vertical-rl;transform:rotate(180deg);display:inline-block;text-transform:none;letter-spacing:0;font-size:.82rem;font-weight:800;color:var(--muted);cursor:help}
.matrix td select{min-height:36px;padding:.25rem .5rem;font-size:.9rem;width:auto}
.matrix td.small{white-space:normal;min-width:90px;max-width:160px;text-align:left}
.matrix tr:hover td,.matrix tr:hover th.sticky{background:var(--bg)}
.matrix .cell{display:inline-flex;padding:6px;cursor:pointer}
.matrix input[type=checkbox]{width:20px;height:20px;margin:0}
.inh{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--brand-soft);color:var(--brand-ink);font-weight:900;font-size:.85rem;cursor:help}
.who{display:grid;gap:0;margin:0}
.who > div{display:grid;grid-template-columns:minmax(150px,200px) 1fr;gap:4px 16px;padding:9px 0;border-top:1px solid var(--line)}
.who > div:first-child{border-top:0}
.who dt{font-weight:800}
.who dd{margin:0;display:flex;flex-wrap:wrap;gap:6px}
.who .person{background:var(--bg);border-radius:999px;padding:2px 10px;font-weight:700;font-size:.9rem}
.who .person small{font-weight:600;color:var(--muted)}
@media (max-width:620px){.who > div{grid-template-columns:1fr}}
.inh{position:relative}
.inh:focus::after,.inh:hover::after{content:attr(title);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--text);color:var(--card);font:700 .78rem/1.3 var(--font);padding:5px 8px;border-radius:8px;white-space:nowrap;z-index:5;pointer-events:none}
.panel.preview-on{border-color:var(--sun);box-shadow:inset 4px 0 0 var(--sun)}
.agenda .t a{color:inherit;text-decoration:none}
.agenda .t a:hover{text-decoration:underline}
.agenda li.needs{background:var(--sun-soft)}
.state:not(.ok):not(.warn){color:var(--muted)}
/* Hinweisbox: Text mit Links darf nicht in Spalten zerfallen */
.help-tip{display:block;position:relative;padding-left:44px}
.help-tip::before{position:absolute;left:14px;top:12px}

/* ---------- v16: Halbjahresplan-Editor & Gruppenstunden-Liste ---------- */
.planrows{display:grid;gap:6px;margin:8px 0}
.pr{display:grid;grid-template-columns:34px 92px 130px 1fr;gap:8px;align-items:center;padding:6px 8px;border-radius:10px;background:var(--bg)}
.pr-schar{background:var(--sun-soft)}
.pr-extra{grid-template-columns:34px 150px 130px 1fr}
.pr input[type=text],.pr input[type=date]{min-height:38px;padding:.35rem .6rem;font-size:.95rem}
.pr-show{display:flex;align-items:center;justify-content:center;gap:4px;color:var(--muted)}
.pr-extra .pr-show{flex-direction:column;gap:0;font-size:.7rem}
.pr-date{display:flex;flex-direction:column;line-height:1.15}
.pr-date small{font-size:.72rem;color:var(--sun-text);font-weight:800}
@media (max-width:640px){
  .pr,.pr-extra{grid-template-columns:30px 1fr 1fr}
  .pr > input:last-child{grid-column:2 / -1}
}
.plan-preview{margin-top:22px}
.plan-preview .hjp-wrap{margin:0}
.lessons .pr{grid-template-columns:56px 160px 240px 1fr}
.pr-head{background:none!important;padding-top:0!important;padding-bottom:0!important;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.pr-head span:first-child{text-align:center}
@media (max-width:760px){.lessons .pr{grid-template-columns:30px 1fr 1fr}.lessons .pr-head{display:none}.lessons .pr > .w{grid-column:2 / -1}}

/* ---------- v17: Aufgaben (Ämtli) ---------- */
.panel.mine{border-color:var(--brand);box-shadow:inset 4px 0 0 var(--brand)}
.people-list{list-style:none;margin:0 0 .4rem;padding:0;display:grid;gap:3px}
.people-list li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.people-list form.inline{display:inline;margin-left:auto}
.tasks-h{display:flex;align-items:center;gap:6px;margin:1rem 0 .4rem;font-size:1rem}
.tasks-h .count{margin-left:2px}
.tasks{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.task{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:12px;background:var(--bg)}
.task form{margin:0}
.task .task-main{flex:1;min-width:0}
.task .t{font-weight:700;overflow-wrap:anywhere}
.task .when{color:var(--muted);font-size:.86rem}
.task.is-done .t{text-decoration:line-through;color:var(--muted);font-weight:600}
.task.overdue{background:var(--err-soft);box-shadow:inset 3px 0 0 var(--err)}
.tick{flex:none;width:28px;height:28px;border-radius:8px;border:2px solid var(--brand);background:var(--card);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:#fff;margin-top:1px}
.tick:hover{background:var(--brand-soft)}
.is-done .tick{background:var(--brand);border-color:var(--brand)}
.tick .ic{width:18px;height:18px;stroke-width:3}
.tick.off{border-color:var(--line);cursor:default;background:transparent}
.state.bad:not(.ok):not(.warn){color:var(--err)}
.task-new{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px 14px;align-items:start}
@media (max-width:720px){.task-new{grid-template-columns:1fr}}
.todo li.over{background:var(--err-soft)}
.todo li form{margin:0}

/* ---------- v17: Bussen ---------- */
.fine-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;margin-bottom:16px}
.fine-stats .panel{display:flex;flex-direction:column;gap:6px;margin:0}
.fine-me.has{border-color:var(--sun);box-shadow:inset 4px 0 0 var(--sun)}
.fine-rank{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.fine-rank li{display:grid;grid-template-columns:26px minmax(0,1fr) 90px auto;align-items:center;gap:8px;padding:6px 8px;border-radius:10px}
.fine-rank.small li{grid-template-columns:26px minmax(0,1fr) auto}
.fine-rank li.me{background:var(--brand-soft)}
.fine-rank .pos{font-weight:900;color:var(--muted);text-align:center}
.fine-rank li:first-child .pos{color:var(--sun-ink);background:var(--sun);border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}
.fine-rank .n{font-weight:700;overflow:hidden;text-overflow:ellipsis}
.fine-rank .bar{height:8px;border-radius:99px;background:var(--bg);overflow:hidden}
.fine-rank .bar i{display:block;height:100%;background:var(--sun);border-radius:99px}
.fine-rank b{white-space:nowrap;text-align:right}
@media (max-width:420px){.fine-rank li{grid-template-columns:26px minmax(0,1fr) auto}.fine-rank .bar{display:none}}
.fine-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.fine-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--bg)}
.fine-list li > div{flex:1;min-width:0}
.fine-list .t{font-weight:700}
.fine-list .when{color:var(--muted);font-size:.86rem}
.fine-list .amt{font-weight:800;white-space:nowrap;text-align:right;display:flex;flex-direction:column}
.fine-list .amt small{font-weight:600;color:var(--muted);font-size:.75rem}
.fine-list li.paid{opacity:.6}
.fine-list form{margin:0}
.fine-person{border-top:1px solid var(--line);padding:8px 0}
.fine-person summary{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:700}
.fine-person summary .n{flex:1}
.fine-person[open] summary{margin-bottom:8px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.panel-head h2{margin:0}
.panel-head form{margin:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;min-height:36px;padding:.3rem .8rem;border-radius:999px;border:1.5px solid var(--line);background:var(--card);font-weight:700;font-size:.92rem}
.chip input:checked + span{background:var(--brand);border-color:var(--brand);color:#fff}
.chip input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.fine-edit .fine-row{display:grid;grid-template-columns:minmax(0,2.4fr) 70px 80px minmax(0,1.5fr) minmax(0,1.5fr);gap:6px;margin-bottom:6px}
.fine-edit .fine-row input{min-height:38px;padding:.35rem .55rem;font-size:.92rem}
.fine-edit .fine-row.head{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:2px}
.fine-edit .fine-row.new input{border-style:dashed}
@media (max-width:760px){.fine-edit .fine-row{grid-template-columns:1fr 1fr;padding:8px;background:var(--bg);border-radius:10px}.fine-edit .fine-row > input:first-child{grid-column:1 / -1}.fine-edit .fine-row.head{display:none}}
.dash-fines{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap}
.dash-fines .me{display:flex;align-items:baseline;gap:8px}
.dash-fines .me b{font:650 1.5rem/1 var(--serif);color:var(--brand-ink)}
.dash-fines .top{flex:1;min-width:200px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dash-fines .top .badge{background:var(--sun-soft);color:var(--sun-text)}
.rows .row.task-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto;align-items:center}
.task-row .due{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem;white-space:nowrap}
.task-row .due input{min-height:38px;padding:.3rem .5rem}
@media (max-width:640px){.rows .row.task-row{grid-template-columns:1fr}}
.own-plan.on{border-color:var(--brand);box-shadow:inset 4px 0 0 var(--brand)}
.dash-fines .kasse{flex-basis:100%}
.login.setup{width:min(100%,560px)}.login.setup .checks label{display:flex;gap:8px;align-items:flex-start;font-weight:500}

/* ---------- v20: Testumgebung & Livegang ---------- */
.test-bar{position:fixed;top:0;left:0;right:0;z-index:60;height:28px;display:flex;align-items:center;justify-content:center;gap:4px;background:#7B2D8E;color:#fff;font-size:.82rem;padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-test{padding-top:28px}
body.is-test .side{top:28px}
body.is-test .topbar{top:28px}
@media (max-width:560px){.test-bar .long{display:none}}
.test-bar a{color:#fff;font-weight:800;margin-left:6px}
.stage-sites{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin-bottom:16px}
.stage-sites .panel{margin:0}
.stage-sites .panel.is-test{border-color:#7B2D8E;box-shadow:inset 4px 0 0 #7B2D8E}
.stage-sites .panel.is-live{border-color:var(--brand);box-shadow:inset 4px 0 0 var(--brand)}
.stage-sites h2 small{font:700 .78rem var(--font);color:var(--muted);margin-left:6px}
.stage-act{display:grid;grid-template-columns:52px 1fr;gap:6px 14px;align-items:start}
.stage-act .num{width:44px;height:44px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;font:800 1.1rem var(--serif)}
.stage-act h2{margin:4px 0 6px}
.stage-act form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.stage-act form input[type=text]{max-width:200px}
.stage-act.danger .num{background:var(--err-soft);color:var(--err)}
.stage-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-weight:800;margin:4px 0 8px}
.stage-flow .site{padding:3px 10px;border-radius:999px;font-size:.82rem}
.stage-flow .t{background:#F1E4F5;color:#5E1F6E}.stage-flow .l{background:var(--brand-soft);color:var(--brand-ink)}
.stage-log{background:var(--bg);border-radius:10px;padding:10px 14px;font-size:.9rem}
@media (max-width:560px){.stage-act{grid-template-columns:1fr}.stage-act .num{display:none}}

/* ---------- V1: Bussenseite (Abstände, Bussenlisten) ---------- */
.fine-page{display:flex;flex-direction:column;gap:16px}
.fine-page > .panel,.fine-page > .grid2,.fine-page > .fine-stats,.fine-page > form{margin:0}
.fine-stats{margin:0}
.fine-rank .n{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.fine-rank .n small{font-weight:600;color:var(--muted);font-size:.78rem}
.fine-rank .bar{display:flex;gap:2px;background:var(--bg)}
.fine-rank .bar i{flex:none;border-radius:99px}
.fine-rank .bar i.paid{background:var(--ok);opacity:.55}
.fine-legend{display:flex;align-items:center;gap:6px;margin:8px 0 0}
.fine-legend .k{display:inline-block;width:14px;height:8px;border-radius:99px;background:var(--sun);margin-left:6px}
.fine-legend .k.paid{background:var(--ok);opacity:.55;margin-left:0}
.fine-list .amt small.ok{color:var(--ok)}
.fine-list .amt small.open{color:var(--warn)}
.fine-list li.paid{opacity:.7}
.fine-list li.paid .amt{text-decoration:none}
.fine-person summary .state{margin:0}
.fine-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:10px 14px;align-items:start}
.fine-form .f-note{grid-column:span 2}
.fine-form .field{margin:0}
@media (max-width:720px){.fine-form{grid-template-columns:1fr}.fine-form .f-note{grid-column:auto}}
.fine-periods{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:4px}
.fine-periods li{display:flex;align-items:baseline;gap:10px;padding:8px 10px;border-radius:10px}
.fine-periods li.on{background:var(--brand-soft)}
.fine-periods li a{font-weight:800}
.fine-periods li b{margin-left:auto;white-space:nowrap}
@media (max-width:420px){.fine-rank .bar{display:none}}
@media (max-width:420px){.fine-legend{display:none}}

/* ---------- V1: Übergabe-Seite und To-do-Liste pro Ämtli ---------- */
.handover-link{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:.6rem 0 0}
.handover-text{max-width:72ch;line-height:1.55;overflow-wrap:anywhere}
.handover-text h2{font-size:1.05rem;margin:1.2rem 0 .35rem}
.handover-text h2:first-child{margin-top:.2rem}
.handover-text ul{margin:.2rem 0 .6rem;padding-left:1.2rem}
.handover-text li{margin:.15rem 0}
.handover-text p{margin:.3rem 0 .6rem}
.handover-text.is-template{color:var(--muted);border-left:3px dashed var(--line);padding-left:14px}
textarea.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;line-height:1.5}
.help code{background:var(--bg);border-radius:4px;padding:0 4px}
.task-new.two{grid-template-columns:2fr 1fr}
@media (max-width:720px){.task-new.two{grid-template-columns:1fr}}
.task-quick{display:flex;gap:8px;margin-top:10px}
.task-quick input{flex:1;min-width:0}

/* ---------- V1: Überarbeitung Oktober 2026 ---------- */
/* Formular-Baukasten */
.fb .rows{display:grid;gap:14px}
/* Leinwand links, Feld-Palette rechts (auf dem Handy: Palette als Leiste unten) */
.fb-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;align-items:start}
.fb-canvas,.fb-sec,.fb-field,.ftabs,.ftabpanel{min-width:0}
.fb-palette{position:sticky;top:calc(var(--top) + 12px)}
@media (min-width:1000px){.fb-palette{top:16px}}
.fb-pal{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 12px 14px;box-shadow:var(--shadow)}
.fb-pal > summary{list-style:none;display:flex;gap:8px;align-items:center;font-weight:850;color:var(--brand-ink);cursor:pointer}
.fb-pal > summary::-webkit-details-marker{display:none}
.fb-pal > p{margin:6px 0 4px;font-size:.8rem}
.fb-pal.flash{animation:fb-flash .9s ease}
@keyframes fb-flash{0%,60%{box-shadow:0 0 0 4px color-mix(in srgb,var(--sun) 70%,transparent)}100%{box-shadow:var(--shadow)}}
.fb-palhead{display:block;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:12px 0 6px}
.fb-palbtns{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.fb-palbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:62px;padding:8px 4px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card-2);color:var(--text);font:700 .78rem/1.15 var(--font);text-align:center;cursor:pointer;transition:border-color .12s,background .12s,transform .12s}
.fb-palbtn .ic{color:var(--brand-ink);width:21px;height:21px}
.fb-palbtn:hover{border-color:var(--brand);background:var(--brand-soft)}
.fb-palbtn:active{transform:scale(.97)}
.ic.ic-inline{width:16px;height:16px;vertical-align:-3px;display:inline}
.fb-palclose{display:none}
@media (max-width:899px){
  /* Handy: Palette fährt als Auswahlfenster von unten hoch («Feld hinzufügen» im Abschnitt) */
  .fb-layout{grid-template-columns:minmax(0,1fr)}
  .fb-palette{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:80;padding:0 8px calc(8px + var(--sab));transform:translateY(105%);transition:transform .22s ease;pointer-events:none}
  .fb-palette.open{transform:none;pointer-events:auto}
  .fb-palette.open::before{content:"";position:fixed;inset:-100vh 0 0;background:rgba(17,22,19,.35);z-index:-1}
  .fb-pal{max-height:72vh;overflow:auto;border-radius:18px;box-shadow:0 -8px 40px rgba(0,0,0,.25)}
  .fb-pal > summary{pointer-events:none}
  .fb-pal > p{display:none}
  .fb-palclose{display:flex;position:absolute;right:18px;top:8px;z-index:2}
  .fb-palbtns{grid-template-columns:repeat(3,1fr)}
  .fb-palbtn{min-height:54px}
}
.rowitem.fb-sec{background:var(--card);border:1px solid var(--line);border-top:5px solid var(--line-2);border-radius:var(--r);padding:14px 18px 16px;transition:border-color .15s}
.rowitem.fb-sec.is-active{border-top-color:var(--brand)}
.fb-sec.is-active > .rowhead .fb-kicker::after{content:" · Ziel für neue Felder";color:var(--brand-ink);letter-spacing:0;text-transform:none;font-weight:700}
.fb-empty{display:none;border:1.5px dashed var(--line-2);border-radius:12px;padding:14px;text-align:center;margin:8px 0 0}
.fb-fields:empty + .fb-empty{display:block}
.fb-addhere{margin-top:10px}
@media (min-width:900px){.fb-addhere{display:none}}
.fb-grip{display:flex;align-items:center;color:var(--faint);cursor:grab;padding:4px 2px;touch-action:none}
.fb-grip .ic{width:18px;height:18px}
.fb-field.dragging{opacity:.55;outline:2px dashed var(--brand);outline-offset:2px}
.fb-ico{display:flex;width:30px;height:30px;border-radius:8px;background:var(--brand-soft);color:var(--brand-ink);align-items:center;justify-content:center;flex:none}
.fb-ico .ic{width:17px;height:17px}
.fb-if{display:inline-flex;color:var(--sun-text)}
.fb-if .ic{width:16px;height:16px}
/* Vorschau des Feldes (nur zugeklappt sichtbar) */
.fb-prev{display:none;padding:4px 0 6px 72px;pointer-events:none}
.fb-field.collapsed .fb-prev{display:block}
.fb-field[data-type=info] .fb-prev{padding-left:72px}
.fbp-input{display:block;max-width:420px;border:1px solid var(--line-2);border-radius:8px;background:var(--field);padding:.35rem .6rem;min-height:34px;color:var(--faint);font-size:.88rem}
.fbp-area{min-height:58px}
.fbp-select{position:relative}
.fbp-select::after{content:"▾";position:absolute;right:10px;top:.35rem;color:var(--muted)}
.fbp-file{border-style:dashed;text-align:center}
.fbp-opts{display:flex;flex-wrap:wrap;gap:4px 16px}
.fbp-opt{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;color:var(--muted)}
.fbp-dot,.fbp-box{display:inline-block;width:14px;height:14px;border:1.5px solid var(--line-2);background:var(--field);flex:none}
.fbp-dot{border-radius:50%}
.fbp-box{border-radius:4px}
.fbp-stars{color:var(--sun);letter-spacing:3px;font-size:1.15rem}
.fbp-info{font-size:.88rem;color:var(--muted);white-space:pre-line;max-height:4.5em;overflow:hidden}
@media (max-width:640px){.fb-prev,.fb-field[data-type=info] .fb-prev{padding-left:0}}
/* Einstellungen je nach Art */
.fb-field:not([data-type=select]):not([data-type=radio]):not([data-type=checkboxes]) .only-choice{display:none}
.fb-field:not([data-type=radio]):not([data-type=checkboxes]) .only-multi{display:none}
.fb-field:not([data-type=checkboxes]) .only-many{display:none}
.fb-field:not([data-type=group]) .only-group{display:none}
.fb-field[data-type=info] .no-info{display:none}
.fb-field:is([data-type=radio],[data-type=checkboxes],[data-type=rating],[data-type=boolean],[data-type=consent],[data-type=file]) .no-ph{display:none}
.fb-choices{background:var(--card-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:6px 0 10px}
.fb-cond{margin-top:8px}
/* Reiter (Felder | Texte | E-Mail) */
.ftabbar{display:flex;gap:4px;border-bottom:1.5px solid var(--line);margin:-4px 0 18px;overflow-x:auto;scrollbar-width:none}
.ftabbar::-webkit-scrollbar{display:none}
.ftab{flex:none;border:0;background:none;font:800 .95rem var(--font);color:var(--muted);padding:.6rem .9rem;border-bottom:3px solid transparent;margin-bottom:-1.5px;cursor:pointer;white-space:nowrap}
.ftab:hover{color:var(--brand-ink)}
.ftab[aria-selected=true]{color:var(--brand-ink);border-bottom-color:var(--brand)}
/* Online-Anmeldung beim Anlass */
.fb-templates{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.fb-tplbtn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--line);background:var(--card-2);border-radius:12px;padding:.55rem .8rem;font:750 .9rem var(--font);color:var(--text);cursor:pointer;text-align:left;max-width:260px}
.fb-tplbtn small{font-weight:600;color:var(--muted);font-size:.78rem}
.fb-tplbtn:hover{border-color:var(--brand);background:var(--brand-soft)}
/* Auswertung der Anmeldungen */
.survey{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.survey .panel{margin:0}
.survey h3{margin:0 0 8px;font-size:1rem}
.bars{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.bars li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;font-size:.9rem}
.bars .bar{grid-column:1 / -1;height:8px;border-radius:99px;background:var(--bg);overflow:hidden}
.bars .bar i{display:block;height:100%;background:var(--brand);border-radius:inherit}
.bars b{font-variant-numeric:tabular-nums}
.big-num{font:650 2rem var(--serif);color:var(--brand-ink)}
.big-num small{font:700 .9rem var(--font);color:var(--muted)}
.stars-row{color:var(--sun);letter-spacing:2px}
.fb-kicker{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.fb-sec > .fb-title{font:650 1.25rem var(--serif);border:0;border-bottom:1.5px solid var(--line);border-radius:0;background:transparent;padding:.3rem 0;width:100%;color:var(--brand-ink)}
.fb-sec > .fb-desc{border:0;border-bottom:1px dashed var(--line);border-radius:0;background:transparent;padding:.3rem 0;width:100%;margin-top:4px;color:var(--muted)}
.fb-sec > .fb-title:focus,.fb-sec > .fb-desc:focus{outline:none;border-bottom-color:var(--brand)}
.fb-notice{margin:6px 0 10px}
.fb-fields{display:grid;gap:6px;margin-top:8px}
.rowitem.block.fb-field{padding:6px 12px;background:var(--bg);border-radius:12px}
.rowitem.block.fb-field:not(.collapsed){background:var(--card);border-color:var(--brand);box-shadow:inset 3px 0 0 var(--brand)}
.fb-field .rowhead{margin-bottom:0}
.fb-field:not(.collapsed) .rowhead{margin-bottom:10px}
.fb-field .blocktoggle{gap:10px}
.fb-lbl{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-type{font-size:.78rem;color:var(--muted);white-space:nowrap}
.fb-req{font-size:.72rem;font-weight:800;color:var(--err);border:1px solid currentColor;border-radius:999px;padding:0 7px;white-space:nowrap}
.fb-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(170px,1fr);gap:12px}
@media (max-width:640px){.fb-main{grid-template-columns:1fr}.fb-type{display:none}}
.fb-q{min-height:42px}
.fb-checks{margin:8px 0}
.fb-field .rowhead .btn.small{min-height:30px;padding:.15rem .5rem}
.fb-field .rowhead{flex-wrap:nowrap}
.fb-field .rowhead .actions{flex:none}
@media (max-width:640px){
  .fb-field .rowhead .actions{gap:2px}.fb-field .rowhead .btn.small{padding:.15rem .35rem}.fb-grip{display:none}.fb-ico{display:none}
  .fb-field.collapsed .rowhead .actions{display:none}   /* Knöpfe erst beim geöffneten Feld – sonst bleibt kein Platz für die Frage */
  .fb-field:not(.collapsed) .rowhead{flex-wrap:wrap}
  .fb-field:not(.collapsed) .blocktoggle{flex-basis:100%}
  .fb-field:not(.collapsed) .rowhead .actions{margin-left:auto}
}
.ic.rot90{transform:rotate(90deg)}
.fb-addsec{margin-top:14px}
.signup-cfg:not(:has(input[name=signup_enabled]:checked)) .signup-more{display:none}
.three{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:14px}
@media (max-width:640px){.three{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.three > :first-child{grid-column:1 / -1}}
.flyer .f-ok-note{display:block;font-size:10pt;color:#5E6862;margin:0 0 2mm}
.social .s-pin{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;vertical-align:-.12em}
/* Protokoll (Lesansicht): Inline-Farben der Mail-Version an Hell/Dunkel anpassen */
.proto-view div,.proto-view p,.proto-view td,.proto-view b{color:var(--text)!important}
.proto-view h1,.proto-view h2{color:var(--brand-ink)!important;border-color:var(--brand-ink)!important}
.proto-view td{border-color:var(--line)!important}
.proto-view [style*="color:#888"],.proto-view [style*="color:#555"],.proto-view [style*="color:#666"]{color:var(--muted)!important}
.proto-view [style*="color:#B3261E"]{color:var(--err)!important}
/* Gruppenstunden: Löschen rot */
.pr-del{display:flex;align-items:center;justify-content:center}
.pr-del input{accent-color:var(--err);width:20px;height:20px;cursor:pointer}
.pr-head span.del{color:var(--err)}
.pr:has(.pr-del input:checked){background:var(--err-soft);box-shadow:inset 3px 0 0 var(--err)}
.pr:has(.pr-del input:checked) input[type=text],.pr:has(.pr-del input:checked) input[type=date]{text-decoration:line-through;color:var(--err)}
/* Abmeldung bei Anlässen */
.att-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.att-list li{display:flex;gap:8px;flex-wrap:wrap}
/* Feedback-Dialog */
dialog.fb{border:0;border-radius:var(--r);padding:0;width:min(560px,calc(100vw - 32px));background:var(--card);color:var(--text);box-shadow:0 20px 60px rgba(0,0,0,.35)}
dialog.fb::backdrop{background:rgba(17,22,19,.45)}
dialog.fb form{padding:22px 22px 18px;margin:0}
dialog.fb textarea{width:100%}
dialog.fb .actions{justify-content:flex-end;margin-top:12px}
/* Hochsicherheits-Knopf */
.danger-zone{border-color:var(--err)!important;box-shadow:inset 4px 0 0 var(--err)}
.danger-zone h2{color:var(--err)}
.danger-zone .confirm-word{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.danger-zone .confirm-word input{max-width:220px}
.btn.danger.solid{background:var(--err);color:#fff;border-color:var(--err)}
.btn.danger.solid:disabled{opacity:.45;cursor:not-allowed}
/* Formular-Baukasten (wie ein Online-Formular) */
.fb-intro{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.fe-wrap{max-width:820px}
/* Notfallblatt-Auswahl */
.sheet-pick{display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}

/* Wichtigster Bildteil */
img.focus-able{cursor:crosshair}
.focus-btn{display:inline-flex;align-items:center;gap:4px;margin:6px 6px 0 0;vertical-align:top;justify-self:start;width:fit-content}
.thumb .focus-btn{display:flex;width:100%;justify-content:center;margin:4px 0}
.focus-dlg{border:0;border-radius:16px;padding:20px;max-width:min(680px,94vw);width:100%;background:var(--card,#fff);color:inherit;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.focus-dlg::backdrop{background:rgba(10,20,12,.55)}
.focus-dlg h2{margin:0 0 6px}
.focus-stage{position:relative;display:block;width:fit-content;max-width:100%;margin:10px auto;cursor:crosshair;touch-action:none;user-select:none;line-height:0}
.focus-stage img{display:block;max-width:100%;max-height:52vh;width:auto;height:auto;border-radius:8px;pointer-events:none}
.focus-h,.focus-v{position:absolute;pointer-events:none;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.45)}
.focus-h{left:0;right:0;height:2px;margin-top:-1px}
.focus-v{top:0;bottom:0;width:2px;margin-left:-1px}
.focus-dot{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px rgba(0,0,0,.55);pointer-events:none}
.focus-dot::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff}
.focus-prev{display:flex;gap:14px;justify-content:center;align-items:flex-end;margin:8px 0}
.focus-prev figure{margin:0;text-align:center;font-size:.8rem;color:var(--muted,#666)}
.focus-prev div{background:#ddd center/cover no-repeat;border-radius:6px}
.focus-prev [data-p=wide]{width:150px;height:62px}
.focus-prev [data-p=tall]{width:54px;height:96px}
.focus-prev [data-p=round]{width:64px;height:64px;border-radius:50%}
.focus-dlg .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* Schnuppern (neue Gruppe) */
.schnupper-checks{grid-template-columns:minmax(0,1fr)}
.schnupper-checks .sc{display:flex;flex-direction:row;flex-wrap:wrap;gap:0 12px;min-width:0;line-height:1.4}   /* Datum, Zeit und Titel umbrechen auf dem Handy */
.schnupper-checks .sc b{min-width:9.5em}
.sflyer .f-top{padding:8mm 14mm 0}.sflyer .f-logo{height:17mm}
.sflyer .f-title{padding:4mm 14mm 2.5mm}
.sflyer h1{font-size:36pt}
.sflyer .sf-target{margin:1mm 0 0;font:800 16pt/1.2 "Nunito",system-ui,sans-serif;color:var(--brand)}
.sflyer .sf-band{margin:0 14mm 4mm;padding:2.6mm 5mm;border-radius:4mm;background:var(--sun);color:var(--sun-ink,#2B1D00);font-weight:900;font-size:13.5pt;text-align:center}
.sflyer .sf-photo{height:auto;flex:1 1 0;min-height:24mm;max-height:62mm}
.sflyer .sf-body{flex:none;padding-top:4mm;gap:3mm}
.sflyer .sf-intro{margin:0;font-size:11pt;line-height:1.42}
.sflyer .sf-dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(40mm,1fr));gap:3mm}
.sflyer .sf-dates div{background:var(--brand);color:#fff;border-radius:4mm;padding:2.6mm 3mm;text-align:center}
.sflyer .sf-dates b{display:block;font-size:12pt;line-height:1.2}
.sflyer .sf-dates span{font-size:10pt;opacity:.9}
.sflyer .sf-where{margin:-.5mm 0 0;text-align:center;font-size:11pt}
.sflyer .sf-cols{display:grid;grid-template-columns:1fr 1.2fr;gap:6mm;align-items:start}
.sflyer h3{font-family:var(--serif);color:var(--brand-ink);font-size:13pt;margin:0 0 1mm}
.sflyer .sf-cols ul{margin:0;padding-left:5mm;font-size:10.5pt;line-height:1.4}
.sflyer .f-details{grid-template-columns:23mm 1fr;gap:1mm 3mm;font-size:10pt;line-height:1.35}
.sflyer .sf-after{display:flex;gap:5mm;align-items:center;background:var(--tint);border-radius:4mm;padding:3mm 5mm}
.sflyer .sf-after>div:first-child{flex:1}
.sflyer .sf-after p{margin:0;font-size:10pt;line-height:1.38}
.sflyer .sf-after .sf-url{margin-top:1.2mm;font-weight:900;color:var(--brand-ink)}
.sflyer .sf-qr{width:25mm;height:25mm;flex-shrink:0}
.sflyer .sf-qr svg{width:100%;height:100%;display:block}
.sflyer .f-team{margin-top:0;padding-bottom:4mm}
.sflyer .f-hand.small{font-size:17pt}.sflyer .f-ok-note{margin:0 0 1mm}
.sflyer .f-people{gap:3mm}
.sflyer .f-person{width:22mm}.sflyer .f-person img,.sflyer .f-ini{width:14mm;height:14mm}.sflyer .f-person b{font-size:10pt}
/* lange Texte: Flyer wird automatisch etwas kompakter, damit alles auf die Seite passt (schnupper.js) */
.sflyer.fit1 h1{font-size:31pt}.sflyer.fit1 .sf-target{font-size:14pt}.sflyer.fit1 .sf-band{font-size:12.5pt;margin-bottom:3mm}
.sflyer.fit1 .sf-body{gap:2.2mm;padding-top:3mm}.sflyer.fit1 .sf-intro{font-size:10pt}.sflyer.fit1 .sf-dates b{font-size:11pt}
.sflyer.fit1 .sf-cols ul{font-size:9.6pt;line-height:1.32}.sflyer.fit1 .f-details{font-size:9.4pt;line-height:1.28}.sflyer.fit1 .sf-after p{font-size:9.4pt}
.sflyer.fit2 .f-top{padding-top:6mm}.sflyer.fit2 .f-title{padding-top:2mm}.sflyer.fit2 h1{font-size:27pt}.sflyer.fit2 .f-hand{font-size:19pt}
.sflyer.fit2 .f-person img,.sflyer.fit2 .f-ini{width:11mm;height:11mm}.sflyer.fit2 .f-person b{font-size:9pt}.sflyer.fit2 .sf-qr{width:21mm;height:21mm}
.sflyer.fit2 .sf-cols ul{font-size:9pt}.sflyer.fit2 .f-details{font-size:8.8pt}.sflyer.fit2 .sf-intro{font-size:9.4pt}
.sf-editbar[hidden]{display:none}
.sf-editbar .sf-img{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex-basis:100%}
.sf-editbar .sf-thumb{width:64px;height:42px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.sf-editbar .sf-img .focus-btn{margin:0}
body.is-test .sf-editbar{top:38px}
.sf-editbar{position:sticky;top:8px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--sun-soft);border:1px solid var(--sun);border-radius:12px;padding:10px 14px;margin:0 0 12px;font-size:.92rem}
.sf-editing .sflyer [data-edit],.sf-editing .sflyer [data-edit-list]{outline:1.5px dashed rgba(184,117,24,.75);outline-offset:1.5px;border-radius:2px;cursor:text}
.sf-editing .sflyer [contenteditable]:focus{outline:2px solid #B87518;background:rgba(255,255,255,.55)}
.sf-editing .sflyer .sf-band[contenteditable]:focus,.sf-editing .sflyer .f-foot [contenteditable]:focus{background:rgba(255,255,255,.25)}
.sheet-a5{width:297mm;height:210mm;display:flex;margin:0 auto;background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.15);page:sflyer5}
.a5-cell{width:148.5mm;height:210mm;overflow:hidden;position:relative}
.a5-cell+.a5-cell{border-left:.2mm dashed #bbb}
.a5-cell .flyer{transform:scale(.7071);transform-origin:top left;box-shadow:none;margin:0;zoom:1;page:auto}
@page sflyer5{size:A4 landscape;margin:0}
@media (max-width:1500px){.sheet-a5{zoom:.78}}
@media (max-width:1100px){.sheet-a5{zoom:.6}}
@media (max-width:860px){.sheet-a5{zoom:.44}}
@media print{.sheet-a5{box-shadow:none;margin:0;zoom:1}}
.social .s-free{margin:8px 0 0;display:inline-block;background:var(--sun);color:var(--sun-ink,#2B1D00);font-weight:900;font-size:14px;padding:5px 10px;border-radius:8px}
.social.story .s-free{font-size:21px}

/* ---------- Lokale Demo ---------- */
.demo-bar{background:#1B3A24}
.demo-bar form.inline{display:inline;margin:0}
.test-bar button{background:none;border:0;color:#fff;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;padding:0 0 0 2px}
.demo-login{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.demo-login h2{font-size:1.05rem;margin:0 0 4px}
.demo-login form{margin:8px 0 0}
.demo-user{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);cursor:pointer;font:inherit}
.demo-user:hover{border-color:var(--brand);background:var(--brand-soft)}
.demo-user span{font-size:.88rem;color:var(--brand-ink);font-weight:700}
.demo-user small{color:var(--muted);font-size:.82rem;line-height:1.3}
.camp-signup:has(input[name=coming][value="0"]:checked) .coming-only{display:none}
.nowrap{white-space:nowrap}
.camp-signup fieldset{margin-top:14px}
/* V1: Startseite – Termine anklickbar, Anmeldung zu Leiteranlässen */
.agenda .ag-open{display:flex;align-items:center;gap:12px;flex:1;min-width:0;color:inherit;text-decoration:none;border-radius:10px}
.agenda .ag-open:hover .t{text-decoration:underline}
.agenda .ag-open:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.agenda li:has(.ag-open:hover){background:var(--panel-2,rgba(0,0,0,.04))}
.signup-now{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;border-left:4px solid var(--sun,#F2B33D)}
.signup-now h2{margin:2px 0}
.signup-now h2 a{color:inherit;text-decoration:none}
.signup-now .kicker{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.signup-now p{margin:0}
.dash-fines{margin-bottom:16px}
@media (max-width:520px){.agenda .ag-open{flex-basis:100%}}
.aemtli-card h2 a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.aemtli-card h2 a:hover{text-decoration:underline}
.aemtli-card h2 .ic.go{width:18px;height:18px;opacity:.55}
/* V1: Protokoll wie RONDI */
.proto-form .rows .row.task-row{grid-template-columns:minmax(0,2fr) minmax(0,1.6fr) auto auto auto;align-items:start}
.proto-form .topic-row{grid-template-columns:minmax(0,1fr) minmax(0,3fr) auto;align-items:start}
@media (max-width:900px){.proto-form .rows .row.task-row,.proto-form .topic-row{grid-template-columns:1fr}}
.who-pick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.who-pick .chips{display:contents}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--brand-soft,#E3ECDF);color:var(--brand-ink);font-size:.88rem;font-weight:600}
.chip-x{border:0;background:transparent;color:inherit;font-size:1.05rem;line-height:1;width:22px;height:22px;border-radius:50%;cursor:pointer}
.chip-x:hover{background:rgba(0,0,0,.08)}
.who-pick select{flex:1;min-width:130px;min-height:36px;padding:.25rem .5rem}
.task-row .done-l{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:.9rem}
.att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:6px 18px}
.att-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}
.att-row .n{font-weight:600}
.att-row .why{min-height:34px;padding:.25rem .5rem}
.att-row[data-state=present] .why{visibility:hidden}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.seg label{margin:0;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label span{display:block;padding:4px 10px;font-size:.84rem;font-weight:600;color:var(--muted)}   /* nur Auswahl mit Radio-Knöpfen (Protokoll), nicht .seg-on im Lager und bei Anmeldungen */
.seg input:checked + span{background:var(--brand);color:#fff}
.seg label:nth-child(2) input:checked + span{background:var(--warn,#B7791F)}
.seg label:nth-child(3) input:checked + span{background:var(--err,#B3261E)}
.seg input:focus-visible + span{outline:2px solid var(--brand);outline-offset:-2px}
.warn-t{color:var(--err)}
/* V1: Protokoll – Webansicht */
.proto-head .kicker{display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sun-ink,var(--muted))}
.pv-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0 0 16px}
.pv-stat{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.pv-stat b{font:650 1.5rem/1.1 var(--serif);color:var(--brand-ink)}
.pv-stat span{font-size:.85rem;color:var(--muted)}
.pv-stat.bad b{color:var(--err)}
.pv-people{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pv-people li{display:flex;flex-direction:column;padding:6px 12px;border-radius:12px;background:var(--bg);font-size:.92rem}
.pv-people li span{font-size:.8rem;color:var(--muted)}
.pv-people li.bad{background:var(--err-soft)}
.pv-toc{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.pv-toc a{font-size:.82rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--bg);color:var(--text);text-decoration:none}
.pv-toc a:hover{background:var(--brand-soft,#E3ECDF)}
.pv-topic{padding:14px 0;border-top:1px solid var(--line);scroll-margin-top:80px}
.pv-topic h3{display:flex;align-items:center;gap:10px;margin:0 0 6px;font-size:1.1rem}
.pv-topic h3 .n{flex:none;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font:700 .8rem/26px system-ui;text-align:center}
.pv-notes{line-height:1.55}
.pv-notes ul{margin:4px 0 8px}
.pv-topic .pv-notes{padding-left:36px}
.pv-tasks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pv-tasks li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:var(--bg)}
.pv-tasks li.mine{box-shadow:inset 3px 0 0 var(--sun,#F2B33D)}
.pv-tasks li.over{background:var(--err-soft)}
.pv-tasks li.done .t{text-decoration:line-through;color:var(--muted)}
.pv-tasks .kicker{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.pv-tasks .t{font-weight:600}
.pv-who{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.pv-who .chip{padding:2px 9px;font-size:.8rem}
.pv-due{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
@media (max-width:560px){.pv-tasks li{flex-direction:column}.pv-due{align-items:flex-start}.pv-topic .pv-notes{padding-left:0}}
#suche{scroll-margin-top:90px}
@media (max-width:640px){.proto-form .savebar{display:flex;gap:8px}.proto-form .savebar .btn{flex:1;min-width:0;padding-inline:10px}}
/* ---------- V1: dezente Animationen ---------- */
/* Seitenwechsel: Menü, Kopf- und Tab-Leiste bleiben stehen, nur der Inhalt gleitet kurz über */
@view-transition{navigation:auto}
.side{view-transition-name:side}
.topbar{view-transition-name:topbar}
.tabbar{view-transition-name:tabbar}
.demo-bar,.test-bar{view-transition-name:testbar}
/* Seitenwechsel: alter Inhalt blendet schnell aus, neuer weich ein – ohne dass sich beide Texte kurz überlagern.
   Menü, Kopf- und Fussleiste wechseln ohne Überblenden (sie bleiben stehen). */
::view-transition-old(root){animation:vt-out .08s ease-out both;mix-blend-mode:normal}
::view-transition-new(root){animation:vt-in .16s ease-out .05s both;mix-blend-mode:normal}
::view-transition-old(side),::view-transition-old(topbar),::view-transition-old(tabbar),::view-transition-old(testbar){display:none}
::view-transition-new(side),::view-transition-new(topbar),::view-transition-new(tabbar),::view-transition-new(testbar){animation:none}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}
::view-transition-group(side),::view-transition-group(topbar),::view-transition-group(tabbar),::view-transition-group(testbar){animation-duration:0s}
@media (prefers-reduced-motion:no-preference){
  /* Browser ohne View Transitions: Inhalt blendet beim Laden kurz ein */
  @supports not (view-transition-name:none){.content{animation:fade-up .25s ease both}}
  /* Knöpfe geben beim Klicken leicht nach */
  .btn,.tb-btn,.linkbtn{transition:background .15s,border-color .15s,color .15s,transform .12s ease}
  .btn:active,.tb-btn:active{transform:scale(.97)}
  /* Meldungen gleiten herein */
  .flash{animation:msg-in .3s ease both}
  /* Termine, Aufgaben, Ämtli: weiche Hover-Zustände */
  .agenda li,.todo li,.pv-tasks li,.task,.aemtli-card,.panel.signup-now{transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}
  .agenda li:has(.ag-open:hover){transform:translateX(2px)}
  .aemtli-card:hover{box-shadow:0 6px 18px rgba(20,40,25,.08)}
  /* Abhaken: Häkchen ploppt kurz auf */
  .tick:hover{transform:scale(1.06)}
  .tick{transition:transform .15s ease,background .15s ease}
  /* Aufklappbares gleitet auf, Pfeile drehen weich */
  details.opened[open]>:not(summary){animation:unfold .22s ease both}   /* nur beim Aufklappen von Hand (app.js), nicht bei jedem Seitenaufbau – sonst springt z. B. das Menü */
  /* neu hinzugefügte Zeilen (Thema, Pendenz) und Verantwortliche */
  .rows>.new,.rowitem.new{animation:fade-up .25s ease both}
  .chip.new{animation:pop .22s ease both}
  /* Dialog «Feedback» */
  dialog[open]{animation:dlg-in .22s cubic-bezier(.2,.8,.2,1) both}
  dialog[open]::backdrop{animation:lb-fade .2s ease both}
  /* Anmelde-Karte auf der Startseite zieht leicht Aufmerksamkeit */
  .signup-now{animation:fade-up .35s ease both}
}
@keyframes fade-up{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes msg-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes unfold{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
@keyframes dlg-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
html{scrollbar-gutter:stable}
.camp-signup fieldset{margin-bottom:12px}
/* Unterer Bereich des Menüs (Hilfe, Feedback, Webseite, Hell/Dunkel, Abmelden) bleibt immer sichtbar: nur die Liste darüber scrollt.
   Ohne position:sticky – das rechnet Firefox/Chrome auf dem Handy beim Ein-/Ausblenden der Adressleiste falsch. */
.side{overflow:hidden}
.side nav{padding-bottom:0;min-height:0}
.nav-scroll{display:flex;flex-direction:column;gap:1px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 -10px;padding:0 10px 14px}
.nav-foot{flex:none;background:var(--card);margin:0 -10px;padding:10px 10px calc(12px + var(--sab));box-shadow:0 -10px 16px -12px rgba(0,0,0,.18)}
.upload-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.upload-progress{display:flex;align-items:center;gap:10px;flex:1;min-width:220px}
.upload-progress .bar{flex:1;height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.upload-progress .bar i{display:block;height:100%;width:0;background:var(--brand);border-radius:inherit;transition:width .25s ease}
.upload-progress .txt{font-size:.88rem;color:var(--muted);white-space:nowrap}
/* Benachrichtigungen (Webseiten-Ämtli) */
.push-msg-card{margin-bottom:10px}
.push-msg-card>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:8px;align-items:center;list-style:none}
.push-msg-card>summary::-webkit-details-marker{display:none}
.push-msg-card>summary .ic{width:18px;height:18px}
.push-msg-card .actions form{display:inline}
/* Hell/Dunkel: neues Farbschema breitet sich als Kreis vom Schalter aus (theme.js) – die ganze Seite als ein Bild */
html.theme-vt *, html.theme-vt *::before, html.theme-vt *::after { view-transition-name: none !important; }
html.theme-vt::view-transition-old(root), html.theme-vt::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
/* Hell/Dunkel ohne Kreis (Firefox): Farben gleiten über */
.theme-anim, .theme-anim *, .theme-anim *::before, .theme-anim *::after { transition: background-color .35s ease, color .35s ease, border-color .35s ease, fill .35s ease !important; }
/* Jubla-Seite: Anmelden über den Leiterbereich der Schar */
.sso-buttons{display:grid;gap:10px;margin:14px 0 18px}
.guest-login{border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.guest-login summary{cursor:pointer;color:var(--muted);font-size:.92rem;text-align:center;list-style:none}
.guest-login summary::-webkit-details-marker{display:none}
.guest-login[open] summary{margin-bottom:10px}
.origin-tag{display:inline-block;font-size:.72rem;font-weight:700;padding:.05rem .45rem;border-radius:99px;background:var(--line);color:var(--muted);vertical-align:middle;margin-left:4px}
.jubla-note{border-left:4px solid var(--sun);background:var(--card);padding:.7rem .9rem;border-radius:8px;margin:0 0 16px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:12px 0}.kv dt{font-weight:700;color:var(--muted)}.kv dd{margin:0}
/* Lageranmeldung: Vortrupp / Aufstellweekend */
.extra-opts{display:flex;flex-wrap:wrap;gap:10px}
.extra-opt{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);cursor:pointer;min-width:220px}
.extra-opt:has(input:checked){border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.extra-opt input{flex:none;margin:0}
.extra-opt span{display:flex;flex-direction:column;line-height:1.3}
.extra-opt b{font-weight:700}
.extra-opt small{color:var(--muted);font-size:.85rem;white-space:nowrap}
/* QR-Codes für Flyer (Lager → QR-Codes) */
.qr-opts{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end;margin-bottom:16px}
.qr-opts .field{margin:0}
.qr-opts input[type=color]{width:56px;height:38px;padding:2px}
.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.qr-card{display:flex;flex-direction:column}
.qr-card h3{margin:0 0 4px}
.qr-box{background:#fff;border-radius:var(--r-sm);padding:6px;margin:10px 0;aspect-ratio:1;display:flex;align-items:center;justify-content:center}
.qr-box svg{width:100%;height:100%;display:block}
.qr-url{word-break:break-all;margin:0 0 10px}
.qr-card .actions{margin-top:auto}
/* Anlass-Flyer: QR-Code zur Online-Anmeldung */
.flyer .f-qr{display:flex;align-items:center;gap:4mm;margin-top:4mm;font-size:10.5pt;line-height:1.35}
.flyer .f-qr .sf-qr{width:24mm;height:24mm;flex-shrink:0}
.flyer .f-qr .sf-qr svg{width:100%;height:100%;display:block}
/* Kasse: Rechnungsliste und Liste für die Gemeinde */
.kasse tr.is-paid td{background:var(--brand-soft)}
.kasse .paid-form{margin:0}
.kasse .check{display:flex;align-items:center;gap:6px;white-space:nowrap}
.print-only{display:none}
@media print{.print-only{display:block;margin:0 0 8px}.kasse{font-size:10pt}.kasse .check input{display:none}}
/* Leitergespräche */
.talk-note{margin:0 0 12px}
.talk-note p{margin:0 0 6px}
.talk-mine{margin-bottom:14px}
.talk-mine li{background:var(--brand-soft)}
.talk-mine .t .ic{width:18px;height:18px;vertical-align:-3px}
.talk-day h3,.talk-h{font-size:1rem;margin:16px 0 8px}
.talk-slots{display:flex;flex-wrap:wrap;gap:8px}
.talk-slots form{margin:0}
.talk-slot{display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:40px;padding:.3rem .8rem;border-radius:999px;border:1.5px solid var(--line-2);background:var(--card);color:var(--text);font:800 .95rem var(--font);cursor:pointer}
button.talk-slot:hover,button.talk-slot:focus-visible{border-color:var(--brand);color:var(--brand-ink)}
.talk-slot.is-mine{background:var(--brand);border-color:var(--brand);color:#fff;cursor:default}
.talk-slot.is-taken{color:var(--faint);text-decoration:line-through;background:var(--bg);border-color:var(--line);opacity:.6;cursor:default}
button.talk-slot{border-color:var(--brand);color:var(--brand-ink)}
.talk-assign{display:flex;gap:6px;align-items:center}
.talk-assign select{min-height:34px;padding:.2rem .5rem;font-size:.88rem;max-width:12rem}
.btn-row{display:flex;flex-wrap:wrap;gap:8px}
.btn-row form{margin:0}
/* V1.10: An-/Abmelden direkt in der Liste – das Feld für den Grund klappt unter dem Termin auf */
.agenda li:has(.att-inline){flex-wrap:wrap}
.att-inline{order:10;flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 0 64px}   /* immer zuunterst, auch nach weiteren Knöpfen */
.att-inline[hidden],[data-reveal][aria-expanded="true"]{display:none}
.att-inline input[name=reason]{flex:1 1 220px;min-width:0;min-height:38px}
.att-inline .actions{gap:6px}
@media (max-width:520px){
  .att-inline{margin-left:0}.att-inline .actions{flex:1 1 100%}.att-inline .actions .btn{flex:1}
  .agenda li > .btn[aria-expanded="false"] + .att-inline + .actions{margin-left:0}   /* «Abmelden» und «Protokoll» nebeneinander */
}
/* V1.10: Meldung nach dem Speichern unten einblenden, wenn die Seite an derselben Stelle bleibt */
.toast{position:fixed;left:50%;bottom:calc(20px + var(--sab));z-index:50;width:min(560px,calc(100% - 32px));transform:translateX(-50%);display:grid;gap:6px;padding-right:0;transition:opacity .25s ease,transform .25s ease}
.toast .flash{margin:0;padding-right:44px;box-shadow:0 8px 28px rgba(20,30,24,.18)}
.toast-x{position:absolute;top:4px;right:4px;width:36px;height:36px;border:0;border-radius:999px;background:none;color:inherit;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted)}
.toast-x:hover{background:rgba(0,0,0,.06)}
.toast.gone{opacity:0;transform:translate(-50%,10px)}
@media (max-width:999px){.toast{bottom:calc(env(safe-area-inset-bottom,0px) + var(--tab) + 12px)}}
@media print{.toast{display:none}}
/* V1.10: «Noch ohne Ämtli / Gruppe» – direkt zuteilen; Zeile, zu der nach dem Speichern gesprungen wird, kurz hervorheben */
.quick-assign{border-left:4px solid var(--sun,#F2B33D)}
.quick-assign h2{margin-top:0}
.qa-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.qa-row select{flex:1 1 200px;min-width:0;width:auto}
.qa-row .btn{flex:none}
@media (max-width:520px){.qa-row .btn{flex:1 1 100%}}
tr:target > td{background:var(--sun-soft)}
@media (prefers-reduced-motion:no-preference){tr:target > td{animation:row-hl 2.4s ease both}}
@keyframes row-hl{0%,40%{background:var(--sun-soft)}100%{background:transparent}}
/* V1.10: Leiter bearbeiten – Gruppe und Ämtli gleich im Formular */
.team-pick{align-items:start}
.team-pick fieldset{align-content:start}
.team-pick .checks{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
/* V1.10: Sprung zu einem Abschnitt (#…) landet nicht unter dem Test-Balken oder der Kopfzeile am Handy */
html{scroll-padding-top:20px}
html:has(body.is-test){scroll-padding-top:48px}
@media (max-width:999px){
  html{scroll-padding-top:calc(58px + env(safe-area-inset-top) + 12px)}
  html:has(body.is-test){scroll-padding-top:calc(58px + env(safe-area-inset-top) + 40px)}
}
/* V1.11: Knopf-Reihen mit Formularen (statt <p>, das der Browser vor einem Formular schliesst) */
.btn-gap{margin:.9em 0}
/* V1.11: Lager → Infos – externe Lagerleitung (eine Zeile pro Person) */
.ext-rows{display:grid;gap:10px}
.ext-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.2fr) auto;gap:8px;align-items:center;padding:10px;border-radius:var(--r-sm);background:var(--bg)}
.ext-row .ext-photo{grid-column:1 / 5;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-weight:600}
.ext-row .ext-photo img{width:48px;height:48px;object-fit:cover;border-radius:50%}
.ext-row .ext-photo label{display:flex;gap:8px;align-items:center;cursor:pointer}
.ext-row .ext-photo input[type=file]{width:auto;max-width:100%;padding:4px}
.ext-row .ext-opts{grid-column:1 / 5;display:flex;flex-wrap:wrap;gap:4px 18px}
.ext-row .ext-opts label{display:flex;gap:8px;align-items:center;font-weight:600;cursor:pointer}
.ext-row .ext-del{grid-column:5;grid-row:1}
.ext-row .ext-state{grid-column:1 / -1}
@media (max-width:640px){.ext-row{grid-template-columns:minmax(0,1fr) auto}.ext-row > input{grid-column:1}.ext-row .ext-del{grid-column:2}.ext-row .ext-opts,.ext-row .ext-state,.ext-row .ext-photo{grid-column:1 / -1}}
/* V1.11: Knöpfe neben dem Seitentitel – am Handy auf eigener Zeile, damit sie umbrechen statt über den Rand zu ragen */
@media (max-width:640px){.pagehead > .actions{flex:1 1 100%}}
@media (max-width:640px){.cardify td .nowrap{white-space:normal}}   /* lange Nummern in Tabellen-Karten dürfen umbrechen */
/* V1.11: Lager → Leiter – wie melden sich die Leiter an (hier, externer Link, aus)? */
.signup-mode .signup-url{display:none;margin-top:6px}
.signup-mode:has(input[value=link]:checked) .signup-url{display:grid}
.signup-here{display:grid;gap:12px}
#kurse:has(input[name=leader_signup]:not([value=here]):checked) .signup-here,#kurse:has(input[name=leader_signup][value=off]:checked) .signup-deadline{display:none}
/* V1.11: Protokoll ohne Internet – Hinweis in der Speichern-Leiste und Frage «Stand wiederherstellen?» */
.savebar .draft-state{margin-left:auto;align-self:center}
.draft-ask{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.draft-ask span{flex:1 1 260px}
/* V1.11: Handy mit Tastatur – Feedback-Dialog oben statt in der Mitte (springt nicht, wenn die Tastatur aufgeht), die Seite
   dahinter scrollt nicht mit, und die untere Leiste verschwindet, solange getippt wird oder ein Dialog offen ist */
body:has(dialog[open]){overflow:hidden}
@media (max-width:640px){dialog.fb{margin:12px auto auto;max-height:calc(100dvh - 24px);overflow:auto}dialog.fb textarea{min-height:7.5em}}
@media (max-width:999px){
  body:has(dialog[open]) .tabbar,
  body:has(:is(textarea,input:not([type=checkbox],[type=radio],[type=button],[type=submit],[type=file],[type=range],[type=color],[type=date],[type=time],[type=datetime-local])):focus) .tabbar{display:none}
  body:has(:is(textarea,input:not([type=checkbox],[type=radio],[type=button],[type=submit],[type=file],[type=range],[type=color],[type=date],[type=time],[type=datetime-local])):focus) :is(.savebar,.stickybar){bottom:0}
}
/* V1.12: Knopf mit Symbol und mehrzeiligem Text – Text neben dem Symbol, nicht zentriert weit davon entfernt */
.btn:has(.ic){text-align:left}
/* V1.13: Datum und zwei Zeiten in einer schmalen Karte (Lager-Übersicht) – Datum über die ganze Breite, Zeiten darunter */
.date-times{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.date-times > :first-child{grid-column:1 / -1}
.cockpit .btn{max-width:100%;white-space:normal}   /* lange Knöpfe brechen in der Karte um, statt über den Rand zu ragen */
/* System-Log (/admin/log): Übersicht, Filter, Einträge nach Tagen */
.log-alert{border:2px solid var(--err)}
.log-alert h2,.log-alert h2 .ic{color:var(--err)}
.log-notice{border:2px solid var(--sun,#E8A33D)}
.log-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px;margin-bottom:16px}
.log-tile{display:grid;gap:2px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line-2);border-radius:var(--r-sm);padding:12px 14px;color:var(--text);text-decoration:none;min-width:0}
.log-tile:hover{border-color:var(--brand);border-left-color:inherit;box-shadow:var(--shadow)}
.log-tile b{font-family:var(--serif);font-size:1.5rem;line-height:1.15;color:var(--brand-ink)}
.log-tile-label{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.log-tile.ok{border-left-color:var(--ok)}
.log-tile.warn{border-left-color:var(--warn)}
.log-tile.bad{border-left-color:var(--err)}
.log-tile.warn:hover{border-left-color:var(--warn)}.log-tile.ok:hover{border-left-color:var(--ok)}.log-tile.bad:hover{border-left-color:var(--err)}
.log-tab-n{display:inline-block;min-width:1.3em;padding:0 .35em;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:.78rem;text-align:center}
.log-filter-top{display:flex;gap:8px 10px;align-items:flex-end;flex-wrap:wrap}
.log-filter-top .field{flex:1 1 220px;margin:0;min-width:0}
.log-filter-more{margin-top:10px}
.log-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;align-items:end;margin-top:10px}
.log-filter-grid .field{margin:0;min-width:0}
.log-filter-grid select,.log-filter-grid input{width:100%;min-width:0}
.log-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 4px;padding-top:12px;border-top:1px solid var(--line)}
.log-summary p{margin:0}
.log-day{margin:18px 0 2px;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-family:var(--font)}
.log-list{list-style:none;margin:0;padding:0}
.log-entry{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.log-list > li:last-child{border-bottom:0}
.log-ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink)}
.log-ic .ic{width:17px;height:17px}
.lvl-warn .log-ic{background:var(--warn-soft);color:var(--warn)}
.lvl-error .log-ic{background:var(--err-soft);color:var(--err)}
.lvl-update .log-ic{background:var(--ok-soft);color:var(--ok)}
.log-main{flex:1;min-width:0}
.log-main p{margin:0}
.log-title{font-weight:700;overflow-wrap:anywhere}
.log-detail{white-space:pre-line;overflow-wrap:anywhere;margin-top:1px}
.log-meta{color:var(--faint);margin:3px 0 0}
.log-main .log-meta{margin-top:3px}
.log-meta a{color:inherit}
.log-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}
.log-error{padding:12px 0;border-bottom:1px solid var(--line)}
.log-error .log-meta{margin:0 0 6px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.log-error pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.82rem}
@media (max-width:720px){
  .log-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .log-tile{padding:9px 11px}
  .log-tile b{font-size:1.25rem}
  .log-tabs{flex-wrap:wrap;overflow:visible}
  .log-tabs a{padding:.35rem .75rem;font-size:.92rem}
  .log-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .log-filter-grid > .field:has(select[name="kategorie"]),.log-filter-go{grid-column:1 / -1}
  .log-filter-go .btn{width:100%}
  .cardify td.log-hint{display:block}
  .cardify td.log-hint::before{display:block;margin-bottom:2px}
}

/* Auswahl von Personen und Ämtli (Suchfeld mit Liste, app.js) */
.pick{flex:1;min-width:min(100%,180px);max-width:100%}
.pick-src{position:absolute;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}
.pick-hidden{display:none!important}
.pick-wrap{position:relative}
input.pick-field{padding-right:2.2rem;background:var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A928C' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat right .7rem center/1rem;text-overflow:ellipsis}
.pick-clear{position:absolute;top:22px;right:6px;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:50%;background:var(--field);color:var(--muted);font-size:1.15rem;line-height:1;cursor:pointer}
.pick-clear:hover{background:var(--brand-soft);color:var(--text)}
.pick-clear[hidden],.pick-list[hidden]{display:none}
.pick-chips{display:flex;flex-wrap:wrap;gap:6px}
.pick-chips:not(:empty){margin-bottom:8px}
.pick-x{width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.05rem;line-height:1;cursor:pointer}
.pick-x:hover{background:rgba(0,0,0,.08)}
.pick-list{position:absolute;z-index:60;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-width:min(380px,calc(100vw - 32px));max-height:min(300px,45vh);overflow-y:auto;overscroll-behavior:contain;padding:6px;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-sm);box-shadow:0 8px 28px rgba(31,39,34,.18)}
.pick.up .pick-list{top:auto;bottom:calc(100% + 4px)}
.pick.end .pick-list{left:auto;right:0}
.pick-group{padding:8px 10px 4px;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.pick-opt{position:relative;padding:.55rem 2rem .55rem .7rem;border-radius:8px;font-weight:600;line-height:1.3;cursor:pointer}
.pick-opt:hover,.pick-opt.active{background:var(--brand-soft)}
.pick-opt.on{color:var(--brand-ink);font-weight:800}
.pick-opt.on::after{content:"✓";position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}
.pick-opt.away{color:var(--muted)}
.pick-opt.off{opacity:.5;cursor:default}
.pick-none{padding:.6rem .7rem;color:var(--muted)}
.pick.invalid .pick-field{border-color:var(--err)}
.pick.invalid::after{content:"Bitte auswählen";display:block;margin-top:4px;color:var(--err);font-size:.85rem;font-weight:700}
@media print{.pick-field,.pick-list,.pick-clear,.pick-x{display:none!important}}
@media (max-width:640px){.pick-list{width:100%;min-width:0;max-width:none}.pick-opt{padding-top:.7rem;padding-bottom:.7rem}}

/* Zeit von–bis, Knöpfe auf dem Handy */
.time-range{display:flex;align-items:center;gap:6px;color:var(--muted)}
.time-range input{flex:1;min-width:0}
.pr input[type=time]{min-height:38px;padding:.35rem .4rem;font-size:.95rem}
.field[hidden]{display:none}
@media (max-width:640px){.savebar .field.check{flex:1 0 100%;margin:0}.pr .time-range{grid-column:2 / -1;grid-row:2}}

/* Halbjahresplan auslesen: Kontrollseite */
.pr-off{opacity:.72}
.pr-off:has(input:checked){opacity:1}
.pr-note{grid-column:2 / -1;color:var(--sun-text);font-weight:700}
@media (max-width:640px){.pr .w{grid-column:2 / -1}}
.pr-take{display:flex;align-items:center;justify-content:center;cursor:pointer}
@media (max-width:640px){.ext-row .ext-photo label{flex-wrap:wrap;min-width:0;max-width:100%}.ext-row .ext-photo input[type=file]{flex:1 1 100%;width:100%;min-width:0}}

/* Reihenfolge auf dem Foto der Lagerleitung */
.photo-order[hidden]{display:none}
.photo-order-list{margin:8px 0 0;padding:0;list-style:none;counter-reset:pos;display:grid;gap:6px}
.photo-order-list li{counter-increment:pos;display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r-sm);background:var(--bg)}
.photo-order-list li::before{content:counter(pos) ".";min-width:1.6em;font-weight:800;color:var(--muted)}
.photo-order-list .n{flex:1;min-width:0;font-weight:600}
.photo-order-list li:first-child [data-order="up"],.photo-order-list li:last-child [data-order="down"]{visibility:hidden}
