/* V58 – finale, bewusst reduzierte Oberfläche. Diese Datei wird zuletzt geladen. */

/* Safari/GPU: linke Navigation ohne flackernde Backdrop-Komposition. */
.sidebar {
  isolation: isolate;
  contain: layout paint;
  overflow: hidden;
  background: linear-gradient(168deg, #292c31 0%, #181a1e 54%, #111316 100%);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* V61 · Mehrfachzuordnungen, Microsoft 365 und Admin-Systemübersicht */
.organization-assignment-fieldset{grid-column:1/-1;margin:8px 0 0;padding:16px;border:1px solid rgba(45,55,64,.12);border-radius:18px;background:rgba(255,255,255,.42)}
.organization-assignment-fieldset legend{padding:0 7px;font-size:.78rem;font-weight:800;color:#22272c}
.organization-assignment-fieldset>p{margin:0 0 12px;color:#68717a;font-size:.68rem;line-height:1.5}
#organizationAssignmentList{display:grid;gap:10px}
.organization-assignment-row{padding:13px;border:1px solid rgba(48,57,66,.11);border-radius:15px;background:rgba(250,251,252,.72);box-shadow:inset 0 1px rgba(255,255,255,.75)}
.assignment-heading{display:flex;align-items:center;gap:12px;margin-bottom:11px}.assignment-heading strong{margin-right:auto;font-size:.74rem}.assignment-heading label{display:flex!important;align-items:center;gap:6px;margin:0!important;font-size:.65rem!important}.assignment-heading input{width:16px!important;min-height:16px!important}.assignment-heading button{width:28px;height:28px;border:0;border-radius:9px;background:rgba(40,45,50,.06);color:#555;font-size:1rem;cursor:pointer}
.assignment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.assignment-grid label{margin:0!important}.organization-add-assignment{margin-top:10px}
.microsoft-mail-card{border-color:rgba(65,92,117,.16)}
.microsoft-compose{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding:15px;border:1px solid rgba(45,55,64,.1);border-radius:17px;background:rgba(255,255,255,.44)}.microsoft-compose h4{grid-column:1/-1;margin:0;font-size:.78rem}.microsoft-compose label{display:grid;gap:6px;color:#626a72;font-size:.62rem;font-weight:760}.microsoft-compose label:first-of-type{grid-row:2/4}.microsoft-compose select,.microsoft-compose input,.microsoft-compose textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid rgba(31,39,47,.12);border-radius:11px;background:rgba(255,255,255,.84);font:inherit;font-size:.68rem}.microsoft-compose select{height:100%;min-height:126px}.microsoft-compose button{grid-column:2;justify-self:start}
.system-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.system-kpi-grid article{padding:17px;border:1px solid rgba(44,52,60,.1);border-radius:17px;background:rgba(255,255,255,.48)}.system-kpi-grid small,.system-kpi-grid span{display:block;color:#727a82;font-size:.63rem}.system-kpi-grid strong{display:block;margin:6px 0 3px;color:#202429;font-size:1.35rem}
.system-session-list{overflow:hidden;border:1px solid rgba(44,52,60,.1);border-radius:17px;background:rgba(255,255,255,.43)}.system-session-list>header{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(44,52,60,.08)}.system-session-list>header small{color:#737b83;font-size:.62rem}.system-session-list article{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(240px,1.5fr) auto;gap:14px;align-items:center;padding:13px 16px;border-bottom:1px solid rgba(44,52,60,.07)}.system-session-list article:last-child{border-bottom:0}.system-session-list article strong,.system-session-list article small{display:block}.system-session-list article strong{font-size:.7rem}.system-session-list article small,.system-session-list article time{margin-top:3px;color:#737b83;font-size:.61rem}

@media(max-width:900px){.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.system-session-list article{grid-template-columns:1fr}.system-session-list article time{justify-self:start}}
@media(max-width:620px){.assignment-grid,.system-kpi-grid,.microsoft-compose{grid-template-columns:1fr}.microsoft-compose h4,.microsoft-compose button{grid-column:1}.microsoft-compose label:first-of-type{grid-row:auto}.organization-assignment-fieldset{padding:12px}.assignment-heading{flex-wrap:wrap}.assignment-heading strong{width:100%}.system-session-list>header{display:block}.system-session-list>header small{display:block;margin-top:4px}}
.sidebar::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(145deg, rgba(255,255,255,.052), transparent 34%);
  content: "";
  pointer-events: none;
}
.sidebar > * { position: relative; z-index: 1; }
.main-nav a,
.sidebar-account,
.logout-button { -webkit-transform: translateZ(0); transform: translateZ(0); }

/* Intro: ein einziges ruhiges Glasobjekt, keine Kreise oder organischen Formen. */
.portal-intro {
  background: linear-gradient(145deg, #e9ecef 0%, #f8f9fa 48%, #e3e7ea 100%);
}
.portal-intro::before {
  inset: 0;
  background: radial-gradient(ellipse 56% 44% at 50% 42%, rgba(255,255,255,.96), transparent 76%);
  filter: none;
  animation: none;
}
.portal-intro::after,
.portal-intro-glow,
.portal-intro-orb,
.portal-intro-refraction { display: none !important; }
.portal-intro-stage { width: min(82vw, 460px); }
.portal-intro-lens {
  width: 100%;
  min-height: 210px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.90);
  border-radius: 30px;
  background: linear-gradient(145deg, rgba(255,255,255,.70), rgba(238,241,243,.42));
  box-shadow: 0 30px 74px rgba(24,29,34,.13), inset 0 1px 0 #fff;
  -webkit-backdrop-filter: blur(32px) saturate(112%);
  backdrop-filter: blur(32px) saturate(112%);
}
.portal-intro-logo { width: 80%; min-height: 122px; filter: none; }
.portal-intro-logo .brand-mark.custom-logo { height: 120px; mix-blend-mode: multiply; }
.portal-intro-sheen {
  display: block;
  top: -25%;
  left: -38%;
  width: 24%;
  height: 150%;
  opacity: .44;
  filter: blur(22px);
}
.portal-intro.is-ready .portal-intro-stage { animation: v58IntroStage .86s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-logo { animation: v58IntroLogo .72s .10s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-sheen { animation: v58IntroSheen .82s .24s cubic-bezier(.22,.75,.2,1) both; }
.portal-intro.is-leaving .portal-intro-lens { transform: scale(1.015); opacity: 0; transition: transform .44s ease, opacity .38s ease; }
@keyframes v58IntroStage { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:none; } }
@keyframes v58IntroLogo { from { opacity:0; transform:scale(.975); } to { opacity:1; transform:none; } }
@keyframes v58IntroSheen { from { transform:translateX(0) rotate(16deg); } to { transform:translateX(620%) rotate(16deg); } }

/* iPhone/iPad: Dialog besitzt den Scrollbereich; die Seite dahinter bleibt fixiert. */
@media (max-width: 900px) {
  .dashboard-info-dialog[open] {
    position: fixed;
    inset: 0;
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
  }
  .dashboard-info-shell {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: 100%;
    height: 100dvh;
    max-height: none;
    overflow: hidden;
  }
  .dashboard-info-shell > header {
    position: relative;
    z-index: 2;
    padding-top: max(18px, env(safe-area-inset-top));
    background: rgba(247,249,250,.91);
    -webkit-backdrop-filter: blur(22px) saturate(112%);
    backdrop-filter: blur(22px) saturate(112%);
  }
  .dashboard-info-body {
    min-height: 0;
    max-height: none;
    padding-bottom: max(48px, calc(env(safe-area-inset-bottom) + 30px));
    overflow-x: hidden;
    overflow-y: scroll;
    overscroll-behavior: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 680px) {
  .portal-intro-stage { width: min(86vw, 380px); }
  .portal-intro-lens { min-height: 176px; border-radius: 25px; }
  .portal-intro-logo .brand-mark.custom-logo { height: 100px; }
}

@media (prefers-reduced-motion: reduce) {
  .portal-intro-sheen { display: none; }
}

/* V59 – Energiefluss analog zur Shelly-Logik: Netz → Firma ← PV. */
.energy-flow {
  grid-template-columns:minmax(50px,1fr) minmax(14px,.38fr) minmax(56px,1fr) minmax(14px,.38fr) minmax(50px,1fr);
  gap:2px;
  padding:18px 8px 15px;
}
.energy-node {
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto auto;
  justify-items:center;
  gap:4px;
  text-align:center;
}
.energy-node-icon {
  grid-row:auto;
  width:36px;
  height:36px;
  border-radius:50%;
  font-size:1rem;
}
.energy-node small { min-height:1.25em; font-size:.56rem; font-weight:760; }
.energy-node strong { max-width:100%; font-size:.78rem; }
.energy-node-grid .energy-node-icon { color:#6e6250; border-color:rgba(110,98,80,.20); background:rgba(244,240,232,.82); }
.energy-node-company .energy-node-icon { color:#303840; border-color:rgba(48,56,64,.17); background:rgba(255,255,255,.88); box-shadow:0 7px 20px rgba(27,32,37,.10),0 0 0 5px rgba(55,64,72,.045); }
.energy-node-solar .energy-node-icon { color:#536b62; border-color:rgba(83,107,98,.20); background:rgba(234,241,237,.84); }
.energy-flow-line { background:#c9ced1; }
.energy-flow-grid::before { display:none; }
.energy-flow-grid::after { display:block; border-color:#746a5b; }
.energy-flow-solar::before { display:block; border-color:#5c746b; }
.energy-flow-solar::after { display:none; }
.energy-flow-grid i { background:#756b5d; box-shadow:0 0 0 4px rgba(117,107,93,.10); }
.energy-flow-solar i { background:#587269; box-shadow:0 0 0 4px rgba(88,114,105,.10); }
.energy-flow-line i.idle { animation:none; opacity:.28; left:50%; }
.energy-flow-line.idle { opacity:.34; }
.energy-live-card>footer { grid-template-columns:1fr 1fr auto; }

@media (max-width:680px) {
  .energy-flow {
    grid-template-columns:minmax(50px,1fr) minmax(14px,.34fr) minmax(56px,1fr) minmax(14px,.34fr) minmax(50px,1fr);
    gap:2px;
    padding:16px 8px 14px;
  }
  .energy-node-icon { width:36px; height:36px; }
  .energy-node small { font-size:.52rem; }
  .energy-node strong { font-size:.68rem; }
  .energy-flow-line { width:auto; height:2px; margin:0; }
  .energy-flow-line::before,.energy-flow-line::after { top:50%; bottom:auto; }
  .energy-flow-line::before { left:-1px; transform:translateY(-50%) rotate(-135deg); }
  .energy-flow-line::after { right:-1px; left:auto; transform:translateY(-50%) rotate(45deg); }
  .energy-flow-grid::before,.energy-flow-solar::after { display:none; }
}

/* V60 – Benachrichtigungen und Holding-Organigramm. */
.notification-button {
  display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:6px 8px 6px 11px;
  border:1px solid rgba(31,39,47,.12); border-radius:999px; color:#2d3338;
  background:rgba(255,255,255,.72); box-shadow:0 8px 22px rgba(24,29,34,.08),inset 0 1px 0 #fff;
  font:inherit; cursor:pointer;
}
.notification-button i { position:relative; width:13px; height:14px; border:1.7px solid currentColor; border-bottom:0; border-radius:8px 8px 3px 3px; }
.notification-button i::before { position:absolute; right:-3px; bottom:-2px; left:-3px; height:2px; border-radius:2px; background:currentColor; content:""; }
.notification-button i::after { position:absolute; bottom:-5px; left:50%; width:3px; height:3px; border-radius:50%; background:currentColor; transform:translateX(-50%); content:""; }
.notification-button span { display:grid; min-width:24px; height:24px; padding:0 5px; place-items:center; border-radius:999px; color:#fff; background:#252a2f; font-size:.68rem; font-weight:900; }
.topbar-actions { position:relative; }
.notification-panel { position:absolute; z-index:80; top:calc(100% + 10px); right:0; width:min(340px,calc(100vw - 28px)); overflow:hidden; border:1px solid rgba(255,255,255,.75); border-radius:18px; background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(232,235,238,.88)); box-shadow:0 24px 60px rgba(20,24,28,.18),inset 0 1px 0 #fff; -webkit-backdrop-filter:blur(28px) saturate(120%); backdrop-filter:blur(28px) saturate(120%); }
.notification-panel[hidden] { display:none!important; }.notification-panel header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 15px; border-bottom:1px solid rgba(31,39,47,.09); }.notification-panel header strong { font-size:.76rem; }.notification-panel header small { color:#727a81; font-size:.57rem; }.notification-panel a { display:grid; gap:3px; padding:12px 15px; border-bottom:1px solid rgba(31,39,47,.075); color:#282e33; text-decoration:none; }.notification-panel a:last-child { border-bottom:0; }.notification-panel a:hover { background:rgba(255,255,255,.55); }.notification-panel b { font-size:.66rem; }.notification-panel a span { color:#737b82; font-size:.56rem; line-height:1.4; }

.main-nav.liquid-nav-slider::before { transform:translateY(calc(var(--liquid-index,0) * 56px))!important; }

.organization-view { --org-line:rgba(37,45,52,.15); }
.organization-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:18px 0 24px; padding:14px 16px; border:1px solid rgba(31,39,47,.10); border-radius:17px; background:rgba(255,255,255,.60); box-shadow:inset 0 1px 0 #fff; }
.organization-toolbar label { display:grid; gap:6px; color:#687078; font-size:.62rem; font-weight:780; }
.organization-toolbar select { min-width:250px; min-height:40px; padding:8px 34px 8px 11px; border:1px solid rgba(31,39,47,.12); border-radius:11px; color:#252a2f; background:rgba(255,255,255,.82); font:inherit; font-size:.72rem; }
.organization-toolbar>span { color:#737b82; font-size:.66rem; font-weight:720; }
.organization-chart { display:grid; gap:24px; }
.organization-company { position:relative; overflow:hidden; padding:20px; border:1px solid rgba(31,39,47,.11); border-radius:22px; background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(238,241,243,.72)); box-shadow:0 20px 50px rgba(24,29,34,.075),inset 0 1px 0 #fff; }
.organization-company>header { display:flex; align-items:center; gap:14px; padding-bottom:17px; border-bottom:1px solid var(--org-line); }
.organization-company>header>span { display:grid; width:48px; height:48px; flex:0 0 auto; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:15px; color:#fff; background:linear-gradient(145deg,#50565c,#25292e); box-shadow:0 8px 20px rgba(22,26,30,.16),inset 0 1px 0 rgba(255,255,255,.18); font-size:.68rem; font-weight:900; }
.organization-company>header small { color:#777f86; font-size:.56rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.organization-company>header h3 { margin:3px 0 2px; color:#20252a; font-size:1.05rem; }
.organization-company>header p { margin:0; color:#7a8188; font-size:.62rem; }
.organization-departments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; padding-top:17px; }
.organization-department { min-width:0; overflow:hidden; border:1px solid rgba(31,39,47,.09); border-radius:16px; background:rgba(255,255,255,.52); }
.organization-department>header { display:flex; align-items:center; gap:10px; padding:12px 13px; border-bottom:1px solid var(--org-line); background:rgba(237,240,242,.55); }
.organization-department>header>span { display:grid; width:33px; height:33px; flex:0 0 auto; place-items:center; border-radius:10px; color:#f5f6f7; background:#444a50; font-size:.57rem; font-weight:900; }
.organization-department header strong,.organization-department header small { display:block; }.organization-department header strong { font-size:.74rem; }.organization-department header small { margin-top:2px; color:#7a8289; font-size:.55rem; }
.organization-people { display:grid; gap:8px; padding:10px; }
.organization-person { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:9px; min-width:0; padding:9px; border:1px solid rgba(31,39,47,.08); border-radius:12px; background:rgba(255,255,255,.72); }
.organization-person>span { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; color:#fff; background:#555c63; font-size:.56rem; font-weight:900; }
.organization-person>div { min-width:0; }.organization-person strong,.organization-person small,.organization-person a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.organization-person strong { color:#252a2f; font-size:.66rem; }.organization-person small,.organization-person a { margin-top:2px; color:#788087; font-size:.52rem; text-decoration:none; }
.organization-person .organization-supervisor,.organization-tree-person .organization-supervisor,.organization-person-assignments .organization-supervisor { color:#52626a; font-weight:760; }
.organization-person>b { padding:4px 6px; border-radius:999px; color:#596168; background:#edf0f2; font-size:.49rem; white-space:nowrap; }
.organization-company-children { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:20px; padding-top:20px; border-top:1px solid var(--org-line); }
.organization-company-children>.organization-company { padding:16px; border-radius:18px; box-shadow:0 12px 30px rgba(24,29,34,.055),inset 0 1px 0 #fff; }
.organization-empty,.organization-empty-state { margin:0; padding:16px; color:#7a8188; font-size:.62rem; text-align:center; }.organization-empty-state { border:1px dashed rgba(31,39,47,.15); border-radius:18px; background:rgba(255,255,255,.45); }.organization-empty-state strong { display:block; margin-bottom:5px; color:#343a40; font-size:.8rem; }.organization-empty-state p { margin:0; }

.organization-admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.organization-admin-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:14px; border:1px solid rgba(31,39,47,.09); border-radius:15px; background:rgba(255,255,255,.54); }
.organization-admin-form h4 { grid-column:1/-1; margin:0 0 2px; font-size:.78rem; }.organization-admin-form label { display:grid; gap:5px; color:#626a72; font-size:.59rem; font-weight:760; }.organization-admin-form input:not([type="checkbox"]),.organization-admin-form select { min-width:0; min-height:39px; padding:8px 10px; border:1px solid rgba(31,39,47,.12); border-radius:10px; background:rgba(255,255,255,.82); font:inherit; font-size:.68rem; }
.organization-person-form { grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)); }.organization-person-form h4,.organization-person-form .organization-form-actions { grid-column:1/-1; }
.organization-active { grid-template-columns:auto 1fr!important; align-items:center; align-content:end; justify-content:start; }.organization-active input { width:18px; height:18px; }
.organization-form-actions { grid-column:1/-1; display:flex; gap:8px; padding-top:4px; }.organization-form-actions button { min-height:36px; }
.organization-admin-lists { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:14px; }.organization-admin-lists>section { min-width:0; padding:13px; border:1px solid rgba(31,39,47,.09); border-radius:15px; background:rgba(255,255,255,.48); }.organization-admin-lists h4 { margin:0 0 9px; font-size:.72rem; }
.organization-admin-list { display:grid; gap:7px; }.organization-admin-list article { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; padding:9px; border:1px solid rgba(31,39,47,.08); border-radius:10px; background:rgba(255,255,255,.72); }.organization-admin-list article>div { min-width:0; }.organization-admin-list strong,.organization-admin-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.organization-admin-list strong { font-size:.62rem; }.organization-admin-list small { margin-top:2px; color:#7a8188; font-size:.51rem; }.organization-admin-list article>span { display:flex; gap:4px; }.organization-admin-list button { min-height:29px; padding:5px 7px; border:1px solid rgba(31,39,47,.1); border-radius:8px; color:#4d555c; background:#fff; font:inherit; font-size:.51rem; font-weight:800; cursor:pointer; }.organization-admin-list button:last-child { color:#805955; }

@media(max-width:1100px){.organization-departments { grid-template-columns:repeat(2,minmax(0,1fr)); }.organization-admin-lists { grid-template-columns:1fr; }}
@media(max-width:760px){.organization-toolbar { align-items:stretch; flex-direction:column; }.organization-toolbar select { width:100%; min-width:0; }.organization-departments,.organization-company-children,.organization-admin-grid,.organization-person-form { grid-template-columns:1fr; }.organization-person-form,.organization-person-form h4,.organization-person-form .organization-form-actions { grid-column:auto; }.organization-company { padding:14px; border-radius:19px; }.organization-person { grid-template-columns:34px minmax(0,1fr); }.organization-person>b { grid-column:2; justify-self:start; }}

@media (max-width:1024px) {
  .mobile-nav.liquid-nav-slider { grid-template-columns:repeat(var(--liquid-count,5),minmax(0,1fr)); }
  .mobile-nav.liquid-nav-slider::before { width:calc((100% - 10px) / var(--liquid-count,5)); transform:translateX(calc(var(--liquid-index,0) * 100%))!important; }
}

@media(max-width:430px){.mobile-nav.liquid-nav-slider a small { font-size:.49rem; }.notification-button { padding-left:9px; }.organization-admin-form { grid-template-columns:1fr; }.organization-admin-form h4,.organization-admin-form .organization-form-actions { grid-column:auto; }}

/* V92 – Organigramm nutzt den verfügbaren Platz ohne schmale Restspalten. */
.organization-company-children {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));
}
.organization-departments {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
  align-items:stretch;
}
.organization-department {
  display:flex;
  flex-direction:column;
}
.organization-department>.organization-people {
  flex:1;
}
.organization-people {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  align-items:stretch;
}
.organization-person {
  height:100%;
}
.organization-person .organization-supervisor {
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  line-height:1.35;
}
@media(max-width:760px){
  .organization-company-children,.organization-departments,.organization-people { grid-template-columns:1fr; }
}

/* V75 – Einheitliche Organisationsverwaltung und belastbares Scrollverhalten. */
.organization-structure-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.organization-structure-nav button { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:10px; min-width:0; padding:11px 12px; border:1px solid rgba(31,39,47,.10); border-radius:14px; color:#30363c; background:rgba(255,255,255,.65); box-shadow:inset 0 1px 0 #fff; font:inherit; text-align:left; cursor:pointer; }
.organization-structure-nav button:hover { border-color:rgba(31,39,47,.19); background:rgba(255,255,255,.88); }
.organization-structure-nav b { display:grid; width:34px; height:34px; place-items:center; border-radius:10px; color:#fff; background:#3b4147; font-size:.62rem; }
.organization-structure-nav span,.organization-structure-nav strong,.organization-structure-nav small { display:block; min-width:0; }
.organization-structure-nav strong { font-size:.67rem; }.organization-structure-nav small { margin-top:3px; overflow:hidden; color:#788087; font-size:.52rem; text-overflow:ellipsis; white-space:nowrap; }
.organization-user-hint { margin:2px 0 0; color:#737b82; font-size:.56rem; line-height:1.5; }
.organization-admin-lists h4 { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.organization-admin-lists h4 small { display:grid; min-width:25px; height:25px; padding:0 6px; place-items:center; border-radius:999px; color:#626a72; background:#edf0f2; font-size:.5rem; }
.organization-admin-list { max-height:clamp(260px,38dvh,520px); padding-right:5px; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; touch-action:pan-y; -webkit-overflow-scrolling:touch; }
.organization-admin-list article.is-unlinked-user { border-style:dashed; border-color:rgba(145,105,41,.28); background:rgba(255,248,232,.64); }
.organization-admin-list article.is-unlinked-user small { color:#8a6b37; }
.user-memberships { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.user-memberships b { padding:4px 7px; border:1px solid rgba(31,39,47,.08); border-radius:999px; color:#4e575e; background:#edf1f3; font-size:.49rem; line-height:1.2; }
.user-memberships b.is-missing { border-color:rgba(145,105,41,.18); color:#80643a; background:#fff8e9; }
.user-row-actions .user-organization-button { color:#334d45; background:#eef6f2; }

/* Listen und Dialoginhalte dürfen auf Desktop und Mobil nie abgeschnitten werden. */
:where([class$="-list"],[class*="-list "]) { min-height:0; max-width:100%; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; }
.admin-page-content,.customize-content,.dashboard-info-body,.energy-details-shell,.roe-dialog-body,.documents-dialog-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; touch-action:pan-y; -webkit-overflow-scrolling:touch; }
.user-list,.role-list,.planner-admin-list,.roe-access-list,.system-session-list,.storage-budget-list,.permission-module-list,.permission-detail-rows,.activity-list { max-height:min(52dvh,620px); overflow-y:auto; }

@media(max-width:760px){
  .organization-structure-nav { grid-template-columns:1fr; }
  .admin-page-content { overflow-y:auto!important; }
  .organization-admin-list,.user-list,.role-list,.planner-admin-list,.roe-access-list,.system-session-list,.storage-budget-list,.permission-module-list,.permission-detail-rows,.activity-list { max-height:min(48dvh,520px); }
}

/* V77 – Holding-Stammbaum und eigenständige Benutzer-Zuordnungsmaske. */
.organization-admin-tree { display:grid!important; grid-template-columns:1fr!important; gap:16px; margin-top:18px; overflow:visible!important; }
.organization-tree-company { min-width:0; overflow:hidden; border:1px solid rgba(31,39,47,.12); border-radius:20px; background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(237,240,242,.63)); box-shadow:0 15px 38px rgba(24,29,34,.065),inset 0 1px 0 #fff; }
.organization-tree-company>header,.organization-tree-department>header { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:11px; padding:13px 14px; }
.organization-tree-company>header { border-bottom:1px solid rgba(31,39,47,.09); background:rgba(255,255,255,.54); }
.organization-tree-company>header>span:first-child,.organization-tree-department>header>span:first-child { display:grid; width:42px; height:42px; place-items:center; border-radius:13px; color:#fff; background:linear-gradient(145deg,#555c63,#292e33); font-size:.58rem; font-weight:900; }
.organization-tree-company>header div,.organization-tree-department>header div { min-width:0; }
.organization-tree-company>header small,.organization-tree-company>header strong,.organization-tree-company>header em,.organization-tree-department>header small,.organization-tree-department>header strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.organization-tree-company>header small { color:#747c83; font-size:.49rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.organization-tree-company>header strong { margin-top:2px; font-size:.78rem; }.organization-tree-company>header em { margin-top:2px; color:#7b838a; font-size:.52rem; font-style:normal; }
.organization-tree-branch { position:relative; display:grid; gap:9px; margin-left:20px; padding:12px 12px 12px 22px; border-left:1px solid rgba(43,51,58,.17); }
.organization-tree-branch::before { position:absolute; top:30px; left:0; width:17px; border-top:1px solid rgba(43,51,58,.17); content:""; }
.organization-tree-department { min-width:0; overflow:hidden; border:1px solid rgba(31,39,47,.09); border-radius:15px; background:rgba(255,255,255,.67); }
.organization-tree-department>header { grid-template-columns:34px minmax(0,1fr) auto; padding:10px 11px; }.organization-tree-department>header>span:first-child { width:34px; height:34px; border-radius:10px; background:#697078; }
.organization-tree-department>header strong { font-size:.65rem; }.organization-tree-department>header small { margin-top:2px; color:#7c848b; font-size:.5rem; }
.organization-tree-person { display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:9px; padding:8px 9px; border:1px solid rgba(31,39,47,.075); border-radius:11px; background:rgba(250,251,252,.78); }
.organization-tree-person>span:first-child { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; color:#fff; background:#596168; font-size:.5rem; font-weight:900; }
.organization-tree-person strong,.organization-tree-person small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.organization-tree-person strong { font-size:.6rem; }.organization-tree-person small { margin-top:2px; color:#7b838a; font-size:.49rem; }
.organization-tree-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }.organization-tree-actions button,.organization-unlinked-users button { min-height:30px; padding:5px 8px; border:1px solid rgba(31,39,47,.1); border-radius:8px; color:#4e565d; background:#fff; font:inherit; font-size:.5rem; font-weight:820; cursor:pointer; }.organization-tree-actions button:last-child { color:#875b57; }
.organization-unlinked-users { padding:14px; border:1px dashed rgba(145,105,41,.27); border-radius:17px; background:rgba(255,248,232,.48); }.organization-unlinked-users>header strong,.organization-unlinked-users>header small { display:block; }.organization-unlinked-users>header strong { font-size:.72rem; }.organization-unlinked-users>header small { margin-top:3px; color:#806d4b; font-size:.53rem; }.organization-unlinked-users>div { display:grid; gap:7px; margin-top:11px; }.organization-unlinked-users article { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px; border-radius:11px; background:rgba(255,255,255,.7); }.organization-unlinked-users article strong,.organization-unlinked-users article small { display:block; }.organization-unlinked-users article strong { font-size:.61rem; }.organization-unlinked-users article small { margin-top:2px; color:#7d7566; font-size:.49rem; }

.organization-person-dialog { width:min(1080px,calc(100vw - 24px)); max-width:none; height:min(880px,calc(100dvh - 24px)); max-height:none; margin:auto; padding:0; overflow:hidden; border:1px solid rgba(255,255,255,.78); border-radius:24px; color:#292f34; background:linear-gradient(145deg,rgba(250,251,252,.98),rgba(229,233,236,.96)); box-shadow:0 35px 90px rgba(17,22,26,.3),inset 0 1px 0 #fff; }
.organization-person-dialog::backdrop { background:rgba(24,28,32,.48); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); }
.organization-person-dialog .organization-person-form { display:block; height:100%; padding:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; touch-action:pan-y; -webkit-overflow-scrolling:touch; }
.organization-person-form>header { position:sticky; z-index:4; top:0; display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px; border-bottom:1px solid rgba(31,39,47,.09); background:rgba(247,249,250,.89); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); }
.organization-person-form>header h3 { margin:4px 0; font-size:1.05rem; }.organization-person-form>header span { display:block; color:#727a81; font-size:.62rem; }
.person-editor-section,.organization-person-dialog .organization-assignment-fieldset { margin:14px 18px 0; padding:16px; border:1px solid rgba(31,39,47,.1); border-radius:17px; background:rgba(255,255,255,.61); }
.person-editor-section h4 { margin:0 0 12px; font-size:.75rem; }.person-editor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }.person-editor-grid label { display:grid; gap:5px; color:#626a72; font-size:.58rem; font-weight:780; }.person-editor-grid input,.person-editor-grid select,.person-editor-grid textarea { width:100%; min-width:0; min-height:40px; padding:8px 10px; border:1px solid rgba(31,39,47,.12); border-radius:10px; background:rgba(255,255,255,.86); font:inherit; font-size:.67rem; }.person-editor-grid textarea { resize:vertical; }.person-editor-wide { grid-column:1/-1; }
.m365-person-section { background:rgba(235,242,247,.63); }.m365-person-section .person-editor-grid { grid-template-columns:minmax(240px,.7fr) 1.3fr; align-items:end; }.m365-person-section p { margin:0; color:#69737c; font-size:.57rem; line-height:1.55; }
.organization-person-dialog .organization-assignment-fieldset { display:block; }.organization-person-dialog #organizationAssignmentList { display:grid; gap:10px; max-height:none; overflow:visible; }
.organization-person-form>footer { position:sticky; z-index:4; bottom:0; display:flex; justify-content:flex-end; gap:9px; margin-top:16px; padding:14px 18px; border-top:1px solid rgba(31,39,47,.09); background:rgba(244,247,248,.91); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); }.organization-person-form>footer button { min-height:40px; }

@media(max-width:760px){
  .organization-tree-company>header,.organization-tree-department>header { grid-template-columns:36px minmax(0,1fr); }.organization-tree-actions { grid-column:1/-1; justify-content:stretch; }.organization-tree-actions button { flex:1; }.organization-tree-branch { margin-left:13px; padding-right:8px; padding-left:16px; }
  .organization-person-dialog { width:100vw; height:100dvh; border:0; border-radius:0; }.organization-person-form>header { padding:15px; }.person-editor-section,.organization-person-dialog .organization-assignment-fieldset { margin:10px 10px 0; padding:12px; }.person-editor-grid,.m365-person-section .person-editor-grid { grid-template-columns:1fr; }.person-editor-wide { grid-column:auto; }.organization-person-form>footer { display:grid; grid-template-columns:1fr; padding:11px; }.organization-person-form>footer button { width:100%; }
}

/* V78 – Meldungszentrale anstelle der Glocke. */
.portal-alerts {
  position:relative; margin:22px 0 18px; overflow:hidden;
  border:1px solid rgba(31,39,47,.11); border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(235,239,241,.76));
  box-shadow:0 18px 48px rgba(22,28,33,.075),inset 0 1px 0 rgba(255,255,255,.98);
  -webkit-backdrop-filter:blur(28px) saturate(118%); backdrop-filter:blur(28px) saturate(118%);
}
.portal-alerts[hidden] { display:none!important; }
.portal-alerts::before { position:absolute; top:0; right:0; left:0; height:2px; background:linear-gradient(90deg,#6d8981,#9fb0aa 42%,transparent 86%); content:""; }
.portal-alerts.has-critical::before { background:linear-gradient(90deg,#9e5650,#c18a80 48%,transparent 88%); }
.portal-alerts>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 18px 13px; border-bottom:1px solid rgba(31,39,47,.075); }
.portal-alerts>header>div { min-width:0; }.portal-alerts>header .eyebrow { margin:0 0 3px; }.portal-alerts>header h2 { display:inline; margin:0; color:#22282d; font-size:.92rem; letter-spacing:-.018em; }.portal-alerts>header span { margin-left:9px; color:#747d84; font-size:.55rem; font-weight:680; }
.portal-alerts>header button { display:grid; width:34px; height:34px; flex:0 0 auto; padding:0; place-items:center; border:1px solid rgba(31,39,47,.1); border-radius:11px; color:#4f575e; background:rgba(255,255,255,.72); box-shadow:inset 0 1px 0 #fff; font:inherit; font-size:1.08rem; cursor:pointer; }
.portal-alerts>header button:hover { color:#23292e; background:#fff; transform:translateY(-1px); }
.portal-alert-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; max-height:none!important; overflow:visible!important; background:rgba(31,39,47,.065); }
.portal-alert-item { position:relative; display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:11px; min-width:0; padding:13px 15px; color:#293036; background:rgba(249,250,251,.88); text-decoration:none; transition:background .18s ease,transform .18s ease; }
.portal-alert-item:hover { z-index:1; background:#fff; transform:translateY(-1px); }
.portal-alert-source { display:grid; width:36px; height:36px; place-items:center; border:1px solid rgba(255,255,255,.8); border-radius:12px; color:#fff; background:#626a71; box-shadow:0 7px 16px rgba(26,31,35,.11),inset 0 1px 0 rgba(255,255,255,.22); font-size:.48rem; font-weight:900; letter-spacing:-.02em; text-transform:uppercase; }
.portal-alert-item.is-critical .portal-alert-source { background:#97524d; }.portal-alert-item.is-warning .portal-alert-source { color:#624e2f; background:#dfc58f; }.portal-alert-item.is-positive .portal-alert-source { background:#5f8379; }
.portal-alert-item>span:nth-child(2) { min-width:0; }.portal-alert-item strong,.portal-alert-item small { display:block; }.portal-alert-item strong { overflow:hidden; color:#292f34; font-size:.64rem; text-overflow:ellipsis; white-space:nowrap; }.portal-alert-item small { margin-top:3px; color:#747d84; font-size:.53rem; line-height:1.42; }
.portal-alert-item>b { color:#7b838a; font-size:.72rem; }.portal-alerts:not([hidden]) + .portal-view .dashboard-roe-progress { margin-top:0; }

@media(max-width:760px){
  .portal-alerts { margin:15px 0 16px; border-radius:19px; }
  .portal-alerts>header { align-items:flex-start; padding:14px; }.portal-alerts>header h2,.portal-alerts>header span { display:block; }.portal-alerts>header span { margin:4px 0 0; }
  .portal-alert-list { grid-template-columns:1fr; }
  .portal-alert-item { grid-template-columns:34px minmax(0,1fr) auto; padding:12px 13px; }.portal-alert-source { width:34px; height:34px; border-radius:11px; }
  .portal-alert-item strong { white-space:normal; }.portal-alert-item small { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
}

/* V79 – Unternehmen als einzige Quelle für Mandanten, Gesellschaften und Abteilungen. */
.organization-hierarchy-note { display:flex; align-items:center; gap:9px; margin:14px 0 4px; padding:11px 13px; overflow-x:auto; border:1px solid rgba(31,39,47,.085); border-radius:14px; color:#626b72; background:rgba(255,255,255,.5); scrollbar-width:none; }
.organization-hierarchy-note::-webkit-scrollbar { display:none; }.organization-hierarchy-note span { display:flex; align-items:center; gap:6px; flex:0 0 auto; font-size:.55rem; font-weight:780; white-space:nowrap; }.organization-hierarchy-note b { display:grid; width:21px; height:21px; place-items:center; border-radius:7px; color:#fff; background:#4b5258; font-size:.48rem; }.organization-hierarchy-note i { color:#a0a7ad; font-size:.8rem; font-style:normal; }
.organization-admin-grid { grid-template-columns:1fr; }.organization-editor { grid-column:1/-1; margin-top:12px; }.organization-editor[hidden] { display:none!important; }
.organization-admin-tree { margin-top:14px; }
.organization-tree-company,.organization-tree-department { container-type:inline-size; }
.organization-tree-actions { display:grid; grid-template-columns:repeat(3,max-content); align-items:center; justify-content:end; max-width:100%; }
.organization-tree-actions button { min-width:0; white-space:nowrap; }.organization-tree-actions .organization-add-department { color:#3f6258; background:#edf6f2; }

@container (max-width:560px) {
  .organization-tree-company>header,.organization-tree-department>header { grid-template-columns:38px minmax(0,1fr); }
  .organization-tree-actions { grid-column:1/span 2; grid-template-columns:repeat(2,minmax(0,1fr)); width:auto!important; max-width:none!important; justify-self:stretch; justify-content:stretch; }
  .organization-tree-actions button { width:100%; min-height:34px; }
  .organization-tree-actions .organization-add-department { grid-column:1/-1; }
  .organization-tree-person { grid-template-columns:32px minmax(0,1fr); }
  .organization-tree-person .organization-tree-actions { grid-column:1/span 2; grid-template-columns:1fr; }
}

@media(max-width:760px){
  .organization-hierarchy-note { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:11px; overflow:visible; }.organization-hierarchy-note span { white-space:normal; }.organization-hierarchy-note i { display:none; }
  .organization-tree-branch { margin-left:8px; padding-right:7px; padding-left:12px; }
  .organization-unlinked-users article { align-items:stretch; flex-direction:column; }.organization-unlinked-users button { width:100%; }
}
