/* ============================================================
   Defense Compliance — Chat Widget Styles
   Floating AI assistant on every page
   ============================================================ */

.cmmc-chat-bubble{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--navy,#0f172a),var(--slate,#1e293b));cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(15,23,42,0.15);transition:all .3s cubic-bezier(0.4,0,0.2,1);z-index:9998;border:none}
.cmmc-chat-bubble:hover{transform:scale(1.05);box-shadow:0 8px 24px rgba(15,23,42,0.25)}
.cmmc-chat-bubble:active{transform:scale(0.95)}
@keyframes pulse-gentle{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.cmmc-chat-bubble.pulse{animation:pulse-gentle 2s cubic-bezier(0.4,0,0.2,1) 10s infinite}
.cmmc-chat-icon{width:28px;height:28px;position:relative;color:#fff}
.cmmc-chat-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cmmc-ai-badge{position:absolute;top:-4px;right:-4px;width:24px;height:24px;background:var(--teal,#0ea5e9);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;box-shadow:0 2px 8px rgba(14,165,233,0.3)}
.cmmc-chat-bubble::before{content:'Ask about compliance';position:absolute;bottom:75px;right:0;background:var(--slate,#1e293b);color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:10000}
.cmmc-chat-bubble:hover::before{opacity:1}

.cmmc-chat-window{position:fixed;bottom:100px;right:24px;width:400px;height:560px;background:#fff;border-radius:16px 16px 8px 8px;box-shadow:0 20px 60px rgba(15,23,42,0.2);display:flex;flex-direction:column;z-index:9999;opacity:0;transform:translateY(20px) scale(0.95);pointer-events:none;transition:all .3s cubic-bezier(0.34,1.56,0.64,1)}
.cmmc-chat-window.active{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.cmmc-chat-window.closing{opacity:0;transform:translateY(20px) scale(0.95);pointer-events:none}

.cmmc-chat-header{background:linear-gradient(135deg,var(--navy,#0f172a),var(--slate,#1e293b));color:#fff;padding:16px;border-radius:16px 16px 0 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.cmmc-chat-header-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.cmmc-chat-avatar{width:40px;height:40px;background:rgba(255,255,255,0.1);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.cmmc-chat-header-text{flex:1;min-width:0}
.cmmc-chat-header-title{font-size:14px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmmc-chat-header-subtitle{font-size:11px;opacity:0.8;margin:2px 0 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmmc-chat-header-controls{display:flex;gap:8px}
.cmmc-chat-btn{background:rgba(255,255,255,0.2);border:none;color:#fff;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .15s;flex-shrink:0}
.cmmc-chat-btn:hover{background:rgba(255,255,255,0.3);transform:scale(1.1)}
.cmmc-chat-btn:active{transform:scale(0.95)}

.cmmc-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#fff}
.cmmc-chat-messages::-webkit-scrollbar{width:6px}
.cmmc-chat-messages::-webkit-scrollbar-track{background:transparent}
.cmmc-chat-messages::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:3px}
.cmmc-chat-messages::-webkit-scrollbar-thumb:hover{background:#64748b}

.cmmc-message{display:flex;gap:8px;animation:chatFadeIn 200ms cubic-bezier(0.4,0,0.2,1)}
@keyframes chatFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.cmmc-message.user{flex-direction:row-reverse;justify-content:flex-end}
.cmmc-message-content{max-width:85%;padding:12px 14px;border-radius:18px;font-size:14px;line-height:1.4;word-wrap:break-word;position:relative;display:flex;flex-direction:column;gap:8px}
.cmmc-message.bot .cmmc-message-content{background:#f1f5f9;color:var(--slate,#1e293b);border-bottom-left-radius:4px}
.cmmc-message.user .cmmc-message-content{background:var(--teal,#0ea5e9);color:#fff;border-bottom-right-radius:4px}
.cmmc-message-content strong{font-weight:600}
.cmmc-message-content a{color:var(--teal,#0ea5e9);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s}
.cmmc-message.user .cmmc-message-content a{color:#fff;opacity:0.95}
.cmmc-message-content a:hover{border-bottom-color:currentColor}
.cmmc-message-content ul{margin:8px 0 0 20px;padding:0}
.cmmc-message-content li{margin:4px 0}

.cmmc-tool-card{background:rgba(14,165,233,0.1);border-left:3px solid var(--teal,#0ea5e9);padding:10px 12px;border-radius:6px;margin-top:8px}
.cmmc-tool-name{font-weight:600;font-size:13px;margin-bottom:4px;color:var(--navy,#0f172a)}
.cmmc-tool-desc{font-size:12px;color:#64748b;margin-bottom:6px}
.cmmc-tool-link{font-size:12px;color:var(--teal,#0ea5e9);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s;display:inline-flex;align-items:center;gap:4px}
.cmmc-tool-link:hover{border-bottom-color:var(--teal,#0ea5e9)}

.cmmc-message.bot::before{content:'DC';width:28px;height:28px;background:linear-gradient(135deg,var(--teal,#0ea5e9),var(--emerald,#10b981));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;margin-top:2px}

.cmmc-typing{display:flex;gap:4px;padding:12px 14px}
.cmmc-typing-dot{width:8px;height:8px;background:#64748b;border-radius:50%;animation:typingBounce 1.4s infinite}
.cmmc-typing-dot:nth-child(2){animation-delay:0.2s}
.cmmc-typing-dot:nth-child(3){animation-delay:0.4s}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0);opacity:0.5}30%{transform:translateY(-10px);opacity:1}}

.cmmc-quick-replies{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px}
.cmmc-quick-reply-btn{background:transparent;border:1.5px solid var(--teal,#0ea5e9);color:var(--teal,#0ea5e9);padding:10px 12px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .15s;text-align:left;font-weight:500}
.cmmc-quick-reply-btn:hover{background:rgba(14,165,233,0.1);transform:translateX(2px)}
.cmmc-quick-reply-btn:active{transform:scale(0.98)}

.cmmc-email-capture{background:linear-gradient(135deg,rgba(14,165,233,0.05),rgba(16,185,129,0.05));border-left:3px solid var(--teal,#0ea5e9);padding:12px;border-radius:8px;margin-top:8px}
.cmmc-email-input{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;margin:8px 0;transition:border-color .15s}
.cmmc-email-input:focus{outline:none;border-color:var(--teal,#0ea5e9);box-shadow:0 0 0 3px rgba(14,165,233,0.1)}
.cmmc-email-btn{background:var(--teal,#0ea5e9);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;width:100%}
.cmmc-email-btn:hover{background:#0284c7;transform:translateY(-1px);box-shadow:0 4px 12px rgba(14,165,233,0.3)}
.cmmc-email-btn:active{transform:translateY(0)}

.cmmc-chat-input-area{padding:12px;border-top:1px solid #e2e8f0;display:flex;gap:8px;align-items:flex-end;background:#fff;border-radius:0 0 8px 8px}
.cmmc-chat-input{flex:1;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:inherit;resize:none;max-height:72px;overflow-y:auto;transition:border-color .15s}
.cmmc-chat-input:focus{outline:none;border-color:var(--teal,#0ea5e9);box-shadow:0 0 0 3px rgba(14,165,233,0.1)}
.cmmc-char-counter{font-size:11px;color:#64748b;padding:0 4px;text-align:right;min-width:30px;display:none}
.cmmc-char-counter.show{display:block}
.cmmc-send-btn{width:36px;height:36px;background:var(--teal,#0ea5e9);border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .15s;flex-shrink:0}
.cmmc-send-btn:hover:not(:disabled){background:#0284c7;transform:scale(1.05)}
.cmmc-send-btn:active:not(:disabled){transform:scale(0.95)}
.cmmc-send-btn:disabled{opacity:0.5;cursor:not-allowed}
.cmmc-send-icon{width:16px;height:16px}
.cmmc-send-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.cmmc-chat-window.minimized{height:60px}
.cmmc-chat-window.minimized .cmmc-chat-messages,
.cmmc-chat-window.minimized .cmmc-chat-input-area{display:none}

@media(max-width:480px){
  .cmmc-chat-window{width:calc(100vw - 24px);height:calc(100vh - 100px);max-height:calc(100vh - 100px);bottom:80px;right:12px}
  .cmmc-chat-bubble{bottom:16px;right:16px}
  .cmmc-quick-replies{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .cmmc-chat-bubble,.cmmc-chat-window,.cmmc-message,.cmmc-typing-dot{animation:none!important;transition-duration:0.01ms!important}
  .cmmc-chat-bubble.pulse{animation:none!important}
}
