.chat-fab{position:fixed;bottom:22px;right:22px;left:auto;z-index:1700;width:58px;height:58px;padding:0;border:none;border-radius:20px;cursor:pointer;background:#0161fb;display:grid;place-items:center;box-shadow:0 12px 28px -8px rgba(1,97,251,.55);transition:transform .2s ease,box-shadow .2s}
.chat-fab:hover{transform:translateY(-2px);box-shadow:0 16px 32px -8px rgba(1,97,251,.65)}
.chat-fab-logo,.chat-fab-close{position:absolute;transition:.2s}
.chat-fab-logo{width:28px;height:28px}
.chat-fab-close{width:22px;height:22px;opacity:0;transform:rotate(-80deg) scale(.4)}
.chat-fab.open .chat-fab-logo{opacity:0;transform:rotate(70deg) scale(.4)}
.chat-fab.open .chat-fab-close{opacity:1;transform:none}
.chat-fab-ping{position:absolute;inset:0;border-radius:20px;background:rgba(1,97,251,.35);animation:fabPing 2.2s ease-out infinite;z-index:-1}
.chat-fab.open .chat-fab-ping{display:none}
@keyframes fabPing{0%{transform:scale(1);opacity:.55}70%{transform:scale(1.45);opacity:0}100%{transform:scale(1.45);opacity:0}}
.chat-fab-badge{position:absolute;top:-4px;left:-4px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid #fff;z-index:2}
.chat-fab-badge[hidden]{display:none!important}
body.chat-open .chat-fab-ping{display:none}
body:has(.chat-fab) .to-top{right:96px;inset-inline-start:auto}

.chat-panel{position:fixed;bottom:92px;right:22px;left:auto;z-index:1700;width:min(392px,calc(100vw - 28px));height:min(620px,calc(100dvh - 128px));background:#fff;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 28px 70px -22px rgba(11,20,42,.48);transform:translateY(18px) scale(.96);opacity:0;pointer-events:none;visibility:hidden;transition:transform .28s cubic-bezier(.2,.9,.3,1.2),opacity .2s;transform-origin:bottom right;font-family:inherit}
.chat-panel[hidden]{display:none!important;opacity:0;visibility:hidden;pointer-events:none}
.chat-panel.open{transform:none;opacity:1;pointer-events:auto;visibility:visible;display:flex}

.cp-head{flex:none;background:linear-gradient(135deg,#0ea5e9 0%,#0161fb 58%,#6d28d9 140%);color:#fff;padding:14px 14px 12px}
.cp-head-row{display:flex;align-items:center;gap:10px}
.cp-ava{width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
.cp-ava svg{width:22px;height:22px}
.cp-head-info{flex:1;min-width:0}
.cp-head-info b{display:block;font-size:14.5px;font-weight:800}
.cp-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;opacity:.94;margin-top:2px}
.cp-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.28);display:inline-block}
.cp-dot.ai{background:#fde047;box-shadow:0 0 0 3px rgba(253,224,71,.3)}
.cp-min{width:32px;height:32px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.cp-min:hover{background:rgba(255,255,255,.3)}
.cp-min svg{width:16px;height:16px}
.cp-mode{display:flex;gap:4px;background:rgba(0,0,0,.16);border-radius:12px;padding:4px;margin-top:12px}
.cp-mode-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:none;background:transparent;color:rgba(255,255,255,.86);font-size:12px;font-weight:700;padding:8px 6px;border-radius:9px;cursor:pointer;font-family:inherit}
.cp-mode-btn svg{width:15px;height:15px}
.cp-mode-btn.active{background:#fff;color:#0161fb;box-shadow:0 4px 12px -4px rgba(0,0,0,.28)}
.cp-mode-btn[disabled]{opacity:.45;cursor:not-allowed}

.cp-body{flex:1;min-height:0;display:flex;flex-direction:column;background:linear-gradient(#f7f9fc,#eef3fb)}
.cp-messages{flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:8px}
.cp-typing{display:flex;gap:4px;margin:0 14px 12px;padding:11px 14px;background:#fff;border-radius:16px 16px 16px 6px;width:fit-content;box-shadow:0 4px 14px -8px rgba(15,23,42,.25)}
.cp-typing[hidden]{display:none!important}
.cp-typing span{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:typ 1.2s infinite}
.cp-typing span:nth-child(2){animation-delay:.18s}
.cp-typing span:nth-child(3){animation-delay:.36s}
@keyframes typ{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}

.cw-msg{display:flex;width:100%;direction:ltr}
.cw-msg.out{justify-content:flex-end}
.cw-msg.in{justify-content:flex-start}
.cw-bub{max-width:82%;position:relative;padding:9px 12px 7px;border-radius:16px;font-size:13.2px;line-height:1.85;word-break:break-word;direction:rtl;text-align:right;box-shadow:0 3px 10px -8px rgba(15,23,42,.28)}
.cw-msg.out .cw-bub{background:linear-gradient(135deg,#0ea5e9,#0161fb);color:#fff;border-bottom-right-radius:5px}
.cw-msg.in .cw-bub{background:#fff;color:#1f2a44;border:1px solid #e8eef6;border-bottom-left-radius:5px}
.cw-text{white-space:pre-wrap}
.cw-meta{display:flex;align-items:center;gap:5px;font-size:10px;opacity:.72;margin-top:3px;direction:ltr;justify-content:flex-end;font-variant-numeric:tabular-nums}
.cw-msg.in .cw-meta{color:#94a3b8;opacity:1}
.cw-check{font-size:11px;letter-spacing:-1px}
.cw-check.seen{color:#b8f0c4}
.cw-sys{align-self:center;background:#e8eef6;color:#64748b;font-size:11.2px;padding:6px 12px;border-radius:999px;margin:2px auto;text-align:center;line-height:1.7;max-width:90%}
.cw-img{display:block}
.cw-img img{max-width:220px;max-height:180px;border-radius:12px;display:block;object-fit:cover}
.cw-file{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:168px}
.cw-file-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:16px;flex:none;background:rgba(255,255,255,.18)}
.cw-msg.in .cw-file-ic{background:#eaf3ff}
.cw-file span:not(.cw-file-ic){display:flex;flex-direction:column;min-width:0}
.cw-file b{font-size:12.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.cw-file small{opacity:.75;font-size:10.5px}
.cw-file .cw-dl{font-size:11px;font-weight:800;margin-inline-start:auto}

.cp-closed{padding:14px 16px 6px;text-align:center;background:#fff;border-top:1px solid #eef2f8}
.cp-closed[hidden]{display:none!important}
.cp-closed p{font-size:12.5px;color:#64748b;margin:0 0 8px}
.cp-new{border:none;background:linear-gradient(135deg,#0ea5e9,#0161fb);color:#fff;font-family:inherit;font-weight:800;font-size:12.5px;padding:8px 14px;border-radius:10px;cursor:pointer}

.cp-attach-preview{display:flex;align-items:center;gap:8px;margin:0;padding:8px 14px;background:#f1f5fb;font-size:12px;color:#334155;flex:none}
.cp-attach-preview[hidden]{display:none!important}
.cp-att-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.cp-attach-preview button{margin-inline-start:auto;border:none;background:#ef4444;color:#fff;width:22px;height:22px;border-radius:50%;cursor:pointer;flex:none}

.cp-foot{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 12px;border-top:1px solid #eef2f8;background:#fff;flex:none}
.chat-panel.is-ai .cp-attach,.chat-panel.is-ai .cp-attach-preview{display:none!important}
.cp-attach{width:40px;height:40px;border-radius:12px;background:#f1f5fb;color:#64748b;display:grid;place-items:center;cursor:pointer;flex:none}
.cp-attach:hover{color:#0161fb;background:#e8f1ff}
.cp-attach svg{width:19px;height:19px}
.cp-foot input[type=text]{flex:1;border:1px solid #e6ecf5;background:#f8fafc;border-radius:12px;padding:10px 14px;font-size:13px;outline:none;font-family:inherit;min-width:0}
.cp-foot input[type=text]:focus{border-color:#0ea5e9;background:#fff}
.cp-send{width:42px;height:40px;border:none;border-radius:12px;background:linear-gradient(135deg,#0ea5e9,#0161fb);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.cp-send:hover{filter:brightness(1.08)}
.cp-send svg{width:18px;height:18px}
.cp-send[disabled]{opacity:.5;cursor:not-allowed}

@media (max-width:560px){
  .chat-fab{bottom:16px;right:16px;width:56px;height:56px}
  .chat-fab-logo{width:26px;height:26px}
  .chat-panel{inset:0;width:100%;height:100dvh;border-radius:0;bottom:0;right:0;left:0;transform:translateY(100%)}
  .chat-panel.open{transform:none}
  body.chat-open{overflow:hidden}
  .cw-bub{max-width:86%}
}
.panel-body .chat-fab{display:none!important}
html[data-theme="dark"] .chat-panel,html[data-theme="dark"] .cp-foot,html[data-theme="dark"] .cp-closed{background:#131c33;border-color:#27334f}
html[data-theme="dark"] .cp-body{background:linear-gradient(#0f1730,#121c36)}
html[data-theme="dark"] .cw-msg.in .cw-bub{background:#1a2540;color:#e8eefb;border-color:#27334f}
html[data-theme="dark"] .cw-sys{background:#1a2540;color:#a5b3d1}
html[data-theme="dark"] .cp-foot input[type=text]{background:#1a2540;border-color:#27334f;color:#e8eefb}
html[data-theme="dark"] .cp-attach{background:#1a2540;color:#a5b3d1}
html[data-theme="dark"] .cp-attach-preview{background:#1a2540;color:#e8eefb}
