
/* --- Dichte ------------------------------------------------------------------------- */

.adminseite main{padding:16px 20px 40px}
.adminseite header{margin-bottom:12px}
.adminseite header h1{font-size:20px;letter-spacing:-.022em}
.adminseite .panel,.adminseite .intro{margin-bottom:10px}
.adminseite .panel-kopf{padding:9px 12px}
.adminseite .panel-kopf h2{font-size:14px;letter-spacing:-.012em}
.adminseite .panel-kopf .eyebrow{font-size:9px}
.adminseite .formular{padding:11px 12px;gap:8px;grid-template-columns:repeat(4,minmax(150px,1fr))}
.adminseite label span{font-size:10.5px;margin-bottom:2px}
.adminseite input,.adminseite select,.adminseite textarea{padding:5px 8px;font-size:12px}
.adminseite textarea{min-height:48px}
.adminseite .aktionen{gap:10px}
.adminseite .aktionen button,.adminseite .suche button,.adminseite .upload button{
  padding:6px 12px;
  font-size:12px;
}
.adminseite .uebergaenge button,.adminseite .uebergaenge .tabellen-knopf{
  padding:4px 9px;
  font-size:11.5px;
}
.adminseite .hinweis,.adminseite .meldung,.adminseite .fehler{
  padding:8px 11px;
  margin-bottom:10px;
  font-size:12px;
}
.adminseite .hinweis p{margin-top:2px}
.adminseite table{font-size:12px}
.adminseite thead th{padding:6px 9px}
.adminseite tbody td{padding:6px 9px}
.adminseite .leer{padding:20px 14px}
.adminseite .kennzahlen{padding:11px 12px 0;gap:8px}
.adminseite .kennzahlen strong{font-size:15px}
.adminseite .ki-liste{padding:11px 12px;gap:8px}
.adminseite .ki-karte,.adminseite .postfach{padding:10px 11px}
.adminseite .ki-karte dl,.adminseite .postfach dl{gap:6px 12px;margin-top:8px}
.adminseite .setup-raster{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:8px}
.adminseite .setup-karte{padding:10px 11px}
.adminseite .setup-karte header strong{font-size:12.5px}
.adminseite .setup-zahlen{gap:9px;margin-top:7px}
.adminseite .setup-kopf{padding:12px 14px;margin-bottom:10px}
.adminseite .setup-kopf h2{font-size:17px}
.adminseite .betriebsart{padding:12px 14px;margin-bottom:10px}

/* --- Kopfleiste statt Seitenleiste ----------------------------------------------------
   Die Arbeitsumgebung fuehrt links durch Akten. Die Administration ist keine
   Akte, sondern eine Konsole: helle Leiste oben, Bereiche waagerecht,
   Inhalt darunter. Gestalt und Tokens sind dieselben wie in der
   Arbeitsumgebung — es ist dieselbe Marke, nur ein anderer Ort. */

.adminseite{
  background:var(--grund);
  display:block;
  min-height:100vh;
}
.adminkopf{
  background:var(--kopf-flaeche);
  color:var(--text);
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid var(--linie);
}
.adminkopf-oben{
  display:flex;
  align-items:center;
  gap:22px;
  padding:12px 24px;
  max-width:1500px;
  margin:0 auto;
}
.adminmarke{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:inherit}
.adminmarke .marke-logo{height:26px;width:auto;flex:none}
.adminmarke strong{
  display:block;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  line-height:1.25;
  color:var(--text);
}
.adminmarke small{
  display:block;
  font-size:10px;
  color:var(--text-3);
  font-variant-numeric:tabular-nums;
}

.adminkopf-stand{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:11px;
  color:var(--text-2);
  white-space:nowrap;
}
.stand-balken{
  width:96px;
  height:3px;
  border-radius:var(--rv);
  background:var(--flaeche-3);
  overflow:hidden;
}
.stand-balken i{
  display:block;
  height:100%;
  background:var(--navy);
  border-radius:var(--rv);
  transition:width var(--t2) var(--kurve);
}

.adminkopf-konto{display:flex;align-items:center;gap:10px;font-size:11.5px}
.adminkopf-konto .kopf-konto{color:var(--text);font-weight:600}
.adminkopf-konto .kopf-hinweis{color:var(--text-3)}
.adminkopf-konto a{color:var(--text-2);text-decoration:none}
.adminkopf-konto a:hover{color:var(--text)}
.adminkopf-konto form{display:inline}
.adminkopf-konto button{
  border:1px solid var(--linie);
  background:var(--flaeche);
  color:var(--text-2);
  font:inherit;
  font-size:11.5px;
  padding:4px 11px;
  border-radius:var(--r2);
  cursor:pointer;
  transition:border-color var(--t1) var(--kurve),background var(--t1) var(--kurve),transform var(--t1) var(--kurve);
}
.adminkopf-konto button:hover{border-color:var(--linie-stark);color:var(--text)}
.adminkopf-konto button:active{transform:scale(.97)}

.adminkopf-navigation{
  display:flex;
  gap:26px;
  align-items:center;
  padding:0 24px;
  max-width:1500px;
  margin:0 auto;
  overflow-x:auto;
}
.kopf-gruppe{display:flex;align-items:center;gap:2px;white-space:nowrap;flex-wrap:wrap}
.kopf-gruppe>span{
  font-size:9px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text-3);
  margin-right:5px;
}
/* Der aktive Bereich traegt eine schmale dunkle Marke — dieselbe Sprache
   wie die aktive Zeile in der Seitenleiste der Arbeitsumgebung. */
.kopf-gruppe a{
  position:relative;
  color:var(--text-2);
  text-decoration:none;
  font-size:12.5px;
  font-weight:500;
  padding:11px 12px 12px;
  transition:color var(--t1) var(--kurve),background var(--t1) var(--kurve);
}
.kopf-gruppe a:hover{color:var(--text)}
.kopf-gruppe a.aktiv{color:var(--text);font-weight:600}
.kopf-gruppe a.aktiv::after{
  content:'';
  position:absolute;
  left:10px;right:10px;bottom:0;
  height:2px;
  border-radius:2px 2px 0 0;
  background:var(--navy);
}

.adminflaeche{
  max-width:1500px;
  margin:0 auto;
  padding:0 24px 56px;
}
/* Derselbe Seitenkopf wie in der Arbeitsumgebung, nur ohne Architektur:
   eine Konsole braucht Ordnung, kein Bildmotiv. */
.adminseite .seitenkopf{
  margin:0 0 18px;
  padding:26px 0 20px;
  background:transparent;
  border-bottom:1px solid var(--linie);
}
.adminseite .seitenkopf h1{font-size:34px}
.adminseite .seitenkopf p{margin:8px 0 0;color:var(--text-2);font-size:13px;max-width:70ch}
.adminseite .seitenkopf .primaer-knopf{white-space:nowrap}
@media (max-width:640px){
  .adminseite .seitenkopf{flex-direction:column;align-items:stretch}
  .adminseite .seitenkopf .primaer-knopf{text-align:center}
  .adminseite .seitenkopf h1{font-size:28px}
}

@media (max-width:820px){
  .adminkopf-oben{flex-wrap:wrap;gap:12px}
  .adminkopf-stand{order:3;margin-left:0}
}

/* --- Software-Bricks als Chips --------------------------------------------------------
   Ein Brick ist ein Gegenstand, den man anfasst und ablegt. Deshalb eine
   kompakte Karte mit sichtbarem Griff — nicht ein Haken in einer Liste. */

.brick-schnellwahl{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
  padding:0 12px 11px;
}
.brick-schnellwahl small{color:var(--text-2);font-size:11.5px}

/* --- Reduzierter Admin-Flow ----------------------------------------------------------
   Die Seitenleisten-Regeln dieses Blocks sind mit der Kopfleiste entfallen;
   die Flaechen darunter (Statuszeilen, Setup-Ablauf, Modulliste) bleiben. */
.adminseite{background:#f5f5f7}

.status-liste,.einstellungen-liste,.benutzer-liste,.konto-neu,.profil-kompakt,.zugriff-panel,.konto-aktionen,
.setup-phase,.modul-gruppe{background:var(--flaeche);border:1px solid var(--linie);border-radius:12px;box-shadow:var(--sch-1)}
.status-liste{overflow:hidden}
.status-zeile{display:grid;grid-template-columns:30px minmax(120px,1fr) 150px minmax(100px,1fr) 18px;align-items:center;
  gap:10px;min-height:54px;padding:8px 14px;border-bottom:1px solid var(--linie-zart);transition:background var(--t1) var(--kurve)}
.status-zeile:last-child{border:0}.status-zeile:hover{background:var(--flaeche-2)}
.status-icon,.integration-icon,.modul-symbol{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;
  background:#111;color:#fff;font-size:11px;font-weight:700;letter-spacing:-.02em}
.status-zeile>strong{font-size:13px}.status-meta{color:var(--text-3);font-size:11.5px;text-align:right}
.status-pfeil{font-size:20px;color:var(--text-3);text-align:right}
.kompakt-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-2);white-space:nowrap}
.kompakt-status i{width:7px;height:7px;border-radius:50%;background:var(--grau-300);box-shadow:0 0 0 3px var(--grau-100)}
.kompakt-status.ok i{background:#171719}.kompakt-status.offen{color:var(--text-3)}

.setup-flow{display:grid;gap:10px}.setup-phase{overflow:hidden}.setup-phase>header{display:flex;align-items:center;gap:10px;
  padding:11px 13px;margin:0;border-bottom:1px solid var(--linie-zart)}
.setup-phase>header>span:first-child{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#111;color:#fff;font-size:11px}
.setup-phase>header>div{flex:1}.setup-phase header small,.konto-neu header small,.zugriff-panel header small{font-size:8.5px;letter-spacing:.11em;color:var(--text-3)}
.setup-phase h2,.konto-neu h2,.zugriff-panel h2{margin:0;font-size:14px;letter-spacing:-.012em}
.setup-phase-body{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;color:var(--text-2);font-size:12px}
.primaer-klein,.full-access{display:inline-flex;align-items:center;justify-content:center;background:#111;color:#fff;border:0;border-radius:7px;
  padding:7px 11px;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;transition:transform var(--t1) var(--kurve),opacity var(--t1) var(--kurve)}
.primaer-klein:active,.full-access:active{transform:scale(.97)}
.integrationen{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px}
.integration-karte{display:grid;grid-template-columns:30px 1fr 14px;align-items:center;gap:9px;padding:10px;border:1px solid var(--linie);
  border-radius:9px;background:var(--flaeche);transition:transform var(--t1) var(--kurve),box-shadow var(--t1) var(--kurve),border-color var(--t1) var(--kurve)}
.integration-karte:hover{transform:translateY(-1px);border-color:var(--linie-stark);box-shadow:var(--sch-2)}
.integration-karte strong{display:block;font-size:12px;margin-bottom:2px}

.modul-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.modul-gruppe{overflow:hidden}
.modul-gruppe>header{padding:7px 11px;background:var(--flaeche-2);color:var(--text-3);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.modul-zeile{display:grid;grid-template-columns:28px 1fr 100px 66px;align-items:center;gap:9px;padding:7px 10px;border-top:1px solid var(--linie-zart)}
.modul-zeile strong{font-size:12px}.modul-zeile small{font-size:10.5px;color:var(--text-3)}
.mini-schalter{justify-self:end}.mini-schalter input{position:absolute;opacity:0}.mini-schalter span{display:inline-flex;padding:3px 7px;border-radius:999px;background:var(--flaeche-2);font-size:10px}
.mini-schalter input:checked+span{background:#111;color:#fff}

.benutzer-kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.benutzer-kopf>div{display:flex;align-items:baseline;gap:6px}
.benutzer-kopf strong{font-size:18px}.benutzer-kopf span{font-size:11.5px;color:var(--text-3)}
.benutzer-liste{overflow:hidden;margin-bottom:10px}.benutzer-liste>header,.benutzer-zeile{display:grid;grid-template-columns:34px minmax(130px,1fr) minmax(170px,1.3fr) 150px 90px 14px;gap:8px;align-items:center}
.benutzer-liste>header{grid-template-columns:34px minmax(130px,1fr) minmax(170px,1.3fr) 150px 90px 14px;padding:7px 12px;background:var(--flaeche-2);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em}
.benutzer-liste>header span:first-child{grid-column:1/3}
.benutzer-zeile{padding:8px 12px;border-top:1px solid var(--linie-zart);font-size:11.5px;transition:background var(--t1) var(--kurve)}
.benutzer-zeile:hover{background:var(--flaeche-2)}.benutzer-zeile>span{color:var(--text-2)}.benutzer-zeile>i{font-style:normal;color:var(--text-3);font-size:17px}
.avatar{display:grid!important;place-items:center;width:28px;height:28px;border-radius:50%;background:#111!important;color:#fff!important;font-size:9px;font-weight:700}
.avatar.gross{width:38px;height:38px;font-size:11px}
.konto-neu{padding:13px}.konto-neu>header{margin-bottom:10px}.konto-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.konto-form label span,.profil-felder label span{display:block;font-size:10px;color:var(--text-2);margin-bottom:2px}.konto-form input,.konto-form select,.profil-felder input,.profil-felder select{width:100%}
.konto-form .admin-option{display:flex;align-items:center;gap:7px;align-self:end;min-height:29px}.konto-form .admin-option span{margin:0}
.brick-auswahl{grid-column:1/-1;border:0;padding:4px 0;display:flex;flex-wrap:wrap;gap:5px}.brick-auswahl legend{font-size:10px;color:var(--text-2);margin-bottom:5px}
.brick-waehler input{position:absolute;opacity:0}.brick-waehler span{display:block!important;margin:0!important;padding:5px 8px;border:1px solid var(--linie);border-radius:999px;background:var(--flaeche);cursor:pointer}
.brick-waehler input:checked+span{background:#111;color:#fff;border-color:#111}.konto-form>button{grid-column:1/-1;justify-self:start}

.profil-kompakt{padding:12px;margin-bottom:10px}.profil-identitaet{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--linie-zart)}
.profil-identitaet>div{flex:1}.profil-identitaet h2{margin:0;font-size:15px}.profil-identitaet div span{font-size:11px;color:var(--text-3)}
.profil-felder{display:grid;grid-template-columns:1fr 1.3fr 1fr .7fr auto;gap:8px;align-items:end;padding-top:10px}.profil-felder button{height:29px}
.zugriff-panel{margin-bottom:10px;overflow:hidden}.zugriff-panel>header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--linie-zart);margin:0}
.zugriff-panel>header .rechte-stand{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}

/* --- Rechtegitter ---------------------------------------------------------------------
   Fachbereich, Modul, Recht — drei Ebenen, aber nur eine davon darf laut
   sein. Die Ueberschrift des Fachbereichs ist eine Ordnungslinie, kein
   Titel: klein, gesperrt, grau. Der Blick soll auf den Haken liegen. */

.rechte-form{padding:0 0 10px}
.rechte-werkzeuge{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-bottom:1px solid var(--linie-zart);
  flex-wrap:wrap;
}
.rechte-werkzeuge small{color:var(--text-3);font-size:11px;margin-left:auto}

.rechte-bereich{padding:0 12px;border-bottom:1px solid var(--linie-zart)}
.rechte-bereich[open]{padding-bottom:6px}
.rechte-bereich-titel{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin:0;
  padding:8px 0;
  cursor:pointer;
  color:var(--text-3);
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:9px;
  font-weight:600;
  list-style:none;
}
.rechte-bereich-titel::-webkit-details-marker{display:none}
.rechte-bereich-titel::before{
  content:'›';
  display:inline-block;
  letter-spacing:0;
  font-size:12px;
  transition:transform var(--t1) var(--kurve);
}
.rechte-bereich[open]>.rechte-bereich-titel::before{transform:rotate(90deg)}
.rechte-bereich-titel:hover{color:var(--text-2)}
.rechte-bereich-titel span{margin-left:auto;letter-spacing:0;font-variant-numeric:tabular-nums;font-weight:400}

.rechte-zeile{
  display:grid;
  grid-template-columns:190px 1fr;
  gap:8px;
  align-items:start;
  padding:5px 0;
  border-top:1px solid var(--linie-zart);
}
.rechte-zeile:first-of-type{border-top:0}
.rechte-zeile>strong{font-size:12px;font-weight:500;letter-spacing:-.005em;padding-top:2px}
.rechte-zeile>strong em{font-style:normal;color:var(--text-3);font-weight:400;font-size:10.5px}
.rechte-haken{display:flex;flex-wrap:wrap;gap:4px}

.rechte-haken .check{display:inline-flex;align-items:center;position:relative}
.rechte-haken .check input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.rechte-haken .check span{
  display:block;
  padding:3px 9px;
  min-height:22px;
  border:1px solid var(--linie);
  border-radius:999px;
  background:var(--flaeche);
  color:var(--text-2);
  font-size:11px;
  line-height:1.45;
  cursor:pointer;
  transition:background var(--t1) var(--kurve),color var(--t1) var(--kurve),
    border-color var(--t1) var(--kurve),transform var(--t1) var(--kurve);
}
.rechte-haken .check span:hover{border-color:var(--schwarz)}
.rechte-haken .check input:checked+span{background:var(--schwarz);color:#fff;border-color:var(--schwarz)}
.rechte-haken .check input:focus-visible+span{outline:2px solid var(--schwarz);outline-offset:2px}
.rechte-haken .check input:active+span{transform:scale(.97)}
/* Abweichung von der Rollenvorlage: erlaubt, aber sichtbar. */
.rechte-haken .check.abweichend span{border-style:dashed}

.rechte-fuss{padding:10px 12px 0}
details.rechte-vorab{grid-column:1/-1;border-top:1px solid var(--linie-zart);padding-top:8px}
details.rechte-vorab>summary{cursor:pointer;font-size:11.5px;color:var(--text-2);padding:4px 0}
details.rechte-vorab .rechte-bereich{padding-left:0;padding-right:0}

.abteilung-neu{display:flex;gap:5px;flex-wrap:wrap;padding:8px 0 0;border-top:1px solid var(--linie-zart)}
.abteilung-neu input{flex:1;min-width:104px}

@media (prefers-reduced-motion:reduce){
  .rechte-haken .check input:active+span{transform:none}
  .rechte-bereich-titel::before{transition:none}
}
.konto-aktionen{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:11.5px;color:var(--text-3)}.konto-aktionen .zugangslink{flex:1;margin:0}
.einstellungen-liste{overflow:hidden}.einstellungen-liste>div,.einstellungen-liste>a{display:flex;justify-content:space-between;padding:10px 13px;border-bottom:1px solid var(--linie-zart)}
.einstellungen-liste span{color:var(--text-2)}

/* Die Haken bleiben als zweiter Weg erreichbar, treten aber zurueck. */
.adminseite details.zweitweg{
  border-top:1px solid var(--linie);
  padding:0;
}
.adminseite details.zweitweg>summary{
  padding:8px 12px;
  font-size:11.5px;
  color:var(--text-2);
  cursor:pointer;
  list-style:none;
}
.adminseite details.zweitweg>summary::-webkit-details-marker{display:none}
.adminseite details.zweitweg>summary:hover{background:var(--flaeche-2)}
.adminseite details.zweitweg[open]>summary{border-bottom:1px solid var(--linie)}

@media (max-width:1100px){
  .adminseite .formular{grid-template-columns:repeat(2,minmax(140px,1fr))}
  .integrationen{grid-template-columns:repeat(2,1fr)}
  .profil-felder{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .adminseite *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* --- Setup-Ablauf: Kopfzeile und Bereichszeilen --------------------------------------- */

.setup-kopfzeile{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:12px 14px;
  margin-bottom:10px;
  background:var(--flaeche);
  border:1px solid var(--linie);
  border-radius:12px;
  box-shadow:var(--sch-1);
}
.setup-kopfzeile strong{display:block;font-size:15px;letter-spacing:-.015em}
.setup-kopfzeile small{display:block;color:var(--text-2);font-size:11.5px;margin-top:2px}
.stand-balken.breit{
  width:220px;
  height:4px;
  background:var(--flaeche-3);
}
.stand-balken.breit i{background:var(--schwarz)}

.setup-phase .status-liste{border:0;border-radius:0;box-shadow:none;background:transparent}
.status-zeile>strong small{color:var(--text-3);font-weight:400;font-size:10.5px}
.status-zeile.fertig .status-icon{background:#111}
.status-zeile.teilweise .status-icon{background:var(--grau-400,#9a9aa2)}
.status-zeile.offen .status-icon{background:var(--flaeche-3);color:var(--text-3)}
.status-zeile .status-meta{text-align:right;max-width:44ch;justify-self:end}

/* --- Setup-Schritte -------------------------------------------------------------------- */

.schritte{display:grid;gap:6px}
.schritt{
  display:grid;
  grid-template-columns:26px minmax(160px,1.1fr) minmax(0,1.4fr) 14px;
  align-items:center;
  gap:12px;
  padding:9px 13px;
  background:var(--flaeche);
  border:1px solid var(--linie);
  border-radius:10px;
  text-decoration:none;
  color:inherit;
  transition:border-color var(--t1) var(--kurve),box-shadow var(--t1) var(--kurve),transform var(--t1) var(--kurve);
}
.schritt:hover{border-color:var(--linie-stark);box-shadow:var(--sch-2)}
.schritt:active{transform:scale(.996)}
.schritt-nummer{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--flaeche-3);
  color:var(--text-3);
  font-size:11px;
  font-weight:600;
}
.schritt.fertig .schritt-nummer{background:#111;color:#fff}
.schritt.teilweise .schritt-nummer{background:var(--grau-300,#c8c8cf);color:#111}
.schritt-text strong{display:block;font-size:13px;letter-spacing:-.01em}
.schritt-text strong small{color:var(--text-3);font-weight:400;font-size:10.5px}
.schritt-text small{display:block;color:var(--text-2);font-size:11.5px;margin-top:1px}
.schritt-zahlen{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.schritt-zahlen span{font-size:10.5px;color:var(--text-3);white-space:nowrap}
.schritt-zahlen strong{display:block;font-size:12.5px;color:var(--text);font-weight:600}
.schritt-zahlen .warnend strong{color:var(--fehler)}

/* --- Verbindungen (KI, E-Mail, Bank, Telefonie) ---------------------------------------- */

.verbindungsliste{display:grid;gap:6px;padding:11px 12px}
.verbindung{
  display:grid;
  grid-template-columns:26px minmax(0,1fr) auto auto;
  align-items:center;
  gap:11px;
  padding:9px 11px;
  border:1px solid var(--linie);
  border-radius:9px;
  background:var(--flaeche);
}
.verbindung.aktiv{border-left:2px solid var(--schwarz)}
.verbindung-symbol{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:8px;
  background:#111;
  color:#fff;
  font-size:12px;
}
.verbindung strong{display:block;font-size:12.5px}
.verbindung small{display:block;color:var(--text-3);font-size:11px}
.verbindung-aktionen{display:flex;gap:4px;flex-wrap:wrap;justify-self:end}
.verbindung-hinweis{
  grid-column:1/-1;
  margin:2px 0 0;
  font-size:11px;
  color:var(--text-2);
  line-height:1.45;
}
.cloud-bestaetigung{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cloud-bestaetigung input[name=wer]{width:150px}

/* --- Dokumentenablage ------------------------------------------------------------------ */

.ablagefeld{display:grid;gap:8px;margin-bottom:12px}
.ablage-flaeche{
  display:grid;
  gap:4px;
  place-items:center;
  text-align:center;
  padding:26px 20px;
  border:1.5px dashed var(--linie-stark);
  border-radius:14px;
  background:var(--flaeche);
  cursor:pointer;
  transition:border-color var(--t2) var(--kurve),background var(--t2) var(--kurve);
}
.ablage-flaeche:hover{border-color:var(--schwarz)}
.ablage-flaeche.zielbereit{border-color:var(--schwarz);background:var(--flaeche-2)}
.ablage-flaeche input[type=file]{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
}
.ablage-flaeche strong{font-size:14.5px;letter-spacing:-.014em}
.ablage-flaeche small{color:var(--text-2);font-size:11.5px;max-width:70ch;line-height:1.5}
.ablage-liste{font-size:11.5px;color:var(--text);font-weight:500;min-height:14px}
.ablagefeld>button{
  justify-self:start;
  border:1px solid var(--schwarz);
  background:var(--schwarz);
  color:#fff;
  font:inherit;
  font-size:12.5px;
  font-weight:600;
  padding:7px 14px;
  border-radius:var(--r1);
  cursor:pointer;
  transition:transform var(--t1) var(--kurve);
}
.ablagefeld>button:active{transform:scale(.97)}

.importstand{
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
  padding:11px 14px;
  margin-bottom:10px;
  background:var(--flaeche);
  border:1px solid var(--linie);
  border-radius:10px;
}
.importstand>div{min-width:64px}
.importstand strong{display:block;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.importstand span{font-size:10.5px;color:var(--text-3)}
.importstand .warnend strong{color:var(--fehler)}
.importstand-dienst{margin-left:auto;display:grid;gap:2px;justify-items:end}
.importstand-dienst small{color:var(--text-3);font-size:10.5px}

.dokumentenliste{display:grid;gap:4px;padding:11px 12px}
.dokument{border:1px solid var(--linie);border-radius:9px;background:var(--flaeche)}
.dokument.pruefen{border-left:2px solid var(--fehler)}
.dokument.zugeordnet{border-left:2px solid var(--schwarz)}
.dokument>summary{
  display:grid;
  grid-template-columns:132px minmax(0,1fr) auto auto;
  align-items:center;
  gap:11px;
  padding:8px 11px;
  cursor:pointer;
  list-style:none;
  font-size:12.5px;
}
.dokument>summary::-webkit-details-marker{display:none}
.dokument>summary:hover{background:var(--flaeche-2)}
.dokument-art{
  font-size:10px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--text-3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dokument-meta{font-size:10.5px;color:var(--text-3);white-space:nowrap}
.dokument-inhalt{
  display:grid;
  gap:8px;
  padding:9px 11px 11px;
  border-top:1px solid var(--linie-zart,var(--linie));
  font-size:11.5px;
}
.dokument-inhalt ul{margin:2px 0 0;padding-left:16px;color:var(--text-2)}
.dokument-inhalt small{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.dokument-felder{display:flex;gap:12px;flex-wrap:wrap}
.dokument-felder span{color:var(--text-2)}
.dokument-fragen{color:var(--fehler)}
.dokument-fragen ul{color:var(--fehler)}
.dokument-zuordnung{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dokument-zuordnung select{max-width:340px}
.dokument-aktionen{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dokument-aktionen small{text-transform:none;letter-spacing:0;font-size:10.5px}

.luecken{margin:0;padding:11px 12px;list-style:none;display:grid;gap:4px}
.luecken li{
  display:grid;
  grid-template-columns:78px 120px minmax(0,1fr);
  align-items:baseline;
  gap:10px;
  padding:6px 9px;
  border-radius:7px;
  font-size:12px;
}
.luecken li:hover{background:var(--flaeche-2)}
.luecke-art{
  font-size:9.5px;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--text-3);
}
.luecken li.blockiert .luecke-art{color:var(--fehler);font-weight:600}
.luecke-bereich{font-size:11px;color:var(--text-3)}
.luecken a{color:inherit;text-decoration:none}
.luecken a:hover{text-decoration:underline;text-underline-offset:3px}

/* --- Benutzer und Abteilungen ---------------------------------------------------------- */

.benutzer-liste{display:grid}
.benutzer-liste>header,.benutzer-zeile{
  display:grid;
  grid-template-columns:30px minmax(110px,1fr) minmax(150px,1.2fr) 120px 130px 130px 90px 14px;
  align-items:center;
  gap:9px;
  padding:7px 12px;
}
.benutzer-liste>header{
  background:var(--flaeche-2);
  font-size:9px;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--text-3);
}
.benutzer-liste>header span:first-child{grid-column:1/3}
.benutzer-zeile{
  border-top:1px solid var(--linie-zart,var(--linie));
  font-size:11.5px;
  color:inherit;
  text-decoration:none;
  transition:background var(--t1) var(--kurve);
}
.benutzer-zeile:hover{background:var(--flaeche-2)}
.benutzer-zeile strong{font-size:12px}
.benutzer-zeile>span{color:var(--text-2)}
.benutzer-zeile>i{font-style:normal;color:var(--text-3);font-size:16px;text-align:right}
.avatar{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:#111;
  color:#fff;
  font-size:10px;
  font-weight:600;
}
.avatar.gross{width:38px;height:38px;font-size:13px}

.abteilungs-tafel{display:flex;gap:9px;padding:11px 12px;overflow-x:auto;align-items:flex-start}
.abteilung-feld{
  flex:0 0 246px;
  background:var(--flaeche-2);
  border:1px solid var(--linie);
  border-radius:10px;
  padding:9px;
  transition:border-color var(--t1) var(--kurve),background var(--t1) var(--kurve);
}
.abteilung-feld.zielbereit{border-color:var(--schwarz);background:var(--flaeche-3)}
.abteilung-feld>header{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:1px 3px 7px;
}
.abteilung-feld>header strong{font-size:12px}
.abteilung-feld>header span{font-size:10.5px;color:var(--text-3)}
.abteilung-bearbeiten{display:flex;gap:5px;margin-bottom:5px}
.abteilung-bearbeiten input{font-size:11.5px;padding:4px 7px}
.abteilung-bricks{display:block;color:var(--text-3);font-size:10.5px;margin-bottom:5px}
.person-ablage{display:grid;gap:5px;min-height:56px}

/* --- Modulchips der Navigationstafel --------------------------------------------------
   Dasselbe Muster wie die Personenchips: ein anfassbarer Gegenstand mit
   eigenem Formular. Was hier bewegt wird, ist eine Ueberschrift — nie ein
   Recht. Deshalb bewusst ruhiger als die Rechteflaeche: kein Schwarz, keine
   Zustandsfarbe, nur Ort. */
.modul-ablage{display:grid;gap:4px;min-height:56px}
.modul-chip{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:6px;
  padding:5px 8px;
  border:1px solid var(--linie);
  border-radius:var(--r2);
  background:var(--flaeche);
  cursor:grab;
  transition:border-color var(--t1) var(--kurve),transform var(--t1) var(--kurve);
}
.modul-chip:hover{border-color:var(--linie-stark)}
.modul-chip:active{cursor:grabbing}
.modul-chip.zieht{opacity:.4;transform:scale(.98)}
.modul-chip strong{font-size:12px;font-weight:500;letter-spacing:-.005em}
.modul-griff,.spalten-griff{color:var(--text-3);font-size:11px;line-height:1;cursor:grab}
.modul-chip select{font-size:11px;padding:3px 6px;max-width:140px}

/* Die Spalte selbst ist verschiebbar — angefasst wird sie am Griff in der
   Kopfzeile, damit ein Zug an der Ablage weiterhin einen Bereich meint. */
.abteilung-feld.verschiebbar>header{cursor:default}
.abteilung-feld.zieht{opacity:.5}
.nav-layout{display:none}
/* Leere Ablage: der Hinweis steht an der Stelle, an der der Inhalt stuende. */
.brick-leer-klein{margin:0;padding:12px 6px;width:100%;text-align:center;color:var(--text-3);font-size:11px}
.person-chip{
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  gap:8px;
  align-items:center;
  padding:6px 8px;
  background:var(--flaeche);
  border:1px solid var(--linie);
  border-radius:8px;
  cursor:grab;
  box-shadow:var(--sch-1);
  transition:border-color var(--t1) var(--kurve),opacity var(--t1) var(--kurve),transform var(--t1) var(--kurve);
}
.person-chip:hover{border-color:var(--linie-stark)}
.person-chip:active{cursor:grabbing}
.person-chip.zieht{opacity:.4;transform:scale(.98)}
.person-chip strong{display:block;font-size:11.5px}
.person-chip small{display:block;color:var(--text-3);font-size:10px}
.person-chip select{grid-column:1/-1;font-size:11px;padding:3px 6px}

.kontenplan .konto-inaktiv{opacity:.55}
.kontenplan .konto-nummer{width:78px;font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){
  .person-chip:active,.person-chip.zieht,.schritt:active,.ablagefeld>button:active{transform:none}
}

/* --- Loeschen mit Rueckfrage ----------------------------------------------------------- */

details.loeschen{display:inline-block}
details.loeschen>summary{
  list-style:none;
  cursor:pointer;
  font-size:11.5px;
  color:var(--text-3);
  padding:4px 9px;
  border-radius:var(--r1);
}
details.loeschen>summary::-webkit-details-marker{display:none}
details.loeschen>summary:hover{color:var(--fehler);background:var(--fehler-weich)}
details.loeschen form{
  display:grid;
  gap:7px;
  margin-top:6px;
  padding:10px 11px;
  max-width:44ch;
  border:1px solid var(--fehler);
  border-radius:9px;
  background:var(--fehler-weich);
  font-size:11.5px;
  line-height:1.45;
}
details.loeschen form button{
  justify-self:start;
  border-color:var(--fehler);
  color:var(--fehler);
}

/* Geführtes KI-Setup: ein linearer Weg, technische Details erst darunter. */
.ki-setup-start{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px}
.ki-setup-start p{margin:0;color:var(--text-2)}
.ki-setup-ablauf{padding:8px 16px 16px}
.ki-setup-schritt{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:14px 0;border-bottom:1px solid var(--linie)}
.ki-setup-schritt>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--flaeche-3);font-size:11px;font-weight:600}
.ki-setup-schritt.fertig>span{background:var(--schwarz);color:#fff}
.ki-setup-schritt strong,.ki-setup-schritt small{display:block}.ki-setup-schritt small{color:var(--text-2);margin-top:2px}
.ki-setup-schritt h3{margin:8px 0 0;font-size:18px;letter-spacing:-.018em}
.ki-setup-schritt dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:11px 0 0}
.ki-setup-schritt dl div{padding:8px;background:var(--flaeche-2);border-radius:var(--r2)}
.ki-setup-schritt dt{font-size:10px;color:var(--text-3)}.ki-setup-schritt dd{margin:2px 0 0;font-size:11.5px;word-break:break-word}
.ki-setup-schritt form{margin-top:10px}.ki-eignung{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin:10px 0}
.ki-eignung p{display:flex;justify-content:space-between;gap:10px;margin:0;font-size:11px}.ki-eignung span{color:var(--text-2)}
.ki-geraetewahl{display:flex;align-items:end;gap:8px}.ki-geraetewahl label{min-width:240px}
.assistant-name{display:flex;align-items:end;gap:8px}.assistant-name label{min-width:240px}.ki-statusliste{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:9px;font-size:11.5px}
.ki-setup-fehler{margin-top:12px;padding:10px;border:1px solid var(--fehler);border-radius:var(--r2);background:var(--fehler-weich)}
.ki-setup-fehler p,.ki-setup-fortschritt{margin:3px 0 0}.ki-setup-fortschritt{color:var(--text-2);font-size:11.5px}
.ki-erweitert>summary{cursor:pointer;list-style:none;margin:12px 0;padding:9px 12px;border:1px solid var(--linie);border-radius:var(--r2);font-size:12px}
.ki-erweitert>summary::-webkit-details-marker{display:none}
.bridge-download{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px}.bridge-download strong,.bridge-download small{display:block}.bridge-download small{margin-top:3px;color:var(--text-2)}
.primaer-knopf{display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;border-radius:var(--r2);background:var(--schwarz);color:#fff;text-decoration:none;font-size:12px;font-weight:600;white-space:nowrap}.primaer-knopf:active{transform:scale(.98)}

/* Zielrechner, Hardwareformular, Modellvergleich, Installationsfortschritt.
   Die drei Modelle stehen nebeneinander, weil sie verglichen werden — nicht
   nacheinander gelesen. Unter 1100px werden daraus untereinander liegende
   Karten; die Zahlen bleiben in beiden Faellen an derselben Stelle. */
.ki-geraet{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:0 0 12px;padding:9px 12px;background:var(--flaeche-2);border-radius:var(--r2);font-size:11.5px}
.ki-geraet form{margin:0 0 0 auto}
.ki-vorschlag{margin:0 0 10px;padding:9px 11px;background:var(--flaeche-2);border-radius:var(--r2);font-size:11.5px;color:var(--text-2)}
.ki-warnung{display:block;margin-top:5px;color:var(--fehler)}
.ki-hardware-block>summary{cursor:pointer;list-style:none;margin:11px 0 0;padding:8px 12px;border:1px solid var(--linie);border-radius:var(--r2);font-size:12px}
.ki-hardware-block>summary::-webkit-details-marker{display:none}
.ki-profil{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:11px 0 0}
.ki-profil div{padding:8px;background:var(--flaeche-2);border-radius:var(--r2)}
.ki-profil dt{font-size:10px;color:var(--text-3)}.ki-profil dd{margin:2px 0 0;font-size:11.5px;word-break:break-word}
.ki-optionen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 0}
.ki-option{display:flex;flex-direction:column;gap:9px;padding:14px;border:1px solid var(--linie);border-radius:var(--r2);background:var(--flaeche-1)}
.ki-option.empfohlen{border-color:var(--schwarz)}
.ki-option.gewaehlt{box-shadow:inset 0 0 0 2px var(--schwarz)}
.ki-option header h3{margin:3px 0 0;font-size:17px;letter-spacing:-.018em}
.ki-option header small{display:block;margin-top:2px;color:var(--text-2)}
.ki-eignung-stempel{display:inline-block;margin-top:7px;padding:3px 8px;border-radius:999px;background:var(--flaeche-3);font-size:10.5px;font-weight:600}
.ki-eignung-stempel.sehr-gut{background:var(--schwarz);color:#fff}
.ki-eignung-stempel.nicht-empfohlen{background:var(--fehler-weich);color:var(--fehler)}
.ki-charakter{margin:0;font-size:11.5px;color:var(--text-2)}
.ki-option .kennzahlen{grid-template-columns:1fr 1fr}
.ki-option .ki-eignung{grid-template-columns:1fr;margin:0}
.ki-eignung strong.langsam,.ki-eignung strong.nicht-empfohlen{color:var(--fehler)}
.ki-argumente{display:grid;gap:7px}
.ki-argumente small{color:var(--text-3);font-size:10px}
.ki-argumente ul{margin:3px 0 0;padding-left:16px;font-size:11.5px}
.ki-begruendung{margin:0;font-size:11.5px;color:var(--text-2)}
.ki-dokumente{display:grid;gap:11px;padding:11px 12px 13px}
.ki-dokumente .ki-profil{margin:0}
.ki-dokumente .ki-profil div.breit{grid-column:span 3}
.ki-dokumente-fuss{margin:0;font-size:10.5px;color:var(--text-3);
  padding-top:9px;border-top:1px solid var(--linie)}
.ki-begruendung small{display:block;color:var(--text-3);font-size:10px}
.ki-option form{margin-top:auto}.ki-option button{width:100%}
.ki-auswahl{margin-top:9px;padding:12px;background:var(--flaeche-2);border-radius:var(--r2)}
.ki-auswahl h3{margin:2px 0 0}
.ki-installation{margin-top:9px}
.ki-installation-kopf{margin:0 0 9px;font-size:12px}
.ki-schritte{list-style:none;margin:9px 0 0;padding:0;display:grid;gap:6px}
.ki-schritte li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:9px;align-items:start;font-size:11.5px;color:var(--text-3)}
.ki-schritte li.fertig,.ki-schritte li.laeuft,.ki-schritte li.fehler{color:var(--text-1)}
.ki-schritt-marke{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--flaeche-3);font-size:10px}
.ki-schritte li.fertig .ki-schritt-marke{background:var(--schwarz);color:#fff}
.ki-schritte li.fehler .ki-schritt-marke{background:var(--fehler);color:#fff}
.ki-schritte strong{font-weight:500}.ki-schritte small{display:block;color:var(--text-2)}
.ki-balken{height:5px;margin:5px 0 3px;border-radius:3px;background:var(--flaeche-3);overflow:hidden}
.ki-balken i{display:block;height:100%;background:var(--schwarz);transition:width .3s ease}
/* Schritte ohne echten Fortschritt: eine Leiste, die laeuft, statt eines
   ruhenden Punktes. Bewegt wird ausschliesslich transform. */
.ki-balken.unbestimmt i{width:38%;transform-origin:left center;animation:ki-lauf 1.5s ease-in-out infinite}
@keyframes ki-lauf{0%{transform:translateX(-100%) scaleX(.6)}50%{transform:translateX(70%) scaleX(1)}100%{transform:translateX(260%) scaleX(.6)}}
.ki-kreisel{display:block;width:10px;height:10px;border:2px solid var(--text-3);border-top-color:var(--schwarz);border-radius:50%;animation:ki-dreh .9s linear infinite}
@keyframes ki-dreh{to{transform:rotate(360deg)}}
.ki-schritte li.laeuft .ki-schritt-marke{background:transparent}
.ki-schritt-zahl,.ki-schritt-dauer{display:block;color:var(--text-3);font-size:10.5px}
.ki-schritt-dauer{font-variant-numeric:tabular-nums}
.ki-gesamt{margin:0 0 11px}
.ki-gesamt .ki-balken{height:6px}
.ki-gesamt small{display:flex;justify-content:space-between;gap:12px;color:var(--text-2);font-size:11px}
.ki-gesamt-anteil{font-variant-numeric:tabular-nums}
.ki-installation-fuss{margin:10px 0 0;color:var(--text-3);font-size:11px}
.ki-erfolg{margin-top:9px;padding:16px;border:1px solid var(--linie);border-radius:var(--r2);background:var(--flaeche-2)}
.ki-erfolg h2{margin:0;font-size:22px;letter-spacing:-.02em}
.ki-erfolg p{margin:7px 0 0;font-size:12.5px}
.ki-erfolg .aktionen{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.ki-testantwort{margin:12px 0 0;padding:10px 12px;border-left:2px solid var(--schwarz);background:var(--flaeche-1)}
.ki-testantwort small{color:var(--text-3);font-size:10px}.ki-testantwort p{margin:4px 0 0;font-size:12px}
.ki-assistent{font-size:11.5px;color:var(--text-2)}
.ki-fehler-detail{font-family:var(--mono,ui-monospace,monospace);font-size:11px;word-break:break-word}
.ki-hardware label.check{flex-direction:row;align-items:center;gap:8px}
@media(max-width:1100px){.ki-optionen{grid-template-columns:1fr}}
@media(max-width:800px){.ki-setup-schritt dl,.ki-eignung,.ki-profil{grid-template-columns:1fr 1fr}.ki-setup-start,.bridge-download{align-items:flex-start;flex-direction:column}.ki-geraet form{margin-left:0}}
/* Ohne Bewegung bleibt der Sekundenzaehler als Lebenszeichen — er ist
   ohnehin der belastbarere: eine wachsende Zahl kann keine Schleife sein. */
@media(prefers-reduced-motion:reduce){
  .ki-setup-schritt button:active,.primaer-knopf:active{transform:none}
  .ki-balken i{transition:none}
  .ki-balken.unbestimmt i{width:100%;opacity:.35;animation:none}
  .ki-kreisel{animation:none;border-top-color:var(--text-3)}
}

/* ---------------------------------------------------------------------------
   Erstsetup: Stammdaten & Struktur.

   Die Schrittleiste traegt den ganzen Ablauf: sie zeigt jederzeit, wo man
   steht, was schon fertig ist und was noch gesperrt ist. Ein Wizard ohne
   diese Anzeige fuehlt sich an wie ein Formular ohne Ende.
--------------------------------------------------------------------------- */
.setup-schritte{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;
  list-style:none;margin:0 0 10px;padding:0}
.setup-schritte li>a,.setup-schritte li>span{
  display:flex;align-items:flex-start;gap:8px;padding:9px 11px;text-decoration:none;
  border:1px solid var(--linie);border-radius:var(--r2);background:var(--flaeche);color:inherit;
  transition:border-color var(--t1) var(--kurve),background var(--t1) var(--kurve);
}
.setup-schritte li>a:hover{border-color:var(--text-2)}
.setup-schritte b{display:grid;place-items:center;flex:0 0 20px;height:20px;border-radius:50%;
  background:var(--flaeche-2);font-size:10px;font-weight:700}
.setup-schritte strong{display:block;font-size:12px;letter-spacing:-.005em}
.setup-schritte small{display:block;color:var(--text-3);font-size:10px;margin-top:2px;line-height:1.35}
.setup-schritte li.aktiv>a{border-color:var(--schwarz,#111);background:var(--flaeche-2)}
.setup-schritte li.aktiv b{background:var(--schwarz,#111);color:#fff}
.setup-schritte li.fertig b::after{content:'✓'}
.setup-schritte li.fertig b{font-size:0;background:#1f6f43;color:#fff}
.setup-schritte li.fertig b::after{font-size:11px}
.setup-schritte li.gesperrt>span{opacity:.45}
@media(max-width:900px){.setup-schritte{grid-template-columns:1fr 1fr}}

.stapel-tabelle{min-width:720px}
.stapel-tabelle td{vertical-align:top}
.stapel-werte{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:3px;color:var(--text-3)}
.stapel-werte i{font-style:normal;opacity:.7}
.stapel-hinweis{display:block;margin-top:3px;color:var(--text-2);max-width:420px;line-height:1.4}
.stapel-aktionen{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.stapel-aktionen form{display:flex;gap:4px;align-items:center}
tr.stapel-uebernommen{opacity:.5}
tr.stapel-ignoriert{opacity:.4;text-decoration:line-through}
tr.stapel-dublette td:first-child{border-left:2px solid #b8860b;padding-left:9px}
tr.stapel-unvollstaendig td:first-child{border-left:2px solid var(--fehler,#a3312a);padding-left:9px}

/* Pruefansicht: Liste links, Begruendung rechts. */
.vorschlag-filter{display:flex;flex-wrap:wrap;gap:5px;padding:10px 12px 0}
.vorschlag-filter a{padding:4px 10px;border:1px solid var(--linie);border-radius:999px;
  text-decoration:none;color:var(--text-2);font-size:11px}
.vorschlag-filter a.aktiv{background:var(--schwarz,#111);color:#fff;border-color:var(--schwarz,#111)}
.vorschlag-filter b{font-variant-numeric:tabular-nums;opacity:.7;font-weight:500}
.vorschlag-flaeche{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,1.4fr);gap:10px;
  padding:10px 12px 12px}
.vorschlag-liste{display:grid;gap:4px;align-content:start;max-height:560px;overflow:auto}
.vorschlag-zeile{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--linie-zart);
  border-radius:var(--r1,6px);text-decoration:none;color:inherit;background:var(--flaeche)}
.vorschlag-zeile:hover{border-color:var(--text-3)}
.vorschlag-zeile.aktiv{border-color:var(--schwarz,#111);background:var(--flaeche-2)}
.vorschlag-name{flex:1;min-width:0}
.vorschlag-name strong{display:block;font-size:12px}
.vorschlag-name small{display:block;color:var(--text-3);font-size:10.5px;margin-top:1px}
.marke{display:inline-block;padding:2px 7px;border-radius:999px;border:1px solid var(--linie);
  font-size:10px;white-space:nowrap;color:var(--text-2)}
.marke-sicher{border-color:#1f6f43;color:#1f6f43}
.marke-wahrscheinlich{border-color:#b8860b;color:#8a6508}
.marke-unklar{border-color:var(--linie);color:var(--text-3)}
.vorschlag-detail{border:1px solid var(--linie);border-radius:var(--r2);padding:12px}
.vorschlag-detail>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  margin-bottom:10px}
.vorschlag-detail h2{margin:2px 0 0;font-size:17px;letter-spacing:-.015em}
.zuordnungen,.dubletten,.evidenz{margin-top:11px;padding-top:10px;border-top:1px solid var(--linie-zart)}
.zuordnungen>strong,.dubletten>strong,.evidenz>strong{display:block;font-size:11px;
  text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:6px}
.zuordnung,.dublette{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;
  border-top:1px solid var(--linie-zart)}
.zuordnung:first-of-type,.dublette:first-of-type{border-top:0}
.zuordnung-aktionen{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}
.zuordnung-aktionen form{display:flex;gap:4px;align-items:center}
.evidenz-dokument{margin-bottom:8px}
.evidenz-dokument>span{font-size:11px;color:var(--text-2);font-weight:500}
.evidenz-dokument ul{list-style:none;margin:4px 0 0;padding:0 0 0 10px;border-left:2px solid var(--linie-zart)}
.evidenz-dokument li{font-size:11.5px;padding:3px 0;color:var(--text-2)}
.evidenz-dokument li small{display:block;color:var(--text-3);font-size:10.5px;font-style:italic}

/* Strukturbaum: Einrueckung ist die Aussage. */
.strukturbaum,.strukturbaum ul{list-style:none;margin:0;padding:0 0 0 14px}
.strukturbaum{padding:11px 12px 12px}
.baum-gesellschaft{padding:6px 0}
.baum-gesellschaft>strong{font-size:13px}
.baum-objekt{padding:5px 0 5px 12px;border-left:1px solid var(--linie);margin-left:2px}
.baum-objekt>strong{font-size:12px;color:var(--text-1,#111)}
.baum-gruppe{margin:4px 0 0 10px}
.baum-gruppe>span{font-size:9.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-3)}
.baum-gruppe li{font-size:11.5px;padding:2px 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.baum-vertrag{color:var(--text-3);font-size:11px}
.baum-leer{display:block;margin-left:10px;color:var(--text-3);font-size:10.5px}
.baum-offen{margin:0 12px 12px;padding:8px 10px;border:1px dashed var(--linie);border-radius:var(--r2)}
@media(max-width:1000px){.vorschlag-flaeche{grid-template-columns:1fr}}

/* ---------------------------------------------------------------------------
   Dokumentenmatrix.

   Die Schachtelung ist die Aussage: Hauptkategorie umschliesst
   Unterkategorie umschliesst Typ. Deshalb traegt jede Ebene eine eigene
   Flaeche und einen etwas leiseren Rahmen als die darueber — nicht drei
   gleich aussehende Listen untereinander.

   Abgeschaltetes bleibt lesbar und tritt zurueck (Opazitaet), statt zu
   verschwinden: man muss sehen koennen, was man gerade nicht benutzt.
--------------------------------------------------------------------------- */
.matrix-haupt{border:1px solid var(--linie);border-radius:var(--r2);margin:0 12px 8px;background:var(--flaeche)}
.matrix-haupt:first-of-type{margin-top:11px}
.matrix-haupt>summary{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:11px 13px;cursor:pointer;list-style:none;
}
.matrix-haupt>summary::-webkit-details-marker{display:none}
.matrix-haupt>summary::before{
  content:'›';font-size:13px;color:var(--text-3);
  transition:transform var(--t1) var(--kurve);
}
.matrix-haupt[open]>summary::before{transform:rotate(90deg)}
.matrix-haupt>summary strong{display:block;font-size:13.5px;letter-spacing:-.01em}
.matrix-haupt>summary small{display:block;color:var(--text-3);font-size:11px;margin-top:2px}
.matrix-haupt>summary span{margin-left:auto;color:var(--text-3);font-size:10.5px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.matrix-haupt.inaktiv{opacity:.55}
.matrix-kopfaktionen{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:0 13px 9px;border-bottom:1px solid var(--linie-zart)}

.matrix-unter{padding:9px 13px;border-bottom:1px solid var(--linie-zart)}
.matrix-unter:last-of-type{border-bottom:0}
.matrix-unter.inaktiv{opacity:.55}
.matrix-unter>header{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.matrix-unter>header strong{font-size:11.5px;font-weight:600;letter-spacing:.02em}
.matrix-unter>header small{color:var(--text-3);font-size:10.5px;margin-left:6px}
.matrix-unter>header>span{color:var(--text-3);font-size:10.5px;font-variant-numeric:tabular-nums;
  margin-left:auto}

.matrix-typen{display:grid;gap:4px}
.matrix-typ{display:flex;align-items:flex-start;gap:9px;padding:6px 9px;
  border:1px solid var(--linie-zart);border-radius:var(--r1,6px);background:var(--flaeche-1)}
.matrix-typ.inaktiv{opacity:.5}
.matrix-typ>div{flex:1;min-width:0}
.matrix-typ strong{font-size:12px;font-weight:500}
.matrix-typ small{display:block;color:var(--text-3);font-size:10.5px;margin-top:1px}
.matrix-marke{font-style:normal;color:var(--text-3);font-size:10px;margin-left:6px;
  border:1px solid var(--linie);border-radius:999px;padding:1px 6px}
.matrix-schalter{display:flex;align-items:center;padding-top:1px}
.matrix-knopf{
  min-width:74px;padding:3px 9px;border:1px solid var(--linie);border-radius:999px;
  background:var(--flaeche);color:var(--text-3);font-size:10.5px;cursor:pointer;
  transition:background var(--t1) var(--kurve),color var(--t1) var(--kurve),
    border-color var(--t1) var(--kurve),transform var(--t1) var(--kurve);
}
.matrix-knopf.an{background:var(--schwarz,#111);color:#fff;border-color:var(--schwarz,#111)}
.matrix-knopf:hover{border-color:var(--schwarz,#111)}
.matrix-knopf:active{transform:scale(.97)}
.matrix-leer{color:var(--text-3);font-size:11px;margin:4px 0 0}
.matrix-neu{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.matrix-neu input{flex:1;min-width:130px}
.matrix-bearbeiten>summary{cursor:pointer;color:var(--text-3);font-size:10.5px;
  list-style:none;padding:2px 0}
.matrix-bearbeiten>summary::-webkit-details-marker{display:none}
.matrix-bearbeiten>summary:hover{color:var(--text-2)}
.matrix-bearbeiten .formular{margin-top:6px}
@media(max-width:800px){.matrix-haupt>summary span{margin-left:0}}
@media(prefers-reduced-motion:reduce){.matrix-haupt>summary::before{transition:none}
  .matrix-knopf:active{transform:none}}

/* Property Management Brain: dichte, ruhige Status- und Prüfansicht. */
.brain-intro{max-width:720px;color:var(--text-2);line-height:1.55}
.brain-progress{padding:12px}.brain-progress>div{display:flex;justify-content:space-between;align-items:baseline}
.brain-progress strong{font-size:18px;letter-spacing:-.02em}.brain-progress span{font-variant-numeric:tabular-nums;color:var(--text-3)}
.brain-progress progress{width:100%;height:7px;margin-top:8px}
.brain-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:0;padding:0 12px 12px;gap:6px}
.brain-stats div{padding:8px 10px;background:var(--flaeche-1);border:1px solid var(--linie-zart);border-radius:var(--r1)}
.brain-stats dt{font-size:10.5px;color:var(--text-3)}.brain-stats dd{margin:2px 0 0;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.brain-group{margin:0 12px 6px;border:1px solid var(--linie);border-radius:var(--r1);background:var(--flaeche)}
.brain-group summary{display:flex;justify-content:space-between;padding:9px 11px;cursor:pointer}.brain-group ul{list-style:none;margin:0;padding:0 11px 8px}
.brain-group li{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:7px;padding:5px 0;border-top:1px solid var(--linie-zart)}
.brain-group li small{color:var(--text-3)}.brain-signal{width:7px;height:7px;border-radius:50%;background:#c13b32}
.brain-signal.green{background:#27894c}.brain-signal.yellow{background:#b98216}
.brain-reviews{display:grid;gap:8px;padding:0 12px 12px}.brain-reviews article{padding:10px;border:1px solid #d6a438;border-radius:var(--r1);background:#fffaf0}
.brain-reviews blockquote{margin:7px 0;padding-left:9px;border-left:2px solid #d6a438;color:var(--text-2);font-size:11.5px}
.brain-reviews form{display:flex;gap:6px;margin-top:8px}
.brain-phase-note{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 14px;margin-bottom:12px;border:1px solid var(--linie);border-radius:var(--r2);background:var(--flaeche)}
.brain-phase-note span{color:var(--text-2);font-size:12px}.brain-step{margin-bottom:16px;border:1px solid var(--linie);border-radius:var(--r2);overflow:hidden;background:var(--flaeche)}
.brain-step>header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--linie-zart);background:var(--flaeche-1)}
.brain-step>header div{display:grid;gap:2px}.brain-step>header small{color:var(--text-3)}.brain-step-number{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--akzent);color:#fff;font-weight:700}
.brain-step.locked{opacity:.72}.brain-step.locked .brain-step-number{background:var(--text-3)}.brain-step-body>.panel{border:0;border-radius:0;margin:0;border-bottom:1px solid var(--linie-zart)}
.brain-step-body>.panel:last-child{border-bottom:0}@media(max-width:700px){.brain-phase-note{display:grid}.brain-step>header{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.brain-group summary{scroll-behavior:auto}}
/* Dokumenten-Onboarding: eine ruhige Aufgabe je Zustand. */
.brain-assistant{max-width:920px;margin:5vh auto 8vh}.brain-upload-view{max-width:820px}
.brain-upload{text-align:center}.brain-drop{min-height:430px;padding:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border:2px dashed var(--linie);border-radius:24px;background:var(--flaeche);cursor:pointer;transition:transform .16s ease,opacity .16s ease}
.brain-drop:hover,.brain-drop.is-dragging{transform:scale(1.006);border-color:var(--akzent)}.brain-drop input,.brain-folder{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.brain-upload-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--akzent);color:white;font-size:34px}.brain-drop strong{font-size:clamp(25px,3vw,36px);letter-spacing:-.025em}.brain-drop small{max-width:590px;color:var(--text-2);font-size:14px;line-height:1.55}.brain-file-action{margin-top:8px;padding:10px 17px;border-radius:999px;background:var(--flaeche-1);font-weight:600}.brain-folder-button{margin:15px auto 0;background:transparent;color:var(--text-2);box-shadow:none}.brain-live{min-height:22px;color:var(--text-2)}.brain-submit{min-width:220px;font-size:15px;padding:12px 20px}
.brain-progress-view{display:grid;place-items:center;min-height:58vh}.brain-progress-card{width:min(680px,100%);text-align:center}.brain-stage{font-size:12px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.brain-progress-card h2,.brain-structure-view>header h2,.brain-complete h2{font-size:clamp(28px,4vw,42px);letter-spacing:-.035em;margin:13px 0 32px}.brain-progress-number{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums}.brain-progress-card progress{width:100%;height:10px;margin:15px 0}.brain-progress-card p{font-size:16px;margin:8px}.brain-progress-card small{color:var(--text-3)}
.brain-structure-view>header{text-align:center;margin-bottom:34px}.brain-structure-view>header h2{margin-bottom:7px}.brain-structure-view>header p{color:var(--text-2)}.brain-tree{display:grid;gap:12px}.brain-company,.brain-unassigned{border:1px solid var(--linie);border-radius:18px;background:var(--flaeche);overflow:hidden}.brain-company>summary,.brain-unassigned>summary{padding:18px 20px;font-size:19px;font-weight:700;cursor:pointer}.brain-company-edit,.brain-property-edit{padding:0 15px}.brain-company-edit>.brain-entity,.brain-property-edit>.brain-entity{border:0}.brain-property{margin:0 14px 14px;border:1px solid var(--linie-zart);border-radius:13px;background:var(--flaeche-1)}.brain-property>summary{padding:14px 16px;font-weight:700;cursor:pointer}.brain-property section{padding:0 16px 12px}.brain-property h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:12px 0 4px}.brain-property ul,.brain-unassigned ul{list-style:none;padding:0;margin:0}.brain-entity{border-top:1px solid var(--linie-zart)}.brain-entity summary{display:flex;justify-content:space-between;gap:12px;padding:10px 3px;cursor:pointer}.brain-edit{font-size:11px;color:var(--text-3)}.brain-warning{color:#a66d00}.brain-entity-actions{display:grid;gap:7px;padding:3px 3px 12px}.brain-entity-actions form,.brain-add form,.brain-review form{display:flex;gap:7px}.brain-entity-actions input,.brain-entity-actions select,.brain-add input,.brain-add select{min-width:0;flex:1}.brain-evidence-note{color:var(--text-2);font-size:12px}.brain-add{margin:16px 0;padding:13px 16px;border:1px solid var(--linie);border-radius:13px}.brain-add>summary{cursor:pointer;font-weight:600;margin-bottom:10px}.brain-review-list{margin-top:28px}.brain-review{padding:15px;margin:8px 0;border:1px solid #dfbd75;border-radius:13px;background:#fffaf0}.brain-review blockquote{margin:9px 0;padding-left:10px;border-left:2px solid #c99224;color:var(--text-2)}.brain-review form{margin-top:10px}.brain-approve{text-align:center;margin:38px 0 12px}.brain-approve button{min-width:260px;padding:13px;font-size:15px}.brain-rerun{text-align:center;margin:0 0 38px}.brain-complete{text-align:center}.brain-check{display:grid;place-items:center;width:72px;height:72px;margin:auto;border-radius:50%;background:#237a46;color:#fff;font-size:38px}.brain-complete ul{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;list-style:none;padding:0;margin:30px 0}.brain-complete li{padding:14px;border-radius:12px;background:var(--flaeche-1)}.brain-complete-actions{display:flex;justify-content:center;gap:16px;align-items:center}
.brain-unassigned-bulk,.brain-literal-assignments{margin:12px 0;padding:13px 15px;border:1px solid var(--linie);border-radius:13px;background:var(--flaeche)}.brain-unassigned-bulk{display:flex;align-items:center;justify-content:space-between;gap:14px}.brain-unassigned-bulk p{margin:0;color:var(--text-2);font-size:12px}.brain-literal-assignments{text-align:left}.brain-literal-assignments>summary{cursor:pointer;font-weight:650}.brain-literal-assignments article{padding:12px 0;border-top:1px solid var(--linie-zart)}.brain-literal-assignments blockquote{margin:7px 0;color:var(--text-2)}
@media(max-width:700px){.brain-assistant{margin-top:16px}.brain-drop{min-height:330px;padding:30px 20px}.brain-complete ul{grid-template-columns:1fr 1fr}.brain-entity-actions form,.brain-add form{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.brain-drop{transition:opacity .12s}.brain-drop:hover,.brain-drop.is-dragging{transform:none}}
.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.integration-card{margin:0;min-width:0}.integration-card>.aktionen{padding:9px 12px;border-top:1px solid var(--linie-zart);color:var(--text-3);font-size:11px}
@media(max-width:850px){.integration-grid{grid-template-columns:1fr}}

/* --- Zustandsflaeche der lokalen KI ---------------------------------------------------
   Eine Karte, drei Angaben: Zustand, Modell, Rechner. Alles Weitere gehoert in
   die Einrichtung — auf dieser Seite waere es Text, den man taeglich sieht und
   nie braucht. */
.adminseite .lage{
  background:var(--flaeche);
  border:1px solid var(--linie);
  border-left:3px solid var(--grau-300);
  border-radius:var(--r3);
  box-shadow:var(--sch-1);
  margin-bottom:12px;
  overflow:hidden;
}
.adminseite .lage.gut{border-left-color:#237a46}
.adminseite .lage.offen{border-left-color:#a66d00}
.adminseite .lage-kopf{padding:14px 16px 4px;display:grid;gap:5px}
.adminseite .lage-kopf .kompakt-status{font-size:13px;font-weight:600;color:var(--text)}
.adminseite .lage-kopf p{margin:0;color:var(--text-2);font-size:12.5px;max-width:72ch}
.adminseite .lage .kennzahlen{padding:6px 16px 14px}

/* --- Fristen -------------------------------------------------------------------------
   Eine Liste, nach Termin sortiert. Der Zustand steht als Wort da, nicht als
   Farbe allein: „ueberfaellig" muss auch ohne Farbwahrnehmung lesbar sein. */
.adminseite .filterleiste{margin-bottom:12px;width:max-content;max-width:100%;overflow-x:auto}
.adminseite .filterleiste a{display:flex;align-items:center;gap:6px}
.adminseite .filterleiste a span{
  min-width:18px;
  padding:0 5px;
  border-radius:999px;
  background:var(--grau-200);
  font-size:10.5px;
  font-variant-numeric:tabular-nums;
  text-align:center;
}
.adminseite .filterleiste a.aktiv span{background:var(--grau-150)}
table.fristen{width:100%;border-collapse:collapse}
table.fristen td{vertical-align:top}
table.fristen td small{display:block;color:var(--text-3);font-size:11px}
.frist-datum strong{font-variant-numeric:tabular-nums;white-space:nowrap}
tr.frist.hoch .frist-datum strong{font-weight:700}
tr.frist.erledigt{opacity:.62}
.frist-status{
  display:inline-block;
  padding:1px 8px;
  border-radius:999px;
  border:1px solid var(--linie);
  font-size:11px;
  white-space:nowrap;
}
.frist-status.ueberfaellig{border-color:#d8b18a;background:#fdf3e8;color:#8a4b00}
.frist-status.erledigt{color:var(--text-3)}
.frist-erinnerung{color:var(--text-2);font-weight:500}
.frist-hoch{
  margin-left:6px;
  padding:0 6px;
  border-radius:999px;
  background:var(--grau-200);
  font-style:normal;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
}
tr.frist-bearbeiten>td{background:var(--flaeche-2);padding:0}
tr.frist-bearbeiten .formular{border:0;background:transparent}

/* --- Formular: Kern sichtbar, Rest eingeklappt ---------------------------------------
   „Erweiterte Angaben" ist kein Ablageplatz fuer Ungeklaertes, sondern die
   Antwort auf eine Beobachtung: ein Formular mit zwanzig Feldern wird nicht
   sorgfaeltiger ausgefuellt, sondern seltener. */
.adminseite .mehr-felder{grid-column:1/-1;border-top:1px solid var(--linie-zart);padding-top:9px}
.adminseite .mehr-felder>summary{
  cursor:pointer;
  font-size:11.5px;
  font-weight:500;
  color:var(--text-2);
  padding:3px 0;
}
.adminseite .mehr-felder>summary:hover{color:var(--text)}
.adminseite .formular-raster{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:8px;
  padding:8px 0 2px;
}
.adminseite .formular-raster .breit{grid-column:1/-1}
@media (max-width:1100px){.adminseite .formular-raster{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media (max-width:640px){.adminseite .formular-raster{grid-template-columns:1fr}}

/* Ein Panel, das sich oeffnet: dieselbe Flaeche wie ein Panel, nur zugeklappt. */
.adminseite details.neu-panel{
  background:var(--flaeche);
  border:1px solid var(--linie);
  border-radius:var(--r3);
  box-shadow:var(--sch-1);
  margin-bottom:10px;
  overflow:hidden;
}
.adminseite details.neu-panel>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px;
  cursor:pointer;
}
.adminseite details.neu-panel>summary h2{font-size:14px;letter-spacing:-.012em;margin:0}
.adminseite details.neu-panel>summary .eyebrow{font-size:9px;margin:0}
.adminseite details.neu-panel>summary span{color:var(--text-3);font-size:15px}
.adminseite details.neu-panel[open]>summary{border-bottom:1px solid var(--linie-zart)}

/* Stammdaten: erst die fachliche Gruppe, dann Liste und Formular. Die
   Auswahl bleibt kompakt, damit die Hierarchie auf einen Blick lesbar ist. */
.stammdaten-auswahl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:10px}
.stammdaten-auswahl section{padding:9px;border:1px solid var(--linie);border-radius:var(--r2);background:var(--flaeche)}
.stammdaten-auswahl section>strong{display:block;margin:0 4px 6px;color:var(--text-3);font-size:9px;letter-spacing:.09em;text-transform:uppercase}
.stammdaten-auswahl section>div{display:grid;gap:2px}
.stammdaten-auswahl a{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;color:var(--text-2);font-size:11.5px;text-decoration:none;transition:background var(--t1) var(--kurve),color var(--t1) var(--kurve),transform var(--t1) var(--kurve)}
.stammdaten-auswahl a:hover{background:var(--flaeche-2);color:var(--text)}
.stammdaten-auswahl a:active{transform:scale(.98)}
.stammdaten-auswahl a.aktiv{background:#111;color:#fff;font-weight:600}
.stammdaten-auswahl a span{font-variant-numeric:tabular-nums;opacity:.65}
.stammdaten-form{margin-top:10px;overflow:hidden}
.stammdaten-form .mehr-felder>summary{cursor:pointer;color:var(--text-2);font-size:11.5px;padding:5px 0}
.stammdaten-tabelle .stamm-aktionen{display:flex;justify-content:flex-end;align-items:center;gap:8px;white-space:nowrap}
.stamm-aktionen a,.stamm-aktionen button{border:0;background:none;color:var(--text-2);font:inherit;font-size:11px;text-decoration:none;cursor:pointer;padding:3px}
.stamm-aktionen a:hover,.stamm-aktionen button:hover{color:var(--text)}
.stamm-aktionen form{display:inline}
@media(max-width:1100px){.stammdaten-auswahl{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.stammdaten-auswahl{grid-template-columns:1fr 1fr}.stammdaten-tabelle .stamm-aktionen{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.stammdaten-auswahl a{transition:none}.stammdaten-auswahl a:active{transform:none}}
.adminseite .matrix-verwalten,.adminseite .matrix-anlegen{padding:2px 0 8px}
.adminseite .matrix-verwalten>summary,.adminseite .matrix-anlegen>summary{
  cursor:pointer;
  font-size:11.5px;
  color:var(--text-2);
  padding:4px 0;
}
.adminseite .matrix-verwalten>summary:hover,.adminseite .matrix-anlegen>summary:hover{color:var(--text)}
.adminseite .panel-fuss{
  margin:0;
  padding:8px 12px 11px;
  color:var(--text-3);
  font-size:11.5px;
  max-width:76ch;
}

/* --- Kontenplan-Import ---------------------------------------------------------------
   Die Vorschau ist der ganze Zweck des Schrittes: was uebernommen wuerde,
   steht vor der Bestaetigung Zeile fuer Zeile da. */
.adminseite table.importtabelle{width:100%;border-collapse:collapse}
.adminseite table.importtabelle td{vertical-align:top}
.adminseite table.importtabelle td small{display:block;color:var(--text-3);font-size:11px}
.adminseite tr.befund-unvollstaendig,.adminseite tr.befund-dublette{background:var(--grau-100);color:var(--text-2)}
.adminseite .importvorschau .konto-aktionen{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:11px 12px;
  border-top:1px solid var(--linie-zart);
}
.adminseite .importvorschau .konto-aktionen small{color:var(--text-3);font-size:11.5px}

/* --- Rechner der lokalen KI ---------------------------------------------------------- */
.adminseite .ki-geraet{display:grid;gap:8px;padding:10px 0}
.adminseite .ki-geraet.offen p{margin:0;color:var(--text-2);font-size:12.5px;max-width:70ch}
.adminseite .ki-code{
  padding:12px 14px;
  border:1px dashed var(--linie-stark);
  border-radius:var(--r2);
  background:var(--flaeche-2);
}
.adminseite .ki-code strong{
  display:block;
  font-size:26px;
  font-weight:700;
  letter-spacing:.16em;
  font-variant-numeric:tabular-nums;
}
.adminseite .ki-code small{color:var(--text-3);font-size:11.5px}

/* --- Dreischritt des Dokumenten-Onboardings ------------------------------------------ */
.brain-schritte{
  display:flex;
  gap:8px;
  list-style:none;
  padding:0;
  margin:0 0 28px;
  justify-content:center;
  flex-wrap:wrap;
}
.brain-schritte li{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 13px;
  border:1px solid var(--linie);
  border-radius:999px;
  background:var(--flaeche);
  color:var(--text-3);
  font-size:12.5px;
}
.brain-schritte li b{
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  border-radius:50%;
  background:var(--grau-200);
  color:var(--text-2);
  font-size:11px;
}
.brain-schritte li.aktiv{border-color:var(--text);color:var(--text);font-weight:600}
.brain-schritte li.aktiv b{background:var(--schwarz);color:#fff}
.brain-schritte li.fertig b{background:#237a46;color:#fff}
@media (max-width:640px){.brain-schritte li span{display:none}}

/* Die beiden Knoepfe des Uploads trugen bisher die Browservorgabe und
   sahen dadurch aus wie aus einer anderen Anwendung. Sie bekommen dieselbe
   Sprache wie der Rest: eine Hauptaktion, ein zurueckhaltender Nebenweg. */
.adminseite .brain-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 22px;
  border:0;
  border-radius:var(--r2);
  background:var(--schwarz);
  color:#fff;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
}
.adminseite .brain-submit:active{transform:scale(.98)}
.adminseite .brain-folder-button{
  border:0;
  padding:6px 10px;
  border-radius:var(--r1);
  background:transparent;
  color:var(--text-2);
  font-size:12px;
  cursor:pointer;
}
.adminseite .brain-folder-button:hover{color:var(--text);background:var(--flaeche-2)}
@media (prefers-reduced-motion:reduce){.adminseite .brain-submit:active{transform:none}}

/* --- Verpflichtende Ersteinrichtung --------------------------------------------------
   Die Seite bleibt sichtbar, aber unbedienbar im Hintergrund: Der neue Nutzer
   behaelt seine raeumliche Orientierung und hat trotzdem genau eine Aufgabe. */
.ersteinrichtung-sperre{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:24px;
  overflow:auto;
  background:rgba(20,22,26,.48);
  backdrop-filter:blur(12px) saturate(115%);
}
.ersteinrichtung-dialog{
  width:min(680px,100%);
  border:1px solid rgba(255,255,255,.7);
  border-radius:22px;
  background:rgba(255,255,255,.96);
  box-shadow:0 28px 80px rgba(0,0,0,.25),0 2px 8px rgba(0,0,0,.08);
  overflow:hidden;
  color:var(--text);
}
.ersteinrichtung-dialog>header{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:25px 28px 17px;margin:0;border-bottom:1px solid var(--linie-zart)}
.ersteinrichtung-dialog .eyebrow{margin:0 0 7px;color:var(--text-3);font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.ersteinrichtung-dialog h2{margin:0;font-size:clamp(24px,4vw,32px);line-height:1.08;letter-spacing:-.032em}
.ersteinrichtung-dialog header p:last-child{margin:9px 0 0;max-width:58ch;color:var(--text-2);font-size:13px;line-height:1.5}
.ersteinrichtung-dialog .ersteinrichtung-stand{flex:0 0 auto;margin:3px 0 0;padding:6px 9px;border-radius:999px;background:var(--flaeche-2);font-size:10.5px;font-weight:650;color:var(--text-2)}
.ersteinrichtung-dialog>.fehler{margin:15px 28px 0}
.ersteinrichtung-dialog form{display:grid;gap:0}
.ersteinrichtung-dialog fieldset{margin:0;padding:17px 28px;border:0;border-bottom:1px solid var(--linie-zart)}
.ersteinrichtung-schritt[hidden]{display:none}
.ersteinrichtung-dialog .schritt-einleitung{margin:0 0 14px;color:var(--text-2);font-size:12.5px;line-height:1.5}
.ersteinrichtung-dialog legend{padding:0 0 9px;font-size:12px;font-weight:700;color:var(--text)}
.ersteinrichtung-zahlen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.adminseite .ersteinrichtung-dialog label span{display:block;margin:0 0 5px;color:var(--text-2);font-size:11px;font-weight:600}
.adminseite .ersteinrichtung-dialog input[type=number]{width:100%;min-height:39px;padding:8px 10px;font-size:14px;font-variant-numeric:tabular-nums}
.ersteinrichtung-haken{display:flex;align-items:center;gap:8px;margin-top:11px;color:var(--text-2);font-size:12px}
.ersteinrichtung-auswahl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ersteinrichtung-auswahl.verwaltungsart{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}
.ersteinrichtung-auswahl label{position:relative;cursor:pointer}
.ersteinrichtung-auswahl input{position:absolute;inset:0;opacity:0;pointer-events:none}
.adminseite .ersteinrichtung-auswahl label span{
  display:flex;align-items:center;justify-content:center;min-height:39px;margin:0;padding:7px 10px;
  border:1px solid var(--linie);border-radius:9px;background:var(--flaeche);color:var(--text-2);
  font-size:12px;font-weight:600;text-align:center;transition:transform .12s ease,opacity .12s ease;
}
.ersteinrichtung-auswahl input:checked+span{border-color:var(--text);background:var(--schwarz);color:#fff}
.ersteinrichtung-auswahl input:focus-visible+span{outline:2px solid var(--text);outline-offset:2px}
.ersteinrichtung-auswahl label:active span{transform:scale(.98)}
.ersteinrichtung-dialog details{padding:11px 28px;border-bottom:1px solid var(--linie-zart)}
.ersteinrichtung-dialog summary{cursor:pointer;color:var(--text-2);font-size:12px;font-weight:600}
.ersteinrichtung-dialog summary span{float:right;color:var(--text-3);font-size:10px;font-weight:500}
.ersteinrichtung-optional{padding:12px 0 4px}
.ersteinrichtung-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 28px 20px}
.ersteinrichtung-dialog footer small{max-width:34ch;color:var(--text-3);font-size:10.5px;line-height:1.35}
.ersteinrichtung-dialog footer button{min-height:40px;padding:9px 16px;border:0;border-radius:10px;background:var(--schwarz);color:#fff;font-size:12.5px;font-weight:650;cursor:pointer}
.ersteinrichtung-dialog footer button.sekundaer{background:var(--flaeche-2);color:var(--text)}
.ersteinrichtung-schritt footer{margin:18px -28px -17px;padding-bottom:17px;border-top:1px solid var(--linie-zart)}
.ersteinrichtung-naechste{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.ersteinrichtung-naechste li{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--linie-zart);border-radius:10px;background:var(--flaeche)}
.ersteinrichtung-naechste strong{font-size:12.5px}.ersteinrichtung-naechste span{color:var(--text-2);font-size:11.5px;line-height:1.4}
.ersteinrichtung-dialog footer button:active{transform:scale(.98)}
@media(max-width:620px){
  .ersteinrichtung-sperre{place-items:start center;padding:12px}
  .ersteinrichtung-dialog{border-radius:17px}
  .ersteinrichtung-dialog>header,.ersteinrichtung-dialog fieldset{padding-left:18px;padding-right:18px}
  .ersteinrichtung-dialog details,.ersteinrichtung-dialog footer{padding-left:18px;padding-right:18px}
  .ersteinrichtung-zahlen{grid-template-columns:1fr 1fr}.ersteinrichtung-zahlen label:first-child{grid-column:1/-1}
  .ersteinrichtung-auswahl{grid-template-columns:1fr}.ersteinrichtung-auswahl.verwaltungsart{grid-template-columns:1fr}
  .ersteinrichtung-dialog footer{align-items:stretch;flex-direction:column}.ersteinrichtung-dialog footer button{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .ersteinrichtung-auswahl label span{transition:none}.ersteinrichtung-auswahl label:active span,.ersteinrichtung-dialog footer button:active{transform:none}
}
@media(prefers-reduced-transparency:reduce){.ersteinrichtung-sperre{background:#d8d9dc;backdrop-filter:none}.ersteinrichtung-dialog{background:#fff}}
@media(prefers-contrast:more){.ersteinrichtung-dialog{border:2px solid #000}.ersteinrichtung-auswahl label span{border-color:#555}}

/* Schritt 3-5 (Lokale KI, Konnektoren, Benutzer) und Schritt 6 (Abschluss):
   Zusammenfassungskarten statt eigener Formulare — dieselbe Fachlogik bleibt
   auf ihrer vollstaendigen Seite, hier steht nur der Stand und der Weg dorthin. */
.ersteinrichtung-karte{padding:17px 28px 20px}
.ersteinrichtung-karte>.schritt-einleitung{margin-bottom:16px}
.ersteinrichtung-status{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:12px 14px;border:1px solid var(--linie-zart);border-radius:10px;background:var(--flaeche)}
.ersteinrichtung-status p{margin:0;color:var(--text-2);font-size:12.5px;line-height:1.4}
.ersteinrichtung-konnektoren{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 18px}
.ersteinrichtung-konnektoren div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ersteinrichtung-konnektoren span{color:var(--text-2);font-size:11.5px;font-weight:600}
.ersteinrichtung-konnektoren strong{font-size:11.5px;color:var(--text-3);font-weight:650}
.ersteinrichtung-konnektoren strong.ok{color:#17633b}
.ersteinrichtung-karte footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0}
.ersteinrichtung-karte footer form{margin:0}
.ersteinrichtung-zurueck{margin:14px 0 0;font-size:11.5px}
.ersteinrichtung-zurueck a{color:var(--text-3)}
@media(max-width:620px){
  .ersteinrichtung-karte{padding-left:18px;padding-right:18px}
  .ersteinrichtung-konnektoren{grid-template-columns:1fr}
  .ersteinrichtung-karte footer{align-items:stretch;flex-direction:column-reverse}
  .ersteinrichtung-karte footer .primaer-knopf{text-align:center}
}

/* Rueckweg von einer vollstaendigen Fachseite (KI/Schnittstellen/Benutzer)
   zurueck in den Onboarding-Assistenten, wenn dieser von dort aus verlinkt
   wurde. Bewusst schmal — es ist ein Ausweg, keine zweite Navigation. */
.onboarding-rueckweg{margin:0 0 14px;font-size:11.5px}
.onboarding-rueckweg a{color:var(--text-3)}
.onboarding-rueckweg a:hover{color:var(--text)}

.ki-statuskette{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 14px;padding:0;list-style:none}
.ki-statuskette li{display:flex;align-items:center;gap:7px;min-width:0;padding:10px;border:1px solid var(--linie-zart);border-radius:10px;background:var(--flaeche);color:var(--text-3);font-size:11px;font-weight:600}
.ki-statuskette li i{display:grid;place-items:center;flex:0 0 20px;height:20px;border-radius:50%;background:var(--flaeche-2);font-style:normal}
.ki-statuskette li.fertig{color:var(--text)}.ki-statuskette li.fertig i{background:#e2f3e9;color:#17633b}
.ki-statuskette li.laeuft{color:var(--text)}
@media(max-width:900px){.ki-statuskette{grid-template-columns:repeat(2,minmax(0,1fr))}}

.geraeteliste{display:grid;gap:6px;padding:11px 12px}
.geraet-zeile{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;
  gap:11px;
  padding:10px 11px;
  border:1px solid var(--linie);
  border-radius:9px;
  background:var(--flaeche);
  color:inherit;
  text-decoration:none;
}
.geraet-zeile.aktiv{border-left:2px solid var(--schwarz)}
.geraet-zeile strong{display:block;font-size:12.5px}
.geraet-zeile small{display:block;color:var(--text-3);font-size:11px}
.geraet-ki-stand{display:grid;gap:1px;justify-items:end;text-align:right;font-size:11px}
.geraet-ki-stand span{color:var(--text-3)}
.geraet-ki-stand strong{font-size:12px}
.geraet-zeile i{color:var(--text-3);font-style:normal}
