/* Radici – Ergänzungen zur Vorlage (Links statt Buttons, Formulare, Tabellen, Meldungen) */
a{color:inherit}
.logo-h{text-decoration:none}
.nav a{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border-radius:8px;padding:10px 12px;font-size:13.5px;font-weight:500;color:var(--text-2);text-decoration:none;transition:background .15s,color .15s}
.nav a:hover{background:var(--offwhite);color:var(--anthrazit)}
.nav a[aria-current="page"]{background:var(--rot-hauch);color:var(--rot)}
.nav a svg{width:18px;height:18px;flex:none}
.rail{overflow-y:auto}
a.user{text-decoration:none}
a.linkbtn{text-decoration:none;display:block}
form.inline{margin:0;display:inline}
.tile{text-decoration:none;color:inherit}
.btn{text-decoration:none;cursor:pointer}
.appfoot{margin-top:56px;font-size:11.5px;color:var(--text-2);letter-spacing:.06em;text-align:center}
@media (max-width:860px){
  .tabbar a{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9.5px;font-weight:500;color:var(--text-2);padding:6px 0;border-radius:8px;min-width:0;text-decoration:none;flex:0 0 64px}
  .tabbar a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tabbar a svg{width:20px;height:20px}
  .tabbar a[aria-current="page"]{color:var(--rot)}
  .tabbar{display:flex!important;overflow-x:auto;scrollbar-width:none}
}
@media (min-width:861px){.tabbar{display:none!important}}
/* Formulare */
.field input[type=password],.field input[type=email],.field select{border:1px solid var(--sand);border-radius:8px;padding:11px 13px;font:inherit;font-size:14.5px;background:var(--weiss);color:var(--anthrazit);width:100%}
.field input:focus,.field select:focus{outline:2px solid var(--rot);outline-offset:0;border-color:transparent}
.card form,.card{gap:18px}
.form-narrow{max-width:520px;display:flex;flex-direction:column;gap:18px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-grid .full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.check{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--rot)}
.checks{display:flex;flex-direction:column;gap:8px}
/* Meldungen */
.alert{border-radius:8px;padding:12px 14px;font-size:13.5px;margin-bottom:18px;border:1px solid}
.card .alert{margin-bottom:0}
.alert.ok{background:#E3ECE5;border-color:#C5D8CA;color:var(--c-personal)}
.alert.err{background:var(--rot-hauch);border-color:#EBC3C9;color:var(--rot-dunkel)}
.alert.info{background:#E6ECF1;border-color:#C9D5E0;color:var(--c-info)}
.alert code{font-size:15px;font-weight:600;letter-spacing:.04em;background:var(--weiss);padding:2px 6px;border-radius:4px;user-select:all}
/* Tabellen */
.tbl-wrap{overflow-x:auto;background:var(--weiss);border:1px solid var(--sand-hell);border-radius:12px;margin-bottom:24px}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);padding:12px;border-bottom:1px solid var(--sand-hell);background:var(--offwhite);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--sand-hell);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl td.muted,.muted{color:var(--text-2)}
.tbl a{color:var(--rot);font-weight:500;text-decoration:none}
.tbl a:hover{text-decoration:underline}
.tbl select{border:1px solid var(--sand);border-radius:6px;padding:5px 6px;font:inherit;font-size:13px;background:var(--weiss)}
.matrix td:first-child,.matrix th:first-child{position:sticky;left:0;background:var(--weiss);z-index:1}
.matrix th:first-child{background:var(--offwhite)}
.pill.inline{margin:0}
.pill.aus{background:var(--sand-hell);color:var(--text-2)}
.pill.warn{background:#F3EAD9;color:var(--c-termin)}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.head-row .ph-head{margin-bottom:0}
.subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.subnav a{border:1px solid var(--sand-hell);background:var(--weiss);border-radius:99px;padding:7px 14px;font-size:13px;font-weight:500;color:var(--text-2);text-decoration:none}
.subnav a[aria-current="page"]{background:var(--anthrazit);border-color:var(--anthrazit);color:var(--weiss)}
/* Einfache Seiten (Fehler) */
body.plain{background:var(--offwhite)}
.plain-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.plain-wrap .card .logo-h .lg-mark{width:52px}.plain-wrap .card .logo-h .lg-word{width:132px}
/* Pinnwand (v0.2.0): Links statt Buttons, Ergänzungen */
.sr-only{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.pw-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
a.chip,a.act,a.att-file,a.att-img,a.xbtn{text-decoration:none;color:inherit}
a.chip[aria-pressed="true"]{color:var(--weiss)}
a.att-img{display:block}
a.act{color:var(--text-2)}
.p-actions form.inline{display:inline-flex}
.p-actions .act-edit{margin-left:auto}
.p-actions .act-edit + .act.del{margin-left:0}
.p-actions form.confirm{margin-left:auto}
.p-when{color:var(--c-termin);font-weight:600}
.cmt form.cdel{margin:2px 0 0}
.cmt form.cdel .linklike{font-size:11.5px}
.agenda a{display:flex;gap:12px;align-items:flex-start;text-decoration:none;color:inherit;width:100%}
.agenda a:hover span:last-child{color:var(--rot)}
.agenda-time{display:block;font-size:11.5px;color:var(--text-2)}
a.post-link{text-decoration:none;color:inherit}
a.post-link:hover{border-color:var(--sand)}
.post p{margin:0;font-size:13.5px;color:var(--text-2)}
.fitem input[type=checkbox]{accent-color:var(--rot)}
label.fitem{cursor:pointer;padding-right:10px}

/* v0.3.0 Benutzerstatus */
.filterbar{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.filterbar a{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--sand-hell);border-radius:99px;padding:6px 13px;font-size:13px;font-weight:500;color:var(--anthrazit);text-decoration:none;background:var(--weiss)}
.filterbar a:hover{border-color:var(--anthrazit)}
.filterbar a[aria-current]{background:var(--anthrazit);border-color:var(--anthrazit);color:var(--weiss)}
.filterbar .cnt{font-size:11px;opacity:.7}
.row-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.btn-xs{padding:5px 10px;font-size:12px;font-weight:500;border-radius:6px}
.tbl a.btn{font-weight:500;color:var(--anthrazit)}
.tbl a.btn:hover{text-decoration:none}
.btn-ghost.danger,.tbl a.btn.danger{color:var(--rot);border-color:var(--rot-hauch)}
.btn-ghost.danger:hover{border-color:var(--rot)}
.btn-danger{background:var(--rot);color:var(--weiss);padding:12px 18px}
.btn-danger:hover{background:var(--rot-dunkel)}
.pill.arch{background:var(--anthrazit);color:var(--weiss)}
.tbl tr.row-off td{color:var(--text-2)}
.small{font-size:12.5px}
.status-box .actions{margin-top:12px}

/* ---------- Teamsitzung und Pendenzen (v0.4.0) – Ergänzungen zur Vorlage (Links/Formulare statt Buttons) ---------- */
.seg a{border:0;background:none;border-radius:7px;padding:8px 16px;font-size:13.5px;font-weight:600;color:var(--text-2);display:inline-flex;gap:8px;align-items:center;text-decoration:none}
.seg a[aria-selected="true"]{background:var(--weiss);color:var(--anthrazit);box-shadow:0 1px 3px rgba(46,46,48,.12)}
.ts-act-col{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.ts-confirm{display:flex;flex-direction:column;align-items:flex-end;gap:10px;margin:0}
.confirm-end.conf-dark{color:var(--anthrazit)}
.ts-hero:not(.running) .linklike{color:var(--text-2)}
a.ac-head{color:inherit;text-decoration:none;cursor:pointer}
a.chip{text-decoration:none}
.tk > form.tk-f{margin:0;min-width:0}
.tk-act{display:flex;gap:2px;justify-content:flex-end}
.pd-head,.tks.pd .tk{grid-template-columns:minmax(0,1fr) 110px 70px 64px}
.src-link{color:inherit;text-decoration:underline;text-decoration-color:var(--sand)}
.src-link:hover{color:var(--rot)}
.ti-save{display:flex;align-items:center;gap:12px}
.ti-save .saved{font-size:12px;color:var(--text-2)}
.ti-notes{display:flex;flex-direction:column;gap:14px;margin:0}
.prot-notes{white-space:pre-line}
.ti-body > p{white-space:pre-line;margin:0;font-size:14px}
.tk-form input[type=text]{min-width:0}
.pd-lghint,.pd-editnote{margin:-6px 0 14px}
.pd-filter{display:inline-flex;gap:6px}
/* v0.16.0 – Pendenzen: Nummer-Badge (dezent) und Suchfeld */
.pd-nr{display:inline-block;margin-right:8px;padding:1px 7px;border:1px solid var(--sand);border-radius:6px;background:var(--offwhite,#faf8f5);color:var(--text-2);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;vertical-align:1px}
.tk.done .pd-nr{opacity:.6}
.pd-search{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.pd-search input[type=search]{min-width:min(280px,100%);flex:1 1 220px;border:1.5px solid var(--sand);border-radius:8px;padding:0 12px;min-height:40px;font:inherit;font-size:13.5px;background:var(--weiss);color:var(--anthrazit)}
.pd-editnote .pd-nr{margin-right:6px}
@media (max-width:640px){.pd-search{width:100%}.pd-search input[type=search]{flex:1 1 100%}}

.home-status{margin-bottom:44px}
a.home-box{text-decoration:none;color:inherit;transition:border-color .2s}
a.home-box:hover{border-color:var(--sand)}
.home-box .late,.late{color:var(--rot)}
.prot-tbl{margin-top:6px}
.prot-tbl td.late{color:var(--rot);font-weight:600}
@media (max-width:860px){
  .ts-act-col,.ts-confirm{align-items:stretch}
  .pd-head{display:none}
  .tks.pd .tk{grid-template-columns:minmax(0,1fr) auto}
  .tk-act{grid-row:2;grid-column:2}
}
@media print{
  .rail,.topbar,.tabbar,.appfoot,.no-print,.toast{display:none!important}
  #app{display:block}
  .main{margin:0;padding:0}
  .main-inner{max-width:none;padding:0}
  body{background:#fff}
  .prot-att{background:none;border:1px solid #ccc}
  .decision{background:none;border:1px solid #9bb5a2}
  .tbl-wrap,.tbl{border-color:#ccc}
  .prot li{break-inside:avoid}
  a{text-decoration:none;color:inherit}
}

/* ---------- Verzeichnis (v0.5.0) – Ergänzungen zur Vorlage (Links/Formulare statt Buttons) ---------- */
.seg.sub a{border-radius:0;padding:10px 2px;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;box-shadow:none}
.seg.sub a[aria-selected="true"]{background:none;box-shadow:none;border-bottom-color:var(--rot);color:var(--anthrazit)}
a.lg-card{text-decoration:none}
a.lg-card[hidden],.pl-row[hidden],.pl-grp[hidden]{display:none}
a.lg-link{color:inherit;text-decoration:none}
a.lg-link:hover b{color:var(--rot)}
a.lgtag{text-decoration:none}
a.zbackbtn,a.xbtn{text-decoration:none}
.lg-search{margin:0}
.lg-foot .muted{color:var(--text-2);font-size:12px}
.btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.alert.warn{background:#F3EAD9;color:var(--c-termin);border-color:#E5D3AE}
.lg-notes{white-space:pre-line}
.au-hw a.au-mono{color:inherit;text-decoration:none}
.au-hw a.au-mono:hover{color:var(--rot)}
.au-hw .hw-notes{font-size:12px;color:var(--text-2);margin-top:4px}
.hw-act{display:flex;gap:12px;align-items:center}
.hw-act form{margin:0}
.au-addhw .au-hwf + .au-hwf{margin-top:12px}
.au-addhw .row-actions{margin-top:14px}
.pl-row > a.ibtn{justify-self:end}
.pl-delform{margin:-4px 24px 20px;text-align:left}
.pl-cats{margin-top:28px}
.pl-cats summary{cursor:pointer}
.pl-catlist{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:8px}
.pl-catlist li{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--sand-hell);padding-bottom:8px}
.pl-catlist form{margin:0}
.pl-catadd{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.pl-catadd .field{margin:0;flex:1;min-width:200px}
.im-box{padding:0;overflow:hidden}
.im-box .sheet-head{padding:20px 24px 0}
.im-box .im-body{padding:4px 24px 0}
.im-box form{margin:0}
.im-box .im-foot{padding:16px 0 20px}
.im-file .linklike{margin-left:auto}
.im-hint{display:block;color:var(--c-termin);font-size:11.5px;margin-top:3px}
.im-tab td{vertical-align:top}


/* v0.6.0 Handwerkeraufträge */
.au-st.st-entwurf{background:var(--offwhite);color:var(--text-2)}
.au-st.st-bereit{background:var(--rot-hauch);color:var(--rot);border-color:#EFC9CF}
.au-st.st-storniert{background:var(--sand-hell);color:var(--text-2);text-decoration:line-through}
.au-st.is-pill{display:inline-block}
.ha-stf{display:inline-flex;gap:6px;align-items:center}
.ha-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px}
.ha-filter .vz-search{flex:1 1 260px}
.ha-filter select{font:inherit;font-size:13.5px;border:1px solid var(--sand-hell);border-radius:8px;padding:8px 10px;background:var(--weiss)}
.ha-det{display:flex;flex-direction:column;gap:16px}
.ha-hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ha-hist li{display:flex;flex-direction:column;font-size:13.5px;border-left:2px solid var(--sand-hell);padding-left:12px}
.ha-hist small{color:var(--text-2);font-size:12px}
.ha-mode{font-size:12px}
.au-hdr div[hidden]{display:none}
.field.has-err input,.field.has-err select,.field.has-err textarea{border-color:var(--rot)}
#au-errs ul{margin:6px 0 0;padding-left:18px}
.fitem a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px;color:inherit}
a.ha-cnt{text-decoration:none}

/* ---------- Schadenereignisse (v0.7.0) ---------- */
.au-st.st-offen{background:var(--rot-hauch);color:var(--rot);border-color:#EFC9CF}
.au-st.st-offerte{background:#F6EEDF;color:#7A5A1E;border-color:#E2C79A}
.au-st.is-pill{display:inline-block}
.se-desc{margin-top:6px;font-size:13.5px;color:var(--text-2);max-width:70ch}
.se-rowlink{color:inherit;text-decoration:none}
.se-rowlink:hover b{text-decoration:underline;text-underline-offset:3px}
.se-notes{flex:1 1 260px}
.se-notes textarea{width:100%;min-height:42px;border:1px solid var(--sand)!important;border-radius:8px;padding:9px 12px;font:inherit;font-size:13.5px;resize:vertical}
.se-dl{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0}
.ev-items .se-itext{width:100%;min-width:180px;border-radius:7px;padding:6px 9px;font:inherit;font-size:13.5px;font-weight:600}
.ev-items .se-igat{margin-top:4px;font-size:12px;max-width:180px;border-radius:7px;padding:3px 6px}
.ev-items .se-cost{width:110px;text-align:right;border-radius:7px;padding:6px 9px;font:inherit;font-variant-numeric:tabular-nums}
.ev-items input[type=date]{border-radius:7px;padding:6px 8px;font:inherit;font-size:13px}
.ev-items select{border-radius:7px;padding:6px 8px;font:inherit;font-size:13px}
.se-act{white-space:nowrap}
.se-act .linklike{margin-right:6px}
.se-rm{margin-top:-4px;text-align:right}
.ev-dellink{color:var(--rot)}
.ev-addprop div select[name=zustaendig_id]{flex:0 1 240px;min-width:180px}
.box .ev-list .se-who{display:flex;align-items:center;gap:10px;width:100%;padding:4px 6px;margin:-4px -6px;border-radius:8px;color:inherit;text-decoration:none}
.box .ev-list .se-who:hover,.box .ev-list .se-who.on{background:var(--offwhite)}
.sheet .se-danger{margin:0 26px 24px}
.ev-delbtn{background:var(--rot);color:var(--weiss);border:0}
.lg-se-bar{display:block;margin-top:4px}
@media (max-width:640px){.sheet .se-danger{margin:0 16px 24px}}
/* 0.7.1 Kostensumme je Liegenschaft */
.ev-items tfoot td{border-top:2px solid var(--sand-hell);font-weight:600;font-size:13px;padding-top:10px;padding-bottom:10px}
.ev-items tfoot td small{font-weight:400}
.ev-items tfoot .num{font-variant-numeric:tabular-nums;padding-right:22px}

/* ---------- Schadenaufnahme (v0.8.0) – Design nach vorlage-schadenaufnahme (Karten, Sheets, Schweregrad-Farben, Bericht) ---------- */
.sa-root{--sa-accent:var(--rot);--sa-tint:var(--rot-hauch);--sa-line:var(--sand-hell);--sa-muted:var(--text-2);--sa-surface:var(--offwhite);max-width:860px}
.sa-back{display:inline-flex;align-items:center;gap:5px;color:var(--sa-accent);font-weight:600;font-size:14px;margin-bottom:10px;text-decoration:none}
.sa-tabs{display:flex;gap:6px;background:var(--weiss);border:1px solid var(--sa-line);border-radius:11px;padding:4px;margin:4px 0 12px}
.sa-tabs a{flex:1;text-align:center;padding:8px 0;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--sa-muted);text-decoration:none}
.sa-tabs a.active{background:var(--sa-tint);color:var(--sa-accent)}
.sa-search{margin-bottom:14px;max-width:none}
.sa-cases{display:flex;flex-direction:column;gap:9px}
.sa-case{display:block;background:var(--weiss);border:1px solid var(--sa-line);border-left:4px solid var(--sa-line);border-radius:14px;padding:12px 14px;color:inherit;text-decoration:none}
.sa-case:hover{box-shadow:var(--shadow)}
.sa-case .row1{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}
.sa-case .fallnr{font-size:11px;color:var(--sa-muted);font-weight:600;letter-spacing:.02em}
.sa-case .titel{font-size:15.5px;font-weight:600;margin-bottom:2px}
.sa-case .adresse{font-size:13px;color:var(--sa-muted);margin-bottom:7px}
.sa-case .meta{display:flex;gap:12px;font-size:12px;color:#8A857F;flex-wrap:wrap}
.sa-case .meta b{font-weight:600}
.sa-chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:100px;color:#fff;white-space:nowrap}
.sa-card{background:var(--weiss);border:1px solid var(--sa-line);border-radius:14px;padding:14px;margin-bottom:12px}
.sa-card-head{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.sa-card-head h3{margin:0;font-size:13.5px;font-weight:700}
.sa-badge{width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none;background:var(--sa-tint)}
.sa-field{margin-bottom:10px;min-width:0}
.sa-field:last-child{margin-bottom:0}
.sa-field label{display:block;font-size:11.5px;color:var(--sa-muted);font-weight:600;margin-bottom:4px}
.sa-field .opt{font-weight:400}
.sa-root input[type=text],.sa-root input[type=date],.sa-root input[type=tel],.sa-root input[type=email],.sa-root input[type=number],.sa-root select,.sa-root textarea,.sa-sheetform input,.sa-sheetform select{background:var(--weiss);border:1px solid var(--sa-line);border-radius:8px;padding:8px 10px;width:100%;font:inherit;font-size:14px;color:var(--anthrazit)}
.sa-root textarea{resize:vertical;min-height:56px}
.sa-root input:focus,.sa-root select:focus,.sa-root textarea:focus,.sa-sheetform input:focus,.sa-sheetform select:focus{outline:2px solid var(--sa-accent);outline-offset:1px}
.sa-root input:disabled,.sa-root select:disabled,.sa-root textarea:disabled{background:var(--sa-surface);color:var(--anthrazit);opacity:1}
.sa-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.sa-row2 .sa-field{margin-bottom:0}
@media (max-width:480px){.sa-row2{grid-template-columns:1fr}}
.sa-mini{display:inline-block;margin-top:4px;font-size:12px;color:var(--sa-accent)}
.sa-lock{display:flex;align-items:center;gap:7px;color:var(--sa-muted);font-size:12.5px;background:var(--sa-surface);border:1px solid var(--sa-line);border-radius:9px;padding:9px 11px;margin-bottom:12px}
.sa-sheetform{padding:18px 26px 4px}
.sa-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--sa-tint);color:var(--sa-accent);border-radius:10px;padding:10px 13px;font-size:13px;font-weight:600;margin-bottom:14px;flex-wrap:wrap}
.sa-banner button{font:inherit;font-size:12.5px;text-decoration:underline;color:inherit;background:none;border:0;cursor:pointer}
.sa-section-head{margin:22px 0 8px}
.sa-section-head h3{margin:0;font-size:15px;font-weight:700}
.sa-bereich{margin-bottom:22px;scroll-margin-top:80px}
.sa-bereich-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.sa-bereich-head h3{margin:0;font-size:15px;font-weight:700}
.sa-bereich-head .sub{font-size:12px;color:var(--sa-muted);font-weight:500}
.sa-tag{font-size:10.5px;font-weight:600;color:var(--sa-muted);background:var(--sa-surface);border:1px solid var(--sa-line);border-radius:99px;padding:1px 7px;vertical-align:middle}
.sa-bedit{margin-bottom:8px;font-size:13px}
.sa-bedit summary{cursor:pointer;color:var(--sa-muted);font-size:12px}
.sa-inline-form{display:flex;gap:8px;margin:8px 0}
.sa-cat{margin:14px 0 6px;border-top:1px solid var(--sa-line)}
.sa-cat > summary.sa-kat{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin:0;padding:4px 2px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sa-cat > summary.sa-kat::-webkit-details-marker{display:none}
.sa-cat > summary.sa-kat:focus-visible{outline:2px solid var(--sa-accent);outline-offset:2px;border-radius:6px}
.sa-kat{font-size:11px;font-weight:700;letter-spacing:.3px;color:var(--sa-accent)}
.sa-kat-t{display:inline-flex;align-items:center;gap:6px}
.sa-kat-t::before{content:"\25B8";font-size:10px;display:inline-block;transition:transform .15s}
.sa-cat[open] > summary .sa-kat-t::before{transform:rotate(90deg)}
.sa-kat-n{font-size:10.5px;font-weight:600;color:var(--sa-muted);white-space:nowrap}
.sa-kat-n[data-on="1"]{color:var(--sa-accent)}
.sa-cat-body{padding-bottom:2px}
.sa-mangel{background:var(--weiss);border:1px solid var(--sa-line);border-radius:10px;padding:10px 12px;margin-bottom:7px;scroll-margin-top:90px}
.sa-mangel.on{border-color:#E8C5CB}
.sa-mangel-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sa-mangel-top .ttl{font-size:13.5px;font-weight:500;flex:1}
.sa-toggle{display:flex;align-items:center;gap:8px;margin:0}
.sa-switch{position:relative;width:42px;height:25px;flex:none;display:inline-block}
.sa-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
.sa-switch .track{position:absolute;inset:0;background:var(--sa-line);border-radius:100px;transition:.15s}
.sa-switch .thumb{position:absolute;top:2px;left:2px;width:21px;height:21px;background:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:.15s}
.sa-switch input:checked + .track{background:var(--sa-accent)}
.sa-switch input:checked ~ .thumb{transform:translateX(17px)}
.sa-switch input:focus-visible ~ .track{outline:2px solid var(--sa-accent);outline-offset:2px}
.sa-mangel-body{margin-top:10px;display:flex;flex-direction:column;gap:9px}
.sa-sev{display:flex;gap:6px}
.sa-sev-opt{flex:1;position:relative;text-align:center;padding:6px 0;border-radius:8px;font-size:12px;font-weight:700;border:1.5px solid var(--sa-line);color:var(--sa-muted);cursor:pointer}
.sa-sev-opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sa-sev-opt.on{color:#fff;border-color:transparent;background:var(--sev)}
.sa-sev-opt:has(input:checked){color:#fff;border-color:transparent;background:var(--sev)}
.sa-sev-opt:has(input:focus-visible){outline:2px solid var(--sa-accent);outline-offset:2px}
.sa-anz{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sa-stepper{display:flex;align-items:center;border:1px solid var(--sa-line);border-radius:8px;overflow:hidden}
.sa-stepper[hidden]{display:none}
.sa-stepper button{width:32px;height:32px;font-size:16px;font-weight:600;background:var(--sa-surface);border:0;cursor:pointer}
.sa-root .sa-stepper input{width:56px;border:0;border-radius:0;text-align:center;font-weight:600;padding:6px 2px;-moz-appearance:textfield}
.sa-stepper input::-webkit-inner-spin-button{-webkit-appearance:none}
.sa-unklar,.sa-hw-chip{position:relative;display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:6px 10px;border-radius:8px;border:1.5px solid var(--sa-line);color:var(--sa-muted);cursor:pointer}
.sa-hw-chip{border-radius:100px;padding:5px 10px}
.sa-unklar input,.sa-hw-chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sa-unklar.on,.sa-unklar:has(input:checked),.sa-hw-chip:has(input:checked){background:var(--sa-tint);color:var(--sa-accent);border-color:transparent}
.sa-hw-chip:has(input:not(:checked)){background:none;color:var(--sa-muted);border-color:var(--sa-line);text-decoration:line-through}
.sa-hw{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sa-root .sa-hw-add{width:auto;max-width:100%;flex:1 1 200px;font-size:12.5px;padding:6px 8px}
.sa-mangel-ro{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--sa-muted)}
.sa-mangel-ro p{flex-basis:100%;margin:0;color:var(--anthrazit)}
.sa-orders{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.sa-orders li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;border-top:1px dashed var(--sa-line);padding-top:6px}
.sa-mdel{text-align:right;margin-top:6px}
.sa-addm,.sa-addb{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.sa-root .sa-addm select,.sa-root .sa-addb select{width:auto;flex:0 1 200px}
.sa-root .sa-addm input,.sa-root .sa-addb input{flex:1 1 200px;width:auto}
.sa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:7px;margin-bottom:8px}
.sa-ph{position:relative;margin:0;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--sa-surface);border:1px solid var(--sa-line)}
.sa-ph img{width:100%;height:100%;object-fit:cover;display:block}
.sa-ph figcaption{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;font-size:10px;padding:2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-phdel{position:absolute;top:3px;right:3px;margin:0}
.sa-phdel button{width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:13px;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center}
.sa-upload{display:flex;flex-direction:column;gap:6px}
.sa-upbtns{display:flex;gap:16px;flex-wrap:wrap}
.sa-add-photo{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--sa-accent);padding:7px 0;cursor:pointer;flex-wrap:wrap}
.sa-js .sa-file{display:none}
.sa-js .sa-nojs{display:none}
.sa-root .sa-upm{font-size:12.5px;padding:6px 8px}
.sa-upstat{font-size:12px;color:var(--sa-muted)}
.sa-upload.busy,.sa-mangel-body.busy,.sa-toggle.busy{opacity:.65}
.sa-wide{width:100%;justify-content:center}
.sa-btn-danger{background:#B3261E;color:#fff;border:0}
.sa-danger p{font-size:13.5px;margin:0 0 10px}
.toast.err{background:var(--rot)}
@media (max-width:640px){.sa-sheetform{padding:16px 16px 4px}.sa-inline-form{flex-wrap:wrap}}
/* Bericht */
.sa-report{max-width:760px;color:#1F2933}
.sa-pstripe{height:6px;background:var(--rot);margin:0 0 20px;border-radius:3px}
.sa-peyebrow{font-size:9.5px;font-weight:700;color:var(--rot);letter-spacing:.3px}
.sa-report h1{font-size:24px;margin:2px 0 4px}
.sa-psub{color:#6B7280;margin-bottom:14px}
.sa-pcard{background:#F4F5F7;border-left:3px solid var(--rot);border-radius:8px;padding:10px 14px;margin-bottom:10px;break-inside:avoid}
.sa-pcard b{display:block;font-size:10px;text-transform:uppercase;color:#6B7280;margin-bottom:2px;letter-spacing:.04em}
.sa-prow{font-size:12.5px}
.sa-prow span{color:#6B7280}
.sa-ph2{font-size:14px;background:#F4F5F7;padding:8px 10px;border-radius:6px;margin:20px 0 8px;font-family:var(--f-text);font-weight:700}
.sa-ph2 span{color:#6B7280;font-weight:400}
.sa-ptable{width:100%;border-collapse:collapse;margin:10px 0 18px;font-size:12.5px}
.sa-ptable th{text-align:left;font-size:10px;color:#6B7280;padding:4px 6px;border-bottom:1px solid #E3E6EA}
.sa-ptable td{padding:6px;border-bottom:1px solid #E3E6EA;vertical-align:top}
.sa-ptable td small{display:block;color:#6B7280;font-size:10.5px}
.sa-ptable tr{break-inside:avoid}
.sa-pnote{color:#6B7280;font-size:11px;margin-top:2px}
.sa-pempty{color:#6B7280;font-size:13px}
.sa-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.sa-pgrid figure{margin:0;break-inside:avoid}
.sa-pgrid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;border:1px solid #E3E6EA;display:block}
.sa-pgrid figcaption{font-size:10px;color:#6B7280;margin-top:2px}
.sa-pfoot{margin-top:28px;font-size:10.5px;color:#9AA3AD}
@media print{
  .sa-report{max-width:none}
  .sa-pstripe,.sa-pcard,.sa-ph2,.sa-chip{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sa-ph2{break-after:avoid}
}

/* ===== Schlüsselverwaltung (v0.9.0) – Ergänzungen zur Vorlage (Links statt Buttons, Teilrückgabe, Verlauf) ===== */
a.sk-c{text-decoration:none}
a.sk-c:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
span.sk-c.dim{cursor:default}
a.sk-c.dim{opacity:.25;border-style:dotted}
.sk-root form.inline{display:inline}
.sk-dact form.inline{flex:1;display:flex}
.sk-dact form.inline .btn{flex:1}
.sk-del{color:var(--rot);font-size:12.5px;margin-top:6px}
.sk-set{margin-top:14px}
.sk-set .field input{max-width:120px}
.sk-kchip.back{opacity:.55;text-decoration:line-through}
.sk-hist{list-style:none;margin:10px 0 0;padding:10px 12px;background:var(--offwhite);border-radius:8px;font-size:12.5px;display:flex;flex-direction:column;gap:6px;color:var(--text-2)}
.sk-hist b{color:var(--anthrazit);font-weight:600}
.sk-qlinks{gap:14px!important;font-size:12.5px}
.sk-qid a,.sk-qm a{color:inherit}
.sk-err{margin:14px 0 0}
.sk-recent button.sk-pick{font:inherit}
.sk-pick:disabled{opacity:.45;cursor:not-allowed}
.lg-keys{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.lg-keys li{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.lg-keys .sk-no{min-width:34px}
.lg-keys small{color:var(--text-2)}
.lg-keys .late{color:var(--rot);font-weight:600}
/* ---------- Schlüsselverwaltung v0.10.0: mehrere Schlüssel je Haken, Zustand «teilweise ausgegeben» (Ocker wie --c-termin der Vorlage) ---------- */
.dot.sk-teil,.sk-legend i.sk-teil{background:var(--c-termin)}
.sk-c{position:relative}
.sk-c.teil{background:#F4ECDD;border-color:#E3D2B0;color:var(--c-termin)}
.sk-c .sk-cn,.sk-legend .sk-cn{position:absolute;top:2px;right:3px;min-width:15px;height:15px;border-radius:8px;background:var(--anthrazit);color:var(--weiss);font-size:9.5px;font-style:normal;font-weight:700;line-height:15px;text-align:center;padding:0 3px}
.sk-legend .sk-legn{position:relative;padding-left:22px}
.sk-legend .sk-legn .sk-cn{left:0;top:50%;transform:translateY(-50%);right:auto;width:auto;height:15px;border-radius:8px;display:inline-block}
.sk-no.teil{background:#F4ECDD;color:var(--c-termin)}
.sk-hstate{display:flex;align-items:center;gap:7px;margin:0 0 10px;font-size:13px;font-weight:600}
.sk-hstate .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.sk-hstate.belegt{color:var(--c-personal)}.sk-hstate.teil{color:var(--c-termin)}.sk-hstate.aus{color:var(--rot)}
.sk-hkeys{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sk-hk{border:1px solid var(--sand-hell);border-radius:9px;padding:9px 11px;background:var(--weiss)}
.sk-hkm{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13px}
.sk-hkm b{font-size:14px}
.sk-hkm span{color:var(--text-2)}
.sk-kst{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:600;padding:1px 8px;border-radius:10px}
.sk-kst.belegt{background:#E3ECE5;color:var(--c-personal)}.sk-kst.teil{background:#F4ECDD;color:var(--c-termin)}.sk-kst.aus{background:var(--rot-hauch);color:var(--rot)}
.sk-hkn{display:block;font-size:12px;color:var(--text-2);margin-top:3px}
.sk-hk .sk-hold{margin-top:8px}
.sk-hka{display:flex;gap:14px;margin-top:6px;font-size:12.5px;align-items:center}
.sk-hka form.inline{display:inline}
.sk-hka .sk-del{margin:0}
.sk-nrows{display:flex;flex-direction:column;gap:6px;margin:14px 0 8px}
.sk-nrow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) 70px minmax(0,1.3fr) 34px;gap:8px;align-items:center}
.sk-nrow input{width:100%;border:1px solid var(--sand);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;background:var(--weiss);min-width:0}
.sk-nhead span{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}
.sk-nrow .ibtn{width:34px;height:34px}
.sk-newkey-help{margin:0}
.sk-addrow{width:100%;padding:10px}
.sk-pickh{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.sk-ph{border:1px solid var(--sand-hell);border-radius:10px;background:var(--weiss);padding:8px 12px}
.sk-ph summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}
.sk-ph summary::-webkit-details-marker{display:none}
.sk-ph summary small{color:var(--text-2);margin-left:auto;font-size:12px}
.sk-ph ul{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px}
.sk-ph .check small{display:inline;margin-left:6px;color:var(--text-2)}
.sk-ph .check input:disabled+span{opacity:.5}
.sk-ph .chip:disabled{opacity:.45;cursor:not-allowed}
.sk-back{display:block;font-size:12px;color:var(--text-2)}
@media (max-width:860px){.sk-nrow{grid-template-columns:1fr 1fr 64px 34px}.sk-nrow input[name^=k_notiz]{grid-column:1/4}.sk-nhead{display:none}}

/* ===== v0.11.0 Sanierungen (Klassen sa-, gt-, tp- aus radici.css; .sa-card hier gegen Schadenaufnahme abgegrenzt) ===== */
.sn-root .sa-card{display:grid;padding:16px 20px;margin-bottom:0;border:1px solid var(--sand-hell);border-radius:14px;text-decoration:none;color:var(--anthrazit)}
.sn-root .sa-card:hover{text-decoration:none}
.sn-root .sa-choice{display:inline-flex}
.sn-root .sa-choice button{cursor:pointer}
.sn-root .sa-tplbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sn-root .sn-richt{margin:14px 0}
.sn-root .sa-prices form.sn-pform{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sn-root .sa-pin input{width:110px;text-align:right}
.sn-root .sn-off .sa-it b{color:var(--grau,#8a8a8a)}
.sn-root .sn-cat{margin-top:16px}
.sn-root .sn-catform h4{margin:8px 0 12px}
.sn-root .sn-gwpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 14px;border:0;padding:0;margin:10px 0}
.sn-root .sn-gwpick legend{font-weight:600;margin-bottom:6px}
.sn-root .sn-num{width:90px;text-align:right}
.sn-root .sn-gwt input[type=text]{min-width:180px}
.sn-root .sn-tplsel{list-style:none;padding:0;margin:10px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:6px 18px}
.sn-root .sn-tplsel li{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}
.sn-root .sn-rlist{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:8px}
.sn-root .sa-meta{align-items:end}
.sn-root .sn-more{grid-column:1/-1}
.sn-root .sn-more summary{cursor:pointer;font-size:13px;color:var(--c-termin)}
.sn-root .sn-more .field{display:inline-block;min-width:220px;margin-right:12px}
.sn-root .tp-tab td{vertical-align:top}
.sn-root .sa-chk form,.sn-root .tks form.tk-chk{display:flex;align-items:center;gap:8px}
.sn-root .ev-danger{margin-top:28px}
/* Sanierungen v0.11.1: Feiertage ZH und betriebliche Schliesstage im Gantt (schraffiert, Tooltip mit Namen) */
.sn-root .gt-hd{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,#F1E6D6 0,#F1E6D6 3px,#FAF8F6 3px,#FAF8F6 7px);cursor:help}
.sn-root .gt-d span.hd{color:var(--rot);font-weight:700;text-decoration:underline dotted;cursor:help}
.sn-root .gt-d span.hd.td{color:var(--weiss)}
.sn-root .gt-hd-leg{background:repeating-linear-gradient(135deg,#E2C79A 0,#E2C79A 2px,#fff 2px,#fff 5px)!important;box-shadow:inset 0 0 0 1px var(--sand-hell)}
.sn-root .sn-hdyears{display:flex;flex-wrap:wrap;gap:24px;margin:8px 0 14px}
.sn-root .sn-hdlist{list-style:none;margin:6px 0 0;padding:0;font-size:13px;line-height:1.7}
.sn-root .sn-hdlist span{display:inline-block;min-width:150px;color:var(--text-2);font-variant-numeric:tabular-nums}
.sn-root #sn-closures textarea{width:100%;max-width:560px;font:inherit;font-size:13px;border:1px solid var(--sand-hell);border-radius:8px;padding:8px 10px;display:block;margin:6px 0 4px}
.sn-root #sn-closures div{margin-top:8px}
.sn-root pre.sn-closures{font:inherit;font-size:13px;white-space:pre-wrap;margin:6px 0}

/* v0.12.0 Zwei-Faktor */
.mfa-card{max-width:440px}
.mfa-qr{display:flex;justify-content:center;padding:12px;background:#fff;border-radius:8px}
.mfa-qr img,.mfa-qr canvas{width:200px;height:200px}
.mfa-key{display:inline-block;margin-top:6px;font-size:15px;font-weight:600;letter-spacing:.06em;user-select:all;word-break:break-all}
.mfa-steps{margin:0;padding-left:20px;font-size:14px;color:var(--text-2)}
.mfa-codes{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:0;padding-left:22px;font-size:15px}
.mfa-codes code{font-weight:600;letter-spacing:.05em}
.mfa-input{font-size:20px;letter-spacing:.2em;text-align:center}
.mfa-help summary{cursor:pointer;font-size:14px}
@media print{.login-photo,.proto,form .btn,.linkbtn{display:none!important}}

/* ===== v0.13.0 iPad / Tablet (Safari, 768–1180 px, hoch und quer) =====
   1) Ursache Layoutfehler Schadenaufnahme: .sa-card aus radici.css (Projektkarten der Sanierungen, display:grid mit
      5 Spalten bzw. 3 Spalten bis 1180 px) traf auch die Karten der Schadenaufnahme (gleicher Klassenname). Erst unter
      860 px (Handy) fiel das Raster auf 1 Spalte zurück – daher nur auf iPad/Desktop sichtbar. Hier abgegrenzt. */
.sa-root .sa-card{display:block;grid-template-columns:none;gap:0;align-items:normal;text-align:left;transition:none}
.sa-root .sa-card:hover{border-color:var(--sa-line);box-shadow:none}
/* 2) iOS-Safari: 100vh enthält die Adressleiste -> Rail/Dialoge zu hoch; dvh, wo vorhanden */
.rail{height:100vh;height:100dvh}
.modal{padding:5vh 16px calc(5vh + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@supports (height:100dvh){.modal{padding-top:5dvh}}
/* 3) Segment-/Untertabs nie breiter als der Bildschirm (Tablet hoch: Rail weg ab 860 px, Tabs scrollen statt umbrechen) */
.seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
.seg a,.seg button{white-space:nowrap;flex:none}
/* 4) Foto-Knöpfe: das Datei-Feld liegt unsichtbar (opacity 0, nicht display:none) über dem ganzen Knopf und wird
      direkt angetippt – iOS öffnet Kamera bzw. Fotoauswahl nur bei direkter Berührung zuverlässig. */
.sa-add-photo{position:relative;overflow:hidden;min-height:44px;padding:9px 14px;border:1.5px solid var(--sa-line);border-radius:10px;background:var(--weiss)}
.sa-js .sa-file{display:block;position:absolute;inset:0;width:100%;height:100%;opacity:.01;cursor:pointer;font-size:16px;margin:0;padding:0;border:0}
.sa-add-photo:focus-within{outline:2px solid var(--sa-accent);outline-offset:2px}
/* 5) Bericht: Logo + Vorschaubilder */
.sa-plogo{display:block;width:180px;max-width:45%;height:auto;margin:0 0 14px}
.sa-pgrid img{background:#F4F5F7}
/* 6) Tablet quer (861–1180): schmalere Navigation, mehr Platz für Inhalt */
@media (min-width:861px) and (max-width:1180px){
  #app{grid-template-columns:212px minmax(0,1fr)}
  .rail{padding:22px 12px}
  .main{padding-inline:24px}
}
/* 7) Touch-Geräte: Ziele mindestens 44 px, Eingaben 16 px (sonst zoomt iOS beim Fokus und das Layout springt) */
@media (pointer:coarse){
  .btn-sm{min-height:44px}
  .xbtn{width:44px;height:44px}
  .seg a,.seg button{min-height:44px}
  .chip{min-height:40px}
  .sa-tabs a{padding:12px 0}
  .sa-stepper button{width:44px;height:44px}
  .sa-root .sa-stepper input{min-height:44px}
  .sa-sev-opt{padding:12px 0}
  .sa-unklar,.sa-hw-chip{min-height:44px;padding:8px 14px}
  .sa-switch{width:52px;height:32px}
  .sa-switch .thumb{width:28px;height:28px}
  .sa-switch input:checked ~ .thumb{transform:translateX(20px)}
  .sa-phdel button{width:34px;height:34px;font-size:16px}
  .sa-bedit summary{padding:10px 0}
  .sa-root .linklike,.sa-back{min-height:44px;display:inline-flex;align-items:center}
  .sa-root input[type=text],.sa-root input[type=date],.sa-root input[type=tel],.sa-root input[type=email],.sa-root input[type=number],.sa-root select,.sa-root textarea,.sa-sheetform input,.sa-sheetform select,.sa-search input{font-size:16px}
  .sn-root .sa-choice button{min-height:40px;padding:8px 13px}
  .ibtn{width:44px;height:44px}
}
/* v0.13.0 Sanierungen Umfang: Anker (ohne JS) nicht unter der Kopfzeile, Rückmeldung während dem Speichern */
.sn-root .sa-room li{scroll-margin-top:96px}
.sn-root form.sa-choice.busy{opacity:.6;pointer-events:none}

/* ==== v0.15.0 Avatar/Profil – additiv, keine bestehende Regel geaendert ==== */
.avatar--img{padding:0;overflow:hidden;background:var(--sand-hell)}
.avatar--img img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.av-sm{width:28px;height:28px;font-size:10px}
.avatar.av-lg{width:64px;height:64px;font-size:22px}
.u-cell{display:flex;align-items:center;gap:10px;text-decoration:none}
.u-cell .u-cn{display:flex;flex-direction:column;line-height:1.2}
.u-cell .u-cn small{font-weight:400}
.av-palette{display:flex;gap:8px;flex-wrap:wrap}
.av-sw{width:26px;height:26px;border-radius:50%;cursor:pointer;position:relative;border:2px solid transparent;box-shadow:0 0 0 1px var(--sand-hell)}
.av-sw input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.av-sw:has(input:checked){border-color:var(--anthrazit)}

/* v0.16.0 – Teamsitzung-Protokoll: Briefkopf mit Immodue-Logo, dezente Linien, Variante-3-Farben (druckfreundlich) */
.proto-brand{display:flex;align-items:center;gap:16px;padding:0 0 14px;margin:0 0 20px;border-bottom:2px solid var(--rot)}
.proto-logo{height:34px;width:auto;flex:none}
.proto-brand-meta{display:flex;flex-direction:column;gap:2px;margin-right:auto}
.proto-co{font-family:var(--f-display);font-size:18px;color:var(--anthrazit);line-height:1}
.proto-kind{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.proto-brand-date{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.protokoll-doc .prot b{color:var(--anthrazit)}
.protokoll-doc .prot li{border-top:1px solid var(--sand-hell);padding-top:14px}
.protokoll-doc .prot li:first-child{border-top:0;padding-top:0}
.protokoll-doc .prot-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.protokoll-doc .prot-tbl th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);border-bottom:1px solid var(--sand);padding:4px 8px 4px 0}
.protokoll-doc .prot-tbl td{padding:5px 8px 5px 0;border-bottom:1px solid var(--sand-hell);vertical-align:top}
@media print{
  .proto-brand{border-bottom:1.5pt solid #555}
  .proto-logo{height:30px}
  .proto-kind,.proto-brand-date{color:#555}
  .protokoll-doc .prot li{border-top:1px solid #ccc}
}

/* ===== v0.19.0 Paket 4 – Sanierungen: Feld-/Kopf-Angleichung (einheitlich 36px wie 0.17.0) =====
   Nur Darstellung, additiv, ausschliesslich unter .sn-root. Keine bestehende Regel entfernt.
   Problem (Ale, Screenshot 8.0): Kopf-/Formularfelder unterschiedlich hoch (select ~43px vs. date ~49px)
   und optisch ungleich. Loesung: gleiche Hoehe 36px (--ui-h-sm), gleiche Raender/Radien, sauberes Kopf-Raster. */
.sn-root .sa-meta{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto auto;gap:14px 16px;align-items:end}
.sn-root .sa-meta .sa-leer{display:flex;flex-direction:column;justify-content:center;gap:2px}
.sn-root .sa-meta .sn-more{grid-column:1/-1}
@media(max-width:1100px){.sn-root .sa-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.sn-root .sa-meta{grid-template-columns:1fr}}
/* Einheitliche Feldhoehe fuer alle einzeiligen .field-Controls im Modul (Kopf + Neu/Bearbeiten + Katalog) */
.sn-root .field > select,
.sn-root .field > input[type=text],
.sn-root .field > input[type=date],
.sn-root .field > input[type=number]{
  height:var(--ui-h-sm);min-height:var(--ui-h-sm);
  padding:0 12px;font-size:14px;line-height:1.25;box-sizing:border-box
}
.sn-root .field > input[type=date]{padding-right:8px}

/* v0.22.0 – Schlüssel-Arten pflegen (Einstellungen, Stufe 3) */
.sk-arten .sk-artl { list-style:none; margin:10px 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.box .sk-arten .sk-artl li::before, .sk-arten .sk-artl li::before { display:none; }
.sk-arten .sk-artr { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sk-arten .sk-artr.off { opacity:.55; }
.sk-arten .sk-artf { display:flex; align-items:center; gap:8px; flex:1 1 auto; margin:0; }
.sk-arten .sk-artf input[type=text] { flex:1 1 auto; min-width:120px; }
.sk-arten .sk-arts { width:64px; flex:0 0 auto; }
.sk-arten .sk-artnew { margin-top:12px; }

/* v0.23.0 – Schlüsselverwaltung «Einstellungen»-Tab: ruhiges, einheitliches Panel (Variante 3) */
.sk-einst{display:flex;flex-direction:column;gap:18px;max-width:780px}
.sk-einst .box{margin:0}
.sk-einst h3{margin:0 0 4px}
.sk-einst .proto-note{margin:0 0 4px}
.sk-eform{margin-top:12px}
.sk-eform .field{margin:0}
.sk-erow{display:flex;align-items:center;gap:10px;margin:4px 0 2px}
.sk-erow .sk-enum{width:140px;min-height:var(--ui-h-sm);box-sizing:border-box}
.sk-einst .sk-arten .sk-artl{margin:12px 0 0}
.sk-einst .sk-arten .sk-artr{padding:6px 0;border-bottom:1px solid var(--ui-line-soft);gap:10px;flex-wrap:nowrap}
.sk-einst .sk-arten .sk-artr:last-of-type{border-bottom:0}
.sk-einst .sk-arten .sk-artf{gap:8px}
.sk-einst .sk-arten .sk-artf input{min-height:var(--ui-h-sm);box-sizing:border-box}
.sk-einst .sk-arten .sk-artname{flex:1 1 auto;min-width:160px}
.sk-einst .sk-arten .sk-arts{width:70px;flex:0 0 auto;text-align:center}
.sk-einst .sk-arten .sk-artb{flex:0 0 auto;white-space:nowrap}
.sk-einst .sk-arten .sk-arttog{flex:0 0 auto;margin:0}
.sk-einst .sk-arten .sk-artnew{margin-top:14px;padding-top:12px;border-top:1px solid var(--ui-line-soft)}
@media (max-width:560px){.sk-einst .sk-arten .sk-artr{flex-wrap:wrap}.sk-einst .sk-arten .sk-artf{flex:1 1 100%}}
