#leo-ai-root{--lai-bg:#090d10;--lai-panel:#0c1215;--lai-text:#eef4f2;--lai-muted:#91a09d;--lai-line:rgba(186,225,218,.18);--lai-aqua:#55e6d7;--lai-lime:#b8f26b;font-family:"JetBrains Mono",ui-monospace,monospace;position:fixed;right:18px;bottom:18px;z-index:9998;color:var(--lai-text)}
#leo-ai-root *{box-sizing:border-box}
.leo-ai-launcher{width:58px;height:58px;border-radius:50%;border:1px solid rgba(85,230,215,.55);background:#0a1013;color:var(--lai-aqua);box-shadow:0 12px 38px rgba(0,0,0,.35),0 0 0 1px rgba(85,230,215,.08) inset;display:grid;place-items:center;cursor:pointer;font:600 11px/1 "JetBrains Mono",monospace;letter-spacing:.04em;transition:.25s}
.leo-ai-launcher:hover{transform:translateY(-2px);box-shadow:0 16px 42px rgba(0,0,0,.42),0 0 24px rgba(85,230,215,.12)}
.leo-ai-launcher-dot{position:absolute;right:4px;top:4px;width:9px;height:9px;border-radius:50%;background:var(--lai-lime);box-shadow:0 0 10px var(--lai-lime)}
.leo-ai-panel{position:absolute;right:0;bottom:70px;width:min(450px,calc(100vw - 24px));height:min(620px,calc(100vh - 105px));min-height:440px;background:rgba(9,13,16,.98);border:1px solid var(--lai-line);box-shadow:0 28px 80px rgba(0,0,0,.46);display:none;grid-template-rows:auto 1fr auto;overflow:hidden}
.leo-ai-panel.is-open{display:grid}
.leo-ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--lai-line);background:#0b1114}
.leo-ai-identity{display:flex;align-items:center;gap:9px;min-width:0}.leo-ai-status{width:8px;height:8px;border-radius:50%;background:var(--lai-lime);box-shadow:0 0 10px var(--lai-lime);flex:0 0 auto}.leo-ai-title strong{display:block;font-size:11px;letter-spacing:.08em}.leo-ai-title span{display:block;margin-top:3px;color:var(--lai-muted);font-size:8px;letter-spacing:.08em;text-transform:uppercase}.leo-ai-close{width:38px;height:38px;border:0;background:transparent;color:var(--lai-muted);font:400 22px/1 sans-serif;cursor:pointer;border-radius:4px}.leo-ai-close:hover{background:rgba(255,255,255,.05);color:var(--lai-text)}
.leo-ai-body{padding:14px;overflow:auto;overscroll-behavior:contain;background:linear-gradient(rgba(85,230,215,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(85,230,215,.025) 1px,transparent 1px),#080c0f;background-size:30px 30px}
.leo-ai-msg{max-width:90%;margin:0 0 10px;padding:10px 11px;border:1px solid var(--lai-line);font:400 12px/1.55 "JetBrains Mono",monospace;overflow-wrap:anywhere}.leo-ai-msg.bot{background:#0d1417}.leo-ai-msg.user{margin-left:auto;background:rgba(85,230,215,.09);border-color:rgba(85,230,215,.27)}.leo-ai-msg small{display:block;margin-bottom:5px;color:var(--lai-aqua);font-size:8px;letter-spacing:.1em;text-transform:uppercase}.leo-ai-msg.user small{color:var(--lai-muted)}
.leo-ai-quick{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}.leo-ai-chip{border:1px solid var(--lai-line);background:#0b1114;color:#cbd5d2;padding:8px 9px;min-height:36px;cursor:pointer;font:500 9px/1.25 "JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.05em}.leo-ai-chip:hover{border-color:rgba(85,230,215,.5);color:var(--lai-aqua)}.leo-ai-chip.primary{border-color:rgba(85,230,215,.72);background:rgba(85,230,215,.12);color:var(--lai-aqua)}
.leo-ai-compose{border-top:1px solid var(--lai-line);background:#0b1114;padding:10px}.leo-ai-form{display:grid;grid-template-columns:1fr auto;gap:8px}.leo-ai-input{min-width:0;min-height:44px;max-height:100px;resize:none;border:1px solid var(--lai-line);background:#070b0d;color:var(--lai-text);padding:10px;font:400 16px/1.35 "JetBrains Mono",monospace;outline:none}.leo-ai-input:focus{border-color:var(--lai-aqua)}.leo-ai-send{width:48px;min-height:44px;border:1px solid var(--lai-aqua);background:var(--lai-aqua);color:#06110f;font:700 16px/1 sans-serif;cursor:pointer}.leo-ai-send:disabled{opacity:.45;cursor:not-allowed}.leo-ai-note{margin-top:7px;color:var(--lai-muted);font:400 8px/1.45 "JetBrains Mono",monospace}.leo-ai-note b{color:#c9d3d0;font-weight:500}
.leo-ai-typing{display:inline-flex;gap:4px;align-items:center}.leo-ai-typing i{width:5px;height:5px;border-radius:50%;background:var(--lai-aqua);animation:leoAiBlink 1s infinite alternate}.leo-ai-typing i:nth-child(2){animation-delay:.2s}.leo-ai-typing i:nth-child(3){animation-delay:.4s}@keyframes leoAiBlink{to{opacity:.25}}
@media(max-width:520px){#leo-ai-root{right:10px;bottom:10px}.leo-ai-panel{position:fixed;right:8px;left:8px;bottom:78px;width:auto;height:min(650px,calc(100vh - 94px));max-height:calc(100vh - 94px)}.leo-ai-launcher{width:56px;height:56px}}
@media(prefers-reduced-motion:reduce){.leo-ai-launcher,.leo-ai-typing i{animation:none!important;transition:none!important}}

.leo-ai-plain{white-space:pre-wrap}
.leo-ai-live-reply.is-streaming{white-space:pre-wrap}
.leo-ai-rich p{margin:0 0 8px}
.leo-ai-rich p:last-child{margin-bottom:0}
.leo-ai-rich ul{margin:6px 0 8px;padding-left:18px}
.leo-ai-rich li{margin:0 0 5px}
.leo-ai-rich strong{color:#f5fbf9;font-weight:700}
.leo-ai-rich code{padding:1px 4px;border:1px solid rgba(186,225,218,.14);background:#070b0d;color:var(--lai-lime);font:500 11px/1.4 "JetBrains Mono",monospace}
.leo-ai-rich a{color:var(--lai-aqua);text-decoration:underline;text-underline-offset:2px}
.leo-ai-rich a:hover{color:#8ef3e8}
.leo-ai-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(186,225,218,.12)}
.leo-ai-action{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border:1px solid var(--lai-line);color:#d6e0dd;text-decoration:none;font:600 9px/1 "JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.05em;background:#0a1013}
.leo-ai-action:hover{border-color:rgba(85,230,215,.55);color:var(--lai-aqua)}
.leo-ai-action.primary{border-color:var(--lai-aqua);background:var(--lai-aqua);color:#06110f}
.leo-ai-action.primary:hover{color:#06110f;filter:brightness(1.05)}

/* v11 agent polish */
.leo-ai-launcher{position:relative;isolation:isolate}
.leo-ai-launcher::before{content:"";position:absolute;inset:-7px;border:1px solid rgba(85,230,215,.2);border-radius:50%;opacity:.55;animation:leoAiRing 3.2s ease-out infinite;pointer-events:none}
.leo-ai-launcher-dot,.leo-ai-status{animation:leoAiStatus 2.2s ease-in-out infinite}
.leo-ai-panel{display:grid;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px) scale(.985);transform-origin:bottom right;transition:opacity .22s ease,transform .28s cubic-bezier(.16,1,.3,1),visibility .22s}
.leo-ai-panel.is-open{display:grid;opacity:1;visibility:visible;pointer-events:auto;transform:none}
.leo-ai-body{animation:leoAiGrid 34s linear infinite}
.leo-ai-actions{align-items:center}
.leo-ai-action{transition:transform .18s ease,border-color .18s ease,color .18s ease,filter .18s ease}
.leo-ai-action:hover{transform:translateY(-1px)}
.leo-ai-rich ol{margin:6px 0 8px;padding-left:21px}
.leo-ai-rich ol li{margin:0 0 6px}
@keyframes leoAiRing{0%{transform:scale(.9);opacity:.45}65%,100%{transform:scale(1.22);opacity:0}}
@keyframes leoAiStatus{0%,100%{box-shadow:0 0 8px var(--lai-lime)}50%{box-shadow:0 0 15px var(--lai-lime),0 0 25px rgba(184,242,107,.2)}}
@keyframes leoAiGrid{to{background-position:30px 30px,30px 30px}}
@media(prefers-reduced-motion:reduce){
  .leo-ai-launcher::before,.leo-ai-launcher-dot,.leo-ai-status,.leo-ai-body{animation:none!important}
  .leo-ai-panel{transition:none!important}
}


/* v16 pre-chat lead capture */
/* Keep the desktop panel anchored to the launcher. Mobile positioning is
   reinforced below so the pre-chat gate stays inside the visual viewport. */
.leo-ai-panel{position:absolute}
.leo-ai-gate[hidden]{display:none!important}
.leo-ai-gate{position:absolute;z-index:8;left:0;right:0;top:65px;bottom:0;background:rgba(8,12,15,.995);overflow:auto;padding:18px}
.leo-ai-gate-inner{max-width:380px;margin:0 auto;padding:8px 2px 18px}
.leo-ai-gate-inner>small{display:block;color:var(--lai-aqua);font-size:9px;letter-spacing:.11em;margin-bottom:8px}
.leo-ai-gate-inner h3{font-family:"Space Grotesk",system-ui,sans-serif;font-size:24px;line-height:1.05;letter-spacing:-.035em;margin:0}
.leo-ai-gate-inner>p{margin:10px 0 0;color:#b8c4c1;font:400 11px/1.6 "JetBrains Mono",monospace}
.leo-ai-lead-form{display:grid;gap:10px;margin-top:16px}
.leo-ai-lead-form label>span{display:block;margin-bottom:5px;color:#cbd5d2;font:500 9px/1.3 "JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.05em}
.leo-ai-lead-form label em{color:var(--lai-muted);font-style:normal;text-transform:none;letter-spacing:0}
.leo-ai-lead-form input[type="text"],.leo-ai-lead-form input[type="email"]{width:100%;min-height:42px;border:1px solid var(--lai-line);background:#070b0d;color:var(--lai-text);padding:10px 11px;outline:none;font:400 16px/1.25 "JetBrains Mono",monospace}
.leo-ai-lead-form input:focus{border-color:var(--lai-aqua)}
.leo-ai-consent{display:grid!important;grid-template-columns:18px 1fr;gap:8px;align-items:start;padding-top:2px}
.leo-ai-consent input{margin:2px 0 0;width:15px;height:15px;accent-color:var(--lai-aqua)}
.leo-ai-consent span{margin:0!important;text-transform:none!important;letter-spacing:0!important;color:#aebbb8!important;font-size:8px!important;line-height:1.55!important}
.leo-ai-lead-submit{min-height:42px;border:1px solid var(--lai-aqua);background:var(--lai-aqua);color:#06110f;font:700 10px/1 "JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.leo-ai-lead-submit:disabled{opacity:.55;cursor:wait}
.leo-ai-lead-status{min-height:16px;margin:0;color:var(--lai-muted);font:500 8px/1.5 "JetBrains Mono",monospace}
.leo-ai-lead-status.is-error{color:#ff9d9d}.leo-ai-lead-status.is-success{color:var(--lai-lime)}
.leo-ai-gate-privacy{margin-top:12px!important;padding-top:10px;border-top:1px solid var(--lai-line);font-size:8px!important;line-height:1.5!important;color:var(--lai-muted)!important}
@media(max-width:520px){.leo-ai-gate{top:64px;padding:15px}.leo-ai-gate-inner h3{font-size:22px}}

/* v16 conversation logging */
.leo-ai-head-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.leo-ai-end{min-height:32px;padding:0 9px;border:1px solid var(--lai-line);background:#0a1013;color:#b8c4c1;font:600 8px/1 "JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}
.leo-ai-end:hover{border-color:rgba(85,230,215,.55);color:var(--lai-aqua)}
.leo-ai-end:disabled{opacity:.5;cursor:wait}
.leo-ai-session-status{min-height:0;margin:6px 0 0;color:var(--lai-lime);font:500 8px/1.45 "JetBrains Mono",monospace}
@media(max-width:390px){.leo-ai-end{padding:0 7px;font-size:7px}.leo-ai-title span{display:none}}

/* v16 live-core identity/session controls */
.leo-ai-new-visitor{border:0;background:transparent;color:var(--lai-aqua);padding:0;margin-left:4px;font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.leo-ai-new-visitor:hover{color:#8ef3e8}

/* v18 mobile QA — full-screen LEO_AI mode
   Mobile uses a real viewport-filling assistant instead of the desktop
   bottom-right floating panel. This avoids keyboard-induced horizontal panning. */
@media(max-width:520px){
  html.leo-ai-mobile-open,
  body.leo-ai-mobile-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  #leo-ai-root{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    right:auto!important;
    bottom:auto!important;
    pointer-events:none;
  }

  #leo-ai-root .leo-ai-launcher{
    position:fixed;
    right:10px;
    bottom:10px;
    pointer-events:auto;
  }

  #leo-ai-root .leo-ai-panel{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    max-width:none!important;
    height:var(--lai-mobile-height,100dvh)!important;
    max-height:none!important;
    min-height:0!important;
    border:0!important;
    transform:none!important;
    transform-origin:center!important;
    box-shadow:none!important;
  }

  #leo-ai-root .leo-ai-panel.is-open{
    pointer-events:auto;
  }

  .leo-ai-head{
    padding-top:max(13px,env(safe-area-inset-top));
    flex:0 0 auto;
  }

  .leo-ai-gate{
    top:64px;
    bottom:0;
    padding:15px 15px calc(18px + env(safe-area-inset-bottom));
    overscroll-behavior:contain;
  }

  .leo-ai-gate-inner{
    max-width:420px;
    padding-bottom:24px;
  }

  .leo-ai-body{
    overscroll-behavior:contain;
  }

  .leo-ai-compose{
    padding-bottom:max(10px,env(safe-area-inset-bottom));
  }
}

/* High contrast launcher across dark and light surfaces. */
#leo-ai-root .leo-ai-launcher{background:#2457ff;color:#fff;border:1px solid #ffffffb8;box-shadow:0 12px 34px #0008,0 0 0 3px #2457ff55;grid-template-rows:30px 11px;gap:0;transition:transform .35s cubic-bezier(.18,.75,.18,1),box-shadow .35s ease,background .35s ease}
#leo-ai-root .leo-ai-launcher:hover,#leo-ai-root .leo-ai-launcher:focus-visible{background:#1742c0;transform:translateY(-3px) scale(1.04);box-shadow:0 17px 42px #0009,0 0 0 4px #ffffff66;outline:none}
#leo-ai-root .leo-ai-launcher-icon{display:block;width:26px;height:26px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#leo-ai-root .leo-ai-launcher-label{display:block;color:#fff;font:700 7px/1 "JetBrains Mono",monospace;letter-spacing:.08em}
#leo-ai-root .leo-ai-launcher-dot{background:#fff;box-shadow:0 0 0 2px #2457ff}
#leo-ai-root .leo-ai-launcher::before{inset:-5px;border-color:#ffffff55;opacity:1;animation:none}
@media(prefers-reduced-motion:reduce){#leo-ai-root .leo-ai-launcher{transition:none}}
