/* Website Assistant widget (Spanfold). Self-contained; every class starts with hlw-.
   Tenant colours arrive as CSS variables (--hl-p primary, --hl-a accent) set from /api/config.
   Uses the host page's Figtree font when it loads one, otherwise the system font. */
.hlw-launch,.hlw-panel,.hlw-bubble{--hl-p:#1D6B73;--hl-pd:#155359;--hl-a:#D97757;--hl-ad:#A84F31;--hl-ink:#10343B;--hl-text:#1A2B2F;--hl-mut:#4F6368;--hl-line:#D5DFDD;--hl-mist:#F2F6F5;--hl-foam:#E3F0EE;--hl-sand:#F6F1E8;
  font-family:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--hl-text);box-sizing:border-box;-webkit-font-smoothing:antialiased}
.hlw-panel *,.hlw-panel *::before,.hlw-panel *::after,.hlw-bubble *{box-sizing:border-box}
.hlw-launch:focus-visible,.hlw-panel :focus-visible,.hlw-bubble :focus-visible{outline:3px solid var(--hl-a);outline-offset:2px}

/* ---------- launcher ---------- */
.hlw-launch{position:fixed;right:20px;bottom:20px;z-index:9998;display:inline-flex;align-items:center;gap:10px;min-height:58px;padding:5px 22px 5px 5px;border:0;border-radius:999px;background:var(--hl-p);color:#fff;font:inherit;font-weight:700;font-size:16px;cursor:pointer;
  box-shadow:0 10px 28px rgba(16,52,59,.30),0 2px 6px rgba(16,52,59,.16);transition:background .15s,transform .15s}
.hlw-launch:hover{background:var(--hl-pd);transform:translateY(-1px)}
.hlw-launch[aria-expanded="true"]{background:var(--hl-ink)}
.hlw-launch .hlw-av{width:48px;height:48px;border:2px solid rgba(255,255,255,.85)}
.hlw-launch-t{white-space:nowrap}
.hlw-unread{position:absolute;top:2px;left:40px;width:14px;height:14px;border-radius:50%;background:var(--hl-a);border:2.5px solid #fff}
.hlw-unread[hidden]{display:none}
.hlw-pulse{animation:hlw-ring 1.1s ease-out 2}
@keyframes hlw-ring{0%{box-shadow:0 0 0 0 rgba(217,119,87,.65),0 10px 28px rgba(16,52,59,.3)}100%{box-shadow:0 0 0 22px rgba(217,119,87,0),0 10px 28px rgba(16,52,59,.3)}}

/* ---------- avatar ---------- */
.hlw-av{position:relative;display:flex;flex:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--hl-p);color:#fff;font-weight:800;font-size:17px}
.hlw-av svg{width:100%;height:100%;display:block}
.hlw-online{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;background:#3BB273;border:2px solid var(--hl-ink)}

/* ---------- greeting bubble ---------- */
.hlw-bubble{position:fixed;right:20px;bottom:92px;z-index:9998;width:316px;max-width:calc(100vw - 32px);padding:14px 14px 12px;background:#fff;border:1px solid var(--hl-line);border-radius:18px 18px 6px 18px;box-shadow:0 16px 40px rgba(16,52,59,.22);animation:hlw-rise .35s ease-out}
.hlw-bubble[hidden]{display:none}
@keyframes hlw-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.hlw-bubble-h{display:flex;align-items:center;gap:10px;margin:0 28px 8px 0}
.hlw-bubble-h .hlw-av{width:32px;height:32px;font-size:14px}
.hlw-bubble-h strong{font-size:14px;color:var(--hl-ink)}
.hlw-bubble-t{margin:0 0 10px;font-size:15px;line-height:1.45}
.hlw-bubble-x{position:absolute;top:6px;right:6px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:10px;color:var(--hl-mut);cursor:pointer}
.hlw-bubble-x:hover{background:var(--hl-mist)}

/* ---------- quick-reply chips (bubble, greeting, smalltalk) ---------- */
.hlw-qr{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.hlw-q{min-height:38px;padding:6px 14px;border:1.5px solid var(--hl-p);border-radius:999px;background:#fff;color:var(--hl-pd);font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-align:left}
.hlw-q:hover{background:var(--hl-p);color:#fff}
.hlw-q:disabled{opacity:.5;cursor:default;background:#fff;color:var(--hl-pd)}

/* ---------- panel ---------- */
.hlw-panel{position:fixed;right:20px;bottom:92px;z-index:9999;width:408px;max-width:calc(100vw - 32px);height:min(680px,calc(100vh - 116px));display:flex;flex-direction:column;background:#fff;border:1px solid var(--hl-line);border-radius:22px;box-shadow:0 22px 60px rgba(16,52,59,.26);overflow:hidden;animation:hlw-rise .22s ease-out}
.hlw-panel[hidden]{display:none}
.hlw-head{display:flex;align-items:center;gap:12px;padding:12px 8px 12px 14px;background:var(--hl-ink);color:#fff}
.hlw-head-t{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:0}
.hlw-head-t strong{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hlw-sub{font-size:12.5px;color:#BFDCDA}
.hlw-hb{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;background:transparent;border:0;border-radius:10px;cursor:pointer;color:#fff}
.hlw-hb:hover{background:rgba(255,255,255,.14)}
.hlw-hb[aria-pressed="true"]{background:rgba(255,255,255,.2)}
.hlw-hb[hidden]{display:none}
.hlw-tabs{display:flex;background:var(--hl-ink);padding:0 10px;gap:4px}
.hlw-tabs[hidden]{display:none}
.hlw-tab{flex:1;min-height:40px;border:0;background:transparent;color:#BFDCDA;font:inherit;font-size:14px;font-weight:700;cursor:pointer;border-bottom:3px solid transparent}
.hlw-tab[aria-selected="true"]{color:#fff;border-bottom-color:var(--hl-a)}
.hlw-tab .hlw-n{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:10px;background:rgba(255,255,255,.18);font-size:12px}
.hlw-notice{margin:0;padding:6px 14px;background:var(--hl-sand);border-bottom:1px solid #E8DFCF;font-size:12px;line-height:1.4;color:var(--hl-mut)}
.hlw-mode{display:flex;align-items:center;gap:8px;margin:0;padding:8px 14px;background:#FFF3E9;border-bottom:1px solid #F2C4AE;font-size:13.5px;color:var(--hl-ink)}
.hlw-mode[hidden]{display:none}
.hlw-mode b{flex:1}
.hlw-mode button{min-height:32px;padding:0 12px;border:1.5px solid var(--hl-ad);background:#fff;color:var(--hl-ad);border-radius:999px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.hlw-body{flex:1;min-height:0;display:flex;flex-direction:column}
.hlw-body[hidden]{display:none}
.hlw-log{flex:1;overflow-y:auto;padding:16px 14px 8px;background:var(--hl-mist);overscroll-behavior:contain}
.hlw-hood{flex:1;overflow-y:auto;padding:12px;background:#F7F8FB;overscroll-behavior:contain}
.hlw-hood[hidden]{display:none}

/* ---------- messages ---------- */
.hlw-row{display:flex;gap:8px;align-items:flex-end;margin:0 0 12px}
.hlw-row .hlw-av{width:28px;height:28px;font-size:12px}
.hlw-row.hlw-you{justify-content:flex-end}
.hlw-msg{padding:10px 14px;border-radius:18px;font-size:15px;line-height:1.5;max-width:86%;overflow-wrap:anywhere;min-width:0}
.hlw-msg p{margin:0 0 6px}.hlw-msg p:last-child{margin-bottom:0}
.hlw-you .hlw-msg{background:var(--hl-p);color:#fff;border-bottom-right-radius:6px}
.hlw-bot .hlw-msg{background:#fff;border:1px solid var(--hl-line);border-bottom-left-radius:6px}
.hlw-team .hlw-msg{background:#FFF8E6;border:1px solid #EBCB7E;border-bottom-left-radius:6px}
.hlw-who{display:block;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#8A6410;margin-bottom:2px}
.hlw-k-refusal .hlw-msg,.hlw-k-paused .hlw-msg{background:#FFF8F2;border-color:#F2C4AE}
.hlw-k-blocked .hlw-msg{background:#F4F5F7;border-color:#D3D7DE;color:#3E4A57}
.hlw-k-done .hlw-msg{background:var(--hl-foam);border-color:#B9D2D1}
.hlw-sys{margin:4px auto 12px;max-width:92%;text-align:center;font-size:12.5px;color:var(--hl-mut)}
.hlw-sys span{display:inline-block;padding:4px 12px;border-radius:999px;background:#fff;border:1px solid var(--hl-line)}
.hlw-tag{display:inline-block;margin:0 0 6px!important;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#FBE3D6;color:var(--hl-ad)}
.hlw-tag-gen{background:#E7ECF8;color:#2F4C8F}
.hlw-tag-live{background:#DDF2E6;color:#1E6B43}
.hlw-tag-block{background:#E4E7EC;color:#3E4A57}
.hlw-small{font-size:13px;color:var(--hl-mut)}
.hlw-mock{font-style:italic}
.hlw-error{font-size:14px;color:var(--hl-ad);margin:4px 0;font-weight:600}
.hlw-error:empty{display:none}
.hlw-typing{display:inline-flex;gap:4px;padding:14px 16px!important}
.hlw-typing i{width:7px;height:7px;border-radius:50%;background:var(--hl-p);animation:hlw-bob 1.1s infinite ease-in-out}
.hlw-typing i:nth-child(2){animation-delay:.15s}.hlw-typing i:nth-child(3){animation-delay:.3s}
@keyframes hlw-bob{0%,60%,100%{transform:none;opacity:.45}30%{transform:translateY(-4px);opacity:1}}

/* citations */
.hlw-answer{margin:0 0 8px}
.hlw-cite{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;margin:0 1px 0 4px;padding:0 6px;vertical-align:1px;background:var(--hl-foam);color:var(--hl-pd);border:1px solid #9CC4C1;border-radius:12px;font:700 12px "Figtree",system-ui,sans-serif;cursor:pointer}
.hlw-cite:hover,.hlw-cite[aria-expanded="true"]{background:var(--hl-p);color:#fff;border-color:var(--hl-p)}
.hlw-card{margin:8px 0;padding:10px 12px;background:var(--hl-sand);border:1px solid #E8DFCF;border-left:4px solid var(--hl-a);border-radius:8px;font-size:14px}
.hlw-card[hidden]{display:none}
.hlw-card-title{margin:0 0 4px;font-weight:700;font-size:13px;color:var(--hl-ink)}
.hlw-quote{margin:4px 0 8px;padding:0 0 0 10px;border-left:2px solid #D5C7AE;font-size:14px;font-style:italic;overflow-wrap:anywhere}
.hlw-view{font-size:14px;font-weight:600;color:var(--hl-pd)}.hlw-ver{font-size:12px;color:var(--hl-mut)}
.hlw-srclist{margin:8px 0 0;padding:8px 0 0;border-top:1px solid #EEF2F1;font-size:12.5px;color:var(--hl-mut)}
.hlw-partial{margin:8px 0 0;padding:8px 10px;border-radius:10px;background:#FFF6E0;border:1px dashed #E2B65A;font-size:14px}
.hlw-partial b{display:block;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#8A6410}

/* buttons */
.hlw-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:0 18px;background:var(--hl-p);color:#fff;border:0;border-radius:999px;font:inherit;font-size:14.5px;font-weight:700;cursor:pointer;text-decoration:none}
.hlw-btn:hover{background:var(--hl-pd);color:#fff}.hlw-btn:disabled{opacity:.6;cursor:wait}
.hlw-btn-a{background:var(--hl-a)}.hlw-btn-a:hover{background:var(--hl-ad)}
.hlw-btn-o{background:#fff;color:var(--hl-pd);border:1.5px solid var(--hl-p)}.hlw-btn-o:hover{background:var(--hl-foam);color:var(--hl-pd)}
.hlw-acts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 2px}

/* slot picker */
.hlw-slots{display:grid;gap:8px;margin:10px 0 2px}
.hlw-slot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 12px;width:100%;padding:10px 12px;border:1.5px solid var(--hl-line);border-radius:14px;background:#fff;font:inherit;color:var(--hl-text);text-align:left;cursor:pointer}
.hlw-slot:hover{border-color:var(--hl-p);background:#F8FBFB}
.hlw-slot[aria-pressed="true"]{border-color:var(--hl-p);background:var(--hl-foam);box-shadow:inset 0 0 0 1px var(--hl-p)}
.hlw-slot:disabled{cursor:default;opacity:.55}
.hlw-slot[aria-pressed="true"]:disabled{opacity:1}
.hlw-cal{grid-row:span 2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:52px;border-radius:10px;background:var(--hl-ink);color:#fff;line-height:1.05}
.hlw-cal small{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#BFDCDA}
.hlw-cal b{font-size:20px}
.hlw-slot-t{font-weight:800;font-size:15px}
.hlw-slot-m{grid-column:2;font-size:13px;color:var(--hl-mut)}
.hlw-fee{grid-row:span 2;font-weight:800;color:var(--hl-pd)}

/* forms */
.hlw-form-in{margin-top:10px;padding-top:10px;border-top:1px dashed #E0C9B7}
.hlw-form-h{font-weight:800;color:var(--hl-ink);margin:0 0 2px!important}
.hlw-label{display:block;margin:8px 0 0;font-size:13.5px;font-weight:700}
.hlw-field{display:block;width:100%;margin-top:4px;min-height:44px;padding:9px 12px;border:1.5px solid #B8C8C6;border-radius:12px;font:inherit;font-size:16px;background:#fff;color:var(--hl-text)}
.hlw-field:focus{border-color:var(--hl-p);outline:none}
.hlw-consent{display:flex;gap:10px;align-items:flex-start;margin:10px 0 0;font-size:13.5px;line-height:1.4}
.hlw-consent input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--hl-p)}
.hlw-inline{display:flex;gap:8px;margin-top:8px}
.hlw-inline .hlw-field{margin:0;flex:1;text-transform:uppercase}
.hlw-inline .hlw-btn{flex:none}

/* confirmation, facts */
.hlw-conf{margin:8px 0 0;border-radius:14px;overflow:hidden;border:1px solid #B9D2D1;background:#fff}
.hlw-conf-h{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--hl-p);color:#fff;font-weight:800}
.hlw-conf-h span{margin-left:auto;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.18);font-size:13px;letter-spacing:.04em}
.hlw-conf dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;padding:10px 12px;font-size:14px}
.hlw-conf dt{color:var(--hl-mut)}.hlw-conf dd{margin:0;font-weight:600}
.hlw-conf-f{padding:0 12px 12px}
.hlw-setup{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:6px;background:#FFF0D6;color:#8A5A00;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}
.hlw-preview summary{cursor:pointer;font-size:13.5px;font-weight:700;color:var(--hl-pd);margin-top:8px}
.hlw-preview pre{margin:6px 0 0;max-height:180px;overflow:auto;padding:8px 10px;background:#F7F8FB;border:1px solid #E2E6EE;border-radius:8px;font:12px/1.45 ui-monospace,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.hlw-facts{display:grid;gap:6px;margin:8px 0 2px}
.hlw-fact{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--hl-mist);border:1px solid var(--hl-line);font-size:14px}
.hlw-fact i{flex:none;width:10px;height:10px;border-radius:50%;background:#9AA5AE}
.hlw-fact i.on{background:#3BB273;box-shadow:0 0 0 3px #D6F0E0}
.hlw-fact b{display:block}
.hlw-big{font-size:22px;font-weight:800;color:var(--hl-ink)}

/* composer */
.hlw-form{display:flex;gap:8px;align-items:center;padding:10px 12px;border-top:1px solid var(--hl-line);background:#fff}
.hlw-input{flex:1;min-width:0;min-height:46px;padding:10px 14px;border:1.5px solid #B8C8C6;border-radius:999px;font:inherit;font-size:16px;background:#fff;color:var(--hl-text)}
.hlw-input:focus{border-color:var(--hl-p);outline:none}
.hlw-send,.hlw-mic{display:flex;align-items:center;justify-content:center;flex:none;width:46px;height:46px;border:0;border-radius:50%;cursor:pointer}
.hlw-send{background:var(--hl-p);color:#fff}.hlw-send:hover{background:var(--hl-pd)}.hlw-send:disabled{opacity:.5;cursor:wait}
.hlw-mic{background:var(--hl-mist);color:var(--hl-ink)}.hlw-mic:hover{background:var(--hl-foam)}
.hlw-mic[aria-pressed="true"]{background:var(--hl-a);color:#fff;animation:hlw-bob 1.2s infinite}
.hlw-mic[hidden]{display:none}
.hlw-tools{display:flex;flex-wrap:wrap;gap:4px 14px;padding:0 14px 8px;background:#fff}
.hlw-tool{padding:4px 0;border:0;background:none;font:inherit;font-size:13px;font-weight:700;color:var(--hl-pd);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.hlw-foot{padding:6px 14px 10px;background:#fff;border-top:1px solid #EEF2F1}
.hlw-model,.hlw-spend{margin:0;font-size:11.5px;line-height:1.4;color:#5E7176}
.hlw-spend:empty{display:none}.hlw-spend{margin-top:2px}

/* end-chat confirm */
.hlw-end{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(16,52,59,.55)}
.hlw-end[hidden]{display:none}
.hlw-end div{max-width:300px;padding:18px;border-radius:16px;background:#fff;text-align:center}
.hlw-end p{margin:0 0 12px;font-size:15px}
.hlw-end .hlw-acts{justify-content:center}

/* ---------- Under the hood cards (also used by the demo page) ---------- */
.hlw-hood-empty{margin:24px 8px;text-align:center;font-size:14px;color:#5B6576}
.uth-card{margin:0 0 12px;padding:12px 14px;background:#fff;border:1px solid #DCE1EA;border-radius:14px;font:14px/1.45 "Figtree",system-ui,sans-serif;color:#1F2937;animation:hlw-rise .3s ease-out}
.uth-top{display:flex;align-items:baseline;gap:8px;margin:0 0 8px}
.uth-n{font-size:12px;font-weight:800;color:#5B6576}
.uth-q{flex:1;font-weight:700;overflow-wrap:anywhere}
.uth-out{flex:none;padding:2px 8px;border-radius:6px;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#E5EAF3;color:#334155}
.uth-out.ok{background:#DDF2E6;color:#1E6B43}.uth-out.warn{background:#FFF0D6;color:#8A5A00}.uth-out.stop{background:#FBE3DE;color:#9A3412}
.uth-steps{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.uth-steps>li{display:grid;grid-template-columns:20px 112px 1fr;gap:8px;align-items:start;font-size:13.5px}
.uth-ic{width:18px;height:18px;margin-top:1px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#fff;background:#9AA5AE}
.uth-ic.ok{background:#2E9E62}.uth-ic.warn{background:#D98E04}.uth-ic.stop{background:#C2410C}.uth-ic.na{background:#C5CBD3}
.uth-k{color:#5B6576;font-weight:700}
.uth-v{overflow-wrap:anywhere}
.uth-v ul{margin:2px 0 0;padding-left:16px}
.uth-v a{color:#2450C8}
.uth-v code{font:12px ui-monospace,Menlo,monospace;background:#F1F4F9;padding:1px 4px;border-radius:4px}
@media (max-width:420px){.uth-steps>li{grid-template-columns:20px 1fr}.uth-steps .uth-v{grid-column:2}}

/* ---------- phones: full-screen sheet ---------- */
@media (max-width:520px){
  .hlw-panel{inset:0;width:auto;max-width:none;height:100%;height:100dvh;border-radius:0;border:0;animation:hlw-sheet .25s ease-out}
  @keyframes hlw-sheet{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
  .hlw-launch{right:14px;bottom:14px;min-height:54px;padding:4px 18px 4px 4px;font-size:15px}
  .hlw-launch .hlw-av{width:46px;height:46px}
  .hlw-bubble{right:14px;bottom:80px}
  html.hlw-open .hlw-launch,html.hlw-open .hlw-bubble{display:none}
  html.hlw-open,html.hlw-open body{overflow:hidden}
  .hlw-msg{max-width:90%}
}
@media (prefers-reduced-motion:reduce){
  .hlw-launch,.hlw-panel,.hlw-bubble,.hlw-typing i,.hlw-mic,.uth-card{transition:none!important;animation:none!important}
}
