.zp-fab{position:fixed;left:20px;bottom:20px;z-index:80;display:flex;align-items:center;gap:10px;height:52px;padding:0 20px 0 22px;border-radius:999px;border:0;background:#111;color:#fff;font-family:var(--font-body);font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 8px 24px rgba(17,17,17,.22);transition:transform .15s,background .15s;}
.zp-fab:hover{transform:translateY(-2px);background:#000;}
.zp-fab .zp-dot{width:9px;height:9px;border-radius:50%;background:var(--coral);flex-shrink:0;}
.zp-fab svg{width:20px;height:20px;flex-shrink:0;}
.zp-panel{position:fixed;left:20px;bottom:84px;z-index:81;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 110px);display:none;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 20px 50px rgba(17,17,17,.18);overflow:hidden;font-family:var(--font-body);}
.zp-panel.open{display:flex;}
.zp-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);}
.zp-head b{font-size:15px;}
.zp-head small{display:block;color:var(--text-secondary);font-size:12px;font-weight:400;}
.zp-head .zp-dot{width:9px;height:9px;border-radius:50%;background:var(--coral);}
.zp-close{margin-inline-start:auto;width:34px;height:34px;border-radius:50%;border:0;background:transparent;color:var(--text);font-size:22px;line-height:1;cursor:pointer;}
.zp-close:hover{background:var(--surface-alt);}
.zp-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
.zp-msg{max-width:86%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.9;white-space:pre-line;}
.zp-msg.bot{align-self:flex-start;background:var(--surface-alt);border-top-right-radius:4px;}
.zp-msg.me{align-self:flex-end;background:#111;color:#fff;border-top-left-radius:4px;}
.zp-msg a{color:var(--coral);font-weight:600;text-decoration:underline;}
.zp-chips{display:flex;flex-wrap:wrap;gap:8px;}
.zp-chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 14px;font-family:inherit;font-size:13px;cursor:pointer;transition:border-color .15s,background .15s;}
.zp-chip:hover{border-color:var(--coral);background:var(--surface-alt);}
.zp-contact{display:flex;flex-wrap:wrap;gap:8px;}
.zp-contact a{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:999px;background:var(--coral);color:#fff;font-size:13px;font-weight:600;text-decoration:none;}
.zp-contact a:hover{background:var(--coral-hover);}
.zp-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);}
.zp-form input{flex:1;height:42px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);padding:0 16px;font-family:inherit;font-size:14px;}
.zp-form input:focus{outline:2.5px solid var(--coral);outline-offset:1px;}
.zp-form button{height:42px;padding:0 18px;border-radius:999px;border:0;background:var(--coral);color:#fff;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;}
.zp-form button:hover{background:var(--coral-hover);}
@media(max-width:640px){
  .zp-fab{left:14px;bottom:14px;height:48px;padding:0 16px 0 18px;font-size:14px;}
  .zp-panel{left:8px;right:8px;bottom:72px;width:auto;max-width:none;height:70vh;}
}
@media(prefers-reduced-motion:reduce){.zp-fab{transition:none;}}
