#gfpb-overlay.gfpb-overlay{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0,0,0, var(--overlay-opacity, 0.55));
  z-index: 99999;
  opacity: 0;
  transition: opacity var(--animation-duration, 300ms) ease;
}
#gfpb-overlay.gfpb-overlay.is-open{
  display: flex;
}
#gfpb-overlay.gfpb-overlay.is-visible{
  opacity: 1;
}

#gfpb-overlay .gfpb-shell{
  background: rgba(var(--popup-bg-r, 255), var(--popup-bg-g, 255), var(--popup-bg-b, 255), var(--popup-opacity, 1));
  color: var(--popup-text, #333);
  border-radius: 14px;
  width: min(780px, 100%);
  max-height: 90vh;
  overflow: auto;
  position: relative;
  padding: 18px 18px 20px;
  box-shadow: 0 10px 40px rgba(0,0,0,.25);
  transition: transform var(--animation-duration, 300ms) ease, opacity var(--animation-duration, 300ms) ease;
}

/* Animation fade */
#gfpb-overlay[data-animation="fade"] .gfpb-shell{
  opacity: 0;
}
#gfpb-overlay[data-animation="fade"].is-visible .gfpb-shell{
  opacity: 1;
}

/* Animation slide */
#gfpb-overlay[data-animation="slide"][data-position="modal"] .gfpb-shell,
#gfpb-overlay[data-animation="slide"][data-position="top"] .gfpb-shell{
  transform: translateY(-50px);
}
#gfpb-overlay[data-animation="slide"][data-position="bottom"] .gfpb-shell{
  transform: translateY(50px);
}
#gfpb-overlay[data-animation="slide"][data-position="left"] .gfpb-shell{
  transform: translateX(-50px);
}
#gfpb-overlay[data-animation="slide"][data-position="right"] .gfpb-shell{
  transform: translateX(50px);
}
#gfpb-overlay[data-animation="slide"].is-visible .gfpb-shell{
  transform: translateY(0) translateX(0);
}

/* Animation scale */
#gfpb-overlay[data-animation="scale"] .gfpb-shell{
  transform: scale(0.7);
  opacity: 0;
}
#gfpb-overlay[data-animation="scale"].is-visible .gfpb-shell{
  transform: scale(1);
  opacity: 1;
}

/* Animation none */
#gfpb-overlay[data-animation="none"]{
  transition: none;
}
#gfpb-overlay[data-animation="none"] .gfpb-shell{
  transition: none;
}
#gfpb-overlay .gfpb-close{
  position: absolute;
  top: 10px;
  right: 12px;
  border: 0;
  background: transparent;
  color: var(--popup-text, #333);
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
}
#gfpb-overlay .gfpb-title{
  margin: 0 32px 10px 0;
  font-size: 22px;
}

#gfpb-overlay[data-position="left"],
#gfpb-overlay[data-position="right"]{
  background: rgba(0,0,0,.35);
  align-items: stretch;
  justify-content: flex-start;
  padding: 0;
}
#gfpb-overlay[data-position="right"]{ justify-content: flex-end; }
#gfpb-overlay[data-position="left"] .gfpb-shell,
#gfpb-overlay[data-position="right"] .gfpb-shell{
  width: min(420px, 92vw);
  height: 100vh;
  max-height: none;
  border-radius: 0;
}

#gfpb-overlay[data-position="top"],
#gfpb-overlay[data-position="bottom"]{
  background: rgba(0,0,0,.35);
  padding: 0;
}
#gfpb-overlay[data-position="top"]{ align-items: flex-start; }
#gfpb-overlay[data-position="bottom"]{ align-items: flex-end; }

#gfpb-overlay[data-position="top"] .gfpb-shell,
#gfpb-overlay[data-position="bottom"] .gfpb-shell{
  width: 100%;
  max-width: none;
  border-radius: 0;
  max-height: 60vh;
}

/* Positions en coin (notifications) */
#gfpb-overlay[data-position="top-left"],
#gfpb-overlay[data-position="top-right"],
#gfpb-overlay[data-position="bottom-left"],
#gfpb-overlay[data-position="bottom-right"]{
  background: transparent;
  padding: 20px;
}

#gfpb-overlay[data-position="top-left"]{ align-items: flex-start; justify-content: flex-start; }
#gfpb-overlay[data-position="top-right"]{ align-items: flex-start; justify-content: flex-end; }
#gfpb-overlay[data-position="bottom-left"]{ align-items: flex-end; justify-content: flex-start; }
#gfpb-overlay[data-position="bottom-right"]{ align-items: flex-end; justify-content: flex-end; }

#gfpb-overlay[data-position="top-left"] .gfpb-shell,
#gfpb-overlay[data-position="top-right"] .gfpb-shell,
#gfpb-overlay[data-position="bottom-left"] .gfpb-shell,
#gfpb-overlay[data-position="bottom-right"] .gfpb-shell{
  width: min(420px, calc(100vw - 40px));
  max-height: min(600px, calc(100vh - 40px));
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,.3);
}

/* Animations pour les coins */
#gfpb-overlay[data-animation="slide"][data-position="top-left"] .gfpb-shell{
  transform: translate(-100px, -100px);
}
#gfpb-overlay[data-animation="slide"][data-position="top-right"] .gfpb-shell{
  transform: translate(100px, -100px);
}
#gfpb-overlay[data-animation="slide"][data-position="bottom-left"] .gfpb-shell{
  transform: translate(-100px, 100px);
}
#gfpb-overlay[data-animation="slide"][data-position="bottom-right"] .gfpb-shell{
  transform: translate(100px, 100px);
}

/* Layout mixte */
#gfpb-overlay .gfpb-layout{
  display: grid;
  gap: 24px;
}
#gfpb-overlay .gfpb-layout[data-layout^="col-"]{
  grid-template-columns: 1fr 1fr;
}
#gfpb-overlay .gfpb-layout[data-layout="col-text-right"] .gfpb-layout-text,
#gfpb-overlay .gfpb-layout[data-layout="row-text-bottom"] .gfpb-layout-text{
  order: 2;
}
#gfpb-overlay .gfpb-layout[data-layout="col-text-right"] .gfpb-layout-form,
#gfpb-overlay .gfpb-layout[data-layout="row-text-bottom"] .gfpb-layout-form{
  order: 1;
}
@media (max-width: 640px){
  #gfpb-overlay .gfpb-layout[data-layout^="col-"]{
    grid-template-columns: 1fr;
  }
}
