.dlql-ai { position: fixed; right: 22px; bottom: 24px; z-index: 1200; font-family: inherit; }
.dlql-ai *, .dlql-ai *::before, .dlql-ai *::after { box-sizing: border-box; }
.dlql-ai__launcher { display: flex; min-width: 188px; height: 62px; align-items: center; gap: 11px; padding: 7px 17px 7px 8px; color: #fff; background: linear-gradient(135deg, #06324b, var(--dlql-ai-accent)); border: 0; border-radius: 999px; box-shadow: 0 18px 45px rgba(5,50,75,.28); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.dlql-ai__launcher:hover { transform: translateY(-3px); box-shadow: 0 22px 52px rgba(5,50,75,.36); }
.dlql-ai__launcher svg { width: 45px; height: 45px; padding: 10px; fill: none; stroke: #062f48; stroke-width: 1.8; background: #ffc412; border-radius: 50%; }
.dlql-ai__launcher-copy { display: grid; text-align: left; line-height: 1.15; }
.dlql-ai__launcher-copy small { margin-bottom: 3px; color: #bfeef3; font-size: .62rem; font-weight: 700; }
.dlql-ai__launcher-copy strong { font-size: .88rem; font-weight: 900; }
.dlql-ai__pulse { position: absolute; top: 3px; left: 48px; width: 10px; height: 10px; background: #4ee099; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 5px rgba(78,224,153,.15); }
.dlql-ai__panel { position: absolute; right: 0; bottom: 76px; display: grid; width: min(390px, calc(100vw - 28px)); height: min(610px, calc(100vh - 130px)); grid-template-rows: auto 1fr auto auto auto; overflow: hidden; color: #173447; background: #fff; border: 1px solid rgba(5,50,75,.1); border-radius: 24px; box-shadow: 0 28px 80px rgba(3,31,49,.28); transform-origin: right bottom; animation: dlqlAiOpen .22s ease both; }
.dlql-ai__panel[hidden] { display: none; }
@keyframes dlqlAiOpen { from { opacity: 0; transform: translateY(12px) scale(.96); } }
.dlql-ai__header { display: grid; grid-template-columns: 44px 1fr 34px; align-items: center; gap: 11px; padding: 16px 17px; color: #fff; background: linear-gradient(125deg, #062f48, var(--dlql-ai-accent)); }
.dlql-ai__header > span:nth-child(2) { display: grid; }
.dlql-ai__header strong { font-size: .92rem; }
.dlql-ai__header small { margin-top: 3px; color: #c4edf2; font-size: .66rem; }
.dlql-ai__header small i { display: inline-block; width: 7px; height: 7px; margin-right: 3px; background: #4ee099; border-radius: 50%; }
.dlql-ai__avatar { display: grid; width: 42px; height: 42px; place-items: center; color: #062f48; background: #ffc412; border-radius: 14px; font-size: .72rem; font-weight: 950; }
.dlql-ai__header button { width: 34px; height: 34px; padding: 0; color: #fff; background: rgba(255,255,255,.1); border: 0; border-radius: 50%; font-size: 1.5rem; cursor: pointer; }
.dlql-ai__messages { overflow-y: auto; padding: 19px 16px 10px; background: linear-gradient(#f7fafb, #fff); overscroll-behavior: contain; }
.dlql-ai__message { display: flex; margin-bottom: 12px; }
.dlql-ai__message > div:first-child { max-width: 88%; padding: 11px 13px; border-radius: 16px; font-size: .79rem; line-height: 1.55; white-space: pre-wrap; }
.dlql-ai__message--assistant { flex-wrap: wrap; justify-content: flex-start; }
.dlql-ai__message--assistant > div:first-child { color: #294b5d; background: #edf5f7; border-bottom-left-radius: 5px; }
.dlql-ai__message--user { justify-content: flex-end; }
.dlql-ai__message--user > div:first-child { color: #fff; background: var(--dlql-ai-accent); border-bottom-right-radius: 5px; }
.dlql-ai__sources { display: flex; flex: 0 0 100%; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.dlql-ai__sources a { max-width: 100%; overflow: hidden; padding: 5px 8px; color: #087d9d; background: #eef8fa; border: 1px solid #cce8ed; border-radius: 999px; font-size: .62rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.dlql-ai__typing > div { display: flex; gap: 4px; padding-block: 15px !important; }
.dlql-ai__typing i { width: 6px; height: 6px; background: #7f9ca9; border-radius: 50%; animation: dlqlTyping .85s infinite alternate; }
.dlql-ai__typing i:nth-child(2) { animation-delay: .15s; }
.dlql-ai__typing i:nth-child(3) { animation-delay: .3s; }
@keyframes dlqlTyping { to { opacity: .35; transform: translateY(-3px); } }
.dlql-ai__suggestions { display: flex; gap: 6px; overflow-x: auto; padding: 9px 14px; border-top: 1px solid #edf1f3; scrollbar-width: none; }
.dlql-ai__suggestions[hidden] { display: none; }
.dlql-ai__suggestions button { flex: 0 0 auto; padding: 7px 10px; color: #2c5668; background: #fff; border: 1px solid #cee2e7; border-radius: 999px; font: inherit; font-size: .66rem; font-weight: 700; cursor: pointer; }
.dlql-ai__form { display: grid; grid-template-columns: 1fr 43px; gap: 9px; align-items: end; padding: 11px 13px; border-top: 1px solid #e8eef0; }
.dlql-ai__form textarea { width: 100%; max-height: 104px; min-height: 43px; resize: none; padding: 11px 13px; color: #15384a; background: #f5f8f9; border: 1px solid transparent; border-radius: 14px; outline: none; font: inherit; font-size: .78rem; line-height: 1.45; }
.dlql-ai__form textarea:focus { background: #fff; border-color: #88cbd8; box-shadow: 0 0 0 3px rgba(8,140,175,.09); }
.dlql-ai__form button { display: grid; width: 43px; height: 43px; place-items: center; padding: 0; color: #fff; background: var(--dlql-ai-accent); border: 0; border-radius: 13px; cursor: pointer; }
.dlql-ai__form svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.dlql-ai__footer { padding: 0 14px 10px; color: #8aa0aa; font-size: .57rem; text-align: center; }
.dlql-ai__footer a { color: #087d9d; font-weight: 800; }
@media (max-width: 640px) {
    .dlql-ai { right: 12px; bottom: 78px; }
    .dlql-ai__launcher { min-width: 0; width: 58px; height: 58px; padding: 7px; }
    .dlql-ai__launcher svg { width: 44px; height: 44px; }
    .dlql-ai__launcher-copy { display: none; }
    .dlql-ai__pulse { top: 0; right: 0; left: auto; }
    .dlql-ai__panel { position: fixed; right: 10px; bottom: 76px; left: 10px; width: auto; height: min(650px, calc(100dvh - 98px)); border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .dlql-ai__panel, .dlql-ai__typing i { animation: none; }
}

