/* ASSISTANT FLOATING - minimal floating assistant */
.assistant-float-btn { position:fixed; bottom:24px; right:24px; width:56px; height:56px; border-radius:50%; background:var(--accent); color:#fff; border:none; box-shadow:0 4px 20px rgba(13,115,119,.35); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:24px; z-index:500; transition:all var(--transition); }
.assistant-float-btn:hover { transform:scale(1.06); }
.assistant-float-btn .assistant-tooltip { position:absolute; bottom:calc(100% + 12px); right:0; background:var(--bg-surface); color:var(--txt); padding:4px 12px; border-radius:6px; font-family:var(--f-head); font-size:12px; font-weight:600; white-space:nowrap; border:1px solid var(--border); opacity:0; pointer-events:none; transition:opacity var(--transition); }
.assistant-float-btn:hover .assistant-tooltip { opacity:1; }
.assistant-overlay { position:fixed; inset:0; background:rgba(0,0,0,.25); z-index:550; }
.assistant-panel { position:fixed; bottom:90px; right:24px; width:380px; max-width:calc(100vw - 48px); max-height:calc(100vh - 130px); background:var(--bg-surface); border-radius:12px; box-shadow:0 8px 40px rgba(0,0,0,.12); border:1px solid var(--border); z-index:560; display:none; flex-direction:column; overflow:hidden; }
.assistant-header { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid var(--border); background:var(--bg-sidebar); color:#fff; }
.assistant-header-left { display:flex; align-items:center; gap:8px; font-family:var(--f-head); font-weight:600; font-size:14px; color:var(--accent); }
.assistant-close-btn { background:none; border:none; color:#9ca3af; font-size:16px; cursor:pointer; padding:4px 8px; }
.assistant-close-btn:hover { color:#fff; }
.assistant-context { padding:6px 16px; border-bottom:1px solid var(--border); background:var(--bg-code); }
.context-badge { display:inline-flex; align-items:center; gap:4px; font-family:var(--f-head); font-size:11px; font-weight:600; color:var(--accent); background:var(--accent-l); padding:2px 10px; border-radius:12px; }
.assistant-messages { flex:1; overflow-y:auto; padding:12px 16px; display:flex; flex-direction:column; gap:10px; min-height:160px; max-height:340px; }
.assistant-message { display:flex; gap:8px; max-width:90%; }
.assistant-message.assistant { align-self:flex-start; }
.assistant-message.user { align-self:flex-end; flex-direction:row-reverse; }
.assistant-message .message-avatar { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:12px; background:var(--accent-l); color:var(--accent); }
.assistant-message .message-content { background:var(--bg-code); padding:8px 12px; border-radius:8px; font-size:13px; line-height:1.6; color:var(--txt2); font-family:var(--f-head); }
.assistant-message.user .message-content { background:var(--accent); color:#fff; }
.assistant-message .message-content p { margin:0; }
.message-sources { margin-top:4px; font-size:11px; }
.message-details { margin-top:8px; border-top:1px solid var(--border); padding-top:6px; }
.message-details summary { color:var(--accent); cursor:pointer; font-size:11px; font-weight:700; }
.message-details p { margin-top:6px !important; color:var(--txt2); white-space:pre-wrap; }
.source-tag { display:inline-block; background:rgba(37,99,235,.08); color:#2563eb; padding:1px 8px; border-radius:4px; margin-right:4px; font-family:var(--f-mono); font-size:10px; }
.message-hint .hint-tag { background:var(--accent-l); color:var(--accent); padding:1px 8px; border-radius:4px; font-size:11px; }
.assistant-suggestions { padding:6px 16px 10px; display:flex; flex-wrap:wrap; gap:4px; border-top:1px solid var(--border); }
.suggestion-btn { background:var(--bg-code); border:1px solid var(--border); border-radius:14px; padding:3px 12px; font-family:var(--f-head); font-size:10px; font-weight:500; color:var(--txt2); cursor:pointer; transition:all var(--transition); }
.suggestion-btn:hover { background:var(--accent-l); border-color:var(--accent); color:var(--accent); }
.assistant-input-area { display:flex; gap:6px; padding:8px 12px 12px; border-top:1px solid var(--border); }
.assistant-input { flex:1; padding:6px 12px; border:1px solid var(--border); border-radius:6px; font-family:var(--f-body); font-size:13px; background:var(--bg-code); color:var(--txt); outline:none; }
.assistant-input:focus { border-color:var(--accent); }
.assistant-send-btn { background:var(--accent); color:#fff; border:none; border-radius:6px; padding:6px 12px; cursor:pointer; }
.typing-indicator span { display:inline-block; width:6px; height:6px; margin-right:3px; background:var(--txt3); border-radius:50%; animation:fadeIn 1s infinite alternate; }
@media (max-width:600px) {
    .assistant-panel { top:64px; bottom:12px; right:10px; left:10px; width:auto; max-height:none; border-radius:14px; }
    .assistant-messages { min-height:0; max-height:none; padding:10px 12px; }
    .assistant-message { max-width:96%; }
    .assistant-message .message-content { font-size:13px; line-height:1.45; }
    .assistant-context { padding:5px 12px; }
    .assistant-suggestions { flex-wrap:nowrap; overflow-x:auto; padding:6px 12px 8px; }
    .suggestion-btn { flex:0 0 auto; }
    .assistant-input-area { padding:8px 10px 10px; }
}
