/* SBCC AI Assistant */
#sbcc-ai-root{position:fixed;z-index:300;pointer-events:none;inset:0}
#sbcc-ai-root *{pointer-events:auto}
.sbcc-ai-fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--inverse);box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:transform .15s,background .15s;z-index:301}
.sbcc-ai-fab:hover{transform:scale(1.05);background:var(--primary-h)}
.sbcc-ai-fab svg{width:26px;height:26px}
.sbcc-ai-panel{position:fixed;width:min(420px,calc(100vw - 24px));height:auto;background:transparent;border:none;box-shadow:none;display:flex;flex-direction:column;overflow:visible;z-index:302}
.sbcc-ai-panel.hidden{display:none}
.sbcc-ai-header{display:flex;align-items:center;gap:10px;padding:13px 16px;background:var(--offset);border:1px solid var(--border);border-radius:var(--r-lg);cursor:grab;user-select:none;flex-shrink:0;position:relative;z-index:3;width:100%;box-shadow:0 10px 28px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.12)}
.sbcc-ai-header:hover{box-shadow:0 12px 32px rgba(0,0,0,.24),0 3px 10px rgba(0,0,0,.14)}
.sbcc-ai-header:active{cursor:grabbing}
.sbcc-ai-header-title{flex:1;font-size:.88rem;font-weight:600;display:flex;align-items:center;gap:8px}
.sbcc-ai-header-title .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.sbcc-ai-header-btns{display:flex;gap:4px}
.sbcc-ai-icon-btn{width:28px;height:28px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;color:var(--muted);background:transparent;border:none;cursor:pointer}
.sbcc-ai-icon-btn:hover{background:var(--dynamic);color:var(--text)}
.sbcc-ai-body{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border);width:calc(100% - 20px);margin-inline:auto;max-height:0;opacity:0;pointer-events:none;transition:max-height .28s ease,opacity .22s ease,transform .22s ease;border-radius:var(--r-lg);box-shadow:0 8px 22px rgba(0,0,0,.16),0 2px 6px rgba(0,0,0,.1)}
.sbcc-ai-panel.expand-down .sbcc-ai-body{margin-top:8px}
.sbcc-ai-panel.expand-up .sbcc-ai-body{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(100% + 8px)}
.sbcc-ai-panel.expand-up:not(.collapsed) .sbcc-ai-body{transform:translateX(-50%)}
.sbcc-ai-panel:not(.collapsed) .sbcc-ai-body{max-height:var(--sbcc-ai-body-max,min(480px,calc(100dvh - 140px)));opacity:1;pointer-events:auto}
.sbcc-ai-body-inner{display:flex;flex-direction:column;min-height:0;height:var(--sbcc-ai-body-max,min(480px,calc(100dvh - 140px)));max-height:var(--sbcc-ai-body-max,min(480px,calc(100dvh - 140px)))}
.sbcc-ai-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:120px}
.sbcc-ai-msg{max-width:92%;padding:8px 12px;border-radius:var(--r-lg);font-size:.78rem;line-height:1.5;word-break:break-word}
.sbcc-ai-msg.user{align-self:flex-end;background:var(--primary-hl);color:var(--text);border-bottom-right-radius:4px}
.sbcc-ai-msg.assistant{align-self:flex-start;background:var(--offset);border:1px solid var(--border);border-bottom-left-radius:4px}
.sbcc-ai-msg.system{align-self:center;background:transparent;color:var(--muted);font-size:.68rem;text-align:center;max-width:100%}
.sbcc-ai-msg .mode-tag{font-size:.6rem;color:var(--muted);margin-top:4px;display:block}
.sbcc-ai-citations{font-size:.65rem;color:var(--muted);margin-top:6px;padding-left:12px}
.sbcc-ai-citations a{color:var(--primary)}
.sbcc-ai-status{padding:6px 12px;font-size:.65rem;color:var(--muted);border-top:1px solid var(--divider);min-height:24px}
.sbcc-ai-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface)}
.sbcc-ai-input{flex:1;resize:none;min-height:40px;max-height:100px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--offset);font:inherit;font-size:.78rem;color:var(--text)}
.sbcc-ai-send{background:var(--primary);color:var(--inverse);border:none;border-radius:var(--r);padding:8px 14px;font-size:.75rem;font-weight:600;cursor:pointer;align-self:flex-end}
.sbcc-ai-send:disabled{opacity:.5;cursor:not-allowed}
.ai-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:20px}
.ai-provider-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px}
.ai-provider-card h3{font-size:.85rem;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.ai-provider-card.perplexity h3{color:var(--primary)}
.ai-research-assistant-card{border-color:var(--primary);background:var(--primary-hl)}
.ai-provider-disabled{opacity:.65}
.ai-provider-disabled input{pointer-events:none}
.ai-provider-card label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;display:block;margin:8px 0 4px}
.ai-provider-card input,.ai-provider-card select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--offset);font:inherit;font-size:.82rem;color:var(--text)}
.ai-model-select,#ai-settings-form select,.ai-research-assistant-card select{display:block;width:100%;min-height:38px;padding:8px 32px 8px 10px;margin-bottom:8px;border:1px solid var(--border);border-radius:var(--r);background-color:var(--offset);color:var(--text);font:inherit;font-size:.82rem;cursor:pointer;appearance:auto;-webkit-appearance:menulist}
.ai-model-select:disabled{opacity:.55;cursor:not-allowed}
.ai-full-access{border:2px solid var(--red);background:var(--red-hl);border-radius:var(--r-lg);padding:16px;margin-bottom:20px}
.ai-full-access label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.82rem;line-height:1.45}
.ai-full-access input[type=checkbox]{width:18px;height:18px;margin-top:2px}
.ai-full-access .warn{font-size:.72rem;color:var(--red);margin-top:8px}
.ai-key-status-row{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:14px;font-size:.72rem}
.ai-key-status{padding:4px 8px;border-radius:var(--r);border:1px solid var(--border);background:var(--offset)}
.ai-key-status.ok{color:var(--green);border-color:var(--green)}
.ai-key-status.missing{color:var(--muted)}
.ai-model-status{display:block;font-size:.65rem;color:var(--muted);margin:4px 0 6px;min-height:1em}
.ai-model-row label{display:inline-block;margin-top:8px}
body.sbcc-mobile .sbcc-ai-fab{bottom:calc(72px + env(safe-area-inset-bottom,0px));right:16px;width:52px;height:52px}
body.sbcc-mobile .sbcc-ai-panel{width:calc(100vw - 16px);right:8px!important;left:8px!important;bottom:calc(72px + env(safe-area-inset-bottom,0px))!important;top:auto!important;height:auto!important}
