/* Aqua Manager Modal V2 - common shell */
:root{
  --zoa-modal-duration:220ms;
  --zoa-modal-radius:22px;
  --zoa-modal-overlay:rgba(2,18,35,.62);
}

.zoa-modal-v2{
  position:fixed!important;
  inset:0!important;
  z-index:var(--zoa-modal-z,21000)!important;
  display:none;
  place-items:center;
  padding:24px;
  margin:0!important;
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  max-height:none!important;
  border:0!important;
  background:transparent!important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity var(--zoa-modal-duration) ease, visibility var(--zoa-modal-duration) ease;
  box-sizing:border-box;
}

.zoa-modal-v2.is-mounted{
  display:grid!important;
  visibility:visible;
}

.zoa-modal-v2.is-open{
  opacity:1;
  pointer-events:auto;
}

.zoa-modal-v2__overlay,
.zoa-modal-v2 > .modal-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  background:
    radial-gradient(900px 460px at 50% 12%,rgba(10,88,119,.20),transparent 68%),
    var(--zoa-modal-overlay)!important;
  backdrop-filter:blur(8px) saturate(.92);
  -webkit-backdrop-filter:blur(8px) saturate(.92);
  opacity:0;
  transition:opacity var(--zoa-modal-duration) ease;
  cursor:default;
}

.zoa-modal-v2.is-open > .zoa-modal-v2__overlay,
.zoa-modal-v2.is-open > .modal-overlay{
  opacity:1;
}

.zoa-modal-v2__dialog{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  flex-direction:column;
  width:min(94vw,760px)!important;
  max-width:760px!important;
  max-height:min(88dvh,860px)!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  color:var(--text,#17324f)!important;
  background:
    radial-gradient(780px 230px at 7% -16%,rgba(33,200,191,.11),transparent 58%),
    linear-gradient(180deg,var(--surface,#fff),color-mix(in srgb,var(--surface,#fff) 96%,#e7f7f7))!important;
  border:1px solid color-mix(in srgb,var(--brand,#0aa7a7) 22%,rgba(92,129,157,.24))!important;
  border-radius:var(--zoa-modal-radius)!important;
  box-shadow:0 28px 90px rgba(1,24,45,.34),0 8px 24px rgba(1,24,45,.16)!important;
  opacity:0!important;
  transform:translateY(18px) scale(.975)!important;
  transform-origin:center center;
  transition:
    transform var(--zoa-modal-duration) cubic-bezier(.2,.82,.2,1),
    opacity var(--zoa-modal-duration) ease!important;
  box-sizing:border-box;
}

.zoa-modal-v2.is-open .zoa-modal-v2__dialog{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
}

.zoa-modal-v2--compact .zoa-modal-v2__dialog{
  width:min(94vw,640px)!important;
  max-width:640px!important;
}

.zoa-modal-v2--wide .zoa-modal-v2__dialog{
  width:min(95vw,980px)!important;
  max-width:980px!important;
}

.zoa-modal-v2--xl .zoa-modal-v2__dialog{
  width:min(96vw,1180px)!important;
  max-width:1180px!important;
  max-height:min(90dvh,900px)!important;
}

.zoa-modal-v2__header,
.zoa-modal-v2 .modal-title.zoa-modal-v2__header{
  flex:0 0 auto;
  min-height:66px;
  display:flex!important;
  align-items:center;
  gap:12px;
  padding:14px 18px!important;
  margin:0!important;
  color:var(--text,#17324f)!important;
  font-size:18px;
  font-weight:900;
  line-height:1.2;
  background:
    radial-gradient(520px 120px at 0% 0%,rgba(46,211,199,.14),transparent 70%),
    linear-gradient(180deg,color-mix(in srgb,var(--surface,#fff) 96%,#eefcfc),var(--surface,#fff));
  border-bottom:1px solid color-mix(in srgb,var(--brand,#0aa7a7) 14%,rgba(92,129,157,.22));
}

.zoa-modal-v2__body,
.zoa-modal-v2 .modal-body.zoa-modal-v2__body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto!important;
  overscroll-behavior:contain;
  padding:18px!important;
  scrollbar-width:thin;
  scrollbar-color:rgba(13,112,130,.38) transparent;
}

.zoa-modal-v2__footer,
.zoa-modal-v2 .modal-actions.zoa-modal-v2__footer{
  flex:0 0 auto;
  display:flex!important;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  min-height:64px;
  padding:12px 18px!important;
  margin:0!important;
  background:
    linear-gradient(0deg,color-mix(in srgb,var(--surface,#fff) 96%,#e9f8f8),var(--surface,#fff));
  border-top:1px solid color-mix(in srgb,var(--brand,#0aa7a7) 13%,rgba(92,129,157,.22));
}

.zoa-modal-v2 .btn.cancel,
.zoa-modal-v2 [data-zoa-modal-close].btn{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border-radius:12px!important;
  padding:8px 14px!important;
}

/* Action modal */
#zoa-action-modal.zoa-modal-v2 .zoa-modal-v2__dialog{
  max-height:min(86dvh,760px)!important;
}
#zoa-action-modal.zoa-modal-v2 .modal-title{
  justify-content:flex-start;
}
#zoa-action-modal.zoa-modal-v2 #zoa-element-chip{
  margin-left:auto;
}

/* Relations + organics */
:is(#zoaRelationsDialog,#zoaOrganicsDialog).zoa-modal-v2 .zoa-modal-v2__dialog{
  width:min(96vw,1180px)!important;
  max-width:1180px!important;
  max-height:min(90dvh,900px)!important;
  opacity:0!important;
  transform:translateY(18px) scale(.975)!important;
}
:is(#zoaRelationsDialog,#zoaOrganicsDialog).zoa-modal-v2.is-open .zoa-modal-v2__dialog{
  opacity:1!important;
  transform:none!important;
}
:is(#zoaRelationsDialog,#zoaOrganicsDialog).zoa-modal-v2 .modal-body{
  max-height:none!important;
}
:is(#zoaRelationsDialog,#zoaOrganicsDialog).zoa-modal-v2 .card{
  border-color:color-mix(in srgb,var(--brand,#0aa7a7) 12%,rgba(91,124,151,.22));
  box-shadow:0 8px 22px rgba(13,55,82,.06);
}

/* Knowledge */
#zoa-knowledge-modal.zoa-modal-v2{
  display:none!important;
  justify-content:stretch!important;
  overflow:hidden!important;
  background:transparent!important;
}
#zoa-knowledge-modal.zoa-modal-v2.is-mounted{
  display:grid!important;
}
#zoa-knowledge-modal.zoa-modal-v2 .zoa-modal-v2__dialog{
  width:min(96vw,1080px)!important;
  max-width:1080px!important;
  max-height:min(88dvh,860px)!important;
  overflow:auto!important;
  opacity:0!important;
  transform:translateY(18px) scale(.975)!important;
  border-radius:22px!important;
  box-shadow:0 28px 90px rgba(1,24,45,.34)!important;
}
#zoa-knowledge-modal.zoa-modal-v2.is-open .zoa-modal-v2__dialog{
  opacity:1!important;
  transform:none!important;
}
#zoa-knowledge-modal.zoa-modal-v2 .zoa-modal__close{
  top:12px;
  right:12px;
  width:38px;
  height:38px;
  border:1px solid color-mix(in srgb,var(--brand,#0aa7a7) 18%,rgba(91,124,151,.24));
  border-radius:12px;
  background:color-mix(in srgb,var(--surface,#fff) 92%,transparent);
  box-shadow:0 6px 18px rgba(8,45,72,.08);
}

/* Native edit dialog migrated to the common shell */
#zoaEditValueDialog.zoa-modal-v2{
  padding:24px!important;
}
#zoaEditValueDialog.zoa-modal-v2 .zoa-modal-v2__dialog{
  width:min(94vw,560px)!important;
  max-width:560px!important;
}

html[data-theme="dark"] .zoa-modal-v2{
  --zoa-modal-overlay:rgba(0,8,18,.76);
}
html[data-theme="dark"] .zoa-modal-v2__dialog{
  color:var(--text,#ecf8fa)!important;
  background:
    radial-gradient(720px 220px at 8% -18%,rgba(56,220,205,.12),transparent 58%),
    linear-gradient(180deg,#0b2843,#0a2138)!important;
  border-color:rgba(107,224,211,.22)!important;
  box-shadow:0 30px 100px rgba(0,0,0,.50)!important;
}
html[data-theme="dark"] .zoa-modal-v2__header,
html[data-theme="dark"] .zoa-modal-v2__footer{
  color:var(--text,#ecf8fa)!important;
  background:linear-gradient(180deg,rgba(13,58,87,.98),rgba(9,40,65,.98));
  border-color:rgba(107,224,211,.16);
}

@media (max-width:760px){
  .zoa-modal-v2{
    padding:10px!important;
    align-items:center;
    justify-items:center;
  }
  .zoa-modal-v2__dialog,
  .zoa-modal-v2--compact .zoa-modal-v2__dialog,
  .zoa-modal-v2--wide .zoa-modal-v2__dialog,
  .zoa-modal-v2--xl .zoa-modal-v2__dialog{
    width:100%!important;
    max-width:none!important;
    max-height:min(92dvh,920px)!important;
    border-radius:20px!important;
    transform:translateY(26px) scale(.99)!important;
  }
  .zoa-modal-v2.is-open .zoa-modal-v2__dialog{
    transform:none!important;
  }
  .zoa-modal-v2__header,
  .zoa-modal-v2 .modal-title.zoa-modal-v2__header{
    min-height:58px;
    padding:12px 14px!important;
    font-size:16px;
  }
  .zoa-modal-v2__body,
  .zoa-modal-v2 .modal-body.zoa-modal-v2__body{
    padding:14px!important;
  }
  .zoa-modal-v2__footer,
  .zoa-modal-v2 .modal-actions.zoa-modal-v2__footer{
    min-height:58px;
    padding:10px 14px!important;
  }
  #zoa-knowledge-modal.zoa-modal-v2 .zoa-modal-v2__dialog{
    width:100%!important;
    max-height:92dvh!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .zoa-modal-v2,
  .zoa-modal-v2__overlay,
  .zoa-modal-v2__dialog{
    transition-duration:1ms!important;
    animation-duration:1ms!important;
  }
}


/* V2.1.1 initial hidden-state guard
   Une modale déclarée aria-hidden=true ne doit jamais pouvoir afficher son
   overlay, même si une règle legacy .modal/.zoa-modal entre en conflit. */
.zoa-modal-v2[aria-hidden="true"]{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

.zoa-modal-v2[aria-hidden="true"] > .zoa-modal-v2__overlay,
.zoa-modal-v2[aria-hidden="true"] > .modal-overlay{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.zoa-modal-v2:not(.is-open) > .zoa-modal-v2__overlay,
.zoa-modal-v2:not(.is-open) > .modal-overlay{
  pointer-events:none!important;
}

/* ==========================================================================
   Modal V2 - V1.0.3 initial render hard guard
   Une modale fermee ne doit jamais couvrir la page avant initialisation JS.
   Supporte l'ancien .modal-overlay encore present dans certaines modales.
   ========================================================================== */

.zoa-modal-v2.hidden{
  display:none!important;
}

.zoa-modal-v2[aria-hidden="true"]:not(.is-open):not(.is-mounted){
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.zoa-modal-v2:not(.is-open) > .zoa-modal-v2__overlay,
.zoa-modal-v2:not(.is-open) > .modal-overlay,
.zoa-modal-v2[aria-hidden="true"] > .zoa-modal-v2__overlay,
.zoa-modal-v2[aria-hidden="true"] > .modal-overlay{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.zoa-modal-v2.is-open[aria-hidden="false"] > .zoa-modal-v2__overlay,
.zoa-modal-v2.is-open[aria-hidden="false"] > .modal-overlay{
  visibility:visible!important;
  pointer-events:auto!important;
}

/* ==========================================================================
   Modal V2 - V1.0.4 overlay isolation
   ========================================================================== */

.zoa-modal-v2 > .modal-overlay{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.zoa-modal-v2 > .zoa-modal-v2__overlay{
  pointer-events:none!important;
}

.zoa-modal-v2.is-open[aria-hidden="false"] > .zoa-modal-v2__overlay{
  visibility:visible!important;
  pointer-events:auto!important;
}
