/* FundedAfrica live chat widget. Loaded only when chat is switched on (includes/chat-widget.php).
   Tokens fall back to literal values so the widget renders even on a page without app.css. */
.fa-chat{
  --fc-ink:#0d2b1f; --fc-fern:#40916C; --fc-forest:#1B4332; --fc-sprout:#52B788; --fc-tint:#f0faf3;
  --fc-text:#1A1A2E; --fc-muted:#4A4A6A; --fc-line:#E2E8F0; --fc-canvas:#F8F9FA; --fc-white:#fff;
  --fc-urgent:#E87722;
  --chat-bottom:20px;
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
}
.fa-chat *,.fa-chat *::before,.fa-chat *::after{box-sizing:border-box}
.fa-chat [hidden]{display:none!important}
.fa-chat .sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Launcher: bottom-right, lifted by --chat-bottom (bottom nav / cookie bar), below modals (z 300) */
.fa-chat-launch{
  position:fixed;right:20px;bottom:var(--chat-bottom);z-index:90;
  height:56px;min-width:56px;padding:0 20px 0 16px;border:none;border-radius:999px;
  background:var(--fc-forest);color:#fff;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:700;font-size:.9375rem;
  box-shadow:0 10px 28px rgba(13,43,31,.32),0 2px 6px rgba(13,43,31,.18);
}
.fa-chat-launch:hover{background:var(--fc-ink)}
.fa-chat-launch:focus-visible{outline:3px solid var(--fc-sprout);outline-offset:3px}
.fa-chat-launch svg{flex-shrink:0}
.fa-chat-badge{
  position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;
  background:var(--fc-urgent);color:#fff;font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;
}
@media (max-width:767px){
  .fa-chat-launch{right:16px;padding:0;width:56px;justify-content:center}
  .fa-chat-launch .fa-chat-launch-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
}

/* Panel */
.fa-chat-panel{
  position:fixed;right:20px;bottom:calc(var(--chat-bottom) + 68px);z-index:150;
  width:min(380px,calc(100vw - 40px));height:min(600px,calc(100dvh - var(--chat-bottom) - 100px));
  background:var(--fc-white);color:var(--fc-text);border:1px solid var(--fc-line);border-radius:18px;
  box-shadow:0 24px 60px rgba(13,43,31,.28);display:flex;flex-direction:column;overflow:hidden;
}
@media (prefers-reduced-motion:no-preference){
  .fa-chat-panel{animation:fa-chat-in .18s cubic-bezier(.2,.8,.2,1)}
  @keyframes fa-chat-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
}
/* Phones: full-screen sheet over the bottom nav, but stopping above anything another script
   pinned to the bottom (the cookie bar), whose height arrives as --chat-cover. */
@media (max-width:560px){
  .fa-chat-panel{top:0;left:0;right:0;bottom:var(--chat-cover,0px);width:auto;height:auto;border-radius:0;border:none}
}
.fa-chat-hd{background:var(--fc-ink);color:#fff;padding:12px 8px 12px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0}
.fa-chat-hd .t{font-weight:800;font-size:1rem;line-height:1.2;margin:0;color:#fff}
.fa-chat-hd .s{font-size:.78rem;color:rgba(255,255,255,.78);display:flex;align-items:center;gap:6px;margin-top:2px}
.fa-chat-hd .s i{width:8px;height:8px;border-radius:50%;background:var(--fc-sprout);display:inline-block;flex-shrink:0}
.fa-chat-hd .s.off i{background:rgba(255,255,255,.45)}
.fa-chat-x{margin-left:auto;width:44px;height:44px;border:none;border-radius:10px;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fa-chat-x:hover{background:rgba(255,255,255,.12)}
.fa-chat-x:focus-visible{outline:2px solid var(--fc-sprout);outline-offset:-2px}

.fa-chat-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--fc-canvas);overscroll-behavior:contain}
.fa-chat-notice{font-size:.78rem;line-height:1.5;color:var(--fc-muted);background:var(--fc-white);border:1px solid var(--fc-line);border-radius:12px;padding:10px 12px}
.fa-chat-notice a{color:var(--fc-forest);font-weight:700;text-decoration:underline}
.fa-chat-m{max-width:85%;padding:9px 12px;border-radius:14px;font-size:.9rem;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap}
.fa-chat-m.cust{align-self:flex-end;background:var(--fc-forest);color:#fff;border-bottom-right-radius:4px}
.fa-chat-m.admin,.fa-chat-m.ai{align-self:flex-start;background:var(--fc-white);color:var(--fc-text);border:1px solid var(--fc-line);border-bottom-left-radius:4px}
.fa-chat-m.ai{border-left:3px solid var(--fc-sprout)}
.fa-chat-m .who{display:block;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--fc-forest);margin-bottom:3px}
.fa-chat-m a{color:inherit;text-decoration:underline;font-weight:600}
.fa-chat-m .ph{display:block;margin:0 0 5px;line-height:0;text-decoration:none}
.fa-chat-m .ph img{display:block;max-width:100%;height:auto;border-radius:10px}
.fa-chat-hint{align-self:center;color:var(--fc-muted);font-size:.8rem;text-align:center;padding:6px 4px;line-height:1.5}
.fa-chat-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 14px;background:var(--fc-white);border:1px solid var(--fc-line);border-radius:14px}
.fa-chat-typing span{width:6px;height:6px;border-radius:50%;background:#94a3b8;opacity:.6}
@media (prefers-reduced-motion:no-preference){
  .fa-chat-typing span{animation:fa-chat-dot 1s infinite}
  .fa-chat-typing span:nth-child(2){animation-delay:.15s}.fa-chat-typing span:nth-child(3){animation-delay:.3s}
  @keyframes fa-chat-dot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
}

.fa-chat-ft{border-top:1px solid var(--fc-line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--fc-white);flex-shrink:0}
.fa-chat-human{display:block;width:100%;min-height:36px;background:none;border:none;color:var(--fc-forest);font:inherit;font-size:.8rem;font-weight:700;text-decoration:underline;cursor:pointer;padding:0 0 6px;text-align:left}
.fa-chat-guest{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.fa-chat-guest label{display:block;font-size:.72rem;font-weight:700;color:var(--fc-muted);margin-bottom:3px}
.fa-chat-guest input[type=text],.fa-chat-guest input[type=email]{
  width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--fc-line);border-radius:10px;font:inherit;font-size:.9rem;background:var(--fc-white);color:var(--fc-text)}
.fa-chat-optin{grid-column:1/-1;display:flex;align-items:flex-start;gap:9px;font-size:.78rem;line-height:1.4;color:var(--fc-muted);cursor:pointer;min-height:24px}
.fa-chat-optin input{width:18px;height:18px;margin:1px 0 0;flex-shrink:0;accent-color:var(--fc-forest)}
.fa-chat-form{display:flex;gap:8px;align-items:flex-end}
.fa-chat-form textarea{flex:1;min-height:44px;max-height:110px;padding:11px 12px;border:1px solid var(--fc-line);border-radius:10px;font:inherit;font-size:.9375rem;line-height:1.35;resize:none;background:var(--fc-white);color:var(--fc-text)}
.fa-chat-guest input:focus,.fa-chat-form textarea:focus{outline:none;border-color:var(--fc-fern);box-shadow:0 0 0 3px rgba(64,145,108,.18)}
.fa-chat-send{min-height:44px;padding:0 16px;border:none;border-radius:10px;background:var(--fc-fern);color:#fff;font:inherit;font-weight:800;font-size:.9rem;cursor:pointer;flex-shrink:0}
.fa-chat-send:hover{background:var(--fc-forest)}
.fa-chat-send:disabled{opacity:.55;cursor:default}
.fa-chat-send:focus-visible,.fa-chat-attach:focus-within,.fa-chat-human:focus-visible{outline:2px solid var(--fc-fern);outline-offset:2px}
.fa-chat-attach{position:relative;flex-shrink:0;width:44px;height:44px;border-radius:10px;border:1px solid var(--fc-line);background:var(--fc-white);color:var(--fc-muted);display:flex;align-items:center;justify-content:center;cursor:pointer}
.fa-chat-attach:hover{color:var(--fc-forest);border-color:var(--fc-fern)}
.fa-chat-attach input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
@media (max-width:380px){.fa-chat-guest{grid-template-columns:1fr}}
@media print{.fa-chat{display:none!important}}
