/* Lead Engagement Agent — The Florida Home Market
   Self-contained widget styles (prefix .cma-) so nothing collides with site CSS. */
.cma-root{--cma-navy:var(--navy,#0B3B4A);--cma-slate:var(--slate,#176B73);--cma-gold:var(--gold,#E5A84B);
  --cma-ivory:var(--ivory,#F8FAF7);--cma-line:var(--line,#D8E3DF);--cma-muted:var(--muted,#60757A);
  --cma-ink:var(--ink,#17333A);--cma-white:#fff;
  font-family:inherit;position:fixed;right:20px;bottom:20px;z-index:9999}

/* ---------- launcher ---------- */
.cma-launcher{display:flex;align-items:center;gap:10px;border:none;cursor:pointer;
  background:var(--cma-navy);color:#fff;border-radius:999px;padding:14px 20px 14px 16px;
  font:inherit;font-weight:700;font-size:.95rem;box-shadow:0 14px 34px rgba(11,59,74,.32);
  transition:transform .18s ease,box-shadow .18s ease}
.cma-launcher:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(11,59,74,.4)}
.cma-launcher:focus-visible{outline:3px solid var(--cma-gold);outline-offset:3px}
.cma-launcher .cma-dot{width:9px;height:9px;border-radius:50%;background:var(--cma-gold);flex:none}
.cma-badge{position:absolute;top:-6px;right:-4px;background:var(--cma-gold);color:var(--cma-navy);
  font-size:.7rem;font-weight:800;border-radius:999px;padding:2px 7px;box-shadow:0 3px 10px rgba(0,0,0,.2)}
.cma-root.cma-open .cma-launcher{display:none}

/* ---------- panel ---------- */
.cma-panel{display:none;flex-direction:column;width:390px;max-width:calc(100vw - 32px);
  height:590px;max-height:calc(100vh - 40px);background:var(--cma-white);border:1px solid var(--cma-line);
  border-radius:18px;overflow:hidden;box-shadow:0 26px 70px rgba(11,59,74,.28)}
.cma-root.cma-open .cma-panel{display:flex}
.cma-head{background:var(--cma-navy);color:#fff;padding:16px 18px;display:flex;align-items:center;gap:12px;flex:none}
.cma-avatar{width:40px;height:40px;border-radius:50%;background:var(--cma-gold);color:var(--cma-navy);
  font-weight:800;display:flex;align-items:center;justify-content:center;flex:none;font-size:.95rem}
.cma-head h2{margin:0;font-size:1rem;line-height:1.25;color:#fff;font-weight:700}
.cma-head p{margin:2px 0 0;font-size:.78rem;opacity:.82;line-height:1.3}
.cma-close{margin-left:auto;background:transparent;border:none;color:#fff;font-size:1.5rem;line-height:1;
  cursor:pointer;padding:4px 6px;border-radius:8px;opacity:.85}
.cma-close:hover{opacity:1;background:rgba(255,255,255,.12)}
.cma-close:focus-visible{outline:2px solid var(--cma-gold);outline-offset:2px}

/* ---------- log ---------- */
.cma-log{flex:1;overflow-y:auto;padding:18px;background:var(--cma-ivory);display:flex;flex-direction:column;gap:10px}
.cma-msg{max-width:86%;padding:11px 14px;border-radius:14px;font-size:.92rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.cma-bot{align-self:flex-start;background:var(--cma-white);color:var(--cma-ink);border:1px solid var(--cma-line);border-bottom-left-radius:5px}
.cma-user{align-self:flex-end;background:var(--cma-navy);color:#fff;border-bottom-right-radius:5px}
.cma-msg a{color:var(--cma-slate);font-weight:600}
.cma-user a{color:#fff}
.cma-note{align-self:center;font-size:.75rem;color:var(--cma-muted);text-align:center;padding:2px 10px;line-height:1.4}

/* typing indicator */
.cma-typing{align-self:flex-start;background:var(--cma-white);border:1px solid var(--cma-line);
  border-radius:14px;border-bottom-left-radius:5px;padding:13px 15px;display:flex;gap:4px}
.cma-typing span{width:7px;height:7px;border-radius:50%;background:var(--cma-muted);opacity:.45;
  animation:cma-bounce 1.3s infinite}
.cma-typing span:nth-child(2){animation-delay:.18s}
.cma-typing span:nth-child(3){animation-delay:.36s}
@keyframes cma-bounce{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:.9}}

/* ---------- chips ---------- */
.cma-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 4px;background:var(--cma-ivory)}
.cma-chip{background:var(--cma-white);border:1.5px solid var(--cma-slate);color:var(--cma-slate);
  border-radius:999px;padding:9px 15px;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;
  transition:background .15s ease,color .15s ease}
.cma-chip:hover{background:var(--cma-slate);color:#fff}
.cma-chip:focus-visible{outline:3px solid var(--cma-gold);outline-offset:2px}

/* ---------- composer ---------- */
.cma-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--cma-line);background:var(--cma-white);flex:none;align-items:center}
.cma-input{flex:1;border:1px solid var(--cma-line);border-radius:999px;padding:11px 16px;font:inherit;
  font-size:.92rem;color:var(--cma-ink);background:var(--cma-white);min-width:0}
.cma-input:focus{outline:none;border-color:var(--cma-slate);box-shadow:0 0 0 3px rgba(23,107,115,.14)}
.cma-send{flex:none;width:42px;height:42px;border-radius:50%;border:none;background:var(--cma-navy);color:#fff;
  font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cma-send:hover{background:var(--cma-slate)}
.cma-send:disabled{opacity:.45;cursor:not-allowed}
.cma-send:focus-visible{outline:3px solid var(--cma-gold);outline-offset:2px}
.cma-foot{font-size:.7rem;color:var(--cma-muted);text-align:center;padding:0 12px 10px;background:var(--cma-white);line-height:1.4}
.cma-foot a{color:var(--cma-muted);text-decoration:underline}
.cma-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* ---------- mobile ---------- */
@media(max-width:520px){
  .cma-root{right:14px;bottom:14px;left:14px}
  .cma-launcher{width:100%;justify-content:center}
  .cma-panel{width:100%;height:min(78vh,560px)}
}
@media(prefers-reduced-motion:reduce){
  .cma-launcher,.cma-chip{transition:none}
  .cma-typing span{animation:none}
}
