/* =====================================================================
   VINIS — Khung chat tư vấn (06/11/2026) — chế độ AI hoặc chế độ liên hệ (form)
   Chuyển từ web vinis.vn cũ (shared/ai-chat.css), đổi sang màu VINIS:
   đen than (ink) + vàng hổ phách #f8ac1a. Đi kèm js/ai-chat.js.
   Bong bóng nằm trong cột nút nổi (Zalo / Gọi) ở góc phải dưới.
   ===================================================================== */
#aiChatBubble{position:relative;width:56px;height:56px;border:0;padding:0;border-radius:50%;cursor:pointer;background:transparent;flex-shrink:0;transition:transform .2s}
#aiChatBubble:hover{transform:scale(1.05)}
#aiChatBubble.ai-bubble-solo{position:fixed;right:24px;bottom:24px;z-index:50}
.ai-bubble-icon{position:relative;z-index:2;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;color:#f8ac1a;background:#0e0e10;border:2px solid #f8ac1a;box-shadow:0 10px 26px rgba(14,14,16,.45)}
.ai-bubble-pulse{position:absolute;inset:0;z-index:1;border-radius:50%;background:rgba(248,172,26,.35);animation:aiPulse 2.2s ease-in-out infinite}
@keyframes aiPulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.4);opacity:0}}
.ai-bubble-badge{position:absolute;top:-3px;right:-3px;z-index:3;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#ef4444;color:#fff;font:800 11px/20px Manrope,system-ui,sans-serif;text-align:center;border:2px solid #fff}
.ai-bubble-tip{pointer-events:none;position:absolute;right:64px;top:50%;transform:translateY(-50%);white-space:nowrap;background:#0e0e10;color:#fff;font:500 12px Manrope,system-ui,sans-serif;padding:6px 12px;border-radius:8px;opacity:0;transition:opacity .2s}
#aiChatBubble:hover .ai-bubble-tip{opacity:1}

/* ---- Cửa sổ chat: nằm bên trái cột nút nổi ---- */
#aiChatWindow{position:fixed;right:96px;bottom:24px;z-index:90;width:400px;height:min(600px,calc(100vh - 110px));display:none;flex-direction:column;overflow:hidden;border-radius:20px;background:#16161a;border:1px solid rgba(255,255,255,.08);box-shadow:0 28px 70px rgba(0,0,0,.45);font-family:Manrope,system-ui,sans-serif;color:#e5e7eb;animation:aiWindowIn .35s cubic-bezier(.16,1,.3,1)}
#aiChatWindow.open{display:flex}
#aiChatWindow.expanded{width:min(760px,calc(100vw - 140px));height:calc(100vh - 110px)}
@keyframes aiWindowIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}

.ai-chat-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;background:linear-gradient(135deg,#1f1f24,#0e0e10);border-bottom:2px solid #f8ac1a}
.ai-head-left{display:flex;align-items:center;gap:12px;min-width:0}
.ai-avatar{width:42px;height:42px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.ai-avatar img{width:100%;height:100%;object-fit:contain;padding:5px}
.ai-head-title{font-weight:800;font-size:14px;color:#fff;line-height:1.2}
.ai-head-status{display:flex;align-items:center;gap:6px;font-size:11px;color:rgba(255,255,255,.55);margin-top:3px}
.ai-head-status i{width:8px;height:8px;border-radius:50%;background:#4ade80;display:inline-block}
.ai-head-btns{display:flex;gap:6px;flex-shrink:0}
.ai-header-btn{width:32px;height:32px;border:0;border-radius:8px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.6);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:background .2s,color .2s}
.ai-header-btn:hover{background:rgba(248,172,26,.18);color:#fbc04f}

.ai-chat-messages{flex:1;min-height:0;overflow-y:auto;padding:16px;overscroll-behavior:contain}
.ai-chat-messages::-webkit-scrollbar{width:5px}
.ai-chat-messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
.ai-msg{display:flex;gap:10px;margin-bottom:14px;animation:aiMsgIn .3s ease}
@keyframes aiMsgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ai-msg-avatar{width:30px;height:30px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px}
.ai-msg-bot .ai-msg-avatar{background:#f8ac1a;color:#0e0e10}
.ai-msg-user{flex-direction:row-reverse}
.ai-msg-user .ai-msg-avatar{background:rgba(255,255,255,.1);color:#fbc04f}
.ai-msg-content{min-width:0;max-width:calc(100% - 40px)}
.ai-msg-bubble{padding:11px 14px;border-radius:16px;font-size:13.5px;line-height:1.6;overflow-wrap:anywhere}
.ai-msg-bot .ai-msg-bubble{background:#1f1f24;border:1px solid rgba(255,255,255,.07);color:rgba(255,255,255,.88);border-top-left-radius:4px}
.ai-msg-user .ai-msg-bubble{background:#f8ac1a;color:#0e0e10;font-weight:500;border-top-right-radius:4px}
.ai-msg-time{font-size:10px;color:rgba(255,255,255,.3);margin-top:4px}
.ai-msg-user .ai-msg-time{text-align:right}
.ai-msg-bubble h1,.ai-msg-bubble h2,.ai-msg-bubble h3{color:#fff;margin:8px 0 4px;font-weight:700;font-size:14.5px}
.ai-msg-bubble ul,.ai-msg-bubble ol{margin:6px 0;padding-left:18px}
.ai-msg-bubble ul{list-style:disc}.ai-msg-bubble ol{list-style:decimal}
.ai-msg-bubble li{margin:3px 0}
.ai-msg-bubble p{margin:0 0 6px}
.ai-msg-bubble code{background:rgba(255,255,255,.1);padding:1px 6px;border-radius:4px;font-size:12px}
.ai-msg-bubble pre{background:rgba(0,0,0,.35);border-radius:10px;padding:10px;margin:8px 0;overflow-x:auto;font-size:12px}
.ai-msg-bubble pre code{background:none;padding:0}
.ai-msg-bubble blockquote{border-left:3px solid #f8ac1a;padding-left:10px;margin:8px 0;color:rgba(255,255,255,.65)}
.ai-msg-bubble table{width:100%;border-collapse:collapse;margin:8px 0;font-size:12px;display:block;overflow-x:auto}
.ai-msg-bubble th{background:rgba(255,255,255,.08);padding:6px 8px;text-align:left;color:#fff;border:1px solid rgba(255,255,255,.1)}
.ai-msg-bubble td{padding:5px 8px;border:1px solid rgba(255,255,255,.07)}
.ai-msg-bot .ai-msg-bubble a{color:#fbc04f;text-decoration:underline;text-underline-offset:2px}
.ai-msg-bot .ai-msg-bubble a:hover{color:#fcd88f}
.ai-msg-bot .ai-msg-bubble strong{color:#fff}
.ai-msg-bubble hr{border:0;border-top:1px solid rgba(255,255,255,.1);margin:8px 0}

.ai-quick-actions{flex-shrink:0;display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.ai-quick-actions button{padding:6px 12px;border-radius:20px;border:1px solid rgba(248,172,26,.35);background:rgba(248,172,26,.08);color:rgba(255,255,255,.8);font:600 12px Manrope,system-ui,sans-serif;cursor:pointer;transition:all .2s}
.ai-quick-actions button:hover{background:rgba(248,172,26,.2);color:#fbc04f}

.ai-chat-input{flex-shrink:0;padding:10px 14px 8px;border-top:1px solid rgba(255,255,255,.07);background:#16161a}
.ai-input-wrap{display:flex;align-items:flex-end;gap:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:4px 4px 4px 14px}
.ai-input-wrap:focus-within{border-color:rgba(248,172,26,.6)}
#aiInput{flex:1;min-width:0;background:none;border:0;outline:none;color:#fff;font:16px/1.5 Manrope,system-ui,sans-serif;resize:none;max-height:96px;padding:8px 0}
@media (min-width:640px){#aiInput{font-size:14px}}
#aiInput::placeholder{color:rgba(255,255,255,.35)}
.ai-send-btn{width:40px;height:40px;flex-shrink:0;border:0;border-radius:12px;background:#f8ac1a;color:#0e0e10;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .2s}
.ai-send-btn:hover{background:#fbc04f}
.ai-send-btn:disabled{opacity:.45;cursor:not-allowed}
.ai-powered{text-align:center;font-size:10px;color:rgba(255,255,255,.28);margin-top:6px}

.ai-typing{display:flex;gap:4px;padding:4px 0}
.ai-typing span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4);animation:aiTyping 1.2s ease-in-out infinite}
.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes aiTyping{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}

/* Nút "Hỏi AI" khi bấm đúp chọn chữ */
#aiAskFloatBtn{position:absolute;z-index:85;transform:translate(-50%,-100%);display:none;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;background:#0e0e10;color:#fbc04f;font:700 12px Manrope,system-ui,sans-serif;box-shadow:0 8px 22px rgba(0,0,0,.3);cursor:pointer;white-space:nowrap}

/* ---- Điện thoại: chat mở toàn màn hình ---- */
@media (max-width:639px){
  #aiChatWindow,#aiChatWindow.expanded{inset:0;right:0;bottom:0;width:100%;height:100%;height:100dvh;border-radius:0;border:0}
  #aiExpandBtn{display:none}
  body.ai-chat-mo{overflow:hidden}
}
@media (prefers-reduced-motion:reduce){.ai-bubble-pulse,.ai-msg,#aiChatWindow{animation:none}}
/* ---- Chế độ liên hệ (06/11/2026): form trong khung chat, gửi như form liên hệ ---- */
.ai-msg-form .ai-msg-content{flex:1}
.ai-msg-form .ai-msg-bubble{padding:12px}
.ai-lh-form{display:flex;flex-direction:column;gap:8px}
.ai-lh-form input,.ai-lh-form textarea{width:100%;box-sizing:border-box;padding:9px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#0e0e10;color:#fff;font:500 13px/1.45 Manrope,system-ui,sans-serif;outline:none;transition:border-color .2s}
.ai-lh-form textarea{resize:vertical;min-height:62px;max-height:160px}
.ai-lh-form input::placeholder,.ai-lh-form textarea::placeholder{color:rgba(255,255,255,.42)}
.ai-lh-form input:focus,.ai-lh-form textarea:focus{border-color:#f8ac1a}
.ai-lh-form button{margin-top:2px;padding:10px 14px;border:0;border-radius:10px;background:#f8ac1a;color:#0e0e10;font:800 13px Manrope,system-ui,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}
.ai-lh-form button:hover{background:#fbc04f}
.ai-lh-form button:disabled{opacity:.7;cursor:default}
.ai-lh-form p{margin:0;font-size:11px;color:rgba(255,255,255,.4)}
@media (max-width:639px){.ai-lh-form input,.ai-lh-form textarea{font-size:16px}}   /* iOS không tự phóng to khi gõ */
@media print{#aiChatBubble,#aiChatWindow,#aiAskFloatBtn{display:none!important}}
