/* ==========================================================
   ANSANM V0.14.6.3
   TABLEAU DE BORD — INTERFACE ADMINISTRATIVE
   ========================================================== */

body.dashboard-page{
  background:#f4f5f7;
  color:#1e1e1e;
}


/* ----------------------------------------------------------
   Mode connecté : suppression de l'ancien header
   ---------------------------------------------------------- */

.dashboard-page:has(#appPanel:not(.hidden)) > .topbar{
  display:none;
}

.dashboard-page:has(#appPanel:not(.hidden)) .shell{
  width:100%;
  max-width:none;
  margin:0;
}


/* Le formulaire de connexion reste centré */
.dashboard-page #authPanel{
  width:min(1050px,92vw);
  margin:48px auto;
}


/* ----------------------------------------------------------
   STRUCTURE GENERALE
   ---------------------------------------------------------- */

.admin-layout{
  min-height:100vh;
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  background:#f4f5f7;
}

.admin-sidebar{
  position:sticky;
  top:0;
  height:100vh;

  display:flex;
  flex-direction:column;

  padding:27px 18px 20px;

  background:#08085c;
  color:#fff;

  border-top:4px solid #e1000f;
}

.admin-main{
  min-width:0;
}

.admin-main-inner{
  width:min(1500px,100%);
  margin:0 auto;
  padding:34px 42px 70px;
}


/* ----------------------------------------------------------
   MARQUE
   ---------------------------------------------------------- */

.admin-brand{
  padding:0 10px 28px;
  border-bottom:1px solid rgba(255,255,255,.16);
}

.admin-brand-name{
  display:flex;
  align-items:center;
  gap:11px;

  font-size:23px;
  line-height:1;

  font-weight:700;
  letter-spacing:.08em;
}

.admin-brand-accent{
  width:5px;
  height:28px;
  flex:0 0 auto;

  background:#e1000f;
}

.admin-brand-subtitle{
  margin-top:10px;
  margin-left:16px;

  color:rgba(255,255,255,.63);
  font-size:11px;
  line-height:1.4;
}


/* ----------------------------------------------------------
   NAVIGATION
   ---------------------------------------------------------- */

.admin-new-meeting{
  display:flex;
  align-items:center;
  gap:10px;

  margin:24px 4px 18px;
  padding:12px 14px;

  background:#fff;
  color:#000091;

  border-radius:3px;

  text-decoration:none;
  font-weight:700;
  font-size:14px;
}

.admin-new-meeting:hover{
  background:#f4f4ff;
}

.admin-new-meeting span{
  font-size:20px;
  line-height:1;
}

.admin-nav{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.admin-nav a{
  position:relative;

  display:block;

  padding:11px 13px;

  color:rgba(255,255,255,.78);

  border-radius:2px;

  text-decoration:none;
  font-size:14px;
  font-weight:500;
}

.admin-nav a:hover{
  background:rgba(255,255,255,.08);
  color:#fff;
}

.admin-nav a.is-active{
  background:rgba(255,255,255,.12);
  color:#fff;
  font-weight:700;
}

.admin-nav a.is-active::before{
  content:"";

  position:absolute;
  left:0;
  top:8px;
  bottom:8px;

  width:3px;

  background:#e1000f;
}

.admin-sidebar-footer{
  margin-top:auto;

  padding:18px 11px 4px;

  border-top:
    1px solid rgba(255,255,255,.16);

  color:#fff;
}

.admin-sidebar-user-label{
  margin-bottom:4px;

  color:rgba(255,255,255,.56);
  font-size:10px;

  text-transform:uppercase;
  letter-spacing:.06em;
}

.admin-sidebar-footer strong{
  display:block;
  overflow:hidden;

  color:#fff;
  font-size:13px;

  text-overflow:ellipsis;
  white-space:nowrap;
}


/* ----------------------------------------------------------
   ENTETE DE PAGE
   ---------------------------------------------------------- */

.admin-page-head{
  margin:0 0 27px;

  padding:0 0 25px;

  border-bottom:1px solid #d9d9df;
}

.admin-page-head h1{
  margin:4px 0 0;

  color:#1e1e1e;

  font-size:30px;
  line-height:1.2;

  font-weight:650;
  letter-spacing:-.02em;
}

.admin-page-head .eyebrow{
  color:#666;
  font-size:11px;
  letter-spacing:.045em;
}

.admin-page-head #logoutBtn{
  padding:8px 13px;

  border:1px solid #c9cad0;

  color:#555;
  background:#fff;

  font-size:12px;
  font-weight:600;
}

.admin-page-head #logoutBtn:hover{
  color:#000091;
  border-color:#000091;
}


/* ----------------------------------------------------------
   VUE D'ENSEMBLE
   ---------------------------------------------------------- */

.dashboard-summary{
  margin-bottom:26px;
}

.dashboard-summary-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;

  gap:20px;

  margin-bottom:14px;
}

.dashboard-summary-head h2{
  margin:0;

  font-size:19px;
  font-weight:650;
}

.dashboard-summary-head p{
  margin:5px 0 0;

  color:#777;
  font-size:13px;
}

.dashboard-kpis{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(145px,1fr))
    minmax(190px,1.15fr);

  gap:12px;
}

.dashboard-kpi{
  min-height:105px;

  display:flex;
  flex-direction:column;
  justify-content:space-between;

  padding:17px 18px;

  background:#fff;

  border:1px solid #dedfe4;
  border-radius:3px;

  text-decoration:none;
}

.dashboard-kpi-label{
  color:#666;

  font-size:11px;
  font-weight:600;

  text-transform:uppercase;
  letter-spacing:.045em;
}

.dashboard-kpi strong{
  color:#181818;

  font-size:28px;
  line-height:1;

  font-weight:650;
}

.dashboard-kpi-action{
  position:relative;

  background:#000091;
  border-color:#000091;

  color:#fff;
}

.dashboard-kpi-action .dashboard-kpi-label{
  color:rgba(255,255,255,.68);
}

.dashboard-kpi-action strong{
  max-width:150px;

  color:#fff;

  font-size:16px;
  line-height:1.25;
}

.dashboard-kpi-arrow{
  position:absolute;

  right:17px;
  bottom:14px;

  color:#fff;

  font-size:23px;
  font-weight:300;
}

.dashboard-kpi-action:hover{
  background:#00006f;
}


/* ----------------------------------------------------------
   ORDRE DES MODULES
   ---------------------------------------------------------- */

.admin-sections{
  display:flex;
  flex-direction:column;
  gap:24px;
}

#meetingsPanel{
  order:1;
}

.grid.dashboard{
  order:2;

  display:grid;
  grid-template-columns:320px minmax(0,1fr);

  gap:24px;
}

#creditPanel{
  order:3;
}

#memberManager{
  order:4;
}

#superAdminPanel{
  order:5;
}


/* ----------------------------------------------------------
   PANNEAUX
   ---------------------------------------------------------- */

.dashboard-page #appPanel .card{
  margin:0;

  padding:24px 26px;

  background:#fff;

  border:1px solid #dedfe4;
  border-radius:3px;

  box-shadow:
    0 1px 2px rgba(0,0,0,.025);
}

.dashboard-page #appPanel .card::after{
  display:none!important;
}

.dashboard-page #appPanel .card-head{
  margin-bottom:20px;
}

.dashboard-page #appPanel .card-head h2{
  margin:3px 0 0;

  font-size:19px;
  font-weight:650;
}

.dashboard-page #appPanel .eyebrow{
  color:#666;

  font-size:10px;
  letter-spacing:.055em;
}


/* ----------------------------------------------------------
   REUNIONS — ASPECT TABLEAU
   ---------------------------------------------------------- */

#meetingsPanel{
  padding:0!important;
  overflow:hidden;
}

#meetingsPanel .card-head{
  margin:0;
  padding:22px 24px 18px;

  border-bottom:1px solid #e1e1e5;
}

#meetingsPanel .meeting-list{
  display:block;

  border:0;
}

#meetingsPanel .meeting-item{
  display:grid;

  grid-template-columns:
    minmax(300px,1fr)
    auto;

  align-items:center;

  gap:24px;

  margin:0;

  padding:19px 22px;

  background:#fff;

  border:0;
  border-bottom:1px solid #e7e7ea;

  border-radius:0;
}

#meetingsPanel .meeting-item:last-child{
  border-bottom:0;
}

#meetingsPanel .meeting-item:hover{
  background:#f8f8fb;
  box-shadow:none;
}

#meetingsPanel .meeting-item h3{
  margin:0 0 8px;

  font-size:16px;
  font-weight:650;
}

#meetingsPanel .meta{
  gap:7px;

  color:#676767;

  font-size:12px;
}

#meetingsPanel .pill{
  padding:3px 7px;

  background:#f0f0f4;

  border-radius:2px;

  color:#555;
}

#meetingsPanel .meeting-actions{
  justify-content:flex-end;
  gap:7px;
}

#meetingsPanel .meeting-actions a,
#meetingsPanel .meeting-actions button{
  min-height:34px;

  padding:7px 10px;

  background:#fff;

  border:1px solid #c8cad3;
  border-radius:2px;

  color:#000091;

  font-size:11px;
  font-weight:650;
}

#meetingsPanel .meeting-actions a:hover,
#meetingsPanel .meeting-actions button:hover{
  background:#f4f4ff;
  border-color:#000091;

  transform:none;
}


/* ----------------------------------------------------------
   STRUCTURES
   ---------------------------------------------------------- */

.grid.dashboard > article:first-child{
  align-self:start;
}

#orgList{
  gap:0;
}

#orgList .org-item{
  padding:13px 4px;

  background:transparent;

  border:0;
  border-bottom:1px solid #e5e5e8;

  border-radius:0!important;
}

#orgList .org-item:last-child{
  border-bottom:0;
}

#orgList .role{
  margin-top:4px;

  color:#777;

  font-size:10px;
}

#orgList .org-action-btn{
  padding:5px 8px;

  background:#fff;

  border-color:#c8cad3;

  color:#000091;

  font-size:10px;
}


/* ----------------------------------------------------------
   NOUVELLE REUNION
   ---------------------------------------------------------- */

#meetingTypeStep{
  padding:20px;

  background:#f8f8fa;

  border:1px solid #e0e0e4;
  border-radius:2px!important;
}

#meetingTypeStep .step-number{
  width:30px;
  height:30px;

  background:#000091;

  border-radius:2px;
}

#meetingTypeStep h3{
  font-size:16px;
  font-weight:650;
}


/* ----------------------------------------------------------
   FORMULAIRES
   ---------------------------------------------------------- */

.dashboard-page #appPanel input,
.dashboard-page #appPanel select,
.dashboard-page #appPanel textarea{
  min-height:39px;

  border:1px solid #b9bac2;
  border-radius:2px;

  font-size:13px;
}

.dashboard-page #appPanel input:focus,
.dashboard-page #appPanel select:focus,
.dashboard-page #appPanel textarea:focus{
  border-color:#000091;

  box-shadow:
    0 0 0 2px rgba(0,0,145,.10);
}

.dashboard-page #appPanel button,
.dashboard-page #appPanel .button-link{
  border-radius:2px;
  font-size:12px;
  font-weight:650;
}


/* ----------------------------------------------------------
   CREDITS
   ---------------------------------------------------------- */

#creditPanel .credit-accounts{
  display:grid;
  gap:0;

  border:1px solid #e0e0e4;
}

#creditPanel .credit-account{
  display:grid;

  grid-template-columns:minmax(0,1fr) auto;

  align-items:center;

  gap:20px;

  padding:15px 17px;

  background:#fff;

  border-bottom:1px solid #e5e5e8;
}

#creditPanel .credit-account:last-child{
  border-bottom:0;
}

#creditPanel .credit-title{
  display:flex;
  align-items:center;
  flex-wrap:wrap;

  gap:8px;
}

#creditPanel .credit-lines{
  display:flex;
  flex-wrap:wrap;

  gap:5px 16px;

  margin-top:6px;

  color:#777;
  font-size:11px;
}


/* ----------------------------------------------------------
   SUPER ADMINISTRATION
   ---------------------------------------------------------- */

#superAdminPanel{
  padding:0!important;
  overflow:hidden;
}

#superAdminPanel > .card-head{
  margin:0;

  padding:22px 24px 18px;

  border-bottom:1px solid #e1e1e5;
}

.admin-search{
  display:flex;
  align-items:center;
  gap:8px;
}

.admin-search input{
  width:240px;
}

.admin-user-list{
  display:block;
}

.admin-user-row{
  display:grid!important;

  grid-template-columns:
    minmax(300px,1fr)
    auto;

  align-items:center;

  gap:24px;

  padding:18px 22px!important;

  background:#fff!important;

  border:0!important;
  border-bottom:1px solid #e5e5e8!important;

  border-radius:0!important;
}

.admin-user-row:last-child{
  border-bottom:0!important;
}

.admin-user-row > div:first-child{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.admin-user-row > div:first-child strong{
  font-size:14px;
}

.admin-user-row > div:first-child span{
  color:#707070;
  font-size:11px;
}

.admin-user-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;

  gap:6px;
  flex-wrap:wrap;
}

.admin-user-actions .mini-balance{
  margin-right:8px;

  padding:5px 8px;

  background:#f1f1f5;

  color:#555;

  border-radius:2px;

  font-size:10px;
}

.admin-user-actions button{
  padding:6px 8px!important;

  background:#fff!important;

  border:1px solid #c8cad3!important;

  color:#000091!important;

  font-size:10px!important;
}


/* ----------------------------------------------------------
   DETAILS / ACTIONS
   ---------------------------------------------------------- */

.dashboard-page details{
  margin-top:18px;

  border-top:1px solid #e2e2e5;
}

.dashboard-page summary{
  color:#000091;

  font-size:12px;
  font-weight:650;
}


/* ----------------------------------------------------------
   MOBILE / TABLETTE
   ---------------------------------------------------------- */

@media(max-width:980px){

  .admin-layout{
    display:block;
  }

  .admin-sidebar{
    position:sticky;
    z-index:40;

    top:0;

    width:100%;
    height:auto;

    padding:14px 16px;

    border-top:3px solid #e1000f;
  }

  .admin-brand{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding:0 4px 12px;

    border-bottom:1px solid rgba(255,255,255,.15);
  }

  .admin-brand-subtitle{
    margin:0;

    text-align:right;
  }

  .admin-new-meeting{
    margin:12px 0 8px;
    padding:9px 12px;
  }

  .admin-nav{
    flex-direction:row;

    overflow-x:auto;

    padding-bottom:2px;
  }

  .admin-nav a{
    flex:0 0 auto;

    padding:8px 11px;

    font-size:12px;
  }

  .admin-nav a.is-active::before{
    display:none;
  }

  .admin-sidebar-footer{
    display:none;
  }

  .admin-main-inner{
    padding:26px 22px 60px;
  }

  .dashboard-kpis{
    grid-template-columns:1fr 1fr;
  }

  .grid.dashboard{
    grid-template-columns:1fr;
  }
}


@media(max-width:680px){

  .admin-main-inner{
    padding:22px 14px 48px;
  }

  .admin-page-head{
    align-items:flex-start;
  }

  .admin-page-head h1{
    font-size:25px;
  }

  .dashboard-kpis{
    grid-template-columns:1fr;
  }

  .dashboard-kpi{
    min-height:90px;
  }

  #meetingsPanel .meeting-item,
  .admin-user-row{
    grid-template-columns:1fr;
  }

  #meetingsPanel .meeting-actions,
  .admin-user-actions{
    justify-content:flex-start;
  }

  .admin-search{
    width:100%;
  }

  .admin-search input{
    width:100%;
  }
}

/* ==========================================================
   ANSANM V0.14.6.4
   DROITS D'UTILISATION
   ========================================================== */

.admin-user-edit-form{
  max-height:calc(100vh - 48px);
  overflow:auto;
}

.admin-entitlements{
  margin:24px 0 28px;

  padding:21px;

  background:#f7f7fa;

  border:1px solid #dedfe5;
  border-radius:3px;
}

.admin-entitlements-head{
  margin-bottom:17px;
}

.admin-entitlements-head h3{
  margin:0;

  font-size:17px;
  font-weight:650;
}

.admin-entitlements-head p{
  margin:5px 0 0;

  font-size:12px;
}

.admin-entitlement-grid{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:14px;
}

.admin-entitlement-card{
  padding:17px;

  background:#fff;

  border:1px solid #d9dae0;
  border-top:3px solid #000091;
}

.admin-entitlement-title{
  margin-bottom:15px;

  color:#1e1e1e;

  font-size:15px;
  font-weight:700;
}

.admin-entitlement-card label:last-child{
  margin-bottom:0;
}

.admin-entitlement-card select,
.admin-entitlement-card input{
  background:#fff;
}

@media(max-width:760px){

  .admin-entitlement-grid{
    grid-template-columns:1fr;
  }

  .admin-entitlements{
    padding:15px;
  }
}



/* ----------------------------------------------------------
   ANSANM 0.15.1 — cartes visuelles
   ---------------------------------------------------------- */

#meetingTypeStep
.meeting-type-step-body
> .grid.two.compact{
  grid-template-columns:minmax(0,420px);
}

.meeting-category-source{
  display:none!important;
}

.meeting-category-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;

  margin:16px 0 18px;
}

.meeting-category-card{
  min-height:118px;

  display:flex;
  align-items:center;
  gap:14px;

  padding:16px;

  background:#fff;
  color:#1e1e1e;

  border:1px solid #c9cad1;
  border-radius:4px;

  text-align:left;

  cursor:pointer;

  transition:
    background .15s ease,
    border-color .15s ease,
    box-shadow .15s ease,
    transform .15s ease;
}

.meeting-category-card:hover{
  filter:none;

  background:#f7f7ff;
  border-color:#000091;

  transform:translateY(-1px);
}

.meeting-category-card:focus-visible{
  outline:3px solid rgba(0,0,145,.20);
  outline-offset:2px;
}

.meeting-category-card.is-selected{
  background:#f1f1ff;
  border-color:#000091;

  box-shadow:
    inset 0 0 0 1px #000091;
}

.meeting-category-icon{
  width:48px;
  height:48px;

  flex:0 0 48px;

  display:grid;
  place-items:center;

  border-radius:50%;

  background:#ededff;
  color:#000091;

  font-size:25px;
  line-height:1;
}

.meeting-category-card.is-selected
.meeting-category-icon{
  background:#000091;
  color:#fff;
}

.meeting-category-copy{
  min-width:0;

  display:flex;
  flex-direction:column;
  gap:5px;
}

.meeting-category-copy strong{
  color:#161616;

  font-size:16px;
  font-weight:700;
  line-height:1.2;
}

.meeting-category-copy small{
  color:#666;

  font-size:12px;
  font-weight:400;
  line-height:1.35;
}

.meeting-type-select-wrap{
  max-width:620px;
  margin:0 0 14px;
}


@media(max-width:760px){

  .meeting-category-cards{
    grid-template-columns:1fr;
  }

  .meeting-category-card{
    min-height:0;
  }

  .meeting-type-select-wrap{
    max-width:none;
  }

}


/* ----------------------------------------------------------
   ANSANM 0.15.1 — pictogrammes SVG
   ---------------------------------------------------------- */

.meeting-category-icon svg{
  width:27px;
  height:27px;

  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.dashboard-kpi-head{
  display:flex;
  align-items:center;
  gap:8px;
}

.dashboard-kpi-icon{
  width:29px;
  height:29px;

  flex:0 0 29px;

  display:grid;
  place-items:center;

  border-radius:50%;

  background:#ededff;
  color:#000091;
}

.dashboard-kpi-icon svg{
  width:17px;
  height:17px;

  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.dashboard-kpi-action
.dashboard-kpi-icon{
  background:rgba(255,255,255,.16);
  color:#fff;
}


/* ==========================================================
   ANSANM 0.16.0 — identité documentaire des structures
   ========================================================== */

.document-identity{
  margin:22px 0 18px;
  padding:18px;
  border:1px solid #d7d7d7;
  border-radius:4px;
  background:#fafafa;
}

.document-identity legend{
  padding:0 8px;
  font-size:15px;
  font-weight:700;
  color:#161616;
}

.document-identity > .small-note{
  margin:0 0 16px;
}


.branding-upload-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}

.branding-upload-card{
  display:flex;
  flex-direction:column;
  gap:9px;
  min-width:0;
  padding:14px;
  border:1px solid #dddddd;
  border-radius:3px;
  background:#ffffff;
}

.branding-upload-title{
  display:block;
  min-height:36px;
  font-size:14px;
  line-height:1.3;
  font-weight:700;
  color:#161616;
}

.branding-upload-card input[type="file"]{
  width:100%;
  min-width:0;
  padding:7px;
  border:1px solid #c9c9c9;
  background:#fff;
  font-size:12px;
}

.branding-upload-card small{
  display:block;
  margin-top:auto;
  color:#666666;
  font-size:11px;
  line-height:1.35;
}

.branding-status{
  width:max-content;
  max-width:100%;
  padding:4px 7px;
  border-radius:2px;
  background:#eeeeee;
  color:#555555;
  font-size:11px;
  font-weight:600;
}

.branding-status.is-present{
  background:#e3e3fd;
  color:#000091;
}


.document-preview-wrap{
  margin-top:20px;
}

.document-preview-title{
  margin-bottom:9px;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#666666;
}


.document-preview-a4{
  position:relative;
  display:flex;
  flex-direction:column;
  width:min(100%,430px);
  aspect-ratio:210 / 297;
  margin:0 auto;
  overflow:hidden;
  border:1px solid #cfcfcf;
  background:#ffffff;
  box-shadow:
    0 1px 2px rgba(0,0,0,.08),
    0 5px 18px rgba(0,0,0,.08);
}

.document-preview-a4.compact{
  width:min(100%,330px);
}


.document-preview-header{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 18%;
  width:100%;
  padding:7px 10px;
  border-bottom:1px dashed #dcdcdc;
  background:#fcfcfc;
  color:#999999;
  font-size:11px;
  text-align:center;
}

.document-preview-header img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}


.document-preview-body{
  position:relative;
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-height:0;
  padding:12% 10% 8%;
  color:#444444;
  text-align:center;
}

.document-preview-body > strong{
  margin-top:5%;
  font-size:13px;
  letter-spacing:.04em;
  color:#222222;
}

.document-preview-body > span{
  margin-top:6px;
  font-size:10px;
  color:#888888;
}


.document-preview-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  width:33%;
  aspect-ratio:2 / 1;
  margin-bottom:3%;
}

.document-preview-logo img{
  display:block;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}

.document-preview-logo-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  border:1px dashed #cccccc;
  color:#aaaaaa;
  font-size:9px;
  text-transform:uppercase;
}


.document-preview-lines{
  display:flex;
  flex-direction:column;
  gap:8px;
  width:86%;
  margin-top:15%;
}

.document-preview-lines i{
  display:block;
  height:5px;
  border-radius:1px;
  background:#eeeeee;
}

.document-preview-lines i:nth-child(2){
  width:92%;
}

.document-preview-lines i:nth-child(3){
  width:78%;
}

.document-preview-lines i:nth-child(4){
  width:88%;
}


.document-preview-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 12%;
  width:100%;
  padding:6px 10px;
  border-top:1px dashed #dcdcdc;
  background:#fcfcfc;
  color:#999999;
  font-size:10px;
  text-align:center;
}

.document-preview-footer img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}


/* ----------------------------------------------------------
   Liste des structures
   ---------------------------------------------------------- */

.org-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:7px;
  margin-left:auto;
}

.org-branding-summary{
  margin-top:5px;
  font-size:11px;
  line-height:1.35;
  color:#666666;
}


/* ----------------------------------------------------------
   Panneau édition
   ---------------------------------------------------------- */

.org-edit-panel{
  margin-top:18px;
}

.org-edit-panel .document-identity{
  margin-top:18px;
}


/* ----------------------------------------------------------
   Mobile
   ---------------------------------------------------------- */

@media (max-width:900px){

  .branding-upload-grid{
    grid-template-columns:1fr;
  }

  .branding-upload-title{
    min-height:auto;
  }

  .document-preview-a4{
    width:min(100%,360px);
  }

}


@media (max-width:560px){

  .document-identity{
    padding:13px;
  }

  .org-actions{
    width:100%;
    justify-content:flex-start;
    margin-top:10px;
    margin-left:0;
  }

  .document-preview-a4,
  .document-preview-a4.compact{
    width:min(100%,300px);
  }

}



/* ==========================================================
   ANSANM 0.16.1
   Editeur de structure en fenêtre large
   ========================================================== */

#orgEditPanel{
  position:fixed !important;
  top:50% !important;
  left:50% !important;

  width:min(920px,calc(100vw - 40px)) !important;
  max-height:calc(100vh - 40px) !important;

  margin:0 !important;
  padding:24px !important;

  transform:translate(-50%,-50%);

  overflow-y:auto;
  overscroll-behavior:contain;

  z-index:10000;

  background:#ffffff !important;

  border:1px solid #d7d7d7 !important;
  border-radius:6px !important;

  box-shadow:
    0 0 0 9999px rgba(0,0,0,.32),
    0 24px 70px rgba(0,0,0,.22) !important;
}


#orgEditPanel .edit-title-row{
  position:sticky;
  top:-24px;

  z-index:3;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;

  margin:-24px -24px 22px;
  padding:18px 24px;

  background:#ffffff;

  border-bottom:1px solid #e3e3e3;
}


#orgEditPanel .edit-title-row h3{
  margin:0;
  font-size:20px;
}


#orgEditForm{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 20px;
}


#orgEditForm > label{
  margin:0;
}


#orgEditForm > label:first-of-type{
  grid-column:1 / -1;
}


#orgEditForm > label:last-of-type{
  grid-column:1 / -1;
}


#orgEditForm > label input{
  width:100%;
}


#orgEditForm > .document-identity{
  grid-column:1 / -1;

  margin:8px 0 0;
  padding:20px;
}


#orgEditForm > .edit-actions{
  grid-column:1 / -1;

  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;

  margin-top:4px;
  padding-top:18px;

  border-top:1px solid #e4e4e4;
}


/* ----------------------------------------------------------
   Identité documentaire
   ---------------------------------------------------------- */

#orgEditPanel .branding-upload-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}


#orgEditPanel .branding-upload-card{
  min-height:190px;
  padding:16px;

  border:1px solid #d8d8d8;
  background:#fff;
}


#orgEditPanel .branding-upload-title{
  min-height:auto;

  font-size:15px;
  line-height:1.35;
}


#orgEditPanel .branding-upload-card input[type="file"]{
  margin-top:4px;
}


#orgEditPanel .branding-upload-card .secondary{
  align-self:flex-start;
}


#orgEditPanel .document-preview-wrap{
  margin-top:26px;
  padding-top:20px;

  border-top:1px solid #e0e0e0;
}


#orgEditPanel .document-preview-title{
  margin-bottom:14px;

  text-align:center;

  font-size:12px;
  letter-spacing:.06em;
}


#orgEditPanel .document-preview-a4{
  width:300px;
  max-width:100%;

  margin:0 auto 4px;
}


/* ----------------------------------------------------------
   Petit écran
   ---------------------------------------------------------- */

@media (max-width:900px){

  #orgEditPanel{
    width:calc(100vw - 24px) !important;
    max-height:calc(100vh - 24px) !important;

    padding:18px !important;
  }

  #orgEditPanel .edit-title-row{
    top:-18px;

    margin:-18px -18px 18px;
    padding:15px 18px;
  }

  #orgEditForm{
    grid-template-columns:1fr;
  }

  #orgEditForm > label,
  #orgEditForm > label:first-of-type,
  #orgEditForm > label:last-of-type,
  #orgEditForm > .document-identity,
  #orgEditForm > .edit-actions{
    grid-column:1;
  }

  #orgEditPanel .branding-upload-grid{
    grid-template-columns:1fr;
  }

  #orgEditPanel .branding-upload-card{
    min-height:auto;
  }

}


@media (max-width:560px){

  #orgEditPanel{
    width:calc(100vw - 12px) !important;
    max-height:calc(100vh - 12px) !important;

    padding:14px !important;
  }

  #orgEditPanel .edit-title-row{
    top:-14px;

    margin:-14px -14px 16px;
    padding:13px 14px;
  }

  #orgEditForm > .document-identity{
    padding:14px;
  }

  #orgEditForm > .edit-actions{
    flex-direction:column;
    align-items:stretch;
  }

  #orgEditForm > .edit-actions button{
    width:100%;
  }

}



/* ==========================================================
   ANSANM 0.16.2
   Création structure en fenêtre large
   ========================================================== */

#orgForm{
  position:fixed !important;
  top:50% !important;
  left:50% !important;

  width:min(920px,calc(100vw - 40px)) !important;
  max-height:calc(100vh - 40px) !important;

  margin:0 !important;
  padding:24px !important;

  transform:translate(-50%,-50%);

  overflow-y:auto;
  overscroll-behavior:contain;

  z-index:10000;

  background:#ffffff !important;

  border:1px solid #d7d7d7 !important;
  border-radius:6px !important;

  box-shadow:
    0 0 0 9999px rgba(0,0,0,.32),
    0 24px 70px rgba(0,0,0,.22) !important;

  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 20px;
}


#orgForm .org-create-title-row{
  position:sticky;
  top:-24px;

  z-index:3;

  grid-column:1 / -1;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;

  margin:-24px -24px 6px;
  padding:18px 24px;

  background:#ffffff;

  border-bottom:1px solid #e3e3e3;
}


#orgForm .org-create-title-row h3{
  margin:0;
  font-size:20px;
}


#orgForm > label{
  margin:0;
}


#orgForm > label:first-of-type,
#orgForm > label:last-of-type{
  grid-column:1 / -1;
}


#orgForm > label input{
  width:100%;
}


#orgForm > .document-identity{
  grid-column:1 / -1;

  margin:8px 0 0;
  padding:20px;
}


#orgForm > button[type="submit"]{
  grid-column:1 / -1;

  justify-self:end;

  margin-top:4px;
}


#orgForm .branding-upload-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}


#orgForm .branding-upload-card{
  min-height:190px;
  padding:16px;

  border:1px solid #d8d8d8;
  background:#ffffff;
}


#orgForm .branding-upload-title{
  min-height:auto;

  font-size:15px;
  line-height:1.35;
}


#orgForm .document-preview-wrap{
  margin-top:26px;
  padding-top:20px;

  border-top:1px solid #e0e0e0;
}


#orgForm .document-preview-title{
  margin-bottom:14px;
  text-align:center;
}


#orgForm .document-preview-a4{
  width:300px;
  max-width:100%;

  margin:0 auto;
}


@media (max-width:900px){

  #orgForm{
    width:calc(100vw - 24px) !important;
    max-height:calc(100vh - 24px) !important;

    padding:18px !important;

    grid-template-columns:1fr;
  }

  #orgForm .org-create-title-row{
    top:-18px;

    margin:-18px -18px 4px;
    padding:15px 18px;
  }

  #orgForm > label,
  #orgForm > label:first-of-type,
  #orgForm > label:last-of-type,
  #orgForm > .document-identity,
  #orgForm > button[type="submit"]{
    grid-column:1;
  }

  #orgForm .branding-upload-grid{
    grid-template-columns:1fr;
  }

  #orgForm .branding-upload-card{
    min-height:auto;
  }

}


@media (max-width:560px){

  #orgForm{
    width:calc(100vw - 12px) !important;
    max-height:calc(100vh - 12px) !important;

    padding:14px !important;
  }

  #orgForm .org-create-title-row{
    top:-14px;

    margin:-14px -14px 4px;
    padding:13px 14px;
  }

  #orgForm > .document-identity{
    padding:14px;
  }

  #orgForm > button[type="submit"]{
    width:100%;
  }

}



/* ==========================================================
   ANSANM 0.16.3
   Priorité absolue aux fenêtres Structure
   ========================================================== */

.org-modal-host-active{
  position:relative !important;
  z-index:20000 !important;
}


.org-modal-host-active #orgForm,
.org-modal-host-active #orgEditPanel{
  z-index:20001 !important;
}


body.org-structure-modal-open{
  overflow:hidden;
}


/*
 * Les autres cartes du dashboard restent sous le voile de
 * la fenêtre Structure, y compris "Nouvelle réunion".
 */
body.org-structure-modal-open
.grid.dashboard > article.card:not(.org-modal-host-active){
  position:relative;
  z-index:0 !important;
}


body.org-structure-modal-open
#meetingTypeStep,
body.org-structure-modal-open
#meetingForm{
  z-index:0 !important;
}



/* ==========================================================
   ANSANM 0.16.4
   Aperçu fidèle : bandeaux bord à bord
   ========================================================== */

/*
 * Lorsqu'une image est renseignée, le bandeau ne réserve
 * plus une zone artificielle : sa hauteur suit exactement
 * les proportions de l'image.
 */
.document-preview-header:has(img:not(.hidden)),
.document-preview-footer:has(img:not(.hidden)){
  flex:0 0 auto !important;

  width:100% !important;

  padding:0 !important;
  margin:0 !important;

  background:#fff !important;

  border:0 !important;
}


.document-preview-header:has(img:not(.hidden)){
  align-items:flex-start !important;
}


.document-preview-footer:has(img:not(.hidden)){
  align-items:flex-end !important;

  margin-top:auto !important;
}


/*
 * Pleine largeur sans déformation.
 */
.document-preview-header img:not(.hidden),
.document-preview-footer img:not(.hidden){
  display:block !important;

  width:100% !important;
  height:auto !important;

  max-width:none !important;
  max-height:none !important;

  margin:0 !important;
  padding:0 !important;

  object-fit:contain !important;
}


/*
 * Aucun espace blanc entre le bord de la feuille
 * et l'image importée.
 */
.document-preview-a4{
  padding:0 !important;
}



/* ==========================================================
   ANSANM 0.18.0 — modalité et invitations
   ========================================================== */

.form-span-2{
  grid-column:1 / -1;
}


.meeting-mode-section{
  margin:4px 0 2px;
}


.meeting-mode-heading{
  display:flex;
  flex-direction:column;
  gap:5px;

  margin-bottom:12px;
}


.meeting-mode-heading strong{
  font-size:15px;
}


.meeting-mode-heading span{
  color:#666;
  font-size:13px;
  line-height:1.4;
}


.meeting-mode-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}


.meeting-mode-card{
  position:relative;

  margin:0;
  cursor:pointer;
}


.meeting-mode-card > input{
  position:absolute;

  width:1px;
  height:1px;

  opacity:0;
  pointer-events:none;
}


.meeting-mode-card-body{
  display:flex;
  flex-direction:column;
  gap:7px;

  min-height:135px;
  height:100%;

  padding:17px;

  background:#fff;

  border:1px solid #cfcfcf;
  border-radius:2px;

  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    background .15s ease;
}


.meeting-mode-card:hover .meeting-mode-card-body{
  border-color:#000091;
}


.meeting-mode-card.selected .meeting-mode-card-body{
  background:#f5f5ff;

  border:2px solid #000091;

  box-shadow:inset 0 0 0 1px #fff;
}


.meeting-mode-icon{
  display:grid;
  place-items:center;

  width:34px;
  height:34px;

  margin-bottom:3px;

  background:#ededff;
  color:#000091;

  border-radius:50%;

  font-size:18px;
  font-weight:700;
}


.meeting-mode-card-body strong{
  font-size:15px;
}


.meeting-mode-card-body small{
  color:#666;

  font-size:12px;
  line-height:1.4;
}


#meetingForm textarea{
  width:100%;
  min-height:74px;

  resize:vertical;
}


.field-help{
  display:block;

  margin-top:6px;

  color:#666;

  font-size:12px;
  line-height:1.4;
}


.invitation-emails-field{
  margin-top:4px;
  padding:16px;

  background:#fafafa;

  border:1px solid #ddd;
}


.invitation-emails-field textarea{
  margin-top:7px;
  background:#fff;
}


@media(max-width:760px){

  .meeting-mode-grid{
    grid-template-columns:1fr;
  }

  .meeting-mode-card-body{
    min-height:auto;
  }

  .form-span-2{
    grid-column:1;
  }

}

