/* =========================================================
   Faithful Pools — Virtual Concierge (chat.css)
   Luxury navy + lime · typographic only (no icons).
   Pair with chat.js.   Development: WEBX · webxsites.com.br
   ========================================================= */
.fpc { --navy: #2D3B4C; --deep: #1E2835; --ink: #141B25; --lime: #CCFF00; --txt: #EEF2F6; --mut: #9FB0C2; --hair: rgba(204,255,0,.22); --hair-w: rgba(255,255,255,.09);
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; }

/* Launcher — text only */
.fpc-launch { position: fixed; right: 26px; bottom: 96px; z-index: 65; height: 50px; padding: 0 26px; border: 0; border-radius: 999px; cursor: pointer;
  background: linear-gradient(160deg, var(--navy), var(--ink)); color: var(--lime);
  box-shadow: inset 0 0 0 1px rgba(204,255,0,.55), 0 14px 34px -12px rgba(0,0,0,.65), 0 0 26px rgba(204,255,0,.22);
  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .26em; text-transform: uppercase;
  animation: fpc-in .8s cubic-bezier(.16,1,.3,1) 1.6s both; transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s; }
.fpc-launch:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--lime), 0 18px 40px -12px rgba(0,0,0,.7), 0 0 36px rgba(204,255,0,.4); }
.fpc.is-open .fpc-launch { opacity: 0; pointer-events: none; transform: translateY(10px); }
@keyframes fpc-in { from { opacity: 0; transform: translateY(24px); } }

/* Teaser */
.fpc-teaser { position: fixed; right: 26px; bottom: 158px; z-index: 64; max-width: 260px; padding: 18px 40px 18px 20px; border-radius: 4px;
  background: linear-gradient(160deg, var(--navy), var(--ink)); color: var(--txt); font-size: 14px; font-weight: 500; line-height: 1.5; cursor: pointer;
  box-shadow: inset 0 0 0 1px var(--hair), 0 22px 44px -16px rgba(0,0,0,.6);
  opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .4s, transform .5s cubic-bezier(.16,1,.3,1), visibility .4s; }
.fpc-teaser::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 2px; background: var(--lime); box-shadow: 0 0 10px var(--lime); }
.fpc-teaser.is-show { opacity: 1; visibility: visible; transform: none; }
.fpc-teaser__x { position: absolute; top: 8px; right: 10px; border: 0; background: none; color: var(--mut); cursor: pointer; font: inherit; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.fpc-teaser__x:hover { color: var(--lime); }

/* Panel */
.fpc-panel { position: fixed; right: 26px; bottom: 26px; z-index: 66; width: min(400px, calc(100vw - 24px)); height: min(640px, calc(100dvh - 52px));
  display: flex; flex-direction: column; overflow: hidden; border-radius: 6px; color: var(--txt);
  background: radial-gradient(520px 260px at 100% 0, rgba(204,255,0,.06), transparent 70%), linear-gradient(180deg, var(--navy) 0, var(--deep) 42%, var(--ink) 100%);
  box-shadow: inset 0 0 0 1px var(--hair), 0 40px 90px -24px rgba(0,0,0,.75), 0 0 60px rgba(204,255,0,.08);
  opacity: 0; visibility: hidden; transform: translateY(24px) scale(.97); transform-origin: bottom right;
  transition: opacity .35s, transform .55s cubic-bezier(.16,1,.3,1), visibility .35s; }
.fpc.is-open .fpc-panel { opacity: 1; visibility: visible; transform: none; }

.fpc-head { display: flex; align-items: center; gap: 14px; padding: 20px 20px 18px; position: relative; border-bottom: 1px solid var(--hair-w); }
.fpc-head::after { content: ""; position: absolute; left: 20px; bottom: -1px; width: 56px; height: 2px; background: var(--lime); box-shadow: 0 0 12px var(--lime); }
.fpc-avatar { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 50%; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 14px; letter-spacing: .08em; color: var(--lime); box-shadow: inset 0 0 0 1px rgba(204,255,0,.55); background: rgba(204,255,0,.06); }
.fpc-id { flex: 1; display: grid; gap: 3px; line-height: 1.2; }
.fpc-id b { font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; font-size: 15px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; }
.fpc-id span { font-size: 11.5px; color: var(--mut); display: flex; align-items: center; gap: 8px; letter-spacing: .04em; }
.fpc-id i { width: 6px; height: 6px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 8px var(--lime); }
.fpc-close { border: 0; background: none; color: var(--mut); cursor: pointer; font: inherit; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; padding: 8px 0 8px 8px; transition: color .25s; }
.fpc-close:hover { color: var(--lime); }

.fpc-body { flex: 1; overflow-y: auto; padding: 22px 20px 10px; display: flex; flex-direction: column; gap: 14px; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: rgba(204,255,0,.3) transparent; }
.fpc-msg { max-width: 90%; font-size: 14.5px; line-height: 1.6; animation: fpc-msg .5s cubic-bezier(.16,1,.3,1) both; overflow-wrap: anywhere; }
.fpc-msg--bot { align-self: flex-start; padding: 2px 0 2px 16px; color: var(--txt); border-left: 1px solid var(--hair); }
.fpc-msg--user { align-self: flex-end; padding: 11px 16px; border-radius: 4px; color: var(--ink); background: var(--lime); font-weight: 600; font-size: 14px; box-shadow: 0 10px 26px -12px rgba(204,255,0,.55); }
.fpc-msg ul { margin: 10px 0 6px; padding-left: 18px; color: #D3DCE6; }
.fpc-msg li { margin-bottom: 4px; }
.fpc-msg b { font-weight: 700; color: #fff; }
.fpc-big { display: block; font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; font-size: 46px; font-weight: 800; line-height: 1; margin: 8px 0 10px; color: var(--lime); letter-spacing: -.03em; text-shadow: 0 0 24px rgba(204,255,0,.35); }
.fpc-big small { font-size: 14px; font-weight: 500; color: var(--mut); margin-left: 4px; letter-spacing: 0; text-shadow: none; }
.fpc-link { display: inline-block; margin-top: 6px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lime); text-decoration: none; border-bottom: 1px solid rgba(204,255,0,.4); }
.fpc-svcs { list-style: none; padding: 0 !important; display: grid; gap: 12px; margin-top: 12px !important; }
.fpc-svcs li { display: grid; gap: 4px; padding: 0 0 12px; border-bottom: 1px solid var(--hair-w); margin: 0; }
.fpc-svcs li:last-child { border-bottom: 0; }
.fpc-svcs li b { letter-spacing: .06em; text-transform: uppercase; font-size: 12.5px; color: var(--lime); }
.fpc-svcs span { font-size: 13.5px; color: #C3CEDA; }
@keyframes fpc-msg { from { opacity: 0; transform: translateY(10px); } }
.fpc-typing { display: flex; gap: 6px; padding: 10px 0 10px 16px !important; }
.fpc-typing i { width: 5px; height: 5px; border-radius: 50%; background: var(--lime); animation: fpc-dot 1.1s infinite ease-in-out; }
.fpc-typing i:nth-child(2) { animation-delay: .15s; } .fpc-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes fpc-dot { 0%, 80%, 100% { transform: translateY(0); opacity: .3; } 40% { transform: translateY(-4px); opacity: 1; } }

/* Options */
.fpc-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 6px 20px 14px; max-height: 236px; overflow-y: auto; scrollbar-width: none; }
.fpc-chips:empty { display: none; }
.fpc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 10px 15px; border: 0; border-radius: 3px; cursor: pointer; text-decoration: none;
  font: inherit; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--txt); background: transparent;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); transition: background .3s, box-shadow .3s, color .3s, transform .3s cubic-bezier(.16,1,.3,1); animation: fpc-msg .45s cubic-bezier(.16,1,.3,1) both; }
.fpc-chip:hover { color: var(--lime); box-shadow: inset 0 0 0 1px var(--lime), 0 0 18px rgba(204,255,0,.3); transform: translateY(-2px); }
.fpc-chip em { font-style: normal; color: var(--lime); font-weight: 700; }
.fpc-chip--primary, .fpc-chip--wa { background: var(--lime); color: var(--ink); box-shadow: 0 10px 26px -12px rgba(204,255,0,.6); }
.fpc-chip--primary:hover, .fpc-chip--wa:hover { color: var(--ink); background: #DBFF4D; box-shadow: 0 14px 30px -10px rgba(204,255,0,.7); }
.fpc-chip--toggle[aria-pressed="true"] { color: var(--lime); background: rgba(204,255,0,.1); box-shadow: inset 0 0 0 1px var(--lime), 0 0 16px rgba(204,255,0,.25); }

.fpc-input { display: flex; gap: 10px; padding: 14px 20px 18px; border-top: 1px solid var(--hair-w); align-items: center; }
.fpc-input input { flex: 1; min-width: 0; height: 44px; padding: 0 2px; border: 0; border-bottom: 1px solid rgba(255,255,255,.25); border-radius: 0; font: inherit; font-size: 15px; color: #fff; background: transparent; transition: border-color .3s, box-shadow .3s; }
.fpc-input input::placeholder { color: #7F90A3; }
.fpc-input input:focus { outline: none; border-bottom-color: var(--lime); box-shadow: 0 1px 0 0 var(--lime); }
.fpc-input button { flex: none; height: 40px; padding: 0 18px; border: 0; border-radius: 3px; cursor: pointer; font: inherit; font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); background: var(--lime); transition: box-shadow .3s, transform .3s; }
.fpc-input button:hover { box-shadow: 0 0 24px rgba(204,255,0,.55); transform: translateY(-1px); }
.fpc .sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Mobile — fully inside the screen */
@media (max-width: 760px) {
  .fpc-launch { right: max(16px, env(safe-area-inset-right)); bottom: calc(max(16px, env(safe-area-inset-bottom)) + 70px); height: 46px; padding: 0 20px; font-size: 11px; letter-spacing: .22em; }
  .fpc-teaser { right: max(16px, env(safe-area-inset-right)); bottom: calc(max(16px, env(safe-area-inset-bottom)) + 128px); max-width: min(250px, calc(100vw - 32px)); }
  .fpc-panel { right: 8px; left: 8px; bottom: 8px; width: auto; height: min(680px, calc(100dvh - 16px)); z-index: 80; }
}
@media (prefers-reduced-motion: reduce) { .fpc *, .fpc *::before { animation: none !important; transition: none !important; } }
@media print { .fpc { display: none !important; } }

/* v4.4 — launcher: same circular style as the WhatsApp float, chat-bubble icon, no text */
.fpc-launch { width: 62px; height: 62px; padding: 0 !important; right: 18px; bottom: 94px; display: flex; align-items: center; justify-content: center; gap: 0; font-size: 0 !important; letter-spacing: 0 !important;
  background: var(--navy, #2D3B4C); color: var(--lime, #CCFF00); box-shadow: inset 0 0 0 1px rgba(204,255,0,.5), 0 16px 40px -10px rgba(10,15,22,.8), 0 0 30px rgba(204,255,0,.35); }
.fpc-launch__t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fpc-launch__ico { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--lime, #CCFF00); color: var(--navy, #2D3B4C); }
.fpc-launch__ico svg { width: 26px; height: 26px; }
@media (max-width: 760px) { .fpc-launch { width: 58px; height: 58px; right: max(16px, env(safe-area-inset-right)); bottom: calc(max(16px, env(safe-area-inset-bottom)) + 70px); } .fpc-launch__ico { width: 46px; height: 46px; } }
