.ha-launcher{position:fixed;z-index:90;right:calc(1rem + env(safe-area-inset-right, 0px));bottom:calc(1rem + env(safe-area-inset-bottom, 0px));display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;max-width:calc(100vw - 2rem);padding:.5rem 1rem .5rem .625rem;border:1px solid var(--rp-line);border-radius:999px;background:var(--rp-white);color:var(--rp-ink-900);font-family:var(--font-display);font-weight:700;font-size:.875rem;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-lg);transition:background .15s ease-out,border-color .15s ease-out,bottom .22s ease-out}.ha-launcher>svg{flex:none;width:1.75rem;height:1.75rem;padding:.25rem;border-radius:999px;background:var(--rp-blue-600);color:var(--rp-white)}.ha-launcher:hover{background:var(--rp-blue-50);border-color:var(--rp-blue-600);color:var(--rp-ink-900)}.ha-launcher:focus-visible{outline:3px solid var(--rp-blue-600);outline-offset:2px}.ha-launcher.is-open{border-color:var(--rp-blue-600)}.ha-launcher-text{overflow:hidden;text-overflow:ellipsis}.ha-launcher-chip{display:none;flex:none;padding:.0625rem .375rem;border-radius:.3125rem;background:var(--rp-ink-900);color:var(--rp-white);font-size:.6875rem;font-weight:800;letter-spacing:.04em}.ha-panel{position:fixed;z-index:90;right:calc(1rem + env(safe-area-inset-right, 0px));bottom:calc(4.5rem + env(safe-area-inset-bottom, 0px));width:min(25rem,calc(100vw - 2rem));height:min(38rem,calc(100vh - 7rem));display:flex;flex-direction:column;background:var(--rp-white);color:var(--rp-ink-700);border:1px solid var(--rp-line);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-family:var(--font-body);font-size:.9375rem;line-height:1.5;overflow:hidden}@supports (height:100dvh){.ha-panel{height:min(38rem,calc(100dvh - 7rem))}}.ha-panel:focus{outline:none}.ha-panel:focus-visible{outline:3px solid var(--rp-blue-600);outline-offset:2px}.ha-panel p{margin:0}.ha-panel a{color:var(--rp-blue-700)}.ha-panel a:hover{color:var(--rp-blue-600)}.ha-panel .btn{white-space:normal}.ha-head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.875rem .75rem .75rem 1rem;border-bottom:1px solid var(--rp-line);background:var(--rp-blue-50)}.ha-title{font-family:var(--font-display);font-weight:800;font-size:1rem;line-height:1.3;color:var(--rp-ink-900)}.ha-title-sub{display:block;font-weight:600;font-size:.8125rem;color:var(--rp-ink-500)}.ha-close{flex:none;display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;margin:-.375rem -.25rem 0 0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--rp-ink-700);cursor:pointer}.ha-close:hover{background:var(--rp-white);color:var(--rp-ink-900)}.ha-close:focus-visible{outline:3px solid var(--rp-blue-600);outline-offset:-3px}.ha-badge{display:inline-block;vertical-align:.0625rem;padding:.0625rem .4375rem;border-radius:.3125rem;background:var(--rp-ink-900);color:var(--rp-white);font-family:var(--font-display);font-size:.6875rem;font-weight:800;letter-spacing:.04em;line-height:1.5}.ha-badge.is-plain{background:var(--rp-teal-700)}.ha-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:1rem}.ha-notice{gap:.875rem}.ha-notice,.ha-notice>div{display:flex;flex-direction:column}.ha-notice>div{gap:.75rem}.ha-kicker{display:flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:800;font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;color:var(--rp-ink-900)}.ha-kicker .ha-badge{text-transform:none}.ha-kid{padding:.75rem .875rem;border-radius:var(--radius-sm);background:var(--rp-gold-50);border:1px solid var(--rp-gold-200);color:var(--rp-ink-900);font-weight:600}.ha-fine{font-size:.8125rem;color:var(--rp-ink-500)}.ha-actions{display:flex;flex-wrap:wrap;gap:.625rem}.ha-actions .btn{flex:1 1 8rem}.ha-log{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:.75rem;padding:1rem}.ha-log:focus{outline:none}.ha-log:focus-visible{outline:3px solid var(--rp-blue-600);outline-offset:-3px}.ha-msg{max-width:92%;padding:.625rem .75rem;border-radius:var(--radius);overflow-wrap:anywhere}.ha-msg p+p{margin-top:.5rem}.ha-msg.is-you{align-self:flex-end;background:var(--rp-blue-600);color:var(--rp-white);border-bottom-right-radius:.25rem;white-space:pre-wrap}.ha-msg.is-bot{align-self:flex-start;background:var(--rp-ice-50);border:1px solid var(--rp-ice-200);color:var(--rp-ink-900);border-bottom-left-radius:.25rem}.ha-msg.is-notice{align-self:stretch;max-width:none;background:var(--rp-amber-50);color:var(--rp-ink-900);font-size:.875rem}.ha-panel .ha-msg-meta{margin-bottom:.375rem;line-height:1}.ha-msg-text p{white-space:pre-line}.ha-sources{margin-top:.625rem;padding-top:.5rem;border-top:1px solid var(--rp-ice-200)}.ha-sources-label{font-size:.75rem;font-weight:700;color:var(--rp-ink-500);text-transform:uppercase;letter-spacing:.04em}.ha-sources ul{margin:.25rem 0 0;padding-left:1.125rem}.ha-sources li{margin:.125rem 0}.ha-handoff{margin-top:.75rem;width:100%}.ha-rate{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.625rem;font-size:.875rem;color:var(--rp-ink-700)}.ha-rate-buttons{display:inline-flex;gap:.375rem}.ha-rate-done{color:var(--rp-ink-700)}.ha-chip{min-height:2.25rem;min-width:3rem;padding:.25rem .75rem;border:1px solid var(--rp-blue-600);border-radius:999px;background:var(--rp-white);color:var(--rp-blue-700);font-family:var(--font-display);font-weight:700;font-size:.875rem;cursor:pointer}.ha-chip:hover{background:var(--rp-blue-50)}.ha-chip:focus-visible{outline:3px solid var(--rp-blue-600);outline-offset:2px}.ha-status{color:var(--rp-ink-500);font-size:.875rem;font-style:italic}.ha-compose{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.25rem .5rem;gap:.25rem .5rem;align-items:end;padding:.75rem 1rem .5rem;border-top:1px solid var(--rp-line)}.ha-compose,.ha-input{background:var(--rp-white)}.ha-input{width:100%;min-height:2.75rem;max-height:8rem;resize:vertical;padding:.5rem .625rem;border:1px solid var(--rp-ice-200);border-radius:var(--radius-sm);font:inherit;font-size:1rem;line-height:1.4;color:var(--rp-ink-900)}.ha-input::placeholder{color:var(--rp-ink-500)}.ha-input:focus{outline:3px solid var(--rp-blue-600);outline-offset:0;border-color:var(--rp-blue-600)}.ha-send{min-height:2.75rem}.ha-hint{grid-column:1/-1;font-size:.75rem;color:var(--rp-ink-500)}.ha-tools{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding:.25rem 1rem .5rem;font-size:.8125rem}.ha-tools-q{flex-basis:100%;color:var(--rp-ink-900);font-weight:600}.ha-link-btn{display:inline-flex;align-items:center;min-height:2rem;padding:0;border:0;background:none;color:var(--rp-blue-700);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:.125rem;cursor:pointer}.ha-link-btn:hover{color:var(--rp-blue-600)}.ha-link-btn:disabled{color:var(--rp-ink-500);cursor:not-allowed}.ha-link-btn.is-danger{color:var(--rp-red)}.ha-link-btn:focus-visible{outline:3px solid var(--rp-blue-600);outline-offset:2px;border-radius:.125rem}.ha-foot{flex:none;padding:.5rem 1rem .75rem;border-top:1px solid var(--rp-line-soft);font-size:.75rem;line-height:1.45;color:var(--rp-ink-500);background:var(--rp-ice-50)}@media (max-width:639px){.ha-launcher{right:calc(.75rem + env(safe-area-inset-right, 0px));bottom:calc(.75rem + env(safe-area-inset-bottom, 0px));padding:.375rem .625rem .375rem .375rem;gap:.375rem}.ha-launcher-long{display:none}.ha-launcher-chip{display:inline-block}.ha-panel{inset:0;width:100%;height:100%;max-height:none;border:0;border-radius:0;box-shadow:none;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}@supports (height:100dvh){.ha-panel{height:100dvh}}.ha-msg{max-width:96%}}body:has(.ha-launcher) .site-footer{padding-bottom:calc(2.25rem + 3.75rem + env(safe-area-inset-bottom, 0px))}@media (max-width:760px){body:has(.sticky-cta.is-on) .ha-launcher{bottom:calc(4rem + .75rem + env(safe-area-inset-bottom, 0px))}}@media (prefers-reduced-motion:reduce){.ha-launcher{transition:none}}@media print{.ha-launcher,.ha-panel{display:none!important}}