/* =========================================================
   NEXILENSE AI Assistant — front-end styles
   Scoped to #nxai-root so theme styles don't leak in or out.
   Palette: navy #071426 · midnight #0B1F3A · electric #1677FF
            cyan #28C7FA · champagne gold #D7B56D (accent only)
   ========================================================= */
#nxai-root{
  --nxai-navy:#071426;--nxai-mid:#0B1F3A;--nxai-deep:#0E2647;--nxai-elec:#1677FF;--nxai-cyan:#28C7FA;--nxai-gold:#D7B56D;
  --nxai-text:#EAF1FF;--nxai-muted:#9FB3D1;--nxai-faint:#6F86A8;--nxai-line:rgba(130,170,230,.16);
  --nxai-user:linear-gradient(135deg,#1677FF 0%,#1E8BFF 55%,#28C7FA 130%);
  --nxai-radius:20px;--nxai-ease:cubic-bezier(.2,.8,.2,1);
  --nxai-font:"Manrope","Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Bengali","Hind Siliguri","Noto Sans",sans-serif;
  position:fixed;z-index:9980;bottom:var(--nxai-bottom,104px);right:var(--nxai-side,24px);
  font-family:var(--nxai-font);font-size:15px;line-height:1.5;color:var(--nxai-text);
  -webkit-font-smoothing:antialiased;text-align:left;
}
#nxai-root.nxai-side-left{right:auto;left:var(--nxai-side,24px)}
#nxai-root[lang="bn"]{font-size:15.5px}
#nxai-root *,#nxai-root *::before,#nxai-root *::after{box-sizing:border-box}
#nxai-root button,#nxai-root input,#nxai-root textarea,#nxai-root select{font:inherit;color:inherit;letter-spacing:normal;text-transform:none}
#nxai-root svg{display:block;flex:none}
#nxai-root p{margin:0;line-height:1.55}
#nxai-root p+p,#nxai-root p+ul,#nxai-root ul+p{margin-top:.6em}
#nxai-root ul{list-style:disc;margin:.35em 0 0;padding-left:1.15em}
#nxai-root li{margin:.15em 0}
#nxai-root a{text-decoration:none}
#nxai-root :focus-visible{outline:2px solid var(--nxai-cyan);outline-offset:2px}
.nxai-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── Launcher ───────────────────────────────────────── */
.nxai-launcher{
  position:relative;width:62px;height:62px;border-radius:50%;border:0;cursor:pointer;padding:0;
  display:grid;place-items:center;color:#fff;
  background:radial-gradient(120% 120% at 30% 20%,#2a8dff 0%,var(--nxai-elec) 45%,#0a3d99 100%);
  box-shadow:0 10px 30px rgba(22,119,255,.45),0 0 0 1px rgba(255,255,255,.12) inset,0 0 0 6px rgba(40,199,250,.08);
  transition:transform .35s var(--nxai-ease),box-shadow .35s var(--nxai-ease);
}
.nxai-launcher::before{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid rgba(40,199,250,.45);opacity:0;animation:nxai-ring 3.2s var(--nxai-ease) infinite}
.nxai-launcher:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 38px rgba(22,119,255,.55),0 0 0 1px rgba(255,255,255,.18) inset,0 0 0 8px rgba(40,199,250,.1)}
.nxai-launcher svg{width:27px;height:27px}
.nxai-launcher-ico{grid-area:1/1;display:grid;place-items:center;transition:transform .35s var(--nxai-ease),opacity .25s}
.nxai-ico-close{opacity:0;transform:rotate(-90deg) scale(.6)}
.nxai-is-open .nxai-ico-chat{opacity:0;transform:rotate(90deg) scale(.6)}
.nxai-is-open .nxai-ico-close{opacity:1;transform:none}
.nxai-is-open .nxai-launcher::before{animation:none}
.nxai-launcher-badge{position:absolute;top:-2px;right:-4px;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--nxai-navy);background:linear-gradient(135deg,#f3dfa9,var(--nxai-gold));box-shadow:0 2px 8px rgba(0,0,0,.35)}
.nxai-loading .nxai-launcher{cursor:progress}
@keyframes nxai-ring{0%{opacity:.7;transform:scale(.92)}70%,100%{opacity:0;transform:scale(1.25)}}

/* ── Panel ──────────────────────────────────────────── */
.nxai-panel{
  position:absolute;bottom:76px;right:0;width:400px;max-width:calc(100vw - 32px);
  height:min(640px,calc(100vh - var(--nxai-bottom,104px) - 110px));min-height:420px;
  display:flex;flex-direction:column;overflow:hidden;border-radius:var(--nxai-radius);
  background:linear-gradient(180deg,rgba(14,38,71,.98) 0%,rgba(7,20,38,.985) 38%,rgba(7,20,38,.99) 100%);
  border:1px solid var(--nxai-line);
  box-shadow:0 30px 80px rgba(2,8,20,.65),0 0 0 1px rgba(255,255,255,.03) inset,0 1px 0 rgba(255,255,255,.06) inset;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  opacity:0;transform:translateY(14px) scale(.98);transform-origin:bottom right;
  transition:opacity .28s var(--nxai-ease),transform .32s var(--nxai-ease);
}
.nxai-side-left .nxai-panel{right:auto;left:0;transform-origin:bottom left}
.nxai-panel.nxai-in{opacity:1;transform:none}
.nxai-panel[hidden]{display:none}

.nxai-header{display:flex;align-items:center;gap:8px;padding:14px 10px 12px 14px;border-bottom:1px solid var(--nxai-line);
  background:radial-gradient(140% 120% at 0% 0%,rgba(22,119,255,.28) 0%,rgba(22,119,255,0) 60%),linear-gradient(180deg,rgba(11,31,58,.9),rgba(11,31,58,.4))}
.nxai-avatar{position:relative;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:linear-gradient(135deg,var(--nxai-elec),var(--nxai-cyan));box-shadow:0 6px 18px rgba(22,119,255,.4)}
.nxai-avatar span{font-weight:800;font-size:13px;letter-spacing:.06em;color:#fff}
.nxai-online{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:#2fd47a;border:2px solid var(--nxai-mid)}
.nxai-heading{min-width:0;flex:1}
.nxai-title{font-weight:800;font-size:14.5px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nxai-status{font-size:11.5px;color:var(--nxai-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nxai-lang{display:flex;padding:3px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--nxai-line);flex:none}
.nxai-lang button{border:0;background:transparent;padding:4px 8px;border-radius:999px;font-size:11.5px;font-weight:700;color:var(--nxai-muted);cursor:pointer;line-height:1.3}
.nxai-lang button[aria-pressed="true"]{background:var(--nxai-elec);color:#fff;box-shadow:0 2px 10px rgba(22,119,255,.45)}
.nxai-icon-btn{width:30px;height:30px;border-radius:10px;border:0;background:transparent;color:var(--nxai-muted);display:grid;place-items:center;cursor:pointer;flex:none;transition:background .2s,color .2s}
.nxai-icon-btn:hover{background:rgba(255,255,255,.07);color:#fff}
.nxai-icon-btn svg{width:18px;height:18px}

.nxai-preview{font-size:11.5px;padding:6px 14px;background:rgba(215,181,109,.12);color:#f0d9a3;border-bottom:1px solid rgba(215,181,109,.2)}

/* ── Log & messages ─────────────────────────────────── */
.nxai-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 14px 8px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}
.nxai-log::-webkit-scrollbar{width:6px}.nxai-log::-webkit-scrollbar-thumb{background:rgba(130,170,230,.25);border-radius:6px}
.nxai-msg{display:flex;gap:8px;align-items:flex-start;max-width:100%;animation:nxai-pop .32s var(--nxai-ease) both}
.nxai-user{justify-content:flex-end}
.nxai-msg-av{margin-top:2px;width:26px;height:26px;border-radius:8px;flex:none;display:grid;place-items:center;font-size:9.5px;font-weight:800;letter-spacing:.05em;color:#fff;background:linear-gradient(135deg,var(--nxai-elec),var(--nxai-cyan));opacity:.95}
.nxai-col{display:flex;flex-direction:column;gap:8px;min-width:0;max-width:84%}
.nxai-user .nxai-col{align-items:flex-end}
.nxai-bubble{padding:10px 14px;border-radius:16px;word-wrap:break-word;overflow-wrap:anywhere}
.nxai-bot .nxai-bubble{background:rgba(255,255,255,.055);border:1px solid var(--nxai-line);border-bottom-left-radius:6px}
.nxai-user .nxai-bubble{background:var(--nxai-user);color:#fff;border-bottom-right-radius:6px;box-shadow:0 6px 18px rgba(22,119,255,.3);white-space:pre-wrap}
.nxai-bot .nxai-bubble strong{color:#fff;font-weight:700}
.nxai-welcome .nxai-bubble{background:linear-gradient(135deg,rgba(22,119,255,.16),rgba(40,199,250,.06));border-color:rgba(40,199,250,.22)}
.nxai-error .nxai-bubble{background:rgba(255,107,107,.08);border-color:rgba(255,120,120,.28);color:#ffd9d9}
@keyframes nxai-pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.nxai-actions{display:flex;flex-wrap:wrap;gap:6px}
.nxai-act,.nxai-qa,.nxai-chip{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;border-radius:999px;font-size:12.5px;font-weight:600;line-height:1.25;
  padding:7px 12px;border:1px solid rgba(40,199,250,.32);background:rgba(22,119,255,.1);color:#d7ecff;transition:background .2s,border-color .2s,transform .2s;
}
.nxai-act:hover,.nxai-qa:hover,.nxai-chip:hover{background:rgba(22,119,255,.22);border-color:rgba(40,199,250,.6);transform:translateY(-1px);color:#fff}
.nxai-act svg,.nxai-qa svg{width:15px;height:15px}
.nxai-type-wa{border-color:rgba(37,211,102,.4);background:rgba(37,211,102,.1);color:#c9f7da}
.nxai-type-wa:hover{background:rgba(37,211,102,.2);border-color:rgba(37,211,102,.7)}

.nxai-typing .nxai-bubble{padding:12px 14px}
.nxai-dots{display:inline-flex;gap:4px}
.nxai-dots i{width:7px;height:7px;border-radius:50%;background:var(--nxai-cyan);opacity:.35;animation:nxai-dot 1.2s infinite}
.nxai-dots i:nth-child(2){animation-delay:.15s}.nxai-dots i:nth-child(3){animation-delay:.3s}
@keyframes nxai-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

/* ── Suggestions & quick actions ───────────────────── */
.nxai-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:4px 14px 8px}
.nxai-suggest[hidden]{display:none}
.nxai-chip{background:rgba(255,255,255,.04);border-color:var(--nxai-line);color:var(--nxai-text);font-weight:500;text-align:left}
.nxai-quick{display:flex;gap:6px;overflow-x:auto;padding:8px 14px;border-top:1px solid var(--nxai-line);scrollbar-width:none}
.nxai-quick::-webkit-scrollbar{display:none}
.nxai-qa{white-space:nowrap;flex:none;font-size:12px;padding:6px 11px}

/* ── Composer ───────────────────────────────────────── */
.nxai-composer{display:flex;align-items:flex-end;gap:8px;margin:6px 12px 4px;padding:6px 6px 6px 14px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid var(--nxai-line);transition:border-color .2s,box-shadow .2s}
.nxai-composer:focus-within{border-color:rgba(40,199,250,.55);box-shadow:0 0 0 3px rgba(22,119,255,.18)}
.nxai-input{flex:1;resize:none;border:0;outline:0;background:transparent;min-height:24px;max-height:132px;padding:7px 0;line-height:1.45;color:var(--nxai-text)}
#nxai-root .nxai-input:focus-visible{outline:0}
.nxai-input::placeholder{color:var(--nxai-faint)}
.nxai-send{width:40px;height:40px;border-radius:12px;border:0;cursor:pointer;display:grid;place-items:center;color:#fff;background:var(--nxai-user);box-shadow:0 6px 16px rgba(22,119,255,.4);transition:transform .2s,opacity .2s}
.nxai-send:hover{transform:translateY(-1px)}
.nxai-send:disabled{opacity:.45;cursor:not-allowed;transform:none}
.nxai-send svg{width:18px;height:18px}
.nxai-counter{font-size:11px;color:var(--nxai-faint);padding:0 16px;min-height:0;text-align:right}
.nxai-foot{font-size:11px;color:var(--nxai-faint);padding:4px 16px 12px;text-align:center}
.nxai-foot a{color:var(--nxai-cyan);text-decoration:underline;text-underline-offset:2px}

/* ── Lead form card ─────────────────────────────────── */
.nxai-form .nxai-col{max-width:calc(100% - 34px);width:100%}
.nxai-form-inner{padding:14px;border-radius:16px;border:1px solid rgba(40,199,250,.28);background:linear-gradient(180deg,rgba(22,119,255,.12),rgba(255,255,255,.03));display:flex;flex-direction:column;gap:10px}
.nxai-form-title{font-weight:800;font-size:14.5px}
.nxai-form-note{font-size:12px;color:#f0d9a3;background:rgba(215,181,109,.1);border:1px solid rgba(215,181,109,.22);padding:7px 10px;border-radius:10px}
.nxai-field{display:flex;flex-direction:column;gap:4px}
.nxai-field label{font-size:12px;font-weight:600;color:var(--nxai-muted)}
.nxai-req{color:var(--nxai-cyan)}
.nxai-field input,.nxai-field textarea,.nxai-field select{width:100%;padding:9px 11px;border-radius:10px;border:1px solid var(--nxai-line);background:rgba(7,20,38,.7);color:var(--nxai-text);outline:0;transition:border-color .2s,box-shadow .2s}
.nxai-field select option{background:var(--nxai-mid);color:var(--nxai-text)}
.nxai-field input:focus,.nxai-field textarea:focus,.nxai-field select:focus{border-color:rgba(40,199,250,.6);box-shadow:0 0 0 3px rgba(22,119,255,.18)}
.nxai-field [aria-invalid="true"],.nxai-consent input[aria-invalid="true"]{border-color:#ff7b7b;box-shadow:0 0 0 3px rgba(255,90,90,.15)}
.nxai-ferr{font-size:11.5px;color:#ff9c9c;min-height:0}
.nxai-ferr:empty{display:none}
.nxai-consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--nxai-muted)}
.nxai-consent input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--nxai-elec)}
.nxai-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.nxai-fmsg{font-size:12.5px;color:#ffb3b3}
.nxai-fmsg:empty{display:none}
.nxai-form-actions{display:flex;gap:8px;flex-wrap:wrap}
.nxai-btn{border:0;border-radius:11px;padding:9px 14px;font-weight:700;font-size:13px;cursor:pointer;transition:transform .2s,opacity .2s,background .2s}
.nxai-btn-primary{background:var(--nxai-user);color:#fff;box-shadow:0 6px 16px rgba(22,119,255,.35)}
.nxai-btn-primary:hover{transform:translateY(-1px)}
.nxai-btn-primary:disabled{opacity:.6;cursor:progress;transform:none}
.nxai-btn-ghost{background:transparent;color:var(--nxai-muted);border:1px solid var(--nxai-line)}
.nxai-btn-ghost:hover{color:#fff;background:rgba(255,255,255,.06)}

/* ── Mobile: full-screen sheet ──────────────────────── */
@media (max-width:560px){
  .nxai-launcher{width:56px;height:56px}
  .nxai-panel{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;min-height:0;border-radius:0;border:0;transform:translateY(24px)}
  .nxai-is-open .nxai-launcher{display:none}
  .nxai-header{padding-top:max(14px,env(safe-area-inset-top))}
  .nxai-foot{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .nxai-col{max-width:88%}
  html.nxai-open,html.nxai-open body{overflow:hidden!important}
}
@media (max-width:420px){.nxai-avatar{width:34px;height:34px;border-radius:10px}.nxai-lang button{padding:4px 7px}.nxai-header{gap:6px;padding-left:12px}}
@media (max-width:360px){.nxai-status{display:none}.nxai-lang button{padding:4px 7px}}

/* ── Accessibility preferences ─────────────────────── */
@media (prefers-reduced-motion:reduce){
  #nxai-root *,#nxai-root *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media (forced-colors:active){
  .nxai-launcher,.nxai-send,.nxai-btn-primary{border:2px solid ButtonText}
  .nxai-bubble,.nxai-form-inner,.nxai-composer{border:1px solid CanvasText}
}
@media print{#nxai-root{display:none!important}}
