@import url("/theme.css");
/* Website chat assistant. Bottom-right; the cookie-settings button owns bottom-left. */
.zl-chat{position:fixed;right:16px;bottom:16px;z-index:9990;display:flex;flex-direction:column;align-items:flex-end;gap:12px;font-size:15px;line-height:1.5}
.zl-chat [hidden]{display:none !important}
.zl-chat-launcher{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 18px;cursor:pointer;
  font:inherit;font-weight:700;color:hsl(var(--t-ink));background:hsl(var(--t-primary));
  border:var(--t-stroke) solid hsl(var(--t-outline));border-radius:999px;box-shadow:4px 4px 0 hsl(var(--t-accent));
  transition:transform .15s ease,box-shadow .15s ease}
.zl-chat-launcher:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 hsl(var(--t-accent))}
.zl-chat-launcher:focus-visible,.zl-chat button:focus-visible,.zl-chat a:focus-visible,.zl-chat-input:focus-visible{outline:3px solid hsl(var(--t-info));outline-offset:2px}
.zl-chat-launcher-dot{width:10px;height:10px;border-radius:50%;background:hsl(var(--t-info));box-shadow:0 0 0 3px hsl(var(--t-ink) / .35)}
.zl-chat.is-open .zl-chat-launcher{display:none}

.zl-chat-panel{display:flex;flex-direction:column;width:min(380px,calc(100vw - 32px));height:min(560px,calc(100vh - 32px));
  color:hsl(var(--t-fg));background:hsl(var(--t-surface));border:var(--t-stroke) solid hsl(var(--t-outline));
  border-radius:var(--t-radius);box-shadow:var(--t-offset) var(--t-offset) 0 hsl(var(--t-accent));overflow:hidden}
.zl-chat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;
  background:hsl(var(--t-bg-alt));border-bottom:2px solid hsl(var(--t-border))}
.zl-chat-head strong{font-family:var(--t-font-display);font-weight:400;font-size:1.05rem;color:hsl(var(--t-primary))}
.zl-chat-actions{display:flex;align-items:center;gap:6px}
.zl-chat-reset,.zl-chat-close{min-height:36px;padding:4px 10px;cursor:pointer;font:inherit;font-size:.8rem;color:hsl(var(--t-muted));
  background:transparent;border:1px solid hsl(var(--t-border));border-radius:8px}
.zl-chat-close{min-width:36px;font-size:1.2rem;line-height:1}
.zl-chat-reset:hover,.zl-chat-close:hover{color:hsl(var(--t-fg));border-color:hsl(var(--t-outline) / .6)}

.zl-chat-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.zl-chat-msg{max-width:88%;padding:9px 12px;border-radius:12px;overflow-wrap:anywhere}
.zl-chat-msg p{margin:0}
.zl-chat-msg p+p,.zl-chat-msg ul+p,.zl-chat-msg p+ul{margin-top:6px}
.zl-chat-msg ul{margin:0;padding-left:18px;list-style:disc}
.zl-chat-msg a{color:hsl(var(--t-primary));text-decoration:underline}
.zl-chat-assistant{align-self:flex-start;background:hsl(var(--t-bg-alt));border:1px solid hsl(var(--t-border))}
.zl-chat-user{align-self:flex-end;white-space:pre-wrap;color:hsl(var(--t-ink));background:hsl(var(--t-warn))}
.zl-chat-typing{color:hsl(var(--t-muted));font-style:italic}
.zl-chat-error{border-color:hsl(var(--t-danger));color:hsl(var(--t-danger))}

.zl-chat-chips{display:flex;flex-wrap:wrap;gap:6px}
.zl-chat-chip{min-height:36px;padding:6px 12px;cursor:pointer;font:inherit;font-size:.85rem;color:hsl(var(--t-fg));
  background:transparent;border:1px solid hsl(var(--t-info));border-radius:999px}
.zl-chat-chip:hover{background:hsl(var(--t-info) / .15)}

.zl-chat-handoff{padding:10px 12px;border:2px dashed hsl(var(--t-info));border-radius:12px;background:hsl(var(--t-info) / .08)}
.zl-chat-handoff p{margin:0 0 6px;font-weight:700}
.zl-chat-handoff blockquote{margin:0 0 10px;padding-left:10px;border-left:3px solid hsl(var(--t-border));color:hsl(var(--t-muted));font-size:.9rem;white-space:pre-wrap}
.zl-chat-cta-row{display:flex;flex-wrap:wrap;gap:8px}
.zl-chat-cta{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;font-weight:700;font-size:.9rem;text-decoration:none;border-radius:10px;border:2px solid hsl(var(--t-outline))}
.zl-chat-wa{color:hsl(var(--t-fg));background:hsl(160 85% 20%)}
.zl-chat-mail{color:hsl(var(--t-ink));background:hsl(var(--t-primary))}

.zl-chat-ended{margin:0;padding:8px 10px;font-size:.85rem;text-align:center;color:hsl(var(--t-muted));border:1px dashed hsl(var(--t-border));border-radius:10px}
.zl-chat-input:disabled{opacity:.5;cursor:not-allowed}
.zl-chat-note{margin:0;padding:6px 14px;font-size:.75rem;color:hsl(var(--t-muted));border-top:1px solid hsl(var(--t-border))}
.zl-chat-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 12px}
.zl-chat-input{flex:1;min-height:44px;max-height:120px;resize:none;overflow-y:hidden;padding:10px 12px;font:inherit;color:hsl(var(--t-fg));
  background:hsl(var(--t-bg));border:2px solid hsl(var(--t-border));border-radius:10px}
.zl-chat-input:focus{border-color:hsl(var(--t-primary))}
.zl-chat-send{min-height:44px;padding:8px 14px;cursor:pointer;font:inherit;font-weight:700;color:hsl(var(--t-ink));
  background:hsl(var(--t-primary));border:2px solid hsl(var(--t-outline));border-radius:10px}
.zl-chat-send:disabled{opacity:.55;cursor:wait}

@media (max-width:520px){
  .zl-chat{right:12px;bottom:12px;left:auto}
  .zl-chat-launcher{min-height:44px;padding:8px 14px}
  .zl-chat.is-open{left:8px;right:8px;bottom:8px}
  .zl-chat-panel{width:100%;height:min(600px,calc(100dvh - 16px))}
  .zl-chat-input{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.zl-chat-launcher{transition:none}.zl-chat-launcher:hover{transform:none}}
