/* Site assistant (October 11) — same paper, ink and blue as the dock sheets */
.asst{position:fixed;z-index:70;right:24px;bottom:calc(24px + env(safe-area-inset-bottom));width:400px;height:min(640px,calc(100dvh - 48px));display:flex;flex-direction:column;background:var(--paper);border:1px solid rgba(32,33,36,.08);border-radius:26px;box-shadow:0 24px 60px rgba(32,33,36,.22);opacity:0;visibility:hidden;transform:translateY(18px) scale(.97);transform-origin:100% 100%;transition:opacity .25s,transform .45s cubic-bezier(.32,.72,0,1),visibility 0s .45s;font-size:15px;line-height:1.5}
.asst.open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .45s cubic-bezier(.32,.72,0,1)}
.asst .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.asst-head{display:flex;align-items:flex-start;gap:12px;padding:16px 14px 12px 18px;border-bottom:1px solid var(--line)}
.asst-id{flex:1;min-width:0}
.asst-title{margin:0;font:600 16px/1.3 Manrope,sans-serif}
.asst-badge{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:rgba(0,107,255,.1);color:var(--blue);font:700 11px/1.6 Manrope,sans-serif;letter-spacing:.04em;vertical-align:2px}
.asst-note{margin:2px 0 0;font-size:12.5px;line-height:1.4;color:var(--muted)}
.asst-x{flex-shrink:0;width:44px;height:44px;margin:-8px -4px 0 0;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer}
.asst-x:hover{background:var(--soft)}
.asst-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
/* the brand's moving cells, small: three dots that breathe while the agent works */
.asst-mark{flex-shrink:0;display:grid;grid-template-columns:repeat(3,6px);gap:3px;align-items:center;width:30px;height:30px;padding:0 3px;border-radius:9px;background:var(--ink)}
.asst-mark i{width:6px;height:6px;border-radius:1.6px;background:#fff}
.asst-mark i:nth-child(3){background:var(--blue);border-radius:50%}
.asst.busy .asst-head .asst-mark i{animation:asst-breathe 1.1s ease-in-out infinite}
.asst.busy .asst-head .asst-mark i:nth-child(2){animation-delay:.15s}
.asst.busy .asst-head .asst-mark i:nth-child(3){animation-delay:.3s}
@keyframes asst-breathe{50%{transform:scale(.55);opacity:.55}}
.asst-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}
.asst-msg{max-width:88%;padding:10px 14px;border-radius:18px;word-wrap:break-word}
.asst-msg p{margin:0}
.asst-msg p+p,.asst-msg p+ul,.asst-msg ul+p{margin-top:8px}
.asst-msg ul{margin:6px 0 0;padding-left:18px}
.asst-msg.bot{align-self:flex-start;background:var(--soft);border-bottom-left-radius:6px}
.asst-msg.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:6px}
.asst-msg.sys{align-self:stretch;max-width:none;background:none;border:1px dashed var(--line);font-size:14px}
.asst-link{display:inline-flex;align-items:center;gap:3px;margin:2px 0;padding:1px 9px 1px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--blue);font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.asst-link svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.asst-dots{display:inline-flex;gap:4px;padding:6px 2px}
.asst-dots i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:asst-breathe 1s ease-in-out infinite}
.asst-dots i:nth-child(2){animation-delay:.15s}.asst-dots i:nth-child(3){animation-delay:.3s}
.asst-chips{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 4px}
.asst-chip{min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:border-color .2s,background-color .2s}
.asst-chip:hover{border-color:var(--blue);background:rgba(0,107,255,.05)}
.asst-restart{align-self:center;margin-top:4px;min-height:44px;padding:8px 12px;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}
.asst-card{align-self:stretch;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:0 6px 20px rgba(32,33,36,.08)}
.asst-card.done{border-color:rgba(0,107,255,.35)}
.asst-card-t{margin:0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.asst-card label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.asst-card input,.asst-card textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:16px;line-height:1.45;resize:vertical}
.asst-card input:focus,.asst-card textarea:focus,.asst-form textarea:focus{outline:2px solid rgba(0,107,255,.35);outline-offset:0;border-color:var(--blue)}
.asst-card :disabled{background:var(--soft);color:var(--ink);-webkit-text-fill-color:var(--ink)}
.asst-card-err{margin:0;font-size:13px;color:#b42318}
.asst-card-ok{margin:0;font-weight:600;color:var(--blue)}
.asst-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.asst-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.asst-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 20px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 15px/1.2 'DM Sans',sans-serif;text-decoration:none;cursor:pointer}
.asst-btn.ghost{background:none;color:var(--ink);border:1px solid var(--line)}
.asst-btn:disabled{opacity:.6;cursor:default}
.asst-form{display:flex;align-items:flex-end;gap:8px;margin:0 12px;padding:6px 6px 6px 14px;border:1px solid var(--line);border-radius:24px;background:#fff}
.asst-form:focus-within{border-color:var(--blue)}
.asst-form textarea{flex:1;min-height:24px;max-height:120px;padding:6px 0;border:0;outline:0!important;background:none;color:var(--ink);font:inherit;font-size:16px;line-height:1.45;resize:none}
.asst-send{flex-shrink:0;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--blue);color:#fff;cursor:pointer;transition:opacity .2s}
.asst.busy .asst-send{opacity:.4;pointer-events:none}
.asst-send svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.asst-privacy{margin:8px 18px 14px;font-size:11.5px;line-height:1.4;color:var(--muted);text-align:center}
.asst-ts{margin:0 12px 8px}
/* resume pill after a link takes the visitor somewhere */
.asst-pill{position:fixed;z-index:45;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 16px 6px 8px;border:1px solid rgba(32,33,36,.08);border-radius:999px;background:var(--paper);color:var(--ink);font:600 14px/1.2 'DM Sans',sans-serif;box-shadow:0 10px 30px rgba(32,33,36,.16);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .35s cubic-bezier(.32,.72,0,1),visibility 0s .35s}
.asst-pill.show{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .35s cubic-bezier(.32,.72,0,1)}
.asst-pill .asst-mark{width:28px;height:28px}
/* entry in the Talk sheet and the contact blocks */
.asst-entry .asst-mark{width:30px;height:30px}
.button.button-ghost{margin-top:10px;background:none;color:var(--ink);border:1px solid var(--ink)}
@media(min-width:761px){.asst-pill{bottom:24px;right:24px}.button.button-ghost{margin-left:8px}}
@media(max-width:760px){
  .asst{left:0;right:0;bottom:0;width:auto;height:calc(100dvh - 44px - env(safe-area-inset-top));border-radius:26px 26px 0 0;transform:translateY(40px);transform-origin:50% 100%;padding-bottom:env(safe-area-inset-bottom)}
  .asst-msg{max-width:92%}
  html.asst-lock,html.asst-lock body{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){.asst,.asst.open,.asst-pill,.asst-pill.show{transition:opacity .2s,visibility 0s}.asst,.asst-pill{transform:none}.asst.busy .asst-head .asst-mark i,.asst-dots i{animation:none}}
