/* =========================================================================
   FitVibe Partner Lead Chat Widget — scoped styles (partners pages only)
   Chat-style lead-generation widget (NOT a chatbot). Everything namespaced
   under #fvlw-root / .fvlw-* so it never leaks into / inherits from globals.
   ========================================================================= */

#fvlw-root{
  --fvlw-blue:#325DE6; --fvlw-blue2:#4f7bff; --fvlw-blue-d:#2348c8;
  --fvlw-ink:#15203c; --fvlw-ink2:#6B7693; --fvlw-line:#E9ECF5; --fvlw-panel:#F6F7FB;
  --fvlw-ok:#1F8900; --fvlw-err:#D62424;
  position:fixed; right:22px; bottom:96px; z-index:2147483000;
  font-family:Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:15px; line-height:1.5; color:var(--fvlw-ink);
}
#fvlw-root *,#fvlw-root *::before,#fvlw-root *::after{ box-sizing:border-box; }
#fvlw-root button{ font-family:inherit; cursor:pointer; }

/* ---- Launcher (bubble FAB: pulse ring + online badge — design fvw-fab-bubble) ---- */
.fvlw-launcher{
  position:relative; width:64px; height:64px; border:0; border-radius:999px;
  background:var(--fvlw-blue); color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -8px rgba(50,93,230,.47),0 4px 10px -2px rgba(50,93,230,.2);
  transition:transform .2s,box-shadow .2s; animation:fvlwFabIn .42s both;
}
.fvlw-launcher:hover{ transform:translateY(-2px); box-shadow:0 20px 38px -8px rgba(50,93,230,.53); }
.fvlw-launcher svg{ width:28px; height:28px; flex:none; }
.fvlw-launcher.is-hidden{ display:none; }
.fvlw-fab-pulse{ position:absolute; inset:0; border-radius:999px; background:var(--fvlw-blue); z-index:-1;
  animation:fvlwPulse 2.6s ease-out infinite; }
.fvlw-fab-badge{ position:absolute; top:2px; right:2px; width:17px; height:17px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(11,53,88,.2); }
.fvlw-fab-badge i{ width:9px; height:9px; border-radius:50%; background:var(--fvlw-ok); animation:fvlwLive 2.2s infinite; }

/* ---- Nudge ("Χρειάζεσαι βοήθεια;") above the bubble after idle ---- */
.fvlw-nudge{ position:absolute; right:0; bottom:76px; display:none; align-items:center; gap:10px;
  background:#fff; border:1px solid var(--fvlw-line); border-radius:16px 16px 4px 16px; padding:12px 12px 12px 15px;
  font-size:13.5px; font-weight:700; color:var(--fvlw-ink); white-space:nowrap;
  box-shadow:0 18px 40px -16px rgba(20,30,60,.4); cursor:pointer; transition:border-color .15s; }
.fvlw-nudge.is-visible{ display:inline-flex; animation:fvlwMsg .46s both cubic-bezier(.2,.8,.3,1); }
.fvlw-nudge:hover{ border-color:var(--fvlw-blue); }
.fvlw-nudge-x{ width:22px; height:22px; flex:none; border:0; border-radius:50%; background:var(--fvlw-panel);
  color:var(--fvlw-ink2); display:grid; place-items:center; font-size:14px; line-height:1; transition:.15s; }
.fvlw-nudge-x:hover{ background:var(--fvlw-line); color:var(--fvlw-ink); }

/* ---- Panel ---- */
.fvlw-panel{
  position:absolute; right:0; bottom:0; width:400px; max-width:calc(100vw - 28px);
  background:var(--fvlw-panel); border-radius:24px; overflow:hidden;
  box-shadow:0 44px 100px -34px rgba(20,30,60,.5); border:1px solid rgba(20,30,60,.06);
  display:none; transform-origin:bottom right;
}
.fvlw-panel.is-open{ display:block; animation:fvlwPop .42s cubic-bezier(.2,.9,.25,1); }

/* ---- Header ---- */
.fvlw-head{
  background:linear-gradient(135deg,var(--fvlw-blue) 0%,var(--fvlw-blue2) 115%);
  color:#fff; padding:18px 18px 20px; position:relative;
}
.fvlw-brand{ display:flex; align-items:center; gap:9px; margin-bottom:16px; }
.fvlw-brand .fvlw-logo{ height:24px; width:auto; display:block; }
.fvlw-brand .mark{ width:26px; height:26px; flex:none; }
.fvlw-brand .name{ font-size:18px; font-weight:800; letter-spacing:-.02em; }
.fvlw-brand .name b{ font-weight:800; }
.fvlw-close{ position:absolute; top:16px; right:16px; width:30px; height:30px; border:0; border-radius:9px;
  background:rgba(255,255,255,.18); color:#fff; display:grid; place-items:center; font-size:17px; line-height:1; transition:.15s; }
.fvlw-close:hover{ background:rgba(255,255,255,.3); }

.fvlw-team{ display:flex; align-items:center; gap:12px; }
.fvlw-avatars{ display:flex; flex:none; }
.fvlw-avatars .av{ width:38px; height:38px; border-radius:50%; border:2.5px solid #fff;
  display:grid; place-items:center; font-size:12px; font-weight:800; color:#fff; margin-left:-12px;
  box-shadow:0 2px 6px rgba(0,0,0,.15); }
.fvlw-avatars .av:first-child{ margin-left:0; }
.fvlw-avatars .av.a1{ background:linear-gradient(135deg,#325DE6,#5a86ff); }
.fvlw-avatars .av.a2{ background:linear-gradient(135deg,#1F8900,#39b54a); }
.fvlw-avatars .av.a3{ background:linear-gradient(135deg,#FF8a5b,#ff6e50); }
.fvlw-team-meta .t{ font-size:15px; font-weight:800; letter-spacing:-.01em; }
.fvlw-team-meta .s{ display:inline-flex; align-items:center; gap:6px; font-size:12px; color:rgba(255,255,255,.85); margin-top:2px; }
.fvlw-team-meta .s i{ width:7px; height:7px; border-radius:50%; background:#41e07a; box-shadow:0 0 0 3px rgba(65,224,122,.3); }

/* ---- Body ---- */
.fvlw-body{ padding:18px 16px 18px; max-height:min(560px,64vh); overflow-y:auto; }

/* welcome chat bubble */
.fvlw-welcome{ display:flex; gap:10px; align-items:flex-start; margin-bottom:16px;
  animation:fvlwMsg .46s both cubic-bezier(.2,.8,.3,1); }
.fvlw-welcome .botav,.fvlw-typing .botav{ width:30px; height:30px; flex:none; border-radius:50%;
  background:linear-gradient(135deg,var(--fvlw-blue),var(--fvlw-blue2)); display:grid; place-items:center; }
.fvlw-welcome .botav svg,.fvlw-typing .botav svg{ width:20px; height:auto; display:block; }

/* typing indicator (shown ~950ms when the panel opens — design booting state) */
.fvlw-typing{ display:none; gap:10px; align-items:flex-end; }
.fvlw-typing.is-active{ display:flex; animation:fvlwMsg .46s both cubic-bezier(.2,.8,.3,1); }
.fvlw-typing .fvlw-bubble{ padding:14px 16px; }
.fvlw-tdots{ display:flex; gap:5px; align-items:center; }
.fvlw-tdots span{ width:7px; height:7px; border-radius:50%; background:#A9B1C6; animation:fvlwBounce 1.25s infinite; }
.fvlw-tdots span:nth-child(2){ animation-delay:.16s; }
.fvlw-tdots span:nth-child(3){ animation-delay:.32s; }
.fvlw-bubble{ background:#fff; border:1px solid var(--fvlw-line); border-radius:6px 16px 16px 16px;
  padding:13px 15px; font-size:14px; line-height:1.55; color:var(--fvlw-ink); box-shadow:0 6px 18px -12px rgba(20,30,60,.3); }

/* ---- Topic cards (staggered entrance like the design: 120 + i*70ms) ---- */
.fvlw-topics{ display:flex; flex-direction:column; gap:10px; }
.fvlw-topic{ display:flex; align-items:center; gap:13px; width:100%; text-align:left;
  background:#fff; border:1px solid var(--fvlw-line); border-radius:16px; padding:14px;
  transition:.16s ease; box-shadow:0 4px 14px -10px rgba(20,30,60,.25);
  animation:fvlwMsg .5s both cubic-bezier(.2,.8,.3,1); }
.fvlw-topic:nth-child(1){ animation-delay:.12s; }
.fvlw-topic:nth-child(2){ animation-delay:.19s; }
.fvlw-topic:nth-child(3){ animation-delay:.26s; }
.fvlw-topic:nth-child(4){ animation-delay:.33s; }
.fvlw-topic:nth-child(5){ animation-delay:.4s; }
.fvlw-topic:hover{ border-color:var(--fvlw-blue); transform:translateY(-2px); box-shadow:0 14px 30px -16px rgba(50,93,230,.4); }
.fvlw-topic .ic{ width:44px; height:44px; flex:none; border-radius:13px; background:#EEF3FE; color:var(--fvlw-blue);
  display:grid; place-items:center; }
.fvlw-topic .ic svg{ width:21px; height:21px; }
.fvlw-topic .body{ flex:1; min-width:0; }
.fvlw-topic .ttl{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.fvlw-topic .ttl b{ font-size:14.5px; font-weight:800; color:var(--fvlw-ink); }
.fvlw-topic .desc{ margin-top:3px; font-size:12.5px; line-height:1.45; color:var(--fvlw-ink2); }
.fvlw-topic .arrow{ flex:none; color:var(--fvlw-ink2); font-size:16px; transition:.16s; }
.fvlw-topic:hover .arrow{ color:var(--fvlw-blue); transform:translateX(2px); }
.fvlw-tag{ font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; border-radius:5px; padding:2px 7px; }
.fvlw-tag.free{ background:#E7F6E9; color:#1F8900; }
.fvlw-tag.premium{ background:#EDE7FF; color:#6A4DEE; }

/* ---- Form step ---- */
.fvlw-form{ display:none; }
.fvlw-form.is-active{ display:block; }
.fvlw-form .fvlw-bubble{ margin-bottom:12px; }
.fvlw-card{ background:#fff; border:1px solid var(--fvlw-line); border-radius:16px; padding:11px 12px;
  margin-bottom:9px; box-shadow:0 4px 14px -10px rgba(20,30,60,.22); }
.fvlw-field{ margin-bottom:0; }
.fvlw-label-row{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:4px; }
.fvlw-label-row label{ font-size:12.5px; font-weight:700; color:var(--fvlw-ink); margin:0; }
.fvlw-label-row label .opt{ color:var(--fvlw-ink2); font-weight:600; }
.fvlw-label-row .fvlw-err-msg{ display:none; font-size:11.5px; font-weight:700; color:var(--fvlw-err); text-align:right; }
.fvlw-field.has-error .fvlw-err-msg{ display:inline; }
.fvlw-input{ position:relative; }
.fvlw-input .ico{ position:absolute; left:13px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--fvlw-ink2); pointer-events:none; }
.fvlw-input input{ width:100%; height:45px; border:1px solid var(--fvlw-line); border-radius:12px;
  padding:0 14px 0 42px; font-size:14.5px; color:var(--fvlw-ink); background:#fff; transition:.15s ease; }
.fvlw-input input::placeholder{ color:#A9B1C6; }
.fvlw-input input:focus{ outline:none; border-color:var(--fvlw-blue); box-shadow:0 0 0 3px rgba(50,93,230,.12); }
.fvlw-input input:focus + .ico,.fvlw-field.has-error .fvlw-input .ico{ color:var(--fvlw-blue); }
.fvlw-field.has-error .fvlw-input input{ border-color:var(--fvlw-err); }
.fvlw-field.has-error .fvlw-input .ico{ color:var(--fvlw-err); }
.fvlw-or{ display:flex; align-items:center; gap:10px; margin:7px 0; color:var(--fvlw-ink2); font-size:12px; font-weight:700; }
.fvlw-or::before,.fvlw-or::after{ content:""; flex:1; height:1px; background:var(--fvlw-line); }
.fvlw-contact-note{ margin:8px 0 0; font-size:12px; line-height:1.4; color:var(--fvlw-ink2); }
.fvlw-contact-note.has-error{ color:var(--fvlw-err); font-weight:700; }
.fvlw-hp{ position:absolute !important; left:-9999px !important; top:-9999px !important; width:1px; height:1px; opacity:0; overflow:hidden; }

.fvlw-actions{ display:flex; gap:10px; align-items:center; margin-top:6px; }
.fvlw-back{ background:#fff; border:1px solid var(--fvlw-line); border-radius:12px; padding:0 16px; height:46px;
  font-size:14px; font-weight:700; color:var(--fvlw-ink2); transition:.15s; }
.fvlw-back:hover{ border-color:var(--fvlw-blue); color:var(--fvlw-blue); }
.fvlw-submit{ flex:1; background:linear-gradient(135deg,var(--fvlw-blue),var(--fvlw-blue2)); color:#fff; border:0;
  border-radius:12px; height:46px; font-size:14.5px; font-weight:800; display:inline-flex; align-items:center;
  justify-content:center; gap:8px; transition:.15s ease; }
.fvlw-submit:hover{ filter:brightness(1.05); }
.fvlw-submit:disabled{ background:#C7D0E6; opacity:1; cursor:not-allowed; filter:none; }
.fvlw-dots{ display:none; gap:4px; }
.fvlw-submit.is-loading .fvlw-dots{ display:inline-flex; }
.fvlw-submit.is-loading .fvlw-submit-label{ display:none; }
.fvlw-dots span{ width:6px; height:6px; border-radius:50%; background:#fff; opacity:.5; animation:fvlwDot 1s infinite ease-in-out; }
.fvlw-dots span:nth-child(2){ animation-delay:.15s; } .fvlw-dots span:nth-child(3){ animation-delay:.3s; }
@keyframes fvlwDot{ 0%,100%{ opacity:.35; transform:translateY(0); } 40%{ opacity:1; transform:translateY(-3px); } }

/* ---- Sending state (orbit spinner — design fvw-sending) ---- */
.fvlw-sending{ display:none; }
.fvlw-sending.is-active{ display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:16px; padding:46px 20px; animation:fvlwMsg .3s both cubic-bezier(.2,.8,.3,1); }
.fvlw-send-orbit{ width:74px; height:74px; border-radius:50%; background:#EEF3FE; position:relative;
  display:flex; align-items:center; justify-content:center; }
.fvlw-send-orbit::before{ content:""; position:absolute; inset:-6px; border-radius:50%;
  border:3px solid rgba(50,93,230,.13); border-top-color:var(--fvlw-blue); animation:fvlwSpin 1s linear infinite; }
.fvlw-send-orbit svg{ width:26px; height:26px; color:var(--fvlw-blue); }
.fvlw-sending-text{ font-size:14.5px; font-weight:800; color:var(--fvlw-ink2); }
.fvlw-tdots-blue span{ background:var(--fvlw-blue); }

/* ---- Success state (animated check — design fvw-success) ---- */
.fvlw-success{ display:none; }
.fvlw-success.is-active{ display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:26px 22px; }
.fvlw-success-badge{ animation:fvlwPop .5s both; }
.fvlw-success-badge .ring{ stroke-dasharray:226; stroke-dashoffset:226; animation:fvlwRing .7s .1s forwards ease-out; opacity:.4; }
.fvlw-success-badge .check{ stroke-dasharray:60; stroke-dashoffset:60; animation:fvlwCheck .5s .5s forwards ease-out; }
.fvlw-success-title{ margin:10px 0 0; font-size:21px; font-weight:800; color:var(--fvlw-ink); letter-spacing:-.02em; }
.fvlw-success-msg{ margin:8px 0 0; font-size:14px; line-height:1.5; color:var(--fvlw-ink2); max-width:32ch; }
.fvlw-success-meta{ display:inline-flex; align-items:center; gap:7px; margin-top:16px; font-size:12px; font-weight:800;
  color:var(--fvlw-ok); background:#EAF6E8; padding:7px 13px; border-radius:999px; }
.fvlw-success-meta i{ width:8px; height:8px; border-radius:50%; background:var(--fvlw-ok); animation:fvlwLive 2.2s infinite; }
.fvlw-success-actions{ display:flex; flex-direction:column; gap:9px; width:100%; margin-top:24px; }
.fvlw-success-close{ width:100%; border:0; background:transparent; border-radius:12px; padding:13px 16px;
  font-size:14px; font-weight:800; color:var(--fvlw-ink2); transition:.16s; }
.fvlw-success-close:hover{ background:#ECEFF7; color:var(--fvlw-ink); }

/* ---- Result (error) as a chat bubble ---- */
.fvlw-result{ display:none; }
.fvlw-result.is-active{ display:block; }
.fvlw-result .row{ display:flex; gap:10px; align-items:flex-start; }
.fvlw-result .botav{ width:30px; height:30px; flex:none; border-radius:50%; display:grid; place-items:center; }
.fvlw-result.is-success .botav{ background:#E7F6E9; color:var(--fvlw-ok); }
.fvlw-result.is-error .botav{ background:#FDEAEA; color:var(--fvlw-err); }
.fvlw-result .botav svg{ width:17px; height:17px; }
.fvlw-result .bubble{ background:#fff; border:1px solid var(--fvlw-line); border-radius:6px 16px 16px 16px; padding:14px 16px; box-shadow:0 6px 18px -12px rgba(20,30,60,.3); }
.fvlw-result h4{ margin:0 0 5px; font-size:15px; font-weight:800; color:var(--fvlw-ink); }
.fvlw-result p{ margin:0 0 14px; font-size:13.5px; line-height:1.55; color:var(--fvlw-ink2); }
.fvlw-result .fvlw-result-btn{ background:var(--fvlw-blue); color:#fff; border:0; border-radius:10px; padding:10px 18px; font-size:13.5px; font-weight:800; }
.fvlw-result .fvlw-result-btn:hover{ background:var(--fvlw-blue-d); }

/* ---- Keyframes (faithful to the design) ---- */
@keyframes fvlwFabIn{ from{ transform:scale(.82) translateY(12px); } to{ transform:none; } }
@keyframes fvlwPulse{ 0%{ transform:scale(1); opacity:.45; } 70%{ transform:scale(1.45); opacity:0; } 100%{ opacity:0; } }
@keyframes fvlwLive{ 0%{ box-shadow:0 0 0 0 rgba(31,137,0,.33); } 70%{ box-shadow:0 0 0 6px rgba(31,137,0,0); } 100%{ box-shadow:0 0 0 0 rgba(31,137,0,0); } }
@keyframes fvlwPop{ from{ opacity:0; transform:translateY(16px) scale(.96); } to{ opacity:1; transform:none; } }
@keyframes fvlwMsg{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@keyframes fvlwBounce{ 0%,60%,100%{ transform:translateY(0); opacity:.5; } 30%{ transform:translateY(-5px); opacity:1; } }
@keyframes fvlwSpin{ to{ transform:rotate(360deg); } }
@keyframes fvlwRing{ to{ stroke-dashoffset:0; } }
@keyframes fvlwCheck{ to{ stroke-dashoffset:0; } }

@media (max-width:768px){
  #fvlw-root{ right:16px; bottom:calc(76px + env(safe-area-inset-bottom, 0px)); }
  .fvlw-launcher{ width:54px; height:54px; }
  .fvlw-launcher svg{ width:23px; height:23px; }
  .fvlw-fab-badge{ width:15px; height:15px; }
  .fvlw-fab-badge i{ width:8px; height:8px; }
}
@media (max-width:480px){
  #fvlw-root{ right:12px; bottom:calc(72px + env(safe-area-inset-bottom, 0px)); }
  .fvlw-launcher{ width:50px; height:50px; }
  .fvlw-launcher svg{ width:22px; height:22px; }
  .fvlw-fab-badge{ top:1px; right:1px; width:14px; height:14px; }
  .fvlw-fab-badge i{ width:7px; height:7px; }
  .fvlw-panel{ width:calc(100vw - 24px); }
  .fvlw-nudge{ bottom:66px; }
}
@media (prefers-reduced-motion:reduce){
  .fvlw-launcher,.fvlw-panel,.fvlw-topic,.fvlw-submit{ transition:none; }
  .fvlw-dots span,.fvlw-tdots span{ animation:none; }
  .fvlw-launcher,.fvlw-fab-pulse,.fvlw-fab-badge i,.fvlw-panel.is-open,
  .fvlw-welcome,.fvlw-typing.is-active,.fvlw-topic,.fvlw-nudge.is-visible,
  .fvlw-sending.is-active,.fvlw-send-orbit::before,.fvlw-success-badge,
  .fvlw-success-meta i{ animation:none; }
  .fvlw-success-badge .ring,.fvlw-success-badge .check{ animation:none; stroke-dashoffset:0; }
}
