.ai-launcher { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1025; border-radius: 2rem; box-shadow: 0 .25rem 1rem #0002; }
.ai-assistant { --bs-offcanvas-width: min(580px, 100vw); }
.ai-assistant .offcanvas-body { overflow-y: auto; }
.ai-assistant .offcanvas-body > *, .ai-messages > * { flex-shrink: 0; }
.ai-messages { min-height: 8rem; }
.ai-message { padding: 1rem; border: 1px solid var(--bs-border-color); border-radius: .75rem; background: var(--bs-body-bg); overflow-wrap: anywhere; }
.ai-message-user { background: var(--bs-tertiary-bg); margin-left: 2rem; }
.ai-text { white-space: pre-wrap; }
.ai-proposal { background: var(--bs-tertiary-bg); padding: .75rem; border-radius: .5rem; margin-top: .75rem; }
.ai-proposal pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 12rem; overflow-y: auto; font-family: inherit; }
.ai-privacy { color: var(--bs-secondary-color); }
.ai-privacy summary { cursor: pointer; }
.ai-record-choice { margin-right: .5rem; }
.ai-assistant [hidden] { display: none !important; }
@media screen {
    :root[data-theme="dark"] .ai-assistant { background: var(--dm-surface, #12121a); color: var(--dm-text, #f8fafc); border-color: var(--dm-border-strong, rgba(255, 255, 255, .16)); }
    :root[data-theme="dark"] .ai-assistant .offcanvas-header { border-bottom: 1px solid var(--dm-border, rgba(255, 255, 255, .08)); }
    :root[data-theme="dark"] .ai-message { background: var(--dm-surface-raised, #191924); border-color: var(--dm-border, rgba(255, 255, 255, .08)); color: var(--dm-text, #f8fafc); }
    :root[data-theme="dark"] .ai-message-user { background: var(--dm-accent-soft, rgba(171, 145, 163, .07)); border-color: var(--dm-accent-border, rgba(190, 165, 181, .18)); }
    :root[data-theme="dark"] .ai-proposal { background: var(--dm-field, #0e0e15); border: 1px solid var(--dm-border, rgba(255, 255, 255, .08)); }
    :root[data-theme="dark"] .ai-privacy { color: var(--dm-muted, #94a3b8); }
}
@media (max-width: 575px) { .ai-launcher { bottom: .75rem; right: .75rem; font-size: .875rem; } }
@media print { .ai-launcher, .ai-assistant, .ai-record-choice { display: none !important; } }
