/* Sofia chat widget — uses the site's CSS variables so it follows light/dark. */
#sofia-root{position:fixed;right:20px;bottom:20px;z-index:9000;
  font-family:'Inter',system-ui,-apple-system,sans-serif}
#sofia-root *{box-sizing:border-box}

/* launcher */
#sofia-launch{display:flex;align-items:center;gap:10px;border:0;cursor:pointer;
  padding:0 6px 0 0;height:60px;border-radius:999px;background:var(--grad,#14b8a6);
  color:#06060c;font-family:inherit;font-weight:700;font-size:15px;
  box-shadow:0 12px 30px rgba(20,184,166,.34);transition:transform .15s,box-shadow .15s}
#sofia-launch:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(20,184,166,.44)}
#sofia-launch:focus-visible{outline:2px solid #fff;outline-offset:2px}
#sofia-launch .av{width:60px;height:60px;border-radius:50%;object-fit:cover;flex:0 0 auto;
  border:2px solid rgba(255,255,255,.6)}
#sofia-launch .lbl{padding-right:12px;white-space:nowrap}
#sofia-launch .dot{width:9px;height:9px;border-radius:50%;background:#16a34a;
  box-shadow:0 0 0 3px rgba(22,163,74,.25);margin-left:2px}
@media(max-width:480px){#sofia-launch .lbl{display:none}}

/* panel */
#sofia-panel{position:absolute;right:0;bottom:0;width:380px;max-width:calc(100vw - 32px);
  height:min(72vh,580px);display:none;flex-direction:column;overflow:hidden;
  background:var(--bg-2,#0a0a15);border:1px solid var(--line-2,rgba(255,255,255,.15));
  border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.5);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
#sofia-root.open #sofia-panel{display:flex;animation:sofia-in .18s ease-out}
#sofia-root.open #sofia-launch{display:none}
@keyframes sofia-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* header */
#sofia-head{display:flex;align-items:center;gap:11px;padding:14px 14px;
  background:linear-gradient(118deg,rgba(52,211,153,.16),rgba(251,191,36,.10));
  border-bottom:1px solid var(--line,rgba(255,255,255,.08))}
#sofia-head img{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 auto}
#sofia-head .meta{flex:1 1 auto;min-width:0}
#sofia-head .nm{font-family:'Space Grotesk','Inter',sans-serif;font-weight:700;
  font-size:16px;color:var(--txt,#f3f3f8);line-height:1.2}
#sofia-head .st{font-size:12.5px;color:var(--muted,#9b9bb2);display:flex;align-items:center;gap:6px}
#sofia-head .st .d{width:7px;height:7px;border-radius:50%;background:#16a34a}
#sofia-close{width:34px;height:34px;flex:0 0 auto;border:0;cursor:pointer;border-radius:9px;
  background:transparent;color:var(--muted,#9b9bb2);font-size:20px;line-height:1;transition:background .15s}
#sofia-close:hover{background:var(--card-2,rgba(255,255,255,.05));color:var(--txt,#f3f3f8)}

/* messages */
#sofia-msgs{flex:1 1 auto;overflow-y:auto;padding:16px 14px;display:flex;
  flex-direction:column;gap:10px;scroll-behavior:smooth}
.sofia-row{display:flex;gap:8px;max-width:88%}
.sofia-row.me{align-self:flex-end;flex-direction:row-reverse}
.sofia-row img{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:0 0 auto;align-self:flex-end}
.sofia-b{padding:10px 13px;border-radius:15px;font-size:14.5px;line-height:1.5;
  white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere}
.sofia-row.bot .sofia-b{background:var(--card-2,rgba(255,255,255,.06));color:var(--txt,#f3f3f8);
  border:1px solid var(--line,rgba(255,255,255,.08));border-bottom-left-radius:5px}
.sofia-row.me .sofia-b{background:var(--grad,#14b8a6);color:#06060c;font-weight:500;border-bottom-right-radius:5px}
.sofia-b a{color:inherit;text-decoration:underline;font-weight:700}
.sofia-row.bot .sofia-b a{color:var(--accent,#14b8a6)}

/* typing */
.sofia-typing{display:flex;gap:4px;padding:12px 14px}
.sofia-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted,#9b9bb2);
  animation:sofia-bounce 1.3s infinite}
.sofia-typing span:nth-child(2){animation-delay:.18s}
.sofia-typing span:nth-child(3){animation-delay:.36s}
@keyframes sofia-bounce{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}

/* input */
#sofia-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line,rgba(255,255,255,.08));
  background:var(--bg,#06060c)}
#sofia-in{flex:1 1 auto;resize:none;max-height:96px;min-height:42px;padding:10px 13px;
  border-radius:12px;border:1px solid var(--line-2,rgba(255,255,255,.15));
  background:var(--card,rgba(255,255,255,.028));color:var(--txt,#f3f3f8);
  font-family:inherit;font-size:14.5px;line-height:1.4;outline:none}
#sofia-in:focus{border-color:var(--accent,#14b8a6)}
#sofia-in::placeholder{color:var(--muted-2,#71718a)}
#sofia-send{flex:0 0 auto;width:42px;height:42px;border:0;cursor:pointer;border-radius:12px;
  background:var(--grad,#14b8a6);color:#06060c;display:flex;align-items:center;justify-content:center;
  transition:transform .12s,opacity .12s}
#sofia-send:hover{transform:translateY(-1px)}
#sofia-send:disabled{opacity:.45;cursor:default;transform:none}
#sofia-send svg{width:19px;height:19px}
#sofia-foot{text-align:center;font-size:11px;color:var(--muted-2,#71718a);padding:0 0 9px;background:var(--bg,#06060c)}
