.cna-assistant{--cna-bg:#080d11;--cna-panel:rgba(12,16,21,.96);--cna-text:#f8fafc;--cna-muted:#9aa4b5;--cna-line:rgba(255,255,255,.12);position:fixed;right:24px;bottom:24px;z-index:9998;color:var(--cna-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.cna-position-left{right:auto;left:24px}
.cna-assistant *{box-sizing:border-box}
.cna-toggle{width:58px;height:58px;border-radius:50%;border:1px solid color-mix(in srgb,var(--cna-primary),#fff 18%);background:linear-gradient(135deg,var(--cna-primary),#7e1014);color:#fff;box-shadow:0 14px 44px color-mix(in srgb,var(--cna-primary),transparent 70%);cursor:pointer}
.cna-toggle svg,.cna-input svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cna-box{position:absolute;right:0;bottom:74px;width:min(390px,calc(100vw - 48px));overflow:hidden;border:1px solid var(--cna-line);background:var(--cna-panel);backdrop-filter:blur(16px);border-radius:14px;box-shadow:0 28px 80px rgba(0,0,0,.45);transform:translateY(12px);opacity:0;pointer-events:none;transition:.24s ease}
.cna-position-left .cna-box{right:auto;left:0}
.cna-assistant.is-open .cna-box{transform:translateY(0);opacity:1;pointer-events:auto}
.cna-header{display:flex;align-items:center;gap:9px;padding:16px 18px;border-bottom:1px solid var(--cna-line)}
.cna-header strong{display:block;font-size:15px}
.cna-header small{display:block;color:var(--cna-muted);font-size:11px;margin-top:2px}
.cna-dot{width:9px;height:9px;border-radius:50%;background:#52d273}
.cna-close{margin-left:auto;border:0;background:transparent;color:var(--cna-text);font-size:24px;line-height:1;cursor:pointer}
.cna-progress{height:3px;background:rgba(255,255,255,.06)}
.cna-progress i{display:block;height:100%;width:12%;background:var(--cna-primary);transition:width .28s}
.cna-messages{display:flex;flex-direction:column;gap:10px;max-height:330px;overflow:auto;padding:18px}
.cna-message{position:relative;align-self:flex-start;max-width:88%;padding:10px 12px;border-radius:11px;font-size:13px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.cna-message.is-bot{background:rgba(255,255,255,.06);border:1px solid var(--cna-line)}
.cna-message.is-user{align-self:flex-end;color:#fff;background:linear-gradient(135deg,var(--cna-primary),#8d1212)}
.cna-typing{display:inline-flex!important;gap:4px;align-items:center;min-width:48px;min-height:36px}
.cna-typing i{width:6px;height:6px;border-radius:50%;background:var(--cna-muted);opacity:.45;animation:cna-typing 1s infinite ease-in-out}
.cna-typing i:nth-child(2){animation-delay:.14s}
.cna-typing i:nth-child(3){animation-delay:.28s}
.cna-edit{position:absolute;right:7px;top:50%;width:27px;height:27px;padding:5px;transform:translateY(-50%);border:0;border-radius:6px;color:#fff;background:rgba(0,0,0,.2);opacity:0;cursor:pointer}
.cna-message.is-user{padding-right:38px}
.cna-message:hover .cna-edit,.cna-message:focus-within .cna-edit{opacity:1}
.cna-edit svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cna-choices{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 18px}
.cna-choices[hidden],.cna-input[hidden],.cna-final[hidden],.cna-status[hidden],.cna-fallback[hidden]{display:none!important}
.cna-choices button{border:1px solid var(--cna-line);background:rgba(255,255,255,.04);color:var(--cna-text);border-radius:8px;padding:9px 11px;cursor:pointer;font-weight:700}
.cna-choices button:hover{border-color:var(--cna-primary)}
.cna-input{display:grid;grid-template-columns:1fr 42px;gap:8px;padding:0 18px 18px}
.cna-input textarea{width:100%;resize:none;color:var(--cna-text);background:rgba(255,255,255,.045);border:1px solid var(--cna-line);border-radius:9px;padding:11px;font:13px/1.5 inherit}
.cna-input textarea:focus{outline:none;border-color:var(--cna-primary)}
.cna-input button{align-self:end;width:42px;height:42px;border:0;border-radius:8px;color:#fff;background:var(--cna-primary);cursor:pointer}
.cna-help{grid-column:1/-1;color:var(--cna-muted);font-size:10px;line-height:1.4}
.cna-help.is-error{color:#ff8a85}
.cna-final{display:grid;grid-template-columns:1fr auto;gap:10px;padding:0 18px 18px}
.cna-submit{min-height:44px;border:0;border-radius:8px;color:#fff;background:var(--cna-primary);padding:0 14px;font-weight:800;cursor:pointer}
.cna-submit:disabled{opacity:.65;cursor:wait}
.cna-restart{border:1px solid var(--cna-line);background:transparent;color:var(--cna-muted);border-radius:8px;padding:8px;cursor:pointer}
.cna-status{margin:0 18px 16px;padding:11px 12px;border-radius:8px;font-size:12px;line-height:1.5}
.cna-status.is-success{color:#baf3c8;background:rgba(82,210,115,.1);border:1px solid rgba(82,210,115,.28)}
.cna-status.is-error{color:#ffd0ce;background:rgba(227,34,34,.1);border:1px solid rgba(227,34,34,.3)}
.cna-fallback{display:block;margin:0 18px 18px;padding:11px;border:1px solid var(--cna-line);border-radius:8px;text-align:center;color:var(--cna-text);text-decoration:none;font-size:12px;font-weight:700}
@keyframes cna-typing{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}
@media(max-width:640px){.cna-assistant{right:14px;bottom:14px}.cna-position-left{left:14px}.cna-box{width:calc(100vw - 28px)}.cna-messages{max-height:290px}}
.cna-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.cna-box:focus-visible,.cna-toggle:focus-visible,.cna-close:focus-visible,.cna-choices button:focus-visible,.cna-submit:focus-visible,.cna-restart:focus-visible,.cna-input button:focus-visible{outline:2px solid var(--cna-primary);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.cna-box,.cna-progress i,.cna-typing i{transition:none!important;animation:none!important}}

.cna-avatar{width:34px;height:34px;border-radius:10px;object-fit:cover;border:1px solid var(--cna-line);background:#fff}

.cna-assistant{--cna-secondary:#111827;} .cna-assistant__panel{width:min(var(--cna-width,390px),calc(100vw - 24px));} .cna-assistant__title{color:var(--cna-secondary);}


/* Front-end parity and responsive polish – 1.6.0 */
.cna-box{width:min(var(--cna-width,390px),calc(100vw - 32px));max-height:min(760px,calc(100dvh - 112px));display:flex;flex-direction:column}
.cna-messages{flex:1;min-height:150px;max-height:none;overscroll-behavior:contain}
.cna-choices{max-height:240px;overflow:auto;align-content:flex-start}
.cna-choices button{font-size:13px;line-height:1.35;text-align:left;max-width:100%}
.cna-file-upload{padding:0 18px 18px;display:grid;gap:9px}
.cna-file-upload[hidden]{display:none!important}
.cna-file-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px dashed var(--cna-line);border-radius:10px;background:rgba(255,255,255,.04);cursor:pointer}
.cna-file-button:hover{border-color:var(--cna-primary)}
.cna-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.cna-file-name{color:var(--cna-muted);font-size:11px;text-align:center;overflow-wrap:anywhere}.cna-file-name.is-error{color:#ff8a85}
.cna-file-skip{justify-self:center;border:0;background:transparent;color:var(--cna-muted);font-size:12px;text-decoration:underline;cursor:pointer}
@media(max-width:640px){
 .cna-assistant,.cna-position-left{right:0;left:0;bottom:0}
 .cna-toggle{position:fixed;right:16px;bottom:16px}
 .cna-position-left .cna-toggle{right:auto;left:16px}
 .cna-box,.cna-position-left .cna-box{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0;border:0;transform:translateY(100%)}
 .cna-assistant.is-open .cna-box{transform:translateY(0)}
 .cna-header{padding:14px 16px;padding-top:max(14px,env(safe-area-inset-top))}
 .cna-close{width:42px;height:42px;border:1px solid var(--cna-line);border-radius:9px;font-size:26px}
 .cna-messages{padding:16px;min-height:0}
 .cna-message{max-width:92%;font-size:14px}
 .cna-choices{padding:0 16px 16px;max-height:38dvh;display:grid;grid-template-columns:1fr}
 .cna-choices button{width:100%;padding:12px 13px}
 .cna-input,.cna-file-upload,.cna-final{padding-left:16px;padding-right:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}
}


/* Mobile conversation layout – 1.6.1
 * One scroll area, stable viewport sizing and strictly stacked choices.
 */
@media (max-width:782px){
  html.cna-chat-open,
  body.cna-chat-open{overflow:hidden!important;overscroll-behavior:none}

  .cna-assistant,
  .cna-assistant.cna-position-left{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    pointer-events:none;
  }
  .cna-assistant .cna-toggle{pointer-events:auto}
  .cna-assistant.is-open{pointer-events:auto}

  .cna-assistant .cna-box,
  .cna-assistant.cna-position-left .cna-box{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100vh!important;
    max-height:none!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .cna-assistant .cna-header{
    position:sticky;
    top:0;
    z-index:5;
    flex:0 0 auto;
    background:var(--cna-panel);
  }
  .cna-assistant .cna-progress{
    position:sticky;
    top:70px;
    z-index:5;
    flex:0 0 auto;
    background:rgba(255,255,255,.06);
  }
  .cna-assistant .cna-messages{
    display:flex!important;
    flex:0 0 auto!important;
    min-height:0!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    padding-bottom:12px!important;
  }
  .cna-assistant .cna-message{
    width:auto;
    max-width:min(92%,560px)!important;
    font-size:16px!important;
    line-height:1.45!important;
  }
  .cna-assistant .cna-choices{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-height:none!important;
    overflow:visible!important;
    gap:10px!important;
    padding-top:0!important;
  }
  .cna-assistant .cna-choices[hidden]{display:none!important}
  .cna-assistant .cna-choices button{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-align:left!important;
    font-size:15px!important;
    line-height:1.35!important;
  }
  .cna-assistant .cna-input,
  .cna-assistant .cna-file-upload,
  .cna-assistant .cna-final{
    flex:0 0 auto!important;
    width:100%!important;
  }
  .cna-assistant .cna-file-upload{padding-top:4px!important}
}


/* Front visual parity with the administration preview – 1.6.2 */
.cna-assistant{
  --cna-bg:#f6f7f9;
  --cna-panel:#ffffff;
  --cna-text:#1f2937;
  --cna-muted:#6b7280;
  --cna-line:#e5e7eb;
}
.cna-box{background:var(--cna-panel);backdrop-filter:none;box-shadow:0 24px 70px rgba(15,23,42,.22)}
.cna-header{background:var(--cna-secondary);color:#fff;border-bottom-color:color-mix(in srgb,var(--cna-secondary),#fff 16%)}
.cna-header small{color:rgba(255,255,255,.72)}
.cna-close{color:#fff}
.cna-progress{background:#eef0f3}
.cna-messages{background:#f6f7f9}
.cna-message.is-bot{background:#fff;border-color:#edf0f3;box-shadow:0 8px 22px rgba(15,23,42,.07)}
.cna-message.is-user{background:var(--cna-primary);box-shadow:0 7px 18px color-mix(in srgb,var(--cna-primary),transparent 78%)}
.cna-choices{background:#f6f7f9}
.cna-choices button{background:#fff;color:var(--cna-secondary);border-color:color-mix(in srgb,var(--cna-primary),#fff 50%);font-weight:650}
.cna-choices button:hover,.cna-choices button:focus-visible{background:color-mix(in srgb,var(--cna-primary),#fff 95%);border-color:var(--cna-primary)}
.cna-input,.cna-file-upload,.cna-final{background:#fff;border-top:1px solid var(--cna-line);padding-top:14px}
.cna-input textarea{color:var(--cna-text);background:#fff;border-color:#dfe3e8}
.cna-file-button{background:#fff;color:var(--cna-secondary);border-color:color-mix(in srgb,var(--cna-primary),#fff 45%)}
.cna-file-skip{color:var(--cna-muted)}
@media (max-width:782px){
  .cna-assistant .cna-header{background:var(--cna-secondary)}
  .cna-assistant .cna-progress{background:#eef0f3}
  .cna-assistant .cna-box{background:#f6f7f9}
}


/* Unified assistant viewport and single conversation scroll – 1.6.3 */
.cna-box{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.cna-header,.cna-progress,.cna-input,.cna-file-upload,.cna-final,.cna-status,.cna-fallback{
  flex:0 0 auto;
}
.cna-conversation-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  background:#f6f7f9;
  scrollbar-width:thin;
  scrollbar-color:rgba(100,116,139,.38) transparent;
}
.cna-conversation-scroll::-webkit-scrollbar{width:6px}
.cna-conversation-scroll::-webkit-scrollbar-track{background:transparent}
.cna-conversation-scroll::-webkit-scrollbar-thumb{background:rgba(100,116,139,.38);border-radius:999px}
.cna-messages{
  flex:none!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.cna-choices{
  max-height:none!important;
  overflow:visible!important;
}
.cna-input,.cna-file-upload,.cna-final{
  position:relative;
  z-index:2;
  box-shadow:0 -8px 20px rgba(15,23,42,.04);
}
@media (max-width:782px){
  html.cna-chat-open,body.cna-chat-open{
    overflow:hidden!important;
    height:100%!important;
    overscroll-behavior:none!important;
  }
  .cna-assistant .cna-box,
  .cna-assistant.cna-position-left .cna-box{
    height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .cna-assistant .cna-header,
  .cna-assistant .cna-progress{
    position:relative!important;
    top:auto!important;
  }
  .cna-assistant .cna-conversation-scroll{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:4px;
  }
  .cna-assistant .cna-messages{
    overflow:visible!important;
    max-height:none!important;
  }
  .cna-assistant .cna-choices{
    overflow:visible!important;
    max-height:none!important;
  }
}
