/* ===================== AIRAA chat widget ===================== */
.ai-fab{position:fixed;right:clamp(1rem,3vw,1.6rem);bottom:clamp(1rem,3vw,1.6rem);z-index:400;
  display:flex;align-items:center;gap:.6rem;padding:.6rem .95rem .6rem .6rem;border:none;cursor:pointer;
  border-radius:999px;color:#04141a;font-family:inherit;font-weight:700;font-size:.92rem;
  background:linear-gradient(135deg,var(--teal),var(--amber));
  box-shadow:0 14px 34px -10px rgba(26,168,168,.7);transition:.28s;animation:aiPop .5s ease .4s both}
.ai-fab:hover{transform:translateY(-3px);box-shadow:0 20px 44px -10px rgba(245,176,66,.75)}
.ai-fab .av{width:34px;height:34px;border-radius:50%;background:rgba(4,20,26,.9);display:grid;place-items:center;flex:none}
.ai-fab .lbl{white-space:nowrap}
.ai-fab .dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;box-shadow:0 0 0 0 rgba(46,204,113,.6);animation:aiPulse 2s infinite}
@keyframes aiPulse{0%{box-shadow:0 0 0 0 rgba(46,204,113,.6)}70%{box-shadow:0 0 0 8px rgba(46,204,113,0)}100%{box-shadow:0 0 0 0 rgba(46,204,113,0)}}
@keyframes aiPop{from{opacity:0;transform:translateY(16px) scale(.8)}to{opacity:1;transform:none}}

.ai-panel{position:fixed;right:clamp(1rem,3vw,1.6rem);bottom:clamp(1rem,3vw,1.6rem);z-index:401;
  width:min(400px,calc(100vw - 2rem));height:min(620px,calc(100vh - 2rem));display:flex;flex-direction:column;
  background:linear-gradient(180deg,var(--panel2),var(--navy2));border:1px solid var(--line);
  border-radius:20px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.9);
  transform-origin:bottom right;transition:.28s cubic-bezier(.2,.7,.2,1)}
.ai-panel[hidden]{display:none}
.ai-panel.closing,.ai-panel.opening{opacity:0;transform:translateY(20px) scale(.96)}

.ai-head{display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;
  background:linear-gradient(135deg,rgba(26,168,168,.22),rgba(245,176,66,.14));border-bottom:1px solid var(--line)}
.ai-head .av{width:40px;height:40px;border-radius:50%;background:rgba(4,20,26,.85);display:grid;place-items:center;flex:none}
.ai-head h4{margin:0;font-size:1.02rem;font-weight:800;letter-spacing:-.01em;display:flex;align-items:center;gap:.4rem}
.ai-head .tag{font-size:.6rem;background:var(--teal);color:#04141a;padding:.08rem .4rem;border-radius:5px;font-weight:800;letter-spacing:.05em}
.ai-head p{margin:.1rem 0 0;font-size:.68rem;color:var(--mut);line-height:1.3}
.ai-head p b{color:var(--amber2);font-weight:800}
.ai-head .x{margin-left:auto;background:none;border:none;color:var(--mut);font-size:1.5rem;cursor:pointer;line-height:1;padding:.2rem}
.ai-head .x:hover{color:#fff}

.ai-log{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.8rem;scroll-behavior:smooth}
.ai-msg{max-width:86%;font-size:.9rem;line-height:1.5;padding:.7rem .9rem;border-radius:14px;white-space:pre-wrap;word-wrap:break-word}
.ai-msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--amber),#e8952f);color:#241503;border-bottom-right-radius:4px;font-weight:500}
.ai-msg.bot{align-self:flex-start;background:rgba(255,255,255,.05);border:1px solid var(--line);color:#e6eef6;border-bottom-left-radius:4px}
.ai-msg.bot b,.ai-msg.bot strong{color:#fff}
.ai-msg.bot code{background:rgba(26,168,168,.16);color:#7fe3e3;padding:.05rem .3rem;border-radius:4px;font-size:.85em}
.ai-msg .src{display:inline-block;margin-top:.55rem;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:.18rem .5rem;border-radius:6px}
.ai-msg .src.playbook{background:rgba(26,168,168,.2);color:#5fd6d6}
.ai-msg .src.general{background:rgba(245,176,66,.2);color:var(--amber2)}
.ai-msg .src.offline{background:rgba(157,178,198,.18);color:#c3d0dc}
.ai-msg .src.system{background:rgba(224,122,95,.2);color:#f0a58f}

.ai-typing{align-self:flex-start;display:flex;gap:.3rem;padding:.8rem .9rem;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:14px;border-bottom-left-radius:4px}
.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--teal);animation:aiBlink 1.2s infinite}
.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes aiBlink{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

.ai-sugg{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .4rem}
.ai-sugg button{font-family:inherit;font-size:.76rem;color:var(--teal);background:rgba(26,168,168,.1);
  border:1px solid rgba(26,168,168,.3);border-radius:999px;padding:.4rem .75rem;cursor:pointer;transition:.2s}
.ai-sugg button:hover{background:rgba(26,168,168,.22);color:#fff}

.ai-input{display:flex;align-items:flex-end;gap:.5rem;padding:.7rem;border-top:1px solid var(--line);background:rgba(4,12,20,.4)}
.ai-input textarea{flex:1;resize:none;max-height:96px;background:var(--panel);border:1px solid var(--line);border-radius:12px;
  color:var(--ink);font-family:inherit;font-size:.9rem;padding:.6rem .8rem;outline:none;line-height:1.4}
.ai-input textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(26,168,168,.15)}
.ai-send{flex:none;width:40px;height:40px;border-radius:11px;border:none;cursor:pointer;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--teal),var(--amber));color:#04141a;transition:.2s}
.ai-send:hover{transform:translateY(-1px)}
.ai-send:disabled{opacity:.5;cursor:not-allowed;transform:none}
.ai-foot{font-size:.62rem;color:var(--mut);text-align:center;padding:.15rem 1rem .55rem;background:rgba(4,12,20,.4)}

.modal .m-ask{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;margin-left:.6rem;padding:.55rem 1rem;
  border-radius:999px;border:1px solid var(--teal);color:var(--teal);background:transparent;font-family:inherit;
  font-weight:700;font-size:.85rem;cursor:pointer;transition:.2s}
.modal .m-ask:hover{background:var(--teal);color:#04141a}

@media(prefers-reduced-motion:reduce){
  .ai-fab,.ai-panel,.ai-typing span,.ai-fab .dot{animation:none!important;transition:none!important}
}
@media(max-width:480px){
  .ai-fab .lbl{display:none}
  .ai-fab{padding:.6rem}
}
