/* ==========================================================
   NOVA HUB TARGETED LAYOUT FIX
   Nova Cloud 2.0 + RBAC
   Keine globalen Modul-Overrides.
   ========================================================== */

/* ----------------------------------------------------------
   Gemeinsame Sicherheit
   ---------------------------------------------------------- */

.content .cloud2-shell,
.content .nova-rbac-page{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
  float:none !important;
  transform:none !important;
}

/* ==========================================================
   NOVA CLOUD 2.0
   ========================================================== */

/*
 * Die Cloud-Shell darf selbst KEIN mehrspaltiges Grid sein.
 * Nur .cloud2-layout und .cloud2-hero erzeugen Spalten.
 */
.content .cloud2-shell{
  display:block !important;
  grid-template-columns:none !important;
  grid-template-rows:none !important;
  grid-auto-flow:row !important;
  grid-auto-columns:auto !important;
  grid-auto-rows:auto !important;
}

.content .cloud2-shell > *{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
  grid-column:auto !important;
  grid-row:auto !important;
  float:none !important;
  transform:none !important;
}

.content .cloud2-shell > * + *{
  margin-top:16px !important;
}

/* Hero */
.content .cloud2-hero{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(290px,390px) !important;
  grid-template-rows:auto !important;
  align-items:center !important;
  gap:28px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:285px !important;
  margin:0 !important;
}

.content .cloud2-hero > div{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  grid-column:1 !important;
  grid-row:1 !important;
}

.content .cloud2-storage{
  width:100% !important;
  min-width:0 !important;
  max-width:390px !important;
  margin:0 !important;
  justify-self:stretch !important;
  grid-column:2 !important;
  grid-row:1 !important;
}

/* Toolbar muss eigene vollständige Zeile bleiben */
.content .cloud2-toolbar{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}

.content .cloud2-toolbar-actions{
  display:flex !important;
  flex:0 1 auto !important;
  min-width:0 !important;
}

.content .cloud2-search{
  width:auto !important;
  min-width:min(330px,35vw) !important;
  max-width:none !important;
}

/* Haupt-Dateibereich */
.content .cloud2-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 325px !important;
  grid-template-rows:auto !important;
  align-items:start !important;
  gap:16px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}

.content .cloud2-layout > main{
  display:block !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  grid-column:1 !important;
  grid-row:1 !important;
  float:none !important;
  transform:none !important;
}

.content .cloud2-layout > main > .cloud2-section{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
}

.content .cloud2-sidebar{
  display:grid !important;
  grid-template-columns:1fr !important;
  align-content:start !important;
  gap:13px !important;
  width:325px !important;
  min-width:0 !important;
  max-width:325px !important;
  margin:0 !important;
  padding:0 !important;
  grid-column:2 !important;
  grid-row:1 !important;
  justify-self:end !important;
  float:none !important;
  transform:none !important;
}

.content .cloud2-side-card{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  overflow:hidden !important;
}

.content .cloud2-side-card *,
.content .cloud2-empty *{
  max-width:100% !important;
}

.content .cloud2-empty{
  width:100% !important;
  max-width:none !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

.content .cloud2-empty p,
.content .cloud2-empty h3{
  width:auto !important;
  max-width:700px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

/* ==========================================================
   ROLLEN & RECHTE / DATABASE RBAC
   ========================================================== */

.content .nova-rbac-page{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}

.content .nova-rbac-page > *{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  grid-column:auto !important;
  grid-row:auto !important;
  float:none !important;
  transform:none !important;
}

.content .nova-rbac-page > * + *{
  margin-top:16px !important;
}

/* Hero und Tabs */
.content .nova-rbac-hero{
  display:block !important;
  width:100% !important;
  max-width:none !important;
}

.content .nova-rbac-tabs{
  display:flex !important;
  width:100% !important;
}

/* Panel-Container */
.content [data-rbac-panel]{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  grid-template-columns:none !important;
  float:none !important;
  transform:none !important;
}

.content [data-rbac-panel][hidden]{
  display:none !important;
}

/* Rollenleiste */
.content .nova-rbac-rolebar{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr)) !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  gap:8px !important;
}

/* Der aktive Rollen-Editor muss eine komplette Zeile sein. */
.content .nova-rbac-role-panel{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  float:none !important;
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  grid-column:1 / -1 !important;
}

.content .nova-rbac-role-panel[hidden]{
  display:none !important;
}

.content .nova-rbac-role-panel > form{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  float:none !important;
  transform:none !important;
}

/* Nur das Metadatenformular ist ein Grid. */
.content .nova-rbac-role-panel > form.nova-rbac-role-meta{
  display:grid !important;
  grid-template-columns:
    minmax(150px,1fr)
    minmax(150px,1fr)
    minmax(130px,.75fr)
    minmax(120px,.65fr)
    auto !important;
  align-items:end !important;
  gap:10px !important;
  margin-bottom:18px !important;
}

/* Permission-Form darf NICHT als Zweispaltenlayout interpretiert werden */
.content .nova-rbac-role-panel > form:not(.nova-rbac-role-meta){
  display:block !important;
}

.content .nova-rbac-savebar{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:18px 0 0 !important;
}

.content .nova-rbac-category{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}

.content .nova-rbac-category > header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  width:100% !important;
}

.content .nova-rbac-permissions{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr)) !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  gap:8px !important;
}

.content .nova-rbac-permissions label{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
}

.content .nova-rbac-permissions input[type="checkbox"]{
  width:auto !important;
  min-width:auto !important;
  flex:0 0 auto !important;
}

/* Benutzer-Rollen */
.content .nova-rbac-users{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}

.content .nova-rbac-user-card,
.content .nova-rbac-protection-form{
  min-width:0 !important;
  max-width:none !important;
  float:none !important;
  transform:none !important;
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media(max-width:1100px){
  .content .cloud2-layout{
    grid-template-columns:1fr !important;
  }

  .content .cloud2-layout > main{
    grid-column:1 !important;
    grid-row:auto !important;
  }

  .content .cloud2-sidebar{
    width:100% !important;
    max-width:none !important;
    grid-column:1 !important;
    grid-row:auto !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    justify-self:stretch !important;
  }
}

@media(max-width:950px){
  .content .nova-rbac-role-panel > form.nova-rbac-role-meta{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:850px){
  .content .cloud2-hero{
    grid-template-columns:1fr !important;
  }

  .content .cloud2-hero > div,
  .content .cloud2-storage{
    grid-column:1 !important;
    grid-row:auto !important;
  }

  .content .cloud2-storage{
    max-width:none !important;
  }

  .content .cloud2-toolbar{
    align-items:stretch !important;
    flex-direction:column !important;
  }

  .content .cloud2-toolbar-actions{
    flex-wrap:wrap !important;
  }
}

@media(max-width:650px){
  .content .cloud2-sidebar{
    grid-template-columns:1fr !important;
  }

  .content .nova-rbac-role-panel > form.nova-rbac-role-meta,
  .content .nova-rbac-permissions{
    grid-template-columns:1fr !important;
  }

  .content .nova-rbac-savebar{
    align-items:stretch !important;
    flex-direction:column !important;
    gap:10px !important;
  }
}
