/* ===== Re-Save floating contact panels ===== */
.resave-fcp {
  --fcp-accent: #FA5A00;
  --fcp-blue: #0D6EFD;
  --fcp-bg: rgba(5, 15, 30, .92);
  --fcp-bg-2: rgba(11, 28, 51, .86);
  --fcp-border: rgba(125, 159, 205, .24);
  --fcp-text: #fff;
  --fcp-muted: #9fc1ff;
  --fcp-icon-size: 42px;
  --fcp-card-gap: 12px;
  --fcp-card-pad-y: 13px;
  --fcp-card-pad-x: 15px;
  --fcp-radius: 16px;
  --fcp-offset: 18px;
  position: fixed;
  z-index: 999;
  width: 240px;
  color: var(--fcp-text);
  pointer-events: none;
}

.resave-fcp__fab,
.resave-fcp__cards,
.resave-fcp__card {
  pointer-events: auto;
}

.resave-fcp__fab {
  display: none;
  align-items: center;
  justify-content: center;
  width: calc(var(--fcp-icon-size) + 14px);
  height: calc(var(--fcp-icon-size) + 14px);
  border: 0;
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(135deg, var(--fcp-accent), #ff8a2b);
  box-shadow: 0 16px 36px rgba(0, 0, 0, .42), 0 0 28px rgba(250, 90, 0, .24);
}

.resave-fcp__fab svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
  fill: none;
}

.resave-fcp__cards {
  display: flex;
  flex-direction: column;
  gap: var(--fcp-card-gap);
}

.resave-fcp__card {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: var(--fcp-card-pad-y) var(--fcp-card-pad-x);
  border: 1px solid var(--fcp-border);
  border-radius: var(--fcp-radius);
  color: var(--fcp-text);
  text-decoration: none;
  background: linear-gradient(150deg, var(--fcp-bg), var(--fcp-bg-2));
  box-shadow: 0 16px 38px rgba(0, 0, 0, .34);
  transition: transform .24s ease-out, box-shadow .24s ease-out, border-color .24s ease-out, background .24s ease-out;
}

.resave-fcp__card:hover {
  border-color: color-mix(in srgb, var(--fcp-accent) 74%, white);
  transform: translateY(-2px);
  box-shadow: 0 22px 48px rgba(0, 0, 0, .44), 0 0 30px rgba(250, 90, 0, .18);
}

.resave-fcp__icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: var(--fcp-icon-size);
  height: var(--fcp-icon-size);
  border-radius: 12px;
  color: var(--fcp-blue);
  background: rgba(13, 110, 253, .15);
}

.resave-fcp__card--tg .resave-fcp__icon {
  color: #37aee2;
  background: rgba(55, 174, 226, .16);
}

.resave-fcp__icon svg {
  width: calc(var(--fcp-icon-size) * .52);
  height: calc(var(--fcp-icon-size) * .52);
  stroke: currentColor;
  fill: none;
}

.resave-fcp__text {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.resave-fcp__label {
  color: var(--fcp-muted);
  font-size: .74rem;
  font-weight: 800;
  line-height: 1.1;
}

.resave-fcp__value {
  overflow: hidden;
  color: var(--fcp-text);
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resave-fcp__cta {
  display: none;
  margin-left: auto;
  color: var(--fcp-accent);
  font-size: .78rem;
  font-weight: 900;
}

/* Desktop positions */
.resave-fcp--pos-desktop-left-center { left: var(--fcp-offset); top: 50%; transform: translateY(-50%); }
.resave-fcp--pos-desktop-right-center { right: var(--fcp-offset); top: 50%; transform: translateY(-50%); }
.resave-fcp--pos-desktop-bottom-left { left: var(--fcp-offset); bottom: var(--fcp-offset); }
.resave-fcp--pos-desktop-bottom-center { left: 50%; bottom: var(--fcp-offset); transform: translateX(-50%); }
.resave-fcp--pos-desktop-bottom-right { right: var(--fcp-offset); bottom: var(--fcp-offset); }
.resave-fcp--pos-desktop-top-left { left: var(--fcp-offset); top: calc(var(--fcp-offset) + 72px); }
.resave-fcp--pos-desktop-top-center { left: 50%; top: calc(var(--fcp-offset) + 72px); transform: translateX(-50%); }
.resave-fcp--pos-desktop-top-right { right: var(--fcp-offset); top: calc(var(--fcp-offset) + 72px); }

/* Sizes */
.resave-fcp--size-desktop-small { --fcp-icon-size: 34px; --fcp-card-pad-y: 10px; --fcp-card-pad-x: 12px; width: 210px; }
.resave-fcp--size-desktop-medium { --fcp-icon-size: 42px; --fcp-card-pad-y: 13px; --fcp-card-pad-x: 15px; width: 240px; }
.resave-fcp--size-desktop-large { --fcp-icon-size: 52px; --fcp-card-pad-y: 16px; --fcp-card-pad-x: 18px; width: 280px; }

/* Layout styles */
.resave-fcp--layout-classic-vertical .resave-fcp__cards,
.resave-fcp--layout-expanded .resave-fcp__cards,
.resave-fcp--layout-glass-panel .resave-fcp__cards,
.resave-fcp--layout-neon-tech .resave-fcp__cards {
  flex-direction: column;
}

.resave-fcp--layout-horizontal,
.resave-fcp--layout-floating-bar,
.resave-fcp--layout-bottom-dock,
.resave-fcp--layout-premium-bar {
  width: auto;
}

.resave-fcp--layout-horizontal .resave-fcp__cards,
.resave-fcp--layout-floating-bar .resave-fcp__cards,
.resave-fcp--layout-bottom-dock .resave-fcp__cards,
.resave-fcp--layout-premium-bar .resave-fcp__cards {
  flex-direction: row;
  align-items: center;
}

.resave-fcp--layout-bottom-dock .resave-fcp__cards,
.resave-fcp--layout-floating-bar .resave-fcp__cards {
  padding: 8px;
  border: 1px solid var(--fcp-border);
  border-radius: 20px;
  background: rgba(6, 17, 32, .88);
  backdrop-filter: blur(14px);
}

.resave-fcp--layout-bottom-dock .resave-fcp__card,
.resave-fcp--layout-floating-bar .resave-fcp__card {
  flex-direction: column;
  min-width: 86px;
  gap: 5px;
  padding: 9px 12px;
  border: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
}

.resave-fcp--layout-bottom-dock .resave-fcp__value,
.resave-fcp--layout-floating-bar .resave-fcp__value {
  display: none;
}

.resave-fcp--layout-compact,
.resave-fcp--layout-icon-only,
.resave-fcp--layout-compact-icons {
  width: auto;
}

.resave-fcp--layout-compact .resave-fcp__card,
.resave-fcp--layout-icon-only .resave-fcp__card,
.resave-fcp--layout-compact-icons .resave-fcp__card {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.resave-fcp--layout-compact .resave-fcp__text,
.resave-fcp--layout-icon-only .resave-fcp__text,
.resave-fcp--layout-compact-icons .resave-fcp__text {
  display: none;
}

.resave-fcp--layout-compact .resave-fcp__icon,
.resave-fcp--layout-icon-only .resave-fcp__icon,
.resave-fcp--layout-compact-icons .resave-fcp__icon {
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, var(--fcp-accent), #ff8a2b);
  box-shadow: 0 14px 32px rgba(0, 0, 0, .36);
}

.resave-fcp--layout-icon-text .resave-fcp__card {
  border-radius: 999px;
  padding: 8px 18px 8px 8px;
}

.resave-fcp--layout-expanded .resave-fcp__cta,
.resave-fcp--layout-premium-bar .resave-fcp__cta {
  display: inline-flex;
}

.resave-fcp--layout-premium-bar .resave-fcp__cards {
  padding: 10px;
  border: 1px solid var(--fcp-border);
  border-radius: 18px;
  background: rgba(5, 15, 30, .9);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .4);
}

.resave-fcp--layout-bubble-menu,
.resave-fcp--layout-floating-bubble {
  width: auto;
}

.resave-fcp--layout-bubble-menu .resave-fcp__fab,
.resave-fcp--layout-floating-bubble .resave-fcp__fab {
  display: flex;
}

.resave-fcp--layout-bubble-menu .resave-fcp__cards,
.resave-fcp--layout-floating-bubble .resave-fcp__cards {
  position: absolute;
  right: 0;
  bottom: calc(var(--fcp-icon-size) + 26px);
  display: none;
  width: 230px;
}

.resave-fcp--layout-bubble-menu.is-open .resave-fcp__cards,
.resave-fcp--layout-floating-bubble.is-open .resave-fcp__cards {
  display: flex;
}

.resave-fcp--pos-desktop-left-center.resave-fcp--layout-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-bottom-left.resave-fcp--layout-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-left.resave-fcp--layout-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-left-center.resave-fcp--layout-floating-bubble .resave-fcp__cards,
.resave-fcp--pos-desktop-bottom-left.resave-fcp--layout-floating-bubble .resave-fcp__cards,
.resave-fcp--pos-desktop-top-left.resave-fcp--layout-floating-bubble .resave-fcp__cards {
  right: auto;
  left: 0;
}

.resave-fcp--pos-desktop-top-left.resave-fcp--layout-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-center.resave-fcp--layout-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-right.resave-fcp--layout-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-left.resave-fcp--layout-floating-bubble .resave-fcp__cards,
.resave-fcp--pos-desktop-top-center.resave-fcp--layout-floating-bubble .resave-fcp__cards,
.resave-fcp--pos-desktop-top-right.resave-fcp--layout-floating-bubble .resave-fcp__cards {
  top: calc(var(--fcp-icon-size) + 26px);
  bottom: auto;
}

.resave-fcp--layout-glass-panel .resave-fcp__cards {
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 20px;
  background: rgba(255, 255, 255, .07);
  backdrop-filter: blur(18px) saturate(145%);
}

.resave-fcp--layout-glass-panel .resave-fcp__card {
  background: rgba(255, 255, 255, .08);
}

.resave-fcp--layout-neon-tech .resave-fcp__card {
  border-color: rgba(13, 110, 253, .52);
  background: #050912;
  box-shadow: 0 0 20px rgba(13, 110, 253, .22), inset 0 0 18px rgba(13, 110, 253, .08);
}

/* Visual themes */
.resave-fcp--theme-orange-dark { --fcp-bg: rgba(14, 17, 25, .94); --fcp-bg-2: rgba(31, 21, 15, .9); --fcp-muted: #ffb280; }
.resave-fcp--theme-orange-light { --fcp-bg: rgba(255, 247, 241, .96); --fcp-bg-2: rgba(255, 255, 255, .94); --fcp-border: rgba(250, 90, 0, .24); --fcp-text: #18202c; --fcp-muted: #9a4a18; }
.resave-fcp--theme-black-orange { --fcp-bg: rgba(3, 5, 10, .96); --fcp-bg-2: rgba(18, 13, 10, .92); --fcp-muted: #ff9a52; }
.resave-fcp--theme-black-gold { --fcp-accent: #d6a84f; --fcp-bg: rgba(4, 5, 9, .96); --fcp-bg-2: rgba(27, 22, 13, .92); --fcp-muted: #f4d58a; }
.resave-fcp--theme-minimal { --fcp-bg: rgba(8, 18, 32, .9); --fcp-bg-2: rgba(8, 18, 32, .82); --fcp-border: rgba(255, 255, 255, .14); --fcp-muted: #b8c7dc; }
.resave-fcp--theme-glassmorphism { --fcp-bg: rgba(255, 255, 255, .08); --fcp-bg-2: rgba(255, 255, 255, .05); --fcp-border: rgba(255, 255, 255, .28); --fcp-muted: #d8e8ff; }
.resave-fcp--theme-neon { --fcp-bg: rgba(2, 6, 18, .98); --fcp-bg-2: rgba(7, 12, 28, .94); --fcp-border: rgba(13, 110, 253, .55); --fcp-muted: #7fe3ff; }
.resave-fcp--theme-premium-dark { --fcp-bg: rgba(5, 15, 30, .94); --fcp-bg-2: rgba(10, 25, 45, .9); --fcp-muted: #9fc1ff; }
.resave-fcp--theme-clean-light { --fcp-bg: rgba(255, 255, 255, .96); --fcp-bg-2: rgba(245, 249, 255, .94); --fcp-border: rgba(13, 110, 253, .2); --fcp-text: #102033; --fcp-muted: #315d98; }

.resave-fcp--theme-glassmorphism .resave-fcp__card,
.resave-fcp--theme-glassmorphism .resave-fcp__cards {
  backdrop-filter: blur(18px) saturate(145%);
}

.resave-fcp--theme-neon .resave-fcp__card {
  box-shadow: 0 0 18px rgba(13, 110, 253, .28), 0 18px 42px rgba(0, 0, 0, .44);
}

/* Tablet positions and sizes */
@media (max-width: 1100px) {
  .resave-fcp {
    --fcp-offset: 16px;
    width: auto;
  }

  .resave-fcp--size-tablet-small { --fcp-icon-size: 36px; --fcp-card-pad-y: 10px; --fcp-card-pad-x: 12px; }
  .resave-fcp--size-tablet-medium { --fcp-icon-size: 44px; --fcp-card-pad-y: 12px; --fcp-card-pad-x: 14px; }
  .resave-fcp--size-tablet-large { --fcp-icon-size: 54px; --fcp-card-pad-y: 15px; --fcp-card-pad-x: 18px; }

  .resave-fcp--pos-tablet-left-center { left: var(--fcp-offset); right: auto; top: 50%; bottom: auto; transform: translateY(-50%); }
  .resave-fcp--pos-tablet-right-center { right: var(--fcp-offset); left: auto; top: 50%; bottom: auto; transform: translateY(-50%); }
  .resave-fcp--pos-tablet-bottom-left { left: var(--fcp-offset); right: auto; top: auto; bottom: var(--fcp-offset); transform: none; }
  .resave-fcp--pos-tablet-bottom-center { left: 50%; right: auto; top: auto; bottom: var(--fcp-offset); transform: translateX(-50%); }
  .resave-fcp--pos-tablet-bottom-right { right: var(--fcp-offset); left: auto; top: auto; bottom: var(--fcp-offset); transform: none; }
  .resave-fcp--pos-tablet-top-left { left: var(--fcp-offset); right: auto; top: calc(var(--fcp-offset) + 70px); bottom: auto; transform: none; }
  .resave-fcp--pos-tablet-top-center { left: 50%; right: auto; top: calc(var(--fcp-offset) + 70px); bottom: auto; transform: translateX(-50%); }
  .resave-fcp--pos-tablet-top-right { right: var(--fcp-offset); left: auto; top: calc(var(--fcp-offset) + 70px); bottom: auto; transform: none; }

  .resave-fcp--pos-tablet-left-center .resave-fcp__cards,
  .resave-fcp--pos-tablet-bottom-left .resave-fcp__cards,
  .resave-fcp--pos-tablet-top-left .resave-fcp__cards {
    right: auto;
    left: 0;
  }

  .resave-fcp--pos-tablet-top-left .resave-fcp__cards,
  .resave-fcp--pos-tablet-top-center .resave-fcp__cards,
  .resave-fcp--pos-tablet-top-right .resave-fcp__cards {
    top: calc(var(--fcp-icon-size) + 26px);
    bottom: auto;
  }
}

/* Mobile positions and sizes */
@media (max-width: 640px) {
  .resave-fcp {
    --fcp-offset: 14px;
    max-width: calc(100vw - 28px);
  }

  .resave-fcp--size-mobile-small { --fcp-icon-size: 34px; --fcp-card-pad-y: 9px; --fcp-card-pad-x: 11px; }
  .resave-fcp--size-mobile-medium { --fcp-icon-size: 44px; --fcp-card-pad-y: 11px; --fcp-card-pad-x: 13px; }
  .resave-fcp--size-mobile-large { --fcp-icon-size: 52px; --fcp-card-pad-y: 14px; --fcp-card-pad-x: 16px; }

  .resave-fcp--pos-mobile-left-center { left: var(--fcp-offset); right: auto; top: 50%; bottom: auto; transform: translateY(-50%); }
  .resave-fcp--pos-mobile-right-center { right: var(--fcp-offset); left: auto; top: 50%; bottom: auto; transform: translateY(-50%); }
  .resave-fcp--pos-mobile-bottom-left { left: var(--fcp-offset); right: auto; top: auto; bottom: var(--fcp-offset); transform: none; }
  .resave-fcp--pos-mobile-bottom-center { left: 50%; right: auto; top: auto; bottom: var(--fcp-offset); transform: translateX(-50%); }
  .resave-fcp--pos-mobile-bottom-right { right: var(--fcp-offset); left: auto; top: auto; bottom: var(--fcp-offset); transform: none; }
  .resave-fcp--pos-mobile-top-left { left: var(--fcp-offset); right: auto; top: calc(var(--fcp-offset) + 66px); bottom: auto; transform: none; }
  .resave-fcp--pos-mobile-top-center { left: 50%; right: auto; top: calc(var(--fcp-offset) + 66px); bottom: auto; transform: translateX(-50%); }
  .resave-fcp--pos-mobile-top-right { right: var(--fcp-offset); left: auto; top: calc(var(--fcp-offset) + 66px); bottom: auto; transform: none; }

  .resave-fcp--layout-classic-vertical .resave-fcp__fab,
  .resave-fcp--layout-expanded .resave-fcp__fab,
  .resave-fcp--layout-horizontal .resave-fcp__fab,
  .resave-fcp--layout-icon-text .resave-fcp__fab,
  .resave-fcp--layout-glass-panel .resave-fcp__fab,
  .resave-fcp--layout-neon-tech .resave-fcp__fab,
  .resave-fcp--layout-premium-bar .resave-fcp__fab {
    display: flex;
  }

  .resave-fcp--layout-classic-vertical .resave-fcp__cards,
  .resave-fcp--layout-expanded .resave-fcp__cards,
  .resave-fcp--layout-horizontal .resave-fcp__cards,
  .resave-fcp--layout-icon-text .resave-fcp__cards,
  .resave-fcp--layout-glass-panel .resave-fcp__cards,
  .resave-fcp--layout-neon-tech .resave-fcp__cards,
  .resave-fcp--layout-premium-bar .resave-fcp__cards {
    position: absolute;
    right: 0;
    bottom: calc(var(--fcp-icon-size) + 26px);
    display: none;
    width: min(240px, calc(100vw - 28px));
  }

  .resave-fcp--pos-mobile-left-center .resave-fcp__cards,
  .resave-fcp--pos-mobile-bottom-left .resave-fcp__cards,
  .resave-fcp--pos-mobile-top-left .resave-fcp__cards {
    right: auto;
    left: 0;
  }

  .resave-fcp--pos-mobile-top-left .resave-fcp__cards,
  .resave-fcp--pos-mobile-top-center .resave-fcp__cards,
  .resave-fcp--pos-mobile-top-right .resave-fcp__cards {
    top: calc(var(--fcp-icon-size) + 26px);
    bottom: auto;
  }

  .resave-fcp--layout-classic-vertical.is-open .resave-fcp__cards,
  .resave-fcp--layout-expanded.is-open .resave-fcp__cards,
  .resave-fcp--layout-horizontal.is-open .resave-fcp__cards,
  .resave-fcp--layout-icon-text.is-open .resave-fcp__cards,
  .resave-fcp--layout-glass-panel.is-open .resave-fcp__cards,
  .resave-fcp--layout-neon-tech.is-open .resave-fcp__cards,
  .resave-fcp--layout-premium-bar.is-open .resave-fcp__cards {
    display: flex;
  }

  .resave-fcp--layout-bottom-dock .resave-fcp__cards,
  .resave-fcp--layout-floating-bar .resave-fcp__cards {
    width: 100%;
  }

  .resave-fcp--layout-bottom-dock .resave-fcp__card,
  .resave-fcp--layout-floating-bar .resave-fcp__card {
    flex: 1;
    min-width: 0;
  }

  .resave-fcp--m-hidden {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .resave-fcp__card,
  .resave-fcp__fab,
  .resave-fcp__icon,
  .resave-fcp__cards {
    transition: none;
  }
}

/* ===== Premium layout system v2.20 =======================================
   Style #1 is intentionally the existing Classic Vertical. Every new layout
   reuses the same markup, so switching style/theme never breaks contacts.
   ======================================================================= */
.resave-fcp--layout-classic-vertical .resave-fcp__card {
  border-radius: 17px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,0) 34%),
    linear-gradient(150deg, var(--fcp-bg), var(--fcp-bg-2));
}

.resave-fcp--layout-glass-vertical .resave-fcp__cards,
.resave-fcp--layout-cyber-tech-panel .resave-fcp__cards,
.resave-fcp--layout-side-dock-premium .resave-fcp__cards {
  padding: 12px;
  border: 1px solid var(--fcp-border);
  border-radius: 22px;
  background:
    radial-gradient(circle at 0 0, rgba(13,110,253,.22), transparent 42%),
    linear-gradient(145deg, rgba(255,255,255,.08), rgba(4,12,24,.74));
  box-shadow: 0 24px 70px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(18px) saturate(150%);
}

.resave-fcp--layout-glass-vertical .resave-fcp__card {
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.035));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.resave-fcp--layout-neon-vertical .resave-fcp__card,
.resave-fcp--layout-cyber-tech-panel .resave-fcp__card {
  border-color: rgba(13,110,253,.5);
  background:
    linear-gradient(90deg, rgba(13,110,253,.12), transparent 34%),
    linear-gradient(150deg, rgba(2,7,18,.98), rgba(7,18,35,.95));
  box-shadow: 0 0 22px rgba(13,110,253,.22), 0 18px 48px rgba(0,0,0,.48), inset 0 0 18px rgba(13,110,253,.08);
}

.resave-fcp--layout-neon-vertical .resave-fcp__card:hover,
.resave-fcp--layout-cyber-tech-panel .resave-fcp__card:hover {
  box-shadow: 0 0 34px rgba(13,110,253,.32), 0 0 28px rgba(250,90,0,.2), 0 22px 54px rgba(0,0,0,.5);
}

.resave-fcp--layout-compact-vertical {
  width: auto;
}

.resave-fcp--layout-compact-vertical .resave-fcp__card {
  width: calc(var(--fcp-icon-size) + 18px);
  min-width: 0;
  justify-content: center;
  padding: 8px;
  border-radius: 16px;
}

.resave-fcp--layout-compact-vertical .resave-fcp__text,
.resave-fcp--layout-compact-vertical .resave-fcp__cta {
  display: none;
}

.resave-fcp--layout-floating-cards {
  width: auto;
}

.resave-fcp--layout-floating-cards .resave-fcp__card {
  min-width: calc(var(--fcp-icon-size) + 18px);
  padding: 7px;
  border-color: rgba(13,110,253,.28);
  border-radius: 18px;
  background: rgba(5,15,30,.78);
  box-shadow: 0 15px 36px rgba(0,0,0,.38), 0 0 22px rgba(13,110,253,.12);
  backdrop-filter: blur(14px);
}

.resave-fcp--layout-floating-cards .resave-fcp__text,
.resave-fcp--layout-floating-cards .resave-fcp__cta {
  display: none;
}

.resave-fcp--layout-floating-pills {
  width: auto;
}

.resave-fcp--layout-floating-pills .resave-fcp__card {
  border-radius: 999px;
  padding: 8px 18px 8px 8px;
  background: linear-gradient(135deg, rgba(13,110,253,.13), rgba(250,90,0,.08)), rgba(5,15,30,.9);
}

.resave-fcp--layout-floating-bubble-menu,
.resave-fcp--layout-bottom-dock,
.resave-fcp--layout-modern-contact-bar {
  width: auto;
}

.resave-fcp--layout-floating-bubble-menu .resave-fcp__fab {
  display: flex;
  transform: translateZ(0);
  transition: transform .24s ease-out, box-shadow .24s ease-out;
}

.resave-fcp--layout-floating-bubble-menu .resave-fcp__fab:hover {
  transform: translateY(-2px) scale(1.04);
}

.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
  position: absolute;
  right: 0;
  bottom: calc(var(--fcp-icon-size) + 26px);
  display: none;
  width: 236px;
}

.resave-fcp--layout-floating-bubble-menu.is-open .resave-fcp__cards,
.resave-fcp-preview.is-open .resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
  display: flex;
}

.resave-fcp--pos-desktop-left-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-bottom-left.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-left.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
  right: auto;
  left: 0;
}

.resave-fcp--pos-desktop-top-left.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-right.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
  top: calc(var(--fcp-icon-size) + 26px);
  bottom: auto;
}

.resave-fcp--layout-bottom-dock .resave-fcp__cards,
.resave-fcp--layout-modern-contact-bar .resave-fcp__cards {
  flex-direction: row;
  align-items: center;
  padding: 9px;
  border: 1px solid var(--fcp-border);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255,255,255,.07), rgba(5,15,30,.88));
  box-shadow: 0 22px 60px rgba(0,0,0,.44), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(16px);
}

.resave-fcp--layout-bottom-dock .resave-fcp__card {
  flex-direction: column;
  min-width: 86px;
  gap: 5px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
}

.resave-fcp--layout-bottom-dock .resave-fcp__value {
  display: none;
}

.resave-fcp--layout-side-dock-premium .resave-fcp__card {
  border-color: rgba(255,255,255,.11);
  background: linear-gradient(135deg, rgba(13,110,253,.11), rgba(250,90,0,.07)), rgba(4,13,27,.9);
}

.resave-fcp--layout-side-dock-premium .resave-fcp__cta,
.resave-fcp--layout-modern-contact-bar .resave-fcp__cta,
.resave-fcp--layout-cyber-tech-panel .resave-fcp__cta {
  display: inline-flex;
}

.resave-fcp--layout-modern-contact-bar .resave-fcp__card {
  min-width: 190px;
  border-radius: 18px;
}

.resave-fcp--layout-cyber-tech-panel .resave-fcp__cards {
  position: relative;
}

.resave-fcp--layout-cyber-tech-panel .resave-fcp__cards::before {
  content: "";
  position: absolute;
  inset: -1px;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, rgba(13,110,253,.35), rgba(250,90,0,.34), transparent);
  opacity: .55;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  padding: 1px;
  mask-composite: exclude;
  -webkit-mask-composite: xor;
}

/* Requested visual themes. Old theme names are kept above as compatibility. */
.resave-fcp--theme-orange-dark { --fcp-accent:#FA5A00; --fcp-blue:#0D6EFD; --fcp-bg:rgba(10,14,23,.96); --fcp-bg-2:rgba(32,20,12,.92); --fcp-border:rgba(250,90,0,.28); --fcp-muted:#ffb383; }
.resave-fcp--theme-blue-dark { --fcp-accent:#0D6EFD; --fcp-blue:#57a4ff; --fcp-bg:rgba(3,12,28,.96); --fcp-bg-2:rgba(5,26,52,.92); --fcp-border:rgba(13,110,253,.32); --fcp-muted:#9fc8ff; }
.resave-fcp--theme-orange-blue { --fcp-accent:#FA5A00; --fcp-blue:#0D6EFD; --fcp-bg:rgba(4,13,27,.96); --fcp-bg-2:rgba(8,22,45,.92); --fcp-border:rgba(68,139,255,.28); --fcp-muted:#9fc1ff; }
.resave-fcp--theme-black-gold { --fcp-accent:#d6a84f; --fcp-blue:#f4d58a; --fcp-bg:rgba(3,4,8,.97); --fcp-bg-2:rgba(25,20,11,.94); --fcp-border:rgba(214,168,79,.32); --fcp-muted:#f4d58a; }
.resave-fcp--theme-glass { --fcp-accent:#FA5A00; --fcp-blue:#70b1ff; --fcp-bg:rgba(255,255,255,.08); --fcp-bg-2:rgba(255,255,255,.045); --fcp-border:rgba(255,255,255,.26); --fcp-muted:#dbeaff; }
.resave-fcp--theme-neon-orange { --fcp-accent:#FA5A00; --fcp-blue:#0D6EFD; --fcp-bg:rgba(4,6,12,.98); --fcp-bg-2:rgba(16,8,4,.96); --fcp-border:rgba(250,90,0,.48); --fcp-muted:#ffbc94; }
.resave-fcp--theme-neon-blue { --fcp-accent:#0D6EFD; --fcp-blue:#68d8ff; --fcp-bg:rgba(2,6,18,.98); --fcp-bg-2:rgba(5,13,32,.96); --fcp-border:rgba(13,110,253,.55); --fcp-muted:#8ee7ff; }
.resave-fcp--theme-premium-dark { --fcp-accent:#FA5A00; --fcp-blue:#0D6EFD; --fcp-bg:rgba(5,15,30,.94); --fcp-bg-2:rgba(10,25,45,.9); --fcp-border:rgba(125,159,205,.24); --fcp-muted:#9fc1ff; }

.resave-fcp--theme-neon-orange .resave-fcp__card {
  box-shadow: 0 0 20px rgba(250,90,0,.28), 0 18px 46px rgba(0,0,0,.48);
}

.resave-fcp--theme-neon-blue .resave-fcp__card {
  box-shadow: 0 0 20px rgba(13,110,253,.3), 0 18px 46px rgba(0,0,0,.48);
}

.resave-fcp--theme-glass .resave-fcp__card,
.resave-fcp--theme-glass .resave-fcp__cards {
  backdrop-filter: blur(18px) saturate(150%);
}

@media (max-width: 1100px) {
  .resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
    width: min(236px, calc(100vw - 32px));
  }
}

@media (max-width: 640px) {
  .resave-fcp--layout-classic-vertical .resave-fcp__fab,
  .resave-fcp--layout-glass-vertical .resave-fcp__fab,
  .resave-fcp--layout-neon-vertical .resave-fcp__fab,
  .resave-fcp--layout-side-dock-premium .resave-fcp__fab,
  .resave-fcp--layout-modern-contact-bar .resave-fcp__fab,
  .resave-fcp--layout-cyber-tech-panel .resave-fcp__fab {
    display: flex;
  }

  .resave-fcp--layout-classic-vertical .resave-fcp__cards,
  .resave-fcp--layout-glass-vertical .resave-fcp__cards,
  .resave-fcp--layout-neon-vertical .resave-fcp__cards,
  .resave-fcp--layout-side-dock-premium .resave-fcp__cards,
  .resave-fcp--layout-modern-contact-bar .resave-fcp__cards,
  .resave-fcp--layout-cyber-tech-panel .resave-fcp__cards {
    position: absolute;
    right: 0;
    bottom: calc(var(--fcp-icon-size) + 26px);
    display: none;
    width: min(246px, calc(100vw - 28px));
  }

  .resave-fcp--layout-classic-vertical.is-open .resave-fcp__cards,
  .resave-fcp--layout-glass-vertical.is-open .resave-fcp__cards,
  .resave-fcp--layout-neon-vertical.is-open .resave-fcp__cards,
  .resave-fcp--layout-side-dock-premium.is-open .resave-fcp__cards,
  .resave-fcp--layout-modern-contact-bar.is-open .resave-fcp__cards,
  .resave-fcp--layout-cyber-tech-panel.is-open .resave-fcp__cards {
    display: flex;
  }

  .resave-fcp--layout-bottom-dock .resave-fcp__cards,
  .resave-fcp--layout-modern-contact-bar .resave-fcp__cards {
    max-width: calc(100vw - 28px);
    overflow-x: auto;
  }

  .resave-fcp--pos-mobile-left-center .resave-fcp__cards,
  .resave-fcp--pos-mobile-bottom-left .resave-fcp__cards,
  .resave-fcp--pos-mobile-top-left .resave-fcp__cards {
    right: auto;
    left: 0;
  }

  .resave-fcp--pos-mobile-top-left .resave-fcp__cards,
  .resave-fcp--pos-mobile-top-center .resave-fcp__cards,
  .resave-fcp--pos-mobile-top-right .resave-fcp__cards {
    top: calc(var(--fcp-icon-size) + 26px);
    bottom: auto;
  }
}

/* ===== Admin preview: same class system, scoped to a mock viewport ===== */
.resave-fcp-preview {
  position: relative;
  height: 390px;
  overflow: hidden;
  border: 1px solid #1f3050;
  border-radius: 14px;
  background: radial-gradient(circle at 30% 20%, #15263a, #07101d 70%);
}

.resave-fcp-preview .resave-fcp {
  position: absolute;
}

.resave-fcp-preview.dev-desktop {
  max-width: 100%;
}

.resave-fcp-preview.dev-tablet {
  width: min(100%, 520px);
}

.resave-fcp-preview.dev-mobile {
  width: min(100%, 360px);
}

.resave-fcp-preview.dev-tablet .resave-fcp {
  --fcp-offset: 16px;
}

.resave-fcp-preview.dev-mobile .resave-fcp {
  --fcp-offset: 14px;
  max-width: calc(100% - 28px);
}

.resave-fcp-preview.dev-tablet .resave-fcp--size-tablet-small,
.resave-fcp-preview.dev-mobile .resave-fcp--size-mobile-small { --fcp-icon-size: 36px; --fcp-card-pad-y: 9px; --fcp-card-pad-x: 11px; }
.resave-fcp-preview.dev-tablet .resave-fcp--size-tablet-medium,
.resave-fcp-preview.dev-mobile .resave-fcp--size-mobile-medium { --fcp-icon-size: 44px; --fcp-card-pad-y: 11px; --fcp-card-pad-x: 13px; }
.resave-fcp-preview.dev-tablet .resave-fcp--size-tablet-large,
.resave-fcp-preview.dev-mobile .resave-fcp--size-mobile-large { --fcp-icon-size: 52px; --fcp-card-pad-y: 14px; --fcp-card-pad-x: 16px; }

.resave-fcp-preview.dev-mobile .resave-fcp--layout-classic-vertical .resave-fcp__fab,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-expanded .resave-fcp__fab,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-horizontal .resave-fcp__fab,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-icon-text .resave-fcp__fab,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-glass-panel .resave-fcp__fab,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-neon-tech .resave-fcp__fab,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-premium-bar .resave-fcp__fab {
  display: flex;
}

.resave-fcp-preview.dev-mobile .resave-fcp--layout-classic-vertical .resave-fcp__cards,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-expanded .resave-fcp__cards,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-horizontal .resave-fcp__cards,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-icon-text .resave-fcp__cards,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-glass-panel .resave-fcp__cards,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-neon-tech .resave-fcp__cards,
.resave-fcp-preview.dev-mobile .resave-fcp--layout-premium-bar .resave-fcp__cards {
  position: absolute;
  right: 0;
  bottom: calc(var(--fcp-icon-size) + 26px);
  display: none;
  width: min(240px, calc(100vw - 28px));
}

.resave-fcp-preview.dev-mobile.is-open .resave-fcp__cards {
  display: flex;
}

.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-left-center,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-left-center { left: var(--fcp-offset); right: auto; top: 50%; bottom: auto; transform: translateY(-50%); }
.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-right-center,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-right-center { right: var(--fcp-offset); left: auto; top: 50%; bottom: auto; transform: translateY(-50%); }
.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-bottom-left,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-bottom-left { left: var(--fcp-offset); right: auto; top: auto; bottom: var(--fcp-offset); transform: none; }
.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-bottom-center,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-bottom-center { left: 50%; right: auto; top: auto; bottom: var(--fcp-offset); transform: translateX(-50%); }
.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-bottom-right,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-bottom-right { right: var(--fcp-offset); left: auto; top: auto; bottom: var(--fcp-offset); transform: none; }
.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-top-left,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-top-left { left: var(--fcp-offset); right: auto; top: var(--fcp-offset); bottom: auto; transform: none; }
.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-top-center,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-top-center { left: 50%; right: auto; top: var(--fcp-offset); bottom: auto; transform: translateX(-50%); }
.resave-fcp-preview.dev-tablet .resave-fcp--pos-tablet-top-right,
.resave-fcp-preview.dev-mobile .resave-fcp--pos-mobile-top-right { right: var(--fcp-offset); left: auto; top: var(--fcp-offset); bottom: auto; transform: none; }

/* ===== Vertical Bottom Dock layout ===================================
   Vertical variant of Bottom Dock: icon+label rows inside a glass dock
   container. Phone values hidden to keep it compact. No FAB on mobile —
   the stack is already slim enough to stay visible.
   =================================================================== */
.resave-fcp--layout-vertical-bottom-dock {
  width: auto;
}

.resave-fcp--layout-vertical-bottom-dock .resave-fcp__cards {
  flex-direction: column;
  gap: 2px;
  padding: 8px;
  border: 1px solid var(--fcp-border);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(5,15,30,.88));
  box-shadow: 0 22px 60px rgba(0,0,0,.44), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(16px);
}

.resave-fcp--layout-vertical-bottom-dock .resave-fcp__card {
  flex-direction: row;
  gap: 10px;
  padding: 8px 14px 8px 8px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
  text-align: left;
  min-width: 0;
  transition: background .2s ease-out, transform .2s ease-out;
}

.resave-fcp--layout-vertical-bottom-dock .resave-fcp__card:hover {
  background: rgba(255,255,255,.07);
  transform: translateX(2px);
  box-shadow: none;
}

.resave-fcp--layout-vertical-bottom-dock .resave-fcp__value {
  display: none;
}

@media (max-width: 640px) {
  .resave-fcp--layout-vertical-bottom-dock .resave-fcp__cards {
    max-width: calc(100vw - 28px);
  }
}

/* ===== Premium tech Visual Themes =====================================
   neon-lines     — animated horizontal scan lines, electric blue
   glow-borders   — per-card glowing outer border (orange UA/PL, blue TG)
   orange-blue-accents — bi-colour gradient interplay on every card
   dark-glass     — ultra-dark glass with heavy backdrop blur
   =================================================================== */

/* --- Neon Lines ------------------------------------------------------- */
.resave-fcp--theme-neon-lines {
  --fcp-accent: #0D6EFD;
  --fcp-blue: #68d8ff;
  --fcp-bg: rgba(2, 6, 18, .98);
  --fcp-bg-2: rgba(5, 13, 32, .96);
  --fcp-border: rgba(13, 110, 253, .62);
  --fcp-muted: #7fe3ff;
}

@keyframes resave-fcp-scan {
  from { background-position: 0 0; }
  to   { background-position: 0 120px; }
}

.resave-fcp--theme-neon-lines .resave-fcp__card {
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 24px rgba(13,110,253,.32), 0 18px 46px rgba(0,0,0,.52);
}

.resave-fcp--theme-neon-lines .resave-fcp__card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    0deg,
    transparent 0px,
    transparent 3px,
    rgba(13,110,253,.045) 3px,
    rgba(13,110,253,.045) 4px
  );
  animation: resave-fcp-scan 10s linear infinite;
}

.resave-fcp--theme-neon-lines .resave-fcp__card:hover {
  box-shadow: 0 0 38px rgba(13,110,253,.46), 0 0 20px rgba(104,216,255,.18), 0 22px 54px rgba(0,0,0,.54);
}

/* --- Glow Borders ----------------------------------------------------- */
.resave-fcp--theme-glow-borders {
  --fcp-accent: #FA5A00;
  --fcp-blue: #0D6EFD;
  --fcp-bg: rgba(4, 10, 22, .97);
  --fcp-bg-2: rgba(8, 18, 38, .95);
  --fcp-border: rgba(250, 90, 0, .5);
  --fcp-muted: #ffb280;
}

.resave-fcp--theme-glow-borders .resave-fcp__card {
  border-color: rgba(250,90,0,.46);
  box-shadow: 0 0 0 1px rgba(250,90,0,.32), 0 0 18px rgba(250,90,0,.2), 0 18px 46px rgba(0,0,0,.5);
  transition: box-shadow .3s ease-out, border-color .3s ease-out, transform .24s ease-out;
}

.resave-fcp--theme-glow-borders .resave-fcp__card:hover {
  border-color: rgba(250,90,0,.72);
  box-shadow: 0 0 0 1px rgba(250,90,0,.58), 0 0 32px rgba(250,90,0,.34), 0 0 20px rgba(13,110,253,.16), 0 22px 54px rgba(0,0,0,.52);
}

.resave-fcp--theme-glow-borders .resave-fcp__card--tg {
  border-color: rgba(13,110,253,.46);
  box-shadow: 0 0 0 1px rgba(13,110,253,.3), 0 0 18px rgba(13,110,253,.22), 0 18px 46px rgba(0,0,0,.5);
}

.resave-fcp--theme-glow-borders .resave-fcp__card--tg:hover {
  border-color: rgba(13,110,253,.72);
  box-shadow: 0 0 0 1px rgba(13,110,253,.56), 0 0 32px rgba(13,110,253,.36), 0 22px 54px rgba(0,0,0,.52);
}

/* --- Orange/Blue Accents ---------------------------------------------- */
.resave-fcp--theme-orange-blue-accents {
  --fcp-accent: #FA5A00;
  --fcp-blue: #0D6EFD;
  --fcp-bg: rgba(4, 12, 28, .97);
  --fcp-bg-2: rgba(10, 22, 48, .93);
  --fcp-border: rgba(80, 140, 255, .3);
  --fcp-muted: #9fc8ff;
}

.resave-fcp--theme-orange-blue-accents .resave-fcp__card {
  background:
    linear-gradient(135deg, rgba(250,90,0,.09), rgba(13,110,253,.09)),
    linear-gradient(150deg, var(--fcp-bg), var(--fcp-bg-2));
  border-color: rgba(80,140,255,.28);
}

.resave-fcp--theme-orange-blue-accents .resave-fcp__card:hover {
  background:
    linear-gradient(135deg, rgba(250,90,0,.16), rgba(13,110,253,.15)),
    linear-gradient(150deg, var(--fcp-bg), var(--fcp-bg-2));
  border-color: rgba(250,90,0,.44);
  box-shadow: 0 0 24px rgba(250,90,0,.14), 0 0 24px rgba(13,110,253,.14), 0 22px 48px rgba(0,0,0,.46);
}

.resave-fcp--theme-orange-blue-accents .resave-fcp__icon {
  background: linear-gradient(135deg, rgba(250,90,0,.2), rgba(13,110,253,.2));
  color: #fff;
}

.resave-fcp--theme-orange-blue-accents .resave-fcp__card--tg .resave-fcp__icon {
  background: linear-gradient(135deg, rgba(13,110,253,.22), rgba(55,174,226,.2));
  color: #68d8ff;
}

/* --- Dark Glass ------------------------------------------------------- */
.resave-fcp--theme-dark-glass {
  --fcp-accent: #FA5A00;
  --fcp-blue: #70b1ff;
  --fcp-bg: rgba(0, 0, 0, .72);
  --fcp-bg-2: rgba(5, 10, 20, .68);
  --fcp-border: rgba(255, 255, 255, .13);
  --fcp-muted: #c0d8ff;
}

.resave-fcp--theme-dark-glass .resave-fcp__card {
  background: linear-gradient(150deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
  border-color: rgba(255,255,255,.14);
  backdrop-filter: blur(22px) saturate(160%);
  box-shadow: 0 8px 32px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.08);
}

.resave-fcp--theme-dark-glass .resave-fcp__card:hover {
  background: linear-gradient(150deg, rgba(255,255,255,.14), rgba(255,255,255,.06));
  border-color: rgba(250,90,0,.42);
  box-shadow: 0 0 22px rgba(250,90,0,.16), 0 14px 38px rgba(0,0,0,.54), inset 0 1px 0 rgba(255,255,255,.1);
}

.resave-fcp--theme-dark-glass .resave-fcp__cards {
  backdrop-filter: blur(8px);
}

/* ===== Floating Bubble Menu — premium pulsing FAB =====================
   Two-layer effect:
     1. ::before  — ring that expands outward and fades (ripple)
     2. box-shadow — gentle orange glow that breathes in/out
   Both pause on hover and when the menu is open (.is-open).
   Fully disabled for prefers-reduced-motion users.
   =================================================================== */
@keyframes resave-fcp-fab-ring {
  0%   { transform: scale(1);    opacity: .52; }
  100% { transform: scale(1.88); opacity: 0;   }
}

@keyframes resave-fcp-fab-glow {
  0%, 100% {
    box-shadow:
      0 16px 36px rgba(0,0,0,.42),
      0 0 22px rgba(250,90,0,.2),
      0 0 28px rgba(250,90,0,.14);
  }
  50% {
    box-shadow:
      0 18px 44px rgba(0,0,0,.46),
      0 0 36px rgba(250,90,0,.34),
      0 0 52px rgba(250,90,0,.18);
  }
}

.resave-fcp--layout-floating-bubble-menu .resave-fcp__fab {
  position: relative;
  animation: resave-fcp-fab-glow 3s ease-in-out infinite;
}

.resave-fcp--layout-floating-bubble-menu .resave-fcp__fab::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 999px;
  box-shadow: 0 0 0 4px rgba(250,90,0,.42);
  animation: resave-fcp-fab-ring 2.8s ease-out infinite;
  pointer-events: none;
}

.resave-fcp--layout-floating-bubble-menu .resave-fcp__fab:hover,
.resave-fcp--layout-floating-bubble-menu.is-open .resave-fcp__fab {
  animation: none;
}

.resave-fcp--layout-floating-bubble-menu .resave-fcp__fab:hover::before,
.resave-fcp--layout-floating-bubble-menu.is-open .resave-fcp__fab::before {
  animation: none;
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .resave-fcp--layout-floating-bubble-menu .resave-fcp__fab,
  .resave-fcp--layout-floating-bubble-menu .resave-fcp__fab::before {
    animation: none;
  }
}

/* ===== Floating Bubble Menu — card centering for horizontal-center positions =====
   When the panel sits at bottom-center or top-center, cards open symmetrically
   above (or below) the FAB instead of shifting left.
   =============================================================================== */

.resave-fcp--pos-desktop-bottom-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards,
.resave-fcp--pos-desktop-top-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

@media (max-width: 1100px) {
  .resave-fcp--pos-tablet-bottom-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards,
  .resave-fcp--pos-tablet-top-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
}

@media (max-width: 640px) {
  .resave-fcp--pos-mobile-bottom-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards,
  .resave-fcp--pos-mobile-top-center.resave-fcp--layout-floating-bubble-menu .resave-fcp__cards {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
}

/* ===== Scroll-to-top button ===== */
.resave-totop {
  position: fixed;
  /* Position is admin-editable (side + horizontal + vertical), per device. */
  right: var(--totop-right, 18px);
  left: var(--totop-left, auto);
  bottom: var(--totop-bottom, 18px);
  z-index: 997;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(125, 159, 205, .28);
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(135deg, rgba(13, 110, 253, .94), rgba(8, 20, 38, .94));
  box-shadow: 0 12px 30px rgba(0, 0, 0, .42), 0 0 22px rgba(13, 110, 253, .24);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease, background .2s ease;
}
.resave-totop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.resave-totop:hover {
  background: linear-gradient(135deg, #0d6efd, #0b1426);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .5), 0 0 28px rgba(13, 110, 253, .34);
}
.resave-totop:active { transform: scale(.94); }
.resave-totop svg { display: block; }

@media (max-width: 768px) {
  .resave-totop {
    right: var(--totop-right-m, var(--totop-right, 14px));
    left: var(--totop-left-m, var(--totop-left, auto));
    bottom: var(--totop-bottom-m, var(--totop-bottom, 14px));
    width: 44px; height: 44px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .resave-totop { transition: opacity .2s ease, visibility .2s ease; transform: none; }
  .resave-totop.is-visible { transform: none; }
}
