
/* Helle Oberflaeche, unabhaengig von der Systemeinstellung: color-scheme haelt
   auch Auswahlfelder, Bildlaufleisten und Datumswaehler hell — sonst blieben
   genau die bei «Dunkel» am Mac schwarz. */
:root{
  color-scheme:light;
  --ground:#FFF; --surface:#FFF; --surface2:#F0F4F8; --ink:#0C1F2D; --soft:#4C5E6C;
  --faint:#6F8291; --line:#D6DFE6; --line2:#B7C6D1; --accent:#2C6AAF; --accent2:#5389C8;
  --ok:#1A6642; --okbg:#E4F1EA; --warn:#8A5510; --warnbg:#FAF1DF; --err:#A8371A; --errbg:#FAEAE5;
  --termin:#6A4C93;   /* vierter Zustand «Meeting geplant» — gedeckt wie die uebrigen */
  --sans:ui-sans-serif,-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Gerüst */
.app{display:grid;grid-template-columns:minmax(0,1fr);min-height:100vh;align-content:start}
.top{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:10px 18px;background:var(--surface);border-bottom:1px solid var(--line)}
.marke{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px}
.marke em{font-style:normal;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);
  border:1px solid var(--line2);padding:2px 6px;border-radius:2px}
.wachs{flex:1}
.os-global-zurueck{padding:5px 9px!important;white-space:nowrap}
.os-global-zurueck[hidden]{display:none}
.hauptnav{display:flex;align-items:center;gap:3px;align-self:stretch}
.hauptnav button{border:0;background:transparent;color:var(--soft);padding:7px 11px;border-radius:3px;
  cursor:pointer;font-size:13.5px;font-weight:600;white-space:nowrap}
.hauptnav button:hover{background:var(--surface2);color:var(--ink)}
.hauptnav button[aria-current="page"]{background:var(--surface2);color:var(--accent);
  box-shadow:inset 0 -2px 0 var(--accent)}
.hauptnav button[hidden]{display:none}
.wer{font-size:12.5px;color:var(--soft)}
.probe{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint);font-weight:700}
.probe select{font-size:12.5px;padding:4px 8px;border:1px solid var(--line2);border-radius:2px;
  background:var(--surface);color:var(--ink);text-transform:none;letter-spacing:0;font-weight:400}
.probe-banner{grid-column:1/-1;background:var(--warnbg);border-bottom:1px solid var(--warn);
  color:var(--warn);padding:8px 18px;font-size:12.5px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.probe-banner b{color:var(--warn)}
.probe-banner button{font:inherit;font-size:12px;font-weight:600;padding:3px 10px;cursor:pointer;
  background:transparent;border:1px solid var(--warn);color:var(--warn);border-radius:2px}
.unternav{grid-column:1/-1;background:var(--surface);border-bottom:1px solid var(--line);padding:0 18px}
.unternav[hidden]{display:none}
.unternav-liste{display:flex;align-items:center;gap:4px;min-height:44px;overflow-x:auto}
.unternav button{flex:0 0 auto;border:0;background:transparent;color:var(--soft);padding:11px 10px 10px;
  cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:inset 0 0 0 transparent}
.unternav button:hover{background:var(--surface2);color:var(--ink)}
.unternav button[aria-current="page"]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}
.unternav button[hidden]{display:none}
.verwaltungsnav{position:relative}
.verwaltungsnav-knopf[aria-expanded="true"],.verwaltungsnav-knopf[aria-current="page"]{
  background:var(--surface2);color:var(--accent);border-color:var(--line2)}
.verwaltungsmenue{position:absolute;z-index:80;right:0;top:calc(100% + 6px);width:230px;padding:6px;
  background:var(--surface);border:1px solid var(--line2);border-radius:4px;box-shadow:0 10px 28px rgba(12,31,45,.15)}
.verwaltungsmenue[hidden]{display:none}
.verwaltungsmenue button{display:block;width:100%;padding:8px 10px;border:0;border-radius:3px;
  background:transparent;color:var(--soft);text-align:left;cursor:pointer;font-size:13px}
.verwaltungsmenue button:hover,.verwaltungsmenue button[aria-current="page"]{
  background:var(--surface2);color:var(--ink)}
.verwaltungsmenue button[hidden]{display:none}
main{padding:20px 24px 60px;min-width:0;min-height:calc(100vh - 103px)}

/* ============================================================
   ÜBERSICHT (os-home.js)
   Kein Dashboard: Was heute Handlung braucht, steht oben und links —
   dort sucht man zuerst. Was nur informiert, steht rechts.
   ============================================================ */
.hm-spalten{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;max-width:1100px}
@media (max-width:900px){.hm-spalten{grid-template-columns:1fr}}
.hm-start{max-width:1100px;margin-bottom:14px}.hm-start .hm-block{margin-bottom:0}
.hm-kalender{margin-bottom:14px}.hm-offen{max-width:1100px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.hm-offen>summary{cursor:pointer;padding:13px 15px;font-size:14px;font-weight:700}
.hm-offen>summary span{font-size:12px;font-weight:400;color:var(--soft);margin-left:8px}
.hm-offen[open]>summary{border-bottom:1px solid var(--line)}
.hm-offen>.hm-block{border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0}
.hm-offen>.hm-block:last-child{border-bottom:0}
.hm-block{background:var(--surface);border:1px solid var(--line);border-radius:4px;
  padding:14px 16px;margin:0 0 16px}
.hm-block h2{margin:0 0 10px;font-size:14px}
.hm-block p{margin:0;font-size:13px;line-height:1.6;color:var(--soft)}
/* Der Handlungsblock ist der einzige mit Farbe. Bekämen alle eine,
   hätte keine mehr eine Bedeutung. */
.hm-handlung{border-left:3px solid var(--warn)}
.hm-handlung h2{color:var(--warn)}
.hm-ruhig{border-left:3px solid var(--ok)}
.hm-kette{max-width:1100px;background:var(--surface)}
.hm-kette details{margin-top:12px}
.hm-kette summary{cursor:pointer;color:var(--soft);font-weight:600}
.tv-umfang{display:flex;gap:4px}
.tv-umfang-hilfe{margin:0 0 12px;font-size:12px}
.hm-kettenliste{list-style:none;margin:12px 0 0;padding:0;background:var(--surface);
  border:1px solid var(--line);border-radius:3px}
.hm-kettenliste li{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:10px 12px;border-top:1px solid var(--line)}
.hm-kettenliste li:first-child{border-top:0}
.hm-kettenliste small{display:block;color:var(--soft);margin-top:2px}
@media(max-width:720px){.hm-kettenliste li{align-items:flex-start;flex-direction:column}}
.hm-ruhig h2{color:var(--ok)}
.hm-liste{list-style:none;margin:0;padding:0}
.hm-liste li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;
  padding:9px 0;border-top:1px solid var(--line);cursor:pointer}
.hm-liste li:first-child{border-top:0}
.hm-liste li:hover{background:var(--surface2)}
.hm-liste li.kritisch .hm-grund{color:var(--err)}
.hm-was{font-size:13px}
.hm-grund{grid-column:1;font-size:12.5px;color:var(--soft);line-height:1.45}
.hm-wann{grid-column:2;grid-row:1/3;text-align:right;font-size:12.5px;
  font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--soft)}
.hm-mehr{margin-top:10px;border:0;background:none;padding:0;font:inherit;font-size:12.5px;
  color:var(--accent);cursor:pointer;border-bottom:1px solid transparent}
.hm-mehr:hover{border-bottom-color:var(--accent)}

/* Platzhalter der angekuendigten Ansichten */
.os-aufbau{max-width:620px}
.os-aufbau h4{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
  font-weight:700;margin:0 0 8px}
.os-aufbau ul{margin:0 0 16px;padding-left:18px;font-size:13px;color:var(--soft)}
.os-aufbau li{padding:2px 0}

/* Kopf & Leiste */
.os-kopf{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.os-kopf h1{font-size:21px;margin:0;font-weight:650;letter-spacing:-.01em}
.os-sub{color:var(--faint);font-size:12.5px;margin:2px 0 0}
.os-leiste{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
input[type=search]{padding:6px 10px;border:1px solid var(--line2);border-radius:2px;background:var(--surface);min-width:220px}
.os-fbtn{font-size:12.5px;padding:5px 11px;border:1px solid var(--line2);background:var(--surface);
  color:var(--soft);border-radius:2px;cursor:pointer}
.os-fbtn:hover{border-color:var(--accent);color:var(--accent)}
.os-fbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground);font-weight:600}
.os-arbeitsleiste{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.os-statusnav{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.os-statusnav .os-fbtn{display:inline-flex;width:auto;align-items:center;gap:6px;white-space:nowrap;text-align:center}
.os-fbtn-anzahl{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--surface2);color:var(--soft);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.os-fbtn[aria-pressed="true"] .os-fbtn-anzahl{background:rgba(255,255,255,.2);color:inherit}
.os-ansichtswechsel{margin-left:auto;display:flex;gap:4px;align-items:center;border-left:1px solid var(--line);padding-left:8px}
.os-ansichtswechsel .os-fbtn{height:29px;padding:0 10px;line-height:1}
.os-rechnungsboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
.os-rechnungsspalte{min-width:0;min-height:180px;padding:11px;border:1px solid var(--line);border-radius:5px;background:var(--surface2)}
.os-rechnungsspalte>header,.os-rechnungsergebnisse>header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:0 1px 9px;margin-bottom:9px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.os-rechnungsspalte>header span{display:grid;gap:3px}.os-rechnungsspalte>header small{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--soft)}
.os-rechnungsspalte>header strong,.os-rechnungsergebnisse>header span{font-size:12px;font-variant-numeric:tabular-nums}
.os-rechnungkarte{box-sizing:border-box;height:106px;min-height:106px;overflow:hidden;margin:0 0 8px;padding:6px 9px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:4px;box-shadow:0 1px 1px rgba(20,39,54,.03);cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}
.os-rechnungkarte.warn{border-left-color:var(--warn)} .os-rechnungkarte.crit{border-left-color:var(--err)} .os-rechnungkarte.ok{border-left-color:var(--ok)}
.os-rechnungkarte:hover,.os-rechnungkarte:focus-visible{outline:0;border-color:#9bbbd9;box-shadow:0 3px 10px rgba(20,39,54,.09);transform:translateY(-1px)}
.os-rechnungkarte .kopf{display:flex;align-items:center;justify-content:space-between;gap:8px}
.os-rechnungnummer{color:var(--faint);font-size:10.5px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-rechnung-ident{display:flex;align-items:baseline;gap:7px;min-width:0;margin-top:4px}
.os-rechnungkarte h3{flex:none;max-width:56%;margin:0;font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-rechnung-ident>span{min-width:0;color:var(--soft);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-rechnung-kern{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:3px;border-top:1px solid var(--line)}
.os-rechnung-kern>strong{font-size:14px;font-variant-numeric:tabular-nums}
.os-rechnungzeit{margin:3px 0 0;color:var(--faint);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.os-rechnungzeit.warn{color:#9b650e;font-weight:650}.os-rechnungzeit.crit{color:var(--err);font-weight:700}
.os-rechnungwarnung{margin:8px 0 0;padding-top:7px;border-top:1px solid var(--line);color:var(--err);font-size:10.5px;line-height:1.35}
.os-rechnung-pruefen{color:var(--err);line-height:1.35}.os-rechnungsergebnisse{padding:12px;border:1px solid var(--line);border-radius:5px;background:var(--surface2)}
.os-rechnung-kartenraster{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px}.os-rechnung-kartenraster .os-rechnungkarte{margin:0}
.os-rechnungsliste-gefuehrt td{padding-top:12px;padding-bottom:12px;vertical-align:middle}
@media(max-width:760px){.os-arbeitsleiste input[type=search]{width:100%;min-width:0}.os-statusnav{order:3;width:100%}.os-ansichtswechsel{margin-left:0;order:2}}
@media(max-width:1180px){.os-rechnungsboard{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.os-rechnung-kartenraster{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:760px){.os-rechnungsboard,.os-rechnung-kartenraster{grid-template-columns:1fr}}
.os-personleiste{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-2px 0 13px;color:var(--faint);font-size:12px}
.os-personleiste>span{margin-right:2px;font-weight:650}
.os-personfilter{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line2);border-radius:50%;background:var(--surface);color:var(--soft);font-size:11px;font-weight:750;cursor:pointer}
.os-personfilter:hover{border-color:var(--accent);color:var(--accent)}
.os-personfilter[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.os-angebot-datenhinweis{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;margin:-2px 0 13px;padding:7px 10px;border:1px solid #e3c28b;border-radius:3px;background:#fff8ec;color:#7f5512;font-size:11.5px;text-align:left;cursor:pointer}
.os-angebot-datenhinweis:hover,.os-angebot-datenhinweis[aria-pressed="true"]{border-color:#b97813;background:#fff2dc}.os-angebot-datenhinweis span{color:#8b6b38}
.os-angebotsboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.os-angebotspalte{min-width:0;min-height:180px;padding:12px;border:1px solid var(--line);border-radius:5px;background:var(--surface2)}
.os-angebotspalte.abgelaufen{border-color:var(--line);background:var(--surface2)}
.os-angebotspalte>header,.os-angebotsergebnisse>header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:0 1px 10px;margin-bottom:10px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.os-angebotspalte>header span{display:grid;gap:3px}.os-angebotspalte>header small{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--soft)}
.os-angebotspalte>header strong,.os-angebotsergebnisse>header span{font-size:12px;font-variant-numeric:tabular-nums}
.os-angebotkarte{position:relative;box-sizing:border-box;height:106px;min-height:106px;overflow:hidden;margin:0 0 8px;padding:6px 8px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:4px;box-shadow:0 1px 1px rgba(20,39,54,.03);cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}
.os-angebotkarte:hover,.os-angebotkarte:focus-visible{outline:0;border-color:#9bbbd9;box-shadow:0 3px 10px rgba(20,39,54,.09);transform:translateY(-1px)}
.os-angebotkarte .kopf{display:flex;align-items:center;justify-content:space-between;gap:8px}
.os-angebotnummer{color:var(--faint);font-size:10.5px;font-variant-numeric:tabular-nums}
.os-angebot-ident{display:flex;align-items:center;gap:7px;margin-top:4px;min-width:0}.os-angebot-ident>div{min-width:0;flex:1}
.os-angebot-ident .os-logo{width:23px;height:23px;margin:0;border-radius:4px}.os-angebot-ident .os-logo-leer{font-size:8px}
.os-angebotkarte h3{margin:0 0 1px;font-size:13px;line-height:1.15}
.os-angebotprodukt{margin:0;min-height:14px;color:var(--soft);font-size:11.5px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-angebot-fuss{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;margin-top:4px}
.os-angebot-werte{display:grid;gap:3px;min-width:0}.os-angebot-werte small{font-size:11px;color:var(--soft)}
.os-angebot-werte>strong{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.os-person-kurz{display:inline-flex;align-items:center;gap:6px;min-width:0}.os-person-kurz>span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background-color:#e6eef7;color:var(--accent);font-size:9px;font-weight:800}.os-person-kurz>b{font-size:11.5px;white-space:nowrap}
.os-angebotzeit{min-width:0;color:var(--faint);font-size:11px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.os-angebotzeit.warn{color:#9b650e;font-weight:650}.os-angebotzeit.crit{color:var(--err);font-weight:700}
.os-angebot-kurzaktionen{position:absolute;right:6px;bottom:5px;display:flex;justify-content:flex-end;gap:4px;margin:0}.os-angebot-kurzaktionen .os-fbtn.klein{margin-left:0;min-width:0;max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:2px 5px;font-size:9.5px}
.os-angebotkarte:has(.os-angebot-kurzaktionen) .os-angebot-fuss{padding-right:130px}
.os-angebot-kurzaktionen .os-fbtn.primaer,.os-cockpit-aktionen .os-fbtn.primaer{background:var(--ink);border-color:var(--ink);color:var(--ground);font-weight:650}
.os-angebot-kurzaktionen .os-fbtn.kritisch,.os-cockpit-ablaufaktionen .os-fbtn.kritisch{color:var(--err);border-color:#dfb0a8}.os-angebot-kurzaktionen .os-fbtn.kritisch:hover,.os-cockpit-ablaufaktionen .os-fbtn.kritisch:hover{background:#fff3f1;border-color:var(--err)}
.os-angebotsergebnisse{padding:12px;border:1px solid var(--line);border-radius:5px;background:var(--surface2)}
.os-angebot-kartenraster{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px}.os-angebot-kartenraster .os-angebotkarte{margin:0}
.os-angebotsliste-gefuehrt td{padding-top:12px;padding-bottom:12px;vertical-align:middle}
@media(max-width:1100px){.os-angebotsboard{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.os-angebot-kartenraster{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:760px){.os-angebotsboard,.os-angebot-kartenraster{grid-template-columns:1fr}.os-personleiste>span{width:100%}}
.os-cockpit-zurueck{margin:0 0 12px}.os-angebot-cockpitkopf{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:13px;align-items:center;max-width:1180px;margin-bottom:12px;padding:16px 18px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}
.os-angebot-cockpitkopf>.os-logo{width:42px;height:42px;margin:0;border-radius:7px}.os-angebot-cockpitkopf>.os-logo-leer{font-size:12px}.os-angebot-cockpitkopf .titel{min-width:0}.os-angebot-cockpitkopf .titel h1{margin:6px 0 2px;font-size:21px}.os-angebot-cockpitkopf .titel p{margin:0;color:var(--soft)}.os-angebot-cockpitkopf .betrag{text-align:right}.os-angebot-cockpitkopf .betrag small,.os-angebot-cockpitkopf .betrag strong{display:block}.os-angebot-cockpitkopf .betrag small{color:var(--faint);font-size:11px}.os-angebot-cockpitkopf .betrag strong{margin-top:4px;font-size:20px;font-variant-numeric:tabular-nums}
.os-cockpit-fakten{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1180px;margin-bottom:12px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.os-cockpit-fakten>div{display:grid;align-content:start;gap:4px;min-height:76px;padding:12px 14px;border-right:1px solid var(--line)}.os-cockpit-fakten>div:last-child{border-right:0}.os-cockpit-fakten span,.os-cockpit-karte>span,.os-cockpit-karte header span{font-size:10.5px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}.os-cockpit-fakten b{font-size:12.5px}.os-cockpit-fakten small{color:var(--soft);font-size:11px}.os-cockpit-fakten .crit{color:var(--err)}
.os-cockpit-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,.8fr);gap:12px;max-width:1180px}.os-cockpit-grid main,.os-cockpit-grid aside{display:grid;align-content:start;gap:12px}.os-cockpit-karte{padding:16px 18px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.os-cockpit-karte>header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.os-cockpit-karte h2{margin:5px 0 0;font-size:16px}.os-cockpit-karte p{color:var(--soft);line-height:1.45}.os-cockpit-naechstes{border-left:4px solid var(--accent)}.os-cockpit-naechstes h2{font-size:19px}.os-cockpit-aktionen,.os-cockpit-ablaufaktionen{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:wrap}.os-cockpit-ablaufaktionen{display:contents}.os-cockpit-positionen{list-style:none;margin:14px 0 0;padding:0}.os-cockpit-positionen li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.os-cockpit-positionen li span{display:flex;gap:7px}.os-cockpit-positionen li small{color:var(--faint)}.os-cockpit-positionen li strong{font-variant-numeric:tabular-nums}.os-cockpit-karte .os-arbeitsliste{margin-top:8px}.os-cockpit-seitenaktionen{display:grid;justify-items:start;gap:8px;margin-top:14px}.os-cockpit-weitere summary{cursor:pointer;font-weight:700}.os-cockpit-weitere>div{padding-top:8px}.os-cockpit-weitere p{font-size:12px}.os-cockpit-grid .os-fbtn{margin-left:0}
@media(max-width:900px){.os-cockpit-fakten{grid-template-columns:repeat(2,minmax(0,1fr))}.os-cockpit-fakten>div:nth-child(2){border-right:0}.os-cockpit-fakten>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.os-cockpit-grid{grid-template-columns:1fr}}
@media(max-width:600px){.os-angebot-cockpitkopf{grid-template-columns:38px 1fr}.os-angebot-cockpitkopf>.os-logo{width:36px;height:36px}.os-angebot-cockpitkopf .betrag{grid-column:2;text-align:left}.os-cockpit-fakten{grid-template-columns:1fr}.os-cockpit-fakten>div{border-right:0;border-bottom:1px solid var(--line)}.os-cockpit-fakten>div:last-child{border-bottom:0}.os-cockpit-karte>header{display:block}.os-cockpit-karte>header .os-cockpit-aktionen{margin-top:10px}}
.tn-ticket-rechnung{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:baseline;
  margin:10px 0;padding:10px 12px;border-left:3px solid var(--ok);background:#f1f8f4}
.tn-ticket-rechnung>span{grid-row:1/3;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ok)}
.tn-ticket-rechnung>b{font-variant-numeric:tabular-nums}.tn-ticket-rechnung>small{color:var(--soft)}
.tn-belegung-kern{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 12px;
  border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.tn-belegung-kern>div{display:grid;gap:2px;padding:11px 12px;border-right:1px solid var(--line)}
.tn-belegung-kern>div:last-child{border-right:0}.tn-belegung-kern strong{font-size:20px;font-variant-numeric:tabular-nums}
.tn-belegung-kern span{color:var(--soft);font-size:11.5px}
.tn-belegung-steuerung{display:grid;grid-template-columns:max-content max-content;justify-content:start;gap:8px 12px;
  align-items:end;margin:12px 0}.tn-belegung-steuerung>label{grid-column:1/-1;color:var(--soft);font-size:12px;font-weight:650}
.tn-belegung-steuerung>.os-btn{justify-self:start}
.tn-belegung-status{margin:10px 0}
.tn-stepper,.training-plaetze-editor{display:inline-flex;align-items:stretch}
.tn-stepper button,.training-plaetze-editor>button:not(.os-fbtn){display:inline-flex;align-items:center;justify-content:center;
  width:34px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.tn-stepper button:first-child,.training-plaetze-editor>button:first-child{border-radius:3px 0 0 3px}
.tn-stepper button:last-child{border-radius:0 3px 3px 0}.tn-stepper button:hover,.training-plaetze-editor>button:not(.os-fbtn):hover{background:var(--surface2);color:var(--accent)}
.tn-stepper input,.training-plaetze-editor input{width:62px;min-width:0;padding:7px 5px;border:1px solid var(--line2);
  border-left:0;border-right:0;border-radius:0;text-align:center;font:inherit;font-variant-numeric:tabular-nums}
.tn-belegung-verlauf{margin-top:12px}.tn-belegung-verlauf summary{color:var(--soft);font-size:12px;cursor:pointer}
.tn-belegung-verlauf>.os-baum{margin-top:6px;padding:8px 10px;background:var(--surface2)}
.training-plaetze-editor{justify-content:flex-end;white-space:nowrap}
.training-plaetze-editor .os-fbtn{margin:0 0 0 6px}.training-plaetze-editor input{width:48px;padding-top:4px;padding-bottom:4px}
.training-plaetze-editor>button:not(.os-fbtn){width:28px}
@media(max-width:620px){.tn-belegung-kern{grid-template-columns:1fr}.tn-belegung-kern>div{border-right:0;border-bottom:1px solid var(--line)}.tn-belegung-kern>div:last-child{border-bottom:0}.tn-belegung-steuerung{grid-template-columns:1fr}.tn-belegung-steuerung>.os-btn{justify-self:start}}
.os-naechster-schritt{display:grid;gap:2px;margin-top:9px;padding:8px;background:#f4f8fc;border-left:2px solid var(--accent2);font-size:11.5px}
.os-naechster-schritt>span{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.os-naechster-schritt>b{color:var(--ink)}
.os-naechster-schritt>small{color:var(--soft);line-height:1.35}
.os-arbeitsfokus{padding:18px;border:1px solid #b9d1ea;border-left:4px solid var(--accent);background:#f4f8fc;border-radius:4px}
.os-arbeitsfokus>span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.os-arbeitsfokus h3{margin:5px 0 4px;font-size:19px}.os-arbeitsfokus p{margin:0 0 14px;color:var(--soft);line-height:1.5}
.os-arbeitsliste{margin-top:22px}.os-arbeitsliste>h3{font-size:14px;margin:0 0 8px}
.os-arbeitszeile{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.os-arbeitszeile .status{display:flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:50%;font-weight:700;background:var(--surface2);color:var(--faint)}
.os-arbeitszeile.offen .status{background:#e8f2fc;color:var(--accent)}.os-arbeitszeile.fertig .status{background:#e8f5ee;color:var(--ok)}
.os-arbeitszeile b,.os-arbeitszeile small{display:block}.os-arbeitszeile small{margin-top:2px;color:var(--soft);line-height:1.4}
.os-arbeitszeile.gesperrt{opacity:.78}.os-weitere-aktionen{margin-top:22px}.os-aktionsraster{display:flex;gap:8px;flex-wrap:wrap}
.os-kritische-aktion{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.os-kritische-aktion p{margin:4px 0 10px;color:var(--soft);font-size:12px;line-height:1.45}
@media(max-width:700px){.os-arbeitszeile{grid-template-columns:26px 1fr}.os-arbeitszeile>.os-fbtn{grid-column:2;justify-self:start}}
/* Excel-Werkzeuge: kleine Symbolknöpfe am rechten Rand der Werkzeugleiste,
   nicht gleichrangig neben den Filtern (Stevens Ansage vom 12.08.2026).
   margin-left:auto auf der Hülle schiebt die Gruppe unabhängig von der
   Anzahl vorangehender Filterknöpfe an den Zeilenrand. */
.os-icon-leiste{margin-left:auto;display:flex;gap:4px;align-items:center}
.os-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
  padding:0;border:1px solid var(--line2);border-radius:2px;background:var(--surface);
  color:var(--soft);cursor:pointer}
.os-icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.os-icon-btn[disabled]{opacity:.5;cursor:default}
.os-btn{font-size:13px;font-weight:600;padding:8px 14px;border-radius:2px;cursor:pointer;
  background:var(--accent);border:1px solid var(--accent);color:#fff}
.os-btn:hover{filter:brightness(1.08)}
.os-btn.still{background:transparent;color:var(--soft);border-color:var(--line2)}
.os-btn.still:hover{color:var(--accent);border-color:var(--accent)}
.os-btn[disabled]{opacity:.6;cursor:default}
.os-hilfe-knopf{width:32px;height:32px;padding:0;border-radius:50%;font-size:15px;
  font-weight:750;display:inline-flex;align-items:center;justify-content:center}

/* Hilfe & Automationen: Erklärungen bleiben lesbar und ruhig. Status ist
   ein Chip, kein farbiger Kachelteppich. */
.ha-lead{max-width:900px;margin-bottom:18px}
.ha-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:24px;
  align-items:start;max-width:1180px}
.ha-layout h2,.ha-kontext h2{font-size:14px;margin:0 0 9px}
.ha-automation{border:1px solid var(--line);border-radius:3px;padding:12px 14px;margin:0 0 10px;
  background:var(--surface)}
.ha-automation-kopf{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ha-automation h3{font-size:14px;margin:0}
.ha-automation p{margin:6px 0;color:var(--soft);font-size:13px}
.ha-automation .os-hinweis{margin-top:10px}
.ha-daten{display:grid;grid-template-columns:82px 1fr;gap:3px 9px;margin:8px 0;font-size:12.5px}
.ha-daten dt{color:var(--faint);font-weight:650}.ha-daten dd{margin:0;color:var(--soft)}
.ha-seiten{border:1px solid var(--line);border-radius:3px;overflow:hidden}
.ha-seiten button{width:100%;display:block;text-align:left;padding:9px 11px;border:0;
  border-bottom:1px solid var(--line);background:var(--surface);cursor:pointer}
.ha-seiten button:last-child{border-bottom:0}.ha-seiten button:hover{background:var(--surface2)}
.ha-seiten b{display:block;font-size:12.5px}.ha-seiten span{display:block;font-size:11.5px;color:var(--soft)}
.ha-kontext{margin-bottom:18px}.ha-kontext p{color:var(--soft)}
.ha-tiefe{border-top:1px solid var(--line);margin-top:10px;padding-top:9px}
.ha-tiefe summary{cursor:pointer;color:var(--text);font-size:12.5px;font-weight:650}
.ha-tiefe[open] summary{margin-bottom:7px}.ha-tiefe .os-hinweis{margin:8px 0 0}
.fc-steuerung{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.fc-steuerung .os-leiste{margin-bottom:0}.fc-filter{display:flex;gap:9px}.fc-filter label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.fc-filter select{display:block;min-width:145px;margin-top:4px}.fc-szenarien{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--surface)}
.fc-szenario{flex:1;min-width:130px;padding:7px 12px;border-left:3px solid var(--accent);border-right:1px solid var(--line)}
.fc-szenario:last-child{border-right:0}.fc-szenario.ok{border-left-color:var(--ok)}.fc-szenario.crit{border-left-color:var(--err)}
.fc-szenario>span{display:block;color:var(--faint);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.fc-szenario .zahl{font-size:14.5px;font-weight:750;margin-top:1px}.fc-szenario small{color:var(--soft);font-size:10.5px}
.fc-szenario-filter{appearance:none;text-align:left;font:inherit;color:inherit;background:var(--surface);cursor:pointer;opacity:.48;transition:opacity .15s,background .15s,box-shadow .15s}
.fc-szenario-filter:hover{opacity:.78;background:var(--surface2)}
.fc-szenario-filter.aktiv{opacity:1;background:#fff;box-shadow:inset 0 -3px 0 rgba(47,111,179,.16)}
.fc-szenario-filter[aria-pressed="true"]>span:first-child{color:var(--text)}
.fc-szenario-filter:focus-visible,.fc-graph-filter:focus-visible,.fc-tabellen-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fc-stand{margin:0 0 8px;color:var(--soft);font-size:13px}.fc-schwelle{margin:7px 0 0;color:var(--err);font-size:12px;font-weight:650}.fc-logik{margin-top:16px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}.fc-logik summary{cursor:pointer;padding:10px 12px;font-weight:650;font-size:12.5px}.fc-logik p{margin:0;padding:0 12px 12px;color:var(--soft);font-size:12.5px;line-height:1.55}
.fc-kopfaktion{margin-left:auto}
.fc-bankleiste{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:11px 14px;margin-bottom:14px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:4px;background:var(--surface)}
.fc-banklabel{display:block;color:var(--faint);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.fc-bankwert{font-size:18px;font-weight:750;margin-top:3px}
.fc-warum{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;margin-left:5px;vertical-align:middle;opacity:.55}
.os-chip[title]{cursor:help}
.fc-bankaktionen{display:flex;gap:8px;flex-wrap:wrap}
.fc-bankfeld{display:flex;flex-direction:column;gap:4px;min-width:260px;flex:1;max-width:430px}
.fc-bankfeld>input[type=number],.fc-bankfeld>input[type=text]{width:190px;font-size:17px;font-weight:700;padding:5px 8px;text-align:right}
.fc-bankfeld small{font-size:11px}
.fc-bankfeld input[type=range]{width:100%;accent-color:var(--accent);cursor:grab;margin:0}
.fc-bankfeld input[type=range]:active{cursor:grabbing}
.fc-vorschau-marke{color:var(--accent);font-weight:650}
.fc-bankstand-bestaetigt{max-width:760px}
.fc-bank-kompakt{display:grid;grid-template-columns:180px minmax(180px,1fr) auto;align-items:center;gap:8px}
.fc-bank-kompakt>input[type=text]{width:100%;font-size:17px;font-weight:700;padding:5px 8px;text-align:right}
.fc-bank-kompakt>input[type=range]{min-width:180px}
.fc-bankstand-neu{margin-top:2px}
.fc-bankstand-neu summary{cursor:pointer;font-size:12px;font-weight:700;color:var(--accent)}
.fc-bankstand-form{display:grid;grid-template-columns:160px minmax(220px,1fr) minmax(180px,1fr);gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.fc-bankstand-form label{color:var(--faint);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.fc-bankstand-form input{display:block;width:100%;margin-top:4px;text-transform:none;letter-spacing:normal}
@media(max-width:900px){.fc-bank-kompakt,.fc-bankstand-form{grid-template-columns:1fr}.fc-bank-kompakt>input[type=range]{width:100%}}
/* Eigener Tooltip statt title= — der native kommt erst nach einer
   Sekunde Stillhalten und wird von .os-tabelle{overflow-x:auto}
   abgeschnitten. Deshalb am <body> und position:fixed. */
.fc-tipp{position:fixed;display:none;z-index:9999;max-width:290px;padding:7px 10px;border-radius:4px;
  background:#0C1F2D;color:#fff;font-size:12px;line-height:1.45;pointer-events:none;
  box-shadow:0 4px 14px rgba(12,31,45,.28)}
[data-warum]{cursor:help}
/* Kompakte Monatstabelle: 24 Zeilen sollen ohne Scrollen überblickbar
   sein. Der aufgeklappte Aufschlag bleibt normal gross. */
/* Die Kopfzeile dieser Tabelle traegt kein .os-sort, deshalb greift das
   globale th{padding:0} — sie klebte bisher an der Oberkante. */
.fc-kompakt>table>thead>tr>th{padding:6px 12px}
.fc-kompakt>table>tbody>tr>td{padding:4px 12px}
.fc-kompakt .fc-monat-toggle{padding:0}
.fc-kompakt .fc-monat-saldo{padding:9px 16px}
.fc-monat-detail.fc-position-detail>td{padding:7px 10px!important;vertical-align:top;background:#F6F9FB}
.fc-position-monat{border-left:3px solid var(--accent)}
.fc-position-monat b,.fc-position-monat small{display:block}
.fc-position-monat small{color:var(--faint);font-size:9.5px}
.fc-position-zelle{border-left:1px solid var(--line)}
.fc-position-zelle.aktiv{box-shadow:inset 0 2px 0 var(--accent)}
.fc-position-summe{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}
.fc-position-summe small{color:var(--faint);font-size:9.5px}
.fc-position-summe b{font-size:11px;font-variant-numeric:tabular-nums}
.fc-monat-position{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 0;border-top:1px solid var(--line);font-size:11px}
.fc-monat-position:first-child{border-top:0}
.fc-monat-position>div{min-width:0}
.fc-monat-position small,.fc-monat-position a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-monat-position small{color:var(--faint);font-size:9.5px}
.fc-monat-position a{font-weight:650}
.fc-monat-position>b{font-variant-numeric:tabular-nums;white-space:nowrap}
.fc-position-kosten{text-align:right}
.fc-plan-chart{margin-top:20px}
.fc-bank-detail{border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;
  font-variant-numeric:tabular-nums;padding:2px 5px;margin:-2px -5px;border-radius:5px;cursor:pointer}
.fc-bank-detail:hover,.fc-bank-detail:focus-visible,.fc-bank-detail[aria-expanded="true"]{
  color:var(--accent);background:rgba(47,111,179,.08);text-decoration:underline;text-underline-offset:3px}
.fc-szenariodetail{border-left:3px solid var(--accent);padding:14px 16px;background:var(--surface);overflow:hidden}
.fc-szenariodetail.ok{border-left-color:var(--ok)}.fc-szenariodetail.warn{border-left-color:var(--warn)}
.fc-szenariokopf{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}
.fc-szenariokopf small{color:var(--faint)}.fc-szenariokopf h5{margin:1px 0 0;color:var(--ink);font-size:1rem}
.fc-szenariokopf>b{font-size:1.25rem;color:var(--ok)}
.fc-szenarioliste{margin-top:10px}.fc-szenarioliste-kopf{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.fc-positionen-liste{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.fc-position{display:grid;grid-template-columns:minmax(90px,120px) minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}
.fc-position:first-child{border-top:0}.fc-position:hover{background:var(--surface2)}
.fc-position-firma{display:block;color:var(--faint);font-size:11.5px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-position-name{min-width:0}.fc-position-name a{font-weight:650}.fc-position-betrag{font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.fc-inline-kopf{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:10px}
.fc-inline-kopf>div:first-child{display:flex;flex-direction:column}.fc-inline-kopf small{color:var(--faint)}
.fc-inline-summen{display:flex;gap:16px;flex-wrap:wrap;font-size:.78rem;color:var(--faint)}
.fc-inline-summen b{display:block;color:var(--ok);font-size:.92rem}.fc-inline-summen .kosten b{color:var(--err)}
.fc-inline-raster{display:grid;grid-template-columns:minmax(0,7fr) minmax(240px,3fr);gap:18px;align-items:start}
.fc-inline-raster>section{min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.fc-inline-raster>section>h5{color:var(--ink);margin-bottom:8px}
.fc-inline-kopf em{font-size:11px;font-style:normal;color:var(--ok);margin-top:3px}
.fc-rechenweg{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:12px;align-items:center;
  padding:10px 12px;margin-bottom:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.fc-rechenweg span{text-align:center}.fc-rechenweg small{display:block;color:var(--faint);font-size:10px}
.fc-rechenweg b{display:block;font-variant-numeric:tabular-nums;margin-top:2px}.fc-rechenweg i{font-style:normal;color:var(--faint)}
.fc-rechenweg .ergebnis b{color:var(--ok);font-size:1.05rem}
.fc-detail-tabs{display:flex;gap:4px;margin:0 0 10px;border-bottom:1px solid var(--line)}
.fc-detail-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:7px 12px;cursor:pointer;color:var(--soft)}
.fc-detail-tabs button[aria-pressed="true"]{border-bottom-color:var(--accent);color:var(--accent);font-weight:700}
.fc-grund-kurz{display:block;max-width:410px;color:var(--soft);font-size:11.5px;line-height:1.35}
.fc-kosten-kurz ul{list-style:none;margin:0 0 10px;padding:0}.fc-kosten-kurz li{display:flex;justify-content:space-between;
  gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:12px}.fc-kosten-kurz li:first-child{border-top:0}
.fc-kosten-kurz li span{min-width:0}.fc-kosten-kurz li small{display:block;color:var(--faint)}
.fc-kosten-kurz li b{white-space:nowrap;font-variant-numeric:tabular-nums}.fc-detail-fuss{margin:9px 0 0}
.fc-kosten-abschnitt{margin-top:22px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.fc-kosten-abschnitt>summary{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;
  font-weight:750;list-style:none}.fc-kosten-abschnitt>summary::-webkit-details-marker{display:none}
.fc-kosten-abschnitt>summary:before{content:'›';color:var(--faint);margin-right:8px;transition:transform .15s}
.fc-kosten-abschnitt[open]>summary:before{transform:rotate(90deg)}
.fc-kosten-abschnitt>summary span{margin-left:auto;color:var(--faint);font-size:11.5px;font-weight:500}
.fc-kosten-abschnitt>div,.fc-kosten-abschnitt>section{padding:0 15px 15px}
.fc-kosten-monatskopf{display:flex;justify-content:space-between;gap:16px;align-items:end;margin:4px 0 12px}
.fc-kosten-monatskopf h3,.fc-kosten-monatskopf p{margin:0}.fc-kosten-monatskopf p{color:var(--soft);font-size:12px}
.fc-kosten-monatskopf label{font-size:11px;color:var(--faint)}.fc-kosten-monatskopf select{display:block;margin-top:3px}
.fc-abgleich-archiv>section,.fc-abgleich-archiv>div{margin-left:15px;margin-right:15px}
@media(max-width:900px){.fc-inline-raster{grid-template-columns:1fr}.fc-inline-kopf{align-items:start;flex-direction:column}}
@media(max-width:700px){.fc-rechenweg{grid-template-columns:1fr 1fr}.fc-rechenweg i{display:none}
  .fc-kosten-monatskopf{align-items:start;flex-direction:column}.fc-kosten-abschnitt>summary span{display:none}}
.fc-umsatz-kopf{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:18px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.fc-umsatz-kopf h3{margin:0 0 3px}.fc-umsatz-kopf p{margin:0;color:var(--soft)}
.fc-umsatz-stufen{display:flex;gap:0;flex-wrap:wrap;border:1px solid var(--line);border-radius:7px;overflow:hidden}.fc-umsatz-stufen .os-fbtn{border:0;border-right:1px solid var(--line);border-radius:0}.fc-umsatz-stufen .os-fbtn:last-child{border-right:0}
.fc-umsatz-kpis{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-bottom:14px}
.fc-umsatz-kpis>div{padding:15px 17px;border:1px solid var(--line);border-radius:8px;background:var(--surface);border-top:3px solid var(--ok)}
.fc-umsatz-kpis span,.fc-umsatz-kpis small{display:block;color:var(--faint)}.fc-umsatz-kpis b{display:block;font-size:1.45rem;color:var(--ok);margin:2px 0}
.fc-umsatz-chart-wrap{padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(15,35,25,.03)}
.fc-umsatz-chart-kopf{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:5px}.fc-umsatz-chart-kopf h4{margin:0}.fc-umsatz-chart-kopf small{color:var(--faint)}
.fc-umsatz-chart-scroll{overflow-x:auto;overscroll-behavior-inline:contain;padding:2px 0 5px}.fc-umsatz-chart{width:100%;height:auto;display:block}
.fc-umsatz-chart [data-umsatz-monat]{cursor:pointer}.fc-umsatz-tabellenkopf{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:22px 2px 9px}.fc-umsatz-tabellenkopf h4{margin:0 0 2px}.fc-umsatz-tabellenkopf p{margin:0;color:var(--faint);font-size:11.5px}
.fc-umsatz-tabelle{border-radius:10px;box-shadow:0 1px 2px rgba(15,35,25,.03)}.fc-umsatz-tabelle table{width:100%;border-collapse:separate;border-spacing:0}.fc-umsatz-tabelle th{padding-top:10px;padding-bottom:10px;background:var(--surface2);color:var(--soft);font-size:10.5px;letter-spacing:.025em}.fc-umsatz-tabelle td{padding-top:11px;padding-bottom:11px}.fc-umsatz-tabelle tbody>tr:not(.fc-umsatz-detail):hover>td{background:#F8FBFA}.fc-umsatz-tabelle tfoot td{background:var(--surface2);border-top:1px solid var(--line);font-weight:700}
.fc-umsatz-positionen{padding:15px 18px;border-left:3px solid var(--ok);background:#F8FBFA}.fc-umsatz-positionen>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:9px}.fc-umsatz-positionen small{color:var(--faint)}.fc-umsatz-positionen .fc-position{margin-top:6px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.fc-umsatz-positionen .fc-position:first-child{border-top:1px solid var(--line)}.fc-position-ziel{display:block;margin-top:3px;color:var(--ok)!important;font-size:10.5px}
.fc-umsatz-umfang{display:flex;align-items:center;justify-content:flex-end;gap:13px;padding:10px 2px 0;color:var(--faint);font-size:11.5px}.fc-umsatz-umfang .os-btn{white-space:nowrap}
.fc-umsatz-aktuell>td{background:#F5FAF7!important}.fc-umsatz-aktuell>td:first-child{box-shadow:inset 3px 0 var(--ok)}
@media(max-width:760px){.fc-umsatz-kopf{align-items:start;flex-direction:column}.fc-umsatz-kpis{grid-template-columns:1fr}.fc-umsatz-chart-kopf,.fc-umsatz-umfang{align-items:start;flex-direction:column}.fc-umsatz-umfang .os-btn{width:100%}.fc-position{grid-template-columns:82px minmax(0,1fr)}.fc-position-betrag{grid-column:2}}
/* Der Tiefpunkt: die Antwort auf «wann wird es knapp». Eigener Block
   statt vierter Kachel — er misst etwas anderes als die drei Szenarien
   (ein Minimum ueber die Zeit, kein Endstand). */
/* Bewusst eine Zeile statt eines Blocks: Der Tiefpunkt ist EINE Zahl
   mit EINEM Satz — als Kasten mit drei Etagen drängt er sich vor die
   Tabelle, auf die es eigentlich ankommt. */
.fc-tief{margin-top:8px;padding:7px 12px;border:1px solid var(--line);border-left:3px solid var(--ok);
  border-radius:4px;background:var(--surface);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.fc-tief.warn{border-left-color:var(--warn)}.fc-tief.crit{border-left-color:var(--err)}
.fc-tief .fc-banklabel{font-size:9.5px}
.fc-tief .fc-bankwert{font-size:14.5px;margin-top:0}
.fc-tief small{color:var(--soft);font-size:11.5px}
.fc-tief.crit .fc-bankwert,.fc-tief.crit small{color:var(--err)}
.fc-tief-monat{font-size:12px;font-weight:600;color:var(--soft)}
.fc-stand{font-size:12.5px}
.fc-legende{margin:0 0 8px;color:var(--faint);font-size:12px}
.fc-legende-warn{color:var(--err);font-weight:650}
/* --- Graph --- */
.fc-graph{width:100%;height:auto;display:block;background:var(--surface);border:1px solid var(--line);border-radius:4px}
.fc-klickband{cursor:pointer}
.fc-klickband:hover{fill:var(--accent);fill-opacity:.07}
.fc-graph-legende{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--soft);margin-top:8px}
.fc-legende-strich{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.fc-graph-filter{appearance:none;display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;padding:4px 8px;background:transparent;color:var(--soft);font:inherit;cursor:pointer;opacity:.5}
.fc-graph-filter:hover{opacity:.8;background:var(--surface2)}.fc-graph-filter.aktiv{opacity:1;border-color:var(--line);background:var(--surface)}
.fc-plan-chart{margin:18px 0 22px}
.fc-belastbarkeit{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.4fr);gap:22px;
  margin:0 0 14px;padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--err);
  border-radius:4px;background:var(--surface)}
.fc-belastbarkeit>div>span{color:var(--faint);font-size:10px;font-weight:750;letter-spacing:.08em;
  text-transform:uppercase}.fc-belastbarkeit h3{margin:3px 0 5px;color:var(--err);font-size:16px}
.fc-belastbarkeit p{margin:0;color:var(--soft);font-size:12.5px;line-height:1.45}
.fc-belastbarkeit ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;
  gap:0 18px}.fc-belastbarkeit li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;
  border-bottom:1px solid var(--line);font-size:12px}.fc-belastbarkeit li span{color:var(--soft)}
.fc-belastbarkeit li b{font-variant-numeric:tabular-nums;text-align:right}.fc-belastbarkeit li.warn b{color:var(--warn)}
.fc-szenario-gleich{margin:12px 0 0}.fc-szenario-gleich b{color:var(--warn)}
@media(max-width:820px){.fc-belastbarkeit{grid-template-columns:1fr}.fc-belastbarkeit ul{grid-template-columns:1fr}}
/* --- Fokus aus dem Graphen --- */
.fc-fokus{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:6px 12px;
  border-left:3px solid var(--accent);background:var(--surface2);border-radius:4px;font-size:12.5px}
.fc-fokus>span{font-weight:700}
.fc-tabellen-filterleiste{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.fc-tabellen-filter{appearance:none;border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--surface);color:var(--soft);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;opacity:.48}
.fc-tabellen-filter:hover{opacity:.8;background:var(--surface2)}.fc-tabellen-filter.aktiv{opacity:1;color:var(--text);border-color:var(--accent);background:rgba(47,111,179,.08)}
.fc-tabellen-umfang{display:flex;justify-content:center;margin:9px 0 0}
.fc-cashflow-haupt{display:grid;grid-template-columns:minmax(620px,1.55fr) minmax(340px,.9fr);
  gap:16px;align-items:start}.fc-cashflow-tabelle,.fc-cashflow-grafik{min-width:0}
.fc-cashflow-grafik .fc-plan-chart{margin-top:12px}.fc-cashflow-hinweise{margin-top:16px}
@media(max-width:1180px){.fc-cashflow-haupt{grid-template-columns:1fr}}
/* --- Kosten- und Summenzeile --- */
.fc-kosten{color:var(--err)}
/* --- Kosten-Diagnoseansicht --- */
.fc-summenzeile{display:flex;gap:26px;flex-wrap:wrap;margin-top:14px;padding:11px 14px;
  border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:4px;background:var(--surface)}
.fc-summenzeile>div{min-width:230px}
.fc-summenzeile .fc-bankwert{font-size:17px}
.fc-summenzeile .fc-bankwert.warn{color:var(--warn)}
.fc-klaerliste{margin:0;padding:0;list-style:none;font-size:12.5px}
.fc-klaerliste li{display:flex;gap:10px;align-items:baseline;padding:4px 0;border-top:1px solid var(--line)}
.fc-klaerliste li:first-child{border-top:0}
.fc-klaerliste .zahl{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--soft)}
/* Analyse: Tabelle und Diagramm nebeneinander, auf schmalen Schirmen untereinander */
.fc-klaerblock{margin:0 0 18px;padding:12px 14px;border:1px solid var(--warn);
  border-left:3px solid var(--warn);border-radius:4px;background:#FFFBF2}
.fc-klaerblock h4{margin:0 0 4px}
.fc-klaer-chip{appearance:none;font:inherit;cursor:pointer;margin:2px 4px 2px 0}
.fc-klaer-chip:hover,.fc-klaer-chip:focus-visible{background:#fff3d6;box-shadow:0 0 0 2px rgba(142,91,0,.18)}
.fc-klaer-dialog{display:grid;gap:16px;max-width:620px}
.fc-klaer-dialog>label,.fc-klaer-dialog fieldset{display:grid;gap:7px;font-weight:700;color:var(--text)}
.fc-klaer-dialog input[type=number],.fc-klaer-dialog input[type=date]{width:100%;min-height:46px;
  padding:9px 12px;font-size:18px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}
.fc-klaer-dialog fieldset{border:0;padding:0;margin:0}.fc-klaer-dialog legend{margin-bottom:8px;font-weight:700}
.fc-klaer-dialog .fc-klaer-wahl{display:flex;align-items:center;gap:9px;padding:11px 12px;
  border:1px solid var(--line);border-radius:5px;background:var(--surface2);font-weight:600}
.fc-klaer-kontext,.fc-klaer-wirkung{margin:0;color:var(--soft);line-height:1.5}
.fc-klaer-wirkung{padding-top:12px;border-top:1px solid var(--line);font-size:12.5px}
.fc-kplan-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  margin:20px 0 14px}
.fc-kplan-kopf h3{margin:0 0 4px}.fc-kplan-kopf p{margin:0;color:var(--soft);line-height:1.45}
.fc-kplan-hauptaktionen{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}
.fc-kplan-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:12px 14px;
  border:1px solid var(--line);border-radius:8px;background:var(--surface2);margin-bottom:14px}
.fc-kplan-filter label{display:flex;flex-direction:column;gap:4px;color:var(--faint);font-size:11px;
  font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.fc-kplan-filter select,.fc-kplan-filter input{min-height:34px}
.fc-kplan-filter .fc-kplan-suche{min-width:220px;flex:1}
.fc-kplan-check{flex-direction:row!important;align-items:center;min-height:34px;text-transform:none!important;
  letter-spacing:0!important;color:var(--soft)!important;white-space:nowrap}
.fc-kplan-check input{min-height:auto}
.fc-kplan-kpis{margin-bottom:16px}
.fc-kplan-wrap{overflow:auto;max-height:min(62vh,720px);border:1px solid var(--line);border-radius:8px;
  background:var(--surface);overscroll-behavior:contain}
.fc-kplan{border-collapse:separate;border-spacing:0;min-width:1540px;width:100%;font-size:12px;
  font-variant-numeric:tabular-nums}
.fc-kplan th,.fc-kplan td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:7px 8px;white-space:nowrap;text-align:right;background:var(--surface)}
.fc-kplan tr>*:first-child{text-align:left;position:sticky;left:0;z-index:2;min-width:260px;max-width:320px}
.fc-kplan thead th{position:sticky;top:0;z-index:4;background:var(--surface2);color:var(--faint);
  font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
.fc-kplan thead th:first-child{z-index:5;background:var(--surface2)}
.fc-kplan thead button{border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;
  letter-spacing:inherit;cursor:pointer;padding:0}
.fc-kplan thead button:hover{color:var(--accent)}
.fc-kplan-gruppe th,.fc-kplan-gruppe td{background:var(--surface2);font-weight:700;color:var(--ink)}
.fc-kplan-gruppe th{z-index:3!important}.fc-kplan-gruppe small{color:var(--faint);font-weight:500;margin-left:5px}
.fc-kplan-gruppe-toggle{display:flex;align-items:center;gap:7px;width:100%;border:0;background:transparent;
  color:inherit;font:inherit;font-weight:700;text-align:left;padding:0;cursor:pointer}
.fc-kplan-gruppe-toggle:hover>span:nth-child(2){color:var(--accent)}
.fc-kplan-pfeil{display:inline-block;color:var(--accent);font-size:20px;line-height:12px;transition:transform .15s ease}
.fc-kplan-gruppe-toggle[aria-expanded="true"] .fc-kplan-pfeil{transform:rotate(90deg)}
.fc-kplan-position:hover td,.fc-kplan-position:hover th{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.fc-kplan-position.ist-offen th{border-left:3px solid var(--warn)}
.fc-kplan-name{display:block;border:0;background:transparent;padding:0;color:var(--accent);font:inherit;
  font-weight:650;cursor:pointer;max-width:245px;overflow:hidden;text-overflow:ellipsis;text-align:left}
.fc-kplan-name:hover{text-decoration:underline}
.fc-kplan-position th>small{display:block;color:var(--faint);font-weight:400;overflow:hidden;text-overflow:ellipsis}
.fc-kplan-position th>.os-chip{margin-top:4px}
.fc-kplan-rhythmus{text-align:left!important;color:var(--soft)}
.fc-kplan-zelle{padding:0!important}.fc-kplan-zelle button{display:block;width:100%;min-height:38px;border:0;
  background:transparent;color:var(--ink);font:inherit;text-align:right;padding:7px 8px;cursor:pointer}
.fc-kplan-zelle button:hover,.fc-kplan-zelle button:focus-visible{background:rgba(47,111,179,.10);
  color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px}
.fc-kplan-zelle sup{color:var(--err);margin-left:2px}.fc-kplan-leer{color:var(--line2)}
.fc-kplan-jahr{font-weight:700}.fc-kplan-aktion{padding:4px!important}.fc-kplan-aktion .os-btn{padding:5px 8px}
.fc-kplan-neu th,.fc-kplan-neu td{background:#F7FBFF}.fc-kplan-neu th{color:var(--accent)}
.fc-kplan-neu th small{display:block;color:var(--faint);font-weight:400}
.fc-kplan-neu td button{width:100%;border:1px dashed var(--accent);border-radius:4px;background:transparent;
  color:var(--accent);font-weight:800;cursor:pointer;padding:4px}
.fc-kplan-neu td button:hover{background:rgba(47,111,179,.10)}
.fc-kplan-schnell th,.fc-kplan-schnell td{background:#FAFCFE;color:var(--soft)}
.fc-kplan-schnell th{padding-left:24px!important;font-weight:650}
.fc-kplan-schnell th small{display:block;color:var(--faint);font-weight:400}
.fc-kplan-schnell td button{width:100%;border:1px dashed var(--line2);border-radius:4px;background:transparent;
  color:var(--accent);font-weight:800;cursor:pointer;padding:3px}
.fc-kplan-schnell td button:hover,.fc-kplan-schnell td button:focus-visible{border-color:var(--accent);
  background:rgba(47,111,179,.10);outline:0}
.fc-kplan-schnell:last-child th,.fc-kplan-schnell:last-child td{border-bottom:2px solid var(--line2)}
.fc-kplan tfoot th,.fc-kplan tfoot td{position:sticky;bottom:0;z-index:3;background:var(--surface2);
  font-weight:800;border-bottom:0}.fc-kplan tfoot th{z-index:4}
.fc-kplan-hinweis{margin:9px 0 0;line-height:1.5}
.fc-analyse-hauptzahl{display:inline-flex;flex-direction:column;min-width:280px;margin:16px 0 2px;
  padding:14px 18px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;
  background:var(--surface)}
.fc-analyse-hauptzahl>span{color:var(--faint);font-size:11px;font-weight:750;text-transform:uppercase;
  letter-spacing:.06em}.fc-analyse-hauptzahl>b{font-size:1.8rem;margin:3px 0;font-variant-numeric:tabular-nums}
.fc-analyse-hauptzahl>small{color:var(--soft)}
.fc-datenstatus{margin-top:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.fc-datenstatus>summary{padding:12px 14px;cursor:pointer;font-weight:700}
.fc-datenstatus>summary span{margin-left:6px;color:var(--faint);font-size:11px;font-weight:500}
.fc-datenstatus>p{margin:0;padding:0 14px 10px;color:var(--soft)}
.fc-statuskarten{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:10px;padding:0 14px 14px}
.fc-statuskarte{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:12px;
  border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left}
.fc-statuskarte:hover,.fc-statuskarte:focus-visible{border-color:var(--accent);background:rgba(47,111,179,.05)}
.fc-statuskarte>span{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.fc-statuskarte>b{font-size:1.25rem;margin:2px 0;font-variant-numeric:tabular-nums}.fc-statuskarte.ok>b{color:var(--ok)}
.fc-statuskarte.warn>b{color:var(--warn)}.fc-statuskarte>small{color:var(--soft)}
.fc-statuskarte>i{margin-top:8px;color:var(--accent);font-size:11px;font-style:normal;font-weight:650}
.fc-kosten-diagnose{margin-bottom:10px}.fc-kosten-diagnose-inhalt{padding:0 14px 14px}
.fc-kosten-diagnose .os-kacheln{margin-bottom:16px}
.fc-diagnose-kachel{font:inherit;color:inherit;text-align:left;cursor:pointer}
.fc-diagnose-kachel:hover,.fc-diagnose-kachel:focus-visible{border-color:var(--accent);background:rgba(47,111,179,.05)}
.fc-diagnose-kachel>i{display:block;margin-top:7px;color:var(--accent);font-size:11px;font-style:normal;font-weight:650}
.fc-statusfokus{max-width:1200px}.fc-statusfokus h3{margin:14px 0 4px}.fc-statusfokus>p{color:var(--soft);margin:0 0 16px}
.fc-durchschnitt-formel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;
  padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;
  background:var(--surface2);font-variant-numeric:tabular-nums}
.fc-durchschnitt-formel b{font-size:1.2rem}.fc-durchschnitt-formel span{color:var(--soft)}
.fc-zurueck{display:inline-flex;gap:7px;align-items:center;border:0;background:transparent;color:var(--accent);
  font:inherit;font-weight:700;padding:6px 0;cursor:pointer}.fc-zurueck:hover span{text-decoration:underline}
@media(max-width:720px){.fc-kplan-kopf{flex-direction:column}.fc-kplan-hauptaktionen{justify-content:flex-start}
  .fc-kplan-filter>*{width:100%}.fc-kplan-check{white-space:normal}.fc-kplan-wrap{max-height:65vh}
  .fc-statuskarten{grid-template-columns:1fr}.fc-analyse-hauptzahl{min-width:0;width:100%}}
.fc-zeitluecke{display:flex;align-items:center;justify-content:space-between;gap:18px}
.fc-zeitluecke p{margin:0;color:var(--soft);line-height:1.45}
.fc-zeitkritisch{color:var(--warn);font-weight:650}
@media(max-width:720px){.fc-zeitluecke{align-items:flex-start;flex-direction:column}}
/* Der eine Satz im Lesemodus. Er traegt die Aussage, also darf er
   groesser sein als der Rest — aber ohne Kasten, damit er nicht wie
   eine Warnung wirkt. */
.fc-lesesatz{font-size:1.06rem;line-height:1.55;margin:0 0 14px}
/* Deals-Hierarchie: Jahr fett, Monat halbfett, Deals normal. Die
   Einrueckung allein traegt die Ebene nicht — auf schmalen Schirmen
   scrollt die Tabelle, und dann sieht man sie nicht mehr. */
.fc-gruppe>td{background:var(--faint-bg,rgba(127,127,127,.08));font-weight:700}
.fc-untergruppe>td{font-weight:600}
/* Die Ueberleitung Portfolio → Plan. Sie ist eine Rechnung, keine
   Liste — deshalb ohne Kopfzeile, mit klarer Summenzeile. */
.fc-ueberleitung{margin:18px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px}
.fc-ueberleitung h4{margin:0 0 8px}
.fc-ueberleitung table{width:100%;border-collapse:collapse}
.fc-ueberleitung td{padding:5px 0}
.fc-ueberleitung .fc-summe td{border-top:1px solid var(--line);font-weight:700}
.fc-ueberleitung p{margin:8px 0 0;font-size:.9rem}
/* ============================================================
   Management-Überblick. Zwölf-Spalten-Denken ohne Framework:
   zwei gleich breite Bahnen auf grossen Schirmen, eine auf kleinen.
   Zahlen mit tabular-nums, damit Spalten untereinander stehen.
   ============================================================ */
.fc-ufilter{margin-bottom:20px;align-items:center;gap:8px}
.fc-ufilter>small{margin-left:auto}
.fc-ub-kopf{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-bottom:24px;
  align-items:start}   /* nicht strecken — sonst entsteht unter dem
     kuerzeren Block eine leere Flaeche in Hoehe des laengeren */
/* Der Monatsaufschlag. Er gehoert sichtbar ZUM Monat darueber — deshalb
   ein farbiger Streifen links statt eines eigenen Kastens, sonst liest
   er sich wie eine zweite, unabhaengige Tabelle. */
.fc-monatdetail{border-left:3px solid var(--accent);padding:10px 0 10px 14px;margin:0}
.fc-monatkopf{margin:0 0 10px;font-size:.95rem}
.fc-monatdetail h5{margin:0 0 8px;font-size:.9rem;color:var(--faint);
  text-transform:uppercase;letter-spacing:.06em}
.fc-kennzahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.fc-kennzahl{border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.fc-kennzahl>span{display:block;font-size:.84rem;color:var(--faint)}
.fc-kennzahl>b{display:block;font-size:1.15rem;font-variant-numeric:tabular-nums;margin:2px 0}
.fc-kennzahl>small{display:block;line-height:1.35}
.fc-kennzahl.ok>b{color:var(--ok)} .fc-kennzahl.warn>b{color:var(--warn)}
.fc-kennzahl.crit>b{color:var(--crit)}
.fc-szenarien{margin-top:14px;overflow-x:auto}
.fc-szenarien td,.fc-szenarien th{padding:6px 8px}
/* Grid-Kinder schrumpfen ohne min-width:0 NICHT unter ihren Inhalt —
   dann schiebt eine breite Tabelle die ganze Seite auf. Genau das ist
   bei 430 px passiert: die Szenarien-Tabelle machte 604 px daraus. */
.fc-ub-kopf>section,.fc-ub-zwei>section,.fc-ub-block{min-width:0}
.fc-ub-kopf>section>*,.fc-ub-zwei>section>*{max-width:100%}
.fc-ub-zwei{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}
.fc-ub-zwei>section,.fc-ub-block,.fc-antwort,.fc-handeln{
  border:1px solid var(--line);border-radius:12px;padding:16px}
.fc-ub-block{margin:28px 0}
.fc-ub-zwei h4,.fc-ub-block h4,.fc-antwort h4,.fc-handeln h4{margin:0 0 12px}
.fc-antwortsatz{font-size:1.12rem;line-height:1.6;margin:0}
.fc-rot{color:var(--crit)} .fc-gruen{color:var(--ok)}
.fc-handeln ul{list-style:none;margin:0;padding:0}
.fc-aufgabe{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;
  padding:10px 0;border-top:1px solid var(--line)}
.fc-aufgabe:first-child{border-top:0}
.fc-aufgabe .zahl{font-variant-numeric:tabular-nums}
/* Das sichtbare Cockpit trennt Ist, Planung und Risiko. Die tieferen
   Analysen bleiben vollständig erhalten, beginnen aber eingeklappt. */
.fc-cockpit-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}
.fc-cockpit-kpi{min-width:0;border:1px solid var(--line);border-top:3px solid var(--line2);
  border-radius:10px;padding:12px 13px;background:var(--surface)}
.fc-cockpit-kpi>span,.fc-cockpit-kpi>small{display:block;color:var(--faint);line-height:1.35}
.fc-cockpit-kpi>span{font-size:.8rem}.fc-cockpit-kpi>small{font-size:.76rem}
.fc-cockpit-kpi>b{display:block;margin:3px 0;font-size:1.2rem;line-height:1.2;
  font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fc-cockpit-kpi.ok{border-top-color:var(--ok)}.fc-cockpit-kpi.warn{border-top-color:var(--warn)}
.fc-cockpit-kpi.crit{border-top-color:var(--crit)}
.fc-cockpit-kpi.ok>b{color:var(--ok)}.fc-cockpit-kpi.warn>b{color:var(--warn)}
.fc-cockpit-kpi.crit>b{color:var(--crit)}
.fc-cockpit-kpi.klickbar{cursor:pointer;transition:border-color .15s ease,background .15s ease}
.fc-cockpit-kpi.klickbar:hover,.fc-cockpit-kpi.klickbar:focus-visible{
  border-color:var(--accent);outline:none;background:rgba(127,127,127,.04)}
.fc-ist-filterhinweis{margin:-8px 0 18px}
.fc-cockpit-detail{margin-top:10px}
.fc-cockpit-detail>.fc-cockpit-detail-inhalt{padding-top:2px}
.fc-cockpit-detail .fc-ub-zwei{margin:0 0 16px}
.fc-cockpit-detail .fc-ub-block{margin:0}
/* Fünf Kennzahlen, das Ergebnis doppelt so breit — Hierarchie statt
   fünf gleich lauter Kästen. */
.fc-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:0 0 28px}
.fc-kpi{border:1px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;
  transition:border-color .15s ease,background .15s ease}
.fc-kpi:hover,.fc-kpi:focus-visible{border-color:var(--accent);background:rgba(127,127,127,.04)}
.fc-kpi.gross{grid-column:span 2}
.fc-kpi-titel{font-size:.86rem;color:var(--faint)}
.fc-kpi-zahl{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;margin:4px 0}
.fc-kpi.gross .fc-kpi-zahl{font-size:2rem}
.fc-kpi.ok .fc-kpi-zahl{color:var(--ok)} .fc-kpi.crit .fc-kpi-zahl{color:var(--crit)}
.fc-kpi-unter{font-size:.82rem;color:var(--faint);line-height:1.45}
.fc-spark{display:block;width:92px;height:22px;margin-top:8px;color:var(--faint)}
.fc-chart{width:100%;height:auto;display:block}
.fc-legende .fc-marke{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 10px}
.fc-marke.ok{background:var(--ok)} .fc-marke.warn{background:var(--warn)}
.fc-marke.akz{background:var(--accent)} .fc-marke.text{background:var(--text)}
.fc-klickband{cursor:pointer} .fc-klickband:hover{fill:rgba(127,127,127,.10)}
.fc-klickband:focus-visible{outline:2px solid var(--accent)}
.fc-monatzeile{cursor:pointer} .fc-monatzeile:hover{background:rgba(127,127,127,.06)}
/* Statusverteilung als ein Balken — Anteile sieht man, Zahlen liest man. */
.fc-balken{display:flex;gap:3px;margin:0 0 12px;min-height:62px}
.fc-balken-teil{border:0;border-radius:8px;padding:8px;text-align:left;cursor:pointer;
  color:#fff;display:flex;flex-direction:column;justify-content:center;min-width:0;overflow:hidden}
.fc-balken-teil.ok{background:var(--ok)} .fc-balken-teil.warn{background:var(--warn)}
.fc-balken-teil.akz{background:var(--accent)}
.fc-balken-teil .zahl{font-variant-numeric:tabular-nums;font-weight:700}
.fc-balken-teil small{opacity:.85}
.fc-artliste{list-style:none;margin:0 0 12px;padding:0}
.fc-artliste button{display:grid;grid-template-columns:1fr 90px auto auto;gap:10px;align-items:center;
  width:100%;background:none;border:0;border-top:1px solid var(--line);padding:8px 0;
  cursor:pointer;text-align:left;color:inherit}
.fc-artliste li:first-child button{border-top:0}
.fc-artliste button:hover{background:rgba(127,127,127,.06)}
.fc-artbalken{background:rgba(127,127,127,.15);border-radius:4px;height:8px;overflow:hidden}
.fc-artbalken i{display:block;height:100%;background:var(--accent)}
.fc-artliste .zahl{font-variant-numeric:tabular-nums;font-weight:600}
.fc-bruecke>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0}
.fc-bruecke .fc-summe{border-top:1px solid var(--line);font-weight:700}
.fc-bruecke .zahl{font-variant-numeric:tabular-nums}
.fc-qualitaet{list-style:none;margin:0;padding:0}
.fc-qualitaet button{display:flex;justify-content:space-between;width:100%;gap:10px;
  background:none;border:0;border-top:1px solid var(--line);padding:8px 0;cursor:pointer;color:inherit}
.fc-qualitaet li:first-child button{border-top:0}
.fc-qualitaet button:hover{background:rgba(127,127,127,.06)}
.fc-qualitaet .warn b{color:var(--warn)}
.fc-qualitaet .zahl{font-variant-numeric:tabular-nums}
@media (max-width:1100px){
  .fc-ub-kopf,.fc-ub-zwei{grid-template-columns:1fr}
  .fc-cockpit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fc-kpis{grid-template-columns:repeat(3,1fr)}
  .fc-kpi.gross{grid-column:span 3}
}
@media (max-width:640px){
  .fc-ufilter>small{width:100%;margin-left:0}
  .fc-kpis{grid-template-columns:repeat(2,1fr)}
  .fc-kpi.gross{grid-column:span 2}
  .fc-kpi-zahl{font-size:1.25rem} .fc-kpi.gross .fc-kpi-zahl{font-size:1.6rem}
  .fc-aufgabe{grid-template-columns:1fr;gap:6px}
  .fc-balken{flex-direction:column;min-height:0}
  .fc-artliste button{grid-template-columns:1fr auto}
  .fc-artbalken{display:none}
}
.fc-analyse-raster{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;align-items:start}
@media(max-width:960px){.fc-analyse-raster{grid-template-columns:1fr}}
.os-kachel[data-warum]{cursor:help}
.fc-summe>td{border-top:2px solid var(--line2);font-weight:750;background:var(--surface2);padding:7px 12px}
.fc-summe small{font-weight:400;font-size:10.5px}
/* Vergangenheit ist keine Prognose. Blasser, aber lesbar — ausgeblendet
   waere sie nicht mehr nachvollziehbar. */
.fc-vergangen>td{opacity:.55}
.fc-jetzt>td{border-top:2px solid var(--accent)!important}
.fc-jetzt-marke{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:9.5px;margin-left:6px}
/* Unter der Warnschwelle: der Betrag ist positiv, reicht aber nicht.
   Eigenes Signal, weil «minus» schon fuer «unter null» vergeben ist. */
.fc-unter-schwelle>td{background:#FFF8E7}
.fc-unter-schwelle>td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.fc-unter-schwelle .zahl.plus{color:var(--warn)}
.fc-schwelle-marke{color:var(--warn);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:9.5px;margin-left:6px;cursor:help}
.fc-ueberzogen>td{background:#FDF2F2}
.fc-ueberzogen>td:first-child{box-shadow:inset 3px 0 0 var(--err)}
.fc-ueberzogen-marke{color:var(--err);font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  font-size:9.5px;margin-left:6px}
.fc-monat-toggle{appearance:none;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:700;padding:2px 0;text-align:left}.fc-monat-toggle span{display:inline-block;margin-left:7px;color:var(--faint);transition:transform .15s}.fc-monat-toggle[aria-expanded="true"] span{transform:rotate(180deg)}.fc-monat-detail>td{padding:0!important;background:#F6F9FB}.fc-monat-saldo{display:flex;gap:18px;flex-wrap:wrap;padding:11px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--soft)}.fc-monat-saldo b{color:var(--ink)}.fc-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:14px 16px}.fc-details-grid h5{margin:0 0 7px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}.fc-details-grid table{width:100%;border-collapse:collapse;font-size:12px}.fc-details-grid th,.fc-details-grid td{padding:5px 7px;border-top:1px solid var(--line);text-align:left}.fc-details-grid th{color:var(--faint);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.fc-details-grid .zahl{text-align:right}.fc-details-grid p{margin:0;color:var(--soft);font-size:12px}
.fa-lage-pfeil{display:inline-grid;place-items:center;margin-left:8px;width:22px;height:22px;border-radius:50%;font-weight:800;background:var(--bg2);color:var(--faint);vertical-align:-2px}.fa-lage-pfeil.guenstig{background:#e9f7ef;color:#187348}.fa-lage-pfeil.neutral{background:#fff5d9;color:#966300}.fa-lage-pfeil.angespannt{background:#fdebe7;color:#b43b23}
.fa-momentum{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:17px;font-weight:800;line-height:1;vertical-align:-3px;background:#eef1f4;color:#7b8791}.fa-momentum.leicht_positiv{background:#e9f7ef;color:#4d9b6d}.fa-momentum.stark_positiv{background:#d9f1df;color:#187348}.fa-momentum.neutral{background:#fff5d9;color:#966300}.fa-momentum.unbekannt{background:#eef1f4;color:#687786}.fa-momentum.leicht_negativ{background:#fff0c7;color:#a86b00}.fa-momentum.stark_negativ{background:#fdebe7;color:#b43b23}
.fa-momentum-zelle{display:inline-flex;align-items:center;gap:5px}.fa-momentum-refresh{display:inline-grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--blue);font-size:16px;line-height:1;cursor:pointer}.fa-momentum-refresh:hover{background:#edf5ff;border-color:var(--blue)}.fa-momentum-refresh:disabled{opacity:.55;cursor:wait}.fa-research-quellen{display:grid;gap:8px;margin-top:12px;max-height:250px;overflow:auto}.fa-research-quelle{border:1px solid var(--line);border-left:3px solid var(--blue);padding:8px 10px;background:#f7f9fb;font-size:13px}.fa-research-quelle p{margin:4px 0;color:var(--muted);line-height:1.4}.fa-research-quelle a{font-size:12px}
.ov-karte[role="button"]{cursor:pointer}.ov-karte[role="button"]:hover,.ov-karte[role="button"]:focus{box-shadow:0 0 0 2px rgba(32,101,178,.14);outline:none}
.ov-kopf{max-width:1180px}.ov-kopf p{max-width:760px}.ov-massstab{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px;font-size:12px;color:var(--soft)}.ov-massstab b{color:var(--ink)}.ov-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:1180px}.ov-karte{border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:4px;padding:14px;background:var(--surface);display:flex;flex-direction:column;gap:10px}.ov-karte.warn{border-left-color:#b57616}.ov-karte.ok{border-left-color:#19764d}.ov-karte h2{margin:0;font-size:16px}.ov-karte>p{margin:0;color:var(--soft);font-size:13px;line-height:1.45}.ov-bewertungen{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ov-bewertung{border:1px solid var(--line);padding:8px;background:var(--surface2)}.ov-bewertung span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);font-weight:700}.ov-bewertung b{display:block;font-size:22px;line-height:1.2;margin-top:2px}.ov-bewertung small{color:var(--soft)}.ov-pakete{border-top:1px solid var(--line);padding-top:9px}.ov-pakete-kopf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.ov-pakete-kopf b{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}.ov-pakete ul{margin:0;padding-left:17px;font-size:12.5px;color:var(--soft)}.ov-pakete li+li{margin-top:4px}.ov-fuss{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}.ov-fuss .os-btn{font-size:12px;padding:6px 9px}@media(max-width:1050px){.ov-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.ov-grid{grid-template-columns:1fr}}
.gl-kopf{max-width:1180px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.gl-grundsatz,.gl-aufwand-hinweis{max-width:1180px;border-left:3px solid var(--blue);background:var(--surface2);padding:12px 14px;margin:12px 0;color:var(--soft);line-height:1.5}.gl-grundsatz b,.gl-aufwand-hinweis b{color:var(--ink)}.gl-zahlen{max-width:980px}.gl-aufwand-hinweis{border-left-color:#a56812;font-size:13px}.gl-gates{max-width:1180px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.gl-gates article{border:1px solid var(--line);border-top:3px solid var(--blue);background:var(--surface);padding:12px}.gl-gates b{display:block;margin-bottom:4px}.gl-gates span{font-size:13px;color:var(--soft);line-height:1.4}.gl-liste{max-width:1180px}.gl-liste h2{font-size:17px;margin:0 0 10px}.gl-paket{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:11px;align-items:start;border:1px solid var(--line);border-left:4px solid var(--blue);padding:12px;margin-top:8px;background:var(--surface)}.gl-paket.fertig{border-left-color:#19764d;background:#f5fbf7}.gl-check{padding-top:5px}.gl-check input{width:18px;height:18px;accent-color:#19764d;cursor:pointer}.gl-paket-kopf{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.gl-paket h3{margin:6px 0 3px;font-size:15px}.gl-paket p{margin:0;color:var(--soft);font-size:13px;line-height:1.45}.gl-paket .gl-meta{font-size:12px;margin-top:7px}.gl-paket .os-btn{font-size:12px;padding:6px 9px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.gl-kopf{display:block}.gl-kopf .os-btn{margin-top:9px}.gl-gates{grid-template-columns:1fr}.gl-paket{grid-template-columns:28px minmax(0,1fr)}.gl-paket .os-btn{grid-column:2}}
@media(max-width:760px){.fc-szenarien{display:grid;grid-template-columns:1fr 1fr}.fc-filter{width:100%}.fc-filter label{flex:1}.fc-filter select{width:100%;min-width:0}.fc-details-grid{grid-template-columns:1fr;padding:12px}}
.ha-weiter{font-size:12.5px;color:var(--faint);margin-top:16px}
.ha-inline{border:0;background:none;color:var(--accent);padding:0;font:inherit;font-size:12px;
  cursor:pointer;border-bottom:1px solid transparent}.ha-inline:hover{border-bottom-color:var(--accent)}
.ha-tabs{display:flex;gap:8px;margin:0 0 18px}
.ha-roadmap{max-width:1180px}.ha-roadmap-kopf{display:flex;align-items:start;justify-content:space-between;
  gap:18px;margin-bottom:12px}.ha-roadmap-kopf h2{font-size:16px;margin:0 0 4px}.ha-roadmap-kopf p{margin:0}
.ha-kennzahlen{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin-bottom:16px}
.ha-kennzahlen>div{border:1px solid var(--line);border-left:3px solid var(--accent);padding:11px 13px;
  background:var(--surface);border-radius:3px}.ha-kennzahlen>div.warn{border-left-color:var(--warn)}
.ha-kennzahlen b{display:block;font-size:20px}.ha-kennzahlen span{display:block;font-size:11.5px;color:var(--soft)}
.ha-roadmap-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ha-roadmap-punkt{border:1px solid var(--line);border-radius:3px;padding:14px;background:var(--surface)}
.ha-roadmap-punkt h3{font-size:15px;margin:9px 0 2px}.ha-roadmap-punkt>p{font-size:12.5px;color:var(--soft);margin:7px 0}
.ha-roadmap-zeile{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ha-roadmap-zeile .os-btn{padding:4px 8px;font-size:11px}.ha-roadmap-meta{font-size:11.5px!important;color:var(--faint)!important}
.ha-fortschritt{height:7px;border-radius:5px;background:var(--surface2);overflow:hidden;margin:11px 0 4px}
.ha-fortschritt span{display:block;height:100%;background:var(--accent);border-radius:5px}
.ha-fortschritt-text{display:flex;justify-content:space-between;color:var(--faint);font-size:11px;margin-bottom:10px}
.ha-roadmap-info{display:grid;grid-template-columns:120px 1fr;gap:8px;border-top:1px solid var(--line);padding-top:8px;
  margin-top:8px;font-size:12px}.ha-roadmap-info b{color:var(--soft)}.ha-roadmap-info.verbesserung{background:var(--surface2);
  border:0;padding:8px}.ha-status-fertig{border-color:#72b78e!important;color:#17663a!important;background:#eff9f2!important}
.ha-status-blockiert,.ha-prio-kritisch{border-color:#d58671!important;color:#9f341d!important;background:#fff1ed!important}
.ha-status-in_arbeit,.ha-prio-hoch{border-color:#d5a339!important;color:#875600!important;background:#fff8e5!important}
.ha-roadmap-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.ha-roadmap-form label{display:block}
.ha-roadmap-form label.breit{grid-column:1/-1}.ha-roadmap-form label>span{display:block;font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}.ha-roadmap-form input,
.ha-roadmap-form select,.ha-roadmap-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line2);
  border-radius:2px;background:var(--surface);color:var(--text);padding:9px 10px;font:inherit}.ha-roadmap-form textarea{resize:vertical}
.ha-mail{max-width:1180px}.ha-mail>h3{font-size:14px;margin:22px 0 8px}.ha-mail-liste{border:1px solid var(--line);border-radius:3px;background:var(--surface)}
.ha-mail-liste article{display:grid;grid-template-columns:105px minmax(220px,1fr) minmax(160px,.6fr);gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:12.5px}
.ha-mail-liste article:last-child{border-bottom:0}.ha-mail-liste article small{grid-column:2/-1;color:var(--faint)}
.ko-einstieg,.ko-inventar{max-width:1180px;margin:0 0 20px}.ko-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}.ko-kopf h2{font-size:17px;margin:0 0 5px}.ko-kopf p{margin:0;color:var(--soft);max-width:760px}.ko-stufen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ko-stufen article{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;border:1px solid var(--line);border-radius:3px;background:var(--surface);padding:13px}.ko-nr{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--surface2);color:var(--accent);font-weight:800}.ko-titel{display:flex;align-items:center;justify-content:space-between;gap:10px}.ko-titel h3{font-size:14px;margin:0}.ko-stufen p{margin:6px 0;color:var(--soft);font-size:13px}.ko-mail-tabelle{border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--surface)}.ko-mail-kopf,.ko-mail-tabelle article{display:grid;grid-template-columns:1.1fr 1.6fr 1fr .9fr 1.5fr;gap:12px;padding:10px 12px;font-size:12.5px}.ko-mail-kopf{background:var(--surface2);color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ko-mail-tabelle article{border-top:1px solid var(--line);align-items:start}.ko-mail-tabelle article>span{color:var(--soft)}.ko-mail-tabelle article small{display:block;font-size:11px;margin-top:4px;color:var(--faint)}.ko-schutz{max-width:1180px;margin-top:8px}@media (max-width:850px){.ko-stufen{grid-template-columns:1fr}.ko-mail-kopf{display:none}.ko-mail-tabelle article{grid-template-columns:1fr 1fr}.ko-mail-tabelle article>*:first-child{grid-column:1/-1}}@media (max-width:600px){.ko-kopf{display:block}.ko-kopf .os-btn{margin-top:10px}.ko-mail-tabelle article{grid-template-columns:1fr}.ko-mail-tabelle article>*:first-child{grid-column:auto}}
.km-seite{max-width:1280px}.km-schutz{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1180px;margin:0 0 14px;padding:11px 13px;border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:3px;background:var(--surface)}.km-schutz div{display:flex;flex-direction:column;gap:2px}.km-schutz span:not(.os-chip){font-size:12px;color:var(--soft)}.km-kennzahlen{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;max-width:1180px;margin-bottom:16px}.km-kennzahlen>div{border:1px solid var(--line);border-left:3px solid var(--accent);padding:11px 13px;background:var(--surface);border-radius:3px}.km-kennzahlen>div.warn{border-left-color:var(--warn)}.km-kennzahlen>div.crit{border-left-color:var(--err)}.km-kennzahlen b{display:block;font-size:20px}.km-kennzahlen span{display:block;font-size:11.5px;color:var(--soft)}.km-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.km-tabs .os-fbtn{display:inline-flex;align-items:center;gap:7px}.km-tabs .os-fbtn span{display:inline-grid;place-items:center;min-width:19px;height:18px;padding:0 5px;border-radius:10px;background:var(--surface2);font-size:10px;font-weight:700}.km-tabs .os-fbtn[aria-pressed="true"] span{background:rgba(255,255,255,.18);color:inherit}.km-liste{max-width:1280px}.km-haupt{display:flex;flex-direction:column;gap:2px;min-width:230px}.km-haupt small{font-size:11px;color:var(--faint);font-weight:400}.km-panel-abschnitt{margin-top:22px}.km-panel-abschnitt h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}.km-betreff{padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface2);font-weight:650;overflow-wrap:anywhere}.km-mailtext{padding:14px;border:1px solid var(--line);background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.km-mailtext-kurz{max-height:300px;overflow:auto}.km-tokenliste{display:flex;gap:6px;flex-wrap:wrap}.km-dateien{list-style:none;margin:0;padding:0;border:1px solid var(--line)}.km-dateien li{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-bottom:1px solid var(--line)}.km-dateien li:last-child{border-bottom:0}.km-dateien span{font-size:11px;color:var(--faint)}.km-karten{display:grid;gap:7px}.km-karte{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:start;padding:10px 11px;border:1px solid var(--line);background:var(--surface)}.km-karte div{display:flex;flex-direction:column;gap:2px}.km-karte small{font-size:11px}.km-karte p{grid-column:1/-1;margin:3px 0 0;color:var(--soft);font-size:12px}.km-vorlagenkopf{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.km-code{max-height:260px;overflow:auto;margin:0;padding:11px;border:1px solid var(--line);background:var(--surface2);font-size:11px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.km-pruefung,.km-trainer-hinweis,.km-fehler{margin-top:16px}.km-pruefung ul,.km-fehler ul{margin:7px 0 0;padding-left:18px}@media(max-width:850px){.km-kennzahlen{grid-template-columns:1fr 1fr}}@media(max-width:600px){.km-kennzahlen{grid-template-columns:1fr}.km-schutz,.km-vorlagenkopf{align-items:flex-start;flex-direction:column}}
.km-simulator{max-width:1180px}.km-simulator-schutz,.km-simulator-status{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid var(--line);border-left:4px solid var(--ok);background:var(--okbg);margin-bottom:12px}.km-simulator-schutz span,.km-simulator-status span{display:block;font-size:12px;color:var(--soft)}.km-simulator-layout{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:14px;align-items:start}.km-simulator-form,.km-simulator-vorschau{border:1px solid var(--line);background:var(--surface);padding:14px}.km-simulator-form{display:grid;gap:10px;position:sticky;top:12px}.km-simulator-form h2{font-size:16px;margin:0 0 2px}.km-simulator-form label>span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}.km-simulator-form input,.km-simulator-form select{width:100%;padding:7px 8px;border:1px solid var(--line2);border-radius:2px;background:var(--surface);color:var(--ink)}.km-simulator-form input[readonly]{background:var(--surface2);color:var(--soft)}.km-simulator-status.ok{border-left-color:var(--ok);background:var(--okbg)}.km-simulator-status.crit{border-left-color:var(--err);background:var(--errbg)}.km-empfaenger{margin:4px 0 18px}.km-snapshot{margin-top:18px}.km-snapshot summary{cursor:pointer;color:var(--accent);font-weight:650;margin-bottom:8px}@media(max-width:850px){.km-simulator-layout{grid-template-columns:1fr}.km-simulator-form{position:static}}@media(max-width:600px){.km-simulator-schutz,.km-simulator-status{align-items:flex-start;flex-direction:column}}
.km-pruef-schutz{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid var(--line);border-left:4px solid var(--warn);background:var(--warnbg);margin-bottom:14px}.km-pruef-schutz span{font-size:12px;color:var(--soft)}.km-pruef-form{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:16px}.km-pruef-spalte{display:grid;align-content:start;gap:12px}.km-pruefblock{border:1px solid var(--line);background:var(--surface);padding:13px}.km-pruefblock>h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 9px}.km-pruefblock>p{font-size:12px;color:var(--soft);margin:0 0 9px}.km-pruefblock>label:not(.km-check){display:block;margin-top:10px}.km-pruefblock>label:not(.km-check)>span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}.km-pruefblock input[type="text"],.km-pruefblock input:not([type]),.km-pruefblock textarea{width:100%;padding:8px 9px;border:1px solid var(--line2);border-radius:2px;background:var(--surface);color:var(--ink);resize:vertical}.km-variablen{display:grid;gap:6px}.km-variable{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--line);background:var(--surface2)}.km-variable input,.km-check input{width:16px;height:16px;accent-color:var(--accent)}.km-variable span{display:flex;flex-direction:column}.km-variable small{font-size:10.5px;color:var(--faint)}.km-token{border:0;background:transparent;color:var(--accent);font:600 11px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;padding:4px}.km-check{display:flex;align-items:flex-start;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);cursor:pointer}.km-check:last-child{border-bottom:0}.km-befund span{color:var(--warn)}.km-pruefstatus{display:flex;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-left:4px solid var(--ok);background:var(--okbg)}.km-pruefstatus span{font-size:12px;color:var(--soft)}.km-pruefstatus.crit{border-left-color:var(--err);background:var(--errbg)}.km-prueffehler{margin:8px 0 0;padding:9px 9px 9px 28px;border:1px solid #e1afa3;background:var(--errbg);color:var(--err);font-size:12px}.km-freigeben{background:var(--ok)!important;border-color:var(--ok)!important}.os-panel footer .km-freigeben{margin-left:auto}@media(max-width:850px){.km-pruef-form{grid-template-columns:1fr}}@media(max-width:600px){.km-pruef-schutz{align-items:flex-start;flex-direction:column}.km-variable{grid-template-columns:auto 1fr}.km-token{grid-column:2;justify-self:start}}
.km-arbeitskopf{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;max-width:1280px;margin:3px 0 12px}.km-arbeitskopf h2{font-size:18px;margin:0 0 4px}.km-arbeitskopf p{margin:0;color:var(--soft);font-size:13px}.km-treffer{white-space:nowrap;color:var(--faint);font-size:12px;font-weight:650}.km-filter{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(6,minmax(135px,1fr)) auto;gap:8px;align-items:end;max-width:1280px;padding:12px;margin-bottom:13px;border:1px solid var(--line);background:var(--surface2)}.km-filter label>span{display:block;margin-bottom:4px;color:var(--faint);font-size:10px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.km-filter input,.km-filter select{width:100%;height:34px;box-sizing:border-box;border:1px solid var(--line2);border-radius:2px;background:var(--surface);color:var(--ink);padding:6px 8px;font:inherit;font-size:12px}.km-filter input:focus,.km-filter select:focus{outline:2px solid rgba(37,105,172,.16);border-color:var(--accent)}.km-filter-reset{height:34px}.km-gruppen{display:grid;gap:12px}.km-vorlagengruppe{border:1px solid var(--line);border-radius:4px;background:var(--surface);overflow:hidden}.km-vorlagengruppe>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface2)}.km-gruppe-training{display:block;color:var(--accent);font-size:10.5px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.km-vorlagengruppe>header h2{margin:3px 0 0;font-size:15px}.km-gruppe-tags{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.km-sprachvergleich{display:grid;grid-template-columns:repeat(var(--km-sprachen),minmax(0,1fr));align-items:stretch}.km-sprachspalte{min-width:0;padding:10px;border-right:1px solid var(--line);background:#fbfcfd}.km-sprachspalte:last-child{border-right:0}.km-sprachspalte-kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:var(--faint);font-size:10.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.km-sprachspalte-kopf span{display:grid;place-items:center;min-width:19px;height:19px;border-radius:10px;background:var(--surface2);font-variant-numeric:tabular-nums}.km-sprachkarte{display:flex;flex-direction:column;min-height:190px;padding:11px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:3px;background:var(--surface)}.km-sprachkarte+.km-sprachkarte{margin-top:8px}.km-sprachkarte>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.km-sprachcode{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.09em}.km-sprachkarte h3{margin:10px 0 6px;font-size:13px;line-height:1.35}.km-sprachkarte-betreff{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0;color:var(--soft);font-size:12px;line-height:1.45}.km-sprachkarte-meta{display:flex;flex-direction:column;gap:2px;margin:9px 0;color:var(--faint);font-size:10.5px}.km-sprachkarte footer{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.km-sprachkarte footer .os-fbtn{margin:0}.km-sprachkarte footer .os-fbtn.primaer{background:var(--ink);border-color:var(--ink);color:var(--ground);font-weight:650}.km-sprachkarte-fehlt{display:flex;min-height:190px;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px;border:1px dashed var(--line2);color:var(--faint);text-align:center}.km-sprachkarte-fehlt b{font-size:12px}.km-sprachkarte-fehlt span{max-width:220px;font-size:11px;line-height:1.4}.km-vorschau-info{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--line);background:var(--surface2)}.km-vorschau-info>div{display:flex;gap:5px;flex-wrap:wrap}.km-vorschau-info p{margin:0;color:var(--soft);font-size:11.5px;text-align:right}.km-vorschau-frame{display:block;width:100%;min-height:560px;box-sizing:border-box;border:1px solid var(--line);background:#fff}@media(max-width:1100px){.km-filter{grid-template-columns:repeat(4,minmax(150px,1fr))}.km-filter-suche{grid-column:span 2}}@media(max-width:900px){.km-sprachvergleich{grid-template-columns:repeat(var(--km-sprachen),minmax(260px,1fr));overflow-x:auto}.km-sprachspalte{border-right:1px solid var(--line)}}@media(max-width:700px){.km-filter{grid-template-columns:1fr 1fr}.km-filter-suche{grid-column:1/-1}.km-vorlagengruppe>header,.km-arbeitskopf,.km-vorschau-info{align-items:flex-start;flex-direction:column}.km-gruppe-tags{justify-content:flex-start}.km-vorschau-info p{text-align:left}}@media(max-width:480px){.km-filter{grid-template-columns:1fr}.km-filter-suche{grid-column:auto}}
@media (max-width:850px){.ha-layout,.ha-roadmap-liste{grid-template-columns:1fr}.ha-kennzahlen{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.ha-roadmap-form{grid-template-columns:1fr}.ha-roadmap-form label.breit{grid-column:auto}}

/* Tabelle */
.os-tabelle{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:3px}
.os-fakten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}
.os-fakten>div{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr);gap:12px;
  padding:8px 0;border-bottom:1px solid var(--line)}
.os-fakten dt{color:var(--faint)}.os-fakten dd{margin:0;color:var(--text);overflow-wrap:anywhere}
.os-langtext{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
@media (max-width:700px){.os-fakten{grid-template-columns:1fr}}
table{border-collapse:collapse;width:100%;font-size:13px}
th{text-align:left;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);
  padding:9px 12px;border-bottom:1px solid var(--line);background:var(--surface2);white-space:nowrap;font-weight:700}
td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--surface2)}
.zahl{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
th{padding:0}
th:not(:has(.os-sort)){padding:9px 12px;cursor:pointer}
th:not(:has(.os-sort))[aria-sort="ascending"]::after{content:" ↑"}
th:not(:has(.os-sort))[aria-sort="descending"]::after{content:" ↓"}
.os-sort{display:flex;align-items:center;gap:5px;width:100%;padding:9px 12px;background:none;border:0;
  font:inherit;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);
  font-weight:700;cursor:pointer;text-align:left}
th.zahl .os-sort{justify-content:flex-end}
.os-sort:hover{color:var(--accent);background:var(--surface)}
.os-pfeil{font-size:9px;color:var(--accent)}
.os-spalten-ziehbar table{table-layout:fixed;min-width:max-content}
.os-spalten-ziehbar th{position:relative}
.os-spalten-griff{position:absolute;z-index:2;top:0;right:-4px;width:8px;height:100%;cursor:col-resize}
.os-spalten-griff::after{content:"";position:absolute;top:24%;bottom:24%;left:3px;width:1px;background:transparent}
.os-spalten-griff:hover::after,.os-spalten-griff:active::after{background:var(--accent)}
.fa-logo-spalte{width:48px;text-align:center;vertical-align:middle}
.fa-logo-spalte .os-logo{margin-right:0;vertical-align:middle}
.os-filterzeile th{padding:5px 8px;background:var(--surface);border-bottom:1px solid var(--line)}
.os-filterzeile input,.os-filterzeile select,.os-spaltenmulti-knopf{width:100%;min-width:80px;padding:4px 7px;font-size:12px;
  font-weight:400;text-transform:none;letter-spacing:0;border:1px solid var(--line);border-radius:2px;
  background:var(--surface2);color:var(--ink)}
.os-filterzeile input:focus,.os-filterzeile select:focus,.os-spaltenmulti-knopf:focus,
.os-spaltenmulti-knopf.aktiv{border-color:var(--accent);background:var(--surface)}
.os-spaltenmulti-knopf{position:relative;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  cursor:pointer;padding-right:21px}
.os-spaltenmulti-knopf:after{content:'▾';position:absolute;right:7px;color:var(--faint)}
.os-spaltenmulti-menu{position:fixed;margin:0;padding:7px;min-width:210px;max-width:min(360px,calc(100vw - 16px));
  max-height:min(360px,calc(100vh - 16px));overflow:auto;border:1px solid var(--line2);border-radius:3px;
  background:var(--surface);color:var(--ink);box-shadow:0 8px 24px rgba(12,31,45,.18)}
.os-spaltenmulti-menu::backdrop{background:transparent}
.os-spaltenmulti-menu>strong{display:block;padding:3px 6px 6px;font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint)}
.os-spaltenmulti-menu label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;
  padding:5px 6px;border-radius:2px;font-size:12.5px;font-weight:400;text-transform:none;letter-spacing:0;
  cursor:pointer;white-space:nowrap}
.os-spaltenmulti-menu label:hover{background:var(--surface2)}
.os-spaltenmulti-menu input{width:auto;min-width:0;margin:0}
.os-spaltenmulti-menu small{font-variant-numeric:tabular-nums}
.os-fuss{display:flex;gap:14px;align-items:center;padding:9px 2px;font-size:12.5px;color:var(--faint)}
small{color:var(--faint)}
.os-mute{color:var(--faint)}
.os-leer{padding:26px 0;color:var(--faint)}
.os-einzug{color:var(--faint);margin-right:6px}
.os-chip{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:2px 7px;border-radius:2px;border:1px solid currentColor;color:var(--faint);white-space:nowrap}
.os-chip.ok{color:var(--ok)} .os-chip.warn{color:var(--warn)} .os-chip.crit{color:var(--err)}
.os-chip.pot-a{color:#17643d;background:#e8f5ee;border-color:#57a679}
.os-chip.pot-b{color:#805b00;background:#fff4d9;border-color:#d3a640}
.os-chip.pot-c{color:#667078;background:#f3f4f5;border-color:#c7cdd1}
.fa-kontaktrollen{position:relative;display:block;white-space:nowrap}.fa-kontaktrollen>summary{cursor:pointer;list-style:none;color:var(--soft);font-size:11px;overflow:hidden;text-overflow:ellipsis}.fa-kontaktrollen>summary::-webkit-details-marker{display:none}
.fa-kontaktrollen-menue{position:absolute;z-index:15;top:calc(100% + 4px);left:0;display:grid;grid-template-columns:1fr;gap:3px;min-width:170px;padding:7px;background:var(--surface);border:1px solid var(--line2);box-shadow:0 8px 20px rgba(12,31,45,.14)}
.fa-rollenzaehler{display:grid;grid-template-columns:16px 22px 1fr;align-items:center;gap:3px;min-width:38px;padding:4px 6px;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--soft);font:inherit;font-size:10px;line-height:1.2;cursor:pointer;text-align:left}
.fa-rollenzaehler:hover,.fa-rollenzaehler:focus{border-color:var(--accent);background:#edf5ff;color:var(--ink);outline:none}
.fa-rollenzaehler span{font-weight:700;color:var(--faint)}.fa-rollenzaehler b{font-variant-numeric:tabular-nums;color:var(--ink)}
.fa-rollenzaehler small{font-size:10px;color:var(--soft)}
.os-verweis{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent}
.os-verweis:hover{border-bottom-color:var(--accent)}
.dl-os{display:grid;grid-template-columns:150px 1fr;gap:5px 14px;font-size:13px;margin:0}
.dl-os dt{color:var(--faint)} .dl-os dd{margin:0}
.os-quali{border:1px solid var(--line);border-radius:2px;overflow:hidden}
.os-quali-zeile{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:6px 11px;border-bottom:1px solid var(--line);font-size:13px}
.os-quali-zeile:last-child{border-bottom:0}
.os-quali-zeile:hover{background:var(--surface2)}
.os-zugang-zeile{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;
  font:inherit;text-align:left;cursor:pointer}
.os-zugang-zeile:last-child{border-bottom:0}
/* Kacheln: schmaler und flacher (Steven, 14.08.2026 - "die Kacheln sind
   immer noch zu breit"). Sie sind eine Kennzahl, kein Plakat: minmax
   statt 180 auf 132, weniger Polster, kleinere Zahl. Auf einem breiten
   Bildschirm stehen damit sechs nebeneinander statt vier. */
.os-kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}
.os-kachel{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:9px 11px}
.os-kachel .titel{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:700}
.os-kachel .zahl{font-size:18px;font-weight:650;margin-top:2px;font-variant-numeric:tabular-nums;text-align:left}
.os-kachel .unten{font-size:11px;color:var(--faint);margin-top:1px;line-height:1.35}
.os-kachel.ok{border-left:3px solid var(--ok)} .os-kachel.warn{border-left:3px solid var(--warn)}
.os-kachel.crit{border-left:3px solid var(--err)}
.fc-prognose-kachel{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;position:relative;padding-bottom:22px;transition:border-color .15s,box-shadow .15s,transform .15s}
.fc-prognose-kachel:hover{border-color:var(--accent);box-shadow:0 3px 12px rgba(12,31,45,.08);transform:translateY(-1px)}
.fc-prognose-kachel[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#F4F8FC}
.fc-kachel-filter{position:absolute;left:11px;bottom:7px;color:var(--accent);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:0;transition:opacity .15s}
.fc-prognose-kachel:hover .fc-kachel-filter,.fc-prognose-kachel[aria-pressed="true"] .fc-kachel-filter{opacity:1}
.fc-zahlgrund{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px;border-bottom:1px dotted var(--faint);cursor:help}
.fc-monataktion{white-space:nowrap;text-align:right}.fc-dealaktion{min-width:150px;white-space:nowrap}
/* Prognose: Szenarien, zeitlicher Verlauf und Quellen bilden den Lesefluss.
   Kontrolllagen bleiben kompakt und unterbrechen die Prognose nicht. */
.fc-deal-filter{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin:0 0 16px;padding:11px 12px;
  border:1px solid var(--line);border-radius:5px;background:var(--surface2)}
.fc-deal-filter label{display:grid;gap:4px;color:var(--faint);font-size:10px;font-weight:750;
  letter-spacing:.055em;text-transform:uppercase}.fc-deal-filter label.fc-deal-suche{flex:1;min-width:220px}
.fc-deal-filter select,.fc-deal-filter input{min-height:34px;text-transform:none;letter-spacing:0}
.fc-deal-filter .fc-deal-suche input{width:100%}.fc-deal-filter>.os-btn{min-height:34px}
.fc-lade{display:flex;align-items:center;justify-content:center;gap:13px;min-height:260px;color:var(--soft)}
.fc-lade b{display:block;color:var(--text);font-size:15px}.fc-lade p{margin:3px 0 0;font-size:12px}
.fc-lade-punkt{width:12px;height:12px;border:2px solid var(--line2);border-top-color:var(--accent);border-radius:50%;animation:fc-laden .8s linear infinite}
@keyframes fc-laden{to{transform:rotate(360deg)}}
.fc-ladefehler{max-width:620px;margin:28px auto;padding:18px;border:1px solid var(--line);border-left:3px solid var(--err);border-radius:6px;background:var(--surface)}
.fc-ladefehler b{display:block}.fc-ladefehler p{margin:5px 0 13px;color:var(--soft)}
.fc-deal-szenarien{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px}
.fc-deal-szenario{appearance:none;display:grid;gap:3px;min-height:112px;padding:12px 15px;text-align:left;
  color:inherit;font:inherit;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent);
  border-radius:5px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.fc-deal-szenario.ok{border-top-color:var(--ok)}.fc-deal-szenario.warn{border-top-color:var(--warn)}
.fc-deal-szenario.akz{border-top-color:var(--accent)}.fc-deal-szenario.total{border-top-color:var(--text);cursor:default}
.fc-deal-szenario[aria-pressed="false"]{background:var(--surface2);opacity:.68}
.fc-deal-szenario:hover,.fc-deal-szenario:focus-visible{outline:0;opacity:1;border-color:var(--accent);box-shadow:0 4px 14px rgba(12,31,45,.09);transform:translateY(-1px)}
.fc-deal-szenario.ok[aria-pressed="true"]{border-color:var(--ok);box-shadow:0 3px 12px rgba(31,122,78,.13)}
.fc-deal-szenario.warn[aria-pressed="true"]{border-color:var(--warn);box-shadow:0 3px 12px rgba(154,92,0,.13)}
.fc-deal-szenario.akz[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 3px 12px rgba(47,111,179,.13)}
.fc-deal-szenario.total:hover{border-color:var(--line);border-top-color:var(--text);box-shadow:none;transform:none}
.fc-deal-szenario>span{color:var(--faint);font-size:10px;font-weight:750;letter-spacing:.065em;text-transform:uppercase}
.fc-deal-szenario>strong{margin:2px 0;font-size:25px;line-height:1.2;font-variant-numeric:tabular-nums}
.fc-deal-szenario>small{color:var(--soft);line-height:1.4}.fc-deal-szenario>em{align-self:end;margin-top:5px;
  color:var(--accent);font-size:10.5px;font-style:normal;font-weight:700}
.fc-deal-logik{margin:-8px 0 16px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}
.fc-deal-logik>summary{padding:9px 12px;cursor:pointer;color:var(--soft);font-size:11.5px;font-weight:700}
.fc-deal-logik>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.fc-deal-logik p{display:grid;gap:3px;margin:0;padding:10px 12px;border-left:1px solid var(--line);font-size:11.5px;line-height:1.4}
.fc-deal-logik p:first-child{border-left:0}.fc-deal-logik p span{color:var(--soft)}
.fc-deal-logik b.safe{color:var(--ok)}.fc-deal-logik b.maybe{color:var(--warn)}.fc-deal-logik b.pipeline{color:var(--accent)}
.fc-deal-zeit,.fc-deal-liste,.fc-deal-kontrollen{margin:0 0 18px;border:1px solid var(--line);
  border-radius:5px;background:var(--surface);overflow:hidden}
.fc-deal-zeit>header,.fc-deal-liste>header{display:flex;align-items:flex-start;
  justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface2)}
.fc-deal-arbeit h3,.fc-deal-zeit h3,.fc-deal-liste h3,.fc-deal-kontrollen h3{margin:0;font-size:14px}
.fc-deal-arbeit header p,.fc-deal-zeit header p,.fc-deal-liste header p,.fc-deal-kontrollen>p{margin:3px 0 0;color:var(--faint);font-size:11.5px}
.fc-deal-arbeit header>b{white-space:nowrap;font-size:12px}.fc-deal-arbeit ol{list-style:none;margin:0;padding:0}
.fc-deal-aufgabe{display:grid;grid-template-columns:minmax(145px,auto) minmax(260px,1fr) auto auto;
  gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}
.fc-deal-aufgabe:first-child{border-top:0}.fc-deal-aufgabe p{margin:2px 0 0;color:var(--soft);font-size:11.5px;line-height:1.4}
.fc-deal-aufgabe>strong{white-space:nowrap;font-size:12.5px;font-variant-numeric:tabular-nums}
.fc-deal-aufgabe-aktion{min-width:165px;text-align:right}.fc-deal-aufgabe-aktion .os-aktionen{justify-content:flex-end}
.fc-deal-arbeit details{border-top:1px solid var(--line)}.fc-deal-arbeit summary{padding:10px 14px;cursor:pointer;color:var(--accent);font-weight:700}
.fc-deal-legende{display:flex;gap:12px;flex-wrap:wrap;color:var(--faint);font-size:10.5px;font-weight:700}
.fc-deal-legende span::before{content:"";display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%}
.fc-deal-legende .safe::before{background:var(--ok)}.fc-deal-legende .maybe::before{background:var(--warn)}
.fc-deal-legende .pipeline::before{background:var(--accent)}
.fc-deal-band{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:stretch}
.fc-deal-szenario-toggle{appearance:none;display:flex;align-items:center;justify-content:center;padding:0;color:var(--accent);
  background:var(--surface2);border:0;border-right:1px solid var(--line);cursor:pointer}
.fc-deal-szenario-toggle:hover,.fc-deal-szenario-toggle:focus-visible{outline:0;background:#E8F0F8}
.fc-deal-szenario-toggle span{font-size:25px;line-height:1;transition:transform .15s}
.fc-deal-szenario-toggle[aria-expanded="true"] span{transform:rotate(90deg)}
.fc-deal-monate{display:flex;min-width:0;overflow-x:auto;padding-bottom:14px;scrollbar-gutter:stable;scroll-snap-type:x proximity}
.fc-deal-monat{display:grid;align-content:start;flex:0 0 178px;min-height:116px;border-right:1px solid var(--line);
  background:var(--surface);scroll-snap-align:start}.fc-deal-monat[data-ausgewaehlt="true"]{background:#F4F8FC;box-shadow:inset 0 3px var(--accent)}
.fc-deal-monat-kopf,.fc-deal-monat-summe,.fc-deal-monat-wert{appearance:none;display:grid;gap:2px;width:100%;padding:10px 12px;
  color:inherit;font:inherit;text-align:left;background:transparent;border:0;cursor:pointer}
.fc-deal-monat-kopf:hover,.fc-deal-monat-kopf:focus-visible,.fc-deal-monat-summe:hover,.fc-deal-monat-summe:focus-visible,
.fc-deal-monat-wert:hover,.fc-deal-monat-wert:focus-visible{outline:0;background:#EAF2FA}
.fc-deal-monat-kopf b{font-size:13px}.fc-deal-monat-kopf small,.fc-deal-monat-summe small{color:var(--faint);font-size:9px}
.fc-deal-monat-summe{border-top:1px solid var(--line)}.fc-deal-monat-summe b{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fc-deal-monat-details{display:none;border-top:1px solid var(--line)}.fc-deal-band.details-offen .fc-deal-monat-details{display:grid}
.fc-deal-monat-wert{grid-template-columns:8px minmax(0,1fr);align-items:center;text-align:right;padding-block:8px}
.fc-deal-monat-wert span{width:7px;height:7px;border-radius:50%;background:var(--line2)}
.fc-deal-monat-wert.safe span{background:var(--ok)}.fc-deal-monat-wert.maybe span{background:var(--warn)}
.fc-deal-monat-wert.pipeline span{background:var(--accent)}.fc-deal-monat-wert b{font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fc-deal-betrag-detail{padding:12px 16px 14px 28px;border-bottom:1px solid var(--line);border-left:3px solid var(--accent);background:#F7FAFD}
.fc-deal-betrag-detail.safe{border-left-color:var(--ok)}.fc-deal-betrag-detail.maybe{border-left-color:var(--warn)}
.fc-deal-betrag-detail>header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:7px}
.fc-deal-betrag-detail>header div{display:flex;align-items:baseline;gap:10px}.fc-deal-betrag-detail>header span{color:var(--soft);font-size:11.5px;font-weight:700}
.fc-deal-betrag-detail>header strong{font-size:15px}.fc-deal-betrag-detail>header small{color:var(--faint)}
.fc-deal-betrag-detail ul{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.fc-deal-betrag-detail li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border-top:1px solid var(--line)}
.fc-deal-betrag-detail li:first-child{border-top:0}.fc-deal-betrag-detail li span{display:grid;gap:1px;min-width:0}
.fc-deal-betrag-detail li small{color:var(--faint)}.fc-deal-betrag-detail li>strong{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fc-deal-liste>#dDealListe{overflow-x:auto}
.fc-deal-liste .os-tabelle{border:0;border-radius:0}
.fc-deal-kontrollen>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;
  cursor:pointer;list-style:none;background:var(--surface2)}.fc-deal-kontrollen>summary::-webkit-details-marker{display:none}
.fc-deal-kontrollen>summary span{display:grid;gap:2px}.fc-deal-kontrollen>summary small{color:var(--faint);font-weight:400}
.fc-deal-kontrollen>summary strong{color:var(--warn);font-size:11.5px}.fc-deal-kontrollen>ol{list-style:none;margin:0;padding:0}
.fc-deal-kontrollen .fc-klaerblock{margin:12px 0 0}
@media(max-width:980px){.fc-deal-szenarien{grid-template-columns:repeat(2,minmax(0,1fr))}.fc-deal-aufgabe{grid-template-columns:1fr auto}.fc-deal-aufgabe>.os-chip{justify-self:start}.fc-deal-aufgabe-aktion{grid-column:1/-1;text-align:left}}
@media(max-width:680px){.fc-deal-szenarien{grid-template-columns:1fr 1fr}.fc-deal-szenario{min-height:106px;padding:11px}.fc-deal-szenario>strong{font-size:20px}.fc-deal-logik>div{grid-template-columns:1fr}.fc-deal-logik p{border-left:0;border-top:1px solid var(--line)}.fc-deal-logik p:first-child{border-top:0}.fc-deal-zeit>header{display:block}.fc-deal-band{grid-template-columns:32px minmax(0,1fr)}.fc-deal-monat{flex-basis:164px}.fc-deal-betrag-detail{padding:11px 12px 13px 15px}.fc-deal-betrag-detail>header{display:block}.fc-deal-betrag-detail>header small{display:block;margin-top:3px}.fc-deal-aufgabe{grid-template-columns:1fr}.fc-deal-aufgabe-aktion{grid-column:auto;min-width:0}}
.os-arbeitsblock{margin:18px 0 26px}.os-arbeitsblock h2{font-size:15px;margin:0 0 8px;color:var(--text)}
.os-arbeitsblock h2 small{font-weight:500;color:var(--faint);margin-left:4px}
.os-arbeitsdatum{display:block;margin-top:3px;color:var(--faint);font-size:11px}
.os-aktion-fehlt{color:var(--warn);font-weight:650}
.os-arbeitsrest{margin:6px 0 28px}.os-arbeitsrest>summary{cursor:pointer;font-weight:650;color:var(--muted);padding:9px 0}
td.plus{color:var(--ok)} td.minus{color:var(--err)}
/* Annahme-Assistent: Datum und Form je angenommener Position. Eingerueckt
   unter der Zeile, zu der sie gehoeren - sie erscheinen erst, wenn die
   Position auch angenommen wird. */
.os-aa-training{display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  padding:6px 10px 10px 22px;border-left:2px solid var(--line2);margin:0 0 6px 10px}
.os-aa-training label{font-size:12.5px;color:var(--soft)}
.os-aa-training input,.os-aa-training select{padding:4px 8px;border:1px solid var(--line2);
  border-radius:2px;background:var(--surface)}
.os-aa-training small{color:var(--faint);font-size:11.5px}
.os-posneu{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.os-posneu select,.os-posneu input{padding:5px 8px;border:1px solid var(--line2);border-radius:2px;
  background:var(--surface);color:var(--ink);font-size:13px}
.os-posneu .os-posprodukt{flex:1 1 260px;min-width:220px}
.os-posneu .os-posprodukt .os-such-feld{width:100%;box-sizing:border-box}
.os-posneu .os-poszahl{display:flex;align-items:center;gap:5px;color:var(--soft);font-size:12px}
.os-posneu .os-poszahl input{width:64px}
.os-posneu #posPreis{width:110px}
.deal-position-aktion{margin-top:10px;padding:13px 14px;border:1px solid var(--line);
  border-radius:3px;background:var(--surface2)}
.deal-position-aktion>.kopf{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  color:var(--ink);font-size:13.5px}
.deal-position-aktion>.kopf small{color:var(--soft);font-weight:400}
.deal-position-aktion .os-posneu{margin-top:12px}
.deal-akte-block{margin:0}
.deal-akte-block>h4{margin:0 0 3px;font-size:12px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint)}
.deal-akte-aktion{display:grid;grid-template-columns:1fr auto;gap:8px 10px;margin-top:10px;
  padding:12px 13px;border:1px solid var(--line);border-radius:3px;background:var(--surface2)}
.deal-akte-aktion>div{grid-column:1/-1}.deal-akte-aktion small{display:block;color:var(--soft);margin-top:2px}
.deal-akte-aktion textarea{min-width:0;padding:8px;border:1px solid var(--line2);border-radius:2px;
  background:var(--surface);color:var(--ink);font:inherit;resize:vertical}
.deal-akte{margin-top:0}.deal-akte-zeile{padding:9px 0;border-bottom:1px solid var(--line)}
.deal-akte-zeile>div{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.deal-akte-zeile small{color:var(--faint)}.deal-akte-zeile p{margin:3px 0 0;white-space:pre-wrap}
.deal-akte-zeile.mail{border-left:2px solid var(--accent2);padding-left:10px}


/* Personen: direkte Übersicht und vollständige Arbeitsfläche. */
.person-werkzeuge{flex-wrap:wrap;gap:10px;align-items:center}.person-werkzeuge>input,.person-werkzeuge>select,.person-werkzeuge>.os-btn{height:38px;box-sizing:border-box}.person-werkzeuge>input{width:260px}.person-werkzeuge select{padding:8px 10px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);font:inherit;border-radius:3px}
.person-ansichten{display:flex;gap:3px;margin-left:auto}.person-ansichten [aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.person-listen-hinweis{color:var(--soft);font-size:12px;margin:0 0 14px}.person-listen-hinweis [role="status"]{color:var(--accent);margin-left:8px}
.person-liste .os-tabelle{max-width:100%;overflow:auto}.person-liste table{min-width:1320px;table-layout:fixed}.person-liste th{padding:0;font-size:11px;letter-spacing:.07em}.person-liste .os-sort{padding:13px 16px;font-size:11px;letter-spacing:.07em}.person-liste td{vertical-align:top;padding:16px!important;border-bottom:1px solid var(--line)}.person-liste th:nth-child(1){width:20%}.person-liste th:nth-child(2){width:18%}.person-liste th:nth-child(3){width:15%}.person-liste th:nth-child(4){width:11%}.person-liste th:nth-child(5){width:12%}.person-liste th:nth-child(6){width:11%}.person-liste th:nth-child(7){width:13%}.person-liste tbody tr:hover td{background:#F8FAFC}
.person-liste th:first-child,.person-liste td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;min-width:240px;box-shadow:1px 0 var(--line)}
.person-liste th:first-child{z-index:2;background:var(--surface2)}.person-liste td:nth-child(2){min-width:200px}.person-liste td:nth-child(3){min-width:175px}.person-liste td:nth-child(4){min-width:135px}
.person-name{display:flex;align-items:center;gap:9px;padding:0;background:none;border:0;cursor:pointer;text-align:left;color:var(--ink);font:inherit;width:100%;max-width:100%}
.person-name>span:not(.person-liste-avatar){min-width:0;flex:1}.person-name b,.person-name small{display:block;overflow-wrap:anywhere}.person-name small{font-size:11px;color:var(--soft);margin-top:5px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.person-name:hover b{color:var(--accent)}
.person-mehrfach{display:grid;grid-template-columns:1fr;gap:9px}.person-mehrfach label,.person-schalter{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.35;cursor:pointer}
.person-mehrfach label{min-height:18px}.person-mehrfach label:hover,.person-liste .person-schalter:hover{color:var(--accent)}
.person-mehrfach input,.person-schalter input{margin:1px 0 0;accent-color:var(--accent);flex:none;width:15px;height:15px}
.person-satz{display:flex;align-items:center;gap:6px;margin-top:10px}.person-satz input{width:86px;appearance:textfield;padding:7px;border:1px solid var(--line2);border-radius:3px;font:inherit;color:var(--ink);background:var(--surface)}
.person-satz input::-webkit-inner-spin-button,.person-satz input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.person-liste input:focus-visible,.person-name:focus-visible,.person-honorar-knopf:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.person-satz input:disabled{background:var(--surface2);color:var(--faint)}.person-zellen-hinweis{display:block;margin-top:9px;font-size:11px;line-height:1.5;color:var(--soft);max-width:210px}
.person-honorar-knopf{display:block;border:0;background:none;text-align:left;padding:0;margin-top:8px;color:var(--accent);font:inherit;cursor:pointer}.person-honorar-knopf:disabled{color:var(--faint);cursor:default}
.os-panel.person-voll-panel{background:var(--surface)}.os-panel.person-voll-panel .os-panel-inhalt{width:100%;border:0}
.os-panel.person-voll-panel .os-panel-body{padding:0 28px 28px}.os-panel.person-voll-panel>.os-panel-inhalt>header,.os-panel.person-voll-panel>.os-panel-inhalt>footer{padding-left:28px;padding-right:28px}
.person-voll-tabs{display:flex;gap:4px;position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 0 0;overflow-x:auto}
.person-voll-tabs button{white-space:nowrap;background:none;border:0;border-bottom:2px solid transparent;color:var(--soft);padding:12px 16px;font:inherit;font-weight:600;cursor:pointer}
.person-voll-tabs [aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.person-voll-bereich{padding-top:20px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:32px;align-items:start}
.person-voll-bereich[hidden]{display:none!important}.person-voll-bereich>.os-formular:empty{display:none}.person-voll-bereich>.os-formular:empty+.person-voll-zusatz{grid-column:1/-1;max-width:1200px;width:100%}
.person-voll-bereich .os-abschnitt:first-child{margin-top:0}.person-voll-bereich h4{margin-top:0}.person-voll-bereich .os-produkt-honorar{grid-template-columns:minmax(130px,1fr) 140px minmax(140px,1fr) 95px}
.person-voll-bereich .os-produkt-honorar input[type="checkbox"]{width:15px;flex:none}.person-voll-bereich .os-produkt-honorar .person-schalter{min-width:0;overflow-wrap:anywhere}
.person-voll-bereich .os-produkt-honorare{min-width:0}.person-voll-bereich .os-produkt-honorar input[type="number"]{width:100%;min-width:0;box-sizing:border-box}
.person-voll-bereich .os-produkt-honorar select{min-width:0}.person-voll-bereich:has(.os-produkt-honorare){grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr)}
.person-vorschau-panel .dl-os dd{overflow-wrap:anywhere}
.person-zugriff{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.person-zugriff-status,.person-zugriff small{color:var(--soft)}.person-zugriff-rollen{color:var(--ink)}.person-zugriff .os-fbtn,.person-zugriff .os-verweis{justify-self:start}.person-zugriff[data-zugriff-status="konto_fehlt"]>.person-zugriff-status,.person-zugriff[data-zugriff-status="mehrdeutig"]>.person-zugriff-status,.person-zugriff[data-zugriff-status="nicht_geladen"]>.person-zugriff-status{color:var(--warn)}
.person-karte-zugriff{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.person-zugriff-titel{display:block;color:var(--faint);font-size:10.5px;font-weight:600;margin-bottom:3px}.person-karte-zugriff .person-zugriff{font-size:11px}

@media(max-width:1000px){.person-voll-bereich,.person-voll-bereich:has(.os-produkt-honorare){grid-template-columns:1fr}.person-voll-bereich .os-produkt-honorar{grid-template-columns:minmax(130px,1fr) 140px minmax(140px,1fr) 95px}}
@media(max-width:600px){.person-ansichten{margin-left:0}.person-werkzeuge>input,.person-werkzeuge>select{width:100%;max-width:100%;box-sizing:border-box}.os-panel.person-voll-panel .os-panel-body{padding:0 14px 20px}.os-panel.person-voll-panel>.os-panel-inhalt>header,.os-panel.person-voll-panel>.os-panel-inhalt>footer{padding-left:14px;padding-right:14px}.person-voll-tabs button{padding:10px}.person-voll-bereich .os-produkt-honorar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.person-liste th:first-child,.person-liste td:first-child{min-width:145px;max-width:165px}.person-name{max-width:160px}.person-bildpflege{flex-wrap:wrap}}

/* Deal-Cockpit: Die operative Arbeit steht vor der Stammdatenpflege. */
.os-panel.deal-panel .os-panel-inhalt{width:min(900px,calc(100% - 48px))}
.os-panel.kontakt-voll-panel,.os-panel.firma-voll-panel{background:var(--ground)}
.os-panel.kontakt-voll-panel .os-panel-inhalt,.os-panel.firma-voll-panel .os-panel-inhalt{
  width:100%;border-left:0}
.os-panel.kontakt-voll-panel .os-panel-body,.os-panel.firma-voll-panel .os-panel-body{
  width:100%;max-width:1440px;margin-inline:auto;padding:0 28px 28px;box-sizing:border-box}
.os-panel.kontakt-voll-panel>.os-panel-inhalt>header,
.os-panel.kontakt-voll-panel>.os-panel-inhalt>footer,
.os-panel.firma-voll-panel>.os-panel-inhalt>header,
.os-panel.firma-voll-panel>.os-panel-inhalt>footer{padding-left:28px;padding-right:28px}

/* Vollstaendige Firmen- und Kontaktakten folgen demselben Muster wie die
   Trainingsakte: oben die Lesetiefe, darunter klar getrennte Arbeitsraeume. */
.akte-tabs{position:sticky;top:0;z-index:3;display:flex;gap:4px;overflow-x:auto;
  margin:0 -28px 22px;padding:0 28px;border-bottom:1px solid var(--line);background:var(--surface)}
.akte-tabs button{flex:none;min-height:44px;padding:0 13px;border:0;border-bottom:3px solid transparent;
  background:none;color:var(--soft);font:inherit;font-size:13px;font-weight:650;cursor:pointer;white-space:nowrap}
.akte-tabs button:hover{color:var(--accent)}
.akte-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.akte-tabs button.aktiv{color:var(--accent);border-bottom-color:var(--accent)}
.akte-tab-zaehler{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;
  margin-left:7px;padding:0 6px;border-radius:10px;background:var(--surface2);color:var(--soft);
  font-size:10.5px;font-variant-numeric:tabular-nums}
.akte-tabs button.aktiv .akte-tab-zaehler{background:#e7f1fb;color:var(--accent)}
.akte-tab[hidden]{display:none}
.akte-raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.akte-raster.drittel{grid-template-columns:repeat(3,minmax(0,1fr))}
.akte-sektion{min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:0 18px 18px}
.akte-sektion.breit{grid-column:1/-1}
.akte-sektion>header{display:flex;align-items:baseline;gap:12px;margin:0 -18px 16px;
  padding:13px 18px;border-bottom:1px solid var(--line);background:var(--surface2)}
.akte-sektion>header h3{margin:0;font-size:14px;color:var(--ink)}
.akte-sektion>header span{margin-left:auto;color:var(--faint);font-size:12px}
.akte-sektion .os-gruppe{border-bottom:0}.akte-sektion .os-gruppe-inhalt{padding-bottom:0}
.akte-kennzahlen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 18px;
  border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.akte-kennzahl{min-width:0;padding:13px 16px;border-right:1px solid var(--line)}
.akte-kennzahl:last-child{border-right:0}.akte-kennzahl small{display:block;color:var(--faint);font-size:10.5px;
  font-weight:750;letter-spacing:.07em;text-transform:uppercase}.akte-kennzahl b{display:block;margin-top:4px;
  overflow:hidden;color:var(--ink);font-size:19px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.akte-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:12px;
  border:1px solid var(--line);border-radius:4px;background:var(--surface2)}
.akte-filter label{display:grid;gap:4px;min-width:190px;color:var(--faint);font-size:10.5px;
  font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.akte-filter label:first-child{flex:1 1 280px}.akte-filter input,.akte-filter select{width:100%;min-height:35px;
  border:1px solid var(--line2);border-radius:3px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}
.akte-filter input{padding:7px 9px}.akte-filter select{padding:6px 28px 6px 9px}
.akte-filter-stand{margin-left:auto;padding-bottom:8px;color:var(--faint);font-size:12px;white-space:nowrap}
.akte-filter-eintrag[hidden]{display:none!important}.akte-leer[hidden]{display:none}
.akte-leer{margin:12px 0;color:var(--faint);font-size:13px}
.akte-teilnehmer-name{min-width:0}.akte-teilnehmer-training{margin-top:3px;color:var(--faint);font-size:11.5px}
.akte-kurzliste .fa-zeile:last-child,.akte-kurzliste .os-quali-zeile:last-child{border-bottom:0}
.deal-cockpit{--deal-phase:var(--accent);--deal-phase-bg:#F3F7FC;margin:0 0 14px;
  border:1px solid var(--line);border-top:3px solid var(--deal-phase);border-radius:5px;background:var(--surface)}
.deal-cockpit.phase-angebot_informell{--deal-phase:var(--warn);--deal-phase-bg:#FFF8EA}
.deal-cockpit.phase-angebot_formell{--deal-phase:var(--termin);--deal-phase-bg:#F6F1FA}
.deal-cockpit.phase-gewonnen{--deal-phase:var(--ok);--deal-phase-bg:var(--okbg)}
.deal-cockpit.phase-abgeschlossen{--deal-phase:var(--err);--deal-phase-bg:var(--errbg)}
.deal-cockpit-uebersicht{display:flex;align-items:stretch;justify-content:space-between;gap:24px;
  padding:14px 16px;background:linear-gradient(90deg,var(--deal-phase-bg),var(--surface) 32%)}
.deal-cockpit-phase{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px}
.deal-cockpit-phase>small,.deal-cockpit-kennzahl>small,.deal-cockpit-person small{display:block;
  color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.075em;text-transform:uppercase}
.deal-cockpit-phase .os-chip{font-size:11.5px;padding:3px 8px;color:var(--deal-phase);border-color:var(--deal-phase)}
.deal-cockpit-kennzahlen{display:flex;align-items:stretch;margin:-4px 0}
.deal-cockpit-kennzahl{display:flex;min-width:150px;flex-direction:column;justify-content:center;
  padding:4px 18px;border-left:1px solid var(--line);font-variant-numeric:tabular-nums}
.deal-cockpit-kennzahl:last-child{padding-right:0}
.deal-cockpit-kennzahl strong{margin-top:3px;color:var(--ink);font-size:16px;line-height:1.25;white-space:nowrap}
.deal-cockpit-kennzahl strong.fehlt{color:var(--warn)}
.deal-cockpit-kennzahl>span{margin-top:1px;color:var(--faint);font-size:10.5px}
.deal-cockpit-personen{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;padding:11px 16px;
  border-top:1px solid var(--line);background:var(--surface2)}
.deal-cockpit-person{display:flex;align-items:center;min-width:0}
.deal-cockpit-personbild{width:28px;height:28px;margin-right:8px;box-shadow:0 0 0 1px var(--line2)}
.deal-cockpit-person>span:last-child{min-width:0}
.deal-cockpit-person b{display:block;margin-top:1px;overflow:hidden;color:var(--ink);font-size:12.5px;
  font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.deal-cockpit-person.rechts{justify-self:end;text-align:right}
.deal-next-card{margin:0;padding:16px;border:1px solid var(--line2);border-left:4px solid var(--accent);
  border-radius:4px;background:var(--surface);box-shadow:0 2px 9px rgba(12,31,45,.05)}
.deal-formular>.deal-next-card,.deal-formular>.deal-akte-block,.deal-formular>.deal-angebote-verknuepft,
.deal-formular>.deal-details{
  grid-column:1/-1}
.deal-next-card.unvollstaendig{border-left-color:var(--warn);background:var(--warnbg)}
.deal-next-card.ueberfaellig{border-left-color:var(--err);background:var(--errbg)}
.deal-next-kopf{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);gap:28px;
  align-items:start;margin-bottom:0}
.deal-next-aufgabe>span{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);font-weight:750}
.deal-next-aufgabenzeile{display:flex;align-items:center;gap:7px;margin-top:3px;min-width:0}
.deal-next-kopf h3{min-width:0;margin:0;font-size:18px;line-height:1.3;color:var(--ink)}
.deal-next-meta{display:grid;grid-template-columns:minmax(130px,1fr) auto;gap:20px;align-items:start}
.deal-next-zustand,.deal-next-frist{min-width:0}
.deal-next-zustand>small,.deal-next-frist>small{display:block;margin-bottom:5px;color:var(--faint);
  font-size:10px;font-weight:750;letter-spacing:.075em;text-transform:uppercase}
.deal-next-frist{text-align:right}.deal-next-fristzeile{display:flex;align-items:center;justify-content:flex-end;gap:5px}
.deal-next-frist b{display:block;font-size:14px;color:var(--ink)}
.deal-next-card.ueberfaellig .deal-next-frist b{color:var(--err)}
.deal-next-frist>span{display:block;margin-top:2px;color:var(--faint);font-size:11px}
.deal-next-icon{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;padding:3px;border:0;
  border-radius:50%;background:transparent;color:var(--faint);cursor:pointer}
.deal-next-icon:hover,.deal-next-icon:focus-visible,.deal-next-icon.aktiv{background:var(--surface2);color:var(--accent)}
.deal-next-icon:disabled{cursor:default;opacity:.35}.deal-next-icon svg{width:16px;height:16px;fill:none;
  stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.deal-next-check{width:25px;height:25px;margin-left:-3px;color:var(--line2)}
.deal-next-check:hover,.deal-next-check:focus-visible{background:var(--okbg);color:var(--ok)}
.deal-next-check svg{width:18px;height:18px}.deal-next-stift{width:22px;height:22px}
.deal-next-status{display:inline-flex;padding:2px 7px;border-radius:10px;background:var(--surface2);
  color:var(--soft);font-size:10.5px;font-weight:650}
.deal-next-warnung{margin:0 0 12px;padding:8px 10px;border-left:2px solid var(--warn);
  background:rgba(255,255,255,.55);font-size:12.5px;color:var(--soft)}
.deal-next-warnung:not([hidden]){margin-top:12px}
.deal-next-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:12px}
.deal-next-grid[hidden]{display:none}
.deal-next-grid>.os-feld:first-child{grid-column:1/-1}
.deal-next-grid .os-feld{margin:0}.deal-next-grid .os-feld small{font-size:11px}
.deal-next-neu{margin:18px 0 4px;background:#f7fafc;box-shadow:none}
.deal-next-neu .deal-next-kopf{margin-bottom:0}
.deal-schnellaktionen{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 2px}
.deal-details,.deal-inline-editor,.deal-subdetails{border-top:1px solid var(--line);margin-top:12px}
.deal-details>summary,.deal-inline-editor>summary,.deal-subdetails>summary{display:flex;align-items:center;gap:8px;
  cursor:pointer;list-style:none;padding:12px 2px;color:var(--soft);font-size:12px;font-weight:700}
.deal-details>summary::-webkit-details-marker,.deal-inline-editor>summary::-webkit-details-marker,
.deal-subdetails>summary::-webkit-details-marker{display:none}
.deal-details>summary::before,.deal-inline-editor>summary::before,.deal-subdetails>summary::before{
  content:"";width:0;height:0;border-left:4px solid currentColor;border-top:3.5px solid transparent;
  border-bottom:3.5px solid transparent;transition:transform .15s}
.deal-details[open]>summary::before,.deal-inline-editor[open]>summary::before,
.deal-subdetails[open]>summary::before{transform:rotate(90deg)}
.deal-details>summary span{margin-left:auto;color:var(--faint);font-size:11px;font-weight:400}
.deal-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;padding:3px 0 15px}
.deal-details-grid>.breit{grid-column:1/-1}
.deal-inline-editor>.deal-position-aktion{margin:0 0 12px}
.deal-neu-produkt{margin-top:4px;border:1px solid var(--line2);border-radius:4px;background:var(--surface)}
.deal-neu-produkt>summary{padding:11px 12px}.deal-neu-produkt>summary strong{color:var(--ink);font-size:12.5px}
.deal-neu-produkt>summary span{margin-left:auto;color:var(--faint);font-size:11px;font-weight:500}
.deal-neu-produkt>.deal-position-aktion{margin:0;border:0;border-top:1px solid var(--line);border-radius:0}
.deal-subdetails>div{padding:0 0 14px}.deal-subdetails>summary>span{color:var(--faint);font-weight:500}
.deal-formular>.deal-akte-block{margin:10px 0 2px;border:1px solid var(--line2);border-radius:4px;
  background:var(--surface)}
.deal-formular>.deal-akte-block>summary{padding:11px 12px;color:var(--ink)}
.deal-formular>.deal-akte-block>summary strong{font-size:13px}
.deal-formular>.deal-akte-block>summary .deal-akte-zaehler{margin-left:auto;padding:3px 8px;
  border-radius:12px;background:var(--surface2);color:var(--soft);font-size:11.5px;
  font-weight:500;font-variant-numeric:tabular-nums}
.deal-formular>.deal-akte-block>div{padding:0 12px 12px;border-top:1px solid var(--line)}
.deal-angebote-verknuepft{margin:10px 0 2px;border:1px solid var(--line2);border-radius:4px;
  background:var(--surface)}
.deal-angebote-kopf{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;
  border-bottom:1px solid var(--line)}
.deal-angebote-kopf h4{margin:0;color:var(--ink);font-size:13px}
.deal-angebote-kopf span{padding:3px 8px;border-radius:12px;background:var(--surface2);color:var(--soft);
  font-size:11.5px;font-variant-numeric:tabular-nums}
.deal-angebote-verknuepft .os-angebotliste{margin:0;padding:2px 12px}
.deal-angebote-verknuepft .os-angebotzeile{flex-wrap:wrap}
.deal-angebote-verknuepft .os-angebotzeile .wann{flex:1 1 260px}
.deal-angebote-verknuepft .os-verweis{font-weight:650}
.deal-angebote-leer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;
  color:var(--soft);font-size:12.5px}
.deal-angebote-leer .os-fbtn{margin-left:auto}
.deal-verlauf h4{display:none}.deal-verlauf .os-verlauf{margin-top:2px}
.os-angebot-unten.deal-subdetails{margin-top:12px;padding-top:0;border-top:1px solid var(--line)}
.os-angebot-unten.deal-subdetails>div>p{margin:0 0 12px;color:var(--soft);font-size:12.5px}
.deal-datum-eingabe{position:relative;display:block}
.deal-datum-eingabe>input{width:100%}
.deal-datum-eingabe.leer>input::-webkit-datetime-edit{color:transparent}
.deal-datum-platzhalter{display:none;position:absolute;left:14px;top:50%;transform:translateY(-50%);
  pointer-events:none;color:var(--faint);font-size:13px;font-weight:500}
.deal-datum-eingabe.leer>.deal-datum-platzhalter{display:block}
@media(max-width:760px){
  .os-panel.deal-panel .os-panel-inhalt,.os-panel.firma-voll-panel .os-panel-inhalt{width:100%}
  .deal-next-grid,.deal-details-grid{grid-template-columns:1fr}
  .deal-next-grid>.os-feld:first-child,.deal-details-grid>.breit{grid-column:auto}
  .deal-cockpit-uebersicht{align-items:flex-start;flex-direction:column;gap:13px}
  .deal-cockpit-kennzahlen{width:100%;margin:0;border-top:1px solid var(--line);padding-top:11px}
  .deal-cockpit-kennzahl{min-width:0;flex:1;padding:0 12px 0 0;border-left:0}
  .deal-cockpit-kennzahl+.deal-cockpit-kennzahl{padding-left:12px;border-left:1px solid var(--line)}
}
@media(max-width:900px){
  .akte-raster,.akte-raster.drittel{grid-template-columns:1fr}.akte-sektion.breit{grid-column:auto}
  .akte-kennzahlen{grid-template-columns:repeat(2,minmax(0,1fr))}.akte-kennzahl:nth-child(2){border-right:0}
  .akte-kennzahl:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:600px){
  .os-panel.kontakt-voll-panel .os-panel-body,.os-panel.firma-voll-panel .os-panel-body{padding-left:18px;padding-right:18px}
  .akte-tabs{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}
  .akte-filter{align-items:stretch;flex-direction:column}.akte-filter label{width:100%;min-width:0}
  .akte-filter-stand{margin-left:0;padding:0}.akte-kennzahlen{grid-template-columns:1fr}
  .akte-kennzahl,.akte-kennzahl:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}
  .akte-kennzahl:last-child{border-bottom:0}
}
@media(max-width:560px){
  .deal-next-kopf{grid-template-columns:1fr;gap:12px}
  .deal-next-meta{grid-template-columns:1fr 1fr;gap:12px}.deal-next-frist{text-align:right}
  .deal-cockpit-personen{grid-template-columns:1fr}
  .deal-cockpit-person.rechts{justify-self:start;text-align:left}
}
.os-rollengruppe{margin-bottom:12px}
.os-rollengruppe .kopf{font-size:12px;font-weight:700;color:var(--soft);margin-bottom:2px}
.os-rollengruppe .kopf small{font-weight:400;color:var(--faint)}

/* Variante mit ihren Preisen (Produktkatalog). Der Preis haengt an der
   Variante, nie am Produkt — die Schachtelung zeigt genau das. */
.os-variante{border:1px solid var(--line);border-radius:3px;padding:8px 10px;margin-bottom:8px}
.os-variante .kopf{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.os-variante .kopf .mass{margin-left:auto;color:var(--faint);font-size:12px}
.os-variante .preise{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px;
  padding-top:7px;border-top:1px solid var(--line)}
.os-variante .preis{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;
  font-variant-numeric:tabular-nums;background:var(--surface2);border-radius:2px;padding:2px 4px 2px 7px}
.os-variante .preis small{color:var(--faint)}
.os-variante .preis .warum{cursor:help;color:var(--warn);font-weight:700}
/* .os-x traegt margin-left:auto fuers Seitenfenster — im Preis-Chip
   wuerde das Kreuz damit vom Betrag weggeschoben. */
.os-x.klein{font-size:14px;padding:0 3px;margin-left:0}
.os-abt{display:flex;align-items:center;gap:9px}
.os-abt span{cursor:pointer;border-bottom:1px dotted var(--line2)}
.os-abt span:hover{color:var(--accent);border-bottom-color:var(--accent)}
.os-fbtn.klein{padding:1px 7px;font-size:11px;margin-left:auto}
.os-verlauf{font-size:13px}
.os-verlauf-eintrag{padding:8px 0;border-bottom:1px solid var(--line)}
.os-verlauf-eintrag:last-child{border-bottom:0}
.os-verlauf-eintrag .kopf{color:var(--faint);font-size:12px;margin-bottom:3px}
.os-diff{font-size:12.5px;padding:1px 0}
.os-diff .alt{color:var(--faint);text-decoration:line-through}
.os-diff .neu{color:var(--ok)}

/* Kanban-Board (Deals) — waagrecht scrollbar, damit die Spalten ihre
   Breite behalten statt bei sechs Stufen unlesbar schmal zu werden. */
.os-brett{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:10px}
/* FESTE SPALTENBREITE. «min-width:0» ist der entscheidende Teil und
   sieht harmlos aus: Flex-Elemente haben von sich aus min-width:auto,
   und damit drueckt ein langer Firmenname die Spalte ueber ihre
   Sollbreite hinaus - gemessen 488px statt 214px bei «Dipl.-Ing. Emil
   Hoenninger GmbH & Co. Bauunternehmung KG». Genau deshalb war die
   Pipeline breiter als die uebrigen Spalten: nicht weil mehr drin lag,
   sondern weil EIN Name lang war.

   Die Spalte darf nie vom Inhalt dimensioniert werden - der Inhalt
   ordnet sich unter und wird abgeschnitten (Steven, 14.08.2026: "Mehr
   Pipeline auf einmal sehen > vollstaendige Texte lesen koennen"). */
.os-spalte{flex:0 0 336px;min-width:0;background:var(--surface2);border:1px solid var(--line);
  border-radius:3px;padding:7px;min-height:120px}
.os-spalte[data-stufe="pipeline"]{flex-basis:672px}
.os-spalte.eingeklappt,.os-spalte[data-stufe="pipeline"].eingeklappt{flex-basis:168px;min-height:0}
.os-spalte.eingeklappt .os-spalteninhalt{display:none}
.os-spalte>header{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0;
  padding:2px 4px 8px;font-size:12px;border-bottom:1px solid var(--line);margin-bottom:8px}
.os-spalte>header b{font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.os-spalte>header.ok b{color:var(--ok)} .os-spalte>header.warn b{color:var(--warn)}
.os-spalte>header.crit b{color:var(--err)}
.os-spalte[data-stufe="pipeline"]>header b{color:var(--accent)}
.os-spalte[data-stufe="angebot_informell"]>header b{color:var(--warn)}
.os-spalte[data-stufe="angebot_formell"]>header b{color:var(--termin)}
.os-spalte>header .anz{color:var(--faint);font-variant-numeric:tabular-nums}
.os-spalte>header .sum{width:100%;color:var(--faint);font-size:11.5px;font-variant-numeric:tabular-nums}
.os-spalte>header .os-spalte-toggle{margin-left:auto;border:0;background:none;color:var(--faint);
  padding:0 2px;cursor:pointer;font:inherit;font-size:14px;line-height:1}
.os-spalte>header .os-spalte-toggle:hover,.os-spalte>header .os-spalte-toggle:focus-visible{color:var(--accent)}
.os-pausiert{margin-top:12px;padding-top:9px;border-top:2px solid var(--line2)}
.os-pausiert>header{display:flex;align-items:baseline;gap:7px;padding:0 4px 7px;color:var(--faint)}
.os-pausiert>header b{font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.os-pausiert>header .anz{font-size:11px;font-variant-numeric:tabular-nums}
.os-pausiert>header button{margin-left:auto;border:0;background:none;color:var(--faint);cursor:pointer;font:inherit}
.os-pausiert.eingeklappt .os-pausiert-inhalt{display:none}
.os-spalte .leer{padding:10px 4px;margin:0}
/* ---- Deal-Karte: Variante D4 «Dicht» (Stevens Wahl vom 14.08.2026) ----
   Keine einzelnen Karten mehr, sondern Zeilen: zwei je Deal, eine dritte
   NUR bei Handlungsbedarf. Die Hoehe ist damit selbst eine Aussage - eine
   kurze Zeile heisst «laeuft», eine lange «da ist etwas». Rund doppelt so
   viele Deals je Bildschirm. */
.os-spalte .v4-karte:first-child{border-top:0}
/* FESTE HOEHE. Das Board ist ein Radar, keine Detailansicht - alle
   Karten muessen exakt gleich hoch sein, damit man die Spalte
   ueberfliegen kann (Steven, 14.08.2026: "Scanbarkeit > vollstaendige
   Darstellung"). Lange Namen werden abgeschnitten, der volle Text steht
   im Tooltip; geklickt oeffnet sich ohnehin das Detailfenster.
   67px = drei Zeilen plus Polster, 48px = zwei (gewonnene Deals). */
.v4-karte{position:relative;display:block;width:100%;min-width:0;text-align:left;font:inherit;cursor:pointer;
  background:var(--surface);border:1px solid var(--line);border-left:3px solid transparent;
  border-radius:3px;padding:6px 10px;margin-bottom:5px;
  height:67px;overflow:hidden}
.v4-karte.kurz{height:48px}
.v4-karte:hover:not(:has(.v4-angebotstatus:hover)){border-color:var(--accent);background:var(--surface2)}
.v4-karte:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.v4-karte.spaet{border-left-color:var(--err)}
.v4-karte.luecke{border-left-color:var(--warn)}
/* Ziehen und Ablegen: die Karte blasst aus, die Zielspalte hebt sich ab.
   Ohne sichtbares Ziel weiss man beim Loslassen nicht, wo man landet. */
.v4-karte[draggable="true"]{cursor:grab}
.v4-karte.zieht{opacity:.4;cursor:grabbing}
.os-spalte.ziel{background:var(--okbg);border-color:var(--ok)}
/* Loeschkreuz: blass, aber dauerhaft sichtbar - auf einem Tablet gibt es
   kein «hover», und ein Knopf, den nur die Maus findet, ist keiner. */
.v4-karte .v4-weg{position:absolute;top:3px;right:3px;border:0;background:none;padding:2px 4px;
  line-height:1;color:var(--line2);cursor:pointer;border-radius:2px;display:flex;align-items:center}
/* Papierkorb statt Kreuz: Ein Kreuz heisst ueberall sonst «schliessen»
   (os-kern.js: PAPIERKORB_SVG). */
.os-weg{border:0;background:none;padding:2px 4px;line-height:1;color:var(--line2);cursor:pointer;
  border-radius:2px;display:inline-flex;align-items:center}
.os-weg:hover,.os-weg:focus-visible{color:var(--err);background:var(--surface2)}
.v4-karte:hover .v4-weg{color:var(--faint)}
.v4-karte .v4-weg:hover,.v4-karte .v4-weg:focus-visible{color:var(--err);background:var(--surface2)}
/* Zeile 1: Vorhaben fuehrt, Wert rechts. Ohne «CHF» - die Waehrung
   gehoert in den Spaltenkopf, nicht sechsmal untereinander. */
/* Firma links flexibel, Wert rechts fix - der Wert darf nie verdraengt
   werden, auch nicht von "Dipl.-Ing. Emil Hoenninger GmbH & Co. ...". */
.v4-z1{display:flex;align-items:baseline;gap:6px;padding-right:16px;line-height:1.3}
.v4-titel{font-size:13px;font-weight:600;min-width:0;flex:1 1 auto;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v4-wert{margin-left:auto;flex:none;font-size:12.5px;font-weight:600;color:var(--soft);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.v4-wert[data-offen]{color:var(--faint);font-weight:400;font-style:italic;font-variant-numeric:normal}
/* Die Tilde macht die Herkunft transparent. Die Zahl bleibt aber gleich
   lesbar wie ein Positionswert: Sie zählt im Deal und in der Pipeline. */
.v4-wert.geschaetzt{color:var(--soft);font-weight:600}
/* Zeile 2: das Vorhaben. Bleibt als leere Zeile stehen, wenn es keines
   gibt - sonst waere die Karte niedriger als ihre Nachbarn. */
.v4-vorhaben{font-size:12px;line-height:1.35;color:var(--soft);margin-top:1px;height:16px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Zeile 3: was verkauft wird, Wert rechts. */
/* Der Wert steht rechts in der Kopfzeile - das spart eine Zeile. */
.v4-z1 .v4-wert{margin-left:auto;flex:none}
/* Zeile 3: Zustand UND Follow-up in einer Zeile. Punkt in der Farbe des
   Zustands plus Wort - nur Farbe waere fuer Farbenblinde unlesbar. */
.v4-status{display:flex;align-items:baseline;gap:4px;margin-top:2px;font-size:11.5px;
  line-height:1.35;color:var(--soft);min-width:0;white-space:nowrap;overflow:hidden}
.v4-punkt{width:7px;height:7px;border-radius:50%;flex:none;align-self:center}
.v4-zustand{flex:none;font-weight:600}
.v4-trenner{color:var(--line2);flex:none}
.v4-datum{flex:none;font-variant-numeric:tabular-nums;color:var(--faint)}
.v4-folge{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--faint)}
/* ---- Schnellaktionen auf der Karte: Variante C (Stevens Wahl, 15.08.2026) ----
   Am Ende der Statuszeile statt oben rechts neben dem Papierkorb. Drei
   Gruende, aus vier Entwuerfen gewaehlt:
     • Sie kosten keinen dauerhaften Platz in Zeile 1, wo der Betrag steht.
     • Sie sind DAUERHAFT sichtbar - dieselbe Regel wie beim Papierkorb:
       auf dem Tablet gibt es kein «hover», und ein Knopf, den nur die
       Maus findet, ist keiner.
     • Zeile 3 gibt es nur bei OFFENEN Deals. Abgeschlossene bekommen die
       Symbole damit von selbst nicht - genau wie gefordert.
   Leise bis zum Hinschauen: in Linienfarbe, beim Ueberfahren der Karte in
   Textfarbe, beim Ueberfahren des Knopfes in Akzentfarbe. */
.v4-aktionen{margin-left:auto;flex:none;display:flex;gap:2px;align-items:center;padding-left:6px}
.v4-akt{border:0;background:none;padding:0;cursor:pointer;line-height:1;border-radius:2px;
  display:inline-flex;align-items:center;justify-content:center;
  width:19px;height:16px;font-size:11.5px;color:var(--line2)}
.v4-karte:hover .v4-akt{color:var(--faint)}
.v4-akt:hover,.v4-akt:focus-visible{color:var(--accent);background:var(--surface2)}
/* Bei uns: deutlich - hier steht der Name dessen, der dran ist. */
.v4-status.ball-uns{color:var(--accent)}
.v4-status.ball-uns .v4-punkt{background:var(--accent)}
/* Beim Kunden: ruhiger, wir warten. */
.v4-status.ball-kunde{color:var(--warn)}
.v4-status.ball-kunde .v4-punkt{background:var(--warn)}
/* Meeting geplant: der naechste Schritt steht im Kalender. */
.v4-status.ball-meeting{color:var(--termin)}
.v4-status.ball-meeting .v4-punkt{background:var(--termin)}
/* Pausiert: zurueckgenommen. */
.v4-status.ball-pausiert{color:var(--faint)}
.v4-status.ball-pausiert .v4-punkt{background:transparent;border:1.5px solid var(--line2)}
/* Ueberfaellig schlaegt alles - unabhaengig vom Zustand. */
.v4-status.spaet,.v4-status.spaet .v4-datum,.v4-status.spaet .v4-folge{color:var(--err)}
.v4-status.spaet .v4-datum{font-weight:600}
.v4-status.luecke{color:var(--warn);font-style:italic}
/* Die ganze pausierte Karte tritt zurueck. */
.v4-karte.ruhig{background:var(--surface2)}
.v4-karte.ruhig .v4-titel{color:var(--soft);font-weight:500}
/* Zeile 3 erscheint NUR, wenn wirklich etwas ansteht. */
.v4-z3{display:flex;align-items:baseline;gap:6px;margin-top:4px;font-size:11.5px;color:var(--soft)}
.v4-z3 .v4-datum{flex:none;font-variant-numeric:tabular-nums;color:var(--faint)}
.v4-z3.spaet{color:var(--err)}
.v4-z3.spaet .v4-datum{color:var(--err);font-weight:600}
.v4-z3.luecke{color:var(--warn);font-style:italic}
.v4-herkunft{border:1px solid var(--line2);border-radius:2px;padding:0 4px;font-size:11px;
  color:var(--faint)}

/* Dealübersicht 2026-09-01: Die Phasenkacheln sind selbst die Kennzahlen.
   Mengen und Werte stehen direkt im jeweiligen Kontext statt noch einmal
   in einer separaten KPI-Zeile. */
.os-deal-kopf{align-items:center}.os-deal-kopf .os-btn{margin-left:auto}
.os-deal-filterleiste{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.os-deal-filterleiste input[type=search]{min-width:190px;flex:0 1 260px}
.os-personfilter-gruppe{display:flex;align-items:center;gap:3px;padding:0 5px;border-left:1px solid var(--line);
  border-right:1px solid var(--line)}
.os-personfilter{display:inline-flex;align-items:center;justify-content:center;min-width:29px;height:28px;padding:0 5px;
  border:1px solid var(--line2);border-radius:2px;background:var(--surface);color:var(--soft);font:inherit;
  font-size:10.5px;font-weight:750;letter-spacing:.04em;cursor:pointer}
.os-person-avatar{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;
  border-radius:50%;background-image:url('assets/personen-platzhalter-v1.png');background-size:400% 300%;
  background-position:var(--avatar-x,0%) var(--avatar-y,0%);background-repeat:no-repeat;
  color:var(--soft);font-size:8.5px;font-weight:750;letter-spacing:.03em;overflow:hidden}
.os-person-avatar[data-initialen="true"]{background-image:none;background-color:var(--surface2);
  border:1px solid var(--line2)}
.os-weitere-angaben{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px}
.os-weitere-angaben>summary{cursor:pointer;color:var(--soft);font-weight:600;padding:6px 0}
.os-weitere-angaben[open]>.os-formular{margin-top:10px}
.os-personfilter-bild{width:22px;height:22px}
.person-liste-ident{display:flex;align-items:center;gap:9px}.person-liste-avatar{width:34px;height:34px;flex:none}
.person-karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:8px}.person-karte{min-height:156px;box-sizing:border-box;overflow:hidden;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:3px;background:var(--surface);padding:9px 10px;cursor:pointer}.person-karte:hover{border-color:var(--accent);background:var(--surface2)}.person-karte:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.person-karte-kopf{display:flex;align-items:center;gap:9px;min-width:0}.person-karte-avatar{width:34px;height:34px;flex:none}.person-karte-kopf>span{min-width:0}.person-karte-kopf b,.person-karte-kopf small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-karte-kopf small{margin-top:2px;color:var(--soft);font-size:11px}.person-karte-meta,.person-karte-unten{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--faint)}.person-karte-meta{margin-top:7px}.person-karte-unten{border-top:1px solid var(--line);margin-top:5px;padding-top:4px}.person-karte-unten span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-vorschau-kopf{display:flex;align-items:center;gap:14px;padding-bottom:15px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.person-vorschau-kopf h3{margin:0;font-size:18px}.person-vorschau-kopf p{margin:3px 0 0;color:var(--soft)}
.person-vorschau-avatar{width:64px;height:64px;flex:none}.person-voll-avatar{width:58px;height:58px;flex:none}
.person-bildpflege{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0 16px;border-bottom:1px solid var(--line);margin-bottom:14px}
.person-bildpflege>div{display:flex;align-items:center;gap:11px}.person-bildpflege b,.person-bildpflege small{display:block}.person-bildpflege small{color:var(--faint);margin-top:3px}
.os-dialog.os-bildcrop{z-index:90}.os-dialog-inhalt.bildcrop-inhalt{width:min(520px,100%)}
.bildcrop-arbeitsflaeche{display:grid;justify-items:center;gap:14px;padding:0 18px 18px}
.bildcrop-arbeitsflaeche>.os-hinweis{justify-self:stretch;margin-left:0;margin-right:0}
.bildcrop-rahmen{position:relative;width:min(360px,100%);aspect-ratio:1;overflow:hidden;background:#dfe7ed;box-shadow:inset 0 0 0 1px var(--line2)}
.bildcrop-rahmen canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.bildcrop-rahmen canvas.zieht{cursor:grabbing}
.bildcrop-rahmen>span{position:absolute;inset:0;pointer-events:none;border-radius:50%;box-shadow:0 0 0 100vmax rgba(12,31,45,.42)}
.bildcrop-zoom{display:grid;grid-template-columns:auto minmax(180px,320px);align-items:center;gap:12px;width:min(360px,100%);font-size:12px;font-weight:650;color:var(--soft)}
.bildcrop-zoom input{width:100%;accent-color:var(--accent)}
.os-personfilter:hover{border-color:var(--accent);color:var(--accent)}
.os-personfilter[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.os-deal-ansicht{margin-left:auto;display:flex;gap:4px;padding-left:7px;border-left:1px solid var(--line)}
.os-deal-mehr{position:relative}.os-deal-mehr>summary{list-style:none;white-space:nowrap}
.os-deal-mehr>summary::-webkit-details-marker{display:none}
.os-deal-mehrmenu{position:absolute;z-index:25;top:calc(100% + 5px);right:0;width:250px;padding:10px;
  display:grid;gap:8px;background:var(--surface);border:1px solid var(--line2);border-radius:3px;
  box-shadow:0 8px 24px rgba(12,31,45,.16)}
.os-deal-mehrmenu label{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--soft)}
.os-deal-mehrmenu label.breit{display:grid;gap:4px;padding-top:7px;border-top:1px solid var(--line)}
.os-deal-mehrmenu select{width:100%;min-width:0;padding:6px 7px;border:1px solid var(--line2);
  border-radius:2px;background:var(--surface);color:var(--ink)}
.os-deal-jahre{margin:0 0 10px}.os-deal-jahre>.os-mute{font-size:10.5px;letter-spacing:.06em;
  text-transform:uppercase;font-weight:700;margin-right:2px}
.os-statuslegende{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:0 0 8px;
  color:var(--faint);font-size:10.5px}
.os-statuslegende>span{margin-right:2px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.os-statusfilter{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid transparent;
  border-radius:12px;background:transparent;color:var(--soft);font:inherit;font-size:10.5px;cursor:pointer}
.os-statusfilter:hover{background:var(--surface2);color:var(--ink)}
.os-statusfilter[aria-pressed="true"]{border-color:var(--line2);background:var(--surface2);color:var(--ink)}
.v4-statuspunkt{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--line2);flex:none}
.ball-uns .v4-statuspunkt{background:var(--accent)}
.ball-kunde .v4-statuspunkt{background:var(--warn)}
.ball-meeting .v4-statuspunkt{background:var(--termin)}
.ball-pausiert .v4-statuspunkt{background:transparent;border:1.5px solid var(--line2)}

.os-brett{scrollbar-gutter:stable;scroll-snap-type:x proximity}
.os-spalte,.os-spalte[data-stufe="pipeline"]{flex:0 0 276px;scroll-snap-align:start}
.os-spalte.eingeklappt,.os-spalte[data-stufe="pipeline"].eingeklappt{flex-basis:148px}
.v4-karte{height:auto;min-height:106px;padding:8px 9px;overflow:visible;margin-bottom:7px}
.v4-karte.kurz{height:auto;min-height:106px}
.v4-z1{align-items:center;padding-right:0;gap:7px}
.v4-z1 .os-logo{flex:none}
.v4-wert,.v4-z1 .v4-wert{max-width:52%;font-size:11.5px;text-align:right;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.v4-wert.geschaetzt{font-weight:500}
.v4-vorhaben{height:17px;margin:1px 0 6px;color:var(--soft);font-size:11.5px}
.v4-ownerstatus{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;
  font-size:11.5px;line-height:18px}
.v4-owner{display:block;min-width:0;white-space:nowrap}
.v4-ownerbild{width:24px;height:24px;box-shadow:0 0 0 1px var(--line2)}
.v4-ownerstatus .v4-zustand{margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v4-ownerstatus .ball-uns{color:var(--accent)}
.v4-ownerstatus .ball-kunde{color:var(--warn)}
.v4-ownerstatus .ball-meeting{color:var(--termin)}
.v4-ownerstatus .ball-pausiert{color:var(--faint)}
.v4-ownerstatus .v4-zustand{display:inline-flex;align-items:center;justify-content:center;
  width:12px;height:18px;flex:none}
.v4-termin{display:inline-flex;align-items:center;gap:5px;color:var(--soft);font-size:11px;white-space:nowrap}
.v4-termin b{font-weight:600;font-variant-numeric:tabular-nums}
.v4-termin.update,.v4-termin.update b{color:var(--err);font-weight:700}
.v4-karte.luecke .v4-termin.update,.v4-karte.luecke .v4-termin.update b{color:var(--warn)}
.v4-foot{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:4px;
  padding-top:4px;border-top:1px solid var(--line);font-size:10.5px;color:var(--faint);white-space:nowrap}
.v4-foot>span:first-child{display:inline-flex;align-items:center;gap:5px;min-width:0}
.v4-foot>span:first-child b{color:var(--soft);font-weight:600;font-variant-numeric:tabular-nums}
.v4-abschluss svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;
  stroke-linecap:round;stroke-linejoin:round}
.v4-foot .datenluecke{color:var(--warn);font-weight:650}
.v4-foot .datenluecke b{color:var(--warn)}
.v4-foot .v4-angebotstatus{margin-right:auto;max-width:150px;display:grid;text-align:left;gap:2px}
.v4-angebotstatus.os-chip[title]{cursor:pointer}
.v4-angebotstatus:hover,.v4-angebotstatus:focus-visible{border-color:var(--accent);background:var(--surface2);outline:1px solid var(--accent)}
.v4-angebotstatus>span{overflow:hidden;text-overflow:ellipsis}
.v4-angebotstatus>small{font-size:9px;font-weight:500}

.os-panel header{flex:none;background:var(--surface);position:relative;z-index:2}
.os-panel footer{flex:none;position:relative;z-index:2;box-shadow:0 -2px 8px rgba(12,31,45,.05)}
.os-panel footer .deal-risiko{margin-right:auto;color:var(--faint);border-color:transparent;padding-left:0}
.os-panel footer .deal-risiko:hover{color:var(--err);border-color:var(--err)}
.os-panel footer .deal-sekundaer{color:var(--accent);border-color:var(--accent)}
.os-panel footer .deal-angebot-footer{padding-left:11px;padding-right:11px;white-space:nowrap}
.os-panel .os-formular{gap:10px 12px}
.os-panel .os-feld input,.os-panel .os-feld select,.os-panel .os-feld textarea{padding:6px 8px}

@media(max-width:720px){.os-deal-ansicht{margin-left:0}
  .os-spalte,.os-spalte[data-stufe="pipeline"]{flex-basis:268px}.os-deal-mehrmenu{right:auto;left:0}
  .os-panel footer{flex-wrap:wrap}.os-panel footer .deal-risiko{margin-right:auto}
  .os-panel footer .deal-angebot-footer{order:-1;flex:1 1 calc(50% - 4px)} }

/* Verfügbarkeit: direkt umschalten, mehrere Halbtage auswählen, ganze Wochen pflegen. */
.tp-verf{max-width:1180px}
.tp-verf [hidden]{display:none!important}
.tp-verf-musterbox{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface2);border-radius:6px;padding:14px;margin:0 0 22px}
.tp-verf-musterbox header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tp-verf-musterbox h3{font-size:16px;margin:0}.tp-verf-musterbox header span{font-size:12px;color:var(--soft)}
.tp-verf-musterbox p{font-size:12px;margin:6px 0 10px}.tp-verf-musterbox>small{display:block;font-size:11px;margin-top:8px}
.tp-verf-muster{display:grid;grid-template-columns:94px repeat(7,minmax(0,1fr));gap:4px;align-items:center;max-width:650px}
.tp-verf-mustertag{text-align:center;font-size:12px;color:var(--soft)}
.tp-verf-muster label{display:flex;justify-content:center;align-items:center;min-height:30px;cursor:pointer;border-radius:3px;background:var(--surface)}
.tp-verf-muster input{width:18px;height:18px;margin:0;cursor:pointer;accent-color:var(--ok)}
.tp-verf-muster button{font:inherit;font-size:11px;padding:6px 3px;background:var(--surface);color:var(--accent);border:1px solid var(--line);border-radius:3px;cursor:pointer;min-height:30px}
.tp-verf-wochenkopf{font-size:10px;color:var(--soft);padding:4px;align-self:center}
.tp-verf-woche{display:flex;flex-direction:column;justify-content:center;gap:5px;padding-right:4px;min-width:0}
.tp-verf-woche small{font-size:10px;color:var(--soft);text-align:center;margin-bottom:3px}
.tp-verf-woche button{min-height:34px;font:inherit;font-size:11px;padding:6px 3px;background:var(--surface2);color:var(--ink);border:1px solid var(--line);border-radius:4px;cursor:pointer}
.tp-verf-woche button:hover,.tp-verf-muster button:hover{border-color:var(--accent)}
.tp-verf-kopf,.tp-verf-aktionen,.tp-verf-speichern,.tp-verf-auswahlkopf,.tp-verf-werkzeuge{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tp-verf-kopf{justify-content:space-between;margin-bottom:12px}
.tp-verf-kopf h3{margin:0}
.tp-verf-auswahl{position:sticky;top:0;z-index:3;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px;margin-bottom:12px;box-shadow:0 2px 5px #14273608}
.tp-verf-auswahlkopf{justify-content:space-between;font-size:13px}
.tp-verf-werkzeuge{margin-top:10px}
.tp-verf-werkzeuge .os-btn{font-size:12px;padding:8px 10px;min-height:36px}
.tp-verf-segmente{display:flex;flex-wrap:wrap;gap:2px;border:1px solid var(--line);border-radius:4px;padding:2px}
.tp-verf-segmente button{font:inherit;font-size:12px;padding:6px 9px;border:0;border-radius:3px;background:transparent;color:var(--soft);cursor:pointer}
.tp-verf-segmente button[aria-pressed="true"]{background:var(--ink);color:var(--surface)}
.tp-verf-daten{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.tp-verf-daten label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--soft);min-width:0}
.tp-verf-daten input{font:inherit;min-width:0;max-width:170px;padding:6px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px}
.tp-verf-termine{margin:8px 0 0;font-size:13px;color:var(--accent);overflow-wrap:anywhere}
.tp-verf-gitter{display:grid;grid-template-columns:94px repeat(7,minmax(0,1fr));gap:6px;user-select:none}
.tp-verf-wochentag{text-align:center;color:var(--soft);font-size:12px;padding:4px}
.tp-verf-tag{display:flex;flex-direction:column;gap:4px;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:5px}
.tp-verf-datum{display:flex;align-items:center;justify-content:space-between;gap:3px;width:100%;min-height:28px;border:0;border-radius:3px;padding:2px 5px;background:transparent;color:var(--ink);font:inherit;font-size:13px;text-align:left;cursor:pointer;touch-action:pan-y}
.tp-verf-datum small{font-size:9px;color:var(--warn)}
.tp-verf-tag.heute .tp-verf-datum{font-weight:700;color:var(--accent)}
.tp-verf-tag.nachbar .tp-verf-datum{color:var(--faint)}
.tp-verf-slot{display:flex;flex:1;flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:60px;width:100%;padding:5px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--soft);font:inherit;text-align:left;cursor:pointer;touch-action:pan-y}
.tp-verf-halb{font-size:10px;line-height:1.2}
.tp-verf-kurz,.tp-verf-aktion-kurz{display:none}
.tp-verf-status{display:flex;align-items:center;gap:5px;min-width:0;font-size:12px;line-height:1.25}
.tp-verf-status>span:first-child{display:inline-flex;align-items:center;font-weight:700}
.tp-verf-statuswort{overflow-wrap:anywhere}
.tp-verf-schloss{width:13px;height:13px;flex:none}
.tp-verf-training{display:block;flex-shrink:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.2}
.tp-verf .kann{background:var(--okbg);border-color:var(--ok);color:var(--ok)}
.tp-verf .nicht{background:var(--surface2);border-color:var(--soft);color:var(--soft)}
.tp-verf .einsatz{background:var(--accent);border-color:var(--accent);color:#fff}
.tp-verf [data-verf-auswahl]:hover{box-shadow:inset 0 0 0 1px currentColor}
.tp-verf [data-verf-auswahl][aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.tp-verf button:focus-visible,.tp-verf input:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.tp-verf button:disabled{cursor:default;opacity:.5}
.tp-verf-legende{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--soft)}
.tp-verf-legende span{display:flex;align-items:center;gap:5px}
.tp-verf-legende i{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid var(--line);background:var(--surface)}
.tp-verf-hilfe{font-size:12px;line-height:1.5;margin:8px 0 0}
.tp-verf-hilfe:empty{display:none}
.tp-verf-speichern{position:sticky;bottom:0;z-index:4;margin-top:16px;padding:12px 0;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -3px 8px #14273608}
.tp-verf-speichern .os-mute{font-size:12px}
@media(max-width:1000px){.tp-verf-slot{padding:5px}.tp-verf-lang{display:none}.tp-verf-kurz{display:inline}}
@media(max-width:600px){
  .tp-verf-gitter{gap:3px;grid-template-columns:repeat(7,minmax(0,1fr))}.tp-verf-wochenkopf{display:none}.tp-verf-woche{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-start;padding:9px 0 4px;gap:5px}.tp-verf-woche small{margin:0 auto 0 0}.tp-verf-woche button{min-height:36px;padding:5px}.tp-verf-tag{padding:2px;gap:3px}.tp-verf-datum{min-height:32px;padding:2px;justify-content:center}.tp-verf-datum small{display:none}
  .tp-verf-slot{min-height:46px;padding:4px 1px;align-items:center;gap:4px}.tp-verf-status{font-size:13px}.tp-verf-statuswort,.tp-verf-training{display:none}
  .tp-verf-auswahl{padding:8px}.tp-verf-auswahlkopf{gap:6px}.tp-verf-auswahlkopf b{font-size:12px}
  .tp-verf-aktion-lang{display:none}.tp-verf-aktion-kurz{display:inline}
  .tp-verf-werkzeuge .tp-verf-aktionen{gap:5px}.tp-verf-werkzeuge .os-btn{padding:6px;font-size:11px}
  .tp-verf-segmente button{min-height:34px;padding:5px 8px}.tp-verf-werkzeuge .os-btn{min-height:40px}
  .tp-verf-musterbox{padding:10px}.tp-verf-muster{grid-template-columns:78px repeat(7,minmax(0,1fr));gap:3px}.tp-verf-muster button{font-size:10px}.tp-verf-muster input{width:17px;height:17px}
  .tp-verf-speichern{gap:7px}.tp-verf-speichern .os-btn{font-size:12px;padding:8px}.tp-verf-speichern .os-mute{width:100%}
}

/* Agenda: der Kalender unter der Einsatzliste. Kein eigener Reiter -
   die Liste sagt WAS, der Kalender WANN, und beides gehoert zusammen. */
.os-agenda{margin-top:34px;border-top:1px solid var(--line);padding-top:22px}
.os-agenda>header{display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-bottom:14px}
.os-agenda .wo h3{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}
.os-agenda .wo p{margin:2px 0 0;font-size:13px;color:var(--faint);font-variant-numeric:tabular-nums}
.os-agenda .steuer{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* Zwei Knopfgruppen, je als zusammenhaengendes Segment. */
.os-agenda .blaettern,.os-agenda .dichte{display:flex;border:1px solid var(--line2);border-radius:4px;overflow:hidden}
.os-agenda .steuer button{font:inherit;font-size:13px;padding:6px 13px;border:0;cursor:pointer;
  background:var(--surface);color:var(--soft);border-left:1px solid var(--line)}
.os-agenda .steuer button:first-child{border-left:0}
.os-agenda .steuer button:hover{background:var(--surface2);color:var(--ink)}
.os-agenda .steuer button[aria-pressed="true"]{background:var(--ink);color:var(--ground);font-weight:600}
.os-agenda .blaettern button:first-child,.os-agenda .blaettern button:last-child{padding:6px 11px;font-size:15px;line-height:1}
.os-agenda>footer{margin-top:14px;font-size:12.5px;color:var(--faint);line-height:1.55;max-width:70ch}

.os-ag-scroll{max-width:100%;overflow-x:scroll;scrollbar-gutter:stable;padding:0 0 10px}
.os-ag-scroll::-webkit-scrollbar,.tp-einsatzreihe::-webkit-scrollbar{height:10px}
.os-ag-scroll::-webkit-scrollbar-track,.tp-einsatzreihe::-webkit-scrollbar-track{background:var(--surface2);border-radius:8px}
.os-ag-scroll::-webkit-scrollbar-thumb,.tp-einsatzreihe::-webkit-scrollbar-thumb{background:var(--line2);border-radius:8px;border:2px solid var(--surface2)}
.os-ag{display:grid;gap:16px}
.os-ag.monat{min-width:760px}
.os-ag.drei{grid-template-columns:repeat(3,minmax(300px,1fr));min-width:980px}
.os-ag.zwoelf{grid-template-columns:repeat(6,minmax(180px,1fr));min-width:1160px}
.os-ag-monat{border:1px solid var(--line);border-radius:6px;background:var(--surface);
  padding:12px 12px 10px;overflow:hidden}
.os-ag.drei .os-ag-monat,.os-ag.zwoelf .os-ag-monat{padding:10px 10px 8px}
.os-ag-titel{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--soft);margin:0 0 8px 1px}
.os-ag-gitter{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.os-ag-kopf{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);
  font-weight:700;text-align:center;padding-bottom:4px}
.os-ag-tag{position:relative;border-radius:4px;padding:3px 4px;min-height:26px;
  font-variant-numeric:tabular-nums;background:var(--surface)}
.os-ag-tag>b{font-size:10.5px;color:var(--faint);font-weight:600;display:block;line-height:1.3}
.os-ag-tag.leer{background:none}
.os-ag-tag.wochenende{background:var(--surface2)}
.os-ag-tag.wochenende>b{color:var(--line2)}
/* Heute: ein Punkt statt eines Rahmens - ruhiger, wenn daneben belegte
   Tage in Farbe stehen. */
.os-ag-tag.heute>b{color:var(--ink);font-weight:700}
.os-ag-tag.heute>b::after{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;
  background:var(--ink);vertical-align:2px;margin-left:3px}
.os-ag-tag.voll{background:var(--okbg);box-shadow:inset 0 0 0 1px var(--okline,var(--ok))}
.os-ag-tag.voll>b{color:var(--ok)}
.os-ag-eintrag{display:block;font-size:11px;line-height:1.3;margin-top:3px;padding:3px 5px;
  border-radius:3px;background:var(--surface);border-left:2px solid var(--accent);cursor:pointer;
  overflow:hidden;text-overflow:ellipsis;transition:background .12s}
.os-ag-eintrag:hover{background:var(--surface2)}
.os-ag-eintrag>b{color:var(--ink);font-variant-numeric:tabular-nums}
.os-ag-eintrag.block{border-left-color:var(--line2)}
.os-ag-eintrag>small{display:block;color:var(--faint);font-size:10px;margin-top:1px}
.os-ag-mehr{display:block;font-size:10px;color:var(--soft);margin-top:2px;padding-left:5px}
.os-ag-punkt{display:block;width:5px;height:5px;border-radius:50%;background:var(--ok);margin:3px auto 0}
.os-ag-monat.voll .os-ag-tag{min-height:82px}
.os-ag-monat.kompakt .os-ag-tag{min-height:46px}
.os-ag-monat.punkte .os-ag-tag{min-height:22px;text-align:center;padding:2px 1px}
.os-ag-monat.punkte .os-ag-tag>b{font-size:9.5px}
@media(max-width:700px){.os-ag-monat.voll .os-ag-tag{min-height:52px}
  .os-ag-eintrag>small{display:none}}

/* ============================================================
   Board der Trainingsverwaltung — Variante B2 «Drei Abschnitte»
   und Karte T2 «Dicht» (Stevens Wahl vom 14.08.2026).

   Die Phasen stehen in drei gebaenderten Zeilen statt in einer langen
   Reihe: Vor dem Training · Laeuft · Danach. Kein Querlauf, auch wenn
   eine Phase dazukommt.
   ============================================================ */
/* ---- Trainings-Board: echtes waagrechtes Kanban (Steven, 15.08.2026) ----
   Bis heute standen die Phasen in drei Baendern («Vor dem Training»,
   «Laeuft», «Danach») und teilten sich den Platz mit flex:1 1 0. Das
   funktionierte, solange die Trainings sich verteilten. Mit der neuen
   Klaerungsphase landeten alle achtzehn in EINER Spalte - und die
   nahm die ganze Breite, waehrend rechts sieben leere Streifen
   standen. Aus dem Board wurde eine Liste.

   Jetzt: feste Spaltenbreite, waagrecht scrollend. Eine Spalte ist
   immer gleich breit, egal ob null oder dreissig Karten drin sind -
   nur so bleibt die Verteilung auf einen Blick lesbar. */
.b2-board{display:flex;gap:10px;align-items:flex-start;overflow-x:auto;
  padding-bottom:10px;scroll-snap-type:x proximity}
.b2-board .b2-spalte{scroll-snap-align:start}
.b2-board-alt{display:flex;flex-direction:column;gap:20px}
.b2-abschnitt{background:var(--surface2);border-radius:6px;padding:2px 10px 10px}
.b2-band{display:flex;align-items:baseline;gap:10px;padding:9px 2px 8px;
  border-bottom:1px solid var(--line);margin-bottom:10px}
.b2-band h3{margin:0;font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--soft)}
.b2-band span{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.b2-spalten{display:flex;gap:10px;align-items:flex-start}
/* FESTE Breite. min-width:0 ist dabei kein Beiwerk: Ohne sie waechst
   ein Flex-Element ueber seine Basis hinaus, sobald ein Kind nicht
   umbricht - genau der Fehler, der die Deal-Spalten am 14.08. auf
   488px aufblies. */
.b2-spalte{flex:0 0 300px;min-width:0;background:var(--surface2);
  border-radius:5px;padding:8px}
/* Leere Phasen bleiben sichtbar, treten aber kompakt zurück. Gefüllte
   aktive Phasen behalten die feste, vergleichbare Kartenbreite. */
.b2-spalte.leer{background:transparent;border:1px dashed var(--line)}
.b2-spalte>header{margin:0 2px 8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.b2-spaltenkopf{display:flex;width:100%;align-items:center;gap:6px;border:0;background:transparent;
  padding:0;color:inherit;text-align:left;cursor:pointer}
.b2-spaltenname{flex:1;min-width:0;font-size:10.5px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b2-spaltenzahl{font-size:11.5px;color:var(--soft);font-variant-numeric:tabular-nums;flex:none}
.b2-spalte-zu{flex-basis:154px;padding:0;background:transparent;border:1px solid var(--line)}
.b2-spalte-zu.leer{border-style:dashed}
.b2-spalte-zu>.b2-spaltenkopf{min-height:38px;padding:8px 10px}
.b2-spalte-zu:hover{border-color:var(--accent)}
.b2-nichts{margin:0;padding:2px;font-size:12px;color:var(--line2)}
.b2-abgesagt{background:var(--surface2);border-radius:6px;padding:8px 10px}
.b2-abgesagt summary{cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint);padding:3px 2px}
.b2-abgesagt summary span{font-variant-numeric:tabular-nums;font-weight:400;letter-spacing:0;
  text-transform:none;margin-left:5px}
.b2-abgesagt[open] summary{margin-bottom:8px}
.b2-abgesagt .v2-karte{opacity:.62}

/* Variable Kartenhöhe für aktuelle Voraussetzungen und Aufgaben. */
.v2-karten{display:flex;flex-direction:column;gap:6px}
.v2-karte{box-sizing:border-box;height:auto;min-height:106px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line2);
  border-radius:3px;padding:5px 8px 9px;cursor:pointer;display:block}
.training-phasenfortschritt{min-width:0;color:var(--soft);font-size:12px}
.training-phasenfortschritt>summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;cursor:pointer;list-style:none}
.training-phasenfortschritt>summary::-webkit-details-marker{display:none}
.training-phasenfortschritt>summary::after{content:'▾';color:var(--soft)}
.training-phasenfortschritt[open]>summary::after{content:'▴'}
.training-phasenfortschritt>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
.training-fortschritt-kreise{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.training-fortschritt-punkt{display:inline-block;flex:none;width:11px;height:11px;border:1.5px solid var(--soft);border-radius:50%;background:transparent}
.training-fortschritt-punkt.erledigt{background:var(--accent);border-color:var(--accent)}
.training-phasenfortschritt>ul{margin:10px 0 0;padding-left:18px;line-height:1.5;overflow-wrap:anywhere}
.training-phasenfortschritt li+li{margin-top:5px}
.training-phasenaufgaben,.training-andere-aufgaben{font-size:12px;line-height:1.5;margin-top:6px;overflow-wrap:anywhere}
.training-phasenaufgaben small{display:block;color:var(--soft);font-size:inherit}
.training-andere-aufgaben{color:var(--soft)}
.v2-statuszeile:empty{display:none}
.v2-statuszeile:has(.training-phasenfortschritt){display:block}
.training-prozessstand>.training-phasenfortschritt{flex-basis:100%;font-weight:400}
.training-prozessstand>.training-phasenaufgaben,.training-prozessstand>.training-andere-aufgaben{flex-basis:100%;margin:0}
.v2-karte:hover{border-color:var(--accent);border-left-color:var(--accent)}
.v2-karte:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* ---- Farblogik (Steven, 15.08.2026, Abschnitt 9) ----
   «Die komplette Kartenflaeche moeglichst neutral halten.» Die Flaeche
   ist immer weiss; nur der linke Streifen traegt Bedeutung:
     rot  = Blocker, ueberfaellig, dringend
     gelb = Aufmerksamkeit, Frist naht, Durchfuehrung unsicher
     gruen = bereit, vollstaendig, unkritisch
     grau = neutral, noch keine Bewertung
   Die frueheren Flaechenfarben nach Zugang (typ-oeffentlich/typ-firma)
   sind entfallen: Sie codierten eine ZWEITE Bedeutung ueber dieselbe
   Flaeche und beissen sich mit der Ampel. Der Zugang steht jetzt als
   Chip neben der Firma. */
.v2-karte.ton-rot{border-left-color:var(--err)}
.v2-karte.ton-warn{border-left-color:var(--warn)}
.v2-karte.ton-ok{border-left-color:var(--ok)}
.v2-karte.ton-neutral{border-left-color:var(--line2)}
/* Zeile 2: Produkt. */
.v2-kopf{margin-top:1px}
.v2-kopf b{font-size:12.5px;font-weight:600;line-height:1.25;
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Zeile 1: Firma mit Logo. Kursmodell und Form stehen als kleine Icons
   in der unteren Metazeile, damit hier nur die Identitaet fuehrt. */
.v2-wer{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--faint);min-width:0;white-space:nowrap}
.v2-firma{display:flex;align-items:center;gap:5px;flex:1 1 auto;min-width:0;overflow:hidden}
.v2-firmenname{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-oeffentlich{text-transform:none;letter-spacing:.03em}
/* Der phasenabhaengige Kern: je Zeile eine Aussage MIT Beschriftung.
   Nackte Zahlen am Kartenrand gibt es nicht mehr (Abschnitt 7). */
.v2-kern{margin-top:5px;font-size:11.5px;color:var(--soft);line-height:1.45}
.v2-kern>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Die EINE naechste Aktion (Abschnitt 6) - hervorgehoben, weil sie der
   Grund ist, warum diese Karte ueberhaupt angeschaut wird. */
.v2-aktion{margin-top:6px;padding-top:5px;border-top:1px solid var(--line);
  font-size:11.5px;font-weight:600;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-aktion .wann{font-weight:400;color:var(--faint);font-variant-numeric:tabular-nums}
.v2-aktionslabel{display:inline-block;margin-right:6px;font-size:8.5px;line-height:1.4;
  letter-spacing:.08em;text-transform:uppercase;color:var(--accent);vertical-align:1px}
.v2-aktion.freigabe{color:var(--accent)}
.v2-karte.ton-rot .v2-aktion,.v2-karte.ton-rot .v2-aktionslabel{color:var(--err)}
.v2-weitere{font-size:11px;color:var(--faint);margin-top:1px}
.v2-kern .v2-warn{color:var(--warn)}
.v2-kern .v2-rot{color:var(--err);font-weight:600}
.v2-kern .v2-belegungs-luecke{color:var(--warn);font-size:13px}
.v2-kern .v2-still{color:var(--faint)}
.v2-kern .v2-bereit{color:var(--ok);font-weight:600}
.v2-karte.fixieren-bereit{height:auto;min-height:140px;padding-bottom:0}
.v2-fixieren{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:calc(100% + 20px);
  min-height:48px;margin:7px -10px 0;padding:8px 11px;border:0;border-radius:0 0 3px 3px;
  background:var(--accent);color:#fff;text-align:left;cursor:pointer}
.v2-fixieren:hover{filter:brightness(.94)}
.v2-fixieren:focus-visible{outline:3px solid rgba(45,111,180,.28);outline-offset:2px}
.v2-fixieren:disabled{opacity:.6;cursor:wait}
.v2-fixieren span{font-size:8.5px;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;opacity:.82}
.v2-fixieren strong{font-size:12.5px;line-height:1.35}
/* Drei Zustaende statt zwei: offen ist neutral, nur UEBERFAELLIG ist rot.
   Erst damit sagt die Reihe, welcher Punkt brennt. */
.v2-punkte{display:flex;gap:3px;flex:none}
.v2-punkt{width:6px;height:6px;border-radius:50%;flex:none}
.v2-punkt.fertig{background:var(--ok)}
.v2-punkt.offen{background:var(--line2)}
.v2-punkt.spaet{background:var(--err)}
/* Zeile 4: alles Uebrige, mit Mittelpunkt getrennt. */
.v2-meta{display:flex;align-items:center;gap:7px;margin-top:5px;min-height:22px;font-size:11px;color:var(--faint);
  font-variant-numeric:tabular-nums}
.v2-meta>span{flex:none}
.v2-zeit{margin-right:auto;color:var(--soft);font-weight:600}
.v2-trainer-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:50%;background-color:#dbe8f4;border:1px solid #b9cde0;color:#285779;font-size:8px;
  font-weight:750;letter-spacing:.02em;line-height:1;overflow:hidden}
.v2-trainer-initialen{position:relative;z-index:0}
.v2-trainer-foto{position:absolute;z-index:1;inset:-1px;border-radius:50%;
  background-image:url('assets/demo-team-avatars-v1.png');background-size:200% 200%;
  background-position:var(--avatar-x,0%) var(--avatar-y,0%);background-repeat:no-repeat}
.v2-trainer-avatar.fehlt{background:transparent;border:1px solid var(--line2);color:var(--faint)}
.v2-trainer-avatar.fehlt svg,.tk-trainer-avatar.fehlt svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round}
.v2-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;
  color:var(--soft)}
.v2-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.25;
  stroke-linecap:round;stroke-linejoin:round}
.v2-icon.offen{border:1px dashed var(--warn);border-radius:50%;color:var(--warn);font-size:10px}
.v2-modell-icon{color:var(--accent)}
.v2-statuszeile{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}
.v2-status{font-size:10.5px;color:var(--soft)}
.v2-status.heute{color:var(--err);font-weight:650}
.v2-status.ok{color:var(--ok)}
.v2-meta .v2-ohne{color:var(--warn)}

/* ---- Firmenlogo (os-kern.js: firmenLogo) ----
   Feste Groesse, damit die Zeile nicht verrutscht, wenn eine Firma kein
   Logo hat. Ohne Logo stehen die Initialen im Kaestchen. */
.os-logo{width:14px;height:14px;flex:none;margin-right:5px;border-radius:2px;
  object-fit:contain;vertical-align:-2px}
/* ---- Sprache als Flagge (os-kern.js: sprachFlagge) ----
   Steven, 15.08.2026. Feste Groesse und line-height:1 sind hier keine
   Kosmetik: Emoji bringen je nach Schrift eigene Metriken mit und
   wuerden die Zeile hoeher machen als ihre Nachbarn - auf der
   Deal-Karte, die auf den Pixel festgelegt ist, verschoebe das die
   ganze Karte. Deshalb bekommt die Flagge einen eigenen Kasten mit
   fester Hoehe, aus dem sie nicht herausragen kann. */
.os-flagge{display:inline-block;width:1.05em;height:1em;line-height:1;
  font-size:1.08em;text-align:center;vertical-align:-1px;overflow:hidden;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  cursor:default}
.os-logo-leer{display:inline-flex;align-items:center;justify-content:center;
  background:var(--surface2);border:1px solid var(--line2);color:var(--faint);
  font-size:7.5px;font-weight:700;letter-spacing:0;text-transform:none}
.v2-firma .os-logo{width:18px;height:18px;margin-right:2px}
.v2-kundenlogo{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  flex:none;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--faint)}
.v2-kundenlogo svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2;
  stroke-linecap:round;stroke-linejoin:round}
.v2-kundenlogo.oeffentlich{border-radius:50%;font-size:18px;color:var(--accent)}

/* Auf schmalen Bildschirmen bleiben die Spalten breit und das Board
   scrollt (Steven, 15.08.2026, Abschnitt 13): «Nicht die Karten immer
   schmaler machen, bis Inhalte unlesbar werden.»
   Die alte Regel liess sie auf 200px schrumpfen - und weil der
   Flex-Behaelter seit dem Umbau nicht mehr umbricht, wurden daraus bei
   acht Spalten 25 Pixel. Nur nachgemessen zu sehen, nicht zu lesen. */
@media(max-width:900px){
  .b2-spalte{flex:0 0 280px}
  .os-spalte[data-stufe="pipeline"]{flex-basis:336px}
  .os-spalte.eingeklappt{flex-basis:168px}
}

/* ---- Trainerportal: Einsatzkarten und kompakte Detailansicht ----
   Die frühere Tabelle war eine Verwaltungsansicht: Training, Rolle,
   Firma, Beginn, Honorar - Spalten für jemanden, der Einsätze plant,
   nicht für jemanden, der sie hält. Im Trainerportal steht deshalb die
   Durchführungsfrage im Vordergrund: Commissioned, Safe oder gefährdet.
   Vollständigkeit von Uhrzeit, Ort und Zugang bleibt davon getrennt.

   Karten statt Zeilen, weil die vier Angaben unterschiedlich lang sind
   und in einer Tabelle entweder abgeschnitten oder zerrissen würden. */
.te-block{display:block;margin-bottom:22px}
.te-block h3{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);margin:0 0 8px;display:flex;align-items:baseline;gap:7px}
.te-block h3 span{font-variant-numeric:tabular-nums;color:var(--line2);font-weight:400}
/* «Braucht deine Aufmerksamkeit» hebt sich ab, ohne zu schreien -
   Abschnitt 7: «Keine aggressiven roten Warnflächen.» */
.te-achtung h3{color:var(--warn)}
.te-kandidat h3{color:var(--soft)}
.te-karte{display:block;width:100%;text-align:left;background:var(--surface);
  border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:3px;
  box-sizing:border-box;padding:9px 10px;height:auto;min-height:106px;overflow:visible;margin-bottom:0;cursor:pointer}
.tp-einsatzreihe{display:flex;gap:8px;overflow-x:scroll;scrollbar-gutter:stable;scroll-snap-type:x proximity;padding:1px 1px 12px}
.tp-einsatzreihe>.te-karte{flex:0 0 292px;scroll-snap-align:start}
.tp-einsatzraster{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.te-kalender.tp-kalender-oben{margin:0 0 24px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.tp-kalender-oben .os-agenda{margin-top:0;border-top:0;padding-top:0}
.tp-honorar-tabelle tr[data-honorar-event]{cursor:pointer}
.tp-honorar-tabelle tr[data-honorar-event]:hover td{background:var(--surface2)}
.te-karte:hover{border-color:var(--accent);background:var(--surface2)}
.te-karte:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.te-karte.te-commissioned{border-left-color:var(--accent)}
.te-karte.te-safe{border-left-color:var(--ok)}
.te-karte.te-gefaehrdet,.te-karte.te-kandidat{border-left-color:var(--warn)}
.te-karte.te-offen,.te-karte.te-anfrage{border-left-color:var(--warn)}
.te-karte.te-abgesagt{border-left-color:var(--err);opacity:.72}
.te-status.commissioned{color:var(--accent);background:#E8F1FA;border-color:#B9D1EA}
.te-achtung{padding:12px;border:1px solid var(--warn);border-radius:4px;background:var(--warnbg)}
.te-z1{display:flex;align-items:center;gap:7px;min-width:0}
.te-z1 b{font-size:13.5px;font-weight:600;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-kunde{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.tp-kunde .os-logo{flex:none;margin:0}
.tp-kundenlogo{width:20px;height:20px;border:1px solid var(--line);border-radius:3px;display:inline-grid;place-items:center;flex:none}
.te-status{margin-left:auto;flex:none}
.te-z2{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--soft);margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.te-z3{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:12.5px;color:var(--ink);margin-top:5px;font-variant-numeric:tabular-nums}
.tp-formicon{display:inline-flex;width:17px;height:17px;align-items:center;justify-content:center;color:var(--soft)}
.tp-formicon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.2}.tp-formicon.offen{font-weight:700}
.tp-trenner{color:var(--line2)}
.te-z4{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;
  color:var(--faint);font-size:11.5px}
.te-kalenderexport{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-5px 0 18px}
.te-kalenderexport>span{font-size:12px;color:var(--faint)}
.te-antwort{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.te-intern{margin-top:9px;padding-top:7px;border-top:1px solid var(--line);font-size:11.5px;color:var(--soft)}
.te-intern summary{cursor:pointer;color:var(--accent)}.te-intern p{margin:7px 0 0}
.te-datenhinweis{font-size:11.5px;color:var(--warn)}
.tp-filter-label{margin-left:12px;color:var(--faint);font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase}
.tp-status-kacheln .tp-commissioned{border-left-color:var(--accent)}
/* Was fehlt, steht da - nicht als Lücke, die wie gepflegt aussieht. */
.te-fehlt{color:var(--warn);font-style:italic;font-variant-numeric:normal}

/* Der Trainer-Drawer zeigt nur Informationen, mit denen er das Training
   halten kann. Planung, Verkauf, Honorar und interne Aufgaben bleiben in
   der Trainingsverwaltung. */
.tp-panel .os-panel-inhalt{max-width:760px}
.tp-detail{display:grid;gap:12px}
.tp-statuskarte{padding:13px 14px;border:1px solid var(--line);border-left:4px solid var(--line2);
  border-radius:4px;background:var(--surface2)}
.tp-statuskarte.commissioned{border-left-color:var(--accent)}
.tp-statuskarte.safe{border-left-color:var(--ok)}
.tp-statuskarte.gefaehrdet,.tp-statuskarte.kandidat{border-left-color:var(--warn)}
.tp-statuskarte.abgesagt{border-left-color:var(--err)}
.tp-statuskarte p{margin:7px 0 0;color:var(--soft);font-size:12.5px}
.tp-detail-block{padding:14px 16px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.tp-detail-block h3{margin:0 0 10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.tp-dl{margin:0}
.tp-dl dd{min-width:0;overflow-wrap:anywhere}
.tp-quelle{display:block;margin-top:3px;color:var(--faint);font-size:11px;line-height:1.4}
.tp-module{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid var(--line)}
.tp-module li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}
.tp-module li span{color:var(--soft);font-size:12.5px;text-align:right}
.tv-einstieg,.tp-zertifikat-bruecke{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:13px 14px;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface2)}
.tp-zertifikat-bruecke{margin-top:9px;border-left-color:var(--line2)}
.tv-einstieg-text,.tp-zertifikat-bruecke>div{display:flex;flex-direction:column;gap:2px}
.tv-einstieg span,.tp-zertifikat-bruecke span{font-size:12.5px;color:var(--soft)}
.tv-einstieg small,.tp-zertifikat-bruecke small{font-size:11.5px;color:var(--faint)}
.tv-dialog{width:min(980px,calc(100% - 36px));max-width:none;padding:0;border:0;border-radius:5px;
  color:var(--ink);background:var(--surface);box-shadow:0 22px 70px rgba(12,31,45,.28)}
.tv-dialog::backdrop{background:rgba(12,31,45,.55)}
.tv-dialog-inhalt{max-height:min(850px,calc(100vh - 36px));display:flex;flex-direction:column}
.tv-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  padding:17px 20px;border-bottom:1px solid var(--line)}
.tv-dialog h2{margin:0;font-size:19px}.tv-dialog header p{margin:3px 0 0;color:var(--soft)}
.tv-x{border:0;background:transparent;color:var(--soft);font-size:28px;line-height:1;cursor:pointer;padding:0 4px}
.tv-body{padding:18px 20px;overflow:auto;min-height:300px}
.tv-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;
  padding:12px 20px;border-top:1px solid var(--line);background:var(--surface2)}
.tv-footer-stand{margin-right:auto;color:var(--soft);font-size:12.5px}
.tv-hinweis{padding:10px 12px;margin-bottom:14px;border:1px solid var(--line);border-left:4px solid var(--accent);
  background:var(--surface2);font-size:13px}.tv-hinweis.warn{border-left-color:var(--warn);background:var(--warnbg)}
.tv-abschnitt{margin-top:18px}.tv-abschnitt-kopf{display:flex;align-items:center;justify-content:space-between;
  gap:12px;margin-bottom:8px}.tv-abschnitt-kopf>div{display:flex;align-items:center;gap:8px}
.tv-abschnitt h3,.tv-pruefung h3{margin:0;font-size:16px}.tv-schritt{display:inline-flex;align-items:center;
  justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;
  font-size:11px;font-weight:700}.tv-materialien,.tv-empfaengerliste{border:1px solid var(--line);background:var(--surface)}
.tv-material,.tv-empfaenger{display:grid;grid-template-columns:24px 42px minmax(0,1fr) auto;gap:11px;
  align-items:center;padding:10px 12px;border-top:1px solid var(--line);cursor:pointer}
.tv-empfaenger[hidden]{display:none}
.tv-material:first-child,.tv-empfaenger:first-child{border-top:0}.tv-material:hover,.tv-empfaenger:hover{background:#F7FAFC}
.tv-material.offen,.tv-empfaenger.gesperrt{cursor:default;background:#FAFBFC}
.tv-material input,.tv-empfaenger input{width:17px;height:17px;accent-color:var(--accent)}
.tv-material>span:nth-of-type(2),.tv-empfaenger>span:first-of-type{display:flex;flex-direction:column;min-width:0}
.tv-material small,.tv-empfaenger small{font-size:11.5px;color:var(--soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-datei-icon{display:flex;align-items:center;justify-content:center;width:36px;height:28px;border-radius:3px;
  background:var(--surface2);color:var(--faint);font-size:9px;font-weight:800}
.tv-empfaenger{grid-template-columns:24px minmax(0,1fr) auto}.tv-upload{display:flex;align-items:center;gap:10px;
  margin-top:8px;padding:11px 12px;border:1px dashed var(--line2);cursor:pointer;background:var(--surface2)}
.tv-empfaenger-werkzeuge{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tv-empfaenger-werkzeuge>small{min-width:62px;color:var(--soft);font-size:11.5px;text-align:right}
.tv-suche input,.tv-testversand input{min-height:34px;border:1px solid var(--line2);border-radius:3px;
  padding:6px 9px;background:var(--surface);color:var(--ink);font:inherit}
.tv-suche input{width:min(250px,42vw)}.tv-suche input:focus,.tv-testversand input:focus{outline:2px solid rgba(31,105,170,.18);border-color:var(--accent)}
.tv-testversand{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,320px) auto;gap:10px;
  align-items:center;margin-top:9px;padding:10px 12px;border:1px dashed var(--line2);background:var(--surface2)}
.tv-testversand>div{display:flex;flex-direction:column}.tv-testversand small{color:var(--soft);font-size:11.5px}
.tv-upload input{position:absolute;opacity:0;pointer-events:none}.tv-upload span{display:flex;flex-direction:column}
.tv-upload b{color:var(--accent)}.tv-upload small{color:var(--soft)}
.tv-lokale-dateien{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.tv-lokale-dateien>span{display:inline-flex;
  align-items:center;gap:6px;padding:5px 8px;background:var(--surface2);border:1px solid var(--line);font-size:12px}
.tv-lokale-dateien button{border:0;background:transparent;color:var(--soft);cursor:pointer;padding:0;font-size:16px}
.tv-pruefung>.tv-schritt{margin-bottom:8px}.tv-pruef-spalten{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.tv-pruef-spalten section{padding:13px 15px;border:1px solid var(--line);background:var(--surface2)}
.tv-pruef-spalten h4{margin:0 0 8px}.tv-pruef-spalten ul{margin:0;padding-left:18px}.tv-pruef-spalten li{margin:4px 0}
.tv-pruef-spalten li small{display:block;color:var(--soft)}
@media(max-width:640px){
  .tp-filter-label{width:100%;margin:7px 0 0}
  .tp-module li{align-items:flex-start;flex-direction:column;gap:3px}
  .tp-module li span{text-align:left}
  .tv-einstieg,.tp-zertifikat-bruecke{align-items:flex-start;flex-direction:column}
  .tv-einstieg .os-btn,.tp-zertifikat-bruecke .os-btn{width:100%}
  .tv-dialog{width:100%;height:100%;max-height:none;border-radius:0}.tv-dialog-inhalt{height:100%;max-height:100vh}
  .tv-body{padding:14px}.tv-pruef-spalten{grid-template-columns:1fr}.tv-footer-stand{width:100%;order:-1}
  .tv-dialog footer .os-btn{flex:1}.tv-material{grid-template-columns:24px 36px minmax(0,1fr)}
  .tv-material>.os-chip{grid-column:3}.tv-abschnitt-kopf{align-items:flex-start;flex-direction:column}
  .tv-empfaenger-werkzeuge{width:100%;justify-content:flex-start}.tv-suche{flex:1}.tv-suche input{width:100%}
  .tv-testversand{grid-template-columns:1fr}.tv-testversand input,.tv-testversand .os-fbtn{width:100%}
}
/* Der Kalender ist zugeklappt und tritt zurück (Abschnitt 13). */
.te-kalender{margin-top:8px;border-top:1px solid var(--line);padding-top:10px}
.te-kalender summary{cursor:pointer;font-size:12.5px;color:var(--accent);padding:2px}
.te-kalender[open] summary{margin-bottom:10px}
@media(max-width:760px){.te-block{grid-template-columns:1fr}.te-karte{min-height:0}}

/* Annahme-Assistent: zwei belegbare Wege, Positionen und die direkt daraus
   entstehenden Trainings bleiben in einer kompakten Arbeitsfläche. */
.os-annahme-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.os-annahme-grid>.breit{grid-column:1/-1}
.os-datei-drop{display:flex;align-items:center;justify-content:center;min-height:74px;padding:12px;
  border:1px dashed var(--line2);border-radius:4px;background:var(--surface2);color:var(--soft);cursor:pointer;text-align:center}
.os-datei-drop:hover,.os-datei-drop:focus-visible,.os-datei-drop.zieht{outline:0;border-color:var(--accent);background:#f2f7fc;color:var(--accent)}
.os-datei-drop.hat-datei{border-style:solid;border-color:var(--ok);background:var(--okbg);color:var(--ok)}
.os-annahme-positionen{margin-top:15px}.os-annahme-position-wrap{border:1px solid var(--line);border-radius:4px;margin-top:8px;background:var(--surface)}
.os-annahme-position{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;cursor:pointer}
.os-annahme-position>span{display:flex;flex-direction:column;gap:2px;min-width:0}.os-annahme-position small{color:var(--soft)}
.os-annahme-training-optionen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;padding:10px 11px;border-top:1px solid var(--line);background:var(--surface2)}
.os-annahme-training-optionen label{display:grid;gap:4px;color:var(--soft);font-size:11.5px}.os-annahme-training-optionen .breit{grid-column:1/-1}
.os-annahme-training-optionen input,.os-annahme-training-optionen select{min-width:0;width:100%;box-sizing:border-box}
.os-formfehler{padding:9px 11px;border-left:3px solid var(--err);background:var(--errbg);color:var(--err);font-size:12.5px}
.os-annahme-ergebnis{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.os-annahme-ergebnis>div{display:flex;gap:3px;flex-direction:column}.os-annahme-ergebnis>div:last-child{flex-direction:row}.os-annahme-ergebnis small{color:var(--soft)}

/* Produktvorgaben in den internen Personen und persönliche Honorarübersicht. */
.os-produkt-honorare{display:grid;gap:6px;margin-bottom:16px}.os-produkt-honorar{display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(140px,.55fr) 110px;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);background:var(--surface2)}
.os-produkt-honorar>span{display:flex;min-width:0;flex-direction:column}.os-produkt-honorar small{color:var(--faint)}
.os-produkt-honorar select,.os-produkt-honorar input{min-width:0;width:100%;box-sizing:border-box}.os-produkt-honorar input:disabled{opacity:.45}
.tp-honorar-kacheln{margin:0 0 12px}.tp-honorar-zahl{font-size:18px!important}.tp-honorar-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tp-honorar-karte{margin:0}.tp-honorar-karte .te-z4{justify-content:flex-end;font-size:15px}
@media(max-width:760px){.os-annahme-grid,.os-annahme-training-optionen,.tp-honorar-liste{grid-template-columns:1fr}.os-annahme-grid>.breit,.os-annahme-training-optionen .breit{grid-column:auto}.os-annahme-ergebnis{align-items:flex-start;flex-direction:column}.os-produkt-honorar{grid-template-columns:1fr}.os-annahme-ergebnis>div:last-child{flex-wrap:wrap}}

/* Das Kalender-Abo: eingerichtet wird es einmal, danach interessiert es
   niemanden mehr — deshalb zugeklappt und im selben leisen Ton wie der
   Kalender darüber. */
.te-abo{margin-top:6px;border-top:1px solid var(--line);padding-top:10px}
.te-abo summary{cursor:pointer;font-size:12.5px;color:var(--accent);padding:2px}
.te-abo .inhalt{padding:8px 2px 2px;max-width:640px}
.te-abo p{margin:0 0 10px;font-size:13px;line-height:1.6}
.te-abo .klein{font-size:12px;line-height:1.55}
.te-abo .adresse{display:flex;gap:8px;margin:0 0 12px}
.te-abo .adresse input{flex:1;min-width:0;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
  padding:7px 9px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--text)}
.te-abo .anleitung{margin:0 0 12px;padding-left:20px;font-size:12.5px;line-height:1.75}
.te-abo .anleitung i{color:var(--muted);font-style:normal;font-weight:600}
.os-link{background:none;border:0;padding:0;font:inherit;color:var(--accent);
  cursor:pointer;text-decoration:underline;text-underline-offset:2px}

/* ============================================================
   PRODUKT-DRAWER, Ansichtsmodus (os-katalog.js)

   Seit dem 15.08.2026 öffnet ein Produkt als lesbare Karte statt als
   Formular. Die Variantentabelle ist Stevens Variante B: alle Varianten
   auf einen Blick, Spalten untereinander vergleichbar.
   ============================================================ */
.pk-kopf{display:flex;align-items:flex-start;gap:12px;padding-bottom:12px;
  border-bottom:1px solid var(--line);margin-bottom:14px}
.pk-lage{margin:0;font-size:12.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1}
.pk-kopf .os-btn{flex:none}
.pk-abschnitt{margin-bottom:18px}
.pk-abschnitt h4{margin:0 0 9px;font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint)}
.pk-text{margin:0 0 8px;font-size:13.5px;line-height:1.65}
.pk-fuss{margin:9px 0 0;font-size:12px;line-height:1.55;color:var(--soft)}
.pk-dl{margin:0;font-size:13px}
.pk-dl > div{display:flex;gap:12px;padding:4px 0;border-bottom:1px solid var(--line)}
.pk-dl dt{color:var(--faint);min-width:170px;flex:none}
.pk-dl dd{margin:0}

.pk-vt{width:100%;border-collapse:collapse;font-size:12.5px}
.pk-vt th{text-align:left;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint);font-weight:600;padding:0 10px 6px 0;border-bottom:1px solid var(--line)}
.pk-vt td{padding:9px 10px 9px 0;border-bottom:1px solid var(--line);vertical-align:top}
.pk-vt td:last-child,.pk-vt th:last-child{padding-right:0}
/* Preise nie umbrechen — «CHF 13'000 / fix» über drei Zeilen war der
   Grund, warum die erste Fassung der Tabelle unruhig wirkte. */
.pk-preis{white-space:nowrap}
/* Das Fragezeichen ist ein Hinweiszeichen, kein Teil des Preises. Ohne
   Abstand las sich «CHF 800 / TN?» wie ein unsicherer Betrag. */
.pk-preis .warum{cursor:help;color:var(--warn);font-weight:700;margin-left:5px}

/* ============================================================
   AKQUISE-FOKUSLISTE (os-akquise.js)
   Von der Umbau-Sitzung am 15.08.2026 geliefert. Alle Klassen mit
   dem Praefix .akq- - so kann sich nichts mit anderen Ansichten
   beissen.
   ============================================================ */
/* ---------- Akquise (os-akquise.js) ----------
   Alles mit dem Praefix .akq-. Beschreibt nur, was es noch nicht gibt;
   Tabelle, Chips, Knoepfe und Leisten kommen aus den os-Bausteinen. */

/* Trennt in einer Leiste die Aktionen von den Filtern, ohne eine
   zweite Zeile zu erzwingen. */
.akq-luecke{flex:1 1 14px;min-width:14px}
.akq-hauptaktionen{margin-bottom:8px}
.akq-filterleiste{margin-bottom:10px}
.akq-filterleiste input[type=search]{flex:1 1 260px;max-width:420px}
.akq-mehrfilter{margin-left:auto}
.akq-wiedervorlage{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}
.akq-wiedervorlage small{display:inline;font-size:11px;flex:none}
.akq-schritt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.akq-pruefdatum-fehlt{width:max-content}
.akq-owner-spalte{text-align:center;width:74px;max-width:74px}
.akq-ownerzelle{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.akq-owner{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border:1px solid var(--line2);border-radius:50%;background-color:var(--surface2);color:var(--soft);
  font-size:9px;font-weight:750;letter-spacing:.03em}
.akq-owner.leer{color:var(--faint)}
.akq-statushinweis{display:block}
.akq-statushinweis .os-chip{font-size:9px}

/* «Warum jetzt» ist ein Satz, keine Spalte fuer Absaetze: zwei Zeilen,
   danach abgeschnitten. Der ganze Text steht im Seitenfenster — sonst
   verschiebt ein einziger langer Eintrag die ganze Tabelle. */
.akq-firma-spalte{width:21%}.akq-warum-spalte{width:27%}.akq-schritt-spalte{width:31%}
.akq-aktivitaet-spalte{width:14%;white-space:nowrap}
.akq-warum{display:flex;align-items:flex-start;gap:4px;max-width:38ch;color:var(--soft);min-width:0}
.akq-warum>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.akq-warum>button{appearance:none;border:0;background:transparent;color:var(--faint);padding:0 2px;
  cursor:pointer;line-height:1.2;flex:none}.akq-warum.offen>span{white-space:normal;max-height:240px;overflow:auto}
.akq-warum.offen{max-width:none}

/* Ueberfaellig: klar, aber nicht schreiend — die Zeile steht ohnehin oben. */
.akq-spaet{color:var(--err);font-weight:600}
.akq-spaet small{font-weight:600}

/* Mein Sales nutzt dieselbe kompakte Informationshierarchie wie die
   Deal-Karten: Kunde und Wert, Vorhaben, zwei Kerndaten, ruhiger Fuss. */
.ms-bereich{margin-top:14px}.ms-bereich h2{display:flex;gap:7px;align-items:baseline}
.ms-bereich h2 small{color:var(--faint);font-weight:400}.ms-karten{display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.ms-karte{height:106px;box-sizing:border-box;overflow:hidden;border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:3px;background:var(--surface);padding:8px 9px;cursor:pointer}
.ms-karte:hover{border-color:var(--accent);background:var(--surface2)}.ms-karte:focus-visible{outline:2px solid var(--accent)}
.ms-z1,.ms-z3,.ms-z4{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.ms-z1 strong,.ms-z4 b{font-variant-numeric:tabular-nums;white-space:nowrap}.ms-kunde{display:flex;align-items:center;gap:6px;min-width:0}
.ms-kunde b,.ms-z2,.ms-z3 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-z2{font-size:12.5px;font-weight:650;margin-top:2px}.ms-z3{font-size:11.5px;color:var(--soft);margin-top:3px}
.ms-z4{font-size:10.5px;color:var(--faint);border-top:1px solid var(--line);margin-top:5px;padding-top:4px}
.ms-z4>span{white-space:nowrap}
.ms-total{display:flex;justify-content:flex-end;align-items:center;gap:24px;flex-wrap:wrap;padding:12px 10px;border-top:2px solid var(--ink);font-size:12.5px}
.ms-total>span:first-child{margin-right:auto}.ms-total b{margin-left:6px;font-size:14px}

/* ----- Auswahlbereich «Firma ins Visier nehmen» (Variante B) -----
   Stevens Vorgabe vom 15.08.2026, Abschnitt 7: "nicht einfach immer
   mehr Dropdowns in eine einzige Zeile quetschen."

   Drei Gruppen. Die erste (Firma) steht offen und ohne Rahmen - sie ist
   der Normalfall und beantwortet die haeufigste Frage. Vorgeschichte
   und Kontaktnetzwerk sind zugeklappt, nennen aber in der Kopfzeile,
   WAS in ihnen gesetzt ist: Ein zugeklappter Filter, der greift, ist
   sonst der klassische Fehler dieses Musters - man sucht den Grund fuer
   eine kurze Liste und findet ihn nicht.

   Die Felder umbrechen (flex-wrap) statt zu schrumpfen: lieber eine
   zweite Zeile als abgeschnittene Beschriftungen. */
.akq-felder{display:flex;flex-wrap:wrap;gap:8px 10px}
.akq-feld{display:flex;flex-direction:column;gap:3px;min-width:0;flex:0 1 auto}
.akq-feld>span{font-size:10px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint);font-weight:700}
.akq-feld select,.akq-feld input{padding:5px 7px;font:inherit;font-size:12.5px;
  border:1px solid var(--line2);border-radius:2px;background:var(--surface);
  color:var(--ink);min-width:136px;max-width:100%}
.akq-feld.weit input{min-width:208px;flex:1}
.akq-feld select:focus,.akq-feld input:focus{border-color:var(--accent);outline:none}

.akq-auswahl-kopf{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding-bottom:12px;
  border-bottom:1px solid var(--line)}
.akq-auswahl-kopf .os-mute{font-size:12.5px}
.akq-auswahl-anzahl{margin-right:auto;color:var(--soft);font-size:12.5px}

.akq-gruppe{border:1px solid var(--line);border-radius:3px;margin-bottom:8px;
  background:var(--surface)}
.akq-gruppe.offen{border:0;margin-bottom:10px}
.akq-gruppe>summary{cursor:pointer;list-style:none;padding:7px 11px;font-size:12px;
  display:flex;align-items:center;gap:9px}
.akq-gruppe>summary::-webkit-details-marker{display:none}
.akq-gruppe>summary::before{content:"\25B8";color:var(--faint);display:inline-block;
  transition:transform .12s}
.akq-gruppe[open]>summary::before{transform:rotate(90deg)}
.akq-gruppe>summary b{font-size:10px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint);flex:0 0 auto}
.akq-gruppe-inhalt{padding:0 11px 11px}

/* Was noch nicht filterbar ist, und warum. Keine Sackgassen-Warnung:
   Die Zeile nennt die Handlung, die sie aufloest. */
.akq-fehlt{margin:8px 0 0;color:var(--faint);line-height:1.5}
.akq-fehlt b{color:var(--soft);font-weight:600}

/* Die gesetzten Filter als Chips (Abschnitt 8). Sie beantworten die
   Frage, die nach dem dritten Filter aufkommt: warum steht diese Firma
   hier? */
.akq-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.akq-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;
  padding:3px 5px 3px 9px;border-radius:12px;border:1px solid var(--accent);
  color:var(--accent);background:var(--surface)}
.akq-chip b{font-weight:650}
.akq-chip button{border:0;background:0;color:inherit;cursor:pointer;font-size:14px;
  line-height:1;padding:0 3px}
.akq-chip button:hover{color:var(--err)}

/* ----- Terminplan-Vorschau (os-trainings.js) -----
   Erst sehen, dann speichern. Jede Zeile sagt, was mit ihr geschieht -
   neu, geaendert, unveraendert oder nicht verstanden. Nicht Verstandenes
   wird NICHT gespeichert und steht rot da, statt still zu verschwinden. */
.plan-vorschau{list-style:none;margin:6px 0 0;padding:0;max-height:320px;overflow-y:auto}
.plan-vorschau li{padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.plan-vorschau li:last-child{border-bottom:0}
.plan-vorschau li>span{display:inline-block;min-width:82px;font-size:10px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase}
.plan-neu>span{color:var(--ok)}
.plan-gleich{color:var(--faint)}
.plan-gleich>span{color:var(--faint)}
.plan-fehler{color:var(--err)}
.os-modul-tun{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}

/* «Später» im Aufgabenbereich: zugeklappt, mit dem naechsten Termin in
   der Zeile. Diese Aufgaben sind geplant, nicht vergessen - und sie
   duerfen nicht neben den aktuellen stehen, als waeren sie jetzt dran
   (Briefing Abschnitt 8 und 10). */
.os-aufgaben-spaeter{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.os-aufgaben-spaeter>summary{cursor:pointer;font-size:12px;color:var(--soft);list-style:none}
.os-aufgaben-spaeter>summary::-webkit-details-marker{display:none}
.os-aufgaben-spaeter>summary::before{content:"▸ ";color:var(--faint)}
.os-aufgaben-spaeter[open]>summary::before{content:"▾ ";}
.os-aufgaben-spaeter>summary b{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint)}

/* ----- Phasenblock: Aufgaben und Rueckstand (os-trainings.js) -----
   Die Aufgaben der aktuellen Phase stehen UNTER den Voraussetzungen und
   getrennt von ihnen: Eine Voraussetzung ist eine strukturierte Angabe,
   eine Aufgabe ist menschliche Arbeit (Briefing Abschnitt 12). Beide in
   einer Zahl zu zaehlen war der Fehler hinter «15 von 19 Aufgaben». */
.os-klar-aufgaben{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.os-klar-aufgaben>b{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint)}
.os-klar-aufgaben .os-klar-liste{margin-top:5px}
/* Folgearbeit ist bewusst sichtbar, aber keine Voraussetzung. Die blaue,
   ruhige Flaeche verhindert, dass sie mit den warm markierten Phasen-Gates
   verwechselt wird. Standardmaessig reicht ihre Anzahl; die Einzelpunkte
   erscheinen erst auf Klick. */
.os-klar-aufgaben.folge{padding:9px 10px;margin-top:12px;border:1px solid #cfe0f2;
  border-left:3px solid var(--accent);border-radius:3px;background:#f4f8fc}
.os-klar-aufgaben>summary{cursor:pointer;list-style:none;color:var(--accent);font-size:12.5px;
  font-weight:650;display:flex;align-items:center;gap:7px}
.os-klar-aufgaben>summary::-webkit-details-marker{display:none}
.os-klar-aufgaben>summary::before{content:"";width:0;height:0;border-left:4px solid currentColor;
  border-top:3.5px solid transparent;border-bottom:3.5px solid transparent;transition:transform .15s}
.os-klar-aufgaben[open]>summary::before{transform:rotate(90deg)}
.os-klar-aufgaben-inhalt{padding-top:5px}
.os-klar-aufgaben-hinweis{display:block;margin-top:3px;font-size:12px;color:var(--soft)}
.os-klar-weitere-faellige{margin-top:9px;padding-top:8px;border-top:1px solid var(--line)}
.os-klar-weitere-faellige>summary{cursor:pointer;color:var(--err);font-size:12.5px;font-weight:650}
/* Nicht beurteilbar ist weder gut noch offen - eigene, leise Farbe. */
.os-klar-liste li.unklar .zeichen{color:var(--faint)}
.os-klar-rueckstand{margin:9px 0 0;font-size:12px;color:var(--warn)}
.os-klaerung.fertig{border-left-color:var(--ok)}

/* ----- Trainingsarchiv (os-trainingsarchiv.js) -----
   Vergangene Trainings sind Nachweise. Die ruhige Gestaltung und der
   sichtbare Nur-lesen-Hinweis trennen sie von der operativen Eventseite. */
.ta-schutz{display:flex;align-items:center;gap:10px;max-width:1120px;margin:0 0 14px;
  padding:10px 12px;border:1px solid #c9d9e8;border-left:3px solid var(--accent);
  border-radius:4px;background:#f4f8fc;color:var(--soft);font-size:12.5px}
.ta-schutz b{color:var(--accent);white-space:nowrap}.ta-schutz span{line-height:1.4}
.ta-kennzahlen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1120px;
  margin:0 0 14px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}
.ta-kennzahlen>div{display:grid;gap:2px;padding:11px 13px;border-right:1px solid var(--line)}
.ta-kennzahlen>div:last-child{border-right:0}.ta-kennzahlen b{font-size:20px;font-variant-numeric:tabular-nums}
.ta-kennzahlen span{color:var(--soft);font-size:11.5px;line-height:1.3}
.ta-filterleiste label{display:flex;align-items:center;gap:5px;color:var(--soft);font-size:11.5px}
.ta-filterleiste select{max-width:230px;padding:6px 25px 6px 8px;border:1px solid var(--line2);
  border-radius:2px;background:var(--surface);color:var(--ink)}
.ta-detailhinweis{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;
  padding:9px 11px;border-left:3px solid var(--accent);background:#f4f8fc;font-size:12px}
.ta-detailhinweis span:not(.os-chip){color:var(--soft)}.ta-detailhinweis .os-chip{margin-left:auto}
.ta-fakten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px;
  border:1px solid var(--line);border-radius:4px}
.ta-fakten>div{display:grid;gap:3px;padding:11px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.ta-fakten>div:nth-child(2n){border-right:0}.ta-fakten>div:nth-last-child(-n+2){border-bottom:0}
.ta-fakten span{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.ta-fakten b{font-size:12.5px}.ta-teilnehmerkopf{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.ta-teilnehmerkopf h3{margin:0;font-size:15px}.ta-teilnehmerkopf span{color:var(--soft);font-size:11.5px}
.ta-teilnehmerliste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  padding:1px;border-radius:4px;background:var(--line)}
.ta-teilnehmerliste>div{display:grid;gap:2px;padding:9px 11px;background:var(--surface)}
.ta-teilnehmerliste small{color:var(--faint)}
.ta-quelle{margin-top:14px;padding-top:10px;border-top:1px solid var(--line);color:var(--soft);font-size:12px}
.ta-quelle summary{cursor:pointer;font-weight:650}.ta-quelle p{margin:7px 0 0;overflow-wrap:anywhere}
@media(max-width:760px){.ta-kennzahlen{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ta-kennzahlen>div:nth-child(2){border-right:0}.ta-kennzahlen>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .ta-filterleiste label{width:100%;justify-content:space-between}.ta-filterleiste select{flex:1;max-width:none}
  .ta-fakten,.ta-teilnehmerliste{grid-template-columns:1fr}.ta-fakten>div{border-right:0}
  .ta-fakten>div:nth-last-child(2){border-bottom:1px solid var(--line)}}

/* ----- Kontrollindikator (os-trainingsverwaltung.js) -----
   Eine Aussage statt sechs Kacheln. Der Rand traegt die Farbe, nicht
   die Flaeche: Ein farbig gefuellter Kasten quer ueber den Kopf
   schreit, auch wenn nur ein Training Aufmerksamkeit braucht. */
.tv-kontrolle{border:1px solid var(--line);border-left:3px solid var(--line2);
  border-radius:3px;padding:11px 14px;margin-bottom:14px;background:var(--surface)}
.tv-kontrolle.ok{border-left-color:var(--ok)}
.tv-kontrolle.warn{border-left-color:var(--warn)}
.tv-kontrolle.crit{border-left-color:var(--err)}
.tv-k-haupt{display:flex;align-items:baseline;gap:8px;font-size:15px}
.tv-k-zeichen{font-size:13px}
.tv-kontrolle.ok .tv-k-haupt b{color:var(--ok)}
.tv-kontrolle.warn .tv-k-haupt b{color:var(--warn)}
.tv-kontrolle.crit .tv-k-haupt b{color:var(--err)}
/* Die grosse Zahl ist seit dem 15.08.2026 die Zahl der Trainings, nicht
   der Prozentwert - und sie ist anklickbar, weil sie genau die Liste
   filtert, die sie meint. Sie sieht darum aus wie die Überschrift, die
   sie ist, und nicht wie ein Link im Fliesstext. */
.tv-k-haupt-link{border:0;background:0;padding:0;font:inherit;font-weight:700;
  cursor:pointer;border-bottom:1px solid transparent;color:inherit}
.tv-k-haupt-link:hover{border-bottom-color:currentColor}
.tv-kontrolle.warn .tv-k-haupt-link{color:var(--warn)}
.tv-kontrolle.crit .tv-k-haupt-link{color:var(--err)}
.tv-k-unten{margin-top:3px;font-size:12.5px;color:var(--soft)}
.tv-k-arten{margin-top:5px;font-size:12px;color:var(--soft)}
/* Jede Zahl ist ein Filter - deshalb sieht sie auch wie etwas aus,
   das man anklickt (Abschnitt 11). */
.tv-k-link{border:0;background:0;padding:0;font:inherit;color:var(--accent);
  cursor:pointer;border-bottom:1px solid transparent}
.tv-k-link:hover{border-bottom-color:var(--accent)}
.tv-k-warum{margin-top:7px}
.tv-k-warum summary{cursor:pointer;font-size:12px;color:var(--faint);list-style:none}
.tv-k-warum summary::-webkit-details-marker{display:none}
.tv-k-warum summary::before{content:"▸ ";}
.tv-k-warum[open] summary::before{content:"▾ ";}
.tv-k-warum ul{margin:6px 0 0;padding-left:18px;font-size:12.5px;color:var(--soft)}
.tv-k-warum li{margin:2px 0}
.tv-k-warum b{color:var(--ink);font-weight:600}
.tv-modus{display:flex;align-items:center;gap:8px;margin:0 0 14px}
.tv-modus>button{display:flex;align-items:center;gap:9px;min-height:40px;padding:8px 12px;
  border:1px solid var(--line2);border-radius:3px;background:var(--surface);color:var(--soft);cursor:pointer}
.tv-modus>button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.tv-modus>button strong{font-size:12.5px}
.tv-modus>button span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  padding:0 6px;border-radius:11px;background:var(--surface2);color:var(--ink);font-size:11px;font-weight:700}
.tv-modus>button[aria-pressed="true"] span{background:rgba(255,255,255,.16);color:#fff}
.tv-modus>p{margin:0 0 0 5px;font-size:12.5px;color:var(--faint)}
.tv-filter{position:relative}
.tv-filter>summary{list-style:none;white-space:nowrap}
.tv-filter>summary::-webkit-details-marker{display:none}
.tv-filtermenue{position:absolute;z-index:30;top:calc(100% + 5px);left:0;width:300px;padding:10px;
  display:grid;gap:11px;background:var(--surface);border:1px solid var(--line2);border-radius:3px;
  box-shadow:0 8px 24px rgba(12,31,45,.16)}
.tv-filterknopfe{display:flex;gap:6px;flex-wrap:wrap}
.tv-filtermenue label{display:grid;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint)}
.tv-filtermenue select{width:100%;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink)}
@media(max-width:760px){.tv-modus{align-items:stretch;flex-wrap:wrap}.tv-modus>p{flex-basis:100%;margin-left:0}}

/* ----- Kontaktliste: Filterfeld (os-kontakte.js) -----
   Dieselbe Machart wie die Akquise-Auswahl - zwei verschiedene
   Filtermuster in einem System sind eines zu viel. Es liegt im
   Hauptbereich statt im Seitenfenster und darf deshalb breiter
   umbrechen. */
.ko-filter{background:var(--surface);border:1px solid var(--line);border-radius:3px;
  padding:12px 13px;margin:0 0 10px}
.ko-filter .akq-gruppe.offen{margin-bottom:6px}
.ko-filter .akq-feld select{min-width:170px}

/* Der Kundenstatus als kleiner Punkt vor dem Wort: In einer Tabelle mit
   zehn Spalten findet man die Farbe schneller als den Text. */
.akq-lampe{display:inline-block;width:7px;height:7px;border-radius:50%;
  margin-right:5px;vertical-align:1px}
.akq-lampe.kunde{background:var(--ok)}
.akq-lampe.chance{background:var(--accent)}
.akq-lampe.ehemalig{background:var(--warn)}
.akq-lampe.nie{background:var(--line2)}

/* Die Entscheidungsspalte der Kandidatenliste bleibt auf einer Zeile —
   ein umbrechender Knopf sieht aus wie zwei. */
.akq-tun{white-space:nowrap;text-align:right}
.akq-kandidatentabelle{overflow-x:visible}
.akq-kandidatentabelle table{width:100%;min-width:0;table-layout:fixed}
.akq-kandidatentabelle th,.akq-kandidatentabelle td{vertical-align:top}
.akq-kandidatentabelle .akq-kandidat-firma{width:19%}
.akq-kandidatentabelle .akq-kandidat-potenzial{width:15%}
.akq-kandidatentabelle .akq-kandidat-momentum{width:12%}
.akq-kandidatentabelle .akq-kandidat-profil{width:20%}
.akq-kandidatentabelle .akq-kandidat-kontext{width:26%}
.akq-kandidatentabelle .akq-tun{width:88px;vertical-align:middle}
.akq-kandidatentabelle td{overflow-wrap:anywhere}
.akq-kandidatentabelle .fa-momentum{margin-right:3px}
.akq-mehr-fuss:empty{display:none}
.akq-mehr-fuss{justify-content:flex-end}

@media(max-width:760px){
  .akq-mehrfilter{margin-left:0}
  .akq-auswahl-kopf{align-items:flex-start;flex-direction:column}
  .akq-kandidatentabelle .akq-kandidat-profil{display:none}
  .akq-kandidatentabelle .akq-kandidat-firma{width:24%}
  .akq-kandidatentabelle .akq-kandidat-potenzial{width:18%}
  .akq-kandidatentabelle .akq-kandidat-momentum{width:16%}
  .akq-kandidatentabelle .akq-kandidat-kontext{width:auto}
}

/* ----- Fokusliste reviewen -----
   Je Firma ein Block: oben, was man zum Entscheiden braucht, unten die
   Entscheidungen. Keine Tabelle — hier wird nicht verglichen, sondern
   eine Firma nach der anderen abgearbeitet. */
.akq-review{border:1px solid var(--line);border-radius:3px;padding:10px 12px;
  margin-bottom:8px;background:var(--surface)}
.akq-review-kopf{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:13.5px}
.akq-review-kopf .os-mute{font-size:12px}
.akq-review-warum{margin:5px 0 0;font-size:13px;color:var(--soft)}
.akq-review-knoepfe{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.akq-review-hinweis{margin:0 0 8px;font-size:12.5px}

/* ============================================================
   FIRMENANSICHT: 360-Grad-Account (os-firmen.js)
   Praefix .fa-. Dazu die zweite Einrueckungsstufe des Konzernbaums,
   die bisher fehlte: strukturBlock benutzt .e2, os.html kannte nur
   .e1 - Tochter und Schwester standen dadurch auf einer Hoehe.
   ============================================================ */
/* ---- Firmenansicht: 360-Grad-Blick auf einen Account (os-firmen.js) ----
   Eine Firma öffnen heisst jetzt nachsehen, nicht bearbeiten. Alles hier
   ist Anzeige; das Formular erscheint erst auf «Bearbeiten» und benutzt
   die bestehenden .os-feld-Klassen. */

/* Der Kopf: links wer sie ist und wie sie eingestuft ist, rechts die
   Website und die zwei Aktionen. Name und Ort stehen im Fensterkopf
   darüber und bleiben beim Scrollen stehen - hier zu wiederholen wäre
   dieselbe Auskunft im Abstand von dreissig Pixeln. */
.fa-kopf{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;
  flex-wrap:wrap;padding-bottom:13px;border-bottom:1px solid var(--line)}
.firma-vorschau-ident{display:flex;align-items:center;gap:13px;padding:2px 0 14px}
.firma-vorschau-ident .os-logo{flex:none;margin:0}
.firma-vorschau-ident p{margin:5px 0 0;color:var(--soft);font-size:12.5px}
.firma-vorschau-status{display:flex;gap:5px;flex-wrap:wrap}
.firma-vorschau-gruppe{border-top:1px solid var(--line)}
.firma-vorschau-gruppe>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;
  padding:12px 2px;list-style:none;cursor:pointer;font-size:13px;font-weight:700;color:var(--ink)}
.firma-vorschau-gruppe>summary::-webkit-details-marker{display:none}
.firma-vorschau-gruppe>summary:before{content:"▸";color:var(--faint);font-size:10px}
.firma-vorschau-gruppe[open]>summary:before{content:"▾"}
.firma-vorschau-gruppe>summary>span{flex:1}
.firma-vorschau-gruppe>summary small{color:var(--soft);font-weight:500;text-align:right}
.firma-vorschau-inhalt{padding:0 2px 13px}
.firma-vorschau-karten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:7px}
.firma-vorschau-karten>div{min-width:0;padding:9px 10px;border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:3px;background:var(--surface)}
.firma-vorschau-karten small{display:block;color:var(--faint);font-size:9.5px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.firma-vorschau-karten b{display:block;margin-top:3px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.firma-vorschau-chips{display:flex;gap:5px;flex-wrap:wrap}
.fa-ident{display:flex;gap:10px;align-items:flex-start;min-width:0;flex:1}
/* Die Groesse MUSS hier stehen: .os-logo setzt 14px fest, und CSS
   schlaegt die width/height-Attribute, die OS.firmenLogo mitgibt. Ohne
   diese Zeile bliebe das Logo im Kopf so klein wie auf einer Karte. */
.fa-ident .os-logo{width:34px;height:34px;margin-right:0;margin-top:1px}
.fa-ident .os-logo-leer{font-size:12px}

/* Die Merkmale stehen als Zeile, nicht als Kachelreihe: es sind vier
   kurze Angaben, keine Kennzahlen. Label klein und grau, Wert normal -
   so liest man die Werte und überfliegt die Labels. */
.fa-merkmale{display:flex;flex-wrap:wrap;gap:5px 15px;font-size:13px;line-height:1.6}
.fa-merkmal{white-space:nowrap}
.fa-merkmal i{font-style:normal;font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--faint);font-weight:700;margin-right:4px}
/* Fehlt der Betreuer, ist das kein Nebensatz: dieselbe Warnfarbe wie in
   der Firmenliste, damit es dieselbe Sache bleibt. */
.fa-merkmal.fehlt{color:var(--warn);font-weight:600}
/* Zwei echte Badges - sie sind entweder da oder nicht, sie haben keinen
   Wert. Deshalb als Chip statt als Label-Wert-Paar. */
.fa-merkmal.stark,.fa-merkmal.fokus{font-size:10.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;padding:2px 7px;border-radius:2px;border:1px solid currentColor}
.fa-merkmal.stark{color:var(--ok)}
.fa-merkmal.fokus{color:var(--accent)}

.fa-kopf-rechts{flex:none;display:flex;flex-direction:column;gap:9px;align-items:flex-end;
  text-align:right}
.fa-web-zeile{font-size:12.5px}
.fa-web{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent}
.fa-web:hover{border-bottom-color:var(--accent)}
.fa-knoepfe{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}

/* Fehlt eine Angabe, steht das da - statt einer Lücke, die aussieht wie
   eine gepflegte Zeile (dasselbe Prinzip wie .tk-fehlt am Training). */
.fa-luecke{color:var(--faint);font-style:italic}

/* ---- Wertelisten in einem Abschnitt (os-kontakte.js) ----
   Dieselben Label-Wert-Paare wie im Kopf, aber UNTEREINANDER statt in
   einer Zeile: Im Kopf sind es vier kurze Angaben zum Überfliegen, hier
   liest man sie einzeln. Deshalb kein zweites Aussehen, nur eine
   andere Richtung - .fa-merkmal bringt die Gestaltung mit. */
.fa-werte{display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.6}
.fa-werte .fa-merkmal{white-space:normal}

/* Champion ist keine Sales-Rolle und soll auch nicht wie eine aussehen:
   kein Chip in der Rollenreihe, sondern ein Satz mit Begründung. */
.fa-champion{margin:0 0 8px;font-weight:650;font-size:13px}
.fa-champion .os-mute{font-weight:400}

/* ---- Eine Zeile je Deal und je Training ----
   Links die Sache mit ihren Merkmalen darunter, rechts die eine Zahl
   bzw. das eine Datum. Rechts bündig und mit Ziffern gleicher Breite:
   So stehen zehn Beträge untereinander lesbar, ohne Tabelle. */
.fa-zeile{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;
  padding:8px 0;border-bottom:1px solid var(--line)}
.fa-zeile:last-child{border-bottom:0}
.fa-zeile-haupt{min-width:0;font-size:13px;line-height:1.45}
.fa-zeile-unten{display:flex;flex-wrap:wrap;gap:4px 9px;align-items:center;
  margin-top:4px;font-size:12px;color:var(--soft)}
.fa-zeile-neben{flex:none;text-align:right;font-size:12.5px;white-space:nowrap;
  font-variant-numeric:tabular-nums;padding-top:1px}
.fa-zustand{color:var(--soft)}
.fa-zustand small{color:var(--faint)}
.fa-folge{color:var(--faint)}
.fa-datum{font-weight:600;color:var(--soft)}
/* Überfällig ist der einzige Zustand, der Farbe verdient - er verlangt
   heute etwas. */
.fa-datum.spaet{color:var(--err)}
.fa-wert{font-weight:650}
/* Die Tilde zeigt die Schätzung; ihr Betrag bleibt gleichwertig sichtbar
   und fließt in die Pipeline-Summe ein. */
.fa-wert.geschaetzt{color:var(--ink);font-weight:650}
.os-schaetzung{color:var(--ink);font-weight:600}

/* Was man in einem Abschnitt tun kann, steht am Ende dieses Abschnitts.
   Im View Mode gibt es keine Knopfleiste unten am Fenster - ein Knopf
   soll dort stehen, wo die Sache steht, auf die er wirkt. */
.fa-aktionen{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}

/* ---- Kontaktlage: eine Zeile ueber den Rollengruppen (os-firmen.js) ----
   Beantwortet «wie stehen wir bei dieser Firma?», ohne dass man die
   Gruppen darunter im Kopf zusammenzaehlen muss. Absichtlich eine Zeile
   und keine Kachelreihe: Es sind vier Zahlen, keine Kennzahlen-Wand.
   Die Zeitangabe rutscht bei genug Platz nach rechts und bricht sonst
   unter den Rollentext - schmale Fenster sollen nicht abschneiden. */
.fa-lage{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;
  justify-content:space-between;font-size:12px;margin:0 0 10px;
  padding-bottom:8px;border-bottom:1px solid var(--line)}
.fa-lage .stark{font-weight:650;color:var(--ink)}
.fa-lage-zeit{color:var(--soft);white-space:nowrap}

/* ---- Aktivitäten (os-firmen.js) ----
   Zwei Spalten: links WANN, rechts WAS. Die Zeitspalte hat eine feste
   Breite, damit die Einträge eine Kante bilden und man die Abstände
   ohne Lesen sieht - eine Lücke von neun Monaten fällt so auf, bevor
   man die Datumsangaben vergleicht.

   Abgeleitete Einträge (Teilnahmen, Angebote) sind leiser gesetzt und
   tragen einen Strich am Rand. Sie sagen «das steht in unseren Daten»,
   nicht «jemand hat mit dieser Person gesprochen» - dieselbe Optik für
   beides würde eine Beziehungspflege vortäuschen, die es nicht gab. */
.fa-akt{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.fa-akt:last-of-type{border-bottom:0}
.fa-akt .wann{flex:0 0 96px;color:var(--faint);white-space:nowrap}
.fa-akt .was{min-width:0}
.fa-akt.abgeleitet{padding-left:8px;border-left:2px solid var(--line2)}
.fa-akt.abgeleitet .was b{font-weight:500;color:var(--soft)}

/* Zugeklappte Unterlisten (abgeschlossene Deals, vergangene Trainings).
   Bewusst leiser als ein Hauptabschnitt: Sie sind ein Teil ihres
   Abschnitts, keine eigene Ebene daneben. */
.fa-untergruppe{margin-top:8px}
.fa-untergruppe .os-gruppe{border-bottom:0;border-top:1px solid var(--line)}
.fa-untergruppe .os-gruppe summary{padding:8px 2px;font-size:11px;color:var(--faint)}
.fa-untergruppe .os-gruppe-inhalt{padding-bottom:2px}

/* ---- Konzernbaum und Abteilungen in einem ----
   Die Einrückung zeigt die Ebene: Mutter, diese Firma, darunter Töchter
   und Abteilungen. .e1 gibt es schon in .os-baum, .e2 fehlte - ohne sie
   stünden Schwester und Tochter auf derselben Höhe. */
.fa-baum .e2{padding-left:36px}
.fa-baum .fa-mutter{color:var(--soft)}
.fa-baum .fa-selbst{color:var(--ink)}
.fa-baum .os-abt{gap:8px}

/* ---- Account: Nachschlagewerte, zweispaltig ----
   Read-only und ruhig. Bei 680px Fensterbreite stehen zwei Paare
   nebeneinander, auf schmalem Schirm eines - dafür minmax statt zwei
   festen Spalten. */
.fa-paare{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:7px 20px;font-size:13px}
.fa-paar{display:flex;gap:10px;align-items:baseline;min-width:0}
.fa-paar i{font-style:normal;font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--faint);font-weight:700;flex:none;width:100px}
/* Lange Mailadressen und Strassennamen dürfen umbrechen, statt das
   Raster zu sprengen. */
.fa-paar span{min-width:0;overflow-wrap:anywhere}

/* Die Notiz steht getrennt unter den Paaren: sie ist Fliesstext, kein
   Feldwert, und behält ihre Zeilenumbrüche. */
.fa-notiz{margin-top:13px;padding:10px 12px;background:var(--surface2);
  border-left:2px solid var(--line2);font-size:13px;line-height:1.55;white-space:pre-wrap}
.os-baum .e2{padding-left:36px}

/* Erledigungen am Training. Keine Phasen - sie sagen, was innerhalb
   einer Phase noch offen ist. */
.os-aufgaben{display:flex;flex-direction:column;gap:1px;margin-top:4px}
.os-aufgabe{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;
  border:1px solid var(--line);background:var(--surface);margin-top:-1px;cursor:pointer;font-size:14px}
.os-aufgabe:hover{background:var(--surface2)}
.os-aufgabe input{margin:2px 0 0;accent-color:var(--ok);width:16px;height:16px;flex:none}
.os-aufgabe input[disabled]{cursor:default}
/* Einzeilig, koste es was es wolle: Beim Abhaken kommt «erledigt <Datum>
   von <Name>» dazu. Bricht die Zeile dabei um, waechst die Aufgabe um
   eine Zeilenhoehe und schiebt alles darunter nach unten - wer die Liste
   von oben nach unten durchklickt, verschiebt sich so selbst das
   naechste Kaestchen (Steven, 14.08.2026). Lieber am Ende abgeschnitten
   als die Liste in Bewegung. */
.os-aufgabe small{display:block;color:var(--faint);font-size:11.5px;margin-top:1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-aufgabe>span{min-width:0}
.os-aufgabe.fertig{background:var(--okbg);border-color:var(--okline,var(--ok))}
.os-aufgabe.fertig>span{color:var(--ok)}
.os-erledigt{color:var(--ok)}

/* Module am Training: die Termine innerhalb einer Durchfuehrung. */
.os-module{display:flex;flex-direction:column;gap:1px;margin-top:4px}
.os-modul{display:grid;grid-template-columns:92px 1fr auto;gap:12px;align-items:start;
  padding:9px 10px;border:1px solid var(--line);background:var(--surface);margin-top:-1px}
.os-modul .wann{font-size:12px;color:var(--soft);font-variant-numeric:tabular-nums;line-height:1.35}
.os-modul .wann b{font-size:14px;color:var(--ink)}
.os-modul .was{font-size:14px;min-width:0}
.os-modul .tun{display:flex;gap:4px;align-items:center}
/* Ein Modul ausserhalb des gepflegten Trainingszeitraums: Beginn und Ende
   des Trainings werden bewusst gepflegt, nicht gerechnet - dann muss
   auffallen, wenn beide auseinanderlaufen. */
.os-modul.ausserhalb{border-color:var(--warn);background:var(--warnbg)}
.os-warnton{color:var(--warn);font-weight:600}

/* Produktliste: eine Zeile je Produkt-Variante-Kombination (Stevens dritte
   Rückmeldung 12.08.2026, Abend — "sind das dann die Produkte selbst?").
   Keine Verschachtelung mehr; Dauer und Preise sind eigene, sofort
   sichtbare Spalten auf derselben Zeile. */
.os-preisliste{display:flex;flex-direction:column;gap:2px;font-size:13px}
.os-preisliste div{font-variant-numeric:tabular-nums}
.os-preisliste small{color:var(--faint);font-variant-numeric:normal}

/* Seitenfenster */
/* Kleines Fenster UEBER dem Detailfenster (os-kern.js: dialog).
   Eigene Ebene, damit das halb ausgefuellte Formular darunter stehen
   bleibt - eine neue Firma anzulegen darf den Deal nicht kosten. */
.os-dialog{position:fixed;inset:0;background:rgba(12,31,45,.45);display:none;z-index:70;
  align-items:center;justify-content:center;padding:20px}
.os-dialog.offen{display:flex}
.os-dialog-inhalt{background:var(--surface);border:1px solid var(--line2);border-radius:5px;
  width:min(560px,100%);max-height:90vh;overflow:auto;box-shadow:0 12px 40px rgba(12,31,45,.22)}
.os-dialog header{display:flex;align-items:center;gap:12px;padding:14px 18px;
  border-bottom:1px solid var(--line)}
.os-dialog header h3{margin:0;font-size:16px;font-weight:650}
.os-dialog .os-hinweis{margin:14px 18px 0}
.os-dialog .os-formular{padding:16px 18px}
/* Mit mehreren Nebenknoepfen (OS.dialog: opts.weitere) wird die Fusszeile
   schnell zu lang fuer 560px - sie darf dann umbrechen statt zu quetschen. */
.os-dialog footer{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding:12px 18px;
  border-top:1px solid var(--line);background:var(--surface2)}
/* Ein breiteres Fenster fuer Inhalte, die Zeilen brauchen statt Felder -
   der Mailentwurf ist bei 560px eine Schlucht. */
.os-dialog-inhalt.breit{width:min(720px,100%)}
.os-dialog .os-feld textarea{font-family:var(--sans);line-height:1.55}
.training-freigabe-pruefung{display:grid;gap:10px}.training-freigabe-pruefung p{margin:0}
.training-kalender-termine,.training-kalender-empfaenger{list-style:none;padding:0;margin:6px 0;display:grid;gap:6px}
.training-kalender-empfaenger{max-height:220px;overflow:auto}.training-kalender-pruefung li{overflow-wrap:anywhere}
.training-kalender-aktion{position:relative;align-items:center}.training-kalender-aktion>.os-form-hilfe{position:static}
.training-kalender-aktion .os-form-hilfe-text{left:0;right:auto}
.training-freigabe-pruefung small{display:block;color:var(--soft);font-weight:400;margin-top:2px}
.training-freigabe-pruefung-kalender{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center;
  padding:10px 11px;border:1px solid var(--line);border-radius:4px;background:var(--surface2)}
.training-freigabe-pruefung-kalender>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:#eaf2fb;color:var(--accent);font-weight:700}
.training-freigabe-pruefung-mails{display:grid;gap:5px}.training-freigabe-pruefung-mails>p{margin:3px 0 2px}
.training-freigabe-pruefung-mails>label{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;
  padding:7px 9px;border:1px solid var(--line);border-radius:4px;cursor:pointer}
.training-freigabe-pruefung-mails>label:has(input:checked){border-color:#a9c6e4;background:#f7fbff}
.training-freigabe-pruefung-mails input{margin:0}.training-freigabe-keine-mail{font-size:12px;color:var(--soft)}
.firma-signatur-import{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center;
  padding:12px;border:1px dashed var(--line2);border-radius:3px;background:var(--surface2);cursor:copy}
.firma-signatur-import:hover,.firma-signatur-import:focus,.firma-signatur-import.darueber{border-color:var(--accent);background:#eef6ff;outline:0}
.firma-signatur-import strong{font-size:13px}.firma-signatur-import span,.firma-signatur-import small{font-size:12px;color:var(--soft)}
.firma-signatur-import small{grid-column:1/-1}.firma-signatur-import .os-btn{grid-column:2;grid-row:1/3;align-self:center}
.firma-signatur-import #firmaSignaturVorschau{grid-column:1/-1}
.firma-signatur-kontakt{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;margin-top:5px;padding-top:9px;border-top:1px solid var(--line)}
.firma-signatur-kontakt>b,.firma-signatur-kontakt>small{grid-column:1/-1}.firma-signatur-kontakt label{display:grid;gap:3px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.firma-signatur-kontakt input{min-width:0;padding:6px 7px;border:1px solid var(--line2);border-radius:2px;background:var(--surface);font:inherit;color:var(--ink)}
.firma-signatur-kontakt em{color:var(--err);font-style:normal}

.os-panel{position:fixed;inset:0;background:rgba(12,31,45,.38);display:none;z-index:40}
.os-panel.offen{display:flex;justify-content:flex-end}
.os-panel-inhalt{background:var(--surface);width:min(680px,100%);height:100%;display:flex;flex-direction:column;
  border-left:1px solid var(--line2)}
.os-panel header{display:flex;gap:12px;align-items:flex-start;padding:16px 20px;border-bottom:1px solid var(--line)}
.os-panel header>div{min-width:0;flex:1}
.os-panel header h2{margin:0;font-size:17px;font-weight:650}
.training-titel-oeffnen{display:inline;padding:0;border:0;background:none;color:inherit;
  font:inherit;text-align:left;cursor:pointer}
.training-titel-oeffnen:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.training-titel-oeffnen:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
/* Der Rueckweg (OS.panel: opts.zurueck). Steht UEBER dem Titel und
   klein: Er sagt, woher man kam, und soll nicht mit der Ueberschrift
   um Aufmerksamkeit streiten. */
.os-zurueck{display:inline-block;margin:0 0 3px;padding:0;border:0;background:none;
  color:var(--accent);font-size:12px;cursor:pointer;line-height:1.3}
.os-zurueck:hover{text-decoration:underline}
.os-panel header p{margin:2px 0 0;color:var(--faint);font-size:12.5px}
.os-x{margin-left:auto;font-size:22px;line-height:1;background:none;border:0;color:var(--faint);cursor:pointer;padding:0 4px}
.os-x:hover{color:var(--ink)}
.training-voll-oeffnen{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;
  margin:-4px 0 -4px auto;padding:5px 9px;border:1px solid var(--line2);border-radius:3px;
  background:var(--surface);color:var(--accent);font-size:12px;font-weight:650;white-space:nowrap;cursor:pointer}
.os-panel.training-schnell .os-x{margin-left:0}
.training-voll-oeffnen svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.training-voll-oeffnen:hover{background:var(--surface2);border-color:var(--accent);color:var(--ink)}
.training-voll-oeffnen:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.os-panel-body{padding:18px 20px;overflow:auto;flex:1}
/* Trainings haben zwei bewusst verschiedene Lesetiefen: Der normale
   Drawer ist eine kurze operative Vorschau; die vollständige Akte nutzt
   die ganze Arbeitsfläche. Sie bleibt dasselbe Panel, damit Boardzustand,
   Berechtigungen und alle bestehenden Aktionen erhalten bleiben. */
.os-panel.training-schnell .os-panel-inhalt{width:min(720px,100%)}
.os-panel.training-voll{background:var(--ground)}
.os-panel.training-voll .os-panel-inhalt{width:100%;border-left:0}
.os-panel.training-voll .os-panel-body{padding:0 28px 28px}
.os-panel.training-voll>.os-panel-inhalt>header,
.os-panel.training-voll>.os-panel-inhalt>footer{padding-left:28px;padding-right:28px}
body:has(.os-panel.offen) .os-fb-knopf,body:has(.os-panel.offen) .os-fb-box{display:none}

.training-schnell-fakten{display:grid;grid-template-columns:1fr 1fr;margin-top:14px;
  border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.training-schnell-fakt{display:grid;grid-template-columns:1fr;
  gap:3px;align-items:baseline;padding:10px 12px;border-bottom:1px solid var(--line)}
.training-schnell-fakt:nth-child(odd){border-right:1px solid var(--line)}
.training-schnell-fakt:nth-last-child(-n+2){border-bottom:0}
.training-schnell-fakt>span{color:var(--faint);font-size:11px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase}
.training-schnell-fakt>strong{min-width:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.training-schnell-fakt>small{color:var(--faint);font-size:11.5px}
.training-schnell-fakt .tk-fehlt{font-size:12.5px}
.training-schnell-teilnehmer{margin-top:14px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.training-schnell-teilnehmer>header{display:flex;align-items:baseline;gap:12px;padding:10px 12px;
  border-bottom:1px solid var(--line);background:var(--surface2)}
.training-schnell-teilnehmer>header span{font-size:11px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.training-schnell-teilnehmer>header strong{margin-left:auto;font-size:12.5px}
.training-schnell-teilnehmer-kern{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:12px}
.training-schnell-teilnehmer-kern>div{display:grid;gap:4px}.training-schnell-teilnehmer-kern>div>span{color:var(--soft);font-size:12px;font-weight:650}
.training-schnell-teilnehmer-kern>div>b{font-size:22px;font-variant-numeric:tabular-nums}.training-schnell-teilnehmer-kern small{color:var(--faint);font-size:11.5px}
.training-schnell-teilnehmer-kern>.os-btn,.training-schnell-teilnehmer-kern>.os-fbtn{margin:0;flex:none}

.training-tabs{position:sticky;top:0;z-index:3;display:flex;gap:4px;overflow-x:auto;
  margin:0 -28px 22px;padding:0 28px;border-bottom:1px solid var(--line);background:var(--surface)}
.training-tabs button{flex:none;min-height:44px;padding:0 13px;border:0;border-bottom:3px solid transparent;
  background:none;color:var(--soft);font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.training-tabs button:hover{color:var(--accent)}
.training-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.training-tabs button.aktiv{color:var(--accent);border-bottom-color:var(--accent)}
.training-tab-zaehler{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;
  margin-left:7px;padding:0 6px;border-radius:10px;background:var(--surface2);color:var(--soft);
  font-size:10.5px;font-variant-numeric:tabular-nums}
.training-tabs button.aktiv .training-tab-zaehler{background:#e7f1fb;color:var(--accent)}
.training-tab-inhalt[hidden]{display:none}
.training-tabs-rahmen{width:min(1440px,100%);margin:0}
.training-voll-raster{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);
  gap:24px;align-items:start}
.training-voll-fakten{border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.training-voll-fakten .training-schnell-fakt{grid-template-columns:minmax(136px,auto) minmax(0,1fr);
  column-gap:14px;border-right:0}
.training-voll-fakten .training-schnell-fakt>small{grid-column:2}
.training-voll-fakten .training-schnell-fakt:last-child{border-bottom:0}
.training-voll-spalten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.training-voll-sektion{min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--surface);
  padding:0 18px 18px}
.training-voll-sektion>header{display:flex;align-items:baseline;gap:12px;margin:0 -18px 16px;
  padding:13px 18px;border-bottom:1px solid var(--line);background:var(--surface2)}
.training-voll-sektion>header h3{margin:0;font-size:14px;color:var(--ink)}
.training-voll-sektion>header span{margin-left:auto;color:var(--faint);font-size:12px}
.training-voll-sektion .os-gruppe{border-bottom:0}
.training-voll-sektion .os-gruppe-inhalt{padding-bottom:0}
.training-voll-sektion h4:first-child{display:none}
.training-trainer-aktion{margin:12px 0 0}
.training-eckdaten{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 20px;margin:0}
.training-eckdaten dt,.training-eckdaten dd{margin:0}
.training-eckdaten dt{color:var(--faint);font-size:12px;font-weight:650}
.training-voll-sekundaer{margin-top:18px}
.training-alle-aufgaben{margin-top:18px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.training-alle-aufgaben>summary{display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;
  font-size:13px;font-weight:700}.training-alle-aufgaben>summary small{margin-left:auto;color:var(--faint);font-weight:500}
.training-alle-aufgaben>div{padding:0 16px 16px;border-top:1px solid var(--line)}
.os-formular.training-formular-kompakt{display:block}
.training-form-tabs{position:sticky;top:0;z-index:3;display:flex;gap:3px;overflow-x:auto;
  margin:0 0 14px;padding:0;border-bottom:1px solid var(--line);background:var(--surface)}
.training-bearbeiten .training-form-tabs{top:44px;z-index:2}
.training-form-tabs button{flex:none;min-height:38px;padding:0 11px;border:0;
  border-bottom:3px solid transparent;background:none;color:var(--soft);font:inherit;
  font-size:12.5px;font-weight:650;cursor:pointer;white-space:nowrap}
.training-form-tabs button:hover{color:var(--accent)}
.training-form-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.training-form-tabs button.aktiv{color:var(--accent);border-bottom-color:var(--accent)}
.training-form-bereich{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;
  padding:14px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.training-form-bereich[hidden]{display:none}
.training-form-bereich>.os-abschnitt{display:none}
.training-verkauf-deals{display:grid;gap:10px;margin:0 0 20px}
.training-verkauf-deal{border:1px solid var(--line);border-radius:4px;overflow:hidden}
.training-verkauf-deal>header{padding:10px 12px;background:var(--surface2);font-weight:650}
.training-verkauf-deal>div{display:grid;grid-template-columns:minmax(160px, max-content) minmax(0,1fr);gap:16px;
  padding:9px 12px;border-top:1px solid var(--line)}
.training-verkauf-deal>div>div{min-width:0;display:grid;gap:4px;overflow-wrap:anywhere}
.training-verkauf-deal>div>span{color:var(--faint);font-size:12px;font-weight:650;
  text-transform:uppercase;letter-spacing:.06em;overflow-wrap:anywhere}
@media(max-width:600px){.training-verkauf-deal>div{grid-template-columns:1fr;gap:5px}}
.training-kommunikation-raster{display:block;min-width:0}
.training-kommunikation-person{border-bottom:1px solid var(--line);background:var(--surface)}
.training-kommunikation-person[hidden]{display:none}
.training-kommunikation-person>summary,.training-versand-spalten{display:grid;grid-template-columns:minmax(150px,1.7fr) repeat(5,minmax(0,1fr));gap:8px;align-items:center;padding:7px 12px 7px 20px;list-style:none}
.training-kommunikation-person>summary{cursor:pointer;min-height:34px;font-size:12px;position:relative}
.training-kommunikation-person>summary:hover,.training-kommunikation-person[open]>summary{background:var(--surface2)}
.training-kommunikation-person>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.training-kommunikation-person>summary::-webkit-details-marker{display:none}
.training-kommunikation-person>summary::before{content:'›';font-size:18px;color:var(--faint);position:absolute;left:6px}
.training-kommunikation-person[open]>summary::before{transform:rotate(90deg)}
.training-kommunikation-name{display:flex;align-items:center;gap:8px;min-width:0}.training-kommunikation-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.training-kommunikation-name small{color:var(--soft);font-size:10px;font-weight:400;white-space:nowrap}
.training-kommunikation-name small.os-warnton{color:var(--warn)}
.training-versand-kopf{position:relative;display:flex;align-items:center;gap:10px;margin:14px 0 12px}.training-versand-kopf h3{margin:0;font-size:16px}.training-versand-kopf h3 span{font-size:13px;font-weight:400}
.training-versand-kopf>.os-form-hilfe{position:static}.training-versand-kopf .os-form-hilfe-text{left:0;right:auto}
.training-versand-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-size:12px}
.training-versand-filter input,.training-versand-filter select{padding:7px 9px;border:1px solid var(--line2);border-radius:3px;background:var(--surface);font:inherit;color:var(--ink);min-width:0;max-width:100%}
.training-versand-filter input{width:250px}.training-versand-filter>span{margin-left:auto;color:var(--soft)}
.training-versand-spalten{background:var(--surface2);border-bottom:1px solid var(--line);font-size:11px;color:var(--soft);font-weight:650}
.training-versand-spalten small{font-weight:400;margin-left:6px;color:var(--faint)}
.training-mail-status{position:relative;font-size:11px;color:var(--soft);cursor:help;min-width:0;outline-offset:2px}
.training-mail-status>span:not(.training-mail-tooltip){display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.training-mail-status b{font-size:12px}.training-mail-status.erledigt,.training-mail-verlauf .erledigt{color:var(--accent)}
.training-mail-status.warn{color:var(--warn)}.training-mail-status.fehler,.training-mail-verlauf .fehler,.training-mail-fehler{color:var(--err)}
.training-mail-status>span.training-mail-mobil{display:none}
.training-mail-tooltip{position:absolute;z-index:30;top:calc(100% + 8px);right:0;width:250px;max-width:calc(100vw - 48px);padding:10px 12px;border-radius:4px;background:var(--ink);color:white;font-size:12px;line-height:1.45;white-space:pre-line;overflow-wrap:anywhere;box-shadow:0 4px 16px #0003;visibility:hidden;pointer-events:none;font-weight:400}
.training-mail-status:hover .training-mail-tooltip,.training-mail-status:focus .training-mail-tooltip{visibility:visible}
.training-mail-status[data-tooltip-aus] .training-mail-tooltip{visibility:hidden}
.training-mail-verlauf>div{display:grid;grid-template-columns:minmax(0,1fr) 115px 170px;gap:8px;padding:9px 0;border-top:1px solid var(--line);font-size:12px;align-items:center}
.training-mail-verlauf>div>div{min-width:0;overflow-wrap:anywhere}.training-mail-verlauf small{display:block;color:var(--soft);margin-top:3px;overflow-wrap:anywhere}
.training-mail-verlauf>div>small{grid-column:1/-1;color:var(--err)}
.training-versand-andere{margin-top:16px}.training-versand-andere>summary{cursor:pointer;color:var(--soft);font-size:13px}
.training-kommunikation-details{border-top:1px solid var(--line);padding:10px 12px}
.training-kommunikation-kontakt{margin:0 0 5px;text-align:right;font-size:12px;overflow-wrap:anywhere}
.training-kommunikation-zeile{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:7px 0}.training-kommunikation-zeile>span:first-child{min-width:150px}.training-kommunikation-zeile>span:nth-child(2){flex:1;color:var(--soft);white-space:pre-line;overflow-wrap:anywhere}
/* Teilnehmerliste, Durchführungssicherheit und Versand bleiben am selben Arbeitsort. */
.training-durchfuehrungssicherheit>header,.training-kommunikation-person>header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.training-durchfuehrungssicherheit h4{margin:0}
.training-status{margin:10px 0;color:var(--soft);font-size:13px}
.training-status.offen{color:var(--warn)}
.training-listenstand{margin:18px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.training-teilnehmer-zahlen{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px;color:var(--soft)}
.training-teilnehmer-zahlen strong{color:var(--ink);font-size:18px;font-weight:650;margin-right:4px}
.training-listen-kontext{margin:10px 0;color:var(--soft);font-size:12px}
.training-listen-kontext summary{cursor:pointer}.training-listen-kontext dl{display:grid;grid-template-columns:max-content 1fr;gap:5px 12px;margin:8px 0}.training-listen-kontext dt{font-weight:650}.training-listen-kontext dd{margin:0}
.training-freigabe{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0}
.training-freigabe p{flex:1;min-width:220px;margin:0}
.training-info{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--line);border-radius:50%;color:var(--soft);font-size:11px;font-weight:750;cursor:help;vertical-align:middle}
.training-info:focus{outline:2px solid var(--accent);outline-offset:2px}
.training-versand-kurz{display:flex;align-items:center;gap:7px;margin:12px 0;color:var(--soft);font-size:12.5px}
.training-versand-kurz>span:first-child{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;font-size:11px;font-weight:750}
.training-versand-kurz.ok{color:var(--ok)}.training-versand-kurz.warn{color:var(--warn)}
.training-kommunikation-person>header>span{color:var(--soft);font-size:12px}
.training-versandnachweis::before{content:'';display:inline-block;width:9px;height:9px;border:1.5px solid var(--faint);border-radius:50%;margin-right:7px}
.training-versandnachweis.erledigt::before{background:var(--accent);border-color:var(--accent)}
.training-externer-versand{font-size:12px;margin:6px 0;color:var(--soft)}
.training-externer-versand summary{cursor:pointer}
.training-externer-versand button{margin:4px 8px 4px 0}
.training-durchfuehrungssicherheit .tn-belegung-steuerung input{max-width:150px}
.v2-teilnehmerstand{font-size:11px;line-height:1.5;color:var(--soft);margin-top:7px;white-space:normal}
.v2-karte:has(.v2-teilnehmerstand){height:auto;min-height:140px}

.training-honorar{max-width:620px}.training-honorar dd{min-width:0;overflow-wrap:anywhere}
.honorar-freigabe{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:22px;height:22px;
  padding:0 7px;border-radius:12px;font-size:11px;font-weight:750;box-sizing:border-box}
.honorar-freigabe.offen{background:#fff4d8;color:#946400;border:1px solid #e7c878}
.honorar-freigabe.ok{background:#e7f5ed;color:var(--ok);border:1px solid #afd4bf}
.tp-honorar-tabelle .honorar-freigabe{width:22px;padding:0;border-radius:50%}
@media(max-width:900px){
  .training-voll-raster,.training-voll-spalten{grid-template-columns:1fr}
  .os-panel.training-voll .os-panel-body{padding-left:18px;padding-right:18px}
  .training-tabs{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}
}
@media(max-width:560px){
  .training-schnell-fakten{grid-template-columns:1fr}
  .training-schnell-teilnehmer-kern{align-items:stretch;flex-direction:column}
  .training-schnell-teilnehmer-kern>.os-btn,.training-schnell-teilnehmer-kern>.os-fbtn{align-self:flex-start}
  .training-form-bereich{grid-template-columns:1fr}
  .training-schnell-fakt,.training-schnell-fakt:nth-child(odd){border-right:0;border-bottom:1px solid var(--line)}
  .training-schnell-fakt:nth-last-child(2){border-bottom:1px solid var(--line)}
  .training-schnell-fakt:last-child{border-bottom:0}
  .training-eckdaten{grid-template-columns:1fr;gap:3px}
}
/* Feedback: der Stift unten rechts, auf jeder Seite erreichbar.
   Bewusst klein und ruhig - er soll da sein, wenn man ihn braucht, und
   sonst nicht stoeren. */
.os-fb-knopf{position:fixed;right:20px;bottom:20px;z-index:60;width:44px;height:44px;
  border-radius:50%;border:1px solid var(--line2);background:var(--surface);color:var(--soft);
  font-size:18px;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(12,31,45,.14)}
.os-fb-knopf:hover{border-color:var(--accent);color:var(--accent)}
.os-fb-box{position:fixed;right:20px;bottom:74px;z-index:60;width:min(360px,calc(100vw - 40px));
  background:var(--surface);border:1px solid var(--line2);border-radius:4px;padding:14px;
  box-shadow:0 6px 24px rgba(12,31,45,.18)}
.os-fb-box header{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.os-fb-box header b{flex:1}
.os-fb-box textarea{width:100%;padding:8px;border:1px solid var(--line2);border-radius:2px;
  background:var(--surface);resize:vertical;margin:6px 0}
.os-fb-zeile{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.os-fb-zeile select{flex:1;padding:6px 8px;border:1px solid var(--line2);border-radius:2px;
  background:var(--surface)}
.os-fb-box p{margin:2px 0}
.os-fb-todoist{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--soft);
  margin:2px 0 6px;cursor:pointer}
.os-fb-todoist input{width:15px;height:15px;accent-color:var(--accent)}

/* Feedback: die Sammlung unter Verwaltung */
.os-fb-liste{display:flex;flex-direction:column;gap:10px}
.os-fb-eintrag{border:1px solid var(--line);border-radius:3px;padding:12px 14px;background:var(--surface)}
.os-fb-eintrag .oben{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.os-fb-eintrag .text{margin:0 0 8px;font-size:14px}
.os-fb-vorschlag{border-left:2px solid var(--accent2);padding:2px 0 2px 12px;margin:0 0 8px}
.os-fb-vorschlag h6{margin:0 0 3px;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);font-weight:700}
.os-fb-vorschlag p{margin:0 0 4px;font-size:13.5px}
.os-fb-vorschlag .masse{color:var(--faint);font-size:12px}
.os-fb-knoepfe{display:flex;gap:8px;margin-top:10px}

/* Systemstand: je Migrationsdatei ein Block mit ihren Luecken. */
.os-ss-datei{border:1px solid var(--line);border-radius:3px;padding:10px 14px;margin-bottom:10px;
  background:var(--surface)}
.os-ss-datei h5{margin:0 0 6px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}
.os-ss-datei code{font-size:12.5px}
.os-kachel.err .zahl{color:var(--err)}
.os-kachel.ok .zahl{color:var(--ok)}

/* Excel-Ablage fuer Teilnehmerlisten: sichtbar, aber ruhig - sie steht
   unter jeder Teilnehmerliste und darf nicht wie ein Knopf schreien. */
.os-ablage{display:grid;grid-template-columns:38px minmax(0,1fr);gap:0 12px;align-items:center;
  border:1px dashed var(--line2);border-radius:4px;padding:14px 16px;margin-top:14px;background:var(--ground)}
.os-ablage.drueber{border-color:var(--accent);background:#f0f6fc;box-shadow:inset 0 0 0 1px var(--accent)}
.os-ablage.hervorgehoben{border-color:var(--accent);background:#eaf3fc;box-shadow:0 0 0 3px rgba(46,111,178,.16)}
.os-ablage-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:50%;background:var(--surface2);color:var(--accent);font-size:20px;font-weight:700}
.os-ablage p{margin:0 0 4px}
.os-ablage-waehl{color:var(--accent);cursor:pointer;text-decoration:underline}
.os-ablage-ergebnis{grid-column:1/-1}
.os-ablage-ergebnis:not(:empty){margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.os-ablage-ergebnis h5{font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);font-weight:700;margin:14px 0 6px}
.os-ablage-knoepfe{display:flex;gap:8px;align-items:center;margin-top:14px}
@media(max-width:960px){.training-versand-spalten{display:none}.training-kommunikation-person>summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding-top:10px;padding-bottom:10px}.training-kommunikation-name{grid-column:1/-1}.training-mail-status>span.training-mail-mobil{display:block;font-size:10px;color:var(--soft);margin-bottom:3px}.training-mail-tooltip{left:0;right:auto}.training-mail-status:nth-last-child(-n+3) .training-mail-tooltip{right:0;left:auto}}
@media(max-width:600px){.training-kommunikation-person>summary{grid-template-columns:repeat(2,minmax(0,1fr))}.training-mail-status>span.training-mail-mobil{white-space:normal}.training-mail-status:nth-last-child(-n+3) .training-mail-tooltip{left:0;right:auto}.training-mail-status:nth-child(odd) .training-mail-tooltip{right:0;left:auto}.training-mail-verlauf>div{grid-template-columns:1fr 1fr}.training-mail-verlauf>div>div{grid-column:1/-1}.training-mail-verlauf>div>span:last-of-type{text-align:right}.training-versand-filter input{width:100%}.training-listen-kontext dl{grid-template-columns:1fr;gap:2px}.training-listen-kontext dd{margin-bottom:5px}}
/* Themengruppen im Detailfenster: zusammengehoerige Angaben an einem Ort,
   aufklappbar. Der Pfeil dreht sich, die erste Ueberschrift innerhalb
   einer Gruppe verliert ihren oberen Abstand - sonst klafft unter jedem
   Gruppentitel eine Luecke. */
.os-gruppe{border-bottom:1px solid var(--line)}
.os-gruppe summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
  padding:11px 2px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--soft);font-weight:700}
.os-gruppe summary::-webkit-details-marker{display:none}
.os-gruppe summary::before{content:"";flex:none;width:0;height:0;
  border-left:4px solid currentColor;border-top:3.5px solid transparent;
  border-bottom:3.5px solid transparent;transition:transform .15s}
.os-gruppe[open] summary::before{transform:rotate(90deg)}
.os-gruppe summary:hover{color:var(--accent)}
.os-gruppe-neben{margin-left:auto;font-size:11px;letter-spacing:0;text-transform:none;
  font-weight:400;color:var(--faint)}
.os-gruppe-inhalt{padding:0 0 14px}
.os-gruppe-inhalt>h4:first-child{margin-top:0}
.os-panel footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--line);background:var(--surface2)}
.os-panel footer .links+.os-btn:not(.links){margin-left:auto}
.os-panel-body h4{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
  margin:22px 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.os-baum{font-size:13px;line-height:1.9}
.os-baum .e1{padding-left:18px}
.os-hinweis{background:var(--surface2);border-left:2px solid var(--accent2);padding:10px 12px;font-size:13px;color:var(--soft)}

/* Die berechnete Phase, oben im Trainings-Fenster - dieselbe Antwort wie
   im Board (os-kern.js: checklistenPhase). Anzeige, keine Auswahl. */
.os-phase{margin:0 0 12px}

/* ---- Trainingskopf: Variante H2 (Stevens Wahl, 15.08.2026) ----
   Links wer und was, rechts wann und wer durchfuehrt. Aus vier
   Entwuerfen gewaehlt, weil die zwei haeufigsten Fragen («wann?» und
   «wer?») dadurch immer an derselben Stelle stehen - man findet sie,
   ohne zu lesen. Nachgemessen 186px statt 271px gegenueber der
   zeilenweisen Fassung. */
.tk{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;margin-bottom:2px}
.tk-firma{font-size:13.5px;color:var(--soft);display:flex;align-items:center;margin-top:1px}
/* Die Firma fuehrt den Kopf - der Produktname steht im Fenstertitel
   darueber und bliebe hier eine Wiederholung. */
.tk-firma.gross{font-size:15.5px;font-weight:600;color:var(--ink);margin-top:0}
.tk-firma.gross>.os-logo{width:26px;height:26px;margin:0 8px 0 0;border-radius:4px;flex:none}
.tk-firmenlogo{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-right:8px;
  border:1px solid var(--line);border-radius:4px;background:var(--surface2);color:var(--faint);flex:none}
.tk-firmenlogo svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.tk-merkmale{margin-top:8px;display:flex;gap:5px;flex-wrap:wrap}
.tk-merkmal{display:inline-flex;align-items:center;gap:5px}.tk-merkmal svg{width:14px;height:14px;fill:none;
  stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tk-merkmal-sprache{display:inline-flex;align-items:center;justify-content:center;min-width:30px}
.tk-kundenkontakt{display:flex;align-items:baseline;gap:7px;margin-top:7px;font-size:12px}
.tk-kundenkontakt>span{color:var(--faint);font-size:10px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.tk-rechts{text-align:right;font-size:13px;line-height:1.5;white-space:nowrap}
.tk-datum{font-weight:650;font-size:14px}
.tk-trainer{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:var(--soft)}
.tk-trainer-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;
  overflow:hidden;border-radius:50%;background-color:#e7eef7;color:var(--accent);font-size:9px;font-weight:800;flex:none}
.tk-trainer-foto{position:absolute;z-index:1;inset:-1px;border-radius:50%;background-image:url('assets/demo-team-avatars-v1.png');
  background-size:200% 200%;background-position:var(--avatar-x) var(--avatar-y);background-repeat:no-repeat}
.tk-trainer-initialen{position:relative;z-index:0}.tk-trainer-avatar.fehlt{background:transparent;border:1px solid var(--line2);color:var(--faint)}
.tk-rechts .os-chip{margin-top:5px}
/* Fehlt eine Angabe, steht das da - statt einer Luecke, die aussieht
   wie eine gepflegte Zeile. */
.tk-fehlt{color:var(--warn);font-style:italic;font-weight:400}

/* Die Prozessleiste: Punkte, nur der aktuelle Schritt ist beschriftet.
   Der Ablauf ist bei jedem Training derselbe - ausgeschrieben waere er
   sechsmal dieselbe Zeile. Was zaehlt, ist WO man steht. */
.tk-prozess{display:flex;align-items:center;gap:6px;margin:12px 0 0;font-size:12px;flex-wrap:wrap}
.tk-prozess i{width:8px;height:8px;border-radius:50%;background:transparent;border:1px solid var(--line2);display:inline-block;flex:none}
.tk-prozess i.fertig{background:var(--accent);border-color:var(--accent)}
.tk-prozess i.jetzt{background:transparent;border-color:var(--accent);box-shadow:0 0 0 3px rgba(44,106,175,.18)}
.tk-prozess i[aria-current="step"]{box-shadow:0 0 0 3px rgba(44,106,175,.14)}
.tk-prozess .name{font-weight:700;color:var(--accent);margin-left:2px}
.tk-prozess .rest{color:var(--faint);margin-left:auto}
.tk-prozess .bereit{margin-left:5px;padding:3px 7px;border-radius:10px;background:var(--okbg);
  color:var(--ok);font-size:10.5px;font-weight:700}
.tk-prozess .heute{margin-left:auto;color:var(--faint)}
.tk-prozess .rest+.heute{margin-left:2px}.tk-prozess .rest+.heute::before{content:"· ";margin-right:2px}
.os-panel.training-voll .tk-prozess .heute{display:none}
.tk-prozess.abgesagt i{background:var(--line2);box-shadow:none}
.tk-prozess.abgesagt .name{color:var(--err)}

/* Rueckversicherung vor der aktuellen Arbeit: Fruehere Phasen zeigen
   kompakt, welche Angaben bestaetigt wurden. Die aktuelle Phase bleibt
   davon getrennt in der warmen Arbeitsbox darunter. */
.os-nachweis{margin:8px 0 10px;border:1px solid var(--line);border-radius:3px;background:var(--surface2)}
.os-nachweis summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
  padding:8px 10px;color:var(--ok);font-size:12.5px;font-weight:700}
.os-nachweis summary::-webkit-details-marker{display:none}
.os-nachweis summary::after{content:"";width:0;height:0;margin-left:2px;
  border-left:4px solid currentColor;border-top:3.5px solid transparent;
  border-bottom:3.5px solid transparent;transition:transform .15s}
.os-nachweis[open] summary::after{transform:rotate(90deg)}
.os-nachweis summary small{margin-left:auto;color:var(--faint);font-size:11px;font-weight:400}
.os-nachweis-inhalt{padding:0 10px 9px;border-top:1px solid var(--line)}
.os-nachweis-phase{display:grid;grid-template-columns:128px 1fr;gap:8px;padding:8px 0 0}
.os-nachweis-phase>strong{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);padding-top:3px}
.os-nachweis-punkte{display:flex;gap:5px;flex-wrap:wrap}
.os-nachweis-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid #b8d8c4;
  border-radius:3px;background:#f2faf5;color:var(--soft);font-size:11px;line-height:1.25}
.os-nachweis-chip i{color:var(--ok);font-style:normal;font-weight:800}
.os-nachweis-chip b{color:var(--ink);font-weight:650}
.os-nachweis-chip span{color:var(--soft)}
.os-nachweis-chip.wartet{border-color:#dfc48b;background:var(--warnbg)}
.os-nachweis-chip.wartet i{color:var(--warn)}
.os-nachweis-chip.fehlt{border-color:#e1afa3;background:var(--errbg)}
.os-nachweis-chip.fehlt i{color:var(--err)}
.os-nachweis-chip.neutral{border-color:var(--line);background:var(--surface)}
.os-nachweis-chip.neutral i{color:var(--faint)}
@media(max-width:640px){.os-nachweis-phase{grid-template-columns:1fr}.os-nachweis-phase>strong{padding-top:0}}

/* Handlungsbedarf aus dem Altbestand (Spezifikation Punkt 18): Nur wo
   wirklich etwas zu tun ist, und dann oben - nicht als Dauerzustand
   mitten in der operativen Steuerung. */
.tk-warn{display:flex;align-items:center;gap:8px;background:var(--warnbg);border:1px solid var(--warn);
  border-radius:3px;padding:6px 10px;font-size:12.5px;color:var(--warn);margin-top:10px}
.tk-warn button{margin-left:auto;flex:none}

/* ---- Teilnehmerblock: Variante T1 ----
   Eine grosse Zahl, daneben wogegen sie zaehlt. Die Liste erscheint
   erst auf Klick (Punkt 10/19: nie 25 Namen standardmaessig). */
.tn-kopf{display:flex;gap:22px;align-items:baseline;flex-wrap:wrap;margin-top:2px}
.tn-zahl{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}
.tn-neben{color:var(--faint);font-size:12.5px}
.tn-knoepfe{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.tn-schnell{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px 14px;
  align-items:end;margin:12px 0;padding:12px 14px;border-left:3px solid var(--ok);
  background:var(--okbg);border-radius:3px}
.tn-schnell>div:first-child small{display:block;color:var(--faint);margin-top:3px}
.tn-schnell label{display:grid;gap:4px;color:var(--faint);font-size:11px;text-transform:uppercase;
  letter-spacing:.06em;font-weight:650}
.tn-schnell label input{width:120px;font-size:16px;font-weight:650}
.tn-schnell-formel{grid-column:1/-1;display:flex;gap:10px;align-items:baseline;
  padding-top:9px;border-top:1px solid var(--line)}
.tn-schnell-formel small{color:var(--faint)}
@media(max-width:720px){.tn-schnell{grid-template-columns:1fr}.tn-schnell-formel{grid-column:1}}

/* ---- Klaerung (Zielbild Abschnitt 32) ----
   Sie steht ganz oben und nur, solange etwas offen ist. Warmer Ton
   statt Rot: Ein unvollstaendiges Training ist kein Fehler, sondern
   ein normaler Zwischenstand (Abschnitt 3) - es soll auffallen, nicht
   alarmieren. */
.os-klaerung{background:var(--warnbg);border:1px solid var(--warn);border-radius:3px;
  padding:10px 12px;margin:0 0 14px}
.os-klar-kopf{display:flex;align-items:baseline;gap:10px;color:var(--warn);font-size:13px}
.os-klar-zahl{margin-left:auto;font-variant-numeric:tabular-nums;font-size:12.5px}
.os-klar-faellig{display:inline-block;margin-left:7px;padding:1px 5px;border-radius:2px;
  background:var(--warnbg);color:var(--warn);font-size:10.5px;font-weight:700;white-space:nowrap}
.os-klar-faellig.spaet{background:var(--errbg);color:var(--err)}
.os-klar-faellig.geplant{background:transparent;color:var(--faint);font-weight:400}
/* Aufgaben im Gate sind echte Kästchen, keine gemalten. Vorher stand
   dort ein «☐», das aussah wie eine Checkbox und keine war — wer
   klickte, bei dem passierte nichts. */
.os-klar-haken{display:flex;align-items:flex-start;gap:8px;cursor:pointer;width:100%}
.os-klar-haken input{margin:2px 0 0;flex:none;cursor:pointer}
.os-klar-haken input:disabled{cursor:default}
.os-klar-haken:has(input:disabled){cursor:default}

/* Die zwei Meilensteine. Sie stehen am Ende ihrer Phase und sehen aus
   wie das, was sie sind: eine bewusste Freigabe, kein Statusfeld.
   Ist sie gesetzt, tritt sie zurück — dann zählt nur noch, DASS sie
   gesetzt ist, und wann. */
.os-meilenstein{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;
  margin:10px 0 0;padding:9px 10px;background:var(--surface);border-radius:3px;font-size:12.5px}
.os-meilenstein .os-mute{flex:1;min-width:180px;line-height:1.45}
.os-meilenstein.bereit{border:1px solid var(--accent);background:#EAF2FB;padding:11px 12px}
.os-meilenstein-inhalt{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;flex:1;min-width:230px}
.os-meilenstein-inhalt>b{grid-column:1/-1;font-size:9.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--accent)}
.os-meilenstein-inhalt>strong{font-size:13px;color:var(--ink)}
.os-meilenstein-inhalt>.os-mute{grid-column:2;min-width:0}
.os-meilenstein.gesetzt{background:none;padding:6px 0}

/* Onboarding je Person: die Zahl, die den Nachzügler sichtbar macht. */
.tn-onboarding{margin:8px 0 0;font-size:12.5px}
.tn-onboarding.offen b{color:var(--warn)}

/* Firmenlage: eine Beobachtung mit Datum, keine Eigenschaft der Firma.
   Darum ruhig gesetzt — sie soll lesbar sein, nicht alarmieren. */
.fa-lage{display:flex;align-items:center;gap:9px;margin-bottom:8px;font-size:12.5px}
.fa-lage-text{margin:0 0 6px;font-size:13px;line-height:1.6}
.fa-lage-text i{color:var(--faint);font-style:normal}
/* Offene Punkte stehen einzeln untereinander, weil jeder einen
   Loesungsknopf traegt (Abschnitt 19: keine Warnung ohne Aktion).
   Erledigte duerfen sich zu zweit eine Zeile teilen - sie sind nur
   noch Bestaetigung. */
.os-klar-liste{list-style:none;margin:8px 0 0;padding:0;font-size:13px}
.os-klar-liste li{display:flex;gap:7px;align-items:baseline;min-width:0;padding:3px 0}
.os-klar-liste .zeichen{flex:none;width:12px}
.os-klar-text{min-width:0;flex:1 1 auto}
.os-klar-liste li.ok{color:var(--faint);display:inline-flex;width:calc(50% - 8px);padding:1px 0}
.os-klar-liste li.ok .zeichen{color:var(--ok);font-weight:750}
.os-klar-liste li.offen{color:var(--ink);border-bottom:1px solid rgba(138,85,16,.18)}
.os-klar-liste li.offen:last-of-type{border-bottom:0}
/* Der Loesungsknopf steht rechts und immer an derselben Stelle - man
   findet ihn, ohne die Zeile zu lesen. */
.os-klar-tun{flex:none;margin-left:auto;white-space:nowrap}
/* Die Sofort-Auswahl fuer kleine Entscheidungen (Kursmodell, Sprache,
   Form). Sie erscheint erst auf Klick, damit die Box keine Knopfwand
   wird. */
.os-klar-wahl{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.os-klar-wahl[hidden]{display:none}
/* Kurzes Aufblinken des Feldes, in das gesprungen wurde - ohne das
   landet der Cursor irgendwo und niemand sieht, wo. */
.os-hebt{outline:2px solid var(--accent);outline-offset:2px;
  animation:os-hebt-ab 1.6s ease-out}
@keyframes os-hebt-ab{0%{background:var(--warnbg)}100%{background:transparent}}
/* Ist alles geklaert, bleibt eine einzige ruhige Zeile - kein Bereich,
   der Platz fuer eine erledigte Liste beansprucht. */
.os-klar-fertig{margin:0 0 12px;font-size:12.5px;color:var(--ok)}
@media(max-width:640px){ .os-klar-liste{grid-template-columns:1fr} }

/* Die vollständige Aufgabenakte folgt derselben Phasenfolge wie das
   Trainingsboard. Erledigte Zeilen bleiben am Ort und treten zurück. */
.os-aufgaben-phasen{display:grid;gap:12px}
.os-aufgaben-phase{overflow:hidden;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.os-aufgaben-phase.aktiv{border-left:4px solid var(--accent)}
.os-aufgaben-phase.komplett{border-color:var(--okline,var(--line))}
.os-aufgaben-phase>header{display:flex;align-items:baseline;gap:12px;padding:10px 12px;
  border-bottom:1px solid var(--line);background:var(--surface2)}
.os-aufgaben-phase>header h4{margin:0;color:var(--ink);font-size:13px}
.os-aufgaben-phase>header span{margin-left:auto;color:var(--faint);font-size:11.5px;
  font-variant-numeric:tabular-nums}
.os-aufgaben-phase.komplett>header span{color:var(--ok)}
.os-aufgaben-phase>div{padding:0 10px}
.os-aufgaben-phase .os-aufgabe{border-width:0 0 1px;border-radius:0}
.os-aufgaben-phase .os-aufgabe:last-child{border-bottom:0}
.os-aufgaben-phase .os-aufgabe.spaet small{color:var(--err);font-weight:650}
.os-aufgaben-phase .os-aufgabe.fertig{background:transparent;opacity:.72}

/* Formular */
.os-formular{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
/* Zwischenueberschrift im Formular (os-kern.js: Eintrag mit «abschnitt»).
   Volle Rasterbreite, damit die zwei Spalten darunter unberuehrt bleiben.
   Der erste Abschnitt braucht keinen Abstand nach oben. */
.os-abschnitt{grid-column:1/-1;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);
  display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:11px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.os-abschnitt:first-child{margin-top:0;padding-top:0;border-top:0}
.os-abschnitt small{display:block;flex-basis:100%;margin-top:3px;font-size:11.5px;font-weight:400;
  letter-spacing:0;text-transform:none;color:var(--soft)}
/* Ein Abschnitt kann einen ganzen Block tragen (os-kern.js: f.inhalt) -
   etwa die Positionen mitten im Deal-Formular. */
.os-abschnitt-inhalt{grid-column:1/-1}
/* ---- Abschnitt «Angebot» im Deal ----
   Informell, formell und Direktauftrag sind drei gleichwertig erreichbare
   Einstiege in dieselbe Annahmekette. */
.os-angebotwege{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.os-angebotweg{border:1px solid var(--line);border-radius:3px;padding:12px 13px;
  background:var(--surface);display:flex;flex-direction:column}
.os-angebotweg .kopf{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600}
.os-angebotweg .kopf .sym{font-size:15px;line-height:1}
.os-angebotweg p{margin:5px 0 10px;font-size:12.5px;color:var(--faint);line-height:1.45}
/* mt:auto haelt die Knoepfe auf einer Linie, auch wenn die beiden
   Erklaerungen unterschiedlich lang umbrechen. */
.os-angebotweg .os-angebot-aktion{margin-top:auto;align-self:stretch;width:100%}
.os-angebot-unten{margin:24px 0 4px;padding:16px 0 0;border-top:2px solid var(--line)}
.os-angebot-unten>h4{margin:0 0 3px;font-size:12px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint)}
.os-angebot-unten>p{margin:0 0 12px;color:var(--soft);font-size:12.5px}
.os-angebotliste{margin-top:12px;font-size:13px}
.os-angebotzeile{display:flex;align-items:center;gap:8px;padding:7px 0;
  border-bottom:1px solid var(--line);min-width:0}
.os-angebotzeile:last-child{border-bottom:0}
.os-angebotzeile .nr{font-weight:600;font-variant-numeric:tabular-nums;flex:none}
.os-angebotzeile .wann{color:var(--faint);min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.os-angebotzeile .betrag{margin-left:auto;flex:none;font-variant-numeric:tabular-nums;color:var(--soft)}
@media(max-width:820px){.os-angebotwege{grid-template-columns:1fr}}
/* Ein «leiser» Abschnitt: da, aber zurueckhaltend. Alles danach bis zum
   naechsten Abschnitt wird kleiner und blasser. */
.os-abschnitt.leise{color:var(--line2)}
.os-abschnitt.leise~.os-feld label{color:var(--line2);font-size:10px}
.os-abschnitt.leise~.os-feld input,.os-abschnitt.leise~.os-feld select,
.os-abschnitt.leise~.os-feld textarea{font-size:12.5px;padding:5px 8px}
.os-abschnitt.leise~.os-feld small{color:var(--line2)}
.os-feld{display:flex;flex-direction:column;gap:3px;min-width:0}
.os-feld.breit{grid-column:1/-1}
.os-feld label{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;font-size:11px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:700}
.os-feld label b{color:var(--err)}
.os-pflichtstern{cursor:help;font-size:13px;line-height:1}
.os-form-hilfe{position:relative;display:inline-flex;align-items:center;justify-content:center;
  flex:none;width:16px;height:16px;border:1px solid var(--line2);border-radius:50%;background:var(--surface);
  color:var(--soft);font-size:10px;font-weight:800;line-height:1;letter-spacing:0;text-transform:none;
  cursor:help}
.os-form-hilfe:hover,.os-form-hilfe:focus{border-color:var(--accent);color:var(--accent);outline:none}
.os-form-hilfe:focus-visible{box-shadow:0 0 0 2px rgba(46,111,178,.2)}
.os-form-hilfe-text{position:absolute;z-index:30;top:calc(100% + 7px);left:-8px;width:max-content;
  max-width:min(300px,calc(100vw - 44px));padding:8px 10px;border:1px solid var(--line2);
  border-radius:3px;background:var(--ink);color:#fff;box-shadow:0 5px 16px rgba(15,34,48,.18);
  font-size:12px;font-weight:500;line-height:1.4;letter-spacing:0;text-align:left;text-transform:none;
  white-space:normal;visibility:hidden;opacity:0;transform:translate(var(--os-hilfe-x,0px),-2px);pointer-events:none;
  transition:opacity .12s ease,visibility .12s}
.os-form-hilfe:hover .os-form-hilfe-text,.os-form-hilfe:focus .os-form-hilfe-text{
  visibility:visible;opacity:1;transform:translate(var(--os-hilfe-x,0px),0)}
.os-feld input,.os-feld select,.os-feld textarea{padding:7px 9px;border:1px solid var(--line2);
  border-radius:2px;background:var(--surface);width:100%}
.os-geldfeld{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;
  border:1px solid var(--line2);border-radius:2px;background:var(--surface);overflow:hidden}
.os-geldfeld>span{padding:7px 9px;border-right:1px solid var(--line);color:var(--faint);
  font-size:12px;font-weight:700;letter-spacing:.05em}
.os-geldfeld>input{border:0!important;border-radius:0!important;min-width:0}
.os-geldfeld:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.deal-provision-status{grid-column:1/-1;display:flex;justify-content:space-between;gap:14px;
  align-items:center;padding:10px 12px;border:1px solid var(--line);border-left-width:3px;
  border-radius:3px;background:var(--surface2);font-variant-numeric:tabular-nums}
.deal-provision-status>div{display:flex;flex-direction:column;gap:2px}
.deal-provision-status small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.deal-provision-status>span{font-size:12px;color:var(--soft);text-align:right}
.deal-provision-status.provisorisch{border-left-color:var(--accent)}
.deal-provision-status.freigegeben{border-left-color:var(--ok)}
.deal-provision-status.fehlt{border-left-color:var(--warn)}
@media(max-width:620px){.deal-provision-status{align-items:flex-start;flex-direction:column}
  .deal-provision-status>span{text-align:left}}
.os-datum-eingabe{position:relative;display:flex;align-items:center;width:100%;min-width:0;
  border:1px solid var(--line2);border-radius:2px;background:var(--surface);padding:0 5px}
.os-datum-eingabe:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.os-datum-eingabe.ungueltig{border-color:var(--err)}
.os-datum-eingabe .os-datum-teil{flex:0 0 auto;width:2.35em;border:0!important;
  border-radius:0;background:transparent!important;padding:7px 2px!important;text-align:center;
  font-variant-numeric:tabular-nums;outline:0;min-width:0}
.os-datum-eingabe .os-datum-jahr{width:4.65em}
.os-datum-punkt{flex:none;color:var(--faint);font-variant-numeric:tabular-nums}
.os-datum-kalender{margin-left:auto;flex:none;width:28px;height:28px;padding:5px;border:0;
  border-radius:2px;background:transparent;color:var(--faint);cursor:pointer;display:grid;place-items:center}
.os-datum-kalender:hover,.os-datum-kalender:focus-visible{color:var(--accent);background:var(--surface2)}
.os-datum-kalender svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.os-datum-original{position:absolute!important;width:1px!important;height:1px!important;right:4px;
  bottom:2px;padding:0!important;border:0!important;opacity:0;pointer-events:none}
.os-datum-textzeile{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;margin-top:3px}
.os-datum-textzeile .os-datum-textfeld{min-width:0;padding:6px 8px;font-size:12.5px}
.os-datum-textzeile .os-datum-text-uebernehmen{white-space:nowrap}
.os-datum-text-status{grid-column:1/-1;min-height:1.3em;color:var(--faint);font-size:11px}
.os-datum-textzeile.ungueltig .os-datum-textfeld{border-color:var(--err)}
.os-datum-textzeile.ungueltig .os-datum-text-status{color:var(--err)}
.fc-klaer-dialog .os-datum-eingabe{min-height:46px}
.os-feld.aus-positionen input{background:var(--surface2);color:var(--ink);font-weight:650}
.os-feld.aus-positionen small{color:var(--ok)}
.os-feld textarea{resize:vertical}
.os-feld small{font-size:11.5px}
.os-annahme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-top:16px}
.os-annahme-grid .breit{grid-column:1/-1}
.os-annahme-positionen{margin-top:20px}
.os-annahme-positionen h4{margin-bottom:7px}
.os-annahme-position{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:11px 12px;border:1px solid var(--line);border-bottom:0;background:var(--surface);cursor:pointer}
.os-annahme-position:first-of-type{border-radius:4px 4px 0 0}
.os-annahme-position:last-child{border-bottom:1px solid var(--line);border-radius:0 0 4px 4px}
.os-annahme-position:hover{background:var(--surface2)}
.os-annahme-position span{display:flex;flex-direction:column;gap:2px;min-width:0}
.os-annahme-position small{color:var(--faint)}
.os-annahme-position strong{white-space:nowrap}
@media(max-width:620px){.os-annahme-grid{grid-template-columns:1fr}.os-annahme-grid .breit{grid-column:auto}}
.os-schalter{display:flex;align-items:center;gap:7px;padding:7px 0;font-size:13px;color:var(--ink)}
/* Nicht editierbare Auswahlfelder (Steven, 14.08.2026: kein Dropdown, das
   keines ist). Reiner Text statt eines disabled <select> - sieht auch
   nicht mehr wie eine Bedienfläche aus. */
.os-nurlesen{margin:0;padding:7px 0;font-size:13px;color:var(--ink)}
.os-schalter input{width:auto}

/* Mehrfachauswahl — Kontrollkästchen statt <select multiple>, bei
   einer Handvoll Optionen schneller erfassbar (Kontakt-Rollen). */
.os-mehrfach{display:flex;flex-direction:column;gap:1px;padding:3px 0}
.os-mehrfach-opt{display:flex;align-items:center;gap:7px;padding:3px 0;font-size:13px;
  color:var(--ink);cursor:pointer}
.os-mehrfach-opt input{width:auto}

/* Auswahl mit Tippen — für Listen, die zum Scrollen zu lang sind
   (Ansprechpartner: knapp 2'500 Kontakte). */
.os-such{position:relative}
.os-such .os-such-feld{padding-right:26px}
.os-such-x{position:absolute;right:3px;top:3px;border:0;background:none;padding:2px 5px;
  font:inherit;font-size:15px;line-height:1.2;color:var(--line2);cursor:pointer;border-radius:2px}
.os-such-x:hover{color:var(--ink)}
.os-such-liste{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 2px);
  margin:0;padding:4px;list-style:none;max-height:246px;overflow:auto;
  background:var(--surface);border:1px solid var(--line2);border-radius:2px;
  box-shadow:0 6px 20px rgba(12,31,45,.16)}
.os-such-liste li{padding:5px 8px;border-radius:2px;font-size:13px;cursor:pointer}
.os-such-liste li small{color:var(--faint);margin-left:6px}
.os-such-liste li:hover,.os-such-liste li.markiert{background:var(--surface2)}
.os-such-liste li.gruppe{padding:9px 8px 3px;font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint);font-weight:700;cursor:default}
.os-such-liste li.leer{color:var(--faint);font-size:12px;cursor:default}
.os-such-liste li.gruppe:hover,.os-such-liste li.leer:hover{background:none}

/* Rückmeldung */
.os-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:3px;font-size:13px;
  opacity:0;pointer-events:none;transition:.2s;z-index:60;max-width:90vw}
.os-toast.zeigen{opacity:1;transform:translateX(-50%) translateY(0)}
.os-toast.fehler{background:var(--err);color:#fff}

/* Anmeldung */
#anmeldung{position:fixed;inset:0;background:var(--ground);display:flex;align-items:center;justify-content:center;z-index:80}
.karte{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:28px;width:min(380px,92vw)}
.karte h1{font-size:19px;margin:0 0 4px}
.karte p.sub{color:var(--faint);font-size:13px;margin:0 0 18px}
.karte label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:700;margin:12px 0 3px}
.karte input{width:100%;padding:8px 10px;border:1px solid var(--line2);border-radius:2px;background:var(--surface)}
.karte .os-btn{width:100%;margin-top:18px}
.fehlerText{color:var(--err);font-size:12.5px;margin-top:10px;display:none}
.fehlerText.zeigen{display:block}

@media(max-width:1100px){.hauptnav{order:3;width:100%;border-top:1px solid var(--line);padding-top:7px}}
@media(max-width:820px){.unternav{padding:0 10px}
  .os-formular{grid-template-columns:1fr}}

/* ============================================================
   Dienstelandschaft (.dl-) — die grafische Sicht der Dienste-Seite.

   Eigenes Praefix, damit keine bestehende Regel beruehrt wird. Alle
   Farben kommen aus den Variablen oben; hier steht kein einziger
   fester Farbwert ausser den Linienarten, die bewusst die vorhandenen
   Zustandsfarben aufgreifen (accent/termin/ok/warn).

   Bewusst KEIN Force-Directed-Layout: die Karten liegen im normalen
   Fluss innerhalb ihrer Zone. Dieselben Daten ergeben dadurch immer
   dieselbe Anordnung — ein Dienst wandert nie, nur weil man neu laedt.
   ============================================================ */
.dl-huelle{position:relative;overflow:hidden;background:var(--surface2);
  border:1px solid var(--line);border-radius:3px;height:calc(100dvh - 190px);
  min-height:500px;cursor:grab}
.dl-huelle.zieht{cursor:grabbing}
.dl-huelle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* In der Landkarte wandern Ueberschrift und Sicherheitserklaerung in
   «Legende & Hinweise». So beginnt die eigentliche Arbeitsflaeche ohne
   Informationsverlust deutlich weiter oben. */
#osInhalt:has(.dl-huelle){padding-top:10px}
#osInhalt:has(.dl-huelle)>.os-kopf,
#osInhalt:has(.dl-huelle)>.os-hinweis{display:none}
#osInhalt:has(.dl-huelle) .dienste-steuerung-titel{display:inline}

/* Die Buehne wird als Ganzes verschoben und skaliert. Weil Zoom nur
   hier haengt, bleiben alle Messungen fuer die Linien unskaliert und
   damit exakt — sonst muesste jede Koordinate durch den Zoom geteilt
   werden, und Rundungsfehler saehen aus wie verrutschte Linien. */
.dl-buehne{position:absolute;top:0;left:0;transform-origin:0 0;padding:22px;
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px;will-change:transform}

.dl-svg{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;z-index:2}

.dl-zone{position:relative;z-index:1;background:var(--surface);border:1px solid var(--line);
  border-radius:4px;padding:11px 12px 13px;min-width:212px;max-width:470px}
.dl-zone-kopf{display:flex;align-items:baseline;gap:8px;margin:0 0 9px;padding-bottom:7px;
  border-bottom:1px solid var(--line)}
.dl-zone-kopf b{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.dl-zone-kopf small{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums;margin-left:auto}
.dl-zone-leer{border-style:dashed}
.dl-karten{display:flex;flex-wrap:wrap;gap:8px}

.dl-karte{position:relative;width:196px;text-align:left;background:var(--surface);
  border:1px solid var(--line2);border-radius:3px;padding:8px 9px;cursor:pointer;
  display:flex;flex-direction:column;gap:5px;transition:opacity .14s,border-color .14s,box-shadow .14s}
.dl-karte:hover{border-color:var(--accent)}
.dl-karte-titel{display:flex;align-items:center;gap:6px;font-weight:650;font-size:13px;line-height:1.25}
.dl-karte-titel span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-karte-zeile{display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-size:11.5px;color:var(--soft)}
.dl-karte-geld{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.dl-karte-geld.unbekannt{font-weight:400;color:var(--faint)}
.dl-karte-takt{font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}

/* Zuruecktreten statt verschwinden: man soll sehen, WOVON etwas
   zuruecktritt. Ausgeblendete Karten wuerden die Anordnung sprengen. */
.dl-karte.dl-fern{opacity:.2}
.dl-karte.dl-nah{border-color:var(--accent2)}
.dl-karte.dl-gewaehlt{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
.dl-zone.dl-fern .dl-zone-kopf{opacity:.35}

/* Ein Punkt am Kartenrand zeigt, dass hier eine Linie ansetzt — sonst
   sieht man bei dicht liegenden Karten nicht, welche gemeint ist. */
.dl-karte-marke{position:absolute;top:-4px;right:-4px;width:8px;height:8px;border-radius:50%;
  background:var(--accent);border:1.5px solid var(--surface)}

.dl-leiste{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.dl-leiste select{font-size:12.5px;padding:5px 8px;border:1px solid var(--line2);
  border-radius:2px;background:var(--surface);color:var(--ink);max-width:186px}
.dl-umfang{display:inline-flex;gap:4px;padding-right:8px;border-right:1px solid var(--line)}
.dl-filter-mehr{position:relative;font-size:12.5px}
.dl-filter-mehr summary{list-style:none;cursor:pointer;padding:5px 9px;border:1px solid var(--line2);
  border-radius:2px;background:var(--surface);color:var(--ink);white-space:nowrap}
.dl-filter-mehr summary::-webkit-details-marker{display:none}
.dl-filter-mehr summary::after{content:" ▾";color:var(--faint)}
.dl-filter-mehr[open] summary{border-color:var(--accent)}
.dl-filter-mehr-inhalt{position:absolute;z-index:8;top:calc(100% + 5px);left:0;width:410px;
  display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px;background:var(--surface);
  border:1px solid var(--line);box-shadow:0 8px 24px rgba(15,34,48,.13)}
.dl-filter-mehr-inhalt select{max-width:none;width:100%}
.dl-zoom{position:absolute;top:10px;right:10px;z-index:4;display:inline-flex;gap:0;
  background:var(--surface);box-shadow:0 2px 8px rgba(15,34,48,.1)}
.dl-zoom .os-fbtn{border-radius:0;margin-left:-1px;min-width:32px;text-align:center}
.dl-zoom .os-fbtn:first-child{border-radius:2px 0 0 2px;margin-left:0}
.dl-zoom .os-fbtn:last-child{border-radius:0 2px 2px 0}

.dl-legende{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:0;
  font-size:11.5px;color:var(--soft)}
.dl-legende i{display:inline-block;width:26px;height:0;border-top-width:2px;
  vertical-align:middle;margin-right:6px}
.dl-legende span{display:inline-flex;align-items:center;white-space:nowrap}
.dl-beziehungsfilter{display:inline-flex;align-items:center;gap:0;padding:4px 6px;border:1px solid transparent;
  border-radius:2px;background:transparent;color:var(--soft);font:inherit;cursor:pointer;opacity:.45}
.dl-beziehungsfilter:hover{border-color:var(--line2);opacity:.8}
.dl-beziehungsfilter[aria-pressed="true"]{background:var(--surface2);border-color:var(--line);opacity:1}
.dl-kernhinweis{margin:0 0 9px;padding:7px 9px;border-left:3px solid var(--accent);
  background:var(--surface2);color:var(--soft);font-size:11.5px}

/* Erklaerungen sind weiterhin vollstaendig vorhanden, belegen aber
   nicht permanent den kostbaren Platz unter der Karte. */
.dl-karteninfo{position:absolute;left:10px;bottom:10px;z-index:4;max-width:calc(100% - 20px);
  font-size:11.5px;color:var(--soft)}
.dl-karteninfo>summary{display:inline-flex;align-items:center;list-style:none;cursor:pointer;
  padding:7px 10px;border:1px solid var(--line2);border-radius:3px;background:var(--surface);
  color:var(--ink);font-weight:700;box-shadow:0 2px 8px rgba(15,34,48,.1)}
.dl-karteninfo>summary::-webkit-details-marker{display:none}
.dl-karteninfo>summary::after{content:" ▴";margin-left:5px;color:var(--faint)}
.dl-karteninfo[open]{width:min(760px,calc(100% - 20px))}
.dl-karteninfo[open]>summary{border-radius:3px 3px 0 0}
.dl-karteninfo[open]>summary::after{content:" ▾"}
.dl-karteninfo-inhalt{max-height:min(48vh,390px);overflow:auto;padding:10px;
  border:1px solid var(--line2);background:var(--surface);box-shadow:0 8px 24px rgba(15,34,48,.14)}
.dl-kartenuebersicht{margin:0 0 7px;color:var(--ink)}
.dl-karteninfo-sicherheit{margin:0 0 9px;padding-bottom:9px;border-bottom:1px solid var(--line);
  color:var(--faint)}
.dl-legende-hilfe{padding:4px 6px;color:var(--faint)}
.dl-karteninfo .dl-fuss{padding-top:9px;border-top:1px solid var(--line)}
.dl-karteninfo .dl-zuordnungshinweis{margin:9px 0 0;padding:8px 10px}

/* Der Detailstreifen liegt ueber der Buehne, nicht daneben: die Karte
   soll beim Lesen sichtbar bleiben, samt der Hervorhebung. */
.dl-detail{position:absolute;top:12px;right:12px;bottom:12px;width:min(360px,calc(100% - 24px));
  z-index:5;overflow:auto;background:var(--surface);border:1px solid var(--line2);
  border-radius:4px;padding:14px 15px 18px;box-shadow:0 10px 30px rgba(15,34,48,.16)}
.dl-detail h3{margin:0 0 2px;font-size:15px;display:flex;align-items:center;gap:7px}
.dl-detail .dl-detail-sub{color:var(--soft);font-size:12px;margin:0 0 12px}
.dl-detail dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0 0 13px;font-size:12.5px}
.dl-detail dt{color:var(--faint)}
.dl-detail dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.dl-detail h4{margin:13px 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.dl-detail-zu{position:absolute;top:7px;right:8px;border:0;background:var(--surface2);
  color:var(--soft);font-size:20px;line-height:1;cursor:pointer;width:30px;height:30px;border-radius:50%}
.dl-detail-zu:hover{color:var(--ink)}
.dl-detail-notiz{font-size:12px;color:var(--soft);white-space:pre-wrap;margin:0}

.dl-fuss{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  margin-top:9px;font-size:11.5px;color:var(--faint)}

@media(max-width:820px){
  .dl-detail{position:absolute;top:auto;left:8px;right:8px;bottom:8px;width:auto;
    max-height:min(70%,560px);border:1px solid var(--line2)}
  .dl-huelle{min-height:420px}
  .dl-umfang{width:100%;border-right:0;padding-right:0}
  .dl-filter-mehr-inhalt{position:static;width:min(410px,calc(100vw - 48px));margin-top:5px}
}


/* ---------- Direktbearbeitung in der Zelle (OS.liste, opt-in) ----------
   Zurueckhaltende Kennzeichnung: eine gepunktete Unterkante sagt «hier
   laesst sich tippen», ohne die Liste in ein Formular zu verwandeln.
   Volle Rahmen um jede Zelle waeren auf 14 Spalten unruhig. */
td.os-zelle-bearb{cursor:text;position:relative}
td.os-zelle-bearb::after{content:"";position:absolute;left:6px;right:6px;bottom:3px;
  border-bottom:1px dotted var(--line2);pointer-events:none}
td.os-zelle-bearb:hover{background:var(--surface2)}
td.os-zelle-bearb:hover::after{border-bottom-color:var(--accent)}
td.os-zelle-bearb:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
td.os-zelle-aktiv{background:var(--surface2);padding:2px 4px!important}
td.os-zelle-aktiv::after{display:none}
td.os-zelle-laeuft{opacity:.55}

.os-zelle-feld{width:100%;min-width:60px;padding:3px 5px;border:1px solid var(--accent);
  border-radius:2px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px}
.os-zelle-feld:focus{outline:none;box-shadow:0 0 0 2px rgba(44,106,175,.18)}
textarea.os-zelle-feld{resize:vertical;line-height:1.35}


/* Die Dienste-Liste ist eine Arbeitsflaeche mit 17 Spalten. Sie scrollt
   waagrecht, statt die Zellen zu stauchen — gestauchte Etiketten
   schoben sich sonst ueber die Nachbarspalte. Bewusst nur hier: eine
   Mindestbreite in .os-tabelle wuerde jede Liste im System verbreitern. */
.dienste-steuerung{position:sticky;top:0;z-index:12;margin:-6px 0 10px;padding:6px 0 1px;
  background:var(--ground);box-shadow:0 5px 8px -8px rgba(12,31,45,.4)}
.dienste-steuerung .os-leiste{margin-bottom:9px}
.dienste-steuerung-titel{display:none;color:var(--soft);font-size:11.5px;font-weight:700}
.dv-kopf{margin-bottom:7px}
.dv-ansichten{display:inline-flex;align-items:stretch;border:1px solid var(--line2);border-radius:3px;overflow:hidden}
.dv-ansichten .os-fbtn{border:0;border-left:1px solid var(--line);border-radius:0;min-height:32px}
.dv-ansichten .os-fbtn:first-child{border-left:0}
.dv-ansichten .os-fbtn[aria-selected="true"]{background:var(--ink);color:var(--surface)}
.dv-ansichten .os-fbtn b{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;
  margin-left:4px;padding:0 5px;border-radius:10px;background:var(--errbg);color:var(--err);font-size:10px}
.dv-listenwerkzeug{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;
  color:var(--faint);font-size:11.5px}
.dv-status{display:flex;gap:0;flex-wrap:wrap;margin:1px 0 10px;color:var(--soft);font-size:12px}
.dv-status span+span::before{content:"·";margin:0 8px;color:var(--line2)}
.dv-kostenraster{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:12px}
.dv-kostenkarte{display:flex;align-items:center;gap:13px;min-height:76px;padding:12px 14px;background:var(--surface);
  border:1px solid var(--line);border-radius:4px}
.dv-kostenkarte>span{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:9px;
  background:var(--surface2);color:var(--accent);font-size:11px;font-weight:800}
.dv-kostenkarte b{display:block;font-size:18px;font-variant-numeric:tabular-nums}
.dv-kostenkarte small{display:block;margin-top:3px;color:var(--soft);font-size:11.5px}
.dv-kosten-total{border-color:var(--accent);background:var(--accentbg)}
.dv-kosten-total>span{background:var(--accent);color:#fff;font-size:20px}
.dv-kosten-total small{max-width:370px;line-height:1.35}
.dv-raster{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr);gap:12px;align-items:start}
.dv-seite{display:grid;gap:12px}
.dv-block{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:4px}
.dv-block>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;
  border-bottom:1px solid var(--line)}
.dv-block>header h2{margin:0 0 2px;font-size:15px}.dv-block>header p{margin:0;color:var(--soft);font-size:11.5px}
.dv-verlaengerung{display:grid;grid-template-columns:minmax(150px,1.25fr) 105px minmax(130px,.8fr) auto 58px;
  gap:10px;align-items:center;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--line);
  background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.dv-verlaengerung:last-child{border-bottom:0}.dv-verlaengerung:hover{background:var(--surface2)}
.dv-verlaengerung>span{font-size:11.5px;min-width:0}.dv-verlaengerung>span>small{display:block;color:var(--faint);margin-top:2px}
.dv-dienst{display:flex;align-items:center;gap:8px}.dv-dienst b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv-aktion{color:var(--accent);font-weight:700;text-align:right}.dv-pruefkategorien,.dv-sparliste{display:grid}
.dv-pruefkategorien button,.dv-sparliste button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;
  align-items:center;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:var(--surface);
  color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.dv-pruefkategorien button:last-child,.dv-sparliste button:last-child{border-bottom:0}
.dv-pruefkategorien button:hover,.dv-sparliste button:hover{background:var(--surface2)}
.dv-pruefkategorien b{min-width:24px;padding:3px 7px;border-radius:12px;background:var(--errbg);color:var(--err);text-align:center}
.dv-pruefkategorien i,.dv-sparliste i{color:var(--accent);font-style:normal}
.dv-sparliste button>span b,.dv-sparliste button>span small{display:block}.dv-sparliste small{margin-top:2px;color:var(--soft)}
.dv-spar-dienst,.dv-dienstname{display:flex;align-items:center;gap:8px;min-width:0}
.dv-spar-dienst>span,.dv-dienstname>span{display:grid;gap:2px;min-width:0}
.dv-dienstname small{display:block}
.dv-sparliste strong{font-size:11.5px;font-variant-numeric:tabular-nums}
.dv-sicherheit{margin-top:11px;color:var(--soft);font-size:11.5px}.dv-sicherheit summary{cursor:pointer;color:var(--faint)}
.dv-sicherheit p{max-width:900px;line-height:1.5}

.dl-pruefliste{margin:0 0 12px;border:1px solid var(--line);background:var(--surface);border-radius:4px;overflow:hidden}
.dl-pruefliste-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 14px 9px;border-bottom:1px solid var(--line)}
.dl-pruefliste-kopf h2{font-size:16px;margin:0 0 2px}.dl-pruefliste-kopf p{font-size:12px;color:var(--soft);margin:0}
.dl-pruefliste-filter{display:flex;gap:6px;overflow:auto;padding:8px 10px;border-bottom:1px solid var(--line);scrollbar-width:thin}
.dl-pruefliste-filter .os-fbtn{flex:none;white-space:nowrap}.dl-prueftabelle{overflow:auto}
.dl-pruefkopf,.dl-pruefzeile{display:grid;grid-template-columns:82px minmax(135px,.85fr) minmax(220px,1.5fr)
  minmax(135px,.9fr) minmax(115px,.75fr) minmax(120px,.8fr) 132px;gap:10px;align-items:center;min-width:1110px}
.dl-pruefkopf{position:sticky;top:0;z-index:2;padding:8px 12px;background:var(--surface2);border-bottom:1px solid var(--line);
  color:var(--faint);font-size:9.5px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.dl-pruefzeile{padding:9px 12px;border-bottom:1px solid var(--line);font-size:12px}
.dl-pruefzeile:last-child{border-bottom:0}.dl-pruefzeile:hover{background:var(--surface2)}
.dl-pruefzeile>span{min-width:0}.dl-pruefzeile>span>b,.dl-pruefzeile>span>small{display:block}
.dl-pruefzeile>span>small{margin-top:2px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dl-pruef-dienst{display:flex;align-items:center;gap:8px;min-width:0;padding:4px 0;border:0;background:transparent;
  text-align:left;color:var(--ink);font-weight:750;cursor:pointer}
.dl-pruef-dienst>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-pruef-dienst:hover{text-decoration:underline;color:var(--accent)}
.dl-prio{display:flex;align-items:center;gap:6px}.dl-prio i{width:8px;height:8px;border-radius:50%;background:var(--accent2)}
.dl-prio.hoch i{background:var(--err)}.dl-prio.mittel i{background:var(--warn)}
.dl-quelle{display:inline-block;padding:3px 6px;border:1px solid var(--line2);border-radius:3px;font-style:normal;font-size:10.5px}
.dl-quelle.ok{border-color:var(--ok);background:var(--okbg);color:var(--ok)}
.dl-quelle.info{border-color:var(--accent2);background:var(--surface2);color:var(--accent)}
.dl-quelle.offen{border-style:dashed;color:var(--faint)}.dl-pruefaktion{width:100%;white-space:nowrap}
.dl-pruefziel{outline:3px solid var(--focus);outline-offset:4px;transition:outline-color .3s}
.dienste-tabelle .os-tabelle{max-height:calc(100vh - 165px);overflow:auto;position:relative}
.dienste-tabelle .os-tabelle table{min-width:2040px}
.dienste-tabelle .os-tabelle thead{position:sticky;top:0;z-index:6}
.dienste-tabelle .os-tabelle thead th{box-shadow:inset 0 -1px 0 var(--line)}
.dienste-tabelle .os-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;vertical-align:bottom}

/* Dienste-Entscheidung: bewusst eine Frage pro Bildschirm. Die eingeladene
   Person soll urteilen koennen, ohne die Verwaltungsansicht verstehen zu
   muessen. Antworten bleiben Empfehlungen und werden lokal gesammelt. */
.de-ansicht{max-width:820px;margin:18px auto 40px;padding:0 16px}
#osInhalt:has(.de-ansicht){padding-top:10px}
#osInhalt:has(.de-ansicht)>.os-kopf{display:none}
.de-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:15px}
.de-kopf h2{margin:2px 0 6px;font-size:24px}.de-kopf p{margin:0;color:var(--soft);line-height:1.45}
.de-ueberzeile{font-size:10.5px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}
.de-fortschritt{height:7px;border-radius:8px;background:var(--surface2);overflow:hidden}
.de-fortschritt span{display:block;height:100%;background:var(--accent);transition:width .2s}
.de-stand{margin:7px 0 14px;color:var(--faint);font-size:12px;text-align:right}
.de-karte,.de-fertig{padding:24px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:0 8px 26px rgba(15,34,48,.08)}
.de-marke{display:flex;align-items:center;gap:15px;padding-bottom:19px;border-bottom:1px solid var(--line)}
.de-marke h2{margin:2px 0 0;font-size:25px}.de-marke p{margin:3px 0 0;color:var(--faint)}
.de-marke>div>span{font-size:10.5px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.de-fakten{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:1px;margin:18px 0;background:var(--line)}
.de-fakten section{padding:13px 14px;background:var(--surface2)}
.de-fakten span,.de-fakten strong{display:block}.de-fakten span{margin-bottom:5px;color:var(--faint);font-size:10px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.de-fakten strong{font-size:13px;line-height:1.4}
.de-antworten{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin:22px 0 8px;padding:0;border:0}
.de-antworten legend{width:100%;margin-bottom:10px;font-size:15px;font-weight:700}
.de-antwort{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:10px;border:1px solid var(--line2);border-radius:4px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.de-antwort:hover,.de-antwort:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px rgba(47,111,179,.12)}
.de-antwort.ja:hover{border-color:var(--ok);background:var(--okbg)}.de-antwort.nein:hover{border-color:var(--err);background:var(--errbg)}
.de-antwort.unsicher:hover{border-color:var(--warn);background:var(--warnbg)}
.de-sicherheit,.de-login-hinweis{margin:12px 0 0;color:var(--faint);font-size:11.5px;line-height:1.45;text-align:center}
.de-fertig{text-align:center}.de-fertig>span{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 12px;border-radius:50%;background:var(--okbg);color:var(--ok);font-size:25px;font-weight:800}
.de-fertig h2{margin:0 0 5px}.de-fertig p{margin:0 auto 18px;max-width:500px;color:var(--soft)}
.de-ergebnisse{margin-top:14px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.de-ergebnisse summary{cursor:pointer;padding:11px 13px;font-size:12.5px;font-weight:700}
.de-ergebnisse>div{padding:0 13px 8px}.de-ergebnisse p{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;margin:0;padding:8px 0;border-top:1px solid var(--line)}
.de-ergebnisse p>span{display:flex;align-items:center;gap:8px;min-width:0}.de-ergebnisse em{font-style:normal;font-size:11.5px;font-weight:700}
.de-ergebnisse em.ja{color:var(--ok)}.de-ergebnisse em.nein{color:var(--err)}.de-ergebnisse em.unsicher{color:var(--warn)}
@media(max-width:680px){.de-ansicht{margin-top:10px;padding:0}.de-kopf{display:grid}.de-kopf .os-fbtn{justify-self:start}.de-karte,.de-fertig{padding:17px}.de-fakten,.de-antworten{grid-template-columns:1fr}.de-ergebnisse p{grid-template-columns:1fr auto}.de-ergebnisse em{grid-column:1}.de-marke h2{font-size:21px}}
@media(max-height:720px){.dienste-tabelle .os-tabelle{max-height:calc(100vh - 125px)}}
@media(max-width:760px){
  .dienste-steuerung-titel{display:inline}
  .dienste-steuerung input[type=search]{order:4;width:100%;min-width:0}
  .dv-ansichten{order:5;width:100%}.dv-ansichten .os-fbtn{flex:1}
  .dv-raster{grid-template-columns:1fr}.dv-kostenkarte{min-height:66px}
  .dv-verlaengerung{grid-template-columns:minmax(130px,1fr) 94px auto}
  .dv-verlaengerung>span:nth-child(3),.dv-verlaengerung>span:nth-child(4){display:none}
}
@media(max-width:1080px){.dv-raster{grid-template-columns:1fr}.dv-seite{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.dv-seite{grid-template-columns:1fr}}

/* Der freiwillige Fokusmodus blendet Kopftexte und die allgemeine
   Werkzeugzeile aus, behaelt aber Filter und Zoom erreichbar. Native
   Vollbildsteuerung sorgt dafuer, dass Esc immer ein verlaesslicher
   Rueckweg bleibt. */
.dienste-arbeitsplatz:fullscreen,.dienste-arbeitsplatz:-webkit-full-screen{
  display:flex;flex-direction:column;padding:8px 10px;background:var(--ground);overflow:hidden}
.dienste-arbeitsplatz:fullscreen .dienste-steuerung,
.dienste-arbeitsplatz:-webkit-full-screen .dienste-steuerung{position:static;margin:0 0 6px;padding:0;flex:none}
.dienste-arbeitsplatz:fullscreen .dienste-steuerung>.os-leiste,
.dienste-arbeitsplatz:-webkit-full-screen .dienste-steuerung>.os-leiste{display:none}
.dienste-arbeitsplatz:fullscreen #osListe,
.dienste-arbeitsplatz:-webkit-full-screen #osListe{display:flex;flex:1;min-height:0}
.dienste-arbeitsplatz:fullscreen .dl-huelle,
.dienste-arbeitsplatz:-webkit-full-screen .dl-huelle{height:100%!important;min-height:0;flex:1}


/* ---------- Dienstkarte, zweite Fassung (ADR-2026-08-27-02) ----------
   Die Karte trägt jetzt Produkt, Anbieter, Zweck und ZWEI Achsen statt
   einem Status. Sie wird dadurch höher — das ist gewollt: eine Karte,
   die drei Fragen beantwortet, darf nicht aussehen wie eine, die eine
   beantwortet. */
.dl-karte{width:214px}
.dl-karte-anbieter{font-size:10.5px;color:var(--faint);margin-top:-3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-karte-zweck{font-size:11.5px;color:var(--soft);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dl-karte-achsen{display:flex;flex-wrap:wrap;gap:4px}
.dl-karte-geldzeile{display:flex;align-items:baseline;justify-content:space-between;gap:6px;
  border-top:1px solid var(--line);padding-top:5px;margin-top:1px}
.dl-karte-geldlabel{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.dl-buehne.dl-kompakt .dl-karte{width:190px;padding:7px 8px;gap:4px}
.dl-buehne.dl-kompakt .dl-karte-anbieter{display:none}
.dl-buehne.dl-kompakt .dl-karte-achsen .os-chip:not(:first-child){display:none}
.dl-buehne.dl-kompakt .dl-zone{padding:9px;min-width:205px}

/* «Ungeklärt» ist KEIN Etikett wie die anderen.
   Ein gefülltes Chip sähe aus wie eine getroffene Entscheidung —
   gestrichelt und blass sagt: hier fehlt die Antwort noch. */
.os-chip.dl-offen{background:transparent;border:1px dashed var(--line2);
  color:var(--faint);font-weight:600}
.os-chip.dl-paket{background:#e8f2fc;border-color:var(--accent2);color:var(--accent);
  font-weight:700;white-space:normal;line-height:1.25}
.dl-karte.dl-viel-offen{border-left:3px solid var(--line2)}

/* Betonung aus werteliste.merkmale, nicht aus dem Code. */
.os-chip.dl-gut{background:var(--okbg);border-color:var(--ok);color:var(--ok)}
.os-chip.dl-warnung{background:var(--warnbg);border-color:var(--warn);color:var(--warn)}
.os-chip.dl-kritisch{background:var(--errbg);border-color:var(--err);color:var(--err)}


/* ---------- Logo eines Dienstes ----------
   Bild und Initialen liegen übereinander. Sichtbar ist zunächst NUR
   das Kürzel; das Bild blendet es aus, sobald es geladen ist. Ein
   fehlendes oder unerreichbares Logo fällt damit lautlos zurück,
   statt als kaputtes Bild zu erscheinen. */
.dl-logo{position:relative;flex:none;display:inline-flex;align-items:center;
  justify-content:center;border-radius:2px;overflow:hidden;vertical-align:-2px}
.dl-logo-initialen{position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;background:var(--surface2);border:1px solid var(--line2);
  border-radius:2px;color:var(--faint);font-weight:700;letter-spacing:0}
.dl-logo-bild{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  background:var(--surface);border-radius:2px;opacity:0}
.dl-logo-bild.ist-geladen{opacity:1}


/* ---------- Detailbereich: Antworten, keine Feldliste ---------- */
.dl-detail h4{margin:15px 0 5px;font-size:11.5px;letter-spacing:.03em;text-transform:none;
  font-weight:700;color:var(--ink)}
.dl-antwort{margin:0 0 3px;font-size:12.5px;line-height:1.45}
/* «Ungeklärt» sieht anders aus als eine Antwort — sonst liest man
   darüber hinweg, als stünde dort etwas. */
.dl-antwort-offen{color:var(--faint);font-style:italic;
  border-left:2px dashed var(--line2);padding-left:8px}
.dl-antwort-offen small{font-style:normal;display:block;margin-top:2px;font-size:11px}
.dl-fehlt{color:var(--faint);font-style:italic}
.dl-nachbar{font-size:12.5px;padding:5px 0;border-top:1px solid var(--line)}
.dl-nachbar:first-of-type{border-top:0}
.dl-wichtig{padding:13px 0;border-top:1px solid var(--line)}
.dl-wichtig-zweck{padding:12px;background:var(--surface2);border:1px solid var(--line);
  margin:0 -2px 3px}
.dl-wichtig-label{display:block;margin-bottom:7px;font-size:10.5px;font-weight:750;
  letter-spacing:.07em;text-transform:uppercase;color:var(--soft)}
.dl-zweck{margin:0 0 10px;font-size:14px;line-height:1.45;color:var(--ink)}
.dl-nutzen{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;
  font-size:12px;color:var(--soft)}
.dl-wichtig h4{margin:8px 0 3px;font-size:11.5px;color:var(--soft)}
.dl-wichtig-kosten .dl-antwort:first-of-type{font-size:14px}
.dl-keine{margin:3px 0 7px;font-size:12px;color:var(--faint)}
.dl-weitere{margin-top:4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dl-weitere summary{cursor:pointer;padding:10px 0;font-size:12px;font-weight:650;color:var(--soft)}
.dl-weitere summary:hover{color:var(--ink)}
.dl-weitere-inhalt{padding:0 0 10px}
.dl-detail-knoepfe{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;
  padding-top:12px;border-top:1px solid var(--line)}
.dl-verbindung{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 4px;font-size:13px}
.dl-verbindung-pfeil{color:var(--faint);font-size:15px}
.dl-treffer{pointer-events:stroke;cursor:pointer}
/* .dl-svg traegt pointer-events:none, damit die Flaeche zwischen den
   Linien das Ziehen der Buehne nicht abfaengt. Die Trefferpfade heben
   das fuer sich wieder auf - deshalb steht die Regel oben. */

@media(max-width:600px){
  .os-angebotkarte,.os-rechnungkarte,.te-karte,.ms-karte{height:auto;min-height:106px}
  .os-angebotkarte:has(.os-angebot-kurzaktionen){padding-bottom:34px}
}
/* Geschäftsführung: dieselbe ruhige Karten- und Tabellenlogik wie Deals und
   Trainings, aber als bereichsübergreifende Entscheidungsseite. */
.gf-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px}
.gf-kpi{min-height:112px;padding:14px 16px;border:1px solid var(--line);border-top:3px solid var(--line2);border-radius:4px;background:var(--surface)}
.gf-kpi.ok{border-top-color:var(--ok)}.gf-kpi.warn{border-top-color:var(--warn)}.gf-kpi.crit{border-top-color:var(--err)}
.gf-kpi>span{display:block;color:var(--faint);font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.gf-kpi>b{display:block;margin:7px 0 3px;font-size:22px;font-variant-numeric:tabular-nums}.gf-kpi>small{color:var(--soft);line-height:1.35}
.gf-raster{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:14px;align-items:start}
.gf-block{border:1px solid var(--line);border-radius:4px;background:var(--surface);overflow:hidden}
.gf-block>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--surface2)}
.gf-block h2{margin:0 0 3px;font-size:15px}.gf-block header p{margin:0;color:var(--soft);font-size:12px}.gf-block>header>span{display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:50%;background:#e8f2fc;color:var(--accent);font-weight:750}
.gf-liste{padding:0 16px}.gf-freigaben{min-width:0}.gf-aufgabe{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.gf-aufgabe:first-child,.gf-zeile:first-child{border-top:0}.gf-art{display:block;margin-bottom:3px;color:var(--faint);font-size:9.5px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.gf-link{display:block;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.gf-link b,.gf-link small{display:block}.gf-link small{margin-top:2px;color:var(--soft)}
.gf-aufgabe-rechts{display:flex;align-items:center;gap:12px}.gf-aufgabe-rechts>strong{min-width:90px;text-align:right;font-variant-numeric:tabular-nums}
.gf-zeile{display:grid;width:100%;grid-template-columns:28px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px 0;border:0;border-top:1px solid var(--line);background:transparent;color:inherit;text-align:left;cursor:pointer}
.gf-zeile:hover,.gf-link:hover{color:var(--accent)}.gf-zeile b,.gf-zeile small{display:block}.gf-zeile small{margin-top:2px;color:var(--soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gf-zeile strong{font-variant-numeric:tabular-nums}.gf-zeile time{min-width:90px;text-align:right;color:var(--soft);font-size:11.5px}
.gf-logo{display:flex;align-items:center;justify-content:center;width:24px}.gf-logo .os-logo{width:22px;height:22px}
.gf-automation{list-style:none;margin:0;padding:4px 16px}.gf-automation li{display:grid;grid-template-columns:24px 1fr;gap:9px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.gf-automation li:first-child{border-top:0}.gf-automation b,.gf-automation small{display:block}.gf-automation small{margin-top:1px;color:var(--soft)}
.gf-check{display:flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;background:var(--surface2);color:var(--faint);font-weight:800}.gf-check.ok{background:#e8f5ee;color:var(--ok)}.gf-check.warn{background:#fff5de;color:#8d6500}.gf-check.crit{background:#fdeceb;color:var(--err)}
.os-leer.kompakt{padding:16px 0;margin:0}
@media(max-width:1000px){.gf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.gf-raster{grid-template-columns:1fr}.gf-freigaben{grid-column:auto}}
@media(max-width:620px){.gf-kpis{grid-template-columns:1fr}.gf-aufgabe{grid-template-columns:1fr}.gf-aufgabe-rechts{justify-content:space-between}.gf-zeile{grid-template-columns:28px 1fr auto}.gf-zeile strong{grid-column:2}.gf-zeile time{grid-column:3;grid-row:1/3}}
.v2-training-oeffnen{border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}
#anAuftragswertAnzeige{font-size:1.2em;font-weight:700;}

/* Kompakte Freigaben: eine Zeile pro Durchführung, ergänzende Übersicht rechts. */
.gf-raster{grid-template-columns:minmax(0,3fr) minmax(280px,1fr)}
.gf-neben{display:grid;gap:14px;min-width:0}
.gf-system{margin-bottom:14px;display:flex;align-items:center;gap:12px}
.gf-system>header{border:0;background:transparent;padding:10px 14px;align-items:center;flex:none}
.gf-system h2{margin:0;white-space:nowrap}
.gf-system .gf-automation{display:flex;flex-wrap:wrap;gap:8px 16px;padding:9px 12px}
.gf-system .gf-automation li{display:flex;gap:6px;border:0;padding:0;font-size:11px}
.gf-system .gf-automation small{display:none}
.gf-system .gf-check{width:17px;height:17px;font-size:11px;flex:none}
.gf-kpi .gf-link{width:100%}.gf-kpi .gf-link>span{display:block;color:var(--faint);font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.gf-kpi .gf-link>b{font-size:22px;margin:7px 0 3px}
.gf-freigabe-tabelle{overflow:auto}.gf-freigabe-tabelle table{width:100%;border-collapse:collapse;font-size:12px}
.gf-freigabe-tabelle th{text-align:left;color:var(--faint);background:var(--surface2);font-size:10px;letter-spacing:.03em}
.gf-freigabe-tabelle th,.gf-freigabe-tabelle td{padding:10px 9px;border-bottom:1px solid var(--line);vertical-align:middle}
.gf-freigabe-tabelle td:first-child{min-width:170px}.gf-freigabe-tabelle td:first-child b{font-size:12px;font-weight:650}
.gf-betrag{min-height:32px;display:flex;flex-direction:column;justify-content:center;gap:2px}.gf-betrag input{width:105px;max-width:100%;padding:6px;border:1px solid var(--line2);border-radius:3px;text-align:right;font:inherit;background:var(--surface);color:var(--text)}
.gf-betrag small{font-size:10px;color:var(--soft);max-width:135px}.gf-klaerungen{padding:12px 16px}.gf-klaerungen summary{color:var(--soft);cursor:pointer}.gf-klaerungen .gf-link{padding:8px 0;font-size:12px}
.gf-neben .gf-zeile{grid-template-columns:24px minmax(0,1fr) auto}.gf-neben .gf-zeile time{grid-column:2/4;font-size:11px;text-align:left}.gf-neben .gf-zeile small{white-space:normal}
.fc-quelle-link{color:var(--accent);text-decoration:none;cursor:pointer}.fc-quelle-link:hover,.fc-quelle-link:focus-visible{background:var(--surface2);outline:1px solid var(--accent)}.fc-quelle-link>span{min-width:0}.fc-quelle-link>b{color:var(--text);white-space:nowrap}
@media(max-width:1200px){.gf-raster{grid-template-columns:1fr}.gf-neben{grid-template-columns:1fr 1fr}.gf-system{display:block}}
@media(max-width:620px){.gf-neben{grid-template-columns:1fr}.gf-system>header{justify-content:space-between}.gf-freigabe-tabelle table{min-width:760px}}

.gf-uebersicht{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gf-freigaben [hidden]{display:none!important}
.gf-editor{min-height:88px;display:flex;flex-direction:column;justify-content:flex-start;gap:7px;padding:6px 0}
.gf-editor select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line2);border-radius:4px;min-height:36px;padding:6px;max-width:220px;width:100%}
.gf-editor small,.gf-freigabe-tabelle td>small{display:block;color:var(--soft);font-size:11px;max-width:220px;line-height:1.4}
.gf-editor .gf-verguetung{display:flex;gap:6px;align-items:center;cursor:pointer;font-size:11px;letter-spacing:0;text-transform:none;color:var(--ink)}
.gf-editor .gf-verguetung input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.gf-editor input[type=number]{width:130px;min-height:36px;text-align:left}
.gf-editor input[type=number]:disabled{color:var(--soft);background:var(--surface2)}
.gf-notiz{font:inherit;padding:7px;border:1px solid var(--line2);border-radius:4px;background:var(--surface);color:var(--ink);width:100%;max-width:260px}
.gf-freigabe-tabelle td{vertical-align:top}.gf-freigabe-tabelle td:first-child{width:27%;padding-top:18px}.gf-freigabe-tabelle td:last-child{padding-top:16px}
@media(max-width:760px){.gf-uebersicht{grid-template-columns:1fr}}

.gf-provision-gruppe{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr);gap:0 14px;padding-bottom:4px}.gf-provision-gruppe+.gf-provision-gruppe{border-top:1px solid var(--line);padding-top:8px}
.gf-provision-notiz{grid-column:2}.gf-dealbetrag{grid-column:1/-1;color:var(--soft);font-size:11px}.gf-sales-kopf{display:none}
.gf-freigabe-tabelle th:nth-child(4),.gf-freigabe-tabelle th:nth-child(5){width:17%}
@media(max-width:760px){
 .gf-freigabe-tabelle{overflow:visible}.gf-freigabe-tabelle table{display:block;min-width:0}.gf-freigabe-tabelle thead{display:none}.gf-freigabe-tabelle tbody{display:block}
 .gf-freigabe-tabelle tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-bottom:2px solid var(--line);padding:10px;gap:0 12px}
 .gf-freigabe-tabelle td{display:block;padding:6px 0!important;border:0;min-width:0!important;width:auto!important}
 .gf-freigabe-tabelle td:first-child,.gf-freigabe-tabelle td:last-child,.gf-freigabe-tabelle .gf-sales-zelle{grid-column:1/-1}
 .gf-freigabe-tabelle td[data-label]::before{content:attr(data-label);display:block;color:var(--soft);font-size:10px;margin-bottom:4px}
 .gf-editor{min-height:0;padding:5px 0 10px;gap:6px}.gf-editor select{min-width:0;min-height:40px}.gf-editor input[type=number]{min-height:40px;width:100%}.gf-editor .gf-verguetung{line-height:1.4}
 .gf-provision-gruppe{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px}.gf-provision-notiz{grid-column:1/-1;margin:2px 0 8px}.gf-notiz{max-width:none}
 .gf-sales-kopf{display:grid;grid-template-columns:1fr 1fr;gap:12px;color:var(--soft);font-size:10px;margin:5px 0}
 .gf-freigabe-tabelle td:last-child .os-btn{width:100%;min-height:40px}
}

/* Training organisation: one calm working surface and readable actions at every width. */
.os-panel.training-voll .os-panel-body{width:100%;max-width:1440px;margin-inline:auto;box-sizing:border-box}
.training-arbeitsbereich.os-klaerung{background:#fff;border-color:var(--line);color:var(--ink)}
.training-arbeitsbereich .os-klar-kopf{color:var(--ink)}
.training-arbeitsbereich .zeichen,.training-bestaetigt .zeichen{color:var(--soft)}
.training-arbeitsbereich .os-klar-liste li.ok .zeichen{color:var(--accent)}
.training-fixierung-historie{color:var(--soft);font-weight:400}
.training-freigabe-bestaetigt{color:var(--ok);font-weight:600}
.training-aufgabe-blockiert{display:block;font-size:12px;color:var(--ink)}
.training-arbeitsbereich .offen>.zeichen{color:var(--faint)}
.os-meilenstein.bereit,.training-freigabe{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.os-meilenstein.bereit .os-meilenstein-inhalt{display:flex;flex-direction:column;min-width:0;gap:6px;width:100%}
.os-meilenstein.bereit .os-meilenstein-inhalt>.os-mute{width:auto;min-width:0}
.os-meilenstein .os-btn,.training-freigabe .os-btn{white-space:normal;text-align:left;max-width:100%}
.tk-merkmale .os-chip{border:0;background:none;padding:2px 0;text-transform:none;letter-spacing:normal;font-weight:400}
.tk-merkmale{gap:6px 16px;flex-wrap:wrap}
.training-bestaetigt,.training-listenorganisation{margin:16px 0;padding:12px 0;border-top:1px solid var(--line)}
.training-teilnehmeranforderung>div{min-width:0;width:100%}
.training-listenorganisation p,.training-listenorganisation small{overflow-wrap:anywhere}
.training-listenorganisation .tn-knoepfe{flex-wrap:wrap}
.training-nebendetails,.training-import-details{margin:10px 0;color:var(--soft)}
.training-nebendetails>summary,.training-import-details>summary{cursor:pointer;font-size:12px;width:fit-content}
.training-nebendetails[open]>summary,.training-import-details[open]>summary{margin-bottom:10px}
.training-voll-sektion .tn-knoepfe{align-items:center;gap:8px}
.training-voll-sektion .os-form-hilfe{font-family:inherit;padding:0;background:var(--surface);flex-shrink:0;cursor:help}
.training-voll-sektion .os-form-hilfe:not(:hover):not(:focus) .os-form-hilfe-text{display:none}
.training-voll-sektion .tn-belegung-kern{display:flex;flex-wrap:wrap;width:fit-content;border:0;gap:24px;margin:8px 0 12px}
.training-voll-sektion .tn-belegung-kern>div{border:0;padding:0;min-width:90px}
.training-voll-sektion .tn-belegung-kern strong{font-size:20px}
.training-import-details .os-ablage{margin-top:8px}
.training-arbeitsbereich .os-klar-liste li{min-width:0}
.training-arbeitsbereich .os-klar-text{overflow-wrap:anywhere;min-width:0}
@media(max-width:959px){.training-voll-raster,.training-voll-spalten{grid-template-columns:1fr}}
@media(max-width:600px){.training-arbeitsbereich .os-klar-liste li{flex-wrap:wrap}.training-arbeitsbereich .os-klar-tun{margin-left:24px}.training-arbeitsbereich .os-klar-text{flex-basis:calc(100% - 32px)}.tk{grid-template-columns:1fr}.tn-knoepfe{display:flex;flex-wrap:wrap}.training-voll-sektion{padding-inline:12px}}
