/* AFANDI Chat UI 2.0 – klare Informationsarchitektur, robuste Nachrichten, einheitliche Icons */
:root{
  --navy:#002d47;
  --navy-2:#073b57;
  --navy-3:#175d7c;
  --ink:#152630;
  --muted:#60717b;
  --muted-2:#81909a;
  --line:#d9e1e5;
  --line-strong:#bccbd2;
  --surface:#fff;
  --surface-2:#f6f8f9;
  --surface-3:#edf2f4;
  --surface-blue:#e8f1f5;
  --danger:#a13a3a;
  --success:#18734c;
  --shadow-sm:0 8px 24px rgba(0,45,71,.08);
  --shadow:0 22px 64px rgba(0,45,71,.15);
  --header:76px;
  --sidebar:clamp(318px,25vw,372px);
  --details:360px;
  font-family:"Barlow",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*{min-width:0}
html,body{background:var(--surface-2);overscroll-behavior:none}
body{font-size:16px;line-height:1.45}
button,input,textarea,select{font-family:inherit}
button{touch-action:manipulation}

.uiIcon{
  width:19px;
  height:19px;
  display:block;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.uiIconLarge{width:28px;height:28px}
.textBtn .uiIcon,.primaryBtn .uiIcon,.secondaryBtn .uiIcon{width:17px;height:17px}
.textBtn{display:inline-flex;align-items:center;gap:7px}
.iconBtn,.sendBtn,.accountNavBtn,.messageActionBtn,.filterBtn,.adminTab{
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.iconBtn{
  width:40px;
  height:40px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:var(--navy);
}
.iconBtn:hover{border-color:var(--line);background:var(--surface-2)}
.iconBtn:active,.sendBtn:active{transform:translateY(1px)}
.strongIcon{border-color:var(--navy);background:var(--navy);color:#fff}
.strongIcon:hover{border-color:var(--navy-2);background:var(--navy-2)}
.primaryBtn,.secondaryBtn,.dangerBtn{
  min-height:43px;
  border-radius:6px;
  padding:10px 16px;
  font-size:13px;
  letter-spacing:.01em;
}
.primaryBtn{box-shadow:0 5px 14px rgba(0,45,71,.12)}
.primaryBtn:hover{box-shadow:0 7px 18px rgba(0,45,71,.16)}

/* App-Rahmen: feste Navigations- und Arbeitsbereiche */
.appShell{
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
  grid-template-columns:var(--sidebar) minmax(0,1fr);
  background:var(--surface-2);
}
.conversationSidebar{
  height:100%;
  min-height:0;
  overflow:hidden;
  grid-template-rows:var(--header) auto auto minmax(0,1fr) auto;
  border-right:1px solid var(--line);
  box-shadow:8px 0 28px rgba(0,45,71,.025);
}
.sidebarHeader,.chatHeader,.detailsHeader{
  height:var(--header);
  min-height:var(--header);
}
.sidebarHeader{padding:0 20px 0 22px;background:#fff}
.brand{gap:12px;font-size:18px;letter-spacing:.01em}
.brand .logoFrame{width:112px;height:31px}
.brand .logoDivider{height:23px}
.sidebarSearch{padding:18px 18px 9px}
.sidebarSearch label,.adminToolbar label,.messageSearchBar label{
  height:44px;
  border-color:var(--line);
  border-radius:7px;
  padding:0 12px;
  background:var(--surface-2);
}
.sidebarSearch label:focus-within,.adminToolbar label:focus-within,.messageSearchBar label:focus-within{
  border-color:var(--navy-3);
  background:#fff;
  box-shadow:0 0 0 3px rgba(23,93,124,.08);
}
.searchIcon{width:18px;height:18px}
.sidebarSearch input{font-size:13px}
.sidebarSearch kbd{font-family:inherit;background:#fff;color:var(--muted-2)}
.conversationFilters{gap:6px;padding:6px 18px 13px;border-bottom:1px solid #edf1f3}
.filterBtn{min-height:31px;padding:6px 12px;border-radius:5px;font-size:11px}
.filterBtn:hover{background:var(--surface-2);color:var(--navy)}
.filterBtn.active{border-color:#cbd8de;background:var(--surface-blue);color:var(--navy)}
.conversationList{
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  padding:8px 10px 14px;
  scrollbar-gutter:stable;
}
.conversationList::-webkit-scrollbar,.messageViewport::-webkit-scrollbar,.adminTabPanel::-webkit-scrollbar{width:8px}
.conversationList::-webkit-scrollbar-thumb,.messageViewport::-webkit-scrollbar-thumb,.adminTabPanel::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:8px;background:#c7d2d7;background-clip:padding-box}
.conversationItem{
  height:78px;
  margin:2px 0;
  padding:10px;
  grid-template-columns:48px minmax(0,1fr);
  border:1px solid transparent;
  border-radius:8px;
}
.conversationItem:hover{border-color:#e2e8eb;background:#f8fafb}
.conversationItem.active{border-color:#cfdee5;background:var(--surface-blue);box-shadow:inset 3px 0 0 var(--navy)}
.conversationTop strong{font-size:14px;color:var(--ink)}
.conversationTop time{flex:0 0 auto;font-size:10px;color:var(--muted-2)}
.conversationBottom{margin-top:6px}
.conversationBottom p{font-size:12px;line-height:1.3}
.avatar{background:#dce8ed;color:var(--navy);box-shadow:inset 0 0 0 1px rgba(0,45,71,.06)}
.onlineDot{box-shadow:0 0 0 1px rgba(45,156,107,.12)}
.unreadBadge{background:var(--navy);box-shadow:0 0 0 3px rgba(0,45,71,.07)}

/* Konto als klarer eigener Navigationsbereich */
.sidebarFooter{padding:10px 12px 12px;border-top:1px solid var(--line);background:#fbfcfc}
.currentUser{min-height:58px;padding:8px 9px;border:1px solid transparent;border-radius:8px}
.currentUser:hover{border-color:var(--line);background:#fff}
.currentUserText strong{font-size:13px;color:var(--ink)}
.currentUserText small{font-size:10px;letter-spacing:.04em}
.accountChevron{width:16px;height:16px;color:var(--muted-2)}
.accountNav{grid-template-columns:1fr;gap:5px;margin-top:6px}
.accountNavBtn{
  min-height:38px;
  justify-content:flex-start;
  gap:10px;
  padding:0 12px;
  border-color:transparent;
  background:transparent;
  font-size:11px;
}
.accountNavBtn .uiIcon{width:17px;height:17px}
.accountNavBtn:hover{border-color:var(--line);background:#fff}
.adminAccountBtn{grid-column:auto;border-color:var(--navy);background:var(--navy);color:#fff}
.adminAccountBtn:hover{border-color:var(--navy-2);background:var(--navy-2)}

/* Arbeitsfläche */
.chatPanel{height:100%;min-height:0;min-width:0;overflow:hidden;background:#f3f6f7}
.emptyState{
  position:relative;
  height:100%;
  overflow:hidden;
  background-color:#f4f7f8;
  background-image:linear-gradient(rgba(0,45,71,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,45,71,.035) 1px,transparent 1px);
  background-size:56px 56px;
}
.emptyState::after{
  content:"";
  position:absolute;
  width:min(58vw,720px);
  height:min(58vw,720px);
  right:-34%;
  top:-34%;
  border:1px solid rgba(0,45,71,.08);
  border-radius:50%;
  box-shadow:0 0 0 80px rgba(0,45,71,.018),0 0 0 160px rgba(0,45,71,.012);
}
.emptyState>*{position:relative;z-index:1}
.emptyMark{
  width:74px;
  height:74px;
  margin-bottom:24px;
  display:grid;
  place-items:center;
  border:1px solid #cbd8de;
  border-radius:50%;
  background:#fff;
  color:var(--navy);
  box-shadow:var(--shadow-sm);
}
.emptyMark .uiIcon{width:29px;height:29px}
.emptyState h2{margin:11px 0 9px;font-size:42px}
.emptyState p{max-width:470px;font-size:14px}

.activeChat{
  height:100%;
  min-height:0;
  min-width:0;
  overflow:hidden;
  grid-template-rows:var(--header) auto auto minmax(0,1fr) auto;
  background:#f4f7f8;
}
.activeChat>.chatHeader{grid-row:1}
.activeChat>.messageSearchBar{grid-row:2}
.activeChat>.connectionBanner{grid-row:3}
.activeChat>.messageViewport{grid-row:4}
.activeChat>.composerArea{grid-row:5}
.chatHeader{
  position:relative;
  z-index:10;
  flex:0 0 auto;
  padding:0 18px 0 20px;
  border-bottom-color:var(--line);
  background:rgba(255,255,255,.97);
  box-shadow:0 2px 12px rgba(0,45,71,.035);
}
.chatIdentity{min-width:0;gap:12px;padding:5px 8px;border-radius:8px}
.chatIdentity:hover{background:var(--surface-2)}
.chatIdentity>span:last-child{min-width:0}
.chatIdentity strong{font-size:15px;font-weight:600;color:var(--ink)}
.chatIdentity small{font-size:11px}
.chatHeaderActions{gap:4px;padding-left:12px}
.messageSearchBar{position:relative;z-index:9;flex:0 0 auto;padding:10px 18px;background:#fff}
.messageSearchBar label{width:min(100%,720px)}
.messageSearchBar .iconBtn{width:34px;height:34px;margin-right:-7px}
.messageSearchResults{top:112px;width:min(92%,720px);border-radius:8px}
.connectionBanner{flex:0 0 auto;padding:8px 12px}

/* Nachrichten: alle Ebenen dürfen korrekt schrumpfen und scrollen */
.messageViewport{
  position:relative;
  min-height:0;
  min-width:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding:22px clamp(16px,3.4vw,52px) 20px;
  background-color:#f4f7f8;
  background-image:linear-gradient(rgba(0,45,71,.024) 1px,transparent 1px);
  background-size:100% 52px;
}
.messageList,.typingIndicator{
  width:min(100%,1040px);
  min-width:0;
  margin-inline:auto;
}
.messageList{gap:6px}
.dateSeparator{margin:21px 0 17px;font-size:10px;letter-spacing:.12em}
.dateSeparator span{flex:0 0 auto;padding:5px 9px;border:1px solid #dce4e8;border-radius:12px;background:rgba(255,255,255,.84)}
.dateSeparator::before,.dateSeparator::after{background:#dce4e8}
.messageRow{
  width:100%;
  min-width:0;
  align-items:flex-end;
  gap:9px;
  margin:4px 0;
}
.messageRow.grouped{margin-top:-2px}
.messageSenderAvatar{width:31px;height:31px;flex:0 0 31px;font-size:10px}
.messageColumn{
  width:fit-content;
  min-width:0;
  max-width:min(76%,760px);
  display:grid;
  gap:4px;
}
.messageRow.mine .messageColumn{justify-items:end}
.messageSenderName{margin:0 0 2px 10px;font-size:10px;letter-spacing:.02em}
.messageBubble{
  width:fit-content;
  min-width:74px;
  max-width:100%;
  overflow:visible;
  padding:10px 12px 8px;
  border-color:#d5dfe4;
  border-radius:10px 10px 10px 3px;
  box-shadow:0 3px 12px rgba(19,42,54,.035);
}
.messageRow.mine .messageBubble{border-color:#bfd3dc;border-radius:10px 10px 3px 10px;background:#e5f0f4}
.messageBody{
  min-width:0;
  max-width:100%;
  margin:0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
  font-size:14.5px;
  line-height:1.55;
}
.messageBody a{
  color:#075f83;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
  overflow-wrap:anywhere;
  word-break:break-all;
}
.messageBody code,.messageBody pre{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
.messageMeta{min-width:0;gap:6px;margin-top:5px;font-size:9px}
.readCheck{display:inline-flex;color:#0b6f92}
.readCheck .uiIcon{width:15px;height:15px;stroke-width:1.9}
.replyQuote{min-width:0;max-width:100%;padding:8px 9px;border-radius:4px;background:rgba(0,45,71,.055)}
.replyQuote span{max-width:100%}
.messageAttachment{min-width:0;max-width:min(100%,420px)}
.imageAttachment{width:auto;max-width:100%;max-height:420px;border-radius:6px}
.fileAttachment{
  width:min(360px,100%);
  min-width:0;
  padding:5px 3px;
  gap:11px;
}
.fileAttachmentIcon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border:1px solid #d5e0e5;
  background:#f2f6f7;
  color:var(--navy);
}
.fileAttachmentIcon .uiIcon{width:20px;height:20px}
.fileAttachmentText{min-width:0;flex:1}
.fileAttachmentText strong{max-width:100%}
.fileDownloadIcon{width:17px;height:17px;color:var(--muted)}
.audioAttachment{display:block;width:min(360px,65vw);max-width:100%}
.messageActions{
  top:-30px;
  right:5px;
  height:34px;
  gap:1px;
  padding:2px;
  border-radius:7px;
  box-shadow:var(--shadow-sm);
}
.messageRow.mine .messageActions{left:5px}
.messageActionBtn{width:31px;height:29px;display:grid;place-items:center;border-radius:5px;color:var(--navy)}
.messageActionBtn .uiIcon{width:16px;height:16px}
.messageActionBtn.danger{color:var(--danger)}
.messageActionBtn:hover{background:var(--surface-3)}
.reactionPicker{max-width:min(340px,80vw);flex-wrap:wrap;border-radius:8px}
.messageReactions{max-width:100%}
.typingIndicator{min-height:28px;margin-top:8px}
.emptyMessages{padding:60px 20px;text-align:center;color:var(--muted)}
.loadOlder{margin-bottom:17px}
.jumpBottom{right:26px;bottom:106px;width:42px;height:42px;display:grid;place-items:center;color:var(--navy)}
.jumpBottom .uiIcon{width:19px;height:19px}

/* Komponist bleibt sichtbar und verarbeitet lange Eingaben intern */
.composerArea{
  position:relative;
  z-index:8;
  min-width:0;
  flex:0 0 auto;
  padding:13px clamp(14px,2.6vw,34px) calc(13px + env(safe-area-inset-bottom));
  border-top-color:var(--line);
  background:rgba(255,255,255,.98);
  box-shadow:0 -4px 18px rgba(0,45,71,.035);
}
.composer,.replyPreview,.uploadPreview,.recordingBar{width:min(100%,1040px);min-width:0}
.composer{align-items:flex-end;gap:7px}
.composerInput{min-width:0;border-radius:8px;background:#f7f9fa}
.composerInput:focus-within{background:#fff}
.composer textarea{
  min-width:0;
  min-height:45px;
  max-height:min(190px,28vh);
  overflow-x:hidden;
  overflow-y:auto;
  padding:11px 45px 10px 13px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.55;
}
.composerEmoji{right:3px;bottom:3px}
.composerBtn{flex:0 0 40px;margin-bottom:3px}
.sendBtn{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:7px;
  box-shadow:0 6px 16px rgba(0,45,71,.18);
}
.sendBtn .uiIcon{width:19px;height:19px;stroke-width:1.8}
.replyPreview,.uploadPreview{min-height:51px;margin-bottom:9px;padding:8px 9px;border-radius:7px}
.previewIcon{width:34px;height:34px;display:grid;place-items:center;border-radius:5px;background:#e7eff3;color:var(--navy)}
.previewIcon .uiIcon{width:18px;height:18px}
.emojiPicker{right:70px;bottom:83px;border-radius:8px}

/* Detailansicht */
.detailsPanel{width:var(--details);min-width:0;overflow:hidden;box-shadow:-16px 0 42px rgba(0,45,71,.1)}
.detailsHeader{padding:0 14px 0 22px}
.detailsHeader h2{font-size:23px}
.detailsContent{height:calc(100% - var(--header));min-height:0;overflow:auto;padding:28px 22px}
.detailsHero{padding:4px 0 7px}
.detailsHero .avatar{width:88px;height:88px;margin-bottom:14px}
.detailsHero h3{font-size:18px}
.detailsSection{margin-top:25px;padding-top:20px}
.memberItem{min-width:0;padding:8px 5px;border-radius:6px}
.memberItem:hover{background:var(--surface-2)}
.memberItem>span:nth-child(2){min-width:0}
.detailsAction{min-height:45px;border-radius:6px}
.detailsAction>span{display:flex;align-items:center;gap:9px}
.detailsAction .uiIcon{width:17px;height:17px}

/* Dialoge und Verwaltung */
.modalDialog{border-radius:10px;box-shadow:var(--shadow)}
.modalDialog::backdrop{background:rgba(0,27,43,.5);backdrop-filter:blur(3px)}
.modalCard{min-height:0;max-height:min(88vh,840px);overflow:auto;border-radius:10px}
.modalHeader{position:sticky;top:0;z-index:6;min-height:86px;padding:20px 22px 17px;background:rgba(255,255,255,.98)}
.modalHeader h2{font-size:31px}
.modalHeader p{margin:6px 0 0;color:var(--muted);font-size:12px}
.modalFooter{position:sticky;bottom:0;z-index:5;background:rgba(255,255,255,.98)}
.profileTop{border-bottom:1px solid var(--line);padding-bottom:20px}
.securityCard{margin-top:12px;padding:16px 17px;border-radius:7px;background:#f7f9fa}
.securityCard>div{flex:1}
.featureIcon{width:40px;height:40px;display:grid;place-items:center;flex:0 0 40px;border:1px solid #cad9e0;border-radius:7px;background:#fff;color:var(--navy)}
.featureIcon .uiIcon{width:20px;height:20px}
.passwordSettings{border-radius:7px;background:#f9fafb}
.selectedChip button{display:grid;place-items:center}
.selectedChip button .uiIcon{width:13px;height:13px}
.userPickerRow{min-width:0}

.adminDialog{width:min(96vw,1120px);height:min(90vh,820px)}
.adminDialog .modalCard{
  width:100%;
  height:100%;
  max-height:none;
  overflow:hidden;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr);
  border-radius:10px;
}
.adminDialog .modalHeader{position:relative;grid-column:1/-1;grid-row:1;padding:21px 24px;border-bottom:1px solid var(--line)}
.adminDialog .adminTabs{
  position:relative;
  top:auto;
  z-index:1;
  grid-column:1;
  grid-row:2;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:5px;
  padding:20px 14px;
  border:0;
  border-right:1px solid var(--line);
  background:#f5f7f8;
}
.adminDialog .adminTab{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:9px 12px;
  border-radius:6px;
  font-size:12px;
  text-align:left;
}
.adminDialog .adminTab .uiIcon{width:18px;height:18px}
.adminDialog .adminTab.active{border-color:var(--navy);background:var(--navy);color:#fff}
.adminDialog .adminTabPanel{
  grid-column:2;
  grid-row:2;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  margin:0;
  padding:26px 28px 30px;
}
.adminStats{gap:12px}
.adminStats article{min-height:124px;padding:17px;border-radius:7px;background:#f7f9fa}
.adminStats strong{font-size:42px}
.adminInfoCard{margin-top:17px;padding:20px}
.adminToolbar{margin-top:0}
.adminUserList{border-radius:7px}
.adminUserRow{min-width:0}
.csvImportCard{border-radius:8px}
.csvFileIcon{height:58px;width:58px;display:flex;flex-direction:column;gap:2px}
.csvFileIcon .uiIcon{width:21px;height:21px}
.csvFileIcon small{font-size:9px;letter-spacing:.08em}

/* Anmeldung im selben AFANDI-System */
.authPage{min-height:0;overflow:auto}
.authVisual{background:#002d47}
.authCard{gap:19px}
.authLogo{font-size:20px}
.authHeading h2{font-size:44px}
.authBack{gap:7px}
.mfaShield .uiIcon{color:#fff}

@media(max-width:1080px){
  :root{--sidebar:320px;--details:330px}
  .messageColumn{max-width:82%}
  .adminStats{grid-template-columns:1fr 1fr}
}

@media(max-width:720px){
  :root{--header:64px}
  .appShell{display:block;position:relative}
  .conversationSidebar,.chatPanel{position:absolute;inset:0;width:100%;height:100%;min-height:0}
  .conversationSidebar{z-index:3}
  .chatPanel{z-index:2}
  .appShell.chatOpen .conversationSidebar{transform:translateX(-100%)}
  .appShell:not(.chatOpen) .chatPanel{transform:translateX(100%)}
  .sidebarHeader{padding:0 14px 0 17px}
  .conversationItem{height:74px}
  .sidebarFooter{padding-bottom:calc(11px + env(safe-area-inset-bottom))}
  .activeChat{grid-template-rows:var(--header) auto auto minmax(0,1fr) auto}
  .chatHeader{padding:0 7px}
  .chatIdentity{gap:9px;padding-left:2px}
  .chatIdentity .avatar{width:40px;height:40px}
  .chatHeaderActions{gap:0;padding-left:3px}
  .chatHeaderActions .iconBtn{width:36px}
  .messageViewport{padding:15px 9px 14px;scrollbar-gutter:auto}
  .messageColumn{max-width:88%}
  .messageBody{font-size:15px;line-height:1.52}
  .messageBubble{padding:9px 10px 7px}
  .messageActions{display:none!important;top:-32px}
  .messageRow.actionOpen .messageActions{display:flex!important}
  .composerArea{padding:9px 6px calc(9px + env(safe-area-inset-bottom))}
  .composer{gap:3px}
  .composerBtn{width:36px;flex-basis:36px}
  .composer textarea{max-height:min(150px,25vh);padding-left:10px}
  .sendBtn{width:41px;height:41px;flex-basis:41px}
  .jumpBottom{right:13px;bottom:86px}
  .emojiPicker{right:8px;bottom:72px;max-width:calc(100vw - 16px)}
  .detailsPanel{width:100%;z-index:30}
  .modalDialog,.wideDialog,.smallDialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0}
  .modalCard{width:100%;height:100%;min-height:100dvh;max-height:100dvh;border-radius:0}
  .modalHeader{min-height:76px;padding:17px 16px 14px}
  .modalHeader h2{font-size:27px}
  .modalFooter{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .securityCard{grid-template-columns:auto 1fr;display:grid;align-items:center}
  .securityCard .secondaryBtn{grid-column:2;justify-self:start}
  .adminDialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0}
  .adminDialog .modalCard{
    min-height:100dvh;
    max-height:100dvh;
    border-radius:0;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto minmax(0,1fr);
  }
  .adminDialog .modalHeader{grid-column:1;grid-row:1;padding:17px 16px 14px}
  .adminDialog .adminTabs{
    grid-column:1;
    grid-row:2;
    flex-direction:row;
    overflow-x:auto;
    padding:8px 12px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .adminDialog .adminTab{min-width:max-content;min-height:39px;padding:7px 11px}
  .adminDialog .adminTabPanel{grid-column:1;grid-row:3;padding:18px 16px calc(24px + env(safe-area-inset-bottom))}
  .adminToolbar{display:grid}
  .adminToolbar .primaryBtn{width:100%}
  .adminUserRow{grid-template-columns:minmax(0,1fr) 105px}
}

/* AFANDI Chat 1.4 – kompakte Profioberfläche nach dem Termine-Raster */
:root{--header:68px;--sidebar:clamp(300px,23vw,348px);--details:338px}
.portalNav{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:8px 12px 3px}
.portalNavBtn{min-height:40px;gap:5px;padding:5px 4px;font-size:10px;border-radius:5px}
.portalNavBtn .uiIcon{width:15px;height:15px}
.sidebarSearch{padding:12px 14px 6px}
.conversationFilters{padding:5px 14px 10px}
.filterBtn{min-height:28px;padding:5px 9px}
.conversationItem{height:72px;padding:8px}
.conversationTop strong{font-size:13px}
.conversationBottom p{display:flex;align-items:center;gap:4px}
.conversationFlag{display:inline-flex;color:var(--navy-3)}
.conversationFlag .uiIcon{width:12px;height:12px}

.activeChat{grid-template-rows:var(--header) auto auto auto auto minmax(0,1fr) auto}
.activeChat>.chatHeader{grid-row:1}
.activeChat>.chatStateBar{grid-row:2}
.activeChat>.pinnedMessageBar{grid-row:3}
.activeChat>.messageSearchBar{grid-row:4}
.activeChat>.connectionBanner{grid-row:5}
.activeChat>.messageViewport{grid-row:6}
.activeChat>.composerArea{grid-row:7}
.chatStateBar{min-height:34px;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 14px;border-bottom:1px solid #e8d69e;background:#fff8df;color:#72561d;font-size:11px}
.chatStateBar .uiIcon{width:15px;height:15px}
.pinnedMessageBar{width:100%;min-height:46px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px clamp(16px,3vw,34px);border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--navy);text-align:left;cursor:pointer}
.pinnedMessageBar>span{display:grid;gap:1px}
.pinnedMessageBar strong{font-size:10px;letter-spacing:.05em;text-transform:uppercase}
.pinnedMessageBar small{max-width:720px;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.pinnedMessageBar>.uiIcon{width:16px;height:16px}
.composerDisabled{opacity:.55;pointer-events:none}

.messageBubble.importantMessage{border-left:3px solid #b48225}
.messageRow.mine .messageBubble.importantMessage{border-right:3px solid #b48225;border-left:1px solid #bfd3dc}
.messageBubble.pinnedMessage{box-shadow:0 0 0 1px rgba(0,45,71,.12),0 5px 16px rgba(0,45,71,.06)}
.messageFlags{display:flex;flex-wrap:wrap;gap:5px;margin:0 28px 6px 0}
.messageFlags span{display:inline-flex;align-items:center;gap:4px;color:#6d5a2b;font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.messageFlags .uiIcon{width:11px;height:11px}
.messageActions{max-width:min(92vw,390px);height:auto;min-height:34px;flex-wrap:wrap}

.messageFeature{width:min(430px,70vw);max-width:100%;margin-top:10px;overflow:hidden;border:1px solid #cbd9df;border-radius:7px;background:rgba(255,255,255,.82);color:var(--ink)}
.messageFeature>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:9px;padding:11px 12px;border-bottom:1px solid #dde6e9;background:#f7fafb}
.messageFeature>header>span:first-child{width:30px;height:30px;display:grid;place-items:center;border-radius:5px;background:var(--navy);color:#fff}
.messageFeature>header>span:first-child .uiIcon{width:15px;height:15px}
.messageFeature>header>div{display:grid;gap:2px}
.messageFeature>header small{color:var(--navy-3);font-size:8px;font-weight:800;letter-spacing:.1em}
.messageFeature>header strong{font-size:13px;line-height:1.3}
.messageFeature>p{margin:0;padding:10px 12px;color:var(--muted);font-size:11px;line-height:1.5}
.messageFeature>footer{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid #e4eaed;color:var(--muted);font-size:9px}
.messageFeature>footer>span{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-width:0}
.messageFeature>footer .uiIcon{width:12px;height:12px}
.messageFeature>footer button{min-height:30px;flex:0 0 auto;padding:5px 9px;border:1px solid var(--navy);border-radius:4px;background:#fff;color:var(--navy);font-size:10px;font-weight:700;cursor:pointer}
.featureButtons{display:flex!important;align-items:center;justify-content:flex-end;gap:5px}
.featureStatus{display:inline-flex;align-items:center;width:max-content;padding:4px 6px;border-radius:4px;background:#e6eef2;color:var(--navy);font-size:8px;font-weight:800;text-transform:uppercase}
.featureStatus.in_progress{background:#fff1cf;color:#775814}
.featureStatus.done{background:#e4f3eb;color:var(--success)}
.featureOptions{display:grid;padding:5px 12px 9px}
.featureOptions label{min-height:42px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;border-bottom:1px solid #e8edef;cursor:pointer}
.featureOptions label:last-child{border:0}
.featureOptions input{width:16px;height:16px;accent-color:var(--navy)}
.featureOptions label>span{display:grid;gap:2px;font-size:11px}
.featureOptions small{color:var(--muted);font-size:8px}

.detailsPreferences{display:grid;gap:1px;margin-top:20px;padding-top:14px}
.detailsPreferences .detailsAction{min-height:41px}
.interactiveDialog{width:min(92vw,580px)}
.interactiveDialog .modalCard>.field,.interactiveDialog .modalCard>.formGrid,.interactiveDialog .interactiveChecks{margin-left:22px;margin-right:22px}
.interactiveDialog .modalCard>.field{margin-top:14px}
.interactiveChecks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}
.interactiveChecks .checkRow{min-height:74px}

.workDialog .modalCard{grid-template-rows:auto auto minmax(0,1fr)}
.workList{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px;padding:6px 22px 24px}
.workCard{display:grid;border:1px solid var(--line);border-radius:7px;background:#fff}
.workCard>header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:14px}
.workIcon{width:36px;height:36px;display:grid;place-items:center;border-radius:5px;background:var(--navy);color:#fff}
.workIcon .uiIcon{width:18px;height:18px}
.workCard h3{margin:5px 0 3px;font:600 21px/1.05 "Barlow Condensed",sans-serif;color:var(--navy)}
.workCard p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}
.workCard dl{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0;border-block:1px solid var(--line);background:var(--line)}
.workCard dl>div{min-width:0;padding:9px;background:#f8fafb}
.workCard dt{color:var(--muted-2);font-size:8px;font-weight:700;text-transform:uppercase}
.workCard dd{margin:3px 0 0;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.workCard>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px}
.workCard select{min-height:34px;border:1px solid var(--line);border-radius:4px;background:#fff;padding:0 7px;font-size:10px}

/* Administration bewusst kompakter als die bisherige Vollbildansicht */
.adminDialog{width:min(95vw,1120px);height:min(89vh,800px)}
.adminDialog .modalCard{grid-template-columns:210px minmax(0,1fr)}
.adminDialog .modalHeader{min-height:76px;padding:16px 20px 14px}
.adminDialog .modalHeader h2{font-size:28px}
.adminDialog .adminTabs{gap:3px;padding:14px 11px}
.adminDialog .adminTab{min-height:39px;padding:7px 10px;font-size:11px}
.adminDialog .adminTab .uiIcon{width:16px;height:16px}
.adminDialog .adminTabPanel{padding:22px 24px 28px;font-size:13px}
.adminSectionHeading h3{font-size:26px}
.adminStats{gap:9px}
.adminStats article{min-height:104px;padding:14px}
.adminStats span{font-size:10px}
.adminStats strong{font-size:36px}
.adminInfoCard{padding:16px}
.adminCreatePanel,.adminUserForm{padding:16px}
.adminUserRow{min-height:59px}
.permissionCard{min-height:98px;padding:14px}
.adminConversationList{display:grid;gap:7px}
.adminConversationRow{min-height:64px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:#fff}
.adminConversationRow.archived{opacity:.65;background:#f5f6f7}
.adminConversationIcon{width:36px;height:36px;display:grid;place-items:center;border-radius:5px;background:var(--surface-blue);color:var(--navy)}
.adminConversationIcon .uiIcon{width:17px;height:17px}
.adminConversationCopy{display:grid;gap:2px}
.adminConversationCopy strong{font-size:12px}
.adminConversationCopy small{color:var(--muted);font-size:9px}
.compactSwitch{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px;font-weight:700}
.compactSwitch input{width:16px;height:16px;accent-color:var(--navy)}

@media(max-width:900px){
  .workList{grid-template-columns:1fr}
  .adminConversationRow{grid-template-columns:auto minmax(0,1fr)}
  .adminConversationRow .compactSwitch{grid-column:2}
}

@media(max-width:720px){
  :root{--header:62px}
  .portalNav{gap:2px;padding-inline:7px}
  .portalNavBtn{min-height:39px;display:grid;place-items:center;gap:1px;font-size:8px}
  .portalNavBtn .uiIcon{width:16px;height:16px}
  .activeChat{grid-template-rows:var(--header) auto auto auto auto minmax(0,1fr) auto}
  .chatStateBar{font-size:10px}
  .pinnedMessageBar{min-height:43px;padding:6px 10px}
  .messageFeature{width:calc(100vw - 58px);max-width:100%}
  .messageFeature>header{padding:9px}
  .messageFeature>footer{align-items:flex-start;flex-direction:column}
  .messageFeature>footer button{width:100%}
  .messageActions{position:fixed!important;z-index:80;left:8px!important;right:8px!important;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-width:none;min-height:52px;justify-content:center;gap:2px;padding:7px;border-radius:9px;box-shadow:0 18px 60px rgba(0,27,43,.3)}
  .messageActionBtn{width:38px;height:38px}
  .messageActionBtn .uiIcon{width:18px;height:18px}
  .reactionPicker{z-index:90}
  .interactiveChecks{grid-template-columns:1fr}
  .interactiveDialog .modalCard>.field,.interactiveDialog .modalCard>.formGrid,.interactiveDialog .interactiveChecks{margin-left:16px;margin-right:16px}
  .workList{padding:5px 14px calc(20px + env(safe-area-inset-bottom))}
  .workCard dl{grid-template-columns:1fr}
  .workCard>footer{align-items:stretch;flex-direction:column}
  .workCard select{min-height:44px;font-size:16px}
  .adminDialog .adminTabPanel{padding:16px 14px calc(22px + env(safe-area-inset-bottom))}
  .adminConversationRow{grid-template-columns:auto minmax(0,1fr);padding:10px}
  .adminConversationRow .compactSwitch{grid-column:2;min-height:30px;font-size:11px}
  .adminUserRow{grid-template-columns:minmax(0,1fr)!important}
  .adminUserRow select,.adminUserRow .iconBtn{grid-column:1!important;width:100%}
  .permissionsGrid{grid-template-columns:1fr}
}

/* AFANDI Chat 1.9 – verbindliche Endkaskade für kompakte, stabile Ansichten */
html,body{width:100%;height:100%;height:100svh;overflow:hidden}
body{min-width:320px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.appShell{height:100%;height:100svh;max-height:100svh}
.sidebarHeaderActions{display:flex;align-items:center;gap:4px}
.sidebarHeaderActions .iconBtn{width:38px;height:38px}
.portalVersion{color:var(--muted);font-size:11px}

.portalNav{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:8px 10px 4px}
.portalNavBtn{min-height:42px;gap:6px;padding:5px 4px;font-size:11px}
.portalNavBtn .uiIcon{width:19px;height:19px;stroke-width:1.9}

.composerToolsMenu{
  position:absolute;z-index:40;left:clamp(54px,calc((100% - 1040px)/2 + 54px),calc(100% - 340px));bottom:76px;
  width:min(330px,calc(100vw - 20px));overflow:hidden;padding:6px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:var(--shadow)
}
.composerToolsMenu>button{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:9px;border:0;border-radius:6px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}
.composerToolsMenu>button:hover{background:var(--surface-blue)}
.composerToolsMenu>button>span:last-child{display:grid;gap:1px}
.composerToolsMenu strong{font-size:13px;color:var(--navy)}
.composerToolsMenu small{font-size:10px;color:var(--muted)}
.toolMenuIcon{width:36px;height:36px;display:grid;place-items:center;border-radius:6px;background:var(--surface-blue);color:var(--navy)}
.toolMenuIcon .uiIcon{width:18px;height:18px}
#composerToolsBtn{border-color:#cbd9df;background:#f3f7f8}

.workspaceDialog{width:min(94vw,980px);height:min(86vh,760px)}
.directoryGrid{display:grid;grid-template-columns:1fr;align-content:start;gap:7px;padding:3px 18px 20px}
.directoryCard.directoryRow{min-height:64px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:#fff}
.directoryIdentity{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px}
.directoryIdentity .avatar{width:42px;height:42px}
.directoryCopy{min-width:0;display:grid;gap:4px}
.directoryNameLine{min-width:0;display:flex;align-items:center;gap:7px}
.directoryNameLine strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.presenceLabel{flex:0 0 auto;padding:2px 6px;font-size:8px}
.directoryMeta{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:4px;color:var(--muted);font-size:12px}
.directoryMeta>span:first-child{margin-right:2px}
.directoryGroupChip{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 6px;border-radius:4px;background:var(--surface-blue);color:var(--navy);font-size:10px;font-weight:600}
.directoryGroupChip.muted{background:var(--surface-3);color:var(--muted)}
.directoryActions{display:flex;align-items:center;gap:5px;padding:0;border:0}
.directoryActionBtn{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--navy);text-decoration:none;cursor:pointer}
.directoryActionBtn:first-child{border-color:var(--navy);background:var(--navy);color:#fff}
.directoryActionBtn:disabled{opacity:.45;cursor:not-allowed}
.directoryActionBtn .uiIcon{width:19px;height:19px;stroke-width:1.9}

.adminDialog{width:min(95vw,1120px);height:min(88vh,790px)}
.adminDialog .modalCard{grid-template-columns:190px minmax(0,1fr)}
.adminDialog .modalHeader{min-height:70px;padding:14px 18px 12px}
.adminDialog .modalHeader h2{font-size:27px}
.adminDialog .modalHeader p{font-size:11px}
.adminDialog .adminTabs{gap:2px;padding:10px 8px}
.adminDialog .adminTab{min-height:37px;gap:8px;padding:6px 9px;font-size:12px}
.adminDialog .adminTab .uiIcon{width:18px;height:18px}
.adminDialog .adminTabPanel{padding:18px 20px 24px;font-size:13px}
.adminSectionHeading{gap:14px;margin-bottom:12px}
.adminSectionHeading h3{font-size:25px}
.adminStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.adminStats article{min-height:82px;padding:11px 12px}
.adminStats span{font-size:10px}
.adminStats strong{font-size:31px}
.adminInfoCard{margin-top:10px;padding:14px}
.adminInfoCard p{margin-bottom:10px}
.adminToolbar{min-width:0;align-items:center;margin-bottom:8px}
.adminToolbar label{min-width:0}
.csvIconBtn{flex:0 0 42px}

.bulkToolbar{min-height:40px;display:flex;align-items:center;gap:10px;margin:6px 0;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#f7f9fa}
.bulkToolbar>span:not(.footerSpacer){color:var(--muted);font-size:10px}
.bulkToolbar .textBtn{padding:6px 7px;border:0;background:transparent;color:var(--navy);font-size:11px;font-weight:700;cursor:pointer}
.bulkToolbar .secondaryBtn{min-height:32px;padding:5px 9px;font-size:11px}
.bulkToolbar .iconBtn{width:34px;height:34px;background:#fff;border-color:var(--line)}

.adminUserList{margin-top:7px;border-radius:7px;overflow:visible}
.adminUserRow{min-height:64px;display:grid;grid-template-columns:24px minmax(250px,1fr) 120px 115px 36px;align-items:center;gap:8px;padding:7px 9px;border-bottom:1px solid var(--line);background:#fff}
.adminUserIdentity{min-width:0;display:flex;align-items:center;gap:9px}
.adminUserIdentity .avatar{width:38px;height:38px;flex:0 0 38px}
.adminUserIdentity>span{min-width:0;display:grid;gap:2px}
.adminUserIdentity strong{font-size:13px}
.adminUserIdentity small{font-size:11px}
.adminUserGroups{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:3px;margin-top:1px}
.adminUserGroups>span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 5px;border-radius:3px;background:var(--surface-blue);color:var(--navy);font-size:9px;font-weight:600}
.adminUserControl{min-width:0;display:grid;gap:2px}
.adminUserControl>span{display:none;color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase}
.adminUserControl select{width:100%;height:34px;padding:0 7px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:11px}
.adminUserEdit{width:34px;height:34px}
.rowSelector{width:22px;height:22px;display:grid;place-items:center;cursor:pointer}
.rowSelector input{position:absolute;opacity:0;pointer-events:none}
.rowSelector span{width:17px;height:17px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:4px;background:#fff}
.rowSelector input:checked+span{border-color:var(--navy);background:var(--navy)}
.rowSelector input:checked+span::after{content:"";width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg)}
.rowSelector input:disabled+span{opacity:.35}
.generatedPasswordField{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.generatedPasswordField .secondaryBtn{display:flex;align-items:center;gap:6px;white-space:nowrap}

.adminConversationList{display:grid;gap:5px}
.adminConversationRow{min-height:58px;display:grid;grid-template-columns:24px 34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#fff}
.adminConversationIcon{width:34px;height:34px}
.adminConversationCopy{min-width:0;display:grid;gap:2px}
.adminConversationCopy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.adminConversationCopy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.adminConversationControls{display:flex;align-items:center;gap:8px}
.compactSwitch{min-width:max-content;min-height:32px;padding:4px 7px;font-size:10px}

.messageFeature{width:min(100%,520px);max-width:100%;overflow:hidden}
.messageFeature header,.messageFeature footer{min-width:0;max-width:100%}
.messageFeature header>div{min-width:0}
.messageFeature strong,.messageFeature p,.messageFeature footer>span{overflow-wrap:anywhere;word-break:break-word}
.featureOptions{min-width:0}
.featureOptions label{min-width:0}
.featureOptions label>span{min-width:0}
.featureButtons{display:flex;flex-wrap:wrap;gap:5px}

.messageActionBackdrop{position:fixed;z-index:78;inset:0;border:0;background:rgba(0,27,43,.32);backdrop-filter:blur(1px)}
.messageActionBackdrop.hidden{display:none}

@media(max-width:900px){
  .adminDialog{width:100vw;height:100svh;max-width:none;max-height:none;margin:0;border-radius:0}
  .adminDialog .modalCard{height:100svh;min-height:100svh;max-height:100svh;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);border-radius:0}
  .adminDialog .modalHeader{grid-column:1;grid-row:1}
  .adminDialog .adminTabs{grid-column:1;grid-row:2;min-height:48px;display:flex;flex-direction:row;align-items:center;overflow-x:auto;overflow-y:hidden;padding:5px 8px;border-right:0;border-bottom:1px solid var(--line);scrollbar-width:none}
  .adminDialog .adminTabs::-webkit-scrollbar{display:none}
  .adminDialog .adminTab{flex:0 0 auto;white-space:nowrap}
  .adminDialog .adminTabPanel{grid-column:1;grid-row:3;padding:14px 14px calc(20px + env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto}
}

@media(max-width:720px){
  html,body,.appShell{height:100svh!important;min-height:100svh!important;max-height:100svh!important}
  body{position:fixed;inset:0}
  input,textarea,select{font-size:16px!important}
  .conversationSidebar,.chatPanel{height:100%;transition:none!important}
  .activeChat{height:100%;min-height:0;grid-template-rows:var(--header) auto auto auto auto minmax(0,1fr) auto!important}
  .messageViewport{min-height:0;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;contain:layout paint}
  .composerArea{padding:7px 5px calc(7px + env(safe-area-inset-bottom))}
  .composer{gap:2px}
  .composerBtn{width:34px;flex-basis:34px}
  .sendBtn{width:39px;height:39px;flex-basis:39px}
  .portalNav{gap:2px;padding:6px 6px 3px}
  .portalNavBtn{min-height:44px;display:grid;place-items:center;gap:1px;padding:3px 2px;font-size:9px}
  .portalNavBtn .uiIcon{width:20px;height:20px}
  .sidebarHeaderActions .iconBtn{width:36px;height:36px}
  .workspaceDialog,.modalDialog,.wideDialog,.smallDialog{width:100vw;height:100svh!important;max-width:none;max-height:100svh!important;margin:0;border-radius:0}
  .workspaceDialog .modalCard,.modalCard{height:100svh!important;min-height:100svh!important;max-height:100svh!important;border-radius:0}
  .workspaceToolbar{padding:9px 10px 6px}
  .directoryNotice{margin:0 10px 7px;padding:7px 9px;font-size:10px}
  .directoryGrid{gap:6px;padding:2px 9px calc(14px + env(safe-area-inset-bottom))}
  .directoryCard.directoryRow{min-height:61px;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:7px 8px}
  .directoryIdentity{grid-template-columns:38px minmax(0,1fr);gap:8px}
  .directoryIdentity .avatar{width:38px;height:38px}
  .directoryNameLine strong{font-size:13px}
  .presenceLabel{padding:1px 5px;font-size:7px}
  .directoryMeta{gap:3px;font-size:11px}
  .directoryGroupChip{max-width:112px;padding:1px 4px;font-size:9px}
  .directoryActions{gap:3px}
  .directoryActionBtn{width:36px;height:36px;flex-basis:36px}
  .directoryActionBtn .uiIcon{width:18px;height:18px}
  .composerToolsMenu{position:fixed;z-index:90;left:7px;right:7px;bottom:calc(68px + env(safe-area-inset-bottom));width:auto;max-height:min(70svh,390px);overflow:auto}
  .composerToolsMenu>button{min-height:52px}
  .messageActions{position:fixed!important;z-index:80;left:7px!important;right:7px!important;top:auto!important;bottom:calc(7px + env(safe-area-inset-bottom));width:auto!important;max-width:none!important;min-height:58px;display:none!important;align-items:center;justify-content:space-evenly;gap:2px;padding:7px;border:0;border-radius:10px;background:#fff;box-shadow:0 18px 60px rgba(0,27,43,.32)}
  .messageRow.actionOpen .messageActions{display:flex!important}
  .messageActionBtn{width:42px;height:42px;flex:0 0 42px}
  .messageActionBtn .uiIcon{width:19px;height:19px}
  .messageMoreBtn{right:-33px;width:31px;height:31px}
  .messageRow.mine .messageMoreBtn{right:auto;left:-33px}
  .messageFeature{width:100%!important;max-width:100%!important}
  .messageFeature header{grid-template-columns:auto minmax(0,1fr);gap:7px}
  .messageFeature header>.featureStatus{grid-column:2;width:max-content;max-width:100%}
  .messageFeature footer{display:grid;grid-template-columns:1fr;gap:8px}
  .messageFeature footer>button,.featureButtons button{width:100%;min-height:38px}
  .featureButtons{display:grid;grid-template-columns:1fr}
  .adminDialog .modalHeader{min-height:66px;padding:11px 12px 9px}
  .adminDialog .modalHeader h2{font-size:24px}
  .adminDialog .modalHeader p{display:none}
  .adminDialog .adminTabPanel{font-size:14px}
  .adminSectionHeading{margin-bottom:9px}
  .adminSectionHeading h3{font-size:23px}
  .adminStats{grid-template-columns:1fr 1fr;gap:6px}
  .adminStats article{min-height:72px;padding:9px}
  .adminStats strong{font-size:27px}
  .adminToolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
  .adminToolbar .primaryBtn{grid-column:1/-1;width:100%}
  .bulkToolbar{gap:5px;overflow:hidden;padding:4px 5px}
  .bulkToolbar .textBtn{padding:5px 3px;font-size:10px}
  .bulkToolbar>span:not(.footerSpacer){font-size:9px;white-space:nowrap}
  .bulkToolbar .secondaryBtn{padding:5px 7px;font-size:10px}
  .adminUserList{border:0;display:grid;gap:6px;overflow:visible}
  .adminUserRow{min-height:96px;grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 36px!important;grid-template-rows:auto auto;gap:6px;padding:8px;border:1px solid var(--line);border-radius:7px}
  .adminUserRow>.rowSelector{grid-column:1;grid-row:1;align-self:start;margin-top:8px}
  .adminUserRow>.adminUserIdentity{grid-column:2/4;grid-row:1}
  .adminUserRow>.adminUserEdit{grid-column:4!important;grid-row:1!important;width:34px!important;align-self:start}
  .adminUserRow>.adminUserControl{grid-row:2;min-width:0}
  .adminUserRow>.adminUserControl:nth-of-type(2){grid-column:2}
  .adminUserRow>.adminUserControl:nth-of-type(3){grid-column:3/5}
  .adminUserControl>span{display:block}
  .adminUserRow select{grid-column:auto!important;width:100%!important;height:38px}
  .adminUserIdentity .avatar{width:36px;height:36px;flex-basis:36px}
  .adminUserIdentity strong{font-size:12px}
  .adminUserIdentity small{font-size:9px}
  .adminUserGroups{max-height:20px;overflow:hidden;flex-wrap:nowrap}
  .adminUserGroups>span{max-width:100px;flex:0 1 auto}
  .generatedPasswordField{grid-template-columns:1fr}
  .generatedPasswordField .secondaryBtn{width:100%;justify-content:center}
  .adminConversationList{gap:6px}
  .adminConversationRow{min-height:92px;grid-template-columns:22px 34px minmax(0,1fr);grid-template-rows:auto auto;gap:7px;padding:8px}
  .adminConversationRow>.rowSelector{grid-column:1;grid-row:1}
  .adminConversationIcon{grid-column:2;grid-row:1}
  .adminConversationCopy{grid-column:3;grid-row:1}
  .adminConversationControls{grid-column:2/4;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .compactSwitch{justify-content:flex-start;min-width:0;min-height:34px;font-size:10px}
}

@media(max-width:380px){
  .brand .logoFrame{width:82px}
  .sidebarHeader{padding-inline:10px}
  .portalNavBtn span:not(.portalBadge){font-size:8px}
  .directoryActionBtn{width:34px;height:34px;flex-basis:34px}
  .directoryGroupChip{max-width:90px}
  .bulkToolbar .footerSpacer{display:none}
}

.forwardList{max-height:360px;overflow:auto;margin:12px 22px 0;border:1px solid var(--line);border-radius:6px}
.forwardRow{width:100%;min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}
.forwardRow:last-child{border-bottom:0}
.forwardRow:hover,.forwardRow.selected{background:var(--surface-blue)}
.forwardRow .avatar{width:38px;height:38px}
.forwardRow>span:nth-child(2){display:grid;gap:2px}
.forwardRow strong{font-size:12px}.forwardRow small{color:var(--muted);font-size:9px}
.filesDialog .modalCard{grid-template-rows:auto auto minmax(0,1fr)}
.workDialog .modalCard{grid-template-rows:auto auto minmax(0,1fr)}
.filesList{min-height:0;overflow:auto;display:grid;align-content:start;padding:5px 22px 24px}
.filesRow{min-height:64px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:9px 10px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.filesRow:hover{background:var(--surface-2)}
.filesIcon{width:38px;height:38px;display:grid;place-items:center;border-radius:5px;background:var(--surface-blue);color:var(--navy)}
.filesIcon .uiIcon{width:18px;height:18px}
.filesRow>span:nth-child(2){display:grid;gap:3px;min-width:0}
.filesRow strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.filesRow small,.filesRow>span:nth-child(3){color:var(--muted);font-size:9px}
.filesRow>.uiIcon{width:16px;height:16px;color:var(--navy)}
.announcementDetail{padding:30px clamp(22px,4vw,48px)}
.announcementDetail h3{margin:18px 0 12px;font-size:clamp(28px,3vw,38px)}
.announcementBody{padding:20px 0;font-size:14px;line-height:1.65}
.authHeading h2{font-size:40px}
.memberItem select{max-width:112px;min-height:30px;border:1px solid var(--line);border-radius:4px;background:#fff;padding:0 5px;color:var(--navy);font-size:9px}
@media(max-width:720px){
  .forwardList{margin-left:16px;margin-right:16px;max-height:none}
  .filesList{padding:4px 14px calc(20px + env(safe-area-inset-bottom))}
  .filesRow{grid-template-columns:auto minmax(0,1fr) auto}
  .filesRow>span:nth-child(3){display:none}
  .featureButtons{width:100%;display:grid!important;grid-template-columns:1fr 1fr}
}

@media(max-width:430px){
  .brand .logoFrame{width:96px;height:27px}
  .messageColumn{max-width:92%}
  .messageSenderAvatar{display:none}
  .messageRow{gap:0}
  .messageAttachment{max-width:100%}
  .audioAttachment{width:min(270px,76vw)}
  .composerBtn{width:34px;flex-basis:34px}
  .composerInput .composerEmoji{width:34px}
  .securityCard{grid-template-columns:1fr}
  .featureIcon{display:none}
  .securityCard .secondaryBtn{grid-column:1;width:100%;justify-self:stretch}
  .adminStats{grid-template-columns:1fr 1fr}
  .adminStats article{min-height:96px}
  .adminStats strong{font-size:32px}
}

@media(prefers-reduced-motion:reduce){
  .iconBtn,.sendBtn,.accountNavBtn,.messageActionBtn,.filterBtn,.adminTab{transition:none}
}

/* Portalnavigation und klar erkennbare Chatarten */
.conversationSidebar{grid-template-rows:var(--header) auto auto auto minmax(0,1fr) auto}
.portalNav{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  padding:11px 16px 4px;
  background:#fff;
}
.portalNavBtn{
  position:relative;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:7px 8px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  cursor:pointer;
  touch-action:manipulation;
}
.portalNavBtn:hover,.portalNavBtn.active{border-color:#d5e0e5;background:var(--surface-blue);color:var(--navy)}
.portalNavBtn .uiIcon{width:17px;height:17px}
.portalBadge{
  position:absolute;
  top:2px;
  right:4px;
  min-width:17px;
  height:17px;
  display:grid;
  place-items:center;
  padding:0 4px;
  border:2px solid #fff;
  border-radius:10px;
  background:var(--danger);
  color:#fff;
  font-size:8px;
}
.conversationFilters{overflow-x:auto;scrollbar-width:none}
.conversationFilters::-webkit-scrollbar{display:none}
.filterBtn{flex:0 0 auto}
.conversationTop strong{display:flex;align-items:center;gap:5px}
.protectedChatIcon{display:inline-flex;flex:0 0 auto;color:var(--navy-3)}
.protectedChatIcon .uiIcon{width:14px;height:14px;stroke-width:2}

/* Nachrichtenaktionen sind auf Maus und Touch zuverlässig erreichbar */
.messageMoreBtn{
  position:absolute;
  z-index:4;
  top:4px;
  right:-35px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid transparent;
  border-radius:7px;
  background:rgba(255,255,255,.92);
  color:var(--navy);
  opacity:.62;
  cursor:pointer;
  box-shadow:0 3px 12px rgba(0,45,71,.06);
  touch-action:manipulation;
}
.messageMoreBtn:hover,.messageMoreBtn:focus-visible,.messageRow.actionOpen .messageMoreBtn{border-color:var(--line);opacity:1}
.messageMoreBtn .uiIcon{width:17px;height:17px}
.messageRow.mine .messageMoreBtn{right:auto;left:-35px}
.messageRow.actionOpen .messageActions{display:flex}
.reactionPicker{max-height:104px;overflow:auto}
.protectedGroupNotice{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:14px;
  border:1px solid #cadce4;
  border-radius:7px;
  background:var(--surface-blue);
  color:var(--navy);
}
.protectedGroupNotice>.uiIcon{margin-top:1px}
.protectedGroupNotice>span{display:grid;gap:3px}
.protectedGroupNotice strong{font-size:13px}
.protectedGroupNotice small{color:var(--muted);font-size:11px;line-height:1.45}
.detailsHero p{display:flex;align-items:center;justify-content:center;gap:5px}
.detailsHero p .uiIcon{width:14px;height:14px}

/* Personenverzeichnis und Ankündigungsarbeitsfläche */
.workspaceDialog{width:min(94vw,1080px);height:min(88vh,800px)}
.workspaceDialog .modalCard{width:100%;height:100%;max-height:none;overflow:hidden;display:grid;grid-template-rows:auto auto auto minmax(0,1fr)}
.workspaceToolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(210px,280px);
  gap:10px;
  padding:16px 22px 10px;
}
.workspaceToolbar label,.workspaceSearch{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface-2);
  color:var(--muted);
}
.workspaceToolbar input,.workspaceSearch input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}
.workspaceToolbar select{min-height:44px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 11px;color:var(--ink)}
.directoryNotice{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 22px 12px;
  padding:9px 11px;
  border-left:3px solid var(--navy-3);
  background:#eef4f6;
  color:var(--muted);
  font-size:11px;
}
.directoryNotice .uiIcon{width:16px;height:16px;color:var(--navy)}
.directoryGrid{
  min-height:0;
  overflow:auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:start;
  gap:12px;
  padding:4px 22px 24px;
}
.directoryCard{display:grid;gap:13px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff}
.directoryIdentity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.directoryIdentity>span:nth-child(2){display:grid;gap:3px}
.directoryIdentity strong{font-size:14px;color:var(--ink)}
.directoryIdentity small{font-size:11px;color:var(--muted)}
.presenceLabel{padding:4px 7px;border-radius:12px;background:var(--surface-3);color:var(--muted);font-size:9px;font-weight:700}
.presenceLabel.online{background:#e4f5ed;color:var(--success)}
.directoryGroups{display:flex;flex-wrap:wrap;gap:5px}
.directoryGroups span{padding:4px 7px;border-radius:4px;background:var(--surface-blue);color:var(--navy);font-size:10px;font-weight:600}
.directoryActions{display:flex;gap:8px;padding-top:2px;border-top:1px solid #edf1f3}
.directoryActions .primaryBtn,.directoryActions .secondaryBtn{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
.emptyWorkspace{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}
.emptyWorkspace>.uiIcon{width:30px;height:30px;color:var(--navy-3)}
.emptyWorkspace h3{margin:10px 0 4px;font:600 26px/1.1 "Barlow Condensed",sans-serif;color:var(--navy)}
.emptyWorkspace p{margin:0;max-width:420px;font-size:12px}

.announcementsDialog .modalCard{grid-template-rows:auto minmax(0,1fr)}
.announcementWorkspace{min-height:0;display:grid;grid-template-columns:330px minmax(0,1fr)}
.announcementIndex{min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);padding:18px 14px;border-right:1px solid var(--line);background:#f7f9fa}
.workspaceSearch{margin:0 2px 12px;background:#fff}
.announcementList{min-height:0;overflow:auto;display:grid;align-content:start;gap:6px}
.announcementIndexItem{width:100%;display:grid;gap:7px;padding:13px;border:1px solid transparent;border-radius:7px;background:transparent;text-align:left;color:var(--ink);cursor:pointer}
.announcementIndexItem:hover{background:#fff;border-color:var(--line)}
.announcementIndexItem.active{border-color:#b9d0da;background:#fff;box-shadow:inset 3px 0 0 var(--navy)}
.announcementIndexItem.unread strong::after{content:"";display:inline-block;width:7px;height:7px;margin-left:7px;border-radius:50%;background:var(--navy-3)}
.announcementIndexTop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.announcementIndexTop time{color:var(--muted-2);font-size:9px}
.announcementIndexItem strong{font-size:13px}
.announcementIndexItem small{color:var(--muted);font-size:10px}
.priorityTag,.statusTag,.secureTag{display:inline-flex;align-items:center;gap:5px;width:max-content;padding:4px 7px;border-radius:4px;background:var(--surface-blue);color:var(--navy);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.priorityTag.important{background:#fff2d5;color:#806019}
.priorityTag.urgent{background:#fde8e8;color:var(--danger)}
.statusTag{margin-left:5px;background:var(--surface-3);color:var(--muted)}
.secureTag .uiIcon{width:13px;height:13px}
.announcementDetail{min-height:0;overflow:auto;padding:38px clamp(24px,5vw,62px)}
.announcementDetailHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}
.announcementDetail h3{max-width:720px;margin:22px 0 14px;font:600 clamp(32px,4vw,48px)/1.02 "Barlow Condensed",sans-serif;color:var(--navy)}
.announcementMeta{display:flex;flex-wrap:wrap;gap:10px 18px;padding-bottom:20px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px}
.announcementMeta span{display:flex;align-items:center;gap:6px}
.announcementMeta .uiIcon{width:14px;height:14px}
.announcementBody{max-width:760px;padding:25px 0;color:var(--ink);font-size:15px;line-height:1.7;overflow-wrap:anywhere}
.announcementExpiry{padding:10px 12px;border-left:3px solid var(--navy-3);background:var(--surface-blue);color:var(--muted);font-size:11px}
.announcementEmpty{height:100%;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}
.announcementEmpty>.uiIcon{width:38px;height:38px;color:var(--navy-3)}
.announcementEmpty h3{margin:13px 0 5px;font:600 28px/1 "Barlow Condensed",sans-serif;color:var(--navy)}
.announcementEmpty p{margin:0;max-width:360px;font-size:12px}

/* Vollständige, ruhig strukturierte Administration */
.adminDialog{width:min(97vw,1280px);height:min(92vh,900px)}
.adminDialog .modalCard{grid-template-columns:238px minmax(0,1fr)}
.adminDialog .adminTabs{overflow-y:auto;overscroll-behavior:contain}
.adminDialog .adminTab{font-size:13px}
.adminDialog .adminTabPanel{padding:30px 32px 36px;font-size:14px}
.adminStats{grid-template-columns:repeat(3,minmax(0,1fr))}
.adminStats span{font-size:12px}
.adminSectionHeading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}
.adminSectionHeading h3{margin:5px 0 6px;font:600 30px/1.05 "Barlow Condensed",sans-serif;color:var(--navy)}
.adminSectionHeading p{max-width:680px;margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.adminCreatePanel{margin-bottom:18px;padding:20px;border:1px solid #cad9e0;border-radius:8px;background:#f7f9fa}
.adminCreatePanel .formGrid{margin:0}
.adminCreatePanel .adminFormActions{padding-bottom:0}
.adminUserForm{border-radius:8px;padding:20px}
.adminFormHeading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.adminFormHeading h4{margin:4px 0 0;font:600 24px/1.05 "Barlow Condensed",sans-serif;color:var(--navy)}
.adminUserRow{grid-template-columns:minmax(220px,1fr) 130px 130px 40px}
.checkRow{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff}
.checkRow>span{display:grid;gap:3px}
.checkRow strong{font-size:12px;color:var(--ink)}
.checkRow small{font-size:10px;color:var(--muted)}
.adminGroupList,.adminAnnouncementList,.adminAuditList{display:grid;gap:12px}
.adminGroupCard{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}
.adminGroupCard.archived{opacity:.7}
.adminGroupCard>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 19px;border-bottom:1px solid var(--line);background:#f8fafb}
.adminGroupCard h4,.adminAnnouncementCard h4{margin:5px 0 4px;font:600 24px/1.1 "Barlow Condensed",sans-serif;color:var(--navy)}
.adminGroupCard p{margin:0;color:var(--muted);font-size:11px}
.groupState{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--success)}
.archived .groupState{color:var(--muted)}
.groupHeaderActions{display:flex;gap:7px}
.groupHeaderActions .secondaryBtn,.groupAddMember .secondaryBtn{display:flex;align-items:center;gap:7px}
.dangerIcon{color:var(--danger)}
.groupMemberHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 19px;border-bottom:1px solid #edf1f3}
.groupMemberHeader>strong{font-size:12px;color:var(--navy)}
.groupAddMember{display:flex;gap:7px}
.groupAddMember select,.groupMemberRow select{min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 9px}
.groupMemberList{display:grid}
.groupMemberRow{display:grid;grid-template-columns:auto minmax(0,1fr) 130px 40px;align-items:center;gap:10px;min-height:64px;padding:8px 16px;border-bottom:1px solid #edf1f3}
.groupMemberRow:last-child{border-bottom:0}
.groupMemberRow .avatar{width:38px;height:38px}
.groupMemberRow>span:nth-child(2){display:grid;gap:2px}
.groupMemberRow strong{font-size:12px}
.groupMemberRow small{color:var(--muted);font-size:10px}
.adminAnnouncementList{grid-template-columns:repeat(2,minmax(0,1fr))}
.adminAnnouncementCard{display:flex;flex-direction:column;min-height:225px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff}
.adminAnnouncementCard p{display:-webkit-box;overflow:hidden;margin:8px 0;color:var(--muted);font-size:12px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:4}
.adminAnnouncementCard>small{margin-top:auto;color:var(--muted-2);font-size:10px}
.adminAnnouncementCard footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.adminAnnouncementCard footer .secondaryBtn{display:flex;align-items:center;gap:7px}
.dangerTextBtn{border:0;background:transparent;color:var(--danger);font-weight:700;cursor:pointer}
.permissionsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.permissionCard{min-height:120px;display:flex;align-items:flex-start;gap:13px;padding:17px;border:1px solid var(--line);border-radius:8px;background:#fff}
.permissionCard>span:last-child{flex:1;display:grid;gap:5px}
.permissionCard strong{font-size:13px;color:var(--ink)}
.permissionCard small{font-size:10px;line-height:1.45;color:var(--muted)}
.permissionCard select{min-height:39px;margin-top:5px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 8px}
.permissionCard>input{width:18px;height:18px;margin-top:1px;accent-color:var(--navy)}
.permissionsActions{display:flex;justify-content:flex-end;padding-top:4px}
.permissionsActions .primaryBtn{display:flex;align-items:center;gap:7px}
.auditRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:7px;background:#fff}
.auditIcon{width:37px;height:37px;display:grid;place-items:center;border-radius:6px;background:var(--surface-blue);color:var(--navy)}
.auditIcon .uiIcon{width:18px;height:18px}
.auditRow>span:nth-child(2){display:grid;gap:3px}
.auditRow strong{font-size:12px}
.auditRow small{font-size:10px;color:var(--muted)}
.auditRow code{padding:5px 7px;border-radius:4px;background:var(--surface-2);color:var(--muted);font-size:9px}
.adminUserGroups{display:block;margin-top:3px;color:var(--navy-3);font-size:9px;font-weight:600}

@media(max-width:720px){
  html{-webkit-text-size-adjust:100%}
  input,textarea,select{font-size:16px!important}
  body{font-size:16px}
  a,button,input,textarea,select{touch-action:manipulation}
  .portalNav{padding:8px 10px 2px}
  .portalNavBtn{min-height:42px;font-size:10px}
  .sidebarSearch{padding-top:9px}
  .messageMoreBtn{top:3px;right:-34px;width:32px;height:32px;opacity:.9}
  .messageRow.mine .messageMoreBtn{right:auto;left:-34px}
  .messageActions{max-width:calc(100vw - 28px);overflow-x:auto}
  .reactionPicker{position:fixed;left:8px!important;right:8px!important;bottom:calc(78px + env(safe-area-inset-bottom));justify-content:center;max-width:none;max-height:none;padding:8px}
  .reactionPicker button{width:40px;height:40px}
  .workspaceDialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0}
  .workspaceDialog .modalCard{min-height:100dvh;max-height:100dvh;border-radius:0;grid-template-rows:auto auto auto minmax(0,1fr)}
  .workspaceToolbar{grid-template-columns:1fr;padding:12px 14px 8px}
  .directoryNotice{margin:0 14px 10px}
  .directoryGrid{grid-template-columns:1fr;padding:3px 14px calc(20px + env(safe-area-inset-bottom))}
  .directoryActions .primaryBtn,.directoryActions .secondaryBtn{min-height:46px}
  .announcementsDialog .modalCard{grid-template-rows:auto minmax(0,1fr)}
  .announcementWorkspace{grid-template-columns:1fr;grid-template-rows:minmax(210px,42%) minmax(0,1fr)}
  .announcementIndex{padding:11px 10px;border-right:0;border-bottom:1px solid var(--line)}
  .announcementDetail{padding:23px 17px calc(24px + env(safe-area-inset-bottom))}
  .announcementDetail h3{font-size:32px}
  .announcementBody{font-size:15px}
  .adminDialog .adminTabPanel{padding:20px 16px calc(28px + env(safe-area-inset-bottom));font-size:15px}
  .adminSectionHeading{display:grid;gap:13px}
  .adminSectionHeading .primaryBtn,.adminSectionHeading .secondaryBtn{width:100%;justify-content:center}
  .adminStats{grid-template-columns:1fr 1fr}
  .adminCreatePanel{padding:15px}
  .adminUserForm{padding:15px}
  .adminUserRow{grid-template-columns:minmax(0,1fr) 40px}
  .adminUserRow select{grid-column:1;width:100%}
  .adminUserRow>.iconBtn{grid-column:2;grid-row:1}
  .adminGroupCard>header,.groupMemberHeader{display:grid;padding:15px}
  .groupHeaderActions,.groupAddMember{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto}
  .groupMemberRow{grid-template-columns:auto minmax(0,1fr) 40px}
  .groupMemberRow select{grid-column:2/4;width:100%}
  .adminAnnouncementList,.permissionsGrid{grid-template-columns:1fr}
  .permissionCard{min-height:105px}
  .permissionsActions .primaryBtn{width:100%;justify-content:center}
  .auditRow{grid-template-columns:auto minmax(0,1fr)}
  .auditRow code{grid-column:2}
}

@media(max-width:430px){
  .portalNavBtn{display:grid;place-items:center;gap:2px;padding:5px 3px}
  .portalNavBtn .uiIcon{width:16px;height:16px}
  .messageColumn{max-width:calc(100% - 38px)}
  .messageRow.mine .messageColumn{margin-left:38px}
  .messageRow:not(.mine) .messageColumn{margin-right:38px}
  .directoryIdentity{grid-template-columns:auto minmax(0,1fr)}
  .presenceLabel{grid-column:2;width:max-content}
  .directoryActions{display:grid;grid-template-columns:1fr 1fr}
  .groupHeaderActions{grid-template-columns:1fr}
  .groupHeaderActions .dangerIcon{width:100%}
}

/* Letzte Kaskadenebene: Dichte und mobile Stabilität */
.portalNav{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:8px 12px 3px}
.portalNavBtn{min-height:40px;gap:5px;padding:5px 4px;font-size:10px;border-radius:5px}
.portalNavBtn .uiIcon{width:15px;height:15px}
.adminDialog{width:min(95vw,1120px);height:min(89vh,800px)}
.adminDialog .modalCard{grid-template-columns:210px minmax(0,1fr)}
.adminDialog .modalHeader{min-height:76px;padding:16px 20px 14px}
.adminDialog .modalHeader h2{font-size:28px}
.adminDialog .adminTabs{gap:3px;padding:14px 11px}
.adminDialog .adminTab{min-height:39px;padding:7px 10px;font-size:11px}
.adminDialog .adminTabPanel{padding:22px 24px 28px;font-size:13px}
.adminSectionHeading h3{font-size:26px}
.adminStats{gap:9px}
.adminStats article{min-height:104px;padding:14px}
.adminStats span{font-size:10px}
.adminStats strong{font-size:36px}
.permissionCard{min-height:98px;padding:14px}

@media(max-width:720px){
  .portalNav{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:7px 7px 2px}
  .portalNavBtn{min-height:39px;display:grid;place-items:center;gap:1px;padding:4px 2px;font-size:8px}
  .portalNavBtn .uiIcon{width:16px;height:16px}
  .activeChat{grid-template-rows:var(--header) auto auto auto auto minmax(0,1fr) auto}
  .messageActions{position:fixed!important;z-index:80;left:8px!important;right:8px!important;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-width:none;min-height:52px;justify-content:center;gap:2px;padding:7px;border-radius:9px;box-shadow:0 18px 60px rgba(0,27,43,.3)}
  .messageActionBtn{width:38px;height:38px}
  .messageFeature{width:calc(100vw - 58px);max-width:100%}
  .adminDialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0}
  .adminDialog .modalCard{grid-template-columns:minmax(0,1fr)}
  .adminDialog .adminTabPanel{padding:16px 14px calc(22px + env(safe-area-inset-bottom));font-size:15px}
  .adminUserRow{grid-template-columns:minmax(0,1fr)!important}
  .adminUserRow select,.adminUserRow>.iconBtn{grid-column:1!important;width:100%}
  .permissionsGrid{grid-template-columns:1fr}
}

/* 1.9.0 – MUSS LETZTE KASKADENEBENE BLEIBEN */
html,body{height:100svh!important;max-height:100svh!important;overflow:hidden}
.appShell{height:100svh!important;max-height:100svh!important}
.sidebarHeaderActions{display:flex;align-items:center;gap:4px}
.portalNavBtn{min-height:42px;font-size:11px}
.portalNavBtn .uiIcon{width:19px;height:19px}
.directoryGrid{grid-template-columns:1fr;gap:7px;padding:3px 18px 20px}
.directoryCard.directoryRow{min-height:64px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 11px}
.directoryCard.directoryRow .directoryIdentity{grid-template-columns:42px minmax(0,1fr)}
.directoryCard.directoryRow .directoryActions{display:flex;grid-template-columns:none;align-items:center;gap:5px;padding:0;border:0}
.directoryCard.directoryRow .presenceLabel{grid-column:auto;width:auto;padding:2px 6px;font-size:8px}
.directoryActionBtn{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px}
.adminDialog{width:min(95vw,1120px);height:min(88vh,790px)}
.adminDialog .modalCard{grid-template-columns:190px minmax(0,1fr)}
.adminDialog .modalHeader{min-height:70px;padding:14px 18px 12px}
.adminDialog .adminTabs{gap:2px;padding:10px 8px}
.adminDialog .adminTab{min-height:37px;font-size:12px}
.adminDialog .adminTabPanel{padding:18px 20px 24px;font-size:13px}
.adminStats article{min-height:82px;padding:11px 12px}
.adminStats strong{font-size:31px}
.adminUserGroups{display:flex;align-items:center;flex-wrap:wrap;gap:3px;margin-top:1px}
.adminUserRow{min-height:64px;display:grid;grid-template-columns:24px minmax(250px,1fr) 120px 115px 36px;align-items:center;gap:8px;padding:7px 9px}
.adminUserRow select{grid-column:auto;width:100%}
.adminUserRow>.iconBtn{grid-column:auto;width:34px}
.adminConversationRow{min-height:58px;display:grid;grid-template-columns:24px 34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px}
.adminConversationControls{display:flex;align-items:center;gap:8px}
.messageFeature{width:min(100%,520px);max-width:100%;overflow:hidden}
.messageActionBackdrop{position:fixed;z-index:78;inset:0;border:0;background:rgba(0,27,43,.32)}
.composerToolsMenu{z-index:90}

@media(max-width:900px){
  .adminDialog{width:100vw;height:100svh!important;max-width:none;max-height:100svh!important;margin:0;border-radius:0}
  .adminDialog .modalCard{height:100svh!important;min-height:100svh!important;max-height:100svh!important;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);border-radius:0}
  .adminDialog .modalHeader{grid-column:1;grid-row:1}
  .adminDialog .adminTabs{grid-column:1;grid-row:2;min-height:48px;display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:5px 8px;border-right:0;border-bottom:1px solid var(--line)}
  .adminDialog .adminTab{flex:0 0 auto;white-space:nowrap}
  .adminDialog .adminTabPanel{grid-column:1;grid-row:3;overflow-x:hidden;overflow-y:auto}
}

@media(max-width:720px){
  html,body,.appShell{height:100svh!important;min-height:100svh!important;max-height:100svh!important}
  body{position:fixed;inset:0}
  input,textarea,select{font-size:16px!important}
  .conversationSidebar,.chatPanel{height:100%;transition:none!important}
  .activeChat{height:100%;min-height:0;grid-template-rows:var(--header) auto auto auto auto minmax(0,1fr) auto!important}
  .messageViewport{min-height:0;contain:layout paint;overscroll-behavior-y:contain}
  .portalNavBtn{min-height:44px;font-size:9px}
  .portalNavBtn .uiIcon{width:20px;height:20px}
  .workspaceDialog,.modalDialog,.wideDialog,.smallDialog{height:100svh!important;max-height:100svh!important}
  .workspaceDialog .modalCard,.modalCard{height:100svh!important;min-height:100svh!important;max-height:100svh!important}
  .directoryGrid{grid-template-columns:1fr;gap:6px;padding:2px 9px calc(14px + env(safe-area-inset-bottom))}
  .directoryCard.directoryRow{min-height:61px;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:7px 8px}
  .directoryCard.directoryRow .directoryIdentity{grid-template-columns:38px minmax(0,1fr);gap:8px}
  .directoryCard.directoryRow .presenceLabel{grid-column:auto;width:auto;padding:1px 5px;font-size:7px}
  .directoryCard.directoryRow .directoryActions{display:flex;grid-template-columns:none;gap:3px}
  .directoryActionBtn{width:36px;height:36px;flex-basis:36px}
  .messageActions{position:fixed!important;z-index:80;left:7px!important;right:7px!important;top:auto!important;bottom:calc(7px + env(safe-area-inset-bottom));display:none!important;width:auto!important;max-width:none!important;min-height:58px;align-items:center;justify-content:space-evenly;gap:2px;padding:7px;border:0;border-radius:10px;background:#fff}
  .messageRow.actionOpen .messageActions{display:flex!important}
  .messageActionBtn{width:42px;height:42px;flex:0 0 42px}
  .messageFeature{width:100%!important;max-width:100%!important}
  .messageFeature header{grid-template-columns:auto minmax(0,1fr)}
  .messageFeature footer{display:grid;grid-template-columns:1fr;gap:8px}
  .featureButtons{display:grid!important;grid-template-columns:1fr}
  .featureButtons button,.messageFeature footer>button{width:100%;min-height:38px}
  .adminDialog .adminTabPanel{padding:14px 12px calc(20px + env(safe-area-inset-bottom));font-size:14px}
  .adminUserRow{min-height:96px;grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 36px!important;grid-template-rows:auto auto;gap:6px;padding:8px}
  .adminUserRow>.rowSelector{grid-column:1!important;grid-row:1!important;width:22px!important}
  .adminUserRow>.adminUserIdentity{grid-column:2/4!important;grid-row:1!important}
  .adminUserRow>.adminUserEdit{grid-column:4!important;grid-row:1!important;width:34px!important}
  .adminUserRow>.adminUserControl:nth-of-type(2){grid-column:2!important;grid-row:2!important}
  .adminUserRow>.adminUserControl:nth-of-type(3){grid-column:3/5!important;grid-row:2!important}
  .adminUserRow select{grid-column:auto!important;width:100%!important;height:38px}
  .adminConversationRow{min-height:92px;grid-template-columns:22px 34px minmax(0,1fr)!important;grid-template-rows:auto auto;gap:7px;padding:8px}
  .adminConversationRow>.rowSelector{grid-column:1;grid-row:1}
  .adminConversationIcon{grid-column:2;grid-row:1}
  .adminConversationCopy{grid-column:3;grid-row:1}
  .adminConversationControls{grid-column:2/4;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:6px}
}
