/* AI-консультант vfs.travel — диалог прямо на странице (10.09.2026).
   Палитра темы travel (slate + #2563eb + #f59e0b), иконки — инлайновые SVG.
   Всплывающего окна нет: лента живёт в полосе .vfsai-dialog, своего скролла у
   неё НЕТ (растёт по содержимому) — скролл на странице один. Композер снизу
   полосы, на мобильном при активном диалоге — sticky над нижней панелью темы. */
.vfsai{--ai-b:#2563eb;--ai-b2:#38bdf8;--ai-a:#f59e0b;--ai-ink:#0f172a;--ai-mut:#5b6b82;--ai-line:#e2e8f0;margin:18px 0 24px;font-family:inherit}
.vfsai *{box-sizing:border-box}

/* ── Точка входа: «живой диалог» полосой во всю ширину (макет 10.09.2026) ── */
.vfsai-dialog{position:relative;margin:0 calc(50% - 50vw);width:100vw;padding:18px 16px 14px;background:linear-gradient(180deg,#f7f9ff,#fff 30%,#fff 70%,#f7f9ff);border-top:2px solid transparent;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,#2563eb,#38bdf8,#a855f7) 1}
.vfsai-tag{position:absolute;right:16px;top:-11px;font-size:11px;font-weight:600;color:#4f46e5;background:#fff;border:1px solid #c7d2fe;border-radius:999px;padding:2px 10px;line-height:1.5}
.vfsai-agent{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.vfsai-ava{position:relative;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#7c3aed);display:grid;place-items:center}
.vfsai-ava svg{width:20px;height:20px;display:block}
.vfsai-ava-s{width:36px;height:36px}
.vfsai-ava-s svg{width:20px;height:20px}
.vfsai-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:#22c55e;border:2px solid #fff}
.vfsai-dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(34,197,94,.4);animation:vfsai-pulse 2.4s ease-out infinite}
.vfsai-who{min-width:0}
.vfsai-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:#111;line-height:1.2}
.vfsai-badge{font-size:10px;font-weight:700;letter-spacing:.06em;color:#fff;background:linear-gradient(90deg,#2563eb,#7c3aed);border-radius:6px;padding:2px 6px}
.vfsai-status{margin:2px 0 0;font-size:12px;color:#6b7280;line-height:1.3}
.vfsai-bbl{margin:0;max-width:88%;background:#eef2ff;border-radius:18px 18px 18px 6px;padding:12px 14px;font-size:15px;line-height:1.4;color:#111}
.vfsai-bbl.is-typing{display:flex;gap:5px;align-items:center;padding:15px 16px;color:transparent}
.vfsai-bbl.is-typing i{width:6px;height:6px;border-radius:50%;background:#9ca3af;animation:vfsai-b 1.2s infinite ease-in-out}
.vfsai-bbl.is-typing i:nth-child(2){animation-delay:.16s}
.vfsai-bbl.is-typing i:nth-child(3){animation-delay:.32s}
.vfsai-trust{margin:8px 0 0;font-size:11px;line-height:1.4;color:#9ca3af;text-align:center}

/* ── Строка ввода (карточка и композер чата) ─────────────────────────────── */
.vfsai-ask{display:flex;align-items:flex-end;gap:8px;background:#f6f9ff;border:1px solid #dbe4f0;border-radius:26px;padding:5px 5px 5px 18px;transition:border-color .18s,box-shadow .18s}
.vfsai-ask:focus-within{border-color:var(--ai-b);box-shadow:0 0 0 3px rgba(37,99,235,.16)}
.vfsai-input{flex:1;min-width:0;height:46px;border:0;background:transparent;font:inherit;font-size:15px;color:var(--ai-ink);outline:0;padding:0}
.vfsai-input::placeholder{color:#7c8ba1;opacity:1;transition:opacity .25s}
.vfsai-input.is-fade::placeholder{opacity:0}
.vfsai-send{flex:0 0 auto;width:46px;height:46px;border:0;border-radius:50%;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .15s,box-shadow .15s,opacity .15s}
.vfsai-send svg{width:20px;height:20px}
.vfsai-send:hover{transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(37,99,235,.9)}
.vfsai-send:active{transform:translateY(0)}
.vfsai-send-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.vfsai .vfsai-ask{margin-top:12px;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:5px 5px 5px 16px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.vfsai .vfsai-input{height:40px;font-size:15px}
.vfsai .vfsai-input::placeholder{color:#9ca3af}
.vfsai .vfsai-send{width:38px;height:38px}

/* ── Чипы быстрых кнопок ────────────────────────────────────────────────── */
.vfsai-quick{display:flex;gap:8px;margin-top:11px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.vfsai-quick::-webkit-scrollbar{display:none}
.vfsai-q{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;border:1px solid #dbe4f0;background:#fff;color:#33415c;border-radius:999px;padding:8px 14px;font:inherit;font-size:13.5px;line-height:1;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s,transform .15s}
.vfsai-q svg{width:15px;height:15px;color:var(--ai-b);flex:0 0 auto}
.vfsai-q:hover{border-color:var(--ai-b);color:var(--ai-b);background:#f3f7ff;transform:translateY(-1px)}

.vfsai .vfsai-quick{flex-wrap:wrap;justify-content:flex-end;overflow:visible;margin-top:8px}
.vfsai .vfsai-q{border:1.5px solid #2563eb;color:#2563eb;font-weight:500;font-size:14px;padding:9px 14px}
.vfsai .vfsai-q svg{display:none}
.vfsai .vfsai-q:hover{background:#eff6ff}
.vfsai .vfsai-quick[hidden]{display:none}

/* ══ ЛЕНТА ДИАЛОГА НА СТРАНИЦЕ ═════════════════════════════════════════════ */
/* Ни max-height, ни overflow: единственный скролл — страничный. */
.vfsai-log{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;overflow:visible}

/* Композер: конец полосы; при активном диалоге на мобильном — sticky. */
.vfsai-foot-in{margin-top:12px}

/* ── Реплики ────────────────────────────────────────────────────────────── */
.vfsai-msg{max-width:86%;padding:10px 14px;border-radius:18px;font-size:15px;line-height:1.5;animation:vfsai-in .2s ease both;word-wrap:break-word;overflow-wrap:anywhere}
.vfsai-msg p{margin:0 0 8px}
.vfsai-msg p:last-child{margin:0}
@keyframes vfsai-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.vfsai-user{align-self:flex-end;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-bottom-right-radius:6px}
.vfsai-bot{align-self:flex-start;position:relative;background:#eef2ff;color:#111;border:1px solid #e0e7ff;border-bottom-left-radius:6px;margin-left:34px;box-shadow:0 8px 20px -18px rgba(15,23,42,.7)}
.vfsai-bot::before{content:"";position:absolute;left:-34px;bottom:0;width:26px;height:26px;border-radius:50%;background-color:#2563eb;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'><path d='M12 2a1.6 1.6 0 0 1 1.6 1.6V5H17a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V8a3 3 0 0 1 3-3h3.4V3.6A1.6 1.6 0 0 1 12 2ZM9 10a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm6 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm-6.2 9h6.4a3 3 0 0 1-6.4 0Z'/></svg>");background-size:15px 15px;background-position:center;background-repeat:no-repeat}
.vfsai-msg.is-typing{display:flex;gap:5px;align-items:center;padding:15px 16px;color:transparent}
.vfsai-msg.is-typing i{width:6px;height:6px;border-radius:50%;background:#9ca3af;animation:vfsai-b 1.2s infinite ease-in-out}
.vfsai-msg.is-typing i:nth-child(2){animation-delay:.16s}
.vfsai-msg.is-typing i:nth-child(3){animation-delay:.32s}
.vfsai-typing{display:flex;gap:5px;align-items:center;padding:14px}
.vfsai-typing span{width:7px;height:7px;border-radius:50%;background:#93a4bd;animation:vfsai-b 1.1s infinite ease-in-out}
.vfsai-typing span:nth-child(2){animation-delay:.16s}
.vfsai-typing span:nth-child(3){animation-delay:.32s}
@keyframes vfsai-b{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}

/* ── Карточки туров в ленте ─────────────────────────────────────────────── */
.vfsai-tours{display:flex;flex-direction:column;gap:10px;margin-left:34px;animation:vfsai-in .2s ease both}
.vfsai-tour{display:flex;gap:11px;background:#fff;border:1px solid #e6ecf5;border-radius:16px;padding:10px;box-shadow:0 10px 26px -22px rgba(15,23,42,.8)}
.vfsai-thumb{flex:0 0 84px;width:84px;height:84px;border-radius:12px;overflow:hidden;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;display:grid;place-items:center;font-size:12px;letter-spacing:1px}
.vfsai-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.vfsai-tour-i{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.vfsai-tour-h{font-weight:700;font-size:14.5px;line-height:1.25;color:var(--ai-ink)}
.vfsai-stars{color:var(--ai-a);font-size:12px}
.vfsai-tour-m{font-size:12.5px;color:var(--ai-mut);line-height:1.35}
.vfsai-tour-b{margin-top:auto;display:flex;align-items:center;gap:10px;padding-top:4px}
.vfsai-price{font-size:17px;font-weight:800;color:var(--ai-ink);letter-spacing:-.01em}
.vfsai-open{margin-left:auto;text-decoration:none;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:999px;padding:8px 14px;white-space:nowrap}

/* подсказки после ответа — печатаются в чипах над композером */
.vfsai-sugg{display:flex;flex-wrap:wrap;gap:8px;margin-left:34px}

/* ── Форма контакта (сообщением в ленте) ────────────────────────────────── */
.vfsai-lead{margin-left:34px;background:#fff;border:1px solid #e6ecf5;border-radius:16px;padding:12px;animation:vfsai-in .2s ease both}
.vfsai-lead-h{margin:0 0 9px;font-size:14px;font-weight:700;color:var(--ai-ink);line-height:1.35}
.vfsai-lead-row{display:flex;flex-direction:column;gap:8px}
.vfsai-f{display:flex;align-items:center;gap:8px;background:#f6f9ff;border:1px solid #dbe4f0;border-radius:12px;padding:0 12px}
.vfsai-f svg{width:16px;height:16px;color:var(--ai-b);flex:0 0 auto}
.vfsai-f input{flex:1;min-width:0;height:42px;border:0;background:transparent;font:inherit;font-size:15px;color:var(--ai-ink);outline:0}
.vfsai-lead-send{height:44px;border:0;border-radius:12px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.vfsai-agree{display:flex;gap:8px;margin-top:9px;font-size:12px;line-height:1.4;color:var(--ai-mut)}
.vfsai-agree a{color:var(--ai-b)}

/* ── Мобильный: sticky-композер над нижней панелью темы ─────────────────── */
@media (max-width:768px){
	.vfsai-msg{max-width:88%;font-size:15.5px}
	.vfsai-send-t{display:none}
	/* Отступ снизу — под fixed-панель темы («Стоимость / Забронировать», мобильный
	   хаб-бар): её высоту меряет JS и кладёт в --vfsai-bar, чтобы поле не пряталось. */
	.vfsai.vfsai-on .vfsai-foot-in{position:sticky;bottom:calc(var(--vfsai-bar,0px) + env(safe-area-inset-bottom));z-index:5;background:#fff;border-top:1px solid #e5e7eb;margin-left:-16px;margin-right:-16px;padding:8px 16px 6px;box-shadow:0 -8px 20px -18px rgba(15,23,42,.8)}
	.vfsai.vfsai-on{margin-bottom:calc(var(--vfsai-bar,0px) + 16px)}
}

/* ── Десктоп: та же лента в контейнере ≤720px ───────────────────────────── */
@media (min-width:769px){
	.vfsai-dialog{margin:0 auto;width:100%;max-width:720px;padding:20px 22px 16px}
	.vfsai-bbl{max-width:80%;font-size:15.5px}
	.vfsai-tours{max-width:none}
}

@media (prefers-reduced-motion:reduce){
	.vfsai-msg,.vfsai-tours,.vfsai-lead{animation:none}
	.vfsai-dot::after{animation:none}
}

/* ══ РЕЖИМ FLOAT: плавающая кнопка + панель чата (18.09.2026) ══════════════ */
/* Кнопка справа внизу; на мобильном поднимается над нижней панелью темы
   (--vfsai-bar считает chat.js) с учётом safe-area. z-index выше контента,
   но ниже модалок темы (у них 9999). */
.vfsai-fab{position:fixed;right:18px;bottom:calc(18px + var(--vfsai-bar,0px) + env(safe-area-inset-bottom));z-index:5000;display:flex;align-items:flex-end;flex-direction:column;gap:10px;opacity:0;transform:translateY(12px);transition:opacity .28s ease,transform .28s ease;pointer-events:none;font-family:inherit}
.vfsai-fab.is-in{opacity:1;transform:none;pointer-events:auto}
.vfsai-fab-b{display:inline-flex;align-items:center;gap:10px;border:0;padding:0;background:transparent;cursor:pointer;font:inherit}
.vfsai-fab-c{position:relative;flex:0 0 auto;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#7c3aed);display:grid;place-items:center;box-shadow:0 14px 30px -12px rgba(37,99,235,.75);transition:transform .16s,box-shadow .16s}
.vfsai-fab-c svg{width:28px;height:28px;display:block}
.vfsai-fab-b:hover .vfsai-fab-c{transform:translateY(-2px);box-shadow:0 18px 34px -12px rgba(37,99,235,.85)}
.vfsai-fab-ai{position:absolute;right:-3px;bottom:-2px;font-size:9px;font-weight:700;letter-spacing:.06em;color:#2563eb;background:#fff;border-radius:6px;padding:2px 5px;line-height:1;box-shadow:0 2px 6px rgba(15,23,42,.2)}
.vfsai-fab-t{order:-1;font-size:13px;font-weight:600;color:#33415c;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:8px 13px;white-space:nowrap;box-shadow:0 8px 20px -14px rgba(15,23,42,.8)}
.vfsai-fab.is-open .vfsai-fab-t{display:none}
/* Подсказка-реплика Евы над кнопкой, закрывается крестиком */
.vfsai-tip{position:relative;max-width:250px;background:#fff;border:1px solid #e2e8f0;border-radius:16px 16px 4px 16px;padding:12px 30px 12px 14px;font-size:13.5px;line-height:1.4;color:#0f172a;cursor:pointer;box-shadow:0 16px 36px -20px rgba(15,23,42,.9);animation:vfsai-in .22s ease both}
.vfsai-tip p{margin:0}
.vfsai-tip-x{position:absolute;right:6px;top:6px;width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:#94a3b8;display:grid;place-items:center;cursor:pointer;padding:0}
.vfsai-tip-x svg{width:13px;height:13px}
.vfsai-tip-x:hover{background:#f1f5f9;color:#475569}

/* Панель чата: фиксированная, поверх кнопки */
.vfsai-float{position:fixed;right:18px;bottom:calc(18px + var(--vfsai-bar,0px) + env(safe-area-inset-bottom));z-index:5010;margin:0;width:380px;max-width:calc(100vw - 32px);height:600px;max-height:calc(100vh - 120px);opacity:0;transform:translateY(14px) scale(.98);transition:opacity .2s ease,transform .2s ease}
.vfsai-float.is-open{opacity:1;transform:none}
.vfsai-float[hidden]{display:none}
.vfsai-float .vfsai-dialog{display:flex;flex-direction:column;height:100%;margin:0;width:auto;padding:0;background:#fff;border:1px solid #e2e8f0;border-radius:18px;border-image:none;overflow:hidden;box-shadow:0 30px 70px -30px rgba(15,23,42,.65)}
.vfsai-float .vfsai-agent{margin:0;padding:12px 14px;border-bottom:1px solid #eef2f7;background:linear-gradient(180deg,#f7f9ff,#fff)}
.vfsai-float .vfsai-x{margin-left:auto;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:#64748b;display:grid;place-items:center;cursor:pointer;padding:0}
.vfsai-float .vfsai-x svg{width:17px;height:17px}
.vfsai-float .vfsai-x:hover{background:#f1f5f9;color:#0f172a}
/* Единственный скролл панели — лента */
.vfsai-float .vfsai-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:14px}
.vfsai-float .vfsai-foot-in{margin:0;padding:10px 12px 12px;border-top:1px solid #eef2f7;background:#fff}
.vfsai-float .vfsai-quick{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin-top:0;margin-bottom:9px}
.vfsai-float .vfsai-q{font-size:13px;padding:8px 12px}
.vfsai-float .vfsai-msg{max-width:92%}
.vfsai-float .vfsai-trust{margin-top:7px;font-size:10.5px}
/* sticky-композер inline-режима внутри панели не нужен */
.vfsai-float.vfsai-on .vfsai-foot-in{position:static;margin-left:0;margin-right:0;box-shadow:none}

@media (max-width:768px){
	/* Мобильный: только круг, панель — на весь экран */
	.vfsai-fab{right:14px;bottom:calc(14px + var(--vfsai-bar,0px) + env(safe-area-inset-bottom))}
	.vfsai-fab-t{display:none}
	.vfsai-fab-c{width:52px;height:52px}
	.vfsai-fab-c svg{width:26px;height:26px}
	.vfsai-tip{max-width:min(250px,calc(100vw - 40px))}
	.vfsai-float{right:0;bottom:0;left:0;top:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;transform:translateY(18px)}
	.vfsai-float .vfsai-dialog{border:0;border-radius:0}
	.vfsai-float .vfsai-agent{padding-top:calc(12px + env(safe-area-inset-top))}
	.vfsai-float .vfsai-foot-in{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
	body.vfsai-lock{position:fixed;left:0;right:0;width:100%;overflow:hidden}
}
