/* NCL v2 — Liz AI assistant widget. Floating launcher + panel, built entirely
   from the site's existing design tokens (see main.css :root). Loaded on every
   page except the pricing/gate flow and the calculator/embed (see main.js peers). */

#liz-launcher{
  position:fixed;right:var(--gut);bottom:var(--gut);z-index:400;
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  box-shadow:0 12px 40px rgba(17,17,16,.18);
  font-family:var(--serif);font-size:20px;font-weight:600;
  transition:background-color 150ms ease,transform 160ms var(--ease-out-strong);
}
#liz-launcher:hover{background:var(--orange-ink);border-color:var(--orange-ink)}
#liz-launcher:active{transform:scale(.96)}
#liz-launcher[aria-expanded="true"]{background:var(--orange-ink);border-color:var(--orange-ink)}
#liz-launcher .liz-launcher-icon{display:block;width:22px;height:22px}
#liz-launcher .liz-launcher-icon svg{display:block;width:100%;height:100%}
@media (prefers-reduced-motion:reduce){#liz-launcher{transition:none}}

#liz-panel{
  position:fixed;right:var(--gut);bottom:calc(var(--gut) + 68px);z-index:400;
  width:380px;max-width:calc(100vw - (2 * var(--gut)));
  height:min(600px,70vh);
  background:var(--paper);border:1px solid var(--rule);
  box-shadow:0 20px 60px rgba(17,17,16,.20);
  display:flex;flex-direction:column;overflow:hidden;
  opacity:0;visibility:hidden;transform:translateY(12px) scale(.98);transform-origin:bottom right;
  transition:opacity 160ms ease-out,transform 160ms var(--ease-out-strong),visibility 0s linear 160ms;
}
#liz-panel.open{opacity:1;visibility:visible;transform:translateY(0) scale(1);transition:opacity 160ms ease-out,transform 160ms var(--ease-out-strong)}
@media (prefers-reduced-motion:reduce){#liz-panel{transition:opacity 120ms ease-out;transform:none}}

.liz-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:16px 18px;border-bottom:1px solid var(--rule);background:var(--paper-deep);flex:none;
}
.liz-head-id{display:flex;align-items:baseline;gap:8px}
.liz-head h2{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink)}
.liz-head .liz-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.liz-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--muted);border-radius:2px}
.liz-close:hover{color:var(--ink);background:var(--rule)}
.liz-close svg{width:16px;height:16px}

.liz-body{flex:1 1 auto;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.liz-msg{max-width:86%;padding:10px 13px;font-size:14.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:break-word}
.liz-msg--bot{align-self:flex-start;background:var(--paper-deep);border:1px solid var(--rule);color:var(--ink)}
.liz-msg--user{align-self:flex-end;background:var(--ink);color:var(--paper)}
.liz-msg--error{align-self:flex-start;background:var(--paper-deep);border:1px solid var(--err);color:var(--err)}
.liz-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 13px;background:var(--paper-deep);border:1px solid var(--rule)}
.liz-typing span{width:5px;height:5px;border-radius:50%;background:var(--faint);animation:liz-blink 1.1s infinite ease-in-out}
.liz-typing span:nth-child(2){animation-delay:.15s}
.liz-typing span:nth-child(3){animation-delay:.3s}
@keyframes liz-blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media (prefers-reduced-motion:reduce){.liz-typing span{animation:none;opacity:.6}}

.liz-foot{flex:none;border-top:1px solid var(--rule);padding:12px;display:flex;gap:8px;align-items:flex-end}
.liz-input{
  flex:1 1 auto;resize:none;max-height:96px;padding:10px 12px;
  font:400 14.5px/1.4 var(--sans);color:var(--ink);
  background:var(--paper);border:1px solid var(--rule);
}
.liz-input:focus{outline:2px solid var(--blue);outline-offset:1px}
.liz-send{
  flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
}
.liz-send:hover{background:var(--orange-ink);border-color:var(--orange-ink)}
.liz-send:disabled{opacity:.4;pointer-events:none}
.liz-send svg{width:16px;height:16px}

.liz-note{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--faint);padding:0 18px 12px;flex:none}

@media (max-width:520px){
  #liz-panel{
    right:12px;left:12px;bottom:12px;width:auto;max-width:none;
    height:min(78vh,640px);
  }
  #liz-launcher{right:20px;bottom:20px}
}
