/* Ask — floating site assistant chat */
   Bottom-LEFT launcher (bottom-right is reserved for the site's register fab).
   All classes prefixed .asf- to stay out of the host page's way. */

.asf-root{
  --asf-brass:oklch(0.735 0.11 78);
  --asf-brass-deep:oklch(0.60 0.11 70);
  --asf-limestone:oklch(0.958 0.015 85);
  --asf-limestone-dark:oklch(0.90 0.021 83);
  --asf-pine:oklch(0.30 0.058 155);
  --asf-pine-deep:oklch(0.185 0.045 155);
  --asf-pine-fg:oklch(0.97 0.014 95);
  --asf-oxblood:oklch(0.395 0.115 25);
  --asf-ink:oklch(0.225 0.032 155);
  --asf-muted:oklch(0.475 0.026 155);
  --asf-radius:0.85rem;
  --asf-ease:cubic-bezier(0.22,1,0.36,1);
  --asf-lift:0 10px 15px oklch(0.2 0.03 155/.07),0 30px 60px -18px oklch(0.2 0.03 155/.28);
  font-family:'Manrope',ui-sans-serif,system-ui,sans-serif;
  position:fixed;z-index:2147483000;left:0;bottom:0;width:0;height:0;
}
.asf-root *,.asf-root *::before,.asf-root *::after{box-sizing:border-box;margin:0;padding:0}

/* ---------- launcher (bottom-left) ---------- */
.asf-launcher{
  position:fixed;left:18px;bottom:18px;z-index:2147483000;
  display:inline-flex;align-items:center;gap:10px;
  font:800 .875rem/1 'Manrope',sans-serif;letter-spacing:.01em;cursor:pointer;
  color:oklch(0.185 0.045 155);
  background:linear-gradient(135deg,var(--asf-brass) 0%,var(--asf-brass-deep) 100%);
  border:1px solid oklch(0.6 0.11 70/.6);border-radius:999px;
  padding:.85rem 1.25rem .85rem 1rem;
  box-shadow:0 6px 18px oklch(0.6 0.11 70/.4),0 2px 6px oklch(0.2 0.03 155/.2);
  transition:transform .35s var(--asf-ease),box-shadow .35s var(--asf-ease);
  animation:asf-in .7s var(--asf-ease) both;
}
.asf-launcher:hover{transform:translateY(-2px);box-shadow:0 10px 26px oklch(0.6 0.11 70/.5)}
.asf-launcher:focus-visible{outline:3px solid var(--asf-pine-deep);outline-offset:2px}
.asf-launcher .asf-bubble{font-size:1.05rem;line-height:1}
.asf-root[data-open="1"] .asf-launcher{opacity:0;pointer-events:none;transform:translateY(8px)}
@keyframes asf-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- panel ---------- */
.asf-panel{
  position:fixed;left:18px;bottom:18px;z-index:2147483001;
  width:380px;height:560px;max-height:calc(100svh - 36px);
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--asf-limestone);
  border:1px solid var(--asf-limestone-dark);border-radius:var(--asf-radius);
  box-shadow:var(--asf-lift);
  opacity:0;transform:translateY(18px) scale(.98);pointer-events:none;
  transition:opacity .4s var(--asf-ease),transform .4s var(--asf-ease);
}
.asf-root[data-open="1"] .asf-panel{opacity:1;transform:none;pointer-events:auto}
@media (max-width:640px){
  .asf-panel{left:0;bottom:0;right:0;top:0;width:auto;height:auto;max-height:none;border-radius:0;border:0}
}

/* header */
.asf-head{
  flex:none;display:flex;align-items:center;gap:12px;
  padding:14px 16px;color:var(--asf-pine-fg);
  background:linear-gradient(160deg,oklch(0.22 0.05 155),var(--asf-pine-deep));
  border-bottom:2px solid var(--asf-brass);
}
.asf-avatar{
  flex:none;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;font-size:1.05rem;
  background:oklch(0.735 0.11 78/.18);border:1px solid oklch(0.735 0.11 78/.5);
}
.asf-head-txt{min-width:0;flex:1}
.asf-title{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.25rem;line-height:1.1;
}
.asf-title em{font-style:italic;color:var(--asf-brass)}
.asf-sub{
  font-size:.6563rem;font-weight:600;letter-spacing:.06em;
  color:oklch(0.97 0.014 95/.6);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.asf-close{
  flex:none;width:32px;height:32px;border-radius:50%;cursor:pointer;
  background:oklch(0.97 0.014 95/.08);border:1px solid oklch(0.97 0.014 95/.2);
  color:var(--asf-pine-fg);font-size:.95rem;line-height:1;display:grid;place-items:center;
  transition:background .3s var(--asf-ease);
}
.asf-close:hover{background:oklch(0.97 0.014 95/.18)}
.asf-close:focus-visible{outline:2px solid var(--asf-brass);outline-offset:2px}

/* messages */
.asf-msgs{
  flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;
  scroll-behavior:smooth;overscroll-behavior:contain;
}
.asf-msg{
  max-width:85%;padding:.65rem .85rem;border-radius:14px;
  font-size:.8438rem;line-height:1.55;color:var(--asf-ink);
  white-space:pre-wrap;overflow-wrap:break-word;
  animation:asf-msg-in .4s var(--asf-ease) both;
}
@keyframes asf-msg-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.asf-msg.asf-bot{
  align-self:flex-start;background:#fff;border:1px solid var(--asf-limestone-dark);
  border-bottom-left-radius:5px;
  box-shadow:0 1px 2px oklch(0.2 0.03 155/.05),0 3px 12px oklch(0.2 0.03 155/.05);
}
.asf-msg.asf-user{
  align-self:flex-end;color:var(--asf-pine-fg);
  background:linear-gradient(150deg,var(--asf-pine),var(--asf-pine-deep));
  border-bottom-right-radius:5px;
}
.asf-msg.asf-err{border-color:oklch(0.395 0.115 25/.35);color:var(--asf-oxblood)}
.asf-linkbtn{
  display:inline-block;margin:.45rem .35rem 0 0;padding:.45rem .8rem;
  font:700 .75rem/1.1 'Manrope',sans-serif;text-decoration:none;
  color:oklch(0.185 0.045 155);border-radius:999px;
  background:linear-gradient(135deg,var(--asf-brass),var(--asf-brass-deep));
  box-shadow:0 3px 10px oklch(0.6 0.11 70/.3);
  transition:transform .3s var(--asf-ease),box-shadow .3s var(--asf-ease);
}
.asf-linkbtn:hover{transform:translateY(-1px);box-shadow:0 6px 16px oklch(0.6 0.11 70/.4)}
.asf-linkbtn:focus-visible{outline:2px solid var(--asf-pine-deep);outline-offset:2px}

/* typing indicator */
.asf-typing{align-self:flex-start;display:inline-flex;gap:5px;align-items:center;
  background:#fff;border:1px solid var(--asf-limestone-dark);border-radius:14px;
  border-bottom-left-radius:5px;padding:.7rem .9rem}
.asf-typing i{
  width:6px;height:6px;border-radius:50%;background:var(--asf-brass-deep);
  animation:asf-dot 1.2s var(--asf-ease) infinite;
}
.asf-typing i:nth-child(2){animation-delay:.15s}
.asf-typing i:nth-child(3){animation-delay:.3s}
@keyframes asf-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}

/* starter chips */
.asf-chips{flex:none;display:flex;flex-wrap:wrap;gap:7px;padding:6px 14px 10px}
.asf-chip{
  font:600 .7188rem/1.2 'Manrope',sans-serif;cursor:pointer;color:var(--asf-pine);
  background:#fff;border:1px solid var(--asf-limestone-dark);border-radius:999px;
  padding:.5rem .85rem;transition:border-color .3s var(--asf-ease),transform .3s var(--asf-ease);
}
.asf-chip:hover{border-color:var(--asf-brass);transform:translateY(-1px)}
.asf-chip:focus-visible{outline:2px solid var(--asf-brass);outline-offset:1px}

/* composer */
.asf-form{
  flex:none;display:flex;gap:8px;padding:10px 12px 12px;
  background:oklch(0.97 0.012 85);border-top:1px solid var(--asf-limestone-dark);
}
.asf-input{
  flex:1;min-width:0;font:500 .8438rem/1.3 'Manrope',sans-serif;color:var(--asf-ink);
  background:#fff;border:1px solid var(--asf-limestone-dark);
  border-radius:calc(var(--asf-radius) - 4px);padding:.72rem .9rem;
  transition:border-color .3s var(--asf-ease);
}
.asf-input::placeholder{color:oklch(0.475 0.026 155/.7)}
.asf-input:focus{outline:none;border-color:var(--asf-brass)}
.asf-send{
  flex:none;width:44px;border:0;border-radius:calc(var(--asf-radius) - 4px);cursor:pointer;
  color:oklch(0.185 0.045 155);font-size:1rem;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--asf-brass),var(--asf-brass-deep));
  box-shadow:0 3px 10px oklch(0.6 0.11 70/.3);
  transition:transform .3s var(--asf-ease),filter .3s var(--asf-ease);
}
.asf-send:hover{transform:translateY(-1px);filter:brightness(1.05)}
.asf-send:disabled{opacity:.55;cursor:default;transform:none}
.asf-send:focus-visible{outline:2px solid var(--asf-pine-deep);outline-offset:2px}
.asf-note{
  flex:none;text-align:center;font-size:.5938rem;letter-spacing:.04em;
  color:oklch(0.475 0.026 155/.75);padding:0 12px 9px;background:oklch(0.97 0.012 85);
}

/* ---------- position variant (estate rollout) ----------
   default = bottom-LEFT (Sofia). data-position="right" flips launcher + panel. */
.asf-root[data-pos="right"] .asf-launcher{left:auto;right:18px}
.asf-root[data-pos="right"] .asf-panel{left:auto;right:18px}
@media (max-width:640px){
  .asf-root[data-pos="right"] .asf-panel{left:0;right:0}
}

@media (prefers-reduced-motion:reduce){
  .asf-root *,.asf-launcher{animation:none!important;transition:none!important}
}
