.hb-root{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.hb-launcher,.hb-root{font-family:var(--sans)}.hb-launcher{background:var(--ink);color:var(--paper);border:none;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px oklch(.245 .012 60/.28);transition:background .2s var(--ease)}.hb-launcher:hover{background:oklch(.31 .012 60)}.hb-launcher:focus-visible{outline:2px solid var(--teal-deep);outline-offset:2px}.hb-panel{display:flex;flex-direction:column;width:380px;max-width:calc(100vw - 40px);height:540px;max-height:calc(100dvh - 110px);background:var(--card);border:1px solid var(--line-2);border-radius:10px;box-shadow:0 12px 40px oklch(.245 .012 60/.22);overflow:hidden}.hb-head{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--pine);color:var(--pine-ink)}.hb-title{font-weight:600;font-size:14px}.hb-badge{font-family:var(--sans);font-weight:600;font-size:10px;background:var(--line-pine);border-radius:4px;padding:2px 6px}.hb-close{margin-left:auto;background:none;border:none;color:var(--pine-ink);font-size:20px;line-height:1;cursor:pointer;padding:2px 6px}.hb-close:hover{color:#fff}.hb-scroll{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.hb-msg{max-width:88%;border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.45}.hb-msg p{margin:0}.hb-bot{background:var(--paper-2);color:var(--ink);align-self:flex-start}.hb-user{background:var(--pine);color:var(--pine-ink);align-self:flex-end}.hb-typing{color:var(--ink-3);font-style:italic}.hb-bot a{color:var(--teal-deep);text-decoration:underline}.hb-cta{display:inline-block;margin-top:8px;font-weight:600;font-size:13px}.hb-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.hb-chip{background:var(--card);border:1px solid var(--line-2);color:var(--ink);border-radius:999px;padding:6px 12px;font-family:var(--sans);font-size:12.5px;cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease)}.hb-chip:hover{border-color:var(--ink-3);background:var(--paper-2)}.hb-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--card)}.hb-input input{flex:1;border:1px solid var(--line-2);border-radius:7px;padding:9px 11px;font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--card)}.hb-input input:focus-visible{outline:2px solid var(--teal-deep);outline-offset:-1px}.hb-input button{background:var(--ink);color:var(--paper);border:none;border-radius:7px;padding:0 16px;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s var(--ease)}.hb-input button:hover{background:oklch(.31 .012 60)}.hb-input button:disabled{opacity:.5;cursor:default}.hb-foot{padding:8px 12px;font-size:11px;color:var(--ink-3);border-top:1px solid var(--line);background:var(--paper)}.hb-foot a{color:var(--teal-deep)}.hb-lead{gap:8px}.hb-lead,.hb-lead label{display:flex;flex-direction:column}.hb-lead label{gap:3px;font-size:12px;font-weight:600;color:var(--ink-2)}.hb-lead input,.hb-lead textarea{border:1px solid var(--line-2);border-radius:7px;padding:8px 10px;font-family:var(--sans);font-size:13px;font-weight:400;color:var(--ink);background:var(--card)}.hb-lead input:focus-visible,.hb-lead textarea:focus-visible{outline:2px solid var(--teal-deep);outline-offset:-1px}.hb-lead button{background:var(--ink);color:var(--paper);border:none;border-radius:7px;padding:9px 14px;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s var(--ease)}.hb-lead button:hover{background:oklch(.31 .012 60)}.hb-lead-error{color:#a83a20;font-size:12px;margin:0}@media (max-width:640px){.hb-root{right:12px;bottom:12px;left:12px;align-items:stretch}.hb-panel{width:100%;max-width:none;height:calc(100dvh - 90px)}.hb-launcher{align-self:flex-end}}@media (prefers-reduced-motion:no-preference){.hb-panel{animation:hb-rise .16s ease-out}@keyframes hb-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}